You are on page 1of 14

/*

Program Title : Address Book


Programmer : Navi Arora

E-Mail : naviarora@ymail.com
Website : http://cbse-sample-
papers.blogspot.com

There is some personal infomation in the


introduction and end. Please remove them
before use.
*/
#include<fstream.h>
#include<iostream.h>
#include<conio.h>
#include<ctype.h>
#include<process.h>
#include<iomanip.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void welcome_screen();
void welcome_screen()
{
clrscr();
gotoxy(20,10);
cputs("**************** W E L C O M E
*********************** ");
gotoxy(25,12);
cputs("*** C A M P I O N S C H O O
L *** " );
gotoxy(20,14);
textcolor(WHITE);
cputs(" T E L E P H O N E M A N A G
E M E N T S O F T W A R E ");
gotoxy(38,16);
textcolor(WHITE);
cputs(" D O N E B Y : ");
gotoxy(50,18);
cputs(" Navi Arora ");
gotoxy(50,20);
cputs("");

textcolor(WHITE+BLINK);
gotoxy(40,30);
cputs(" *** PRESS ANY KEY TO
CONTINUE***");
getch();
return;
}
class directory
{
public:
int record;
long pn1;
char pn2[10];
int age;
char address1[50];
char address2[50];
char occupation[20];
char name[20];
char emailadd[25];
char internetadd[25];
void modification();
void addition();
void deleate();
void menu();
void search();
void view1();
void init();
void display();
void view();
char check(char *);
int test();
}obj;
void directory::addition() //ADDING
INFORMATION
{
ofstream fout;

fout.open("heera",ios::out|ios::app);
init();

fout.write((char*)&obj,sizeof(obj));
fout.close();
}
int directory::test() //FIND NO. OF
RECORDS
{
ifstream fin;
fin.open("heera");
fin.seekg(0,ios::end);
int n;
n=fin.tellg()/sizeof(obj);
cout<<" \n NUMBER OF RECORDS = "<<n
;
return n ;
}
void directory::search() //SEARCHING FOR
A PARTICULAR NUMBER
{
ifstream fin;
fin.open("heera");
if(fin.fail())
{
cout<<" \n FILE NOT FOUND ";
getch();
return;
}
clrscr();
textcolor(BLACK+BLINK);
gotoxy(30,1);
cprintf(" [SEARCHING] ");
cout<<" \n ENTER PHONE NUMBER TO BE
SEARCHED : ";
long pn;
cin>>pn;
int n;
n=test();
for(int i=0;i<n;i++)
{
fin.read((char*)&obj,sizeof(obj));
if(pn==pn1)
{
view1();
return;
}
}
if(fin.eof())
{
cout<<" \n RECORD NOT FOUND ";
}
}
void directory::init() // ENTERING THE
DETAILS
{

clrscr();
char ch;
textcolor(BLACK+BLINK);
gotoxy(30,1);
cprintf(" [ADDITION] ");
textcolor(BLACK);
cout<<" \n ENTER HOUSE PHONE NUMBER
: ";
cin>>pn1;
cout<<" \n ENTER OFFICE PHONE
NUMBER : ";
cin>>pn2;
// ch=cin.get();
cin.get(ch);
cout<<" \n ENTER NAME : ";
cin.getline(name,20,'\n');
cout<<" \n ENTER THE OCCUPATION :
";
cin.getline(occupation,20,'\n');
cout<<" \n ENTER HOUSE ADDRESS : ";
cin.getline(address1,50,'\n');
cout<<" \n ENTER OFFICE ADDRESS :
";
cin.getline(address2,50,'\n');
cout<<" \n ENTER EMAIL ADDRESS : ";
cin.getline(emailadd,25,'\n');
cout<<" \n ENTER INTERNET ADDRESS :
";
cin.getline(internetadd,25,'\n');
}
void directory::view1() //TO DISPLAY ALL
THE RECORDS
{
cout<<"\n";
cout<<" PHONE NUMBER1 :
"<<obj.pn1<<"\n";
cout<<" PHONE NUMBER2 :
"<<obj.pn2<<"\n";
cout<<" NAME : "<<obj.name<<"\n";
cout<<" HOUSE ADDRESS :
"<<obj.address1<<"\n";
cout<<" OCCUPATION :
"<<obj.occupation<<"\n";
cout<<" OFFICE ADDRESS :
"<<obj.address2<<"\n";
cout<<" EMAIL ADDRESS :
"<<obj.emailadd<<"\n";
cout<<" INTERNET ADDRESS :
"<<obj.internetadd<<"\n";
getch();
}
void directory::modification() //TO
MODIFY ANY DATA IN THE RECORD IF
NECESSARY
{
clrscr();
textcolor(BLACK+BLINK);
gotoxy(30,1);
cprintf(" [ MODIFICATION ] ");
textcolor(BLACK);
long pn;
int n,i;
ifstream fin;
ofstream fout;
fin.open("heera");
if(fin.fail())
{
cout<<"\n FILE NOT FOUND !";
fout.close();
exit(-1);
}
fout.open("new");
n=test();
if(n==0)
{
cout<<"\n FILE IS EMPTY ! ";
getch();
return;
}
while(fin.good())
{
fin.read((char*)&obj,sizeof(obj));
fout.write((char*)&obj,sizeof(obj));
}
fin.close();
fout.close();
fout.open("heera",ios::trunc);
fin.open("new");
if(fin.fail())
{
cout<<"\n FILE NOT FOUND !";
exit(-1);
}
char ch;
cout<<"\n ENTER PHONE NUMBER :";
cin>>pn;
ch=cin.get();
// cin.get(ch);
for(i=0;i<n;i++)
{
fin.read((char*)&obj,sizeof(obj));
char d;
if(pn==pn1)
{
view1();
d=check("HOUSE PHONE NUMBER ");
if((d=='y') || (d=='Y'))
{
cout<<"\n ENTER NEW PHONE
NUMBER :";
cin>>pn1;
ch=cin.get();
// cin.get(ch);
}
if(check("OFFICE PHONE NUMBER
")=='Y')
{
cout<<"\n ENTER NEW PHONE
NUMBER :";
cin>>pn2;
ch=cin.get();
// cin.get(ch);
}
if(check("NAME")=='y')
{
cout<<"\n ENTER NEW NAME : ";
cin.getline(name,20,'\n');
}
if(check("HOME ADDRESS")=='y')
{
cout<<"\n ENTER NEW ADDRESS
:";
cin.getline(address1,50,'\n');
}
if(check("OFFICE ADDRESS")=='y')
{
cout<<"\n ENTER NEW ADDRESS
:";

cin.getline(address2,50,'\n');
}
if(check("EMAIL ADDRESS:")=='y')
{
cout<<"\n ENTER NEW MAIL
ADDRESS :";

cin.getline(emailadd,25,'\n');
}
if(check("INTERNET
ADDRESS")=='y')
{
cout<<"\n ENTER NEW INTERNET
ADDRESS :";

cin.getline(internetadd,25,'\n');
}
}

fout.write((char*)&obj,sizeof(obj));
}
fout.close();
fin.close();
}
char directory::check(char *s)
{
cout<<"\n MODIFY \t
"<<s<<"\t"<<"Y/N";
char ch;
ch =getch();
//cin.get(ch);
if((ch=='y')||(ch=='Y'))
return 'y';
else
return 'n';
}
void directory::deleate()
{
clrscr();
window(1,1,80,25);
textcolor(BLACK+BLINK);
gotoxy(30,1);
cprintf("[DELETION]");
long pn;
int n,i;
ifstream fin;
ofstream fout;
fin.open("heera");
if(fin.fail())
{
cout<<"\n FILE NOT FOUND ! ";
getch();
return;
}
fout.open("new");
n=test();
if(n==0)
{
cout<<"\n FILE IS EMPTY ! ";
getch();
return;
}
for(i=0;i<n;i++)
{
fin.read((char*)&obj,sizeof(obj));

fout.write((char*)&obj,sizeof(obj));
}
fin.close();
fout.close();
fout.open("meera",ios::trunc);
fin.open("new");
if(fin.fail())
{
cout<<"\n FILE NOT FOUND ! ";
getch();
return;
}
cout<<"\n ENTER PHONE NUMBER :";
cin>>pn;
for(i=0;i<n;i++)
{
fin.read((char*)&obj,sizeof(obj));
if(pn!=pn1)

fout.write((char*)&obj,sizeof(obj));
}
fout.close();
fin.close();

}
void directory::view()
{
ifstream fin;
int n,j;
fin.open("heera");
if(fin.fail()||fin.bad())
{
cout<<"\n FILE NOT FOUND ! ";
getch();
return;
}
clrscr();
int i=0;
n=test();
for(j=0;j<n;j++)
{
cout<<"\n RECORD "<<i+1<<"\n";
fin.read((char*)&obj,sizeof(obj));
cout<<"\n PHONE NUMBER1
:"<<obj.pn1<<"\n";
cout<<"\n PHONE NUMBER2
:"<<obj.pn2<<"\n";
cout<<"\n NAME :"<<obj.name<<"\n";
cout<<"\n HOUSE ADDRESS
:"<<obj.address1<<"\n";
cout<<"\n OCCUPATION
:"<<obj.occupation<<"\n";
cout<<"\n OFFICE ADDRESS
:"<<obj.address2<<"\n";
cout<<"\n INTERNET ADDRESS
:"<<obj.internetadd<<"\n";
cout<<"\n EMAIL ADDRESS :
"<<obj.emailadd<<"\n";
i+=1;
}
fin.close();
getch();
}

void directory::menu()
{
char ch;
clrscr();
textbackground(WHITE);
textcolor(BLACK);
gotoxy(30,8);
cprintf(" A:ADDITION ");
gotoxy(30,9);
cprintf(" D: DELETION \n \r ");
gotoxy(30,10);
cprintf(" M:MODIFICATION \n \r ");
gotoxy(30,11);
cprintf(" V:VIEW \n \r ");
gotoxy(30,12);
cprintf(" S:SEARCH \n \r ");
gotoxy(30,13);
cprintf(" E:EXIT \n \r ");
ch=getch();

switch(ch)
{
case 'a':
case 'A':
addition();
break;
case 'd' :
case 'D' :
deleate();
break;
case 'm':
case 'M':
modification();
break;
case 'v':
case 'V':
view();
break;
case 's':
case 'S':
search();
break;
case 'e':
case 'E':
system("cls");
exit(0);
}
}
int main()
{
welcome_screen();
for(;;)
obj.menu();
return 0;
}

You might also like