Help me to delete a specific record in file.

Umairajmal's Avatar, Join Date: Dec 2010
Go4Expert Member
Hey guys i made a program on hospital management system.
it can insert new record and show all record.
all of work done in filing.
But now i want to delete a specific record from file during execution.
But i faced some problem.
So i want yours help.


Here is my code.



Code:
#include<iostream.h>
#include<conio.h>
#include<string.h>
#include<fstream.h>
#include<iomanip.h>
#include<stdio.h>

void welcome_screen()
     {
	clrscr();
	gotoxy(25,10);
	cputs("************** W E L C O M E **************");
	gotoxy(40,12);
	cputs(" P R O J E C T  " );
	gotoxy(20,14);
	cputs(" H O S P I T A L  M A N A G E M E N T  S O F T W A R E  ");
	gotoxy(38,16);
	cputs(" D O N E  B Y :  ");
	gotoxy(50,18);
	cputs(" Muhammad Furqan Arshad ");
	gotoxy(50,20);
	cputs(" Aman-ul-Haq ");
	gotoxy(50,22);
	cputs(" Umair Ajmal ");
	gotoxy(20,25);
	cputs(" *** PRESS ANY KEY TO CONTINUE***");
	getch();
}
///////////////////////////////////////////////////////////////////////////

struct patient
{
char name[15];
char id[15];
};
///////////////////////////////////////////////////////////////////////////

class queue
{
public:
void deletepatient();
void searchpatient(patient);
void outputlist();
};
///////////////////////////////////////////////////////////////////////////


void queue::deletepatient()
{
char n[15];
patient p,d;
clrscr();
cout<<"Enter name: ";
cin>>n;
ifstream del;
ofstream neew;
del.open("hospital.txt",ios::in);
neew.open("host",ios::app);
while(!del.eof())
{
del>>p.name>>p.id;
if(strcmp(p.name,d.name)==0)
continue;
else
neew<<d.name<<d.id;
}
del.close();
neew.close();
remove("hospital.txt");
rename("host.txt","hospital.txt");
getch();
}
/////////////////////////////////////////////////////////////////////////
void queue::searchpatient(patient p)
{
cout<<"Enter Patient Id: ";
cin>>p.d;
int f=1;
ifstream out("hospital.txt",ios::in);
while(!out.eof())
{
out>>p.name>>p.id;
	if(strcmp(p.id,p.d)==0)
	{
	clrscr();
	cout<<"Name"<<setw(10)<<"Id"<<endl;
	cout<<"==============="<<endl;
	cout<<p.name<<setw(10)<<p.id;
	}}
if(f!=1)
cout<<"Search complete record not found..";
getch();
}
///////////////////////////////////////////////////////////////////////////

void queue::outputlist()
{

patient p;
clrscr();
	ifstream out("hospital.txt",ios::in);
       {
	 cout<<"NAME"<<"           "<<"ID"<<endl;
	 cout<<"===================";
	 while(!out.eof())
	 {
	 out>>p.name>>p.id;
	 cout<<"\n"<<setiosflags(ios::left)<<setw(15)<<p.name<<setw(10)<<p.id;
	 }}}
/////////////////////////////////////////////////////////////////////////

patient inputpatient ()
{
   patient p;
   cout << "\nPlease enter data for new patient \nPatient Name: ";
   cin>>p.name;
      cout << "\nN.I.C. number: ";
   cin>>p.id;
   ofstream add("hospital.txt",ios::app);
   add<< p.name <<' '<<p.id <<endl;
   cout<<"Patient added.";
   return p;
}
/////////////////////////////////////////////////////////////////////////

void heart()
{
int choice=0;
patient p;
queue *q;
while(choice!=5)
{
clrscr();
gotoxy(25,3);
cout<<"WELCOME TO HEART DEPARTMENT.";
cout<<"\n1. Add patient.";
cout<<"\n2. Search Patient.";
cout<<"\n3. List Queue.";
cout<<"\n4. Delete patient.";
cout<<"\n5. Exit department.";
cin>>choice;
switch(choice)
{
case 1:
inputpatient();
cout<<"\nPress any key to continue.......";
getch();
break;
case 2:
q->searchpatient(p);
getch();
break;
case 3:
q->outputlist();
cout<<"\nPress any key to continue........";
getch();
break;
case 4:
q->deletepatient();
break;
}
}
}
///////////////////////////////////////////////////////////////////////////

void kidney()
{
int choice=0;
patient p;
queue *q;
while(choice!=5)
{
clrscr();
gotoxy(25,3);
cout<<"WELCOME TO KIDNEY DEPARTMENT.";
cout<<"\n1. Add patient.";
cout<<"\n2. Search patient.";
cout<<"\n3. List Queue.";
cout<<"\n4. Delete patient.";
cout<<"\n5. Exit department.";
cin>>choice;
switch(choice)
{
case 1:
inputpatient();
cout<<"\nPress any key to continue........";
getch();
break;
case 2:
q->searchpatient(p);
getch();
break;
case 3:
q->outputlist();
cout<<"\nPress any key to continue........";
getch();
break;

case 4:
q->deletepatient();
break;
}
}
getch();
}
//////////////////////////////////////////////////////////////////////////

void skin()
{
int choice=0;
patient p;
queue *q;
while(choice!=5)
{
clrscr();
gotoxy(25,3);
cout<<"WELCOME TO SKIN DEPARTMENT.";
cout<<"\n1. Add patient.";
cout<<"\n2. Search patient.";
cout<<"\n3. List Queue.";
cout<<"\n4. Delete patient.";
cout<<"\n5. Exit department.";
cin>>choice;
switch(choice)
{
case 1:
inputpatient();
cout<<"\nPress any key to continue.......";
getch();
break;
case 2:
q->searchpatient(p);
getch();
break;
case 3:
q->outputlist();
cout<<"\nPress any key to continue........";
getch();
break;

case 4:
q->deletepatient();
break;
}
}
getch();
}
///////////////////////////////////////////////////////////////////////////

void main()
{
textbackground(YELLOW);
textcolor(BLACK);
welcome_screen();
int a=0;
while(a!=4)
{
clrscr();
cout<<"\n1. Heart Department.";
cout<<"\n2. Kidney Department.";
cout<<"\n3. Skin Department.";
cout<<"\n4. Exit.";
switch(a)
{
case 1:
heart();
break;

case 2:
kidney();
break;

case 3:
skin();
break;
}
cin>>a;
}
getch();
}

Last edited by shabbir; 5Feb2011 at 11:38.. Reason: Code blocks
xpi0t0s's Avatar, Join Date: Aug 2004
Mentor
Quote:
Originally Posted by Umairajmal View Post
But i faced some problem.
Read the link in my sig regarding accurate problem descriptions.