You are on page 1of 38

Lovely Professional

University

TERM PAPER
Of
FOUNDATION OF COMPUTING
Topic: - gas agency
Management system

Submitted To: - Submitted By:-

ms. Sukhdilpreet kaur Name:-parul sharma

Lecturer lpu Roll No:-r246b53

Section:-246

Regd No:-10802157

ACKNOWLEDGEMENT
It is not until you undertake the project like this one that you realize
how massive the effort it really is, or how much you must rely upon
the Selfless efforts and goodwill of others. There are many who
helped us with this project, and we want to thank them all from the
core of our Hearts.

We owe special words of thanks to our Teachers


MS.SUKHDILPREET KAUR for their vision, thoughtful
counseling and encouragement at every step of the project. We are
also thankful to the teachers of the Department for giving us the best
of knowledge and guidance throughout the project.

And last but not the least, we find no words to acknowledge the
financial assistance & moral support rendered by our parents in
making the effort a success. All this has become reality because of
their blessings and above all by the grace of god.

TABLE OF CONTENTS
S.N Content Page no.
o
1 INTRODUCTION 4

2 Proposed system 7
(a) Description
(b) System Requirements
3 Requirement 8
analysis
4 System Design 9
5 Source code 10
6 Testing 32
7 Future scope of 37
project

OVERVIEW TO C
HISTORY OF C:

C is a popular general purpose programming language. It is one


of the most popular computer languages today, because it is a
structured, high level, machine independent language.

The root of all modern language is ALGOL, introduced in early


1960’s. ALGOL was the 1st computer language to use a block
structure. Subsequently, several other languages were announced after
1960’s. In 1967, Martin Richard developed a language called BCPL
i.e. basic combined programming language mainly for writing system
software. In 1970, Ken Thompson created a language using many
features of BCPL and called it simply B. B was used to create early
version of UNIX operating system.

C was evolved from ALGOL, BCPL, and B by Dennis Ritchie at the


Bell Laboratories in 1972, strongly associated with UNIX. During
1970’s, C had evolved into the “TRADITIONAL C”. With the
publication of the book ‘The C Programming language’ by Brian
Kerningham and Dennis Ritchie in 1978, it becomes more powerful.

In 1983, American National Standards Institutes (ANSI) appointed a


technical committee to define a standard for C. The committee
approved a version of C in December 1989, which is now known as
ANSI C. It was then approved by International Standard Organization
(ISO) in 1990.

IMPORTANCE OF C:
The increasing popularity of C is probably due to its many
desirable qualities. The C compiler combines the capabilities of an
assembly language with the features of a high level language and
therefore it is well suited for writing both system software and
business packages. In fact many of the C compilers available in the
market are written in C. Programs written in C are efficient and fast.
This is due to its variety of data types and powerful operators. It is
many times faster than BASIC.

There are only 32 key words in ANSI C and its strength lies in its
built in functions. C is highly portable; this means that C programs
written for one computer can be run on another with little or no
modifications. C language is well suited for structured programming,
thus requiring the user to think of a problem in terms of function
modules or blocks. This modular structure makes program de-
bugging, testing and maintenance easier.Another important feature of
C is its ability to extend itself. We can continuously add our own
functions to C library, thus our programming task becomes so easier
and simple.

INTRODUCTION:
We have discussed so far various features of C language and are
ready to write and execute program of modest complexity. However,
before attempting to develop complex programs, it is worthwhile to
consider some programming techniques that would help design
efficient and error free.

The program development process includes three important stages,


namely, program design, program coding and program testing. All the
three stages contribute to the production of high quality program.

In “GAS AGENCY MANAGEMENT SYSTEM” we have done


system design, source coding, and program testing and added many
more features to facilitate the user with the best. We have given the
user the facility to enter the customer’s record and see whether the
user is provided with the gas cylinder and the option for gas cylinder
booking and many more options.

We can improve the efficiency of the system, thus overcome the


drawbacks of the existing system.
· Less human error
· Strength and strain of manual labour can be reduced
· High security
· Data consistency
· Easy to handle
· Easy data updating
· Easy record keeping
· Backup data can be easily genera

Introduction of gas agency

management system
We can make this gas management system in C language by using three or

more than three header files or many data types such as:

1. #include<stdio.h> : this header file will contain Scanf() , Printf () And,

there are many header files which are used in this program….

2. #include<conio.h>: this header file will contain Clrscr(); , Getch(); , and

many more…..

3. #include<math.h>: this header file will contain power

function(pow()) , squareroots function , cuberoots function , etc

are used in this program…

4. #include<string.h> : this header file will contain string function

such as 1.Strrev();

2. Strlen();

3. Strupr();

4. Strlwr();

5. And many mores……

SYSTEM REQUIREMENTS
Operating System: Windows 2000/NT/Xp/Vista

RAM: 256 MB or more

HARD DISK 40 GB or more

Processor P3 or High

Compiler Standard C++ Compiler

SYSTEM DESCRIPTION

THE OPERATING SYSTEM USED IN THIS PROJECT IS


WINDOWSXPIT HAS MICROSOFT OFFICE INSTALLED IN IT.
IT HAS RAM OF 2GB. HARD DISK CAPACITY OF OPERATING
SYSTEM IS 250GB. IT CONSISTS OF PENTIUM-4
PROCESSOR.THE OPEREATING SYSTEM ALSO HAS C++
COMPILER. THE SYSTEM ALSO HAS TYPE CONVERSIONS
WHICH CONVERT LOWER TO UPPER TYPE. THE
OPERATING SYSTEM HAVE 1GB RAM FOR MICROSOFT
Start
WORLD.

WELCOME
TO THE
MAIN MENU

ENTER
YOUR
CHOICE

CHOICE

system design:

ENTER DELETE VIEW


INFORMATIO ENTER SEARCH SCALES
PRODUCT RECORD
N ABOUT PURCHASE FOR AND
TO BE FROM
PRODUCT RECORD RECORD PROFIT
SALED DATA
REPORT

PRINT BAR GRAPH RETRIEVE


RECORD OF QUANTITY INFORMATION
/ PROFIT

STOP
If no then go to main menu

If yes then stop and exit

SOURCE CODE
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
#include <string.h>
#include <dos.h>
#include <math.h>
#include <time.h>
#include<stdlib.h>
#include <bios.h>
void show_mouse();
int t();
void edit();
void infor();
void entry();
void display();
void search();
void search_id();
void search_name();
void del();
void deletion();
void deletion_id();
void print();
void help();
void eat();
void general();
void exit();
void seteefect(int, int);
void graph();
void bar(int inscor);
void graph2();
void bar2(int inscore2);
void report();
void report2();
void report3();
void pur();
void graph1();
void design();
void bbox();
void ventry(char t[],int);

struct shop
{
char desc[20];
int rack;
char ch;
int cabnit;
int quantity;
float sale;
char id[6];
float total;
float unit;
float cost;
float profit;
float bye;
int qty;
int ost;
int b;
};

struct shop temp;


struct shop x[20];
FILE *ptr;
//int age;
char a[10];
/************************************displays information about the
cars***************************/

void infor()
{
int sher;
clrscr();
textcolor(WHITE);
gotoxy(13,3);
printf("\xDB\xDB\xDB\xDB\xB2 INFORMATION ABOUT PRODUCTS
\xB2\xDB\xDB\xDB\xDB");
gotoxy(2,5);
printf("THIS SECTION IS TO TELL WHAT KIND OF PRODUCTS ARE THERE IN
STORE");
printf("\n\nENTER THE OPTION WHICH SUITS YOU.\n");
printf("\n\n1.EDIBLES.\n\n");
printf("\n2.GENERAL ITEMS.\n\n");
printf("\n\n\n\n\nOPTION:");
sher=toupper(getch());
//

switch(sher)
{
case '1':
eat();
break;

case '2':
general();
break;

default:
gotoxy(8,21);
cprintf("\awrong entry press any key to go main menu..");
}
getche();

void eat()
{
clrscr();
printf("***************************************************************\n");
printf(" ID : 123. JAM COMPANY : MITUCHELS RACK NO 24 \n");
printf(" ID : 124. HONEY COMPANY : PAK PURE RACK NO 25\n");
printf(" ID : 125. MILK COMPANY : HALEEB RACK NO 26\n");
printf(" ID : 126. BREAD COMPANY : WONDER RACK NO 27\n");
printf(" ID : 127. CHEES COMPANY : JUNAID RACK NO 28\n");
printf(" ID : 128. JUICE COMPANY : SONS RACK NO 29\n");
printf(" ID : 129. PEPSI COMPANY : MAJEED RACK NO 30 \n");
printf(" ID : 130. BUTTER COMPANY : JAFFAR RACK NO 31 \n");
printf(" ID : 131. ICECREAM COMPANY : POLKA FREEZER 32 \n");
printf("**************************************************************\n\n");
printf("Press any key to continue......");
getche();
clrscr();
printf(" ID : 133. MILO COMPANY : MITUCHELS RACK NO 24 \n");
printf(" ID : 134. KEY BRAN COMPANY : PAK PURE RACK NO 25\n");
printf(" ID : 135. TANG COMPANY : HALEEB RACK NO 26\n");
printf(" ID : 136. ALWAYS COMPANY : WONDER RACK NO 27\n");
printf(" ID : 327. PEPPARS COMPANY : JUNAID RACK NO 28\n");
printf(" ID : 138. JHERBAL COMPANY : SONS RACK NO 29\n");
printf(" ID : 139. PEPSI COMPANY : MAJEED RACK NO 30 \n");
printf(" ID : 130. ORAGD COMPANY : JAFFAR RACK NO 31 \n");
printf(" ID : 131. ICECREAM COMPANY : POLKA FREEZER 32 \n");
printf("**************************************************************\n");
printf(" ID : 143. SHAMPO COMPANY : MITUCHELS RACK NO 24 \n");
printf(" ID : 144. AGRI COMPANY : PAK PURE RACK NO 25\n");
printf(" ID : 145. TIMO COMPANY : HALEEB RACK NO 26\n");
printf(" ID : 146. WASHSN COMPANY : WONDER RACK NO 27\n");
printf(" ID : 147. LACE COMPANY : JUNAID RACK NO 28\n");
printf(" ID : 428. YARDLY COMPANY : SONS RACK NO 29\n");
printf(" ID : 149. MUSK COMPANY : MAJEED RACK NO 30 \n");
printf(" ID : 140. BUTTER COMPANY : JAFFAR RACK NO 31 \n");
printf(" ID : 141. IMPERIAL COMPANY : POLKA FREEZER 32 \n");
printf("**************************************************************\n");
printf("\n\nPress enter to return to main menu");
}

void general()
{
clrscr();
printf("***************************************************************\n");
printf(" ID : 153. DETOL COMPANY : MITUCHELS RACK NO 24 \n");
printf(" ID : 154. SHAMPO COMPANY : PAK PURE RACK NO 25\n");
printf(" ID : 155. FINERRE COMPANY : HALEEB RACK NO 26\n");
printf(" ID : 156. CURTIS COMPANY : WONDER RACK NO 27\n");
printf(" ID : 157. NIVKA COMPANY : JUNAID RACK NO 28\n");
printf(" ID : 158. NIVCA COMPANY : SONS RACK NO 29\n");
printf(" ID : 159. DETOL COMPANY : MAJEED RACK NO 30 \n");
printf(" ID : 150. BUTTER COMPANY : JAFFAR RACK NO 31 \n");
printf(" ID : 151. SHAVE COMPANY : POLKA FREEZER 32 \n");
printf("***************************************************************\n\n");
printf("Press any key to continue......");
getche();
clrscr();
printf(" ID : 163. ADDIS COMPANY : MITUCHELS RACK NO 24 \n");
printf(" ID : 164. SKIN COMPANY : PAK PURE RACK NO 25\n");
printf(" ID : 165. MAX COMPANY : HALEEB RACK NO 26\n");
printf(" ID : 166. BRESCO COMPANY : WONDER RACK NO 27\n");
printf(" ID : 167. ZABIT COMPANY : JUNAID RACK NO 28\n");
printf(" ID : 168. COPEX COMPANY : SONS RACK NO 29\n");
printf(" ID : 169. SOAP COMPANY : MAJEED RACK NO 30 \n");
printf(" ID : 160. PAMOLI COMPANY : JAFFAR RACK NO 31 \n");
printf(" ID : 161. AVA COMPANY : POLKA FREEZER 32 \n");
printf("***************************************************************\n");
printf(" ID : 163. CAMY COMPANY : MITUCHELS RACK NO 24 \n");
printf(" ID : 164. SAFE COMPANY : PAK PURE RACK NO 25\n");
printf(" ID : 165. GUARD COMPANY : HALEEB RACK NO 26\n");
printf(" ID : 166. DOVE COMPANY : WONDER RACK NO 27\n");
printf(" ID : 167. REXONA COMPANY : JUNAID RACK NO 28\n");
printf(" ID : 168. TOUCNME COMPANY : SONS RACK NO 29\n");
printf(" ID : 169. FORHANS COMPANY : MAJEED RACK NO 30 \n");
printf(" ID : 160. SIGNAL2 COMPANY : JAFFAR RACK NO 31 \n");
printf(" ID : 161. CLOSEUP COMPANY : POLKA FREEZER 32 \n");
printf("***************************************************************\n");
printf("\n\nPress enter to return to main menu");

}
/////////////////////////////// time ///////////////////////////
int t(void)
{
time_t t;

time(&t);
// clrscr();
gotoxy(15,21);
printf("Date and time: %s\n", ctime(&t));
return 0;
}
///////////////////////////////////// validation //////////////////////////
void ventry(char t[],int code)
{
int i=0;
if(code==0)
{

while((t[i]=getch())!='\r' && i<30)


if((t[i]>=97 && t[i]<=122) || (t[i]>=65 && t[i]<=90) || t[i]==32 || t[i]==8)
{ printf("%c",t[i]);
i++;
}
}
else if(code==1)
{
while((t[i]=getch())!='\r' && i<10)
if((t[i]>=48 && t[i]<=57) || t[i]==46 || t[i]==8 )
{ printf("%c",t[i]);
i++;
}
}
t[i]='\0';
}

/******************************data entry***********************************/

void entry()
{
char ch;
clrscr();

ptr=fopen("shop.dat","a+b");
ch='y';
while(ch=='y')
{
clrscr();
design();
textcolor(14);
t();
gotoxy(14,3);
cprintf("\xDB\xDB\xDB\xDB\xDB\xB2 PURSHASE \xB2\xDB\xDB\xDB\xDB\xDB ");
{

gotoxy(7,5);
cprintf("\xDB\xDB\xB2 ENTER PRODUCT ID : ");
ventry(temp.id,1);
//
flushall();
gotoxy(7,7);
cprintf("\xDB\xDB\xB2 ENTER DESCRIPTION : ");
ventry(temp.desc,0);
flushall();
gotoxy(7,9);
cprintf("\xDB\xDB\xB2 ENTER RACK NO : ");
ventry(a,1);
temp.rack= atoi(a);

flushall();
gotoxy(7,11);
cprintf("\xDB\xDB\xB2 ENTER CABNIT NO : ");
ventry(a,1);
temp.cabnit= atoi(a);

//
flushall();
gotoxy(7,13);
///////////////////////
cprintf("\xDB\xDB\xB2 ENTER UNIT COST :$ ");
ventry(a,1);
temp.unit= atof(a);
flushall();

gotoxy(7,15);
cprintf("\xDB\xDB\xB2 ENTER SALE PRICE :$ ");
ventry(a,1);
temp.sale= atof(a);
flushall();

gotoxy(7,17);
cprintf("\xDB\xDB\xB2 ENTER QUANTITY : ");
ventry(a,1);
temp.quantity= atoi(a);
flushall();

gotoxy(7,18);
cprintf("=====================================");
temp.total=temp.quantity*temp.sale;

textcolor(10);
gotoxy(10,20);
cprintf("\xB2\xDB\xB2 TOTAL PRICE = $ %.2f",temp.total);
temp.cost=(temp.unit*temp.quantity);
gotoxy(40,20);
cprintf("\xDB\xB2 TOTAL COST = $ %.2f",temp.cost);

}
fwrite(&temp,sizeof(temp),1,ptr);
textcolor(10);
gotoxy(10,23);
cprintf("More entries [y/n]");
ch=getche();
}
fclose(ptr);

/*****************************data retreivel********************************/

void display()
{

clrscr();
ptr=fopen("shop.dat","rb");
while ((fread(&temp,sizeof(temp),1,ptr))==1)

{
gotoxy(22,3);
printf("\xDB\xDB\xDB\xB2\xB2 RETRIEVE RECORD \xB2\xB2\xDB\xDB\xDB");
gotoxy(18,5);
printf("\xDB\xDB\xB2 DESCRIOTION : %s",temp.desc);
gotoxy(18,7);
printf("\xDB\xDB\xB2 ID NUMBER : %s",temp.id);
gotoxy(18,9);
printf("\xDB\xDB\xB2 RACK NO : %d",temp.rack);
gotoxy(18,11);
printf("\xDB\xDB\xB2 CABNIT NO : %d",temp.cabnit);
gotoxy(18,13);
printf("\xDb\xDB\xB2 UNIT COST :$ %.2f",temp.unit);
gotoxy(18,15);
printf("\xDB\xDB\xB2 SALE PRICE : $ %.2f",temp.sale);
gotoxy(18,17);
printf("\xDB\xDB\xB2 QUANTITY : %d",temp.quantity);
gotoxy(16,18);
printf("===================================");
gotoxy(16,20);
printf("\xDB\xDB\xB2 TOTAL PRICE : $ %.2f",temp.total);
gotoxy(47,20);
printf("\xDB\xB2 TOTAL COST : $ %.2f",temp.cost);
gotoxy(20,23);
printf("Press Enter to see next if any or exit ...");

getche();
clrscr();

fclose(ptr);
//
}

/*******************************data search*******************************/

void search()
{
int sh;
clrscr();
design();
gotoxy(17,6);
printf("\xDB\xDB\xB2 Two options available to search \xB2\xDB\xDB");
gotoxy(15,9);
printf("[ 1 ] - Search by ID number .");
gotoxy(15,11);
printf("[ 2 ] - Search by Description .");
gotoxy(17,15);
printf("Enter your choice:: ");
sh=toupper(getch());

switch(sh)
{
case '1':
search_id();
break;

case '2':
search_name();
break;

default:
gotoxy(18,18);
printf("\a\xDB\xDB wrong entry try again");
getch();
}
getche();

/*****************************search by id*********************************/

void search_id()
{
int flag=0;
char lkf[20];
clrscr();
ptr=fopen("shop.dat","rb");
design();
gotoxy(13,4);
printf("\xDB\xDB\xB2 Enter id to be searched:");
scanf("%s",&lkf);
while((!flag)&&(fread(&temp,sizeof(temp),1,ptr))==1)
{
if(strcmp(temp.id,lkf)==0)
flag=1;
}
if(flag)
{

gotoxy(18,6);
printf("Product ID : %s",temp.id);
gotoxy(18,8);
printf("Description : %s",temp.desc);
gotoxy(18,10);
printf("Rack no : %d",temp.rack);
gotoxy(18,12);
printf("Cabnit : %d",temp.cabnit);
gotoxy(18,14);
printf("Sale price :$ %.2f",temp.sale);
gotoxy(18,16);
printf("Quantity : %d",temp.quantity);
gotoxy(16,17);
printf("============================");
gotoxy(18,19);
printf(" Total :$ %.2f",temp.total);

}
else
printf("Record not found!");
fclose(ptr);
}
/*****************************search by name******************************/

void search_name()
{
int flag=0;
char lkf[20];
clrscr();
ptr=fopen("shop.dat","rb");
design();
gotoxy(13,4);
printf("\xDB\xDB\xB2 Enter description to be searched:");
scanf("%s",&lkf);
while((!flag)&&(fread(&temp,sizeof(temp),1,ptr))==1)
{
if(strcmp(temp.desc,lkf)==0)
flag=1;
}
if(flag)
{

gotoxy(18,6);
printf("Product ID : %s",temp.id);
gotoxy(18,8);
printf("Description : %s",temp.desc);
gotoxy(18,10);
printf("Rack no : %d",temp.rack);
gotoxy(18,12);
printf("Cabnit : %d",temp.cabnit);
gotoxy(18,14);
printf("Sale price :$ %.2f",temp.sale);
gotoxy(18,16);
printf("Quantity : %d",temp.quantity);
gotoxy(16,17);
printf("============================");
gotoxy(18,19);
printf(" Total :$ %.2f",temp.total);

}
else
printf("Record not found!");
fclose(ptr);
}

/******************************data deletion*****************************/
void deletion()
{
int j,n,i;
char tar[30];
int count=0;

ptr = fopen("shop.dat","rb");
clrscr();
design();
gotoxy(17,10);
printf("\xDB\xDB Enter Description to be deleted:");
scanf("%s",&tar);
j=0;

while((fread(&temp,sizeof(temp),1,ptr))==1)
{
if((strcmp(temp.desc,tar)<0) || (strcmp(temp.desc,tar)>0))
{
x[j] = temp;
j++;
}
else
{
count++;
}
}
if (count==0)
{
clrscr();
design();
gotoxy(30,10);
printf("\xDB\xDB Record Not Found");
gotoxy(17,23);
printf("Press Enter to go to MAIN MENU .....");
getch();
return;
}

fclose(ptr);
n = j;
clrscr();
ptr=fopen("shop.dat","wb");
for(i=0; i<n; i++)
fwrite(&x[i],sizeof(x[i]),1,ptr);
fclose(ptr);
clrscr();
design();
gotoxy(20,10);
printf("Record has been deleted");
gotoxy(20,12);
printf("Check it by going to the displayed record");
gotoxy(17,23);
printf("Press Enter to go to MAIN MENU ......");
getch();

}
/******************************data print*********************************/
void print()
{
clrscr();
putc('\n',stdprn);
fputs("\n\t\t\tREPRT OF SALES",stdprn);
putc('\n',stdprn);
fputs("===========================",stdprn);
putc('\n',stdprn);
putc('\n',stdprn);
fputs("PRODUCT ID. NAME. SALE PRICE. QUANTITY. TOTAL PRICE",stdprn);
fputs("===================================================================
",stdprn);
putc('\n',stdprn);
putc('\n',stdprn);

ptr=fopen("shop.dat","rb");
while( (fread(&temp,sizeof(temp),1,stdprn))==1)

{
fprintf(stdprn," %s",temp.id);
fprintf(stdprn,"\t%s",temp.desc);
fprintf(stdprn,"\t%.2f",temp.sale);
fprintf(stdprn,"\t%ld\n",temp.quantity);
fprintf(stdprn,"\t%.2f",temp.total);
}
fclose(ptr);
}

/******************************help***************************************/

void help()
{
clrscr();
design();
textcolor(WHITE);
gotoxy(20,4);
cprintf("\xDB\xDB\xDB\xDB\xB2 HELP ABOUT THE PROGRAM
\xB2\xDB\xDB\xDB\xDB");
gotoxy(4,6);
cprintf(" [ 2 ] - ENTER RECORDS : THIS OPTION ALLOWS THE USER TO ENTER NEW ");
gotoxy(30,7);
cprintf("RECORDS. USER ENTERS PRODUCT ID, DESCRIPTION,");
gotoxy(30,8);
cprintf("QUANTITY AND UNIT PRICE. THE PROGRAMM CALCULATES");
gotoxy(30,9);
cprintf("TOTAL PRICE AND DISPLAYS ON THE SCREEN.");
gotoxy(4,11);
cprintf(" [ 3 ] - ENTER SALES : THIS OPTION ALLOWS THE USER TO SEE PREVIOUS
");
gotoxy(30,12);
cprintf("SALE RECORDS.");
gotoxy(4,14);
cprintf(" [ 4 ] - SEARCH PURCHASE : THIS OPTION ALLOWS THE USER TO SEARCH
SPECIFIC");
gotoxy(30,15);
cprintf("RECORD BY ENTERING ID OR 'DESCRIPTION'");
gotoxy(4,17);
cprintf(" [ 5 ] - DELETE PURCHASE : THIS OPTION ALLOWS THE USER TO DELETE A
SPECIFIC");
gotoxy(30,18);
cprintf("RECORD BY ENTERING ITS 'DESCRIPTION' OR ID");
gotoxy(6,23);
cprintf("Press any key to continue .............");

getche();
clrscr();
design();
textcolor(WHITE);
gotoxy(4,5);
cprintf(" [ 6 ] - VIEW REPORT : THIS OPTION ALLOWS THE USER TO PRINT
PREVIOUS");
gotoxy(30,6);
cprintf("SALE RECORDS ON PRINTER");
gotoxy(4,8);
cprintf(" [ 7 ] - PRINT RECORDS : THIS OPTION ALLOWS THE USER TO PRINT
RECORDS");
gotoxy(30,9);
cprintf("OM PRINTER.");
gotoxy(4,11);
cprintf(" [ 8 ] - VIEW GRAPH : THIS OPTION ALLOWS THE USER TO VIEW GRAPH ");
gotoxy(30,12);
cprintf("OF QUANTITY.");
gotoxy(10,23);
printf("Press any key to go to the MAIN MENU ........");

getche();
}

/***************************main menu*************************************/
menu()
{
int x;
do{
{
clrscr();
design();
t();
textcolor(WHITE);
gotoxy(24,3);
cprintf("\xDB\xDB\xDB\xDB\xB2 GAS AGENCY \xB2\xDB\xDB\xDB\xDB");
gotoxy(3,4);
cprintf("--------------------------------------------------------------------------");
gotoxy(35,5);
cprintf("MAIN MENU");
gotoxy(26,8);
cprintf(" 1 - INFORMATION ABOUT PRODUCTS ");
gotoxy(26,9);
cprintf(" 2 - ENTER PURCHASE RECORDS ");
gotoxy(26,10);
cprintf(" 3 - ENTER PRODUCTS TO BE SALE ");
gotoxy(26,11);
cprintf(" 4 - SEARCH FOR RECORD ");
gotoxy(26,12);
cprintf(" 5 - DELETE RECORD FROM STORE DATABASE ");
gotoxy(26,13);
cprintf(" 6 - VIEW SALES , PURCHASE & PROFIT REPORT ");
gotoxy(26,14);
cprintf(" 7 - PRINT RECORDS ");
gotoxy(26,15);
cprintf(" 8 - BAR GRAPH OF QUANTITY / PROFIT ");
gotoxy(26,16);
cprintf(" 9 - RETRIEVE INFORMATION ");
gotoxy(26,17);
cprintf(" H - HELP ");
gotoxy(26,18);
cprintf(" E - EXIT ");
gotoxy(26,23);
//
cprintf("ENTER YOUR CHOICE :: ");
gotoxy(47,23);
x=toupper(getch());
switch(x)
{
case '1':
infor();
break;

case '2':
entry();
break;

case '3':
edit();
break;

case '4':
search();
break;

case '5':
del();
break;

case '6':
report2();
break;

case '7':
print();
break;

case 'h': case'H':


help();
break;

case'8':
graph1();
break;

case '9':
display();
break;

case 'e': case 'E':


exit(0);
break;

default:
clrscr();
design();
gotoxy(17,12);
printf("\a\xDB\xB2 WRONG ENTRY : PRESS ANY KEY AND TRY AGAIN");
getche();
}
}
}while((x!='e')||(x!='E'));
return x;
}

void main()
{
textbackground(14);
show_mouse();
menu();
}
/************************************* graph ***********************************/

void graph()
{
int inscor=1;
char ch;
clrscr();
design();
gotoxy(20,23);
printf("Press enter to go to MAIN MENU .....");
textcolor(10);
gotoxy(15,4);
cprintf("************* GRAPH OF PRODUCT QUANTITY *************");
textcolor(14);
gotoxy(3,5);
cprintf(" PRODUCT NAME");
ptr=fopen("shop.dat","rb");
while((fread(&temp,sizeof(temp),1,ptr))==1)
{

printf("\n \xBA %s \t:",temp.desc);


bar(inscor);

}
fclose(ptr);
getche();
}
void bar()
{
int j;
for(j=1;j<=temp.quantity;j++)
printf("\xDB");
printf(" %d",temp.quantity);
printf("\n");
}
/*********************************** view report ****************************/
void report()
{
char ch;
clrscr();
design();
gotoxy(20,23);
printf("Press Enter to go to MAIN MENU ........");
textcolor(GREEN);
gotoxy(25,4);
cprintf("\xDB\xDB\xDB\xDB\xDB\xB2 VIEW OF SALES \xB2\xDB\xDB\xDB\xDB\xDB");
textcolor(RED);
gotoxy(4,7);
cprintf("PRODUCT ID. NAME. SALE PRICE. QUANTITY. TOTAL PRICE");
gotoxy(4,9);
printf("==================================================================
======");

ptr=fopen("shop.dat","rb");
while((fread(&temp,sizeof(temp),1,ptr))==1)

{
//
printf("\n \xBA %s\t",temp.id);
printf("\t%s",temp.desc);
printf("\t\t$%.2f",temp.sale);
// printf("\t\t%d",temp.qty);
printf("\t\t%d",temp.quantity);
// printf("\t\t%d",temp.bye);
printf("\t\t $%.2f",temp.total);

getche();
}
void seteffect(int b, int f)
{
clrscr();
textbackground(b);
textcolor(f);
}

/********************************** purchase report **********************/


void pur()
{
char ch;
clrscr();
design();
show_mouse();
gotoxy(20,23);
printf("Press Enter to go to MAIN MENU ...........");
textcolor(GREEN);
gotoxy(25,4);
cprintf("\xDB\xDB\xDB\xDB\xDB\xB2 VIEW OF PURCHASES
\xB2\xDB\xDB\xDB\xDB\xDB");
textcolor(RED);
gotoxy(4,7);
cprintf("PRODUCT ID. NAME. UNIT PRICE. QUANTITY. TOTAL COST");
gotoxy(4,9);
printf("==================================================================
======");

ptr=fopen("shop.dat","rb");
while((fread(&temp,sizeof(temp),1,ptr))==1)
{
//
printf("\n \xBA %s\t\t",temp.id);
printf(" %s",temp.desc);

printf("\t\t$%.2f",temp.unit);
printf("\t\t%d",temp.quantity);
printf("\t\t $%.2f",temp.cost);
}
getche();
}

/*********************************** purchase graph ***********************/

void graph2()
{
int inscor2=1;
char ch;
clrscr();
design();
gotoxy(20,23);
printf("Pres Enter to go to MAIN MENU ...........");
textcolor(10);
gotoxy(15,4);
cprintf("************* GRAPH OF PROFIT *************");
textcolor(14);
gotoxy(4,5);
cprintf("PRODUCT NAME");
ptr=fopen("shop.dat","rb");
while((fread(&temp,sizeof(temp),1,ptr))==1)
{

printf("\n \xBA %s \t:",temp.desc);


bar2(inscor2);
}

fclose(ptr);
getche();
}
void bar2()
{
int j;
temp.profit=(temp.total-temp.cost);
//
for(j=1;j<=temp.profit;j++)
printf("\xDB");
printf(" %.1f$",temp.profit);
printf("\n");
}

/********************************* both graphs call ****************************/

void graph1()
{
int sher;
clrscr();
textcolor(WHITE);
gotoxy(24,3);
printf("\xDB\xDB\xDB\xDB\xB2 BAR GRAPH \xB2\xDB\xDB\xDB\xDB");
gotoxy(10,5);
printf("THIS SECTION IS TO show the graph of quantity and profit ");
printf("\n\n\t ********* ENTER THE OPTION WHICH SUITS YOU. *******\n");
printf("\n\n\t\xDB\xDB\xB2 1.QUANTITY.\n\n");
printf("\n\t\xDB\xDB\xB2 2.PROFIT.\n");
printf("\n\n\n\t\t\xDB\xDB\xB2 OPTION:");
sher=toupper(getch());

switch(sher)
{
case '1':
graph();
break;

case '2':
graph2();
break;

default:
gotoxy(9,20);
textcolor(RED);
cprintf("\a\xDB\xB2 WRONG ENTRY : PRESS ENTER TO GO TO MAIN MENU... ");
getche();
}

}
/************************** report of profit **********************/
void report3()
{
char ch;
clrscr();
design();
gotoxy(20,23);
printf("Press Enter to go to MAIN MENU .... ");
textcolor(GREEN);
gotoxy(25,4);
cprintf("\xDB\xDB\xDB\xDB\xDB\xB2 VIEW OF PROFIT \xB2\xDB\xDB\xDB\xDB\xDB");
textcolor(RED);
gotoxy(4,7);
cprintf("PRODUCT ID. DESCRIPTION. QUANTITY. PROFIT.");
gotoxy(4,9);
printf("============================================================");

ptr=fopen("shop.dat","rb");
while((fread(&temp,sizeof(temp),1,ptr))==1)
{

printf("\n \xBA %s.",temp.id);


printf("\t\t%s",temp.desc);
printf("\t\t%d",temp.quantity);
temp.profit=(temp.total-temp.cost);
printf("\t\t $%.2f",temp.profit);

}
getche();
}

/************************* SALE , PURCHASE AND PROFIT REPORT


CALL***************/

void report2()
{

int sher;
clrscr();
bbox();
textcolor(WHITE);
gotoxy(21,3);
printf("\xDB\xDB\xDB\xDB\xB2 REPORT OF SALES / PURCHASE
\xB2\xDB\xDB\xDB\xDB");
gotoxy(5,5);
printf("\tTHIS SECTION IS VIEWING SALES, PURCHASE and PROFIT REPORTS ");
gotoxy(10,7);
printf(" ********* ENTER THE OPTION WHICH SUITS YOU. **********\n");
gotoxy(12,10);
printf("\xDB\xDB\xB2 1.SALES.");
gotoxy(12,12);
printf("\xDB\xDB\xB2 2.PURCHASE.");
gotoxy(12,14);
printf("\xDB\xDB\xB2 3.PROFIT.");
gotoxy(14,17);
printf("\xDB\xDB\xB2 OPTION:");
sher=toupper(getch());

switch(sher)
{
case '1':
report();
break;

case '2':
pur();
break;

case '3':
report3();
break;

default:
gotoxy(9,20);
textcolor(RED);
cprintf("\a\xDB\xB2 WRONG ENTRY : PRESS ENTER TO GO TO MAIN MENU....");
getche();

/************************************ design module **********************/

void design()
{
int i;
clrscr();
textcolor(14);
/****************************** table design *********************/
gotoxy(2,2);
cprintf("\xC9");
gotoxy(3,2);
for(i=1;i<=74;i++)
cprintf("\xCD");
gotoxy(77,2);
cprintf("\xBB");
gotoxy(2,3);
cprintf("\xBA");gotoxy(2,4);cprintf("\xBA");gotoxy(2,5);cprintf("\xBA");
gotoxy(2,6);cprintf("\xBA");gotoxy(2,7);cprintf("\xBA");gotoxy(2,8);cprintf("\xBA");

gotoxy(2,9);cprintf("\xBA");gotoxy(2,10);cprintf("\xBA");gotoxy(2,11);cprintf("\xBA");gotoxy(2,12)
;cprintf("\xBA");

gotoxy(2,13);cprintf("\xBA");gotoxy(2,14);cprintf("\xBA");gotoxy(2,15);cprintf("\xBA");gotoxy(2,1
6);cprintf("\xBA");
gotoxy(2,17);cprintf("\xBA");gotoxy(2,18);cprintf("\xBA");gotoxy(2,22);cprintf("\xCC");
gotoxy(2,19);cprintf("\xBA");gotoxy(2,20);cprintf("\xBA");gotoxy(2,21);cprintf("\xBA");gotoxy(2,2
4);cprintf("\xC8");
gotoxy(2,23);cprintf("\xBA");
gotoxy(3,24);
for(i=1;i<=74;i++)
cprintf("\xCD");

gotoxy(77,18);cprintf("\xBA");gotoxy(77,19);cprintf("\xBA");gotoxy(77,20);cprintf("\xBA");gotoxy(
77,21);cprintf("\xBA");gotoxy(77,24);cprintf("\xBC");
gotoxy(77,23);
cprintf("\xBA");
gotoxy(3,22);
for(i=1;i<=74;i++)
cprintf("\xCD");
gotoxy(77,22);
cprintf("\xB9");
//*****************
gotoxy(77,3);
cprintf("\xBA");gotoxy(77,4);cprintf("\xBA");gotoxy(77,5);cprintf("\xBA");
gotoxy(77,6);cprintf("\xBA");gotoxy(77,7);cprintf("\xBA");gotoxy(77,8);cprintf("\xBA");

gotoxy(77,9);cprintf("\xBA");gotoxy(77,10);cprintf("\xBA");gotoxy(77,11);cprintf("\xBA");gotoxy(7
7,12);cprintf("\xBA");

gotoxy(77,13);cprintf("\xBA");gotoxy(77,14);cprintf("\xBA");gotoxy(77,15);cprintf("\xBA");gotoxy(
77,16);cprintf("\xBA");
gotoxy(77,17);cprintf("\xBA");
textcolor(RED);
//

void bbox()
{
int c,r;
for(c=1;c<=79;c++)
{
gotoxy(c,1);
printf("ß");
gotoxy(c,25);
printf("ß");
}
for(r=1;r<=24;r++)
{
gotoxy(1,r);
printf("Û");
gotoxy(79,r);
printf("Û");
}
}

////////////////////////////////// by id deletion ////////////////////////////


void deletion_id()
{
int j,n,i;
char tar[30];
int count=0;

ptr = fopen("shop.dat","rb");
clrscr();
design();
gotoxy(15,8);
printf("\xDB\xDB Enter ID be deleted:");
scanf("%s",&tar);
j=0;

while((fread(&temp,sizeof(temp),1,ptr))==1)
{
if((strcmp(temp.id,tar)<0) || (strcmp(temp.id,tar)>0))
{
x[j] = temp;
j++;
}
else
{
count++;
}
}
if (count==0)
{
clrscr();
design();
gotoxy(30,10);
printf("\xDB\xDB Record Not Found");
gotoxy(17,23);
printf("Press Enter to go to MAIN MENU ......");
getch();
return;
}

fclose(ptr);
n = j;
clrscr();
ptr=fopen("shop.dat","wb");
for(i=0; i<n; i++)
fwrite(&x[i],sizeof(x[i]),1,ptr);
fclose(ptr);
clrscr();
design();
gotoxy(15,10);
printf("Record has been deleted");
gotoxy(15,12);
printf("Check it by going to the displayed record");
gotoxy(17,23);
printf("Press Enter to go to MAIN MENU ......");
getch();

}
///////////////////////////////// both deletion call ///////////////////////
void del()
{
int sh;
clrscr();
design();
gotoxy(17,6);
printf("\xDB\xDB\xB2 Two options available to delete \xB2\xDB\xDB");
gotoxy(16,9);
printf("[ 1 ] - Delete by ID number ");
gotoxy(16,11);
printf("[ 2 ] - Delete by Description ");
gotoxy(18,15);
printf("Enter your choice :: ");
sh=toupper(getch());

switch(sh)
{
case '1':
deletion_id();
break;

case '2':
deletion();
break;

default:
gotoxy(18,18);
printf("\a\xDB\xDB Wrong entry ");
gotoxy(17,23);
printf("Press Enter to go to MAIN MENU .....");
getch();
}
getche();

}
///////////////////////////////////// update record //////////////////////
void edit()
{
int j,n,i,a;
float b;
char tar[30],ch;
int count=0;
ch='y';
while(ch=='y')
{
ptr = fopen("shop.dat","rb");
clrscr();
design();
gotoxy(15,9);
printf("\xDB\xDB ENTER ID OF THE PRODUCT TO BE SOLD:");
scanf("%s",&tar);
j=0;

while((fread(&temp,sizeof(temp),1,ptr))==1)
{
if((strcmp(temp.id,tar)<0) || (strcmp(temp.id,tar)>0))
{
x[j] = temp;
j++;
}
else
{
design();
gotoxy(8,7);
printf("\xDB\xDB Description = %s",temp.desc);
gotoxy(8,9);
printf("\xDB\xDB Quantity in stock = %d",temp.quantity);
gotoxy(8,11);
printf("\xDB\xDB Sales price = %.2f",temp.sale);
gotoxy(8,13);
printf("\xDB\xDB Quantity want to sale : ");
scanf("%d",&a);

x[j]=temp;
x[j].quantity=(x[j].quantity-a);
x[j].total=(x[j].quantity*temp.sale);
x[j].cost=(x[j].quantity*temp.unit);
x[j].bye=(x[j].sale*a);
b=x[j].bye;
x[j].qty=a;
j++;
count++;
}
}
if (count==0)
{
clrscr();
design();
gotoxy(33,10);
printf("\a\xDB\xDB\xB2 Not in stock");
getch();
return;
}

fclose(ptr);
n = j;
clrscr();
ptr=fopen("shop.dat","wb");
for(i=0; i<n; i++)
fwrite(&x[i],sizeof(x[i]),1,ptr);
fclose(ptr);
clrscr();
design();
gotoxy(8,9);
printf("\xDB\xDB Price paid by customer = %.2f",b);
gotoxy(8,11);
printf("\xDB\xDB Quantity sold = %d",a);
getch();
printf("more enteries=(y/n)");
ch=getche();
}
}
/////////////////////////////////// end ///////////////////////////
void show_mouse(void)
{
union REGS in, out;

in.x.ax = 0x1;
int86(0x33, &in, &out);
}

OUTPUT SNAPSHOTS
TESTING
THE SOURCECODE DECLARED ABOVE FOR THE PROGRAM
OF ADDRESS BOOK HAS BEEN TESTED AND IT HAS BEEN
FOUND THAT THE ABOVE SOURCE CODE IS OKAY AND
CORRECT.THE PROGRAM INVOLVES MANY TYPE OF
CONVERSIONS. THESE CONVERSIONS HAS TO DONE
CAREFULLY.

MAINLY THERE ARE TWO TYPES OF TESTING:

1-SYSTEM TESTING AND

2-INTEGRATION TESTING

SYSTEM TESTING INVOLVES WHOLE TESTING OF


PROGRAM AT ONCE AND INTEGRATION TESTING
INVOLVES THE BREAKING OF PROGRAM INTO MODULES &
THEN TEST.

FUTURE SCOPE
In future one change can be done by adding the fingerprints of the
persons of which the address is entered.And one more major change
which can be done in this project is that to add the snaps of the person
of which the address is entered.We can also add or subtract details of
the individual.

You might also like