C++ Project on Telephone Billing System

Submitted by Editor

Telephone Billing System

 

#include"graphics.h"
#include
#include
#include
#include
#include
#include
#include
#include
#include
void proj_name(void);
void created(void);
  class consumer
   {
    public:
     long unsigned int tel_no;
     long unsigned int con_no;
     char name[60];
     char add[300];
     char city[40];
     long unsigned int op_rdg;
     long unsigned int cl_rdg;
     long unsigned int met_calls;
     long unsigned int free_calls;
     long unsigned int charge_calls;
     float met_charge;
     float rent;
     float debits;
     float tax;
     float credits;
     float gross_amt;
     float surcharge;
     long unsigned int net_amt_bef;
     long unsigned int net_amt_aft;
    public:
      void get_data(void);
      void show_data(void);
   };

void consumer::get_data(void)
{
  setfillstyle(1,BLACK);
  bar(0,0,680,480);
  consumer g1;  int a; char ch;
  setlinestyle(0,0,3);
  setcolor(BROWN);
  settextstyle(1,0,5);
  outtextxy(90,20,"ENTER THE RECORD:-");
  setfillstyle(1,BLACK);
  bar(50,100,550,400);
  rectangle(50,100,550,400);
  gotoxy(10,10);
  cout< <"TELEPHONE NO.    :";
  cout<>op_rdg;
  gotoxy(10,20);
  cout< <"CLOSING READING  :";
  cin>>cl_rdg;
  met_calls=cl_rdg-op_rdg;
  free_calls=150;
  rent=360;
  if(met_calls>debits;
  tax=(rent+met_charge+debits)/20;
  gross_amt=(met_charge+rent+tax+debits);
  gotoxy(10,24);
  cout< <"CREDITS          :";
  cin>>credits;
  if(credits>gross_amt)
  net_amt_bef=0;
  else
  net_amt_bef=gross_amt-credits;
  if(credits>=gross_amt)
  surcharge=0;
  else
  surcharge=20;
  net_amt_aft=net_amt_bef+surcharge;
}

void consumer::show_data(void)
{
  bar(0,0,660,480);
  setcolor(RED);
  settextstyle(8,0,3);
  outtextxy(55,10,"BHARAT SANCHAR NIGAM LIMITED");
  setlinestyle(1,0,3);
  line(51,40,486,40);
  gotoxy(10,5);
  settextstyle(3,0,1);
  setcolor(BROWN);
  outtextxy(15,55,"TELEPHONE NO.");
  outtextxy(330,55,"CONSUMER NO.");
  outtextxy(15,170,"OPENING READING  ");
  outtextxy(15,205,"CLOSING READING  ");
  outtextxy(15,235,"METERED CALLS    ");
  outtextxy(15,268,"FREE CALLS       ");
  outtextxy(15,300,"CHARGABLE CALLS  ");
  setcolor(BROWN);
  outtextxy(330,170,"METERED CALLS   ");
  outtextxy(330,205,"DEBITS          ");
  outtextxy(330,235,"TAXES           ");
  outtextxy(330,268,"GROSS AMOUNT    ");
  outtextxy(330,300,"CREDITS         ");
  outtextxy(330,140,"RENTAL                             ");
  setcolor(MAGENTA);
  outtextxy(15,327,"AMOUNT PAYABLE IF PAID ON OR BEFORE ");
  setcolor(BROWN);
  outtextxy(15,350,"SURCHARGE                           ");
  setcolor(MAGENTA);
  outtextxy(15,377,"AMOUNT PAYABLE IF PAID ON OR AFTER  ");
  setcolor(RED);
  setlinestyle(0,0,3);
  bar(70,90,320,160);
  rectangle(70,90,320,160);
  gotoxy(20,5);
  cout< >a;
   setfillstyle(1,0);

		//TO ADD NEW RECORD
if(a==1)
 {
  do
   {
    setfillstyle(1,LIGHTMAGENTA);
    bar(0,0,679,679);
    settextstyle(1,0,4);
    setcolor(BLUE);
    outtextxy(90,10,"ENTER THE RECORD:-");
    gotoxy(40,9);
    long unsigned int tel_no;
    outtextxy(50,110,"TELEPHONE_NO :");
    cin>>tel_no;
    fin.seekg(0);
     do
      {
       fin.read((char*)&g1,sizeof(g1));
	if(fin.eof())
	break;
	if(g1.tel_no==tel_no)
	 {
	  bar(0,0,679,679);
	  settextstyle(1,0,3);
	  setfillstyle(1,LIGHTCYAN);
	  bar(20,200,610,250);
	  outtextxy(20,220,"PERSON WITH THIS TELEPHONE_NO ALREADY EXISTS");
	  delay(2000);
	  goto u;
	  }
	}while(!fin.eof());
     fin.close();
     fin.open("m.dat",ios::app|ios::out|ios::in|ios::ate|ios::binary);
     fin.seekg(0,ios::end) ;
     long unsigned int r=fin.tellg();
     long unsigned int t=(r/sizeof(g1))+1;
     con_no=t;
     g1.tel_no=tel_no;
     g1.con_no=con_no;
     g1.get_data();
     fin.write((char*)&g1,sizeof(g1));
     setcolor(RED);
     settextstyle(8,0,4);
     outtextxy(12,420,"ENTER ANY OTHER RECORD(Y/N)");
     setfillstyle(1,4);
     bar(250,450,270,470);
     gotoxy(37,35);
     answer=getche();
    }
    while ((answer=='Y')||(answer=='y'));
    goto u;
}

		  //TO SEE THE RECORDS
else if(a==2)
 {
  fin.seekg(0);
  fin.read((char*)&g1,sizeof(g1)) ;
  do
   {
    clrscr();
    g1.show_data();
    fin.read((char*)&g1,sizeof(g1));
    getch();
   }
   while(!fin.eof());
   fin.close();
   goto i;
  }

		  //FOR ENQUIRY
else if (a==3)
 {
  long unsigned int tel_no1;
  bar(0,0,679,679);
  setcolor(GREEN);
  outtextxy(70,150,"ENTER THE TELEPHONE_NO OF PERSON :");
  gotoxy(35,15);
  cin>>tel_no1;
  bar(0,0,679,679);
  fin.seekg(0);
  do
   {
    fin.read((char*)&g1,sizeof(g1));
    if(fin.eof())
    goto y;
    else if(g1.tel_no==tel_no1)
    break;
   }
    while(fin);
    g1.show_data();
    getch();
    goto u;
 }

		       //FOR MODIFICATION
else if(a==4)
 {
  long unsigned int tel_no2;
  long unsigned int con_no;
  char name[60];
  char add[300];
  char city[40];
  long unsigned int op_rdg;
  long unsigned int cl_rdg;
  long unsigned int met_calls;
  long unsigned int free_calls;
  long unsigned int charge_calls;
  float met_charge;
  float rent;
  float debits;
  float tax;
  float credits;
  float gross_amt;
  float surcharge;
  long unsigned int net_amt_bef;
  long unsigned int net_amt_aft;
  bar(0,0,679,679);
  setcolor(MAGENTA);
  outtextxy(100,150,"ENTER THE TELEPHONE_NO OF PERSON ");
  outtextxy(100,180,"        TO BE MODIFIED           ");
  gotoxy(35,17);
  cin>>tel_no2;
  setfillstyle(1,0);
  fin.seekg(0);
  do
   {
   fin.read((char*)&g1,sizeof(g1));
   if(fin.eof())
    {
    setfillstyle(1,LIGHTMAGENTA);
    bar(0,0,679,679);
    setfillstyle(1,LIGHTCYAN);
    bar(40,200,565,250);
    setcolor(BLUE);
    settextstyle(1,0,3);
    outtextxy(70,220,"DESIRED TELEPHONE_NO DOES NOT EXISTS");
    delay(2000);
    setfillstyle(1,0);
    goto u;
    }
   if(g1.tel_no==tel_no2)
    {
     char ch;
     long unsigned int b=fin.tellg();
     long unsigned int s=sizeof(g1);
     fin.close();
     fin.open("m.dat",ios::out|ios::ate|ios::binary);
     fin.seekp(b-s);
     setfillstyle(1,BLACK);
     bar(0,0,680,480);
     setlinestyle(0,0,3);
     setcolor(BROWN);
     settextstyle(1,0,5);
     outtextxy(90,20,"ENTER THE RECORD:-");
     setfillstyle(1,BLACK);
     bar(50,100,550,400);
     rectangle(50,100,550,400);
     gotoxy(10,10);
     cout< <"TELEPHONE NO.    :";
     cout<>op_rdg;
     gotoxy(10,20);
     cout< <"CLOSING READING  :";
     cin>>cl_rdg;
     met_calls=cl_rdg-op_rdg;
     free_calls=150;
     rent=360;
     if(met_calls>debits;
    tax=(rent+met_charge+debits)/20;
    gross_amt=(met_charge+rent+tax+debits);
    gotoxy(10,24);
    cout< <"CREDITS          :";
    cin>>credits;
    if(credits>gross_amt)
    net_amt_bef=0;
    else
    net_amt_bef=gross_amt-credits;
    if(credits>=gross_amt)
    surcharge=0;
    else
    surcharge=20;
    net_amt_aft=net_amt_bef+surcharge;
    g1.con_no=g1.con_no;
    strcpy(g1.name,name);
    strcpy(g1.add,add);
    strcpy(g1.city,city);
    g1.op_rdg=op_rdg;
    g1.cl_rdg=cl_rdg;
    g1.met_calls=met_calls;
    g1.free_calls=free_calls;
    g1.charge_calls=charge_calls;
    g1.met_charge=met_charge;
    g1.rent=rent;
    g1.debits=debits;
    g1.tax=tax;
    g1.credits=credits;
    g1.gross_amt=gross_amt;
    g1.surcharge=surcharge;
    g1.net_amt_bef=net_amt_bef;
    g1.net_amt_aft=net_amt_aft;
    fin.write((char*)&g1,sizeof(g1));
    goto kk;
   }
  }while(fin);

kk:setfillstyle(1,LIGHTMAGENTA);
bar(0,0,679,679);
setfillstyle(1,LIGHTCYAN);
bar(35,200,550,250);
setcolor(BLUE);
settextstyle(1,0,3);
outtextxy(80,220,"RECORD OF THIS PERSON IS MODIFIED");
delay(4000);
setfillstyle(1,0);
goto u;
}

	       //FOR EXIT
else
 {
  exit(0);
 }

u:fin.close();
bar(0,0,680,480);
goto i;

y:setfillstyle(1,LIGHTMAGENTA);
bar(0,0,679,679);
settextstyle(TRIPLEX_FONT,0,3);
setfillstyle(1,LIGHTCYAN);
bar(150,200,490,245);
setcolor(BLUE);
outtextxy(210,220,"RECORD NOT FOUND");
setfillstyle(1,0);
fin.close();
delay(2000);
goto u;
}

void proj_name(void)
 {
  fflush(stdin);
  int midx,midy;
  midx=getmaxx()/2;
  midy=getmaxy()/2;
  int i,j;
  setcolor(RED);
  setlinestyle(1,0,3);
  setfillstyle(1,CYAN);
  bar(2,1,660,660);
  rectangle(2,1,660,660);
  setcolor(RED);
  setfillstyle(1,WHITE);
  bar(25,75,575,425);
  rectangle(25,75,575,425);
  setfillstyle(1,CYAN);
  bar(50,100,550,400);
  rectangle(50,100,550,400);
  setcolor(RED);
  setfillstyle(1,WHITE);
  bar(75,125,525,375);
  rectangle(75,125,525,375);
  setcolor(RED);
  setfillstyle(1,CYAN);
  bar(100,150,500,350);
  rectangle(100,150,500,350);
  setcolor(RED);
  settextstyle(0,0,1);
  settextstyle(1,0,6);
  settextjustify(CENTER_TEXT,CENTER_TEXT);
  for(i=170;i< =172;i++)
  {
   sleep(1);
   outtextxy(291,i,    "TELEPHONE");
   outtextxy(301,i+70, " BILLING ");
   outtextxy(331,i+140,"SYSTEM  ");
   }
 }

void created(void)
 {
  fflush(stdin);
  setfillstyle(1,LIGHTCYAN);
  rectangle(2,1,660,660);
  bar(2,1,660,660);
  setcolor(RED);
  setlinestyle(1,0,3);
  settextstyle(1,0,8);
  settextjustify(LEFT_TEXT,TOP_TEXT);
  line(10,110,380,110);
  outtextxy(10,20,"C");
  settextstyle(4,0,8);
  outtextxy(47,20,"reated By:-");
  settextstyle(1,0,6);
  settextjustify(LEFT_TEXT,CENTER_TEXT);

  outtextxy(275,250,"MOHIT & ROHIT");

  sleep(1);
  sleep(1);
  clrscr();
 }

Add Your Comment - Guidelines
You can express your opinion or reaction in the form below!

100 characters required

0 Comments:

Be the first one to comment!

You may also want to see:

QUOTE OF THE DAY
The level of our success is limited only by our imagination and no act of kindness, however small, is ever wasted. - Aesop quotes
September 15th, 2019 - Sunday
background

Sign in to continue