36
COMPUTER SCIENCE PROJECT ON TELEPHONE BILLING SYSTEM PUSHPENDER RANA XII-C

Project on Telephone Billing Sys

Embed Size (px)

DESCRIPTION

python project on telehone billing system

Citation preview

COMPUTER SCIENCE PROJECT ON

CERTIFICATE

This is to certify that PUSHPENDER RANA Student at J. D. Tytler School has persuaded his work and prepared the present dissertation entitled TELEPHONE BILLING SYSTEMUnder my guidance and supervision this being submitted for partial fulfilment of the requirement for senior secondary school certificate.

SupervisionMr. PRAVEEN BHATIAHead of Computer Science DepartmentJ. D. Tytler School, New Rajinder NagarNew Delhi 110060ACKNOWLEDGEMENT

I would like to express my special thanks and gratitude to my Computer Science teacher Mr. Praveen Bhatia for his valuable guidance that leads to the successful completion of this project. Also I would like to thank the principal of our school Mrs. Tytle for giving me such an oportunity.

PUSHPENDER RANAXII-C

PYTHON PROGRAMMING LANGUAGEPython was created by Guido Van Rossum when he was working at CWI (Centrum Wiskunde & Informatica) which is a National Research Institute for Mathematics and Computer Science in Netherlands. The language was released in I991. Python got its name from a BBC comedy series from seventies- Monty Pythons Flying Circus. Python can be used to follow both Procedural approach and Object Oriented approach of programming. It is free to use. Some of the features which make Python so popular are as follows:- It is a general purpose programming language which can be used for both scientific and non scientific programming. It is a platform independent programming language. It is a very simple high level language with vast library of add-on modules. It is excellent for beginners as the language is interpreted, hence gives immediate results. The programs written in Python are easily readable and understandable. It is suitable as an extension language for customizable applications. It is easy to learn and use.

CLASSESClasses are the group of objects with same attributes and common behaviour. A class is basically a blueprint for creating an object in abject oriented programming language like python. Classes allow data encapsulation as it combines the objects and the associated functions into a single unit itself.Syntax to define a class in python is as follows:-class :statement 1statement 2

FUNCTIONSFunctions is a set of instructions enclosed in a single unit which can be executed as and when required by calling the function.Syntax:-def :statement1statement2

BINARY FILEThe binary file contains arbitrary binary data.the numbers in a binary file can be used for numerical operations.Therefore while working on an arbitrary file we have to convert the binary pattern into the desired data typr as required by our program.Special methods like LOAD and DUMP help to accomplish this task

Source Code:-#=======================================================# TELEPHONE BILLING SYSTEM#=======================================================class customer: cno='' ph='' name='' addr='' city='' def getdata(self): import os os.system('cls') print("\n"*4) self.ph=int(input("\n\t\t\tEnter The 8 Digit Telephone No. :")) self.cno=int(input("\n\t\t\tEnter The Consumer No:")) self.name=input("\n\t\t\tEnter Name:") self.city=input("\n\t\t\tEnter City:") self.addr=input("\n\t\t\tEnter Address:") self.type=input('''\n\t\t\tEnter 'O' for Office Or 'Enter' for residential:''') if self.type.upper()=='O': self.type='Office' else: self.type='Home ' def showdata(self): import os os.system('cls') print("\n"*4) print("\t\t\tPhone No:",self.ph) print("\t\t\tConsumer No:",self.cno) print("\t\t\tName:",self.name) print("\t\t\tCity:",self.city) print("\t\t\tAddress:",self.addr) print("\t\t\tType:",self.type) def showcust(self): print("\t\t",self.ph,"\t",self.cno,"\t",self.type," ",self.name)#======================================================#CLASS TO CALCULATE AND DISPLAY THE BILL#=======================================================class bill: def __init__(self): customer.__init__(self) self.ffcalls=100 self.oprd='' self.clrd='' self.mcalls=0 self.fcalls=100 self.credit='' self.debits='' self.chargec=0 self.chargem=0 self.tax=0 self.grossamt=0 self.surcharge=20 self.netamtbef=0 self.netamtaft=0 self.c=0 self.found=False

#=======================================================# FUNCTION TO CALCULATE THE BILL#======================================================= def calbill(self): import pickle self.c=customer() self.file=open("bill.dat","rb") self.phone='' import os os.system('cls') print("\n"*4) while self.phone=='': self.phone=input("\n\t\t\tEnter Telephone No. :") self.phone=int(self.phone) self.found=False try: while True: self.c=pickle.load(self.file) if self.c.ph==self.phone: self.found =True break except EOFError: pass if self.found==False: print("\n\t\t\tTelephone Number Not Found In The Records") input("\n\t\t\tPress Any Key To Continue") return self.file.close() self.ffcalls=100 while self.oprd=='': self.oprd=input("\n\t\t\tEnter The Open Meter Reading:") while self.clrd=='': self.clrd=input("\n\t\t\tEnter The Close Meter Readng:") self.oprd=int(self.oprd) self.clrd=int(self.clrd) self.mcalls=self.clrd-self.oprd if self.mcallsself.grossamt: self.netamtbef=0 self.surcharge=0 else: self.netamtbef=self.grossamt-self.credit self.netamtaft=self.netamtbef+self.surcharge

#=======================================================# FUNCTION TO CALCULATE THE BILL#======================================================= def dispbill(self): import os os.system('cls') print("\n"*4) if self.found: print("\n") print("="*31,"Telephone Bill","="*32) print("Name:",self.c.name) print("-"*79) print("Address:",self.c.addr) print("="*79) print("Telephone Number",end=' '*3) print("Consumer Number",end=' '*3) print("Previous reading",end=' '*3) print("Current reading:") print("="*79) print(self.c.ph,end=' '*11) print(self.c.cno,end=' '*12) print(self.oprd,end=' '*18) print(self.clrd) print("-"*79) print("Metered Calls"," "*30,":"," "*9,self.mcalls) print("Free Calls"," "*33,":"," "*9,self.fcalls) print("Chargable calls"," "*28,":"," "*9,self.chargec) print("Debits"," "*37,":"," "*9,self.debits) print("Taxes"," "*38,":"," "*9,self.tax) print("Gross Amount"," "*31,":"," "*9,int(self.grossamt)) print("Credits"," "*36,":"," "*9,self.credit) print("-"*79) print("Amount payable before"," "*22,":"," "*9,int(self.netamtbef)) print("-"*79) print("Surcharge"," "*34,":"," "*9,self.surcharge) print("-"*79) print("Amount payable after"," "*23,":"," "*9,int(self.netamtaft)) print("="*79) input("\n\t\t\tPress any key to continue")

#=======================================================# FUNCTION TO ADD A NEW CUSTOMER#======================================================= def addrec(): import pickle file=open("bill.dat",'ab') c=customer() import os while True: os.system('cls') print("\n"*4) c.getdata() pickle.dump(c,file) ch=input("\n\t\t\tDo You Want To Enter More Records:") if ch.upper()=='N': break file.close()#=======================================================# FUNCTION TO SHOW ALL THE CUSTOMERS FROM THE FILE#=======================================================def showrec(): import pickle file=open('bill.dat','rb') c=customer() import os os.system('cls') print("\n"*4) print("\t\tPhone No.\t Consumer No.\t Type\t Name") try: while True: c=pickle.load(file) print('\n') c.showcust() except EOFError: pass file.close() input("\n\t\t\tPress Any Key To Continue")def searchrec(): import pickle file=open("bill.dat","rb") c=customer() import os os.system('cls') print("\n"*4) phn=int(input("\n\t\t\tEnter The Telephone No. :")) found=False try: while True: c=pickle.load(file) if phn==c.ph: found=True break except EOFError: pass if found: c.showdata() input("\n\t\t\tPress Enter To Continue") else: print("\n\t\t\tRecord not found:") input("\n\t\t\tPress Enter To Continue") file.close()#=======================================================# FUNCTION TO DELETE RECORD OF A CUSTOMER FROM THE FILE#=======================================================def delrec(): import pickle import os file=open("bill.dat","rb") temp=open('temp.dat','ab') import os os.system('cls') print("\n"*4) phone=int(input("\n\t\t\tEnter The Phone Number:")) c=customer() try: while True: c=pickle.load(file) if c.ph==phone: print("\n\t\t\tRecord Successfully Deleted") c.showdata() input("\n\t\t\tPress any key to continue") pass elif c.ph!=phone: pickle.dump(c,temp) except EOFError: pass file.close() temp.close() os.remove('bill.dat') os.rename('temp.dat','bill.dat')#=======================================================# FUNCTION TO MODIFY DETAILS OF A CUSTOMER#=======================================================def modrec(): import pickle file = open("bill.dat", 'rb') clist = list() i = 0 c = customer() import os os.system('cls') print("\n"*4) phn = int(input("\n\t\t\tEnter The Telephone Number : ")) try: while True : c = pickle.load(file) clist.append(c); except EOFError : pass file.close() found = False i = 0 for c in clist : if ( c.ph==phn ) : found = True break else : i = i+1 if ( not found ) : print("\n\t\t\tInvalid Phone Number ") return import os os.system('cls') print("\n"*4) print("\n\t\t\tEnter The New Details About The Customer:") clist[i].getdata() file = open("bill.dat", 'wb') for c in clist : pickle.dump(c,file) file.close()#=======================================================# MAIN MENU#=======================================================def menu(): import os os.system('cls') print("\n"*4) print("\n\t\t\t\tMAIN MENU") print("\n\t\t\tPress 1 : To Generate a Bill") print("\n\t\t\tPress 2 : To List all Customers") print("\n\t\t\tPress 3 : To Manage Customers") print("\n\t\t\tPress 4 : To Exit")#=======================================================# CUSTOMER MENU#=======================================================def menurec(): import os os.system('cls') print("\n"*4) print("\n\t\t\t\tCUSTOMER MENU") print("\n\t\t\tPress 1 : To List All Customer") print("\n\t\t\tPress 2 : To Add a Customer") print("\n\t\t\tPress 3 : To Show Details About A Customer") print("\n\t\t\tpress 4 : To Delete a Customer") print("\n\t\t\tPress 5 : To Modify a Existing Customer") print("\n\t\t\tPress 6 : To Go Back To Previous Menu")#=======================================================# MAIN#=======================================================opt=0while opt!=4: menu() opt=int(input("\n\t\t\tEnter Your Choice:")) if opt==1: b=bill() b.calbill() b.dispbill() elif opt==2: showrec() elif opt==3: ropt=0 while ropt!=4: menurec() ropt=int(input("\n\t\t\tEnter Your Choice:")) if ropt==1: showrec() elif ropt==2: addrec() elif ropt==3: searchrec() elif ropt==4: delrec() elif ropt==5: modrec() elif ropt==6: break else: print("\n\t\t\tInvalid Choice") input("\n\t\t\tPress Any Key To Continue") elif opt==4: print("\n\t\t\tGood Bye") input("\n\t\t\tPress Any Key To Continue") break else: print("\n\t\t\tInvalid Choice") input("\n\t\t\tPress Any Key To Continue")

Output