Ask Question

Name:
Title:
Your Question:

Answer Question

Name:
Your Answer:
User Submitted Source Code!


Description:
  TCS Project
Language: C/C++
Code:
#include<fstream.h>
#include<conio.h>
#include<stdio.h>
#include<dos.h>
#include<graphics.h>
#include<string.h>
#include<process.h>
#include<ctype.h>
#include<math.h>
void clear() //MAKE THE SCREEN CLEAR
{
 clrscr();
 cleardevice();
 setbkcolor(MAGENTA);
}
int validchar(char a[20])
{
 int ch=1;
 for(int i=0;i<strlen(a);i++)
 if(!isalpha(a[i])||a[0]=='�')
 ch=0;
 if(ch==0)
 cout<<"INVALID";
 return ch;
}
int validint(char a[20])
{
 int ch=1;
 for(int i=0;i<strlen(a);i++)
 if(!isdigit(a[i])||a[0]=='�')
 ch=0;
 if(ch==0)
 cout<<"INVALID";
 return ch;
}
int validmark(int a)
{
 int ch=1;
 if(a>100||a<0)
 {
  ch=0;
  cout<<"INVALID";
 }
 return ch;
}
int datevalid(int dd,int mm,int yy)
{
 int days,flag=0;
 switch(mm)
 {
  case 1: case 3: case 5: case 7:case 8: case 10: case 12 : days=31;
  break;
  case 4: case 6: case 9: case 11 : days=30;
  break;
  case 2 :
  if ((yy%4==0)||((yy%400==0)&&(yy%100!=0)))
  days=29;
  else
  days=28;
 }
 if(yy>1900&&mm>0&&mm<13&&dd>0&&dd<=days)
 flag=1;
 else
 cout<<"INVALID";
 return flag;
}
void logout()   //LOG OUT
{
 int x,y;
 clear();
 outtextxy(260,330,"THANK YOU");
 x=getmaxx()/2;
 y=getmaxy()/2;
 for(int i=30;i<200;i++)
 {
  delay(20);
  setcolor(i/10);
  arc(x,y,0,180,i-10);
 }
 getch();
 closegraph();//CLOSING THE GRAPH
 exit(0); //EXIT OF PROGRAM
}
void nf()
{
 clear();
 gotoxy(15,22);
 cout<<"RECORD NOT FOUND";
 gotoxy(15,23);
 cout<<"PRESS ANY KEY TO CONTINUE";
 getch();
}
class staff//INFORMATIN ABOUT STAFFS
{
 public:
 char name[20],addr[30],gender,dept[20],qualf[20],cnum[10],jobtit[15],id[8],bpay[8];
 int date[3],dob[3];
}s;
class department     //INFORMATION ABOUT DEPARTMENT
{
 public:
 char dept[20];
}z;
class jobtittle    //INFORMATION ABOUT JOB TITTLE
{
 public:
 char jobt[20];
}y;
class student        //INFORMATION ABOUT STUDENTS
{
 public:
 void calculate();     //FUNCTION TO CALCULATE MAXIMUM MARK AND GRADE
 char name[20],addr[10],gender,pnum[10],regisno[8],sec,rno[10],grade[5],result;
 int dateadd[3],dob[3],Class,m[5];
}a; //class ends here
void deptm()//DEPARTMENT
{
 int pos,flag1;
 char e[20];
 clear();
 gotoxy(10,6);
 A:
 cout<<"ntENTER THE DEPARTMENT: ";
 scanf("%s",&e);
 flag1=validchar(e);
 if(flag1==0)
 goto A;
 fstream f;
 f.open("departme.dat",ios::out|ios::binary);
 f.seekg(0);
 while(!f.eof())
 {
  f.read((char*)&z,sizeof(department));
  pos=f.tellp();
  if(strcmp(z.dept,e)==0)
  {
   flag1=0;
   break;
  }
  f.seekg(pos);
 }
 if(flag1==0)
 cout<<"ntALREADY EXIStS";
 else
 {
  strcpy(z.dept,e);
  f.write((char *)&z,sizeof(department));
  cout<<"ntDEPARTMENT IS ADDED SUCCESSFULLY";
 }
 f.close();
 getch();
}
void job()         //ADD JOB TITTLE
{
 int pos,flag1;
 char e[20];
 clear();
 gotoxy(10,6);
 A:
 cout<<"ntENTER THE JOB TITTLE: ";
 scanf("%s",&e);
 flag1=validchar(e);
 if(flag1==0)
 goto A;
 fstream f;
 f.open("jobtitle.dat",ios::out|ios::binary);
 f.seekg(0);
 while(!f.eof())
 {
  f.read((char*)&y,sizeof(jobtittle));
  pos=f.tellp();
  if(strcmp(y.jobt,e)==0)
  {
   flag1=0;
   break;
  }
  f.seekg(pos);
 }
 if(flag1==0)
 cout<<"ntALREADY EXISTS";
 else
 {
  strcpy(y.jobt,e);
  cout<<"ntJOB TITLE IS ADDED SUCCESSFULLY";
  f.write((char*)&y,sizeof(jobtittle));
 }
 f.close();
 getch();
}
void dsti()  //DISPLAY STAFFS INFORMATION
{
 clear();
 for (int i=60,j=3;i<=30,j<=31;i--,j++)    //MARQUE TEXT
 {
  gotoxy(j,3);cout<<" STAFF ";
  gotoxy(i,3);cout<<" RECORD MENU ";
  delay(15);
 }
 gotoxy(10,7);   cout<<" NAME: "<<s.name;
 gotoxy(50,7);   cout<<" ID: "<<s.id;
 gotoxy(10,9);   cout<<" GENDER: "<<s.gender;
 gotoxy(50,9);   cout<<" DEPARTMENT: "<<s.dept;
 gotoxy(10,11);  cout<<" QUALIFICATION: "<<s.qualf;
 gotoxy(50,11);  cout<<" CONTACT NUMBER: "<<s.cnum;
 gotoxy(10,13);  cout<<" JOB TITLE: "<<s.jobtit;
 gotoxy(50,13);  cout<<" DATE OF JOINING: "<<s.date[0]<<'/'<<s.date[1]<<'/'<<s.date[2]<<'/';
 gotoxy(11,15);  cout<<"BASIC PAY: "<<s.bpay;
 gotoxy(51,15);  cout<<"DATE OF BIRTH: "<<s.dob[0]<<'/'<<s.dob[1]<<'/'<<s.dob[2]<<'/';
 gotoxy(11,17);  cout<<"ADDRESS: "<<s.addr;
 getch();
}
void dstbad()      //DETAILS OF STAFF BASED ON DATE OF JOINING
{
 int pos;
 clear();
 fstream f;
 f.open("staff.dat",ios::binary|ios::out);
 f.seekg(0);
 while(!f.eof())
 {
  pos=f.tellp();
  f.read((char*)&s,sizeof(staff));
  dsti();
  f.seekg(pos);
  }
 f.close();
}
void sstid()//SEARCH ON STAFF ID
{
 int flag=0,pos;
 char srgno[20];
 clear();
 gotoxy(20,6);
 A:
 cout<<"ENTER ID FOR SEARCHING > ";
 scanf("%s",&srgno);
 flag=validint(srgno);
 if(flag==0)
 goto A;
 fstream f;
 clear();
 f.open("staff.dat",ios::out|ios::binary|ios::in);
 f.seekg(0);
 while(!f.eof())
 {
  f.read((char*)&s,sizeof(staff));
  pos=f.tellp();
  if(strcmp(s.id,srgno)==0)
  {
   gotoxy(15,3);
   cout<<" SEARCHING RECORD FOUND";
   getch();
   dsti();
   flag=1;
   break;
  }
  f.seekg(pos);
 }
 if(flag==0)
 nf();
 f.close();
}
void sstn()//SEARCH ON STAFF NAME
{
 int flag=1,pos;
 char sname[20];
 A:
 clear();
 gotoxy(20,6);
 cout<<"ENTER NAME FOR SEARCHING > ";
 scanf("%s",&sname);
 flag=validchar(sname);
 if(flag==0)
 goto A;
 fstream f;
 f.open("staff.dat",ios::in|ios::app|ios::binary);
 f.read((char*)&s,sizeof(staff));
 f.seekg(0);
 while(!f.eof())
 {
  f.read((char*)&s,sizeof(staff));
  pos=f.tellp();
  if(strcmp(sname,s.name)==0)
  {
   gotoxy(15,3);
   cout<<" SEARCHING RECORD FOUND";
   getch();
   dsti();
   flag=1;
   break;
  }
  f.seekg(pos);
 }
 if(flag==0)
 nf();
 f.close();
}
void addstaff()//ADDING STAFFS
{
 char flag='n';
 fstream f;
 do
 {
  f.open("staff.dat",ios::out|ios::binary|ios::in|ios::app);//OPENING FILE
  clear();
  gotoxy(1,1);
  cout<<"ntttttADD STAFF";
  A:
  cout<<"ntNAME: ";
  scanf("%s",&s.name);
  if(validchar(s.name)==0)
  goto A;
  B:
  cout<<"ntID: ";
  scanf("%s",&s.id);
  if(validint(s.id)==0)
  goto B;
  C:
  cout<<"ntGENDER: ";
  scanf("%c%c",&s.gender,&s.gender);
  s.gender=toupper(s.gender);
  if(s.gender!='M'&&s.gender!='F'&&s.gender!='T'&&s.gender!='�')
  {
   cout<<"ntINVALID.n";
   goto C;
  }
  D:
  cout<<"ntADDRESS: ";
  scanf("%s",&s.addr);
  if((s.addr[0]=='r')||(s.addr[0]=='�'))
  {
   cout<<"INVALID";
   goto D;
  }
  E:
  cout<<"ntCONTACT NUMBER: ";
  scanf("%s",&s.cnum);
  if(validint(s.cnum)==0)
  goto E;
  K:
  cout<<"ntDATE OF JOINING: ";
  scanf("%d%d%d",&s.date,&s.date[1],&s.date[2]);
  if(datevalid(s.date[0],s.date[1],s.date[2])==0)
  goto K;
  J:
  cout<<"ntDATE OF BIRTH: ";
  scanf("%d%d%d",&s.dob[0],&s.dob[1],&s.dob[2]);
  if(datevalid(s.dob[0],s.dob[1],s.dob[2])==0)
  {
   cout<<"ntINVALID";
   goto J;
  }
  F:
  cout<<"ntQUALIFICATION: ";
  scanf("%s",&s.qualf);
  if(validchar(s.qualf)==0)
  goto F;
  G:
  cout<<"ntDEPARTMENT: ";
  scanf("%s",&s.dept);
  if(validchar(s.dept)==0)
  goto A;
  H:
  cout<<"ntJOB TITLE: ";
  scanf("%s",&s.jobtit);
  if(validchar(s.jobtit)==0)
  goto H;
  I:
  cout<<"ntBASIC PAY: ";
  scanf("%s",&s.bpay);
  if(validint(s.bpay)==0)
  goto I;
  f.write((char *)&s,sizeof(staff));//WRITING IN THE FILE
  dsti();
  cout<<"nnttFILE HAS BEEN SAVED!nnttWANT TO ADD ANOTHER RECORD(Y/N): ";
  scanf("%c%c",&flag,&flag);
 }while(flag=='y'||flag=='Y');
 f.close(); //CLOSING THE FILE
}
void modifystaff()//MODIFY THE STAFFS
{
 int pos,flag1=1,flag2=0,i=0;
 char id[20];
 fstream f;
 f.open("staff.dat",ios::in|ios::out|ios::binary);
 clear();
 cout<<"nnttENTER ID FOR SEARCHING   > ";
 scanf("%s",&id);
 f.read((char*)&s,sizeof(s));
 f.seekg(0);
 while(!f.eof())
 {
  f.read((char*)&s,sizeof(s));
  pos=f.tellg();
  if(strcmp(id,s.id)==0)
  {
   flag2=1;
   cout<<"present";
   break;
  }
  i++;
  f.seekg(pos);
 }
 Z:
 if(flag2==1)
 {
  f.seekg(i*sizeof(s),ios::beg);
  f.seekg(i*sizeof(s),ios::beg);
  do
  {
   clear();
   gotoxy(1,1);
   cout<<"tttttMODIFY STAFFnt1-NAMEnt2-IDnt3-GENDERnt4-DOB"<<
   "nt5-ADDRESSnt6-CONTACT NUMBERnt7-DATE OF JOININGnt8-QUALIFICATION"<<
   "nt9-DEPARTMENTnt10-JOB TITTLEnt11-BASIC PAYntENTER YOUR CHOICE:t";
   scanf("%d",&flag1);
   clear();
   //ENTERING THE RESPECTIVE DATAS
   gotoxy(1,1);
   cout<<"tttMODIFY STAFF ";
   A:
   switch(flag1)
   {
    case 0:
    flag2=2;
    goto Z;
    case 1:
    cout<<"ntNAME: ";
    scanf("%s",&s.name);
    if(validchar(s.name)==0)
    goto A;
    break;
    case 2:
    cout<<"ntID: ";
    scanf("%s",&s.id);
    if(validint(s.id)==0)
    goto A;
    cout<<"ntGENDER: ";
    scanf("%c%c",&s.gender,&s.gender);
    s.gender=toupper(s.gender);
    if(s.gender!='M'&&s.gender!='F'&&s.gender!='T'&&s.gender!='�')
    {
     cout<<"ntINVALID.n";
     goto A;
    }
    break;
    case 4:
    cout<<"ntDATE OF BIRTH: ";
    scanf("%d%d%d",&s.dob[0],&s.dob[1],&s.dob[2]);
    if(datevalid(s.dob[0],s.dob[1],s.dob[2])==0)
    goto A;
    break;
    case 5:
    cout<<"ntADDRESS: ";
    scanf("%s",&s.addr);
    if(s.addr[0]=='�')
    goto A;
    break;
    case 6:
    cout<<"ntCONTACT NUMBER: ";
    scanf("%s",&s.cnum);
    if(validint(s.cnum)==0)
    goto A;
    break;
    case 7:
    cout<<"ntDATE OF JOINING: ";
    scanf("%d%d%d",&s.date[0],&s.date[1],&s.date[2]);
    if(datevalid(s.date[0],s.date[1],s.date[2])==0)
    goto A;
    break;
    case 8:
    cout<<"ntQUALIFICATION: ";
    scanf("%s",&s.qualf);
    if(validchar(s.qualf)==0)
    goto A;
    break;
    case 9:
    cout<<"ntDEPARTMENT: ";
    scanf("%s",&s.dept);
    if(validchar(s.dept)==0)
    goto A;
    break;
    case 10:
    cout<<"ntJOB TITTLE: ";
    scanf("%s",&s.jobtit);
    if(validchar(s.jobtit)==0)
    goto A;
    break;
    case 11:
    cout<<"ntBASIC PAY: ";
    scanf("%s",&s.bpay);
    if(validint(s.bpay)==0)
    goto A;
    break;
    default:
    clear();
    gotoxy(2,2);
    cout<<"WRONG CHOICE";
    break;
   }
   clear();
   cout<<"ntWANT TO EDIT ANOTHER DATA: ";
   scanf("%c%c",&flag1,&flag1);
  }while(flag1=='y'||flag1=='Y');
  f.seekg(i*sizeof(s),ios::beg);
  f.write((char*)&s,sizeof(s));
  dsti();
 }
 f.close();
 if(flag2==0)
 nf();
}
void dsi()  //display students information
{
 clear();
 gotoxy(20,6);
 for (int i=60,j=3;i<=30,j<=31;i--,j++)    //MARQUE TEXT
 {
  gotoxy(j,3);cout<<" STUDENT ";
  gotoxy(i,3);cout<<" RECORD MENU ";
  delay(25);
 }
 gotoxy(10,7);  cout<<"NAME: "<<a.name;
 gotoxy(50,7);  cout<<"ROLL NUMBER: "<<a.rno;
 gotoxy(10,9);  cout<<"CLASS: "<<a.Class;
 gotoxy(50,9);  cout<<"SECTION: "<<a.sec;
 gotoxy(10,11); cout<<"GENDER: "<<a.gender;
 gotoxy(50,11); cout<<"RESIDENTIAL ADDRESS: "<<a.addr;
 gotoxy(10,13); cout<<"PARENTS PHONE: "<<a.pnum;
 gotoxy(50,13); cout<<"DATE OF ADMISSION: "<<a.dateadd[0]<<'/'<<a.dateadd[1]<<'/'<<a.dateadd[2]<<'/';
 gotoxy(11,15); cout<<"REGISTRATION NUMBER: "<<a.regisno;
 gotoxy(51,15); cout<<"DATE OF BIRTH: "<<a.dob[0]<<'/'<<a.dob[1]<<'/'<<a.dob[2]<<'/';
 getch();
 clear();
 rectangle(8,3,585,220);
 line(150,3,150,220);
 line(300,3,300,220);
 line(400,3,400,220);
 line(500,3,500,220);
 line(8,100,585,100);
 gotoxy(10,5);  cout<<"PHYSICS";
 gotoxy(25,5);  cout<<"CHEMISTRY";
 gotoxy(40,5);  cout<<"MATHS";
 gotoxy(55,5);  cout<<"ENGLISH";
 gotoxy(70,5);  cout<<"CS";
 gotoxy(10,8);  cout<<a.m[0];
 gotoxy(25,8);  cout<<a.m[1];
 gotoxy(40,8);  cout<<a.m[2];
 gotoxy(55,8);  cout<<a.m[3];
 gotoxy(70,8);  cout<<a.m[4];
 gotoxy(10,10); cout<<a.grade[0];
 gotoxy(25,10); cout<<a.grade[1];
 gotoxy(40,10); cout<<a.grade[2];
 gotoxy(55,10); cout<<a.grade[3];
 gotoxy(70,10); cout<<a.grade[4];
 gotoxy(4,20);  cout<<"REGISTRATION NUMBER:  "<<a.regisno;
 gotoxy(4,22);  cout<<"PASS MARK: 50";
 gotoxy(4,24);  cout<<"RESULT:  ";
 if(a.result==0)
 cout<<"FAIL";
 else
 cout<<"PASS";
 getch();
}
void ssrgno()//SEARCH ON STUDENT ROLL NUMBER
{
 int flag=0,pos;
 char srno[20];
 clear();
 gotoxy(20,6);
 cout<<"ENTER ROLL NUMBER FOR SEARCHINMG > ";
 scanf("%s",&srno);
 fstream f;
 f.open("student.dat",ios::in|ios::app|ios::binary);
 f.seekg(0);
 while(!f.eof())
 {
  f.read((char*)&a,sizeof(student));
  pos=f.tellp();
  if(strcmp(a.rno,srno)==0)
  {
   gotoxy(15,3);
   cout<<" SEARCHING RECORD FOUND";
   getch();
   dsi();
   flag=1;
   break;
  }
  f.seekg(pos);
 }
 if(flag==0)
 nf();
 f.close();
}
void ssn()//search student name
{
 int flag=0,pos;
 char na[20],sname[10];
 clear();
 gotoxy(20,6);
 cout<<"ENTER NAME FOR SEARCHINMG > ";
 scanf("%s",&sname);
 fstream f;
 f.open("student.dat",ios::binary|ios::out);
 while(!f.eof())
 {
  f.read((char*)&a,sizeof(student));
  pos=f.tellp();
  if(strcmp(a.name,sname)==0)
  {
   clear();
   gotoxy(15,3);
   cout<<" SEARCHING RECORD FOUND";
   getch();
   dsi();
   flag=1;
   break;
  }
  f.seekg(pos);
 }
 if(flag==0)
 nf();
 f.close();
}
void searsn()    //SEARCH ON SUBJECT NAME
{
 char str[20],sub[5][20]={"chemistry","physics","maths","computer science","english"};
 int fla=0;
 clear();
 gotoxy(2,2);
 cout<<"ENTER THE SUBJECT NAME TO BE SEARCHED: ";
 scanf("%s",&str);
 strlwr(str);
 for(int i=0;i<5;i++)
 {
  if(strcmpi(str,sub[i])==0);
  fla=1;
 }
 if(fla==1)
 {
  clear();
  gotoxy(2,2);
  cout<<"SUBJECT PRESENT";
 }
 else
 {
  clear();
  gotoxy(2,2);
  cout<<"SUBJECT NOT PRESENT";
 }
 getch();
}
void dsbm()        //DISPLAY STUDENTS DATA BASED ON MARK
{
 int pos;
 clear();
 fstream f;
 f.open("student.dat",ios::in|ios::app|ios::binary|ios::out);
 cout<<"nntDETAILS OF STUDENTS WHO PASSED";
 getch();
 while(!f.eof())
 {
  f.read((char*)&a,sizeof(a));
  pos=f.tellp();
  if(a.result==1)
  dsi();
  f.seekg(pos);
 }
 clear();
 cout<<"nntRESULTS OF STUDENTS WHO FAILED";
 getch();
 f.seekg(0);
 f.seekp(0);
 while(!f.eof())
 {
  f.read((char*)&a,sizeof(a));
  pos=f.tellp();
  if(a.result==0)
  dsi();
  f.seekg(pos);
 }
 f.close();
}
void addstudent()//ADDING STUDENTS
{
 fstream f;
 f.open("student.dat",ios::in|ios::app|ios::binary);
 clear();
 gotoxy(0,1);
 cout<<"ttttADD STUDENT";
 A:
 cout<<"nntNAME: ";
 scanf("%s",&a.name);
 if(validchar(a.name)==0)
 goto A;
 B:
 cout<<"ntREGISTRATION NUMBER: ";
 scanf("%s",&a.regisno);
 if(validint(a.regisno)==0)
 goto B;
 O:
 cout<<"ntGENDER: ";
 scanf("%c%c",&a.gender,&a.gender);
 a.gender=toupper(a.gender);
 if(a.gender!='M'&&a.gender!='F'&&a.gender!='T')
 {
  cout<<"ntINVALID.n";
  goto O;
 }
 J:
 cout<<"ntDATE OF BIRTH: ";
 scanf("%d%d%d",&a.dob[0],&a.dob[1],&a.dob[2]);
 if(datevalid(a.dob[0],a.dob[1],a.dob[2])==0)
 goto J;
 C:
 cout<<"ntADDRESS: ";
 scanf("%s",&a.addr);
 if((a.addr[0]=='r')||(a.addr[0]=='�'))
 {
  cout<<"ntINVALIDn";
  goto C;
 }
 D:
 cout<<"ntPARENTS PHONE NUMBER: ";
 scanf("%s",&a.pnum);
 if(validint(a.pnum)==0)
 goto D;
 cout<<"ntDATE OF ADMISSION: ";
 scanf("%d%d%d",&a.dateadd[0],&a.dateadd[1],&a.dateadd[2]);
 if(datevalid(a.dateadd[0],a.dateadd[1],a.dateadd[2])==0)
 goto J;
 E:
 cout<<"ntCLASS(numbers): ";
 scanf("%d",&a.Class);
 if(a.Class<1||a.Class>12)
 {
  cout<<"ntINVALID";
  goto E;
 }
 I:
 cout<<"ntSECTION: ";
 scanf("%c%c",&a.sec,&a.sec);
 if(!isalpha(a.sec))
 {
  cout<<"ntINVALID";
  goto I;
 }
 F:
 cout<<"ntROLL NUMBER: ";
 scanf("%s",&a.rno);
 if(validint(a.rno)==0)
 goto F;
 B1:
 cout<<"ntENTER THE MARKS IN PHYSICS OUT OF 100 : ";
 scanf("%d",&a.m[0]);
 if(validmark(a.m[0])==0)
 goto B1;
 C1:
 cout<<"ntENTER THE MARKS IN CHEMISTRY OUT OF 100 : ";
 scanf("%d",&a.m[1]);
 if(validmark(a.m[0])==0)
 goto C1;
 D1:
 cout<<"ntENTER THE MARKS IN MATHS OUT OF 100 : ";
 scanf("%d",&a.m[2]);
 if(validmark(a.m[0])==0)
 goto D1;
 E1:
 cout<<"ntENTER THE MARKS IN ENGLISH OUT OF 100 : ";
 scanf("%d",&a.m[3]);
 if(validmark(a.m[0])==0)
 goto E1;
 F1:
 cout<<"ntENTER THE MARKS IN COMPUTER SCIENCE OUT OF 100 : ";
 scanf("%d",&a.m[4]);
 if(validmark(a.m[0])==0)
 goto F1;
 a.calculate();
 f.write((char*)&a,sizeof(a));
 dsi();
 f.close();
}
void student::calculate()      //TO CALCULATE THE MAXIMUM MARKS
{
 result=1;
 for(int i=0;i<5;i++)
 {
  if(m[i]>75)
  grade[i]='A';
  else if(m[i]>=50)
  grade[i]='B';
  else
  {
   grade[i]='C';
   result=0;
  }
 }
}
void modifystudent()
{
 int pos,flag1=1,flag2=0,i=0,ch;
 char check[20];
 fstream f;
 f.open("student.dat",ios::in|ios::out|ios::binary);
 clear();
 cout<<"nnttENTER ROLL NUMBER  > ";
 scanf("%s",&check);
 f.read((char*)&a,sizeof(a));
 f.seekg(0);
 while(!f.eof())
 {
  f.read((char*)&a,sizeof(a));
  pos=f.tellg();
  if(strcmp(check,a.regisno)==0)
  {
   flag2=1;
   cout<<"PRESENT";
   break;
  }
  i++;
  f.seekg(pos);
 }
 Z:
 if(flag2==1)
 {
  f.seekg(i*sizeof(a),ios::beg);
  f.seekg(i*sizeof(a),ios::beg);
  do
  {
   B:
   clear();
   //DISPLAYING THE CHOICE
   gotoxy(1,1);
   cout<<"tttMODIFY STUDENTnt1-NAMEnt2-REGISTRATION NUMBERnt3-GENDER"<<
   "nt4-DOBnt5-ADDRESSnt6-PARENTS PHONE NUMBERnt7-DATE OF ADDMISSION"<<
   "nt8-CLASSnt9-SECTOINnt10-ROLL NUMBERnt11-PHYSICS MARKnt"<<
   "12-CHEMISTRY MARKnt13-MATHS MARKnt14-ENGLISH MARKnt"<<
   "15-COMPUTER SCIENCE MARKntENTER YOUR CHOICE:   ";
   scanf("%d",&ch);
   clear();
   //ENTERING THE RESPECTIVE DATAS
   A:
   switch(ch)
   {
    case 0:
    flag2=2;
    goto Z;
    case 1:
    cout<<"ntNAME: ";
    scanf("%s",&a.name);
    if(validchar(a.name)==0)
    goto A;
    break;
    case 2:
    cout<<"ntREGISTRATION NUMBER: ";
    scanf("%s",&a.regisno);
    if(validint(a.regisno)==0)
    goto A;
    break;
    case 3:
    cout<<"ntGENDER: ";
    scanf("%c%c",&a.gender,&a.gender);
    toupper(a.gender);
    if(a.gender!='M'&&a.gender!='F'&&a.gender!='T'&&a.gender!='�')
    {
     cout<<"ntINVALID.n";
     goto A;
    }
    break;
    case 4:
    cout<<"ntDATE OF BIRTH: ";
    scanf("%d%d%d",&a.dob[0],&a.dob[1],&a.dob[2]);
    if(datevalid(a.dob[0],a.dob[1],a.dob[2])==0)
    goto A;
    break;
    case 5:
    cout<<"ntADDDRESS: ";
    scanf("%s",&a.addr);
    if((a.addr[0]=='r')||(a.addr[0]=='�'))
    {
     cout<<"ntINVALID";
     goto A;
    }
    break;
    case 6:
    cout<<"ntPARENTS PHONE NUMBER: ";
    scanf("%s",&a.pnum);
    if(validint(a.pnum)==0)
    goto A;
    break;
    case 7:
    cout<<"ntDATE OF ADDMISSION: ";
    scanf("%d%d%d",&a.dateadd[0],&a.dateadd[1],&a.dateadd[2]);
    if(datevalid(a.dateadd[0],a.dateadd[1],a.dateadd[2])==0)
    goto A;
    break;
    case 8:
    cout<<"ntCLASS: ";
    scanf("%d",&a.Class);
    if(a.Class<0||a.Class>13)
    {
     cout<<"ntINVALID";
     goto A;
    }
    case 9:
    cout<<"ntSECTION: ";
    scanf("%c%c",&a.sec,&a.sec);
    if(!isalpha(a.sec))
    {
     cout<<"ntINVALID";
     goto A;
    }
    break;
    case 10:
    cout<<"ntROLL NUMBER: ";
    scanf("%s",&a.rno);
    if(validint(a.rno)==0)
    goto A;
    break;
    case 11:
    cout<<"ENTER THE PHYSICS MARK: ";
    scanf("%d",&a.m[0]);
    if(validmark(a.m[0])==0)
    goto A;
    break;
    case 12:
    cout<<"ntENTER THE CHEMISTRY MARK: ";
    scanf("%d",&a.m[1]);
    if(validmark(a.m[1])==0)
    goto A;
    break;
    case 13:
    gotoxy(2,2);
    cout<<"ntENTER THE MATHS MARK: ";
    scanf("%d",&a.m[2]);
    if(validmark(a.m[2])==0)
    goto A;
    break;
    case 14:
    cout<<"ntENTER THE ENGLISH MARK: ";
    scanf("%d",&a.m[3]);
    if(validmark(a.m[3])==0)
    goto A;
    break;
    case 15:
    cout<<"ntENTER THE COMPUTER SCIENCE MARK: ";
    scanf("%d",&a.m[4]);
    if(validmark(a.m[4])==0)
    goto A;
    break;
    default:
    clear();
    gotoxy(4,4);
    cout<<"WRONG CHOICE";
    goto B;
   }
   clear();
   cout<<"ntWANT TO EDIT ANOTHER DATA: ";
   scanf("%c%c",&flag1,&flag1);
  }while(flag1=='y'||flag1=='Y');
  f.seekg(i*sizeof(a),ios::beg);
  f.seekg(i*sizeof(a),ios::beg);
  f.write((char*)&a,sizeof(a));
  dsi();
 }
 if(flag2==0)
 nf();
 f.close();
}
int introlog() //LOGIN
{
 char user[20],pass[20],user1[4][20]={"aravindh","nishanth","karthikeyan","anuppriya"},c;
 int flag=0,pos,co=0,d=DETECT,e;
 initgraph(&d,&e,"C:\tc\BGI");
 clear();
 //DISPLAYING INFORMATION
 for(int i=0;i<16;i++)
 {
  setcolor(i);  //CHANGING THE TEXT COLOUR
  outtextxy(255,175,"TCS PROJECT");
  outtextxy(175,225,"TOPIC::: SCHOOL MANAGEMENT SYSTEM");
  outtextxy(260,250,"GROUP III");
  outtextxy(250,275,"CODE CRUSHERS");
  outtextxy(175,350,"K.ARAVINDH          M.KARTHIKEYAN");
  outtextxy(175,370,"R.NISHANTH          S.ANUPPRIYA");
  delay(75);  //TIME DELAY  OF 0.075 SECONDS
 }
 setcolor(WHITE);  //CHANGING THE TEXT COLOUR
 A:
 getch();
 clear();
 c='a';
 if(co>2)
 {
  gotoxy(10,10);
  cout<<"tYOU HAVE TRIED MORE THAN TRICE";
  getch();
  closegraph();
  exit(0);
 }
 outtextxy(250,150,"LOGIN");
 cout<<"nnnnnnnnnnnnntttttt";
 outtextxy(200,198,"ENTER THE USER ID:");
 scanf("%s",&user);
 cout<<"ntttttt";
 outtextxy(200,230,"ENTER THE PASSWORD:");
 for(i=0;c!='r';i++) //ENTERING THE PASSWORD
 {
  c=getch();
  if(c!='b')
  pass[i]=c;
  if((c!='r')&&(c!='b'))
  cout<<'*';
  if(c=='b')
  if(i>0)
  cout<<"b b";
 }
 pass[i-1]='�';
 cout<<pass;
 if(user[0]=='r'||pass[0]=='�') //VERIFYING THE STATUS OF THE DATA
 {
  co++;
  outtextxy(100,300,"DATA NOT ENTERED, PLEASE ENTER.");
  getch();
  goto A;
 }
 for(i=0;(i<4)&&(flag!=1);i++)
 if(strcmp(user,user1[i])==0&&strcmp(pass,user1[i])==0)
 flag=1;
 if(flag!=1)
 {
  fstream f;
  f.open("staff.dat",ios::in|ios::app|ios::binary);
  while(!f.eof())
  {
   f.read((char*)&s,sizeof(staff));
   pos=f.tellp();
   if(strcmp(user,s.name)==0&&strcmp(pass,s.name)==0)
   {
    flag=2;
    break;
   }
   f.seekg(pos);
  }
  f.close();
 }
 clear();
 for(i=400;i>300;i--)
 {
  setcolor(WHITE);
  circle(300,i,40);
  setcolor(MAGENTA);
  circle(300,i,41);
  circle(300,i,39);
  delay(3);
 }
 setcolor(WHITE);
 circle(280,290,5);
 circle(320,290,5);
 if(flag==0)   //LOGIN UNSUCCESSFULL
 {
  co++;
  arc(300,330,45,135,20);
  outtextxy(220,200,"LOGIN UNSUCCESSFULL");
  outtextxy(220,220,"ACCESS DENIED");
  goto A;
 }
 else           //LOGIN SUCCESSFULL
 {
  arc(300,300,225,310,20);
  outtextxy(220,200,"LOGIN SUCCESSFULL");
  getch();
 }
 return flag;
}
void main()
{
 int who,ch,ch1,ch2;
 who=introlog();
 if(who==1)
 do
 {
  A:
  clear();
  cout<<"nt1-STAFFnt2-STUDENTnt3-LOG OUTntENTER YOUR CHOICE   :nnt"
  <<"NOTE::-->  PRESS 0 IN ALL MODULE TO RETURN PREVIOUS MODULEnnnnttt";
  scanf("%d",&ch);
  switch(ch)
  {
   case 1:
   do
   {
    clear();
    cout<<"ttttSTAFFnt1-ADD A STAFFnt2-SEARCH ON NAMEnt3-SEARCH ON ID"<<
    "nt4-ADD A NEW DEPARTMENTnt5-ADD A NEW JOB TITTLEnt6-MODIFY STAFF"<<
    "nt7-VIEW DETAILS OF STAFF BASED ON DATE OF JOININGnt8-LOG OUTntENTER YOUR CHOICE   :";
    scanf("%d",&ch2);
    switch(ch2)
    {
     case 0:
     goto A;
     case 1:
     addstaff(); //ADD A STAFF
     break;
     case 3:
     sstid();    //SEARCH ON STAFFS ID
     break;
     case 2:
     sstn();     //SEARCH ON STAFF NAME
     break;
     case 4:
     deptm();   //ADD A NEW DEPARTMENT
     break;
     case 5:
     job();     //ADD A NEW JOB TITTLE
     break;
     case 6:
     modifystaff(); //MODIFY A STAFF
     break;
     case 7:
     dstbad();    //DISPLAY STAFFS DATA BASED ON DATE OF JOINING
     break;
     case 8:
     logout();    //LOG OUT
     break;
     default:
     clear();
     gotoxy(2,2);
     cout<<"WRONG CHOICE";
     getch();
     break;
    }
   }while((ch1>=0)&&(ch1<9));
   break;
   case 2:
   do
   {
    clear();
    cout<<"ttttSTUDENTSnt1-ADD STUDENTnt2-MODIFY STUDENTnt"<<
    "3-SEARCH NAMEnt4-SEARCH REGISTRATION NUMBERnt"<<
    "5-DETAILS OF STUDENTS BASED ON RESULTnt6-SEACH SUBJECTnt"<<
    "7-LOG OUTntENTER YOUR CHOICE    :";
    scanf("%d",&ch1);
    switch(ch1)
    {
     case 0:
     goto A;
     case 1:
     addstudent();  //ADD A STUDENT
     break;
     case 2:
     modifystudent(); //MODIFY A STUDENT
     break;
     case 3:
     ssn(); //SEARCH ON STUDENTS NAME
     break;
     case 4:
     ssrgno(); //SEARCH ON STUDENT REGISTRATION NUMBER
     break;
     case 5:
     dsbm();    //DISLAY STUDENTS DATA BASED ON RESULT
     break;
     case 6:
     searsn();  //SEARCH ON SUBJECTS
     break;
     case 7:
     logout();   //LOG OUT
     break;
     default:
     clear();
     gotoxy(2,2);
     cout<<"WRONG CHOICE";
     getch();
     goto A;
    }
   }while((ch1>=0)&&(ch1<10));
   break;
   case 3:
   logout();       //LOG OUT
   break;
   default:
   clear();
   gotoxy(2,2);
   cout<<"WRONG CHOICE";
   getch();
   break;
  }
 }while((ch>=0)&&(ch<4));
 else
 do
 {
  B:
  clear();
  cout<<"ttttSTUDENTSnt1-ADD STUDENTnt2-MODIFY STUDENTnt"<<
  "3-SEARCH NAMEnt4-SEARCH REGISTRATION NUMBERnt"<<
  "5-DETAILS OF STUDENTS BASED ON RESULTnt6-SEARCH SUBJECT"<<
  "nt7-LOG OUTntENTER YOUR CHOICE    :";
  scanf("%d",&ch1);
  switch(ch1)
  {
   case 0:
   goto B;
   case 1:
   addstudent();  //ADD A STUDENT
   break;
   case 2:
   modifystudent(); //MODIFY A STUDENT
   break;
   case 3:
   ssn(); //SEARCH ON STUDENTS NAME
   break;
   case 4:
   ssrgno(); //SEARCH ON STUDENT REGISTRATION NUMBER
   break;
   case 5:
   dsbm();    //DISLAY STUDENTS DATA BASED ON RESULT
   break;
   case 6:
   searsn();  //SEARCH ON SUBJECTS
   break;
   case 7:
   logout();   //LOG OUT
   break;
   default:
   clear();
   gotoxy(2,2);
   cout<<"WRONG CHOICE";
   getch();
   clear();
   goto B;
  }
 }while((ch1>=0)&&(ch1<10));
}
          
Comments: