Wednesday, 11 May 2011

Project on School Management System using C++

#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<iomanip>
#include<fstream.h>
#include<dos.h>
using namespace std;

struct marks_criteria
{
int sc_min,com_min,arts_min, seat_sc, seat_com, seat_arts;
} crit;

struct administrator
{
 char user_name[10];
 char password[10];
}admin;

struct  student
{
char name[20];
int regno,m_eng,m_math,m_sc,m_sst,m_lang;
int pref_code, stream;
// Sc=1, Com=2; Arts=3;


 public:
  void new_file();
  void input_data();
  void allot_stream();
  int get_stream();
  void display();
  int show_per()
  {
   return((m_eng+m_math+m_sc+m_sst+m_lang)/5);
  }

};
void welcome();
void menu();
int verify_password();
void assign_user();
void clear();
void input_criteria();
void read_criteria();
void read_student();
void create_eligible_sc();
void create_eligible_com();
void create_eligible_arts();
void read_eligible_sc();
void read_eligible_com();
void read_eligible_arts();
char * stream_name(int strm);
void select_list( char *in_file, char *out_file);
void thanks();

student s;
 main()
{


//     clrscr();
     welcome();

    // cout<<"welcome";
fstream fin, fout;
fstream fsc, fcom, farts;
int opt=1, ch;

while(opt!=8)
{
 // clrscr();


 clear();
 cout<<"\n\t======================  MAIN   MENU  =======================\n";
 cout<<"\n\t[1] CREATE / MODIFY  ADMISSION  CRITERIA(Administrator only)";
 cout<<"\n\n\t[2] ENTER STUDENT'S DATA ";
 cout<<"\n\n\t[3] ALLOTMENT OF  STREAM";
 cout<<"\n\n\t[4] DISPLAY CRITERIA FOR SELECTION";
 cout<<"\n\n\t[5] DISPLAY ALLOTMENT OF  STUDENT'S STREAM";
 cout<<"\n\n\t[6] DISPLAY ALL  STUDENT'S REGISTERED";
 cout<<"\n\n\t[7] CREATE / DISPLAY MERIT LIST";
 cout<<"\n\n\t[8] QUIT";
 cout<<"\n\t=============================================================\n";
 cout<<"\n\n\t\tEnter your  choice : ";
 cin>>opt;
 switch(opt)
 {
 case 1:
   int p;
   assign_user();
   p=verify_password();
   if(p==0)
   {

    input_criteria();
   }
   else
   {
    cout<<"\n\tU R Not a Valid User.";
    cout<<"\n\tU Dont have the Authority to Create Question Bank. Bye\n\n";
   }
   break;

 case 2:
        int option;
        //clrscr();
        cout<<"\nWhat do u want --\n\n\n\n\n\tCreate  a new student information  file or Append to the existing file?\n\n\t(press 1 for new creation and 2 for appending)";
        cin>>option;
        if(option==1)
        {
    s.new_file();
    }
    else
    {
  s.input_data();
  }
  break;

 case 3:
  //clrscr();
  // read_student();
  fin.open("student" ,ios::in|ios::out);

  fsc.open("elig_sc",ios::out);
  fcom.open("eligcom",ios::out);
  farts.open("eligart",ios::out);

  while(fin.read((char*)& s,sizeof(s)))
  {


    s.allot_stream();

    s.get_stream();

    //if(s.get_stream()==0)
           cout<<"\nApplication Rejected. Not Eligible\n";

    if(s.get_stream()==1)
     fsc.write((char*)& s,sizeof(s));


    if(s.get_stream()==2)
     fcom.write((char*)& s,sizeof(s));

    if(s.get_stream()==3)
     farts.write((char*)& s,sizeof(s));



  }
  fin.close();
  fsc.close();
  fcom.close();
  farts.close();
  cout<<"\n*******************************************";
  cout<<"\n\n\tSTREAM ALLOCATION DONE.";
  cout<<"\n*******************************************";
  break;
 case 4:
  read_criteria();
 // clear();
  cout<<"\n Sc : "<<crit.sc_min;
  cout<<"\n Com : "<<crit.com_min;
  cout<<"\n Sc : "<<crit.arts_min;


  break;

 case 5:

  cout<<"\n Enter 1 for Sc, 2 for Com, 3 for Arts  :  ";
  cin>>ch;
  if (ch==1)
   read_eligible_sc();

  if (ch==2)
   read_eligible_com();
  if (ch==3)
   read_eligible_arts();

  break;
 case 6:         //clrscr() ;
   read_student();
   break;
 case 7:
  {
   char c;
   int k=1;
   cout<<"\n****************************************";
   cout<<"\n****************************************";
   cout<<"\n    M E R I T  L I S T";
   cout<<"\n    ==================";
   cout<<"\n\tEnter 1 for MERIT LIST SCIENCE ";
   cout<<"\n\tEnter 2 for MERIT LIST COMMERCE ";
   cout<<"\n\tEnter 3 for MERIT LIST ARTS \t";
   cout<<"\n****************************************";
   cout<<"\n****************************************"; cin>>k;
   if (k==1)
   {
    select_list("elig_sc","sell_sc");
    fin.open("sell_sc",ios::in);
   }
   if (k==2)
   {
    select_list("eligcom","sellcom");
    fin.open("sellcom",ios::in);
   }
   if (k==3)
   {
    select_list("eligart","sellart");
    fin.open("sellart",ios::in);
   }
   if(k>=1 && k<=3)
   {
    while(fin.read((char*)& s,sizeof(s)))
    {
     s.display();

     cout<<"\n\t Continue (y/n)?";
      cin>>c;
     if(c=='n')
      break;

    }

   }
   fin.close();
   fin.close();
   fin.close();
  break;
  }
 case 8:
    thanks();
     // cout<<"\nTHANKS BYE ";
       // exit(0);
  break;
 }

  }

 }

// END OF WHILE


void assign_user()
{

 strcpy(admin.user_name, "rimi");
 strcpy(admin.password, "rimi");


}
int verify_password()
{
 char u_name[10];
 char u_pwd[10],temp[2];
 int x=1;
 cout<<"\n\n   Enter user name : ";
 cin>>u_name;
 cout<<"\n\n   Enter Password : ";
 cin>>u_pwd;
 x=strcmp(admin.user_name,u_name);
 if (x==0)
 {
  x=strcmp(admin.password,u_pwd);

 }
 cin.getline(temp,2);
 return(x);

}
void student::allot_stream()
{
 int per=(m_eng+m_math+m_sc+m_sst+m_lang)/5;
 read_criteria();

 switch(pref_code)
 {
  case 1:
    if(per>=crit.sc_min)
     stream=pref_code;
    else
     stream=0;

    break;
  case 2:
    if(per>=crit.com_min)
     stream=pref_code;
    else
     stream=0;
    break;
  case 3:
    if(per>=crit.arts_min)
     stream=pref_code;
    else
     stream=0;
    break;
 }
}

int student::get_stream()
{
 return(stream);
}


void input_criteria()
{
 fstream fout;
 fout.open("criteria" ,ios::in|ios::out);
 cout<<"\nEnter  the  required marks for SCIENCE stream(in percentage)";
 cin>>crit.sc_min;
 cout<<"\nEnter  No. of Seats for SCIENCE stream";
 cin>>crit.seat_sc;
 cout<<"\nEnter  the  required marks for COMMERCE stream(in percentage)";
 cin>>crit.com_min;
 cout<<"\nEnter  No. of Seats for COMMERCE stream";
 cin>>crit.seat_com;
 cout<<"\nEnter  the  required marks for ARTS stream(in percentage)";
 cin>>crit.arts_min;
 cout<<"\nEnter  No. of Seats for ARTS stream";
 cin>>crit.seat_arts;
 fout.write((char*)& crit,sizeof(crit));
 fout.close();
}

void read_criteria()
{
 fstream fin;
 fin.open("criteria" ,ios::in);
 fin.read((char*)& crit,sizeof(crit));
 fin.close();

}

void student::input_data()
{     //clrscr();
 fstream fin;
 fin.open("student",ios::app|ios::out);
 char t[2], ans;
 while(1)
 {
 cout<<"\nEnter  the  name of the  student  :  ";
 cin>>name;
 cout<<"\n\nEnter  the roll of the  student  :  ";
 cin>>regno;
 cout<<"\n\nEnter  marks in eng  :  ";
 cin>>m_eng;
 cout<<"\n\nEnter  marks in math  :  ";
 cin>>m_math;
 cout<<"\n\nEnter  marks in science  :  ";
 cin>>m_sc;
 cout<<"\n\nEnter  marks in sst  :  ";
 cin>>m_sst;
 cout<<"\n\nEnter  marks in language  :  ";
 cin>>m_lang;
 cout<<"==================STREAM  PREFERED?================ \n";
 cout<<"\t"<<"[1] for SCIENCE\n";
 cout<<"\t"<<"[2] for COMMERCE\n";
 cout<<"\t"<<"[3] for ARTS ";
 cout<<"\n================================================= \n\tENTER PREFERENCE CODE : ";
 cin>>pref_code;
 stream=-1;
 fin.write((char*)&s,sizeof(s));
 cin.getline(t,2);
 cout<<"\n\tEnter More Student ? (y/n)";
  cin>>ans;
 if (ans=='n')
  break;
 }
 fin.close();
}
void student::new_file()
{     //clrscr();
 fstream fin;
 fin.open("student",ios::out);
 char t[2], ans;
 while(1)
 {
 cout<<"\nEnter  the  name of the  student  :  ";
 gets(name);
 cout<<"\n\nEnter  the roll of the  student  :  ";
 cin>>regno;
 cout<<"\n\nEnter  marks in eng  :  ";
 cin>>m_eng;
 cout<<"\n\nEnter  marks in math  :  ";
 cin>>m_math;
 cout<<"\n\nEnter  marks in science  :  ";
 cin>>m_sc;
 cout<<"\n\nEnter  marks in sst  :  ";
 cin>>m_sst;
 cout<<"\n\nEnter  marks in language  :  ";
 cin>>m_lang;
 cout<<"==================STREAM  PREFERED?================ \n";
 cout<<"\t"<<"[1] for SCIENCE\n";
 cout<<"\t"<<"[2] for COMMERCE\n";
 cout<<"\t"<<"[3] for ARTS ";
 cout<<"\n================================================= \n\tENTER PREFERENCE CODE : ";
 cin>>pref_code;
 stream=-1;
 fin.write((char*)&s,sizeof(s));
 cin.getline(t,2);
 cout<<"\n\tEnter More Student ? (y/n)";
  cin>>ans;
 if (ans=='n')
  break;
 }
 fin.close();
}
void student::display()
{

 cout<<"\n============================================\n";
 cout<<"\n\tNAME  : "<<name;
 cout<<"\n\tREGISTRATION NO. : "<<regno;
 cout<<"\n\tPERCENTAGE OF MARKS : "<<( (m_eng+m_math+m_sc+m_sst+m_lang)/5)<<"%";
 cout<<"\n\tSTREAM APPLIED FOR :  "<<stream_name(pref_code);
       // cout<<"\n\tSTREAM ALLOTED : "<<stream_name(stream);
 cout<<"\n============================================\n";

}

void read_student()
{
 fstream fin;
 char c;
 fin.open("student" ,ios::in);
 while(fin.read((char*)& s,sizeof(s)))
 {
   s.display();
   cout<<"\n\tPress any no. to continue ";
   cin>>c;
   cout<<"\n";
 }
 fin.close();

}



void read_eligible_sc()
{
 char ans;
 fstream fout;
 fout.open("elig_sc",ios::in);
 fout.seekg(0);
 while(fout.read((char*)& s,sizeof(s)))
 {
  s.display();
  cout<<"\n\t Continue (y/n)? ";

  cin>>ans;

  if (ans=='n')
   break;

 }
 fout.close();

}

void read_eligible_com()
{
 char ans;
 fstream fout;
 fout.open("eligcom",ios::in);

 while(fout.read((char*)& s,sizeof(s)))
 {
  s.display();
  cout<<"\n\t Continue (y/n)? ";

  cin>>ans;

  if (ans=='n')
   break;

 }
 fout.close();
}



void read_eligible_arts()
{
  char ans;
 fstream fout;
 fout.open("eligart",ios::in);

 while(fout.read((char*)& s,sizeof(s)))
 {
  s.display();
  cout<<"\n\t Continue (y/n)? ";

  cin>>ans;

  if (ans=='n')
   break;

 }
 fout.close();
}
void clear()
{
// for(int i=1;i< =24;i++)
 // cout<<"\n";
}
char * stream_name(int strm)
{
 switch(strm)
 {
 case -1:
  return("Not assigned");
     // break;
 case 0:
  return("Nill");
      // break;
 case 1:
  return("Science");
   // break;
 case 2:
  return("Commerce");
      // break;
 case 3:
  return("Arts");
     // break;
     default:
  return("None");
 }
}
void select_list( char *in_file, char *out_file)
{
 fstream sel, fin;
 int n=0, i,j;
 student sl[100], t;


  sel.open(out_file, ios::out);
  fin.open(in_file,ios::in);

  while(fin.read((char*)& sl[n],sizeof(s)))
  {
   n++;

  }
  cout<<"\nNo of Eligible Students  = "<<n<<"\n";
  for(i=0;i<n;i++)
  {
   for(j=i+1;j<=n;j++)
   {
    if ( sl[i].show_per()<sl[j].show_per())
    {
     t=sl[j];
     sl[j]=sl[i];
     sl[i]=t;
    }
   }
  }
  for(i=0;i<n;i++)
  {
   sel.write((char*)& sl[i],sizeof(s));
  }
 sel.close();
 fin.close();

}
void welcome()
   {
     //clrscr();
     int z;
  cout<<"\t%%      %%      ";
       cout<<"\n\t%%      %% %%%%%%% %%      %%%%%%  %%%%%% %%%%  %%%% %%%%%%%";
       cout<<"\n\t%%      %% %%      %%      %%      %%  %% %%  %%% %% %%       ";
       cout<<"\n\t%%  %%  %% %%%%%   %%      %%      %%  %% %%  %%% %% %%%%%      ";
       cout<<"\n\t%%  %%  %% %%      %%      %%      %%  %% %%      %% %%           ";
       cout<<"\n\t%%%%%%%%%% %%%%%%% %%%%%%% %%%%%%% %%%%%% %%      %% %%%%%%%     ";
       cout<<"\n\n\t\t\t        $$$$$$$$  $$$$$        ";
       cout<<"\n\t\t\t           $$     $   $      ";
       cout<<"\n\t\t\t           $$     $$$$$    ";

       cout<<"\n\n\n\tCOMPUTER   PROJECT  (********  ON STREAM ALLOCATION  *******)";
   
  cout<<" \n\n\n\t\t     press any number and 'ENTER' to continue: ";
  cin>>z;

    // getch();
    }
    void thanks()
 {     int w;
  //clrscr();
  cout<<"\n\n\n\n\n\n\n\n\n\n\t**********   T H A N K   Y O U   F O R   W O R K I N G   *******";
  cout<<"\n\n\n\n\n\n\n\t\t\t Press Any Number And Then 'ENTER' to exit";
  cin>>w;
 }


Output:-


No comments:

Post a Comment