C++
C++ Project on School Management
C++ Project on School Management
Aim: To develop a School Management System in C++ that handles student stream allotment (Science, Commerce, Arts) based on marks and administrator-defined criteria.
#include
#include
#include
#include
#include
#include
#include
#include
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;
void main()
{
clrscr();
welcome();
fstream fin, fout;
fstream fsc, fcom, farts;
char opt = '1', ch;
while(opt != '8')
{
textmode(C80);
textcolor(BLUE);
textbackground(WHITE);
clrscr();
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 : ";
opt = getche();
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();
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();
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\n\n\n\n";
cout << "\n*******************************************";
cout << "\n\n\tSTREAM ALLOCATION DONE.";
cout << "\n*******************************************";
getch();
break;
case '4':
read_criteria();
cout << "\n Sc : <=" << crit.sc_min;
break;
case '5':
case '6':
{
char k, c;
clrscr();
cout << "\n\tWhich Stream do you want to display?\n";
cout << "\n\t[1] Science";
cout << "\n\t[2] Commerce";
cout << "\n\t[3] Arts";
cout << "\n\n\t\tEnter your choice : ";
k = getche();
if(k >= '1' && k <= '3')
{
while(fin.read((char*)& s, sizeof(s)))
{
s.display();
cout << "\n\t Continue (y/n)? : ";
c = getche();
c = tolower(c);
if(c == 'n')
break;
}
}
fin.close();
fin.close();
fin.close();
break;
}
case '8':
thanks();
break;
}
}
}
// END OF WHILE
void assign_user()
{
strcpy(admin.user_name, "abhisek");
strcpy(admin.password, "nokia");
}
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 : ";
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;
clrscr();
cin >> pref_code;
stream = -1;
fin.write((char*)& s, sizeof(s));
cin.getline(t, 2);
cout << "\n\tEnter More Student ? (y/n) : ";
ans = getche();
ans = tolower(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;
clrscr();
cin >> pref_code;
stream = -1;
fin.write((char*)& s, sizeof(s));
cin.getline(t, 2);
cout << "\n\tEnter More Student ? (y/n) : ";
ans = getche();
ans = tolower(ans);
if(ans == 'n')
break;
}
fin.close();
}
void student::display()
{
cout << "\n============================================\n";
cout << "\n\tNAME : " << name;
}