Académique Documents
Professionnel Documents
Culture Documents
SUBMITTED TO:
CENTRAL BOARD OF
SECONDARY
EDUCATION
Guided by
MRS. DARSHANA GARG
H.O.D. COMPUTER
SCIENCE
SUBMITTED
BY:
B MOHIT RAO
XII SCIENCE
Signature of Internal
Examiner
__________________
Signature of External
Examiner
__________________
-B Mohit Rao
Content At Glance
Abstract
Class Description
Source Code
Output
Bibliography
Abstract:
The following program is based upon the Telephone Billing
System used in different call centres. In this person is allowed to
generate the bills of their users without any manual
work which is saved electronically.
This software provides features to add, delete, modify,
Generate bills and display the details of the customers using
telephone . It stores the
name, address, account no, local,std&ISD calls don by the customer.
And displays all the total amount of bill paid individual user. For
modifying and deleting users details we need to enter the accont no.
For exiting the menu there is an exit function also.
Class Description:
The program consist one class named account with private
data members name,address,account no as acc_no,phone no as
ph_no.
It consists functions:
1.void add():
2. void modify():
3. void del():
4. void display():
5. void generate():
6. void help():
Source code:
//**********************************************************
//HEADER FILE USED IN PROJECT
//**********************************************************
#include<iostream.h>
#include<fstream.h>
#include<iomanip.h>
#include<math.h>
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<process.h>
#include<ctype.h>
#include<dos.h>
//**********************************************************
//CLASS USED IN PROJECT
//**********************************************************
class account
{
char name[30];
char address[60];
long acc_no;
long phone_no;
public:
void add();
void modify();
void del();
void display();
void generate();
void help();
};
account obj;
int bil_ctr=1; //Counter variable for bill id
/*Function for counting number of digits in an integer*/
int numdigits(long n)
{
return(log10(n)+1);
}
/*Function for converting a months value from integer to string*/
char *mon(int m)
{
switch(m)
{
case(1):
return(Jan);
case(2):
return(Feb);
case(3):
return(Mar);
case(4):
return(Apr);
case(5):
return(May);
case(6):
return(Jun);
case(7):
return(Jul);
case(8):
return(Aug);
case(9):
return(Sep);
case(10):
return(Oct);
case(11):
return(Nov);
case(12):
return(Dec);
}
}
//**********************************************************
// THE MAIN FUNCTION OF PROGRAM
//**********************************************************
void main()
{
char ch1,ch2;
while(1)
{
clrscr();
gotoxy(30,5);
cout<<Supreme Telecom Pvt. Ltd.;
gotoxy(30,6);
cout<<_________________________;
gotoxy(30,8);
cout<<Manage Customer Records;
gotoxy(30,10);
cout<<Display list of customers;
gotoxy(30,12);
cout<<Generate Bill;
gotoxy(30,14);
cout<<Help;
gotoxy(30,16);
cout<<Exit;
gotoxy(30,30);
cout<<Enter your choice ;
ch1=getch();
ch1=toupper(ch1);
switch(ch1)
{
case(D):
obj.display();
break;
case(G):
obj.generate();
break;
case(H):
obj.help();
break;
case(E):
clrscr();
exit(1);
case(M):
ch2=A;
do
{
clrscr();
gotoxy(30,5);
cout<<Supreme Telecom Pvt. Ltd.;
gotoxy(30,6);
cout<<_________________________;
gotoxy(30,8);
cout<<Add new record;
gotoxy(30,10);
cout<<Modify existing record;
gotoxy(30,12);
cout<<Delete existing record;
gotoxy(30,14);
cout<<Exit;
gotoxy(30,30);
cout<<Enter your choice;
ch2=getch();
ch2=toupper(ch2);
switch(ch2)
{
case(A):
obj.add();
break;
case(M):
obj.modify();
break;
case(D):
obj.del();
break;
case(E):
break;
} //End of inner switch-case block
}while(ch2!=E); //End of do-while block
} //End of outer switch-case block
} //End of while block
} //End of main()
//*Function for adding a new customer record*//
void account :: add()
{
char ch1;
fstream fptr1;
fptr1.open(db.dat,ios::app);
if(fptr1.fail())
{
cout<<Cannot open the db.dat file!;
getch();
return;
}
clrscr();
gotoxy(30,5);
cout<<Enter the new customers details..;
while(1)
{
gotoxy(30,8);
cout<<Name : ;
gets(name);
if(strlen(name)==0)
{
gotoxy(30,30);
clreol();
cout<<Name cannot be left blank!;
}
else
{
gotoxy(30,30);
clreol();
break;
}
}
while(1)
{
gotoxy(30,10);
cout<<Address : ;
gets(address);
if(strlen(address)==0)
{
gotoxy(30,30);
clreol();
cout<<Address cannot be left blank;
}
else
{
gotoxy(30,30);
clreol();
break;
}
}
while(1)
{
gotoxy(30,12);
cout<<Ph. No :;
cin>>phone_no;
if(numdigits(phone_no)!=7)
{
gotoxy(54,12);
clreol();
gotoxy(30,30);
clreol();
cout<<Phone no must be of seven digits;
}
else
{
gotoxy(30,30);
clreol();
break;
}
}
while(1)
{
gotoxy(30,14);
cout<<Acc no : ;
cin>>acc_no;
if(numdigits(acc_no)!=5)
{
gotoxy(54,14);
clreol();
gotoxy(30,30);
clreol();
cout<<Account no must be of five digits;
}
else
{
gotoxy(30,30);
clreol();
break;
}
}
gotoxy(30,30);
cout<<Save and Exit;
gotoxy(30,32);
cout<<Exit without saving ;
ch1=getch();
ch1=toupper(ch1);
switch(ch1)
{
case(S):
fptr1.write((char *)this,sizeof(obj));
fptr1.close();
return;
case(E):
fptr1.close();
return;
}
} //End of add()
fptr2.open(dbtemp.dat,ios::out);
if(fptr2.fail())
{
cout<<Cannot open the dbtemp.dat file!;
getch();
return;
}
clrscr();
gotoxy(20,3);
cout<<Enter the phone no whose record is to be modified: ;
cin>>input_no;
while(fptr1.read((char *)this, sizeof(obj)))
{
if(input_no==phone_no)
{
flag=1;
gotoxy(20,5);
cout<<Name<<name;
gotoxy(20,6);
cout<<Address << address;
gotoxy(20,7);
cout<<Acc No<<acc_no;
gotoxy(20,10);
cout<<Modify this customer record (Y/N) ;
ch = getch();
ch=toupper(ch);
if(ch==Y)
{
gotoxy(20,14);
cout<<Enter the customers modified details..;
while(1)
{
gotoxy(20,16);
cout<<Name : ;
gets(name);
if(strlen(name)==0)
{
gotoxy(30,30);
clreol();
cout<<Name cannot be left blank!;
}
else
{
gotoxy(30,30);
clreol();
break;
}
}
while(1)
{
gotoxy(20,18);
cout<<Address: ;
gets(address);
if(strlen(address)==0)
{
gotoxy(30,30);
clreol();
cout<<Address cannot be left blank;
}
else
{
gotoxy(30,30);
clreol();
break;
}
}
while(1)
{
gotoxy(20,20);
cout<<Ph. No : ;
cin>>phone_no;
if(numdigits(phone_no)!=7)
{
gotoxy(44,20);
clreol();
gotoxy(30,30);
clreol();
cout<<Phone no must be of seven digits;
}
else
{
gotoxy(30,30);
clreol();
break;
}}
while(1)
{
gotoxy(20,22);
cout<<Acc no : ;
cin>>acc_no;
if(numdigits(acc_no)!=5)
{
gotoxy(44,22);
clreol();
gotoxy(30,30);
clreol();
cout<<Account no must be of five digits;
}
else
{
gotoxy(30,30);
clreol();
break;
}
}
}
}
fptr2.write((char *)this,sizeof(obj));
}
fptr1.close();
fptr2.close();
if(ch==N)
return;
if(flag==0)
{
gotoxy(20,5);
clreol();
cout<<Record for telephone number <<input_no<< does not exist;
getch();
return;
}
else
{
gotoxy(20,30);
cout<<Customer record modified and updated successfully;
getch();
}
fptr1.open(db.dat,ios::out);
fptr2.open(dbtemp.dat,ios::in);
while(fptr2.read((char *)this,sizeof(obj)))
fptr1.write((char *)this,sizeof(obj));
fptr1.close();
fptr2.close();
}
//****************End of modify()********************//
//************Function for deleting a customer record*********//
void account :: del()
{
char ch;
long input_no;
int flag=0;
fstream fptr1,fptr2;
fptr1.open(db.dat,ios::in);
if(fptr1.fail())
{
cout<<Cannot open the db.dat file!;
getch();
return;
}
fptr2.open(dbtemp.dat,ios::out);
if(fptr2.fail())
{
cout<<Cannot open the dbtemp.dat file!;
getch();
return;
}
clrscr();
gotoxy(20,3);
cout<<Enter phone no whose record is to be deleted: ;
cin>>input_no;
while(fptr1.read((char *)this,sizeof(obj)))
{
if(input_no==phone_no)
{
flag=1;
gotoxy(20,5);
cout<<Name<<name;
gotoxy(20,6);
cout<<Address <<address;
gotoxy(20,7);
cout<<Acc No <<acc_no;
gotoxy(20,10);
cout<<Delete this customer record (Y/N) ;
ch=getch();
ch=toupper(ch);
if(ch==N)
fptr2.write((char *)this,sizeof(obj));
}
else
fptr2.write((char *)this,sizeof(obj));
}
fptr1.close();
fptr2.close();
if(ch==N)
return;
if(flag==0)
{
gotoxy(20,5);
cout<<Record for telephone number <<input_no<< does not
exist;
getch();
return;
}
else
{
gotoxy(20,12);
cout<<Customer record for <<input_no<< deleted
successfully;
getch();
}
fptr1.open(db.dat,ios::out);
fptr2.open(dbtemp.dat,ios::in);
while(fptr2.read((char *)this,sizeof(obj)))
fptr1.write((char *) this,sizeof(obj));
fptr1.close();
fptr2.close();
}
//****************************End of del()************************//
gotoxy(55,2);
cout<<Account Number;
gotoxy(55,3);
cout<<______________;
count=4;
}
gotoxy(2,count);
cout<<name;
gotoxy(30,count);
cout<<phone_no;
gotoxy(60,count);
cout<<acc_no;
count++;
}
gotoxy(22,30);
cout<<Press any key to go back the previous menu ;
getch();
fptr1.close();
}
//**********************End of display()***********************//
//******************Function for generating telephone bill******************//
void account :: generate()
{
long input_no;
char choice;
int flag=0;
int lcalls,tcalls,icalls;
float bill,tbill;
float rental=145.82;
int dd,mm,yy;
struct date dat;
getdate(&dat);
dd=dat.da_day;
mm=dat.da_mon;
yy=dat.da_year;
fstream fptr1;
fptr1.open(db.dat,ios::in);
if(fptr1.fail())
{
cout<<Cannot open the db.dat file!;
getch();
gotoxy(2,32);
cout<<Total Call Charges
gotoxy(65,32);
cout<<setprecision(2);
cout<<bill;
gotoxy(2,33);
cout<<Monthly Charges :
gotoxy(65,33);
cout<<rental;
:
;
;
gotoxy(2,34);
cout<<Service tax (12.36%)
gotoxy(65,34);
cout<<(bill+rental)*0.1236;
:
;
tbill=bill+rental+(bill+rental)*0.1236;
gotoxy(2,36);
cout<<Total charges before <<dd<< <<mon(mm)<< <<yy;
gotoxy(65,36);
cout<<tbill;
gotoxy(2,37);
cout<<Total charges after <<dd<< <<mon(mm)<< <<yy;
gotoxy(65,37);
cout<<tbill+100.00;
gotoxy(55,45);
cout<<Press any Key to continue;
getch();
flag=1;
}
}
if(flag==0)
{
gotoxy(2,4);
cout<<Record for telephone number <<input_no<< does not
exist;
getch();
}
fptr1.close();
}
//**************************End of generate()************************//
gotoxy(1,20);
//**************Function
for displaying help documentation******************//
void account :: help()
cout<<Generate
Bill
{
gotoxy(40,20);
cout<<Helps
clrscr();
to generate a telephone bill;
gotoxy(1,22);
gotoxy(1,2);
cout<<Help
cout<<Telephone Billing System is a command-driven application
-;that helps manage;
-;gotoxy(1,4);
gotoxy(40,22);
cout<<records of the customers as well as generate their
cout<<Provides
telephone bills.help
; documentation;
gotoxy(1,24);
gotoxy(1,8);
cout<<Exit-;
cout<<Press any key to continue...;
gotoxy(40,24);
getch();
cout<<Exits
gotoxy(1,8);the current screen/application;
clreol();
gotoxy(45,45);
gotoxy(15,8);
cout<<Press any key to go back..;
getch();
cout<<Option;
} gotoxy(15,9);
cout<<______;
gotoxy(55,8);
//****************************End
cout<<Description;
of help()******************************//
gotoxy(55,9);
cout<<___________;
gotoxy(1,10);
cout<<Manage Customer Records;
gotoxy(40,10);
//********************************************************************//
cout<<Helps to manipulate customer records;
//********************End
Of Program***********************************//
gotoxy(1,12);
// cout<<
********************************************************************//
Add new record
gotoxy(40,12);
cout<<Adds a new customer record;
-;
-;
gotoxy(1,14);
cout<< Modify existing record-;
gotoxy(40,14);
cout<<Modifies an existing customer record;
gotoxy(1,16);
cout<< Delete existing record-;
gotoxy(40,16);
cout<<Deletes an existing customer record;
gotoxy(1,18);
cout<<Display list of customers-;
Application
Output
BIBLOGRAP
HY
COMPUTER SCIENCE IN
C++ BY SUMITA
ARORA