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