I was making student attendance program in c++ which is not giving desired output due to 2 problems
- the display function is not working properly, the last data is displayed twice
- the main file that is attend2.txt is not deleted
#include<iostream>
#include<fstream>
#include<stdlib.h>
#include<string>
#include<conio.h>
using namespace std;
class attend
{
public:
int idn;
void getdata()
{
cout<<"ENTER THE ID NUMBER "<<endl;
cin>>idn;
ofstream outf("Attend2.txt",ios::app);
outf<<idn<<endl;
outf.close();
}
void checkdata()
{
int idc,k,m=0;
cout<<"ENTER THE ID TO CHECK "<<endl;
cin>>idc;
ifstream fin("Attend2,txt");
while(fin.eof()==0)
{
fin>>idn;
if(idn==idc)
m=1;
}
if(m==1)
cout<<"RECORD FOUND "<<endl;
else
cout<<"RECORD NOT FOUND "<<endl;
}
void deletedata()
{
int idc,k;
cout<<"ENTER THE ID TO DELETE "<<endl;
cin>>idc;
ifstream fin("Attend2.txt");
while(fin.eof()==0)
{
fin>>idn;
if(idc==idn)
{
cout<<"INSIDE IF "<<endl;
}
else
{
ofstream outf("Attend3.txt",ios::app);
outf<<idn<<endl;
cout<<"ELSE IS RUNNING "<<endl;
}
}
remove("Attend2.txt");
rename("Attend3.txt","Attend4.txt");
remove("Attend4.txt");
}
void displaydata()
{
int k=0;
ifstream fin("Attend2.txt");
while(fin.eof()==0)
{
fin>>idn;
cout<<"THE NUMBER IS "<<idn<<endl;
k++;
}
cout<<"TOTAL NUMBER OF STUDENTS ARE "<<k<<endl;
}
};
int main()
{
int k=1,ch;
attend obj;
cout<<"******************************************************************************"<<endl;
cout<<" WELCOME TO THE ATTENDANCE SHEET "<<endl;
cout<<"******************************************************************************"<<endl;
while(k==1)
{
system("cls");
cout<<"******************************************************************************"<<endl;
cout<<" PRESS 1 TO ADD DATA "<<endl;
cout<<" PRESS 2 TO CHECK THE DATA "<<endl;
cout<<" PRESS 3 TO DELETE DATA "<<endl;
cout<<" PRESS 4 TO DISPLAY DATA "<<endl;
cout<<" PRESS 5 TO EXIT "<<endl;
cout<<" ENTER YOUR CHOICE "<<endl;
cin>>ch;
switch(ch)
{
case 1:
obj.getdata();
cout<<" PRESS 1 TO CONTINUE "<<endl;
cout<<" PRESS 2 TO EXIT "<<endl;
cout<<" ENTER YOUR CHOICE "<<endl;
cin>>k;
break;
case 2:
obj.checkdata();
cout<<" PRESS 1 TO CONTINUE "<<endl;
cout<<" PRESS 2 TO EXIT "<<endl;
cout<<" ENTER YOUR CHOICE "<<endl;
cin>>k;
break;
case 3:
obj.deletedata();
cout<<" PRESS 1 TO CONTINUE "<<endl;
cout<<" PRESS 2 TO EXIT "<<endl;
cout<<" ENTER YOUR CHOICE "<<endl;
cin>>k;
break;
case 4:
obj.displaydata();
cout<<" PRESS 1 TO CONTINUE "<<endl;
cout<<" PRESS 2 TO EXIT "<<endl;
cout<<" ENTER YOUR CHOICE "<<endl;
cin>>k;
break;
case 5:
exit(0);
default:
cout<<" WRONG CHOICE "<<endl;
cout<<" PRESS 1 TO CONTINUE "<<endl;
cout<<" PRESS 2 TO EXIT "<<endl;
cout<<" ENTER YOUR CHOICE "<<endl;
cin>>k;
}
}
}