Vous êtes sur la page 1sur 14

1

//complete data handling class type program


#include<stdio.h>
#include<fstream.h>
#include<process.h>
#include<conio.h>
class item
{ int icode;
char name[20];
int quantity;
float price;
public:
void getdata()
{ cout<<"\nenter data:"<<"enter icode";
cin>>icode;
cout<<"enter name";
gets(name);
cout<<" enter quantity";
cin>>quantity;
cout<<"enter price";
cin>>price;
}
void putdata()
2

{ cout<<"\n putdata() invoked : now displaying details"<<
"\niocde is:"<<icode<<"\nname is:"<<name<<
"\nquantity is:"<<quantity<<"\nprice:"<<price;
}
int reticode()
{ return icode;}
void create();
void search();
void readobj();
void appdata();
void Del();
void Modify();
void Insert();
void Copy();
};
void main()
{ clrscr();
char ans='y';
do
{
item A;
int choice;
3

cout<<"menu:";
cout<<" 1.create a file and write objects onto it";
cout<<" 2.read objects on the file and display";
cout<<" 3.append data to the file";
cout<<" 4.search for an icode";
cout<<" 5. delete record";
cout<<" 6. Modify";
cout<<" 7. Insert";
cout<<" 8.Copy";
cout<<" 9.exit";
cout<<"enter choice";
cin>>choice;
switch(choice)
{ case 1: A.create(); break;
case 2: A.readobj();break;
case 3: A.appdata();break;
case 4: A.search();break;
case 5: A.Del();break;
case 6: A.Modify();break;
case 7: A.Insert();break;
case 8: A.Copy();break;
case 9: exit(0);
4

default: cout<<"wrong choice entered";
}
}while(ans=='y');
cout<<"do u wish to continue y /n ? ";
cin>>ans;
}
void item::create()
{ clrscr();
char ch= 'y';
ofstream fout;
fout.open("item.dat",ios::binary|ios::out);
if(!fout)
{ cout<<"error opening file";
exit(0);
}
do
{
item i;
i.getdata();
fout.write((char*)&i,sizeof(i));
cout<<"do u wish to add more y/n? ";
cin >> ch;
5

}while( ch=='y');
fout.close();
}
void item::readobj()
{ clrscr();
ifstream fin("item.dat",ios::binary|ios::in);
if(!fin)
{ cout<<"cannot open file";
exit(0);
}
item i;
while(!fin.eof())
{
fin.read((char*)&i,sizeof(i));
i.putdata();
}
fin.close();
}
void item::appdata()
{ clrscr();
ofstream fout("item.dat",ios::binary|ios::app);
if(!fout)
6

{ cout<<"error";
exit(0);
}
item i;
i.getdata();
fout.write((char*)&i,sizeof(i));
fout.close();
}
void item::search()
{ clrscr();
int itemcode;
char found='n';
item i;
ifstream fin("item.dat",ios::binary|ios::in);
if(!fin)
{cout<<"error";
exit(0);
}
cout<<"enter item code you are searching for";
cin>>itemcode;
while(!fin.eof())
{ fin.read((char*)&i,sizeof(i));
7

if(i.reticode()==itemcode)
{ cout<<"item code found";
i.putdata();
found='y';
break;
}
}
if(found=='n')
cout<<"item code not found";
fin.close();
}
void item::Del()
{ clrscr();
ifstream fin("item.dat",ios::binary|ios::in);
if(!fin)
{ cout<<"error";
exit(0);
}
ofstream fout("temp.dat",ios::binary|ios::out);
int itemcode;
char found='f';
char confirm='n';
8

item i;
cout<<"enter item code you wish to delete";
cin>>itemcode;
while(!fin.eof())
{fin.read((char*)&i,sizeof(i));
if(i.reticode()==itemcode)
{ i.putdata();
found='t';
cout<<"are you sure you want to delete this?";
cin>>confirm;
if(confirm=='n')
fout.write((char*)&i,sizeof(i));
}
else
fout.write((char*)&i,sizeof(i));
}

if(found=='f')
cout<<"item code not found";
fin.close();
fout.close();
remove("item.dat");
9

rename("temp.dat","item.dat");
cout<<"now the file contains";
item inew;
ifstream fi("item.dat",ios::binary|ios::in);
while(!fi.eof())
{ fi.read((char*)&inew,sizeof(inew));
if(fi.eof()) break;
inew.putdata();
}
fi.close();
}
void item::Modify()
{ clrscr();
fstream f("item.dat",ios::binary|ios::in|ios::out);
item i;
char found='n';
int itemcode;
long pos;
cout<<"enter the item code you want to modify";
cin>>itemcode;
while(!f.eof())
{ pos=f.tellg();
10

f.read((char*)&i,sizeof(i));
if(i.reticode()==itemcode)
{ found='y';
cout<<"name=";
gets(i.name);
cout<<"quantity=";
cin>>i.quantity;
cout<<"price=";
cin>>i.price;
f.seekg(pos);
f.write((char*)&i,sizeof(i));
break;
}
}
if(found=='n')
{ cout<<"item code not found";
}
f.seekg(0);
cout<<"now the file contains";
while(!f.eof())
{ f.read((char*)&i,sizeof(i));
i.putdata();
11

}
f.close();
}
void item::Insert()
{ ifstream fin("item.dat",ios::binary|ios::in);
if(!fin)
{ cout<<"error";
exit(0);
}
ofstream fout("temp.dat",ios::binary|ios::out);
if(!fout)
{ cout<<"error";
exit(0);
}
clrscr();
char last='y';
item i,inew;
cout<<"enter details of item whose record is to be inserted";
i.getdata();
while(!fin.eof())
{ fin.read((char*)&inew,sizeof(inew));
if(i.reticode()<=inew.reticode())
12

{
fout.write((char*)&i,sizeof(i));
last='n';
break;
}
else
fout.write((char*)&inew,sizeof(inew));
}
if(last=='y')
fout.write((char*)&i,sizeof(i));
else
if(!fin.eof())
{
while(!fin.eof())
{ fin.read((char*)&inew,sizeof(inew));
fout.write((char*)&inew,sizeof(inew));
}
}
fin.close();
fout.close();
remove("item.dat");
rename("temp.dat","item.dat");
13

item i2;
ifstream f("item.dat",ios::binary|ios::in);
cout<<"file now contains \n";
while(!f.eof())
{ f.read((char*)&i2,sizeof(i2));
i2.putdata();
}
f.close();
}
void item::Copy()
{ ifstream fin("item.dat",ios::binary|ios::in);
if(!fin)
{ cout<<"error";
exit(0);
}
ofstream fout("temp.dat",ios::binary|ios::out);
if(!fout)
{ cout<<"error";
exit(0);
}
item i;
while(!fin.eof())
14

{ fin.read((char*)&i,sizeof(i));
if(i.icode==1)
fout.write((char*)&i,sizeof(i));
}
fin.close();
fout.close();
ifstream fi("temp.dat",ios::binary|ios::in);
if(!fi)
{ cout<<"error";
exit(0);
}
while(!fi.eof())
{ fi.read((char*)&i,sizeof(i));
i.putdata();
}
fi.close();
}

Vous aimerez peut-être aussi