31/01/2023

School Management System Project in C++With Source Code

School Management System Project in C++With Source Code. This School Management System project has seven sections, first Create and Modify Admission Criteria, Student Data, Allotment of Stream, Display Criteria for Selection, Display allotment of Student Stream, Display all registered students and Create and display Merit list. 

School Management System Project in C++With Source Code

School Management System Project in C++With Source Code.


 #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;
 }

Previous Post
Next Post

post written by:

Hi, I’m Ghanendra Yadav, SEO Expert, Professional Blogger, Programmer, and UI Developer. Get a Solution of More Than 500+ Programming Problems, and Practice All Programs in C, C++, and Java Languages. Get a Competitive Website Solution also Ie. Hackerrank Solutions and Geeksforgeeks Solutions. If You Are Interested to Learn a C Programming Language and You Don't Have Experience in Any Programming, You Should Start with a C Programming Language, Read: List of Format Specifiers in C.
Follow Me

0 Comments: