C++ Project on College Registration
Features
- Add student record
- Update student record
- Display student record
- Add modules
- Display module details
- Update Module
Source Code
#include <iostream> #include <fstream> #include <cstring> #include<stdio.h> #include<stdlib.h> using namespace std; char stdsRec[] = "stdtRecord.txt"; char modulesRecord[] = "modRecord.txt"; char tempFile[] = "tempFile.txt"; class Std{ public: //add one std's record to DB int addStdRecord(char *stdsRec){ int StdNo; char name[50]; ofstream out(stdsRec, ios_base::app); cout<<"\nEnter Std No : "; cin>>StdNo; out<<endl<<StdNo<<" | "; cout<<"\nEnter Name (50 char):"; cin>>name; out<<name<<" | "; int flag=-1; cout<<"\n0 - Under Grad.,1 - PostGrad"; cout<<"\nEnter :"; cin>>flag; int moduleCount =-1; if(flag==0) moduleCount = 6; else if(flag ==1) moduleCount = 4; else{ cout<<"\nErr: Pl. enter either 0or1 "; return -1; } for(int i=0; i<moduleCount; i++){ int module; cout<<"\nEnter Module No"<<i<<" : "; cin>>module; out<<module<<" | "; } char choice; cout<<"\nadd Marks against each module? y/n :"; cin>>choice; //separator to find start of marks out<<" = "; if(choice=='y') { for(int i=0; i<moduleCount; i++){ double marks; cout<<"\nEnter Marks of Module No"<<i<<" : "; cin>>marks; out<<marks<<" | "; } } out.close(); } //update any std's recrod to DB int updateStdRecord(){ int StdNo; cout<<"\nEnter Std Number :"; cin>>StdNo; //modify if it exist e } //display record of any Std by his Stdno int displayStdRecord(){ int StdNo; //display if Std record exist cout<<"\n# Find Any Module Details #\n"; cout<<"\nEnter Std No to be searched: "; cin>>StdNo; int flag = -1; ifstream file(stdsRec); string str; while (getline(file, str)) { if(str.length()>0){ char temp[1000]; memset(temp,1000,sizeof(temp)); strcpy(temp, str.c_str()); char * ptr; ptr = strtok(temp ,"|"); int tempno = atoi(ptr); if(StdNo == tempno ) { cout<<"\n"<<str; flag = 1; break; } } } if(flag==-1) cout<<"\nNo Std found with No :"<<StdNo; file.close(); getchar();getchar(); } //display record of all Stds int displayAllStdRecord(){ ifstream file(stdsRec); string str; cout<<"\n# List of All Std #"; if(!file) { cout<<"\nNo Record found !!"; return -1; } while (getline(file, str)) { if(str.length()>0) cout<<"\n\t"<<str; } file.close(); getchar();getchar(); } int findStdMarks(){ cout<<"\n# Find Marks of any Std #\n"; int StdNo; cout<<"\nEnter Std No : "; cin>>StdNo; int flag = -1; ifstream file(stdsRec); string str; while (getline(file, str)) { if(str.length()>0){ char temp[1000]; memset(temp,1000, sizeof(temp)); strcpy(temp, str.c_str()); char * ptr; ptr = strtok(temp ,"|"); int tempno = atoi(ptr); if(StdNo == tempno ) { memset(temp,1000,sizeof(temp)); strcpy(temp, str.c_str()); char *ptr1 = strtok(temp, "="); ptr1 = strtok(NULL,"="); //cout<<"\n====> "<<ptr1; ptr1 = strtok(ptr1, "|"); double sum = atof(ptr1); double minNo = sum; //cout<<"\nMin no is : "<< minNo; int countSub = 0; while(ptr1 = strtok(NULL,"|")){ //cout<<"-> "<<ptr1; if(atof(ptr1)<minNo) minNo = atof(ptr1); sum += atof(ptr1); countSub++; } //cout<<"\nsum is : "<<sum; //cout<<"\ncount sub : "<<countSub; //cout<<"\nMIn no is : "<<minNo; if(countSub == 6){ sum -= minNo; cout<<"\nsum is : "<<sum; sum = sum / 5; cout<<"\nAvg Sum is top 5 sub: "<<sum; if(sum>70) cout<<"\nGrade : A"; else if(sum>=60 && sum<=69) cout<<"\nGrade is : B+"; else if(sum >=50 && sum<=59) cout<<"\nGrade is : B"; else if(sum>=41 && sum<=49) cout<<"\nGrade is : C"; else if(sum>=40) cout<<"\nGrade is : D"; else if(sum<40) cout<<"\nGrade is: F"; } else{ sum = sum / 4; cout<<"\nAvg Sum of 4 sub : "<< sum; if(sum>= 76) cout<<"\nDistinction"; else if(sum>=61 && sum<=75 ) cout<<"\nMerit"; else if(sum>=50 && sum<=60) cout<<"\nPass"; else if(sum<50) cout<<"\nFail "; } flag = 1; break; } } } if(flag==-1) cout<<"\nNo Std found with No : "<<StdNo; file.close(); getchar();getchar(); } int updateStd(){ cout<<"\n# Update Std Record #\n"; int StdNo; cout<<"\nEnter Std No : "; cin>>StdNo; int flag = -1; ifstream file(stdsRec); string str; int StdFound = 0; while (getline(file, str)) { if(str.length()>0){ char temp[1000]; memset(temp,1000,sizeof(temp)); strcpy(temp, str.c_str()); char * ptr; ptr = strtok(temp ,"|"); int tempno = atoi(ptr); if(StdNo == tempno ) { addStdRecord(tempFile); StdFound = 1; } else{ ofstream file(tempFile, ios_base::app); file<<endl<<str; file.close(); } } } file.close(); if(StdFound){ remove(stdsRec); rename(tempFile, stdsRec); } } }; class Module{ public: int displayAnyModuleInfo(){ int moduleNo; cout<<"\n# Find Module Details #\n"; cout<<"\nEnter Module No :"; cin>>moduleNo; int flag = -1; ifstream file(modulesRecord); string str; while (getline(file, str)) { if(str.length()>0){ char temp[1000]; memset(temp,1000,sizeof(temp)); strcpy(temp, str.c_str()); char * ptr; ptr = strtok(temp ,"|"); int tempno = atoi(ptr); cout<<"\nModule no is : "<<temp; if(moduleNo == tempno ) { cout<<"\n"<<str; flag = 1; break; } } } if(!flag) cout<<"\nNo Module found : "<<moduleNo; file.close(); getchar();getchar(); } int displayAllModulesInfo(){ cout<<"\n# List of All Modules #\n"; //read all modules from record ifstream file(modulesRecord); string str; cout<<"\nModule No | Title | Level"; while (getline(file, str)) { if(str.length()>0) cout<<"\n"<<str; } file.close(); getchar();getchar(); } int updateModulesInfo(){ cout<<"\n# Update Module Info #"; int moduleNo; cout<<"\nEnter Module No to be modified:"; cin>>moduleNo; } //add new module to DB int addModule(char *modulerecord){ int moduleNo; char title[50]; char level[50]; ofstream out(modulerecord, ios_base::app); cout<<"\n# Add New Module #"; cout<<"\nEnter Module No : "; cin>>moduleNo; out<<endl<<moduleNo<<" | "; cout<<"\nEnter Title of Module (50 char) :"; cin>>title; out<<title<<" | "; cout<<"\nEnter Level UnderGrad/Grad.:"; cin>>level; out<<level<<" | "; cout<<"\nModule Added !!"; getchar(); out.close(); } int updateModule(){ cout<<"\n# Update Module Record #\n"; int moduleNo; cout<<"\nEnter Module No : "; cin>>moduleNo; int flag = -1; ifstream file(modulesRecord); string str; int moduleFound = 0; while (getline(file, str)) { if(str.length()>0){ char temp[1000]; memset(temp,1000,sizeof(temp)); strcpy(temp, str.c_str()); char * ptr; ptr = strtok(temp ,"|"); int tempno = atoi(ptr); if(moduleNo == tempno ) { addModule(tempFile); moduleFound = 1; } else{ ofstream file(tempFile, ios_base::app); file<<endl<<str; file.close(); } } } file.close(); if(moduleFound){ remove(modulesRecord); rename(tempFile, modulesRecord); } } }; int main(int argc, char** argv) { Std stdObj; Module modObject; int choice = -1; while(choice !=0){ system("cls"); cout<<"\n# College Registration System #"; cout<<"\n 1> Add Record"; cout<<"\n2> Update Record"; cout<<"\n3> Get any record"; cout<<"\n4> Get all record"; cout<<"\n5> Add Module"; cout<<"\n6> Get Any Module details"; cout<<"\n7> Get All Modules details"; cout<<"\n8> Update Module"; cout<<"\n9> Find Std Marks"; cout<<"\n0> Exit.."; cout<<"\n Enter your choice : "; cin>>choice; switch(choice){ case 1: stdObj.addStdRecord(stdsRec); break; case 2: stdObj.updateStd(); break; case 3: stdObj.displayStdRecord(); break; case 4: stdObj.displayAllStdRecord(); break; case 5: modObject.addModule(modulesRecord); break; case 6: modObject.displayAnyModuleInfo(); break; case 7: modObject.displayAllModulesInfo(); break; case 8: modObject.updateModule(); break; case 9: stdObj.findStdMarks(); break; case 0: cout<<"\nThankyou !! Good Bye\n "; break; default: cout<<"\nInvalid choice.."; getchar(); } } return 0; }