#include<iostream>
#include<fstream>
#include<iomanip>
#include <cstdlib>
using namespace std;
class student {
int rollno;
char name[50];
int p_marks, c_marks, m_marks, e_marks,
cs_marks;
double per;
char grade;
void calculate();
public:
void getdata();
void showdata() const;
void show_tabular() const;
int retrollno() const;
};
void student::calculate() {
per=(p_marks+c_marks+m_marks+e_marks+cs_marks)/5.0;
if(per>=60)
grade='A';
else if(per>=50)
grade='B';
else if(per>=33)
grade='C';
else
grade='F';
}
cout << "\n\n\tEnter The Roll
Number Of Student : ";
cin >> rollno;
cout << "\n\n\tEnter The Name
Of Student : ";
cin.ignore();
cin.getline(name,50);
cout << "\n\n\tMarks In
Physics (Out Of 100) : ";
cin >> p_marks;
cout << "\n\n\tMarks In
Chemistry (Out Of 100) : ";
cin >> c_marks;
cout << "\n\n\tMarks In
Mathematics (Out Of 100) : ";
cin >> m_marks;
cout << "\n\n\tMarks In
English (Out Of 100) : ";
cin >> e_marks;
cout << "\n\n\tMarks In
Computer Science (Out Of 100) : ";
cin >> cs_marks;
calculate();
}
void student::showdata() const {
cout << "\n\n\tRoll Number Of
Student : " << rollno;
cout << "\n\n\tName Of
Student : " << name;
cout << "\n\n\tMarks In
Physics : " << p_marks;
cout << "\n\n\tMarks In
Chemistry : " << c_marks;
cout << "\n\n\tMarks In Maths
: " << m_marks;
cout << "\n\n\tMarks In
English : " << e_marks;
cout << "\n\n\tMarks In
Computer Science :" << cs_marks;
cout << "\n\n\tPercentage :
" << per;
cout << "\n\n\tGrade : "
<< grade;
}
void student::show_tabular() const {
cout <<
rollno<<setw(6)<<"
"<<name<<setw(10)<<p_marks<<setw(4)<<c_marks<<setw(4)<<m_marks<<setw(4)
<<e_marks<<setw(4)<<cs_marks<<setw(8)<<per<<setw(6)<<grade<<endl;
}
int
student::retrollno() const {
return rollno;
}
void write_student();
void display_all();
void display_sp(int);
void modify_student(int);
void delete_student(int);
void class_result();
void result();
void intro();
void entry_menu();
int main() {
char ch;
cout.setf(ios::fixed|ios::showpoint);
cout << setprecision(2);
intro();
do {
system("cls");
cout << "\n\n\n\tMAIN
MENU";
cout << "\n\n\t01. RESULT
MENU";
cout << "\n\n\t02. ENTRY/EDIT
MENU";
cout << "\n\n\t03. EXIT";
cout << "\n\n\tPlease Select
Your Option (1-3) : ";
cin >> ch;
switch(ch) {
case '1': result();
break;
case '2': entry_menu();
break;
case '3':
break;
default :cout << "\a";
}}while(ch!='3');
return 0;
}
void write_student() {
student st;
ofstream outFile;
outFile.open("student.dat",ios::binary|ios::app);
st.getdata();
outFile.write(reinterpret_cast<char
*> (&st), sizeof(student));
outFile.close();
cout << "\n\n\tStudent Record
Has Been Created ";
cin.ignore();
cin.get();
}
void display_all() {
student st;
ifstream inFile;
inFile.open("student.dat",ios::binary);
if(!inFile) {
cout << "\n\n\tFile Could Not
Be Open !! Press Any Key...";
cin.ignore();
cin.get();
return;
}
cout << "\n\n\n\t\tDISPLAY
ALL RECORD !!!\n\n";
while(inFile.read(reinterpret_cast<char
*> (&st), sizeof(student))) {
st.showdata();
cout <<
"\n\n====================================\n";
}
inFile.close();
cin.ignore();
cin.get();
}
void display_sp(int n) {
student st;
ifstream inFile;
inFile.open("student.dat",ios::binary);
if(!inFile) {
cout << "\n\n\tFile Could Not
Be Open !! Press Any Key...";
cin.ignore();
cin.get();
return;
}
bool flag=false;
while(inFile.read(reinterpret_cast<char
*> (&st), sizeof(student))) {
if(st.retrollno()==n) {
st.showdata();
flag=true;
}}
inFile.close();
if(flag==false)
cout << "\n\n\tRecord Not
Exist.";
cin.ignore();
cin.get();
}
void modify_student(int n) {
bool found=false;
student st;
fstream File;
File.open("student.dat",ios::binary|ios::in|ios::out);
if(!File) {
cout << "\n\n\tFile Could Not
Be Open !! Press Any Key...";
cin.ignore();
cin.get();
return;
}
while(!File.eof() &&
found==false) {
File.read(reinterpret_cast<char *>
(&st), sizeof(student));
if(st.retrollno()==n) {
st.showdata();
cout << "\n\nPlease Enter The
New Details Of Student : " << endl;
st.getdata();
int
pos=(-1)*static_cast<int>(sizeof(st));
File.seekp(pos,ios::cur);
File.write(reinterpret_cast<char
*> (&st), sizeof(student));
cout << "\n\n\tRecord
Updated.";
found=true;
}}
File.close();
if(found==false)
cout << "\n\n\tRecord Not
Found.";
cin.ignore();
cin.get();
}
void delete_student(int n) {
student st;
ifstream inFile;
inFile.open("student.dat",ios::binary);
if(!inFile) {
cout << "\n\n\tFile Could Not
Be Open !! Press Any Key...";
cin.ignore();
cin.get();
return;
}
ofstream outFile;
outFile.open("Temp.dat",ios::out);
inFile.seekg(0,ios::beg);
while(inFile.read(reinterpret_cast<char
*> (&st), sizeof(student))) {
if(st.retrollno()!=n) {
outFile.write(reinterpret_cast<char
*> (&st), sizeof(student));
}}
outFile.close();
inFile.close();
remove("student.dat");
rename("Temp.dat","student.dat");
cout << "\n\n\tRecord Deleted
..";
cin.ignore();
cin.get();
}
void class_result() {
student st;
ifstream inFile;
inFile.open("student.dat",ios::binary);
if(!inFile) {
cout << "\n\n\tFile Could Not
Be Open !! Press Any Key...";
cin.ignore();
cin.get();
return;
}
cout << "\n\n\t\tALL STUDENTS
RESULT \n\n";
cout <<
"==========================================================\n";
cout << "R.No Name P
C M E
CS %age Grade"<<endl;
cout <<
"==========================================================\n";
while(inFile.read(reinterpret_cast<char
*> (&st), sizeof(student))) {
st.show_tabular();
}
cin.ignore();
cin.get();
inFile.close();
}
void result() {
char ch;
int rno;
cout << "\n\n\n\tRESULT
MENU";
cout << "\n\n\n\t1. Class
Result";
cout << "\n\n\t2. Student
Report Card";
cout << "\n\n\t3. Back To
Main Menu";
cout << "\n\n\n\tEnter Choice
(1/2/3)? ";
cin >> ch;
switch(ch) {
case '1' : class_result(); break;
case '2' : cout << "\n\n\tEnter Roll Number Of Student :
"; cin >> rno;
display_sp(rno); break;
case '3' : break;
default: cout
<< "\a";
}}
void intro() {
cout << "\t*** STUDENT REPORT
CARD PROJECT ***";
cout << "\n\n\n\tMADE BY :
MOHAMMAD A M BHUIYAN";
cout << "\n\tSCHOOL : CSU
NORTHRIDGE";
cin.get();
}
void entry_menu() {
char ch;
int num;
cout << "\n\n\n\tENTRY MENU";
cout << "\n\n\t1.CREATE
STUDENT RECORD";
cout << "\n\n\t2.DISPLAY ALL
STUDENTS RECORDS";
cout << "\n\n\t3.SEARCH
STUDENT RECORD ";
cout << "\n\n\t4.MODIFY
STUDENT RECORD";
cout << "\n\n\t5.DELETE
STUDENT RECORD";
cout << "\n\n\t6.BACK TO MAIN
MENU";
cout << "\n\n\tPlease Enter
Your Choice (1-6) : ";
cin >> ch;
switch(ch) {
case '1': write_student(); break;
case '2': display_all(); break;
case '3': cout << "\n\n\tPlease Enter The Roll Number :
"; cin >> num;
display_sp(num); break;
case '4': cout << "\n\n\tPlease Enter The Roll Number :
"; cin >> num;
modify_student(num);break;
case '5': cout << "\n\n\tPlease Enter The Roll Number :
"; cin >> num;
delete_student(num);break;
case '6': break;
default: cout
<< "\a"; entry_menu();
}}