Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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);
}
}
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote