#include<iostream>
#include<fstream>
#include<stdlib.h>
using namespace std;
class account_query
{
private:
char account_number[20];
char firstName[10];
char lastName[10];
float total_Balance;
public:
void read_data();
void show_data();
void write_rec();
void read_rec();
void search_rec();
void edit_rec();
void
delete_rec();
};
void account_query::read_data()
{
cout<<"\nEnter Account Number:
";
cin>>account_number;
cout<<"Enter First Name: ";
cin>>firstName;
cout<<"Enter Last Name: ";
cin>>lastName;
cout<<"Enter Balance: ";
cin>>total_Balance;
cout<<endl;
}
void account_query::show_data()
{
cout<<"Account Number: "<<account_number<<endl;
cout<<"First Name: "<<firstName<<endl;
cout<<"Last Name: "<<lastName<<endl;
cout<<"Current Balance: Rs. "<<total_Balance<<endl;
cout<<"-------------------------------"<<endl;
}
void account_query::write_rec()
{
ofstream
outfile;
outfile.open("record.txt",
ios::binary|ios::app);
read_data();
outfile.write(reinterpret_cast<char *>(this), sizeof(*this));
outfile.close();
}
void account_query::read_rec()
{
ifstream
infile;
infile.open("record.txt",
ios::binary);
if(!infile)
{
cout<<"Error in Opening! File Not
Found!!"<<endl;
}
cout<<"\n****Data from
file****"<<endl;
while(!infile.eof())
{
if(infile.read(reinterpret_cast<char*>(this), sizeof(*this))>0)
{
show_data();
}
}
infile.close();
}
void account_query::search_rec()
{
int n;
ifstream
infile;
infile.open("record.txt", ios::binary);
if(!infile)
{
cout<<"\nError in opening! File
Not Found!!"<<endl;
return;
}
infile.seekg(0,ios::end);
int count = infile.tellg()/sizeof(*this);
cout<<"\n There are "<<count<<" record in the file";
if(count > 0)
{
cout<<"\n Enter Record Number to Search: ";
cin>>n;
if(n > count)
{
cout<<"\n Invalid Record No. \n";
}
else
{
infile.seekg((n-1)*sizeof(*this));
infile.read(reinterpret_cast<char*>(this), sizeof(*this));
show_data();
}
}
}
void account_query::edit_rec()
{
int n;
fstream
iofile;
iofile.open("record.txt",
ios::in|ios::binary);
if(!iofile)
{
cout<<"\nError in opening! File
Not Found!!"<<endl;
return;
}
iofile.seekg(0, ios::end);
int count = iofile.tellg()/sizeof(*this);
cout<<"\n There are "<<count<<" record in the file";
if(count > 0)
{
cout<<"\n Enter Record Number to edit: ";
cin>>n;
if(n > count)
{
cout<<"\n Invalid Record No. \n";
}
else
{
iofile.seekg((n-1)*sizeof(*this));
iofile.read(reinterpret_cast<char*>(this), sizeof(*this));
cout<<"Record "<<n<<" has following data"<<endl;
show_data();
iofile.close();
iofile.open("record.txt", ios::out|ios::in|ios::binary);
iofile.seekp((n-1)*sizeof(*this));
cout<<"\nEnter data to Modify "<<endl;
read_data();
iofile.write(reinterpret_cast<char*>(this), sizeof(*this));
}
}
}
void account_query::delete_rec()
{
int n;
ifstream
infile;
infile.open("record.txt",
ios::binary);
if(!infile)
{
cout<<"\nError in opening! File
Not Found!!"<<endl;
return;
}
infile.seekg(0,ios::end);
int count = infile.tellg()/sizeof(*this);
cout<<"\n There are "<<count<<" record in the file";
if(count > 0)
{
cout<<"\n Enter Record Number to Delete: ";
cin>>n;
if(n > count)
{
cout<<"\n Invalid Record No. \n";
}
else
{
fstream
tmpfile;
tmpfile.open("tmpfile.txt", ios::out|ios::binary);
infile.seekg(0);
for(int i=0;
i<count; i++)
{
infile.read(reinterpret_cast<char*>(this),sizeof(*this));
if(i==(n-1))
continue;
tmpfile.write(reinterpret_cast<char*>(this), sizeof(*this));
}
infile.close();
tmpfile.close();
remove("record.txt");
rename("tmpfile.txt", "record.txt");
}
}
}
int main()
{
account_query A;
int choice;
cout<<"***Acount Information
System***"<<endl;
while(true)
{
cout<<"\nSelect one option below
";
cout<<"\n\t1-->Add record to
file";
cout<<"\n\t2-->Show record
from file";
cout<<"\n\t3-->Search Record
from file";
cout<<"\n\t4-->Update
Record";
cout<<"\n\t5-->Delete
Record";
cout<<"\n\t6-->Quit";
cout<<"\nEnter your choice:
";
cin>>choice;
switch(choice)
{
case 1:
A.write_rec();
break;
case 2:
A.read_rec();
break;
case 3:
A.search_rec();
break;
case 4:
A.edit_rec();
break;
case 5:
A.delete_rec();
break;
case 6:
exit(0);
break;
default:
cout<<"\nEnter corret choice
\n";
//exit(0);
}
}
system("pause");
return 0;
}
0 comments:
Post a Comment