#include <iostream.h> #include <fstream.h> #include <string.h> #include <iomanip.h> #include <conio.h> class phoneBook{ char name[20],phno[6]; public: void getdata(); void showdata(); char *getname(){ return name; } char *getphno(){ return phno; } void update(char *nm,char *telno){ strcpy(name,nm); strcpy(phno,telno); } }; void phoneBook :: getdata(){ cout<<"\nEnter Name : "; cin>>name; cout<<"Enter Phone No. : "; cin>>phno; } void phoneBook :: showdata(){ cout<<"\n"; cout<<setw(15)<<name; cout<<setw(8)<<phno; } void main(){ phoneBook rec; fstream file; file.open("c:\\phone.dat", ios::ate | ios::in | ios::out | ios::binary); char ch,nm[20],telno[6]; int choice,found=0; while(1){ clrscr(); cout<<"\n*****Phone Book*****\n"; cout<<"1) Add New Record\n"; cout<<"2) Display All Records\n"; cout<<"3) Search Telephone No.\n"; cout<<"4) Search Person Name\n"; cout<<"5) Update Telephone No.\n"; cout<<"6) Exit\n"; cout<<"Choose your choice : "; cin>>choice; switch(choice){ case 1 : //New Record rec.getdata(); cin.get(ch); file.write((char *) &rec, sizeof(rec)); break; case 2 : //Display All Records file.seekg(0,ios::beg); cout<<"\n\nRecords in Phone Book\n"; while(file){ file.read((char *) &rec, sizeof(rec)); if(!file.eof()) rec.showdata(); } file.clear(); getch(); break; case 3 : //Search Tel. no. when person name is known. cout<<"\n\nEnter Name : "; cin>>nm; file.seekg(0,ios::beg); found=0; while(file.read((char *) &rec, sizeof(rec))) { if(strcmp(nm,rec.getname())==0) { found=1; rec.showdata(); } } file.clear(); if(found==0) cout<<"\n\n---Record Not found---\n"; getch(); break; case 4 : //Search name on basis of tel. no cout<<"\n\nEnter Telephone No : "; cin>>telno; file.seekg(0,ios::beg); found=0; while(file.read((char *) &rec, sizeof(rec))) { if(strcmp(telno,rec.getphno())==0) { found=1; rec.showdata(); } } file.clear(); if(found==0) cout<<"\n\n---Record Not found---\n"; getch(); break; case 5 : //Update Telephone No. cout<<"\n\nEnter Name : "; cin>>nm; file.seekg(0,ios::beg); found=0; int cnt=0; while(file.read((char *) &rec, sizeof(rec))) { cnt++; if(strcmp(nm,rec.getname())==0) { found=1; break; } } file.clear(); if(found==0) cout<<"\n\n---Record Not found---\n"; else { int location = (cnt-1) * sizeof(rec); cin.get(ch); if(file.eof()) file.clear(); cout<<"Enter New Telephone No : "; cin>>telno; file.seekp(location); rec.update(nm,telno); file.write((char *) &rec, sizeof(rec)); file.flush(); } break; case 6 : gotoout; } } out: file.close(); }
No comments:
Post a Comment