This document is a project report on a Gas Booking System. It includes an acknowledgement section thanking those who provided guidance. It also includes a certificate section certifying the completion of the project. The content section lists the different parts of the project like introduction, source code, output, requirements, advantages/disadvantages and conclusion. The objective of the software is to computerize the manual system of a Gas Agency to make transactions faster and easier. It replaces paper work and provides easy management and navigation.
1. …………. PUBLIC SENIOR SECONDARY
SCHOOL,…………..
Project Report
On
GAS BOOKING SYSTEM
In the partial fulfillment of All India Senior School Certificate
Examination for the session …………. conducted by Central
Board Of Secondary Education.
…………………….
……………..
2. ACKNOWLEDGEMENT
I would like to convey my heartful thanks to
…………………… who always gave valuable suggestions &
guidance for completion of my project.
He helped me to understand & remember important details of the
project. My project has been a success only because of his
guidance.
I am especially indented & I am also beholden to my friends. And
finally I thank to the members of my family for their support &
encouragement.
3. CERTIFICATE
This is to certify that ……………………….. of ……..
……………………………………………………
………. has completed her project under my supervision.
She has taken proper care & shown sincerity in completion of
this project.
I certify that this project is up to my expectation & as
per the guideline issued by CBSE.
Mr. …………………….
(Computer Science faculty )
5. This project GAS BOOKING SYSTEM includes some facilities for the
customer to get the required number of cylinders. and it will
provide the facility of getting information about number of
subsidy cylinders left.
This software keep the records of all the customers and their
information about how many time the booking of cylinders
done.
Objective of this software is to computerize the manual system
of a Gas Agency, so that all the transactions become fast and
easy. It replaces all the paper work. It works according to the
need and lowers the workload of user.
Objective of the program is rather simple .It provides easy
management of transaction that are regular in a business
concerned for which it have been developed. It’s provides an
easy navigation menu which a layman user can also use.
It manage the entire record along with date, item code, item
cost etc. in this program there is a working mode available
administrator. An administrator is as usual given all the rights
like adding information, modifying existing information,
deleting and viewing the information.
In this system clearly aims at reducing the paper work at the
cost to be borne of the registers and other things are much
6. higher than the System’s working. Its keep record of all the
information given to it according to the date which makes
locating a record quite easy
15. cout<<"PLEASE ENTER THE PASSWORD:";
gotoxy(20,21);
cin>>pass;
if(strcmp(nm,"admin")==0 && strcmp(pass,"vicky")==0)
{
return 0;
}else
{
return 1;
}
}
//********************************************************************
void intromain()
{ clrscr();
gotoxy(1,2);
cout<<"*************************BLOOD******DONATION********SYSTEM********************";
gotoxy(1,3);
cout<<"******************************************************************************";
}
//***************main intro
//***************************************************************
// INTRODUCTION FUNCTION
//****************************************************************
void intro()
{ clrscr();
gotoxy(4,2);
cout<<"****************************GAS CYLINDER BOOKING************************";
gotoxy(12,4);
cout<<"===========================================================";
gotoxy(5,5);
cout<<"****************************S=Y=S=T=E=M********************************";
gotoxy(50,10);
cout<<"PROJECT:";
gotoxy(50,12);
cout<<"MADE BY : --------------------";
gotoxy(10,14);
cout<<"---------------CLASS : XII --------------------";
getch();
}
//***************************************************************
// ADMINSTRATOR MENU FUNCTION
//****************************************************************
void admin_menu()
{
clrscr();
char ch2;
clrscr();
intromain();
gotoxy(12,6);
cout<<"======================ADMIN MENU=========================";
gotoxy(12,7);
cout<<"1.CUSTOMER CONNECTION INFORMATION";
gotoxy(12,8);
cout<<"2.BOOKING SYSTEM/FINALIZATION/INCREASE OR DECREASE CYLINDER LIMIT";
gotoxy(12,9);
cout<<"3.BACK TO MAIN MENU";
gotoxy(12,10);
cout<<"Please Enter Your Choice (1-3) ";
gotoxy(22,11);
//**********************************************************
ch2=getche();
switch(ch2)
{
case '1':
customer_menu();
break;
case '2':
booking_menu();
break;
16. default:
cout<<"a";//admin_menu();
}
}
//***************************************************************
// DONARS INFORMATION ADD / MODIFY / DELETE
//****************************************************************
void customer_menu()
{
clrscr();
char ch2;
char regno[15];
//************************************************************
clrscr();
intromain();
gotoxy(20,6);
cout<<"=================CUSTOMER'S MENU====================";
gotoxy(22,7);
cout<<"1.ADD CUSTOMER CONNECTION INFORMATION";
gotoxy(22,8);
cout<<"2.MODIFY CUSTOMER INFORMATION";
gotoxy(22,9);
cout<<"3.DELETE CUSTOMER INFORMATION";
gotoxy(22,10);
cout<<"4.BACK TO MAIN MENU";
gotoxy(22,11);
cout<<"Please Enter Your Choice (1-4) ";
gotoxy(22,12);
//**********************************************************
ch2=getche();
switch(ch2)
{
case '1': clrscr();
write_cust_conn();
break;
case '2':
clrscr();
intromain();
gotoxy(10,8);
cout<<"*****ENTER THE REG. NO. OF CONNECTION NO TO BE SEARCHED:";
gotoxy(55,9);
cin>>regno;
modify_CUSTinfo(regno);
break;
case '3':
clrscr();
intromain();
gotoxy(10,8);
cout<<"*****ENTER THE CONNECTION NO OF CUSTOMER TO BE SEARCHED AND DELETE:";
gotoxy(55,9);
cin>>regno;
delete_CUSTinfo(regno);
break;
default:
cout<<"a";//admin_menu();
}
}
//***************************************************************
//********************booking menu
void booking_menu()
{
clrscr();
int value=0;
char ch2,ch;
char conn[15];
//************************************************************
clrscr();
intromain();
gotoxy(20,6);
17. cout<<"=================BOOKING MENU====================";
gotoxy(22,7);
cout<<"1.BOOKING OF CYLINDER";
gotoxy(22,8);
cout<<"2.FINALIZATION AFTER CYLINDER DELIVERED";
gotoxy(22,9);
cout<<"3.INCREASE OR DECREASE THE SUBSIDY CYLINDER LIMIT";
gotoxy(22,10);
cout<<"4.BACK TO MAIN MENU";
gotoxy(22,11);
cout<<"Please Enter Your Choice (1-4) ";
gotoxy(22,12);
//**********************************************************
ch2=getche();
switch(ch2)
{
case '1': clrscr();
intromain();
gotoxy(10,8);
cout<<"*****ENTER THE CONNECTION NO TO BE SEARCHED:";
gotoxy(55,9);
cin>>conn;
bookmycylinder(conn);
break;
case '2': clrscr();
intromain();
gotoxy(10,8);
cout<<"*****ENTER THE CONNECTION NO TO BE FINALIZED:";
gotoxy(55,9);
cin>>conn;
finalizedcyl(conn);
break;
case '3': clrscr();
intromain();
gotoxy(10,8);
cout<<"*****ENTER THE LIMIT TO INCR OR DECR(Y/N) AND VALUE OF LIMIT:";
gotoxy(10,9);
cout<<"Enter the choice (Y/y) to INCREASE and (N/n) to Decrase";
cin>>ch;
gotoxy(10,10);
cout<<"Please enter the limit value:";
cin>>value;
incr_decr(value,ch);
break;
default:
cout<<"a";
}
}
//********************booking menu
//*****************add new registered donars information
void write_cust_conn()
{
ofstream objoff;
customer custobj;
conn_limit conlm;
int lm=0;
objoff.open("customer.dat",ios::binary|ios::app);
ofstream objofflist("connlimit.dat",ios::binary|ios::app);
clrscr();
intromain();
int rnn=getcustno();
char getprv_regno[15];
strcpy(getprv_regno,getreg());
if(strcmp(getprv_regno,"NULL")!=0)
{
gotoxy(5,4);
cout<<"Previous REGNO: "<<getprv_regno;
}
if(rnn>10000)
18. {
rnn=1;
}
custobj.create_CUST_CONNECTION(rnn);
gotoxy(5,23);
cout<<"NO. OF CYLINDERS:: ";cin>>lm;
conlm.limit=lm;
objoff.write((char*)&custobj,sizeof(customer));
//************write to cust. limit list also
strcpy(conlm.cust_reg,custobj.getcustreg());
objofflist.write((char*)&conlm,sizeof(conn_limit));
objoff.close();
objofflist.close();
gotoxy(10,24);
cout<<"***************RECORD SAVED******************* ";
cin.ignore();
getch();
}
//*****************add new registered donars information
//*************get the customer no
int getcustno()
{
ifstream objiff;
customer st;
int count=0;
objiff.open("customer.dat",ios::binary);
objiff.seekg(0,ios::beg);
if(!objiff)
{
cout<<"File could not be open !! Press any Key...";
getch();
}
//**************temporary hiding these lines
while(objiff.read((char *) &st, sizeof(customer)))
{
count++;
}
//***********jump to the last line
objiff.seekg(count-sizeof(st),ios::beg);
objiff.read((char *) &st, sizeof(customer));
count=st.getcustno2();
count++;
objiff.close();
return count;
}
//*************get the customer reggst
//************get thje donars last number****************
char *getreg()
{
ifstream objiff;
customer st;
int count=0;
char tmpregno[15];
objiff.open("customer.dat",ios::binary);
objiff.seekg(0,ios::beg);
if(!objiff)
{
cout<<"File could not be open !! Press any Key...";
getch();
}
//**************temporary hiding these lines
while(objiff.read((char *) &st, sizeof(customer)))
{
count++;
}
//***********jump to the last line
objiff.seekg(count-sizeof(st),ios::beg);
objiff.read((char *) &st, sizeof(customer));
strcpy(tmpregno,st.getcustreg());
objiff.close();
19. if(count!=0)
return tmpregno;
else
return "NULL";
}
//************get thje donars last number****************
//************************************
//***************MODIFY CUSTOMER INFORMATION
void modify_CUSTinfo(char regno[15])
{
char ch2;
clrscr();
intromain();
fstream fp;
fp.open("customer.dat",ios::binary|ios::in|ios::out);
bank_info bktmp;
customer dr;
nameinfo nminfo;
address ad1;
char mb[15],eid[75],ADH[20];
int fpos=-1,ag=0;
int flag=-1;//flagblood=-1;
if(!fp)
{
cout<<"File could not be open !! Press any Key...";
getch();
return;
}
while(fp.read((char*)&dr,sizeof(customer)))
{
if(strcmp(dr.getcustreg(),regno)==0)
{
flag=1;
fpos=(int)fp.tellg();
break;
}
}
if(flag==1)
{
fp.seekp(fpos-sizeof(customer),ios::beg);
dr.display_cust_conn();
//--------------------------------------------
gotoxy(20,13);
cout<<"==========CONNECTION'S MODIFICATION MENU====================";
gotoxy(22,14);
cout<<"1.MODIFY NAME";
gotoxy(22,15);
cout<<"2.MODIFY AGE";
gotoxy(22,16);
cout<<"3.MODIFY ADDRESS";
gotoxy(22,17);
cout<<"4.MODIFY MOBILE NO.";
gotoxy(22,18);
cout<<"5.MODIFY EMAIL";
gotoxy(22,19);
cout<<"6.MODIFY AADHAAR NO:";
gotoxy(22,20);
cout<<"7.MODIFY BANK INFO.";
gotoxy(22,21);
cout<<"Please Enter Your Choice (1-7) ";
gotoxy(22,22);
//**********************************************************
ch2=getche();
clrscr();
intromain();
dr.display_cust_conn();
switch(ch2)
{
case '1':
gotoxy(20,13);
20. cout<<"===ENTER THE FIRST NAME TO MODIFY: ";cin>>nminfo.fname;
gotoxy(20,14);
cout<<"===ENTER THE LAST NAME TO MODIFY: ";cin>>nminfo.lname;
dr.setfullname(nminfo);
break;
case '2':
gotoxy(20,13);
cout<<"===ENTER THE AGE TO MODIFY: ";cin>>ag;
dr.setage(ag);
break;
case '3':
gotoxy(20,13);
cout<<"===ENTER THE HNO TO MODIFY: ";cin>>ad1.hno;
gotoxy(20,14);
cout<<"===ENTER THE CITY TO MODIFY: ";cin>>ad1.city;
gotoxy(20,15);
cout<<"===ENTER THE STATE TO MODIFY: ";cin>>ad1.state;
dr.setaddress(ad1);
break;
case '4':
gotoxy(20,13);
cout<<"===ENTER THE MOBILE TO MODIFY: ";cin>>mb;
dr.setmobileno(mb);
break;
case '5':
gotoxy(20,13);
cout<<"===ENTER THE EMAIL TO MODIFY: ";cin>>eid;
dr.setemail(eid);
break;
case '6':
gotoxy(20,13);
cout<<"===ENTER THE AADHAAR NO TO MODIFY: ";cin>>ADH;
dr.setaadhar(ADH);
//flagblood=1;
break;
case '7':
gotoxy(20,13);
cout<<"===ENTER THE BANK DETAILS TO BE MODIFY:";
gotoxy(5,14);
cin.ignore();
cout<<"BANK NAME:: ";
cin.getline(bktmp.bankname,50);
gotoxy(5,15);
cout<<"BANK BRANCH:: ";
cin>>bktmp.branch;
gotoxy(5,16);
cout<<"ACCOUNT NO:: ";
cin>>bktmp.acctno;
gotoxy(5,17);
cout<<"IFSC:: ";
cin>>bktmp.ifsc;
dr.setbankinfo(bktmp);
break;
default:
cout<<"a";//admin_menu();
}
fp.write((char *) &dr, sizeof(customer));
}
fp.close();
cout<<"*****************modified the record******************";
getch();
}
//***************MODIFY CUSTOMER INFORMATION
//****************deletion of the customer connection..............
//***************delete donars information
void delete_CUSTinfo(char regno[15])
{
clrscr();
intromain();
ifstream fp;
21. customer dr;
int flag=0;
fp.open("customer.dat",ios::binary);
if(!fp)
{
cout<<"File could not be open !! Press any Key...";
getch();
return;
}
while(fp.read((char*)&dr,sizeof(customer)))
{
if(strcmp(dr.getcustreg(),regno)==0)
{
flag=1;
break;
}
}
char ch;
if(flag==0)
{ cout<<"nnrecord not exist";
fp.close();
}else
{
dr.display_cust_conn();
fp.close();
//*******deletion of the records starts from here
gotoxy(1,15);
cout<<"*****************************************************************************";
gotoxy(5,16);
cout<<"======DO YOU WANT TO DELETE THE RECORDS GIVEN ABOVE[YES(Y) OR NO (N)========";
gotoxy(2,17);
cin>>ch;
if (toupper(ch)=='Y')
{
ofstream outFile;
outFile.open("Temp1.dat",ios::binary);
ifstream objiff("customer.dat",ios::binary);
objiff.seekg(0,ios::beg);
while(objiff.read((char *) &dr, sizeof(customer)))
{
if(strcmp(dr.getcustreg(),regno)!=0)
{
outFile.write((char *) &dr, sizeof(customer));
}
}
outFile.close();
objiff.close();
remove("customer.dat");
rename("Temp1.dat","customer.dat");
//againopenandclose();
gotoxy(30,20);
cout<<"----------------------------Record Deleted----------------------------------";
getch();
}
}
}
//****************deletion of the customer connection..............
//******************all reports display here
void cust_report_menu()
{
clrscr();
char ch2;
// char regno[15];
char conn[15];//,cty[35];
dateinfo datesearch;
//************************************************************
clrscr();
intromain();
gotoxy(20,6);
22. cout<<"=================REPORTS====================";
gotoxy(22,7);
cout<<"1.ALL CONNECTION INFORMATION ";
gotoxy(22,8);
cout<<"2.CUSTOMER INFORMATION BY CONNECTION NO";
gotoxy(22,9);
cout<<"3.CUSTOMER INFORMATION AND NO. CYLINDER DELEVERED OR PENDING";
gotoxy(22,10);
cout<<"4.DISPLAY CYLINDER BOOKING DELEVERED OR PENDING DATE WISE";
gotoxy(22,11);
cout<<"5.DISPLAY CUSTOMER INFORMATION WITH NO. OF SUBSIDY LIMITS LEFT";
gotoxy(22,12);
cout<<"6.BACK TO MAIN MENU";
gotoxy(22,13);
cout<<"Please Enter Your Choice (1-6) ";
gotoxy(22,14);
//**********************************************************
ch2=getche();
switch(ch2)
{
case '1':
clrscr();
intromain();
displayallCONN();
break;
case '3':
clrscr();
intromain();
gotoxy(10,8);
cout<<"*****ENTER THE CONNECTION NO TO BE SEARCHED:";
gotoxy(55,9);
cin>>conn;
displayCONN_withnoCYL(conn);
break;
case '2':
clrscr();
intromain();
gotoxy(10,8);
cout<<"*****ENTER THE CONNECTION NO TO BE SEARCHED:";
gotoxy(55,9);
cin>>conn;
displayCONNofCUST(conn);
break;
case '4':
clrscr();
intromain();
gotoxy(10,8);
cout<<"*****ENTER THE datewise TO BE SEARCHE of cylinder bookings:";
gotoxy(10,9);
cout<<"-----------------DATE OF SEARCH----------------------";
gotoxy(10,10);
cout<<"DATE(dd/mm/yyyy):";
gotoxy(30,10);
cin>>datesearch.dd;
gotoxy(35,10);
cout<<"/";
gotoxy(40,10);
cin>>datesearch.mm;
gotoxy(45,10);
cout<<"/";
gotoxy(50,10);
cin>>datesearch.yy;
display_cyl_datewise(datesearch);
break;
case '5':
clrscr();
intromain();
gotoxy(10,8);
cout<<"*****ENTER THE CONNECTION NO TO BE SEARCHED:";
23. gotoxy(55,9);
cin>>conn;
display_custlimit(conn,13);
break;
}
}
//******************all reports display here
//***********display all working connections
void displayallCONN()
{
ifstream objiff("customer.dat",ios::binary);
customer blstk;
if(!objiff)
{
cout<<"File could not be open !! Press any Key...";
getch();
return;
}
clrscr();
intromain();
int c1=5;
gotoxy(1,c1);
cout<<"CUST CONN.NO."<<setw(18)<<"NAME OF CUSTOMER"<<setw(5)<<"AGE"<<setw(10)<<"--ADDRESS--
"<<setw(12)<<"MOB.NO"<<setw(15)<<"AADHAAR NO";
c1++;
while(objiff.read((char*)&blstk,sizeof(customer)))
{
gotoxy(5,c1);
blstk.showallcustrowwise(c1);
c1++;
}
objiff.close();
getch();
}
//***********display all working connections
//****************DISPLAY CUSTOMER BY CONN SEARCH
void displayCONNofCUST(char conn[15])
{
ifstream fp;
fp.open("customer.dat",ios::binary);
customer dr;
char ch='0';
if(!fp)
{
cout<<"File could not be open !! Press any Key...";
getch();
return;
}
clrscr();
intromain();
gotoxy(10,9);
cout<<"DISPLAY DETAILS WITH OR WOTHOUT BANK DETAILS(Y//N)?";
gotoxy(10,10);
cin>>ch;
if(ch=='N' || ch=='n')
{
while(fp.read((char*)&dr,sizeof(customer)))
{
if(strcmp(dr.getcustreg(),conn)==0)
{
clrscr();
intromain();
dr.display_cust_conn();
}
}
}else if(ch=='Y' || ch=='y')
{
while(fp.read((char*)&dr,sizeof(customer)))
{
if(strcmp(dr.getcustreg(),conn)==0)
24. {
clrscr();
intromain();
dr.display_cust_conn_bank();
}
}
}
fp.close();
}
//****************DISPLAY CUSTOMER BY CONN SEARCH
//*****************to change the limit of cylinder
void limitchange(char custreg[15],int lm)
{
fstream fp;
conn_limit cnlm;
int flag=-1;
int fpos=0;
fp.open("connlimit.dat",ios::binary|ios::in|ios::out);
if(!fp)
{
cout<<"File could not be open !! Press any Key...";
getch();
return;
}
//**********search
while(fp.read((char*)&cnlm,sizeof(conn_limit)))
{
if(strcmp(cnlm.cust_reg,custreg)==0)
{
flag=1;
fpos=(int)fp.tellg();
break;
}
}
if(flag==1)
{
cnlm.limit=cnlm.limit+lm;
fp.seekp(fpos-sizeof(customer),ios::beg);
//**********search
fp.write((char *) &cnlm, sizeof(conn_limit));
}
fp.close();
}
//*****************to change the limit of cylinder
//*****************display customer information with limits
void display_custlimit(char custreg[15],int P)
{
clrscr();
intromain();
fstream fp;
ifstream objiff;
fp.open("customer.dat",ios::binary|ios::in|ios::out);
objiff.open("connlimit.dat",ios::binary);
customer dr;
conn_limit cnlm;
int flag=-1,flag2=-1,fpos=0;
if(!fp)
{
cout<<"File could not be open !! Press any Key...";
getch();
return;
}
while(fp.read((char*)&dr,sizeof(customer)))
{
if(strcmp(dr.getcustreg(),custreg)==0)
{
flag=1;
fpos=(int)fp.tellg();
break;
}
37. REQUIREMENTS
HARDWARE REQUIRED
Printer, to print the required documents of the project
Compact Drive
Processor : intel
Ram : 512 MB or more than 512MB
Harddisk : 80 GB or more than 80GB.
SOFTWARE REQUIRED
Operating system : Windows XP
Turbo C++, for execution of program and Ms word, for
presentation of output.
38. ADVANTAGES
Customers do not need to wait in long queues.
This software reduces paper work.
It is easy to handle customer as well as the cylinder’s record.
This software saves the time.
Information of the customers stores permanently.
DISADVANTAGES
This system suitable for only small level gas agencies.
Online facility is not available.
39. CONCLUSION
This software is efficient in maintaining customers details and
can easily perform operations of cylinders records. This
software also reduces the work load of the booking system as
they know how many cylinders are delivered every day and
how many are pending.
In future, this system can launch web site for easy online gas
booking system.
40. SYSTEM DESIGN
Then we began with the design phase of the system. System design is a solution, a
“HOW TO” approach to the creation of a new system. It translates system
requirements into ways by which they can be made operational. It is a
translational from a user oriented document to a document oriented
programmers. For that, it provides the understanding and procedural details
necessary for the implementation. Here we use Flowchart to supplement the
working of the new system. The system thus made should be reliable, durable and
above all should have least possible maintenance costs. It should overcome all the
drawbacks of the Old existing system and most important of all meet the user
requirements.
41. BIBLIOGRAPHY
The C++ Programming Language , 3rd Edition / Stroustrup Addison-Wesley.
C++ Primer, 3rd Edition / Lippman and Lajoie Addison-Wesley.
The Scott Meyers series, Addison-Wesley:
Effective C++ : 50 Specific Ways to Improve Your Programs and Designs, 2nd Edition
More Effective C++ : 35 New Ways to Improve Your Programs and Designs
and Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library
Beginners' C++ Course, 3rd Edition Ron Wein