i make this project what i unable to use file handling

#include<iostream.h>
#include<conio.h>
#include<dos.h>
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include<fstream.h>
#include<ctype.h>
#include<bios.h>
#include<ctype.h>

int menu(int,char a[25],char b[25],char c[25],char d[25],char e[25],char sl1[2],char sl2[2],char title[40],char under[2]);
void lbyl(char a[50]);
void main_menu();
void student_menu();
void mark_menu();
int records=0;


void lbyl(char a[50])
{
int l,i;
l=strlen(a);
for (i=0;i<l;i++)
{
cout<<a[i];
}
}



struct s_date
{
int dd,mm,yyyy;
};

//DEFINING OF Stuctures
struct student
{
char address[30];
char fname[30];
long int redgno;
s_date dob;
char clas[5];
char name[20];
int sub1,sub2,sub3,sub4,sub5,total;
float avg,pre;
char div[10];
char st_code[10];
}s[10];

/****************************Function To Add Data***************************/
void add()
 {


 int i=0;
 char ch='y';
 char fn[20];
 fstream file;
 do
  {
  records++;
  ss:

  int st;
  int t_redg,mark;

  cout<<"\n\tStudents Data Collector";

  cout<<"\n\t=======================";

  cout<<"\n\tEnter The Following";

  cout<<"\n\tRegistaration No:";
  cin>>s[i].redgno;

  cout<<"\n\tName          :";
  gets(s[i].name);

  cout<<"\n\tAddress       :";
  gets(s[i].address);

  cout<<"\n\tFather's Name :";
  gets(s[i].fname);

  cout<<"\n\tClass         :";
  gets(s[i].clas);

  cout<<"\n\tDate Of Birth :DD MM YYYY";
  cin>>s[i].dob.dd>>s[i].dob.mm>>s[i].dob.yyyy;

  sa:
  cout<<"\n\tStudent Data Entry Form";

  cout<<"\n\t=======================";

  cout<<"\n\tEnter The Stream Code:\n\t1.Science Stream\n\t2.Commerce Streame";

  cin>>st;
  switch(st)
   {
   case 1:strcpy(s[i].st_code,"Science");
   break;
   case 2:strcpy(s[i].st_code,"Commerce");
   break;
   default:cout<<"\n\t\t\tInvalid Type.\n\nDo you want to continue?(Y/N)...";
       cin>>ch;
       if (ch=='y'||ch=='Y')
       {
        goto sa;
       }
       else add();
   }


  cout<<"\n\tStudent Data Entry Form";

  cout<<"\n\t=======================";

  cout<<"\n\tEnter The Following Marks";

  cout<<"\n\tSub1(Eng/Eng):";                                           //Sub 1

  cin>>s[i].sub1;

  cout<<"\n\tSub2(Math/A/C):";                                        //Sub 2

  cin>>s[i].sub2;

  cout<<"\n\tSub3(Phy/Eco):";                         //Sub 3

  cin>>s[i].sub3;

  cout<<"\n\tSub4(Chem/B.st):";                         //Sub 4

  cin>>s[i].sub4;
                                     //Sub 5
  cout<<"\n\tSub5(Bio/Comp):";

  cin>>s[i].sub5;
  s[i].total=s[i].sub1+s[i].sub2+s[i].sub3+s[i].sub4+s[i].sub5;
  if((s[i].sub1<33)||(s[i].sub2<33)||(s[i].sub3<33)||(s[i].sub4<33)||(s[i].sub5<33))
  strcpy(s[i].div,"Fail");
  else if(s[i].total>=375)
  strcpy(s[i].div,"Distintion");
  else if((s[i].total>=300)&&(s[i].total<375))
  strcpy(s[i].div,"First Class");
  else if((s[i].total>=250)&&(s[i].total<300))
  strcpy(s[i].div,"Second Class");
  else if(s[i].total<165)
  strcpy(s[i].div,"Fail");

  strcat(fn,s[i].name);
  strcat(fn,".txt");
  file.open(fn,ios::out);
   if(!file)
    {
    cout<<".";
    }
  file<<"                            Report Card Of "<<s[i].name
      <<"\nRegistration Number:"<<s[i].redgno<<"\nClass:"<<s[i].clas
      <<"\nAddress:"<<s[i].address<<"\nFather's Name:"<<s[i].fname
      <<"\nDate Of Birth:"<<s[i].dob.dd<<"-"<<s[i].dob.mm<<"-"<<s[i].dob.yyyy
      <<"\nStream:"<<s[i].st_code<<"\n\n\
-------------------------------------------------------------------------------\
    \nSubject Marks\n-------------\nSubject 1 :"
      <<s[i].sub1<<"\nSubject 2 :"<<s[i].sub2<<"\nSubject 3 :"<<s[i].sub3
      <<"\nSubject 4 :"<<s[i].sub4<<"\nSubject 5 :"<<s[i].sub5
      <<"\nTotal     :"<<s[i].total<<"\nGrade     :"<<s[i].div;
  file.close();

  i++;

  cout<<"\n\tWant More Record To Be Written?(Y/N)......";
  cin>>ch;
  }while(ch=='y'||ch=='Y');
  if(ch=='n'||ch=='N') student_menu();
 }

/******************************Function To Modify Marks**********************/
void mod()
 {
 int regno,flag=0,i;
 char ch;
 student te;

 cout<<"\n\n\tEnter The Reg No to be modified:";
 cin>>regno;
 for(i=0;i<10;i++)
  {
  if(s[i].redgno==regno)
   {
   flag=1;
   cout<<"\n\tSubject 1    :"<<s[i].sub1;
   cout<<"\n\tDo you want to change this?[y/n]";
   ch=getch();
   if(ch=='y')
    {
    cout<<"\n\tEnter New Value:";
    cin>>te.sub1;
    s[i].sub1=te.sub1;
    }
   cout<<"\n\tSubject  2  :"<<s[i].sub2;
   cout<<"\n\tDo you want to change this?[y/n]";
   ch=getch();
   if(ch=='y')
    {
    cout<<"\n\tEnter New Value:";
    cin>>te.sub2;
    s[i].sub2=te.sub2;
    }
   cout<<"\n\tSubject 3   :"<<s[i].sub3;
   cout<<"\n\tDo you want to change this?[y/n]";
   ch=getch();
   if(ch=='y')
    {
    cout<<"\n\tEnter New Value:";
    cin>>te.sub3;
    s[i].sub3=te.sub3;
    }
   cout<<"\n\tSubject 4   :"<<s[i].sub4;
   cout<<"\n\tDo you want to change this?[y/n]";
   ch=getch();
   if(ch=='y')
    {
    cout<<"\n\tEnter New Value:";
    cin>>te.sub4;
    s[i].sub4=te.sub4;
    }
   cout<<"\n\tSubject 5   :"<<s[i].sub5;
   cout<<"\n\tDo you want to change this?[y/n]";
   ch=getch();
   if(ch=='y')
    {
    cout<<"\n\tEnter New Value:";
    cin>>te.sub5;
    s[i].sub5=te.sub5;
    }
   }
  }
  if(flag==0) cout<<"\n\tInvalid Reg No!";
 }




/****************************Function To Make Menus**************************/
int menu(int num,char a[25],char b[25],char c[25],char d[25],char e[25],char sl1[2],char sl2[2],char title[40],char under[2])
{
char ch;
int key,x=4,sl=1,l,i;

l=strlen(title);

cout<<title;
cout<<"\n";

for(i=0;i<l;i++)
cout<<under;

    cout<<"\n\t"<<sl1<<a<<sl2;

    cout<<"\n\t "<<b;

    cout<<"\n\t "<<c;

    cout<<"\n\t "<<d;

    cout<<"\n\t "<<e;

cout<<"\n\tEnter Your Choice:1";
 key=bioskey(0);
while (key!=7181)
 {
 switch(key)
  {
  case 18432:                                   //UP
  l=strlen(title);

  cout<<title;
  cout<<"\n";

  for(i=0;i<l;i++)
  cout<<under;
        switch(x)
        {
        case 4: if (num==4) goto up4;
        else if (num==3) goto up3;
        else if (num==2) goto up2;

        cout<<"\n\t "<<a;

        cout<<"\n\t "<<b;

        cout<<"\n\t "<<c;

        cout<<"\n\t "<<d;

        cout<<sl1<<e<<sl2;

        cout<<"\n\tEnter Your Choice:5";sl=5;
        if (num==5) x=2;
        else x=1;
        break;
        case 2: up4:

        cout<<"\n\t "<<a;

        cout<<"\n\t "<<b;

        cout<<"\n\t "<<c;

        cout<<"\n\t"<<sl1<<d<<sl2;

        cout<<"\n\t "<<e;

        cout<<"\n\tEnter Your Choice:4";sl=4;
        if (num==5) x=3;
        else if (num==4) x=3;
        else x=1;
        break;
        case 3: up3:

        cout<<"\n\t "<<a;

        cout<<"\n\t "<<b;

        cout<<sl1<<c<<sl2;

        cout<<"\n\t "<<d;

        cout<<"\n\t "<<e<<" ";

        cout<<"\n\tEnter Your Choice:3";sl=3;
        x=1;
        break;
        case 1: up2:

        cout<<"\n\t "<<a;

        cout<<"\n\t"<<sl1<<b<<sl2;

        cout<<"\n\t "<<c;

        cout<<"\n\t "<<d;

        cout<<"\n\t "<<e;

        cout<<"\n\tEnter Your Choice:2";sl=2;
        if (num==5) x=5;
        else if (num==2) x=5;
        else x=5;
        break;
        case 5:
            cout<<"\n\t"<<sl1<<a<<sl2;

        cout<<"\n\t "<<b;

        cout<<"\n\t "<<c;

        cout<<"\n\t "<<d;

        cout<<"\n\t "<<e;

        cout<<"\n\tEnter Your Choice:1";sl=1;
        if (num==5) x=4;
        else if (num==2) x=1;
        else if (num==3) x=3;
        else if (num==4) x=2;
        break;
        default:cout<<"\n\tWrong!!2"<<x;
        getch();
        exit(0);
        }
        break;
  case 20480:
    clrscr();                //DOWN
    l=strlen(title);

     cout<<"\n\t"<<title;
  cout<<"\n";

  for(i=0;i<l;i++)
  cout<<under;
        switch(x)
        {
        case 1:
        cout<<" "<<a<<"\n"
        <<" "<<b<<"\n"
        <<" "<<c<<" \n"
        <<" "<<d<<" \n"
        <<sl1<<e<<sl2;

        cout<<"\n\tEnter Your Choice:5";sl=5;
        x=5;
        break;
        case 2:
        cout<<" "<<a<<"\n"
        <<" "<<b<<"\n"
        <<" "<<c<<" \n"
        <<sl1<<d<<sl2
        <<"\n "<<e<<" \n";

        cout<<"\n\tEnter Your Choice:4";sl=4;
        if (num==4) x=5;
        else x=1;
        break;
        case 3:
        cout<<"\t "<<a<<"\n"
        <<"\t "<<b<<"\n\t"
        <<sl1<<c<<sl2
        <<"\n\t "<<d<<" \n"
        <<"\t "<<e<<"\n ";

        cout<<"\n\tEnter Your Choice:3";sl=3;
        if (num==5) x=2;
        else if (num==3) x=5;
        else x=2;
        break;
        case 4:
        cout<<"\n\t "<<a<<"\n"
        <<"\t"<<sl1<<b<<sl2
        <<"\n\t "<<c<<" \n"
        <<"\t "<<d<<" \n"
        <<"\t "<<e<<" \n";

        cout<<"\n\tEnter Your Choice:2";sl=2;
        if (num==5) x=3;
        else if (num==2) x=5;
        else x=3;
        break;
        case 5:
        cout<<"\n\t"<<sl1<<a<<sl2
        <<"\n\t "<<b<<"\n"
        <<"\t "<<c<<" \n"
        <<"\t "<<d<<" \n"
        <<"\t "<<e<<" \n";

        cout<<"\n\tEnter Your Choice:1";sl=1;
        if (num==5) x=4;
        else if (num==2) x=4;
        else x=4;
        break;
        default:
        cout<<"\n\tWrong!!2"<<x;getch();exit(0);
        }
break;
case 283:sl=6; goto end;
case 561:sl=1;goto end;
case 818:sl=2;goto end;
case 1075:sl=3;goto end;
case 1332:sl=4;goto end;
case 1589:sl=5;goto end;
case 1846:sl=6;goto end;
case 7181:goto end;
default:break;
 }
  key=bioskey(0);
 }
end:
return sl;
}


/********************************Menu To View Marks**************************/
void view()
 {
 int opt,i,reg,flag=0;
 char n[20],ch;
 view:
 opt=menu(5,"1.View All","2.Search Reg No","3.Show Failers","4.Read From File"
           ,"5.Back","[","]", "Dispay Menu","=");
 switch(opt)
  {
  case 1:                //Show All Marks
  for(i=0;i<10;i++)
   {
   clrscr();
   if(s[i].redgno!=NULL)
    {
    cout<<"                            Report Card Of "<<s[i].name
      <<"\n\tRegistration Number:"<<s[i].redgno<<"\n\tClass:"<<s[i].clas
      <<"\n\tAddress:"<<s[i].address<<"\n\tFather's Name:"<<s[i].fname
      <<"\n\tDate Of Birth:"<<s[i].dob.dd<<"-"<<s[i].dob.mm<<"-"<<s[i].dob.yyyy
      <<"\n\tStream:"<<s[i].st_code<<"\n\n\
-------------------------------------------------------------------------------\
    \n\tSubject Marks\n\t-------------\nS\tubject 1 :"
      <<s[i].sub1<<"\n\tSubject 2 :"<<s[i].sub2<<"\n\tSubject 3 :"<<s[i].sub3
      <<"\n\tSubject 4 :"<<s[i].sub4<<"\n\tSubject 5 :"<<s[i].sub5
      <<"\n\tTotal     :"<<s[i].total<<"\n\tGrade     :"<<s[i].div;
    cout<<"\n\n\tPress Any Key To Continue..";
    getch();
    }
   else break;
   }
  break;
  case 3:clrscr();                  //Show Failers
  for(i=0;i<records;i++)
   {
   if((s[i].sub1<33)||(s[i].sub2<33)||(s[i].sub3<33)||(s[i].sub4<33)||(s[i].sub5<33))
    {
    cout<<"                Report Card Of "<<s[i].name
      <<"\n\tRegistration Number:"<<s[i].redgno<<"\n\tClass:"<<s[i].clas
      <<"\n\tAddress:"<<s[i].address<<"\n\tFather's Name:"<<s[i].fname
      <<"\n\tDate Of Birth:"<<s[i].dob.dd<<"-"<<s[i].dob.mm<<"-"<<s[i].dob.yyyy
      <<"\n\tStream:"<<s[i].st_code<<"\n\n\t\
-------------------------------------------------------------------------------\
    \n\tSubject Marks\n\t-------------\n\tSubject 1 :"
      <<s[i].sub1<<"\n\tSubject 2 :"<<s[i].sub2<<"\n\tSubject 3 :"<<s[i].sub3
      <<"\n\tSubject 4 :"<<s[i].sub4<<"\n\tSubject 5 :"<<s[i].sub5
      <<"\n\tTotal     :"<<s[i].total<<"\n\tGrade     :"<<s[i].div;
      cout<<"\n\n\tPress Any Key To Continue...";
    flag=1;
    getch();
    }
   }
  if(flag==0)
   {
   cout<<"\n\tNo Failers Found";
   getch();
   view();
   }
  break;
  case 2:clrscr();                           //Search By Reg No
  cout<<"\n\n\tEnter Number To Be Searched:";
  cin>>reg;
  for(i=0;i<10;i++)
   {
   if(s[i].redgno==reg)
    {
    cout<<"                Report Card Of "<<s[i].name
      <<"\n\tRegistration Number:"<<s[i].redgno<<"\nClass:"<<s[i].clas
      <<"\n\tAddress:"<<s[i].address<<"\n\tFather's Name:"<<s[i].fname
      <<"\n\tDate Of Birth:"<<s[i].dob.dd<<"-"<<s[i].dob.mm<<"-"<<s[i].dob.yyyy
      <<"\n\tStream:"<<s[i].st_code<<"\n\n\
-------------------------------------------------------------------------------\
    \n\tSubject Marks\n\t-------------\n\tSubject 1 :"
      <<s[i].sub1<<"\n\tSubject 2 :"<<s[i].sub2<<"\n\tSubject 3 :"<<s[i].sub3
      <<"\n\tSubject 4 :"<<s[i].sub4<<"\n\tSubject 5 :"<<s[i].sub5
      <<"\n\tTotal     :"<<s[i].total<<"\n\tGrade     :"<<s[i].div;
    flag=1;
    getch();
    }
   }
  if(flag==0)
   {
   cout<<"\n\tRecord Not Found";
   getch();
   view();
   }
  break;
  case 4:                                    //Read File
  clrscr();
  cout<<"\n\n\tEnter Name Of Student:";gets(n);
  ifstream fil;
  strcat(n,".txt");
  fil.open(n);
  while(!fil.eof())


  {
  fil.get(ch);
  cout<<ch;
  }
  cout<<"\n\n\tPress Any Key To Continue...";
  getch();
  break;
  case 5:student_menu();                      //Exit
  default:student_menu();
  }
 goto view;
 }

/******************************Student Menu*********************************/
void student_menu()
 {
 unsigned int tredg;
 char ch='y',ch1;
 do
  {
  clrscr();
  ch1=menu(3,"1.Add Students","2.Display Student","3.Back","","","[","] "
        ,"Student Menu","=");
  switch(ch1)
   {
   case 1:clrscr();                             //Marks
      add();
      break;
   case 2:clrscr();                             //View Marks
      view();
      break;
   case 3:main_menu();                          //Main Menu
      getch();
      break;
   case 6:main_menu();                      //Main Menu
      getch();
      break;

   default:cout<<"\n\n\tWorng Choice!!";
   }
  cout<<"\n\n\tDo You Want to Continue?(Y/N)";
  cin>>ch;
  }
 while(ch=='y'||ch=='Y');
 main_menu();
 }

/*********************************Main Menu**********************************/
void main_menu()
{
char ch1;
do{
clrscr();
ch1=menu(4,"1. Students Details","2. Modify Students","3. Exit"," ",""," [","]","Student Information System","=");
switch(ch1)
{
case 1:                       //Student Menu
       student_menu();
       break;
case 2:                       //Marks Menu
       mark_menu();
       break;
case 3:            //Exit
       exit(0);
       break;

default:
    cout<<"\n\n\tWorng Choice!!";
}
}while(ch1==3);
}

/**********************************Marks Menu********************************/
void mark_menu()
{
int t_redg,i,opt,flag=0;
char ch='y',na[20];
do
{
clrscr();
cout<<"\n\tPress Esc to Quit";
opt=menu(3,"1.Modify Student","2.Remove Student","3.Back",
           "",""," [","] "," Menu","=");
switch(opt)
{
case 1:    clrscr();                //Modify Student
    mod();
    getch();
    mark_menu();
    break;
case 2:    clrscr();                //Delete Student
    cout<<"\n\tWhich Student Do you want to Delete\n\tEnter Reg No:";
    cin>>t_redg;
    for(i=0;i<10;i++)
     {
     if(s[i].redgno==t_redg)
      {
      strcat(na,s[i].name);
      strcat(na,".txt");
      remove(na);
      cout<<"\n\tThe Record of "<<s[i].name<<" is removed.";
      flag=1;
      break;
      }
     }
    if(flag==0)
     cout<<"\n\tRecord not found";
    mark_menu();
    break;
default:main_menu();
}

cout<<"\n\tDo you want to Continue?(Y/N)...";
cin>>ch;
}while(ch=='y'||ch=='Y');
if(ch=='n'||ch=='N')
main_menu();
}

/******************************Main Function*********************************/
void main()
{
clrscr();
clrscr();
main_menu();
getch();
}

/************************************End*************************************/

Edited 6 Years Ago by happygeek: TEX tags removed so it becomes readable!

student stud;
//Input values to stu
file.write(reinterpret_cast<char*>(&stu),sizeof(student);
This article has been dead for over six months. Start a new discussion instead.