Implement a project to maintain telephone directory of several people. The direc
ID: 3767698 • Letter: I
Question
Implement a project to maintain telephone directory of several people. The directory should maintain record of each person associated with following information:
Name
Contact no
Age
State
Zipcode
The project which you have developed should contain following features:
Add a record of a specific person to the telephone directory
Delete a record of a specific person to the telephone directory
Search a contact number of a person in the directory based on the name
Print the details of a person based on the name
Update the contact no of a person existing in the directory
Sort the information of each person in the directory based on their last names
Display the size of telephone directory
For your convenience create an input text file and store the information of each
person in a systematic manner. Then use file i/o concepts to read the input text file
an store the contents. The results should be printed to console and output text file.
Note
: To implement this project you have a choice to use
either class or structure.
Explanation / Answer
#include<iostream.h>
#include<fstream.h>
#include<graphics.h>
#include<process.h>
#include<io.h>
#include<dos.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
class telephone
{
char name[25];
char address[40];
char phoneno[15];
public:
telephone(){ }
telephone(char nam[25], char add[40], char phone[15])
{
strcpy(name,nam);
strcpy(address,add);
strcpy(phoneno,phone);
}
void init();
void button(int x1,int y1,int x2,int y2,char str[]);
int press(int,int,int,int);
int unpress(int,int,int,int);
int mouseini();
int showmp();
int hidemp();
int getmp(int *button,int *x,int *y);
int setmp();
int click(int x1,int y1,int x2,int y2,char str[]);
int screen();
void login();
void search();
void delete1();
void insert();
void update();
void display()
{
cout<<"Name : "<<name;
cout<<"Address : "<<address;
cout<<"Phone Number:"<<phoneno;
}
int compare(char nam1[25])
{
if(strcmp(nam1,name)==0)
return 1;
else
return 0;
}
};
void telephone::login()
{
setcolor(15);
line (320-150,320-13,320+150,320-13);
line (320-150,320+12,320+150,320+12);
line (320-150,320-13,320-150,320+12);
line (320+150,320+12,320+150,320-13);
int s=30,w;
gotoxy(20,23);
cout<<"LOADING . . .";
for (int x1=171,x2=171,y1=308,y2=331,y=1,S=0;x1<470;x1++,x2++,y++,S++)
{
setcolor(1);
line (x1,y1,x2,y2);
w=(x1-169)/3;
for (int i=34; i<=78; i++)
{
gotoxy(i,23) ;
cout <<" " ;
}
gotoxy(34,23); cout<<w<<"%";
if (x2>270) s=45; if (x2>370) s=10;
if (x2==320) delay(999); else
delay(s);
}
delay(800);
for (int i=27; i<=78; i++)
{
gotoxy(i,23) ;
cout <<" " ;
}
}
void telephone::insert()
{
telephone tel1;
fstream file;
file.open("Phone.txt",ios::app);
tel1.init();
file.write((char *) &tel1, sizeof(tel1));
setcolor(7);
outtextxy(250,250,"Inserting Record.....");
file.close();
delay(3000);
}
void telephone::init()
{
cout<<"Enter Name : "; cin.getline(name,25);
cout<<"Enter Address : "; cin.getline(address,40);
cout<<"Enter Phone Number: "; cin.getline(phoneno,15);
}
void telephone::delete1()
{
telephone tel1;
fstream file ;
char nam[25],nam1[25];
strcpy(nam1,"");
cout<<"Enter the Name to be deleted: ";
cin>>nam;
file.open("Phone.txt", ios::in) ;
fstream temp ;
temp.open("temp.txt", ios::out) ;
file.seekg(0,ios::beg) ;
while (file.read((char *) &tel1, sizeof(telephone)))
{
if(!tel1.compare(nam))
temp.write((char *) &tel1, sizeof(telephone)) ;
else
strcpy(nam1,nam);
}
file.close() ;
temp.close() ;
setcolor(7);
if(strlen(nam1)!=0)
{
file.open("Phone.txt", ios::out) ;
temp.open("temp.txt", ios::in) ;
temp.seekg(0,ios::beg) ;
while (temp.read((char *) &tel1, sizeof(telephone)))
{
file.write((char *) &tel1, sizeof(telephone)) ;
}
file.close() ;
temp.close() ;
outtextxy(250,250,"Deleting Record.....");
}
else
outtextxy(250,250,"Record not found");
delay(3000);
}
void telephone::update()
{
telephone tel1;
fstream file ;
char nam[25],nam1[25];
strcpy(nam1,"");
cout<<"Enter the Name to be updated: ";
cin>>nam;
file.open("Phone.txt", ios::in) ;
fstream temp ;
temp.open("temp.txt", ios::out) ;
file.seekg(0,ios::beg) ;
while (file.read((char *) &tel1, sizeof(telephone)))
{
if(!tel1.compare(nam))
temp.write((char *) &tel1, sizeof(telephone)) ;
else
strcpy(nam1,nam);
}
file.close() ;
temp.close() ;
setcolor(7);
if(strlen(nam1)!=0)
{
file.open("Phone.txt", ios::out) ;
temp.open("temp.txt", ios::in) ;
temp.seekg(0,ios::beg) ;
while (temp.read((char *) &tel1, sizeof(telephone)))
{
file.write((char *) &tel1, sizeof(telephone)) ;
}
file.close() ;
temp.close() ;
char nam[25],add[40],ph[15];
file.open("Phone.txt",ios::app);
cout<<"
Enter Name : ";
cin.getline(nam,25);cin.getline(nam,25);
cout<<"Enter Address : "; cin.getline(add,40);
cout<<"Enter Phone Number: "; cin.getline(ph,15);
tel1=telephone(nam,add,ph);
file.write((char *) &tel1, sizeof(tel1));
file.close();
outtextxy(250,250,"Updating Record.....");
}
else
outtextxy(250,250,"Record not found");
delay(3000);
}
void telephone::search()
{
fstream file;
telephone tel1;
int i=1;
char nam[25];
file.open("Phone.txt",ios::in);
cout<<"Enter name to be Searched: ";
cin>>nam;
file.seekg(0,ios::beg);
while(file.read((char *) &tel1, sizeof(telephone)))
{
if(tel1.compare(nam))
{
tel1.display();
i=0;
break ;
}
}
file.close() ;
if(i)
{
setcolor(7);
outtextxy(250,250,"Record not found");
}
getch();
}
void telephone:: button(int x1,int y1,int x2,int y2,char str[])
{
int xc,yc,i=0,l=0;
while(i<strlen(str))
{
l+=4;
i++;
}
xc=(x2-x1)/2+x1-l;
yc=(y2-y1)/2+y1;
unpress(x1,y1,x2,y2);
settextstyle(0,0,0);
setcolor(11);
outtextxy(xc,yc,str);
}
int telephone:: unpress(int x1,int y1,int x2,int y2)
{
setlinestyle(0,1,1);
setfillstyle(1,1);
bar(x1,y1,x2,y2);
setcolor(WHITE);
line(x1,y1,x2,y1);
line(x1,y1,x1,y2);
setcolor(0);
line(x1,y2,x2,y2);
line(x2,y1,x2,y2);
return 0;
}
int telephone:: press(int x1,int y1,int x2,int y2)
{
setlinestyle(0,1,1);
setfillstyle(1,1);
bar(x1,y1,x2,y2);
setcolor(0);
line(x1,y1,x2,y1);
line(x1,y1,x1,y2);
setcolor(WHITE);
line(x1,y2,x2,y2);
line(x2,y1,x2,y2);
return 0;
}
int telephone:: mouseini()
{
union REGS i,o;
i.x.ax=0;
int86(0x33,&i,&o);
return(o.x.ax);
}
int telephone:: showmp()
{
union REGS i,o;
i.x.ax=1;
int86(0x33,&i,&o);
return 0;
}
int telephone:: hidemp()
{
union REGS i,o;
i.x.ax=2;
int86(0x33,&i,&o);
return 0;
}
int telephone:: getmp(int *button,int *x,int *y)
{
union REGS i,o;
i.x.ax=3;
int86(0x33,&i,&o);
*button=o.x.bx;
*x=o.x.cx;
*y=o.x.dx;
return 0;
}
int telephone:: setmp()
{
union REGS i,o;
i.x.ax=4;
int mx=getmaxx(),my=getmaxy();
i.x.cx=(3*mx/4)+20;
i.x.dx=(3*my/4)+20;
int86(0x33,&i,&o);
return 0;
}
int telephone:: click(int x1,int y1,int x2,int y2,char str[])
{
int button,x,y;
int xc,yc,i=0,l=0;
while(i<strlen(str))
{
l+=4;
i++;
}
xc=(x2-x1)/2+x1-l;
yc=(y2-y1)/2+y1;
getmp(&button,&x,&y);
if( (x>x1 && x<x2) && (y>y1 && y<y2) && button==1)
{
hidemp();
press(x1,y1,x2,y2);
setcolor(11);
settextstyle(0,0,0);
outtextxy(xc,yc,str);
showmp();
while((button==1))
getmp(&button,&x,&y);
hidemp();
unpress(x1,y1,x2,y2);
showmp();
setcolor(11);
settextstyle(0,0,0);
outtextxy(xc,yc,str);
for(i=50;i<500;i=i+50)
{
delay(10);
sound(i+200);
}
showmp();
nosound();
setcolor(11);
settextstyle(0,0,0);
outtextxy(xc,yc,str);
return 0;
}
else return 1;
}
int telephone:: screen()
{
settextstyle(0,1,6);
setcolor(11);
outtextxy(100,30,"TELEPHONE");
outtextxy(600,30,"DIRECTORY");
setmp();
button(250,100,400,150,"Insert");
button(250,150,400,200,"Delete");
button(250,200,400,250,"Update");
button(250,250,400,300,"Search");
button(250,300,400,350,"Exit");
while(1)
{
if(click(250,100,400,150,"Insert")==0)
{
cleardevice();
insert();
return 0;
}
if(click(250,150,400,200,"Delete")==0)
{
cleardevice();
delete1();
return 0;
}
if(click(250,200,400,250,"Update")==0)
{
cleardevice();
update();
return 0;
}
if(click(250,250,400,300,"Search")==0)
{
cleardevice();
search();
return 0;
}
if(click(250,300,400,350,"Exit")==0)
exit(0);
}
}
void main()
{
char user[25]="User Name",*pass,*pass1="user";
int gdriver=DETECT,gmode;
initgraph(&gdriver,&gmode,"");
while(1)
{
cleardevice();
settextstyle(0,0,1);
outtextxy(250,250,"User Name:");
outtextxy(250,265,"Password :");
outtextxy(335,250,user);
pass=getpass("");
if(strcmp(pass,pass1)==0)
{
cleardevice();
telephone tel;
char op[8],cp[8],np[8];
tel.login();
while(1)
{
cleardevice();
tel.mouseini();
tel.showmp();
tel.screen();
}
}
else
{
cleardevice();
settextstyle(0,0,2);
outtextxy(250,250,"Illegal User....");
delay(3000);
}
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.