Use C++ to implement a project to maintain telephone directory of several people
ID: 3768683 • Letter: U
Question
Use C++ to implement a project to maintain telephone directory of several people. The directory should
maintain record of each person associated with following information:
1. Name
2. Contact no
3. Age
4. State
5. Zipcode
The project which you have developed should contain following features:
1. Add a record of a specific person to the telephone directory
2. Delete a record of a specific person to the telephone directory
3. Search a contact number of a person in the directory based on the name
4. Print the details of a person based on the name
5. Update the contact no of a person existing in the directory
6. Sort the information of each person in the directory based on their last names
7. Display the size of telephone directory
For your convenience create an input text file and store the information of eachperson in a systematic manner. Then use file i/o concepts to read the input text filean store the contents. The results should be printed to console and output text file.
Note:To implement this project you have to use class
Please to check to make sure the program actually run on C++
Explanation / Answer
#include <iostream.h>
#include <fstream.h>
#include <string.h>
#include <iomanip.h>
#include <conio.h>
class phoneBook{
char name[20],phno[15];
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<<" Enter Name : ";
cin>>name;
cout<<"Enter Phone No. : ";
cin>>phno;
}
void phoneBook :: showdata(){
cout<<" ";
cout<<setw(20)<<name;
cout<<setw(15)<<phno;
}
void main(){
phoneBook rec;
fstream file;
file.open("d:\phone.dat", ios::ate | ios::in | ios::out | ios::binary);
char ch,nm[20],telno[6];
int choice,found=0;
while(1){
clrscr();
cout<<" *****Phone Book***** ";
cout<<"1) Add New Record ";
cout<<"2) Display All Records ";
cout<<"3) Search Telephone No. ";
cout<<"4) Search Person Name ";
cout<<"5) Update Telephone No. ";
cout<<"6) Exit ";
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<<" Records in Phone Book ";
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<<" Enter 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<<" ---Record Not found--- ";
getch();
break;
case 4 : //Search name on basis of tel. no
cout<<" Enter 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<<" ---Record Not found--- ";
getch();
break;
case 5 : //Update Telephone No.
cout<<" Enter 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<<" ---Record Not found--- ";
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();
}[/Code]
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.