Вы находитесь на странице: 1из 60

DECLARATION

I hereby declare that the project titled “Restaurants And Fastfood Points Automation”
is an original piece of research work carried out under the guidance of supervisor the
information has been collected from genuine & authentic sources.
The work has been submitted in partial fulfillment of the requirement of course name
(Batch 2016-2019) of COLLEGE NAME.

1
ACKNOWLEDGEMENT
Perseverance, inspiration and motivation have always played a key role in success of any
venture. In the present world of competition there is a race of existing in which those who
are having willed to come forward succeed. Project is like a bridge between theoretical
and practical working. With willing I join this particular project.
To design and compare a project report is very laborious work, which no student
complete without taking any help from any professional.
First of all, I would like to thank the supreme power of almighty God who is obviously
the one who has always guided us to work on right path of our life.
I express my deep gratitude to my guide for his invaluable guidance during the project.
His unlimited guidance, innovative ideas and tireless efforts helped along the way in
completing the project. I am also thankful to the staff members for their encouragement
and cooperation in this successful completion of my project.
In the end I would like to thank my parents whom greatly indebted for having me brought
me love and encouragement of this stage.

2
1. INTRODUCTION

A restaurant is a retail establishment that serves prepared food to customers Service is


generally for eating on premises, though the term has been used to describe take-out
establishments and food delivery services. The term covers many types of venues and a
diversity of styles of cuisine and service.

A restaurant owner is called a restaurateur; both words derive from the French verb
restaurer, meaning to restore.

“FOOD AUTOMATION” aims at developing into software that can be used at places
like restaurants and fastfood points to easily manoeuvre the daily tasks of taking the
order, calculating the bill etc.

The main advantage of this project is that it converts all the manual work which is time
consuming and error prone to fully automated system which helps in eliminating all the
paper work, saves time, improves customer services. It also speeds up various processes
such as addition of new items to the menu, deletion of items from the menu,
modification of details of items and calculation of bills thus providing convenience to
the workers as well as customers.

In the development of the project , selection of an appropriate programming


language and a platform is of primary importance. The major part of the credit
goes to the software environment chosen by the developer. Selection of a language
from the ocean of languages is very difficult , a developer has to consider various
features and functionalities that a particular language can provide.

In this project c++ language is used to maintain all the data. It provides many
features like file handling ,data can be easily maintained and many features that
are required while doing a project.

3
1.1 PROBLEM DEFINITION

The project is developed for restaurants , which aims to automate its various tasks.
All the work of various tasks were earlier carried out manually. However in the
course of time it was realized that manual work is error prone and time
consuming. Automation provides quick & easy step by step approach to handle the
tasks like adding items to the menu, deleting items , modifying the details of items and
calculating bills. Thus automation is no longer an option , its a requirement.

1.2 OBJECTIVES OF THE PROPOSED SYSTEM


 To reduce time for the organization
 To increase efficiency and accuracy of the system

 To reduce pressure on the labor and relieving man power from repetitive and dull job

 To make the retrieval of information faster

 To make the system more feasible

 To reduce large amount of paper work

 To make the system more reliable to avoid any ambiguity.

 To reduce the cost factor of the system

 To make the system more flexible.

1.3 ADVANTAGES OF THE PROPOSED SYSTEM

 Converts all the manual work which is time consuming and error prone to fully
automated system

4
 Helps in eliminating all the paper work, saves time and improves customer
services.

 Makes the addition of items in the menu, deletion of items and modification of
items in the menu easier and faster.

 C++ has support for most of the web servers available today

 Bills can be calculated more easily and with more accuracy

 Reduces pressure on the labour.

 Makes the system more feasible and flexible and thus retrieval of information
becomes convenient.

5
2. SYSTEM ANALYSIS

2.1 TOOLS LANGUAGE AND PLATFORM TO BE USED

 HARDWARE SPECIFICATION

 MEMORY : 984 KB
 MICROPROCESSOR:1.2
 HARD DISK:40 GB
 PRINTER: hp Laser printer

 SOFTWARE SPECIFICATION

 PLATFORM : C++ with graphics


 FRONT END: C++
 WINDOWS XP
 M.S WORD

2.2 FEASIBILITY STUDY

6
This phase is carried out to access whether software project is technically and
economically viable.
It involves following steps:-
 Problem is defined
 Determination of technical and economical viability
 Study of alternative solution to attempt the problem ,a cost/benefit
analysis is done.
 A layout of plan is prepared to get the project executed, scope of all
phases is determined.

Feasibility is the likelihood that the system will be useful to the organization.
Following feasible factors are studied during feasibility study-:

 Economic and financial


 Technical
 Operational
 Schedule
 Legal and contractual
 Political
 Organizational

Economic or financial feasibility:-it is a measure of the cost effectiveness of a


project or solution underline.

Technical feasibility-:Its purpose is to gain an understanding of the organizational


ability to construct the proposed system. it is a measure of specific technical
solution and availability of technical resources and expertise.

Operational feasibility-:It is a measure of how well the solution will work in the
organization. It is also a measure of how people feel about the system/project. It is

7
The willingness and ability of the management ,employees, customers, suppliers and
others to operate use and support a proposed system.

Schedule feasibility-:It is a measure of how responsible the project time-table is.


Political feasibility- The construction of an IS can have potential ramifications also.

Asserting political feasibility- It is a process of evaluating how key stake holders


within the organization view the proposed system.

3. SYSTEM DESIGN

This section of the project involves the division of project in some modules or parts
thus making the presentation of the project clear and easily understandable. We have
discussed below various modules and part of project they contain.

3.1 MODULES (Description)

This project mainly consists of two menus:

 EDIT MENU
 MAIN MENU

Edit menu consists of the following available options:

1. ADD ITEM
2. DELETE ITEM
3. MODIFY ITEM
4. QUIT

MAIN MENU

8
It consists of the following options
1 PURCHASE
2 SEE MENU
3 EDIT MENU
4 TOTAL BILL
0 QUIT

ENTER CHOICE

 Now here when we choose the first option i.e. PURCHASE, we need to mention
the item code of the item to be purchased. After this the complete details of the
item is displayed. Then we are required to mention the quantity, whether we want
to cancel this purchase or not

 After this total bill is calculated and displayed along with the complete details of
items.

 When we choose the second option i.e. SEE MENU, following details of the list
of items is displayed:

1 ITEM CODE
2 ITEM NAME
3 ITEM COST
4 ITEM PRICE

 Now when we choose the third option EDIT MENU following options are
dislayed:

1. ADD ITEM
2. MODIFY ITEM
3. DELETE ITEM

9
4. EXIT

ENTER CHOICE:

 Now here when we choose the first option i.e. ADD ITEM, we need to specify the
following details of the item:

 ITEM NAME

 ITEM COST

 ITEM PRICE

Thereafter we have to decide whether we want to save the record or not and hence choose
one of the options: y/n. When we choose y our record is saved otherwise not. Then we
add more items according to the requirement.

 Now when we choose the second option i.e. MODIFY ITEM, we need to specify
the item code of the item to be selected and then modify the details of the items as
per the requirement by choosing the correct options.

 When we choose the third option i.e. DELETE ITEM, we need to specify the item
code of the item to be deleted. Thereafter the selected item is deleted from the
menu.

 We can choose the fourth option i.e. EXIT to exit the menu.

 We can choose the fourth option of the main menu i.e. TOTAL BILL to
display the total bill of the items purchased

10
START

Main menu with the


given available options is
displayed

Total
bill
3.2 FLOWCHART 2.see
3 Edit
1. purchase menu
menu
Total
bill is
calcul
0 exit at-ed

Enter the List of items


item code is displayed Edit menu
and quantity with its is displayed
of the item to details such with certain
be purchased as item code, options
item cost etc 0 exit

1 add
item

2 delete Modify
Cancel
item item
the
purchas
e Enter the Enter item
Purchas item name,
code of the
Bill is e is item cost
calcula and item item to be
cancelle modified and
ted price Enter
d
item change the
code of details
the item according to
to be the
Item is deleted requirement
added
Item is
deleted Item is
modified

11
Stop
4. IMPLEMENTATION OF THE PROJECT

4.1 WORKING

In this project we have three classes:

 CLASS MENU

 CLASS FOOD

 CLASS ACCOUNT

In class menu there are two main functions:


 Edit _menu
 Main _menu

In case of main menu we have following options:

1 PURCHASE

2 SEE MENU

12
3 EDIT MENU

4 TOTAL BILL

0 EXIT

In case of purchase we have to mention the item code of the item to be purchased and
quantity. Thereafter bill is displayed. For this we have purchase function

When we choose see menu list of items along with its details such as item code, item cost
and item price is displayed. For this we make use of see menu function

In case of Edit menu we have following options:

ADD ITEM

DELETE ITEM

MODIFY ITEM

EXIT

In case of add item we mention the item name, item price and item cost for the item to be
added and thus the item is added in the menu

In case of delete item we mention the item code of the item to be deleted .

In case of modify item we mention the item code of the item to be modified.
For this we make use of modify_item and modify_record functions.

When we choose total bill ,total bill is displayed.

13
In class food we have following functions:

Add_item- This function add records in the food file.

Delete_item – This function gives the code no. to delete record from the food file

Modify_item –This function gives the code no. to modify record from the food file

List_of_item- This function displays the list of food items

Purchase – This function purchases the food item in the menu

Last_code- It returns the code of the last record in the food file.

Delete_record-This function deletes the record for the given code from the food file.
(FOOD.DAT)

Modify_record – This function modify the record for the given code from the food file

Display_record-It displays the record of the given code from the food file(FOOD.DAT)

Item_found-This function return the value 1 if the record is found for the given code in
the food file .

Recordno- This function return th record no. of the given code in the food file.

Sort- This function sort the record in the food file according to the code nos.

Class account is used to calculate bill.It consists of the following functions:

Bill_list – This function displays the lists of the bills


Prepare_bill – This function prepares and displays the bill for the given bill no. according
to the purchases made.
Last_billno-This function returns the billno. of the last record in the bill file

14
4.2 SOURCE CODE

#include<iostream.h>
#include<graphics.h>
#include<fstream.h>
#include<process.h>
#include<string.h>
#include<stdlib.h>
#include<stdio.h>
#include<ctype.h>
#include<conio.h>
#include<dos.h>

class menu
{
public:
void main_menu();
private:

void edit_menu(void);

15
};

class food
{
public:
void add_item(void);
void delete_item(void);
void modify_item(void);
void list_of_item(void);
void purchase(void);
private:
int last_code(void);
void delete_record(int);
void modify_record(int);
void display_record(int);
int item_found(int);
int recordno(int);
void sort(void);
int itemcode;
char itemname[30];
float itemcost,itemprice;
};

class account
{
public:
void bill_list(void);
void prepare_bill(int);
int last_billno(void);

16
void add_bill(int,int t_itemcode,char *t_itemname,float t_qty,float t_cost,float
t_price);
private:
int code,billno,length;
int dd,mm,yy;
float cost, price,quantity;
char name[30];
};
//THIS FUNCTION CREATES MAIN MENU AND CALLS OTHER FUNCTIONS

void menu::main_menu(void)
{
clrscr();
char ch;
while(1)
{
clrscr();
gotoxy(22,5);
cout<<"---------------------------------------";
gotoxy(35,6);
cout<<"FAST FOOD";
gotoxy(22,7);
cout<<"---------------------------------------";
gotoxy(32,9);
cout<<"1: Purchase";
gotoxy(32,11);
cout<<"2: See menu";
gotoxy(32,13);
cout<<"3: Edit menu";
gotoxy(32,15);
cout<<"4: Total bill";

17
gotoxy(32,17);
cout<<"0: Quit";
gotoxy(32,20);
cout<<"enter choice:";
ch=getche();
if(ch==27)
return;
else
if(ch=='1')
{
food f;
f.purchase();
}
else
if(ch=='2')
{
food f;
f.list_of_item();
}
else
if(ch=='3')

edit_menu();

else
if(ch=='4')
{
account a;
a.bill_list();
}
else

18
if(ch=='0')
break;
}
}

//THIS FUNCTION CREATE EDIT MENU AND CALLS OTHER


//FUNCTIONS

void menu::edit_menu()
{
clrscr();
char ch;
while(1)
{
for(int i=5;i<=21;i++)
{
gotoxy(21,i);
cout<<" ";
}
gotoxy(32,6);
cout<<"edit menu";
gotoxy(32,7);
cout<<"~~~~~~~~~~~~~~~~~~~~~";
gotoxy(32,10);
cout<<"1:add item";
gotoxy(32,12);
cout<<"2:modify item";
gotoxy(32,14);
cout<<"3:delete item";
gotoxy(32,16);

19
cout<<"0:exit";
gotoxy(32,19);
cout<<"enter choice:";
ch=getche();
if(ch==27)
return;
else
if(ch=='1')
{
food f;
f.add_item();
break;
}
else
if(ch=='2')
{
food f;
f.modify_item();
break;
}
else
if(ch=='3')
{
food f;
f.delete_item();
break;
}
else
if(ch=='0')
break;
}

20
}

//THIS FUNCTION RETURNS THE CODE OF THE LAST RECORD IN


//THE FOOD FILE (FOOD.DAT)

int food::last_code(void)
{
fstream file;
file.open("FOOD.DAT",ios::in);
file.seekg(0,ios::beg);
int t=0;
while(file.read((char*)this,sizeof(food)))
t=itemcode;
file.close();
return t;
}
//THIS FUNCTION DISPLAYS LIST OF THE FOOD ITEMS

void food::list_of_item()
{
clrscr();
fstream file;
file.open("FOOD.DAT",ios::in);
file.seekg(0);
int row=6,found=0,pageno=1;
gotoxy(30,2);
cout<<"LIST OF ITEMS";
gotoxy(29,3);
cout<<"~~~~~~~~~~~~~~~~~";
gotoxy(3,4);
cout<<"ITEM CODE ITEM NAME ITEM COST ITEM PRICE";

21
gotoxy(2,5);
cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`";
while(file.read((char*)this,sizeof(food)))
{
delay(20);
found=1;
gotoxy(5,row);
cout<<itemcode;
gotoxy(14,row);
cout<<itemname;
gotoxy(32,row);
cout<<itemcost;
gotoxy(45,row);
cout<<itemprice;
if(row==22)
{
row=5;
gotoxy(66,1);
cout<<"Pageno:"<<pageno;
gotoxy(66,2);
cout<<"=======";
pageno++;
gotoxy(1,25);
cout<<"Press any key to continue";
getche();
clrscr();
gotoxy(30,2);
cout<<"LIST OF ITEMS";
gotoxy(3,4);
cout<<"ITEM CODE ITEM NAME ITEM COST ITEM COST";
gotoxy(2,5);

22
cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~";
}
else
row++;
}
if(!found)
{
gotoxy(5,10);
cout<<"\7Records not found";
}
gotoxy(66,1);
cout<<"page no:"<<pageno;
gotoxy(66,2);
cout<<"===========";
gotoxy(1,25);
cout<<"Press any key to continue...";
getche();
file.close();
}
//THIS FUNCTION ADDS RECORDS IN THE FOOD FILE (FOOD.DAT)

void food::add_item(void)
{
int tcode,valid;
char ch,t_itemcost[10],t_itemprice[10];
tcode=last_code();
tcode++;
do
{
clrscr();
gotoxy(71,2);

23
cout<<"<0>=EXIT";
gotoxy(27,3);
cout<<"ADD FOOD ITEM TO THE MENU";
gotoxy(26,4);
cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~";
gotoxy(5,6);
cout<<"Itemcode:"<<tcode;
gotoxy(5,8);
cout<<"Item name:";
gotoxy(5,10);
cout<<"Item cost:";
gotoxy(5,12);
cout<<"Item price:";
do
{
valid=1;
gotoxy(1,8);clreol();
gotoxy(1,24);clreol();
gotoxy(1,25);clreol();
gotoxy(3,25);
cout<<"ENTER ITEM NAME TO ADD IN THE MENU";
gotoxy(5,8);
cout<<"Item Name:";
gets(itemname);
strupr(itemname);
if(itemname[0]=='0')
return;
if((strlen(itemname)<1)||(strlen(itemname)>20))
{
valid=0;
gotoxy(3,24);

24
cout<<"\7range=1.20";
getch();
}
}while(!valid);
do
{
valid=1;
gotoxy(1,10);clreol();
gotoxy(1,24);clreol();
gotoxy(1,25);clreol();
gotoxy(3,25);
cout<<"ENTER ITEM COST TO ADD IN THE MENU";
gotoxy(5,10);
cout<<"Item cost:";
gets(t_itemcost);
itemcost=atof(t_itemcost);
if(t_itemcost[0]=='0')
return;
if(itemcost<1||itemcost>800)
{
valid=0;
gotoxy(3,24);
cout<<"\7Range=1.800";
getch();
}
}while(!valid);
do
{
valid=1;
gotoxy(1,12);clreol();
gotoxy(1,24);clreol();

25
gotoxy(1,25);clreol();
gotoxy(3,25);
cout<<"ENTER ITEM PRICE TO ADD IN THE MENU";
gotoxy(5,12);
cout<<"Item price:";
gets(t_itemprice);
itemprice=atof(t_itemprice);
if(t_itemprice[0]=='0')
return;
if(itemprice<itemcost||itemprice>1000)
{
valid=0;
gotoxy(3,24);
cout<<"\7Range="<<itemcost<<"...1000";
getch();
}
}while(!valid);
do
{
gotoxy(1,15);clreol();
gotoxy(1,24);clreol();
gotoxy(1,25);clreol();
gotoxy(5,15);
cout<<"do you want to save this record(y/n):";
ch=getche();
ch=toupper(ch);
if(ch=='0')
return;
}while(ch!='N'&&ch!='Y');
if(ch=='Y')
{

26
itemcode=tcode;
fstream file;
file.open("FOOD.DAT",ios::out|ios::app);
file.write((char*)this,sizeof(food));
file.close();
tcode++;
}
do
{
gotoxy(1,17);clreol();
gotoxy(1,24);clreol();
gotoxy(1,25);clreol();
gotoxy(5,17);
cout<<"DO YOU WANT TO ADD MORE RECORDS(y/n):";
ch=getche();
ch=toupper(ch);
if(ch=='0')
return;
}while(ch!='N'&&ch!='Y');
}while(ch=='Y');
}

//THIS FUNCTION DISPLAYS THE RECORD OF THE GIVEN CODE


FROM //THE FOOD FILE (FOOD.DAT)

void food::display_record(int tcode)


{

fstream file;
file.open("FOOD.DAT",ios::in);
file.seekg(0,ios::beg);

27
while(file.read((char*)this,sizeof(food)))
{
if(itemcode==tcode)
{
gotoxy(5,3);
cout<<"Item Code:"<<itemcode;
gotoxy(5,4);
cout<<"Item Name:"<<itemname;
gotoxy(5,5);
cout<<"Item Cost:"<<itemcost;
gotoxy(5,6);
cout<<"Item Price:"<<itemprice;
break;
}
}
file.close();
}

//THIS FUNCTION RETURNS THE VALUE 1 IF THE RECORD IS


FOUND //FOR THE GIVEN CODE IN THE FOOD FILE (FOOD.DAT)

int food::item_found(int tcode)


{
fstream file;
file.open("FOOD.DAT",ios::in);
file.seekg(0,ios::beg);
int found=0;
while(file.read((char*)this,sizeof(food)))
{
if(itemcode==tcode)
{

28
found++;
break;
}
}
file.close();
return found;
}

//THIS FUNCTION RETURN THE RECORD NO.OF THE GIVEN CODE


IN //THE FOOD FILE (FOOD.DAT)

int food::recordno(int tcode)


{
fstream file;
file.open("FOOD.DAT",ios::in);
file.seekg(0,ios::beg);
int found=0;
while(file.read((char*)this,sizeof(food)))
{
found++;
if(itemcode==tcode)
break;
}
file.close();
return found;
}

//THIS FUNCTION DELETES THE RECORD FOR THE GIVEN CODE FROM
//THE FOOD FILE ( FOOD.DAT)

void food::delete_record(int tcode)

29
{

fstream file;
file.open ("FOOD.DAT",ios::in);
fstream temp;
temp.open("temp.dat",ios::out);
file.seekg(0,ios::beg);
while(!file.eof())
{
file.read((char*)this,sizeof(food));
if(file.eof())
break;
if(itemcode!=tcode)
temp.write((char*)this,sizeof(food));
}
file.close();
temp.close();
file.open("FOOD.DAT",ios::out);
temp.open("temp.dat",ios::in);
temp.seekg(0,ios::beg);
while(!temp.eof())
{
temp.read((char*)this,sizeof(food));
if(temp.eof())
break;
file.write((char*)this,sizeof(food));

}
file.close();
temp.close();

30
}

//THIS FUNCTION GIVES THE CODE NO. TO DELETE THE RECORD


//FROM THE FOOD FILE (FOOD.DAT)

void food::delete_item()
{
clrscr();
char t_code[5],ch;
int t,tcode;
gotoxy(3,25);
cout<<"Press<ENTER>to see the list";
gotoxy(5,3);
cout<<"Enter Item code of the item to be deleted:";
gets(t_code);
t=atoi(t_code);
tcode=t;
if(t_code[0]=='0')
return;
if(tcode==0)
{
list_of_item();
gotoxy(1,25);
clreol();
gotoxy(3,25);
cout<<"Press<ENTER> to Exit";
gotoxy(5,24);
cout<<"Enter Item Code of the item to be deleted:";
gets(t_code);
t=atoi(t_code);

31
tcode=t;
if(tcode==0)
return;

}
clrscr();
if(!item_found(tcode))
{
gotoxy(5,5);
cout<<"\7record not found";
getch();
return;
}
display_record(tcode);
do
{
gotoxy(1,8);
clreol();
gotoxy(5,8);
cout<<"Do you want to delete this record (y/n):";
ch=getche();
ch=toupper(ch);
}
while(ch!='N'&&ch!='Y');
if(ch=='N')
return;
delete_record(tcode);
gotoxy(5,15);
cout<<"\7Record Deleted";
getch();
}

32
//THIS FUNCTION MODIFY THE RECORD FOR THE GIVEN CODE
FROM //THE FOOD FILE (FOOD.DAT)

void food::modify_record(int tcode)


{
int recno;
recno=recordno(tcode);
int valid,t_code;
char ch,t_itemcost[10],t_itemprice[10],t_itemcode[5];
gotoxy(71,2);
cout<<"<0>=Exit";
gotoxy(5,12);
cout<<"Item Code:";
gotoxy(5,14);
cout<<"Item Name:";
gotoxy(5,16);
cout<<"Item Cost:";
gotoxy(5,18);
cout<<"Item Price:";
do
{
gotoxy(20,12);clreol();
cout<<"Change(y/n):";
ch=getche();
ch=toupper(ch);
if(ch=='0')
return;
}
while(ch!='N'&&ch!='Y');

33
valid=0;
while(ch=='Y'&&!valid)
{
valid=1;
gotoxy(1,12);clreol();
gotoxy(1,24);clreol();
gotoxy(1,25);clreol();
gotoxy(3,25);
cout<<"ENTER ITEM CODE TO ADD IN THE MENU";
gotoxy(5,12);
cout<<"Item Code";
gets(t_itemcode);
t_code=atoi(t_itemcode);

if(t_code==0)
return;
if(item_found(t_code)&&(t_code!=tcode))
{
valid=0;
gotoxy(3,24);
cout<<"\7CODE ALREADY GIVEN";
getch();
}
}
do
{
gotoxy(20,14);
clreol();
cout<<"Change(y/n):";
ch=getche();

34
ch=toupper(ch);
if(ch=='0')
return;
}
while(ch!='N'&&ch!='Y');
valid=0;
while(ch=='Y'&&!valid)
{
valid=1;
gotoxy(1,14);clreol();
gotoxy(1,24);clreol();
gotoxy(1,25);clreol();
gotoxy(3,25);
cout<<"ENTER ITEM NAME TO ADD IN THE MENU:";
gotoxy(5,14);
cout<<"Item Name:";
gets(itemname);
strupr(itemname);
if(itemname[0]=='0')
return;
if((strlen(itemname)<1)||(strlen(itemname)>20))
{
valid=0;
gotoxy(3,24);
cout<<"\7Range=1.20";
getch();
}
}
do
{
gotoxy(20,16);

35
clreol();
cout<<"change(y/n):";
ch=getche();
ch=toupper(ch);
if(ch=='0')
return;
}
while(ch!='N'&&ch!='Y');
valid=0;
while(ch!='N'&&!valid)
{

valid=1;
gotoxy(1,16);
clreol();
gotoxy(1,24);clreol();
gotoxy(1,25);clreol();
gotoxy(3,25);
cout<<"ENTER ITEM COST TO ADD IN THE MENU";
gotoxy(5,16);
cout<<"Item Cost:";
gets(t_itemcost);
itemcost=atof(t_itemcost);
if(t_itemcost[0]=='0')
return;
if(itemcost<1||itemcost>800)
{
valid=0;
gotoxy(3,24);
cout<<"\7Range=1.800";
getch();

36
}
}
do
{
gotoxy(20,18);
clreol();
cout<<"change(y/n):";
ch=getche();
ch=toupper(ch);
if(ch=='0')
return;
}
while(ch!='N'&&ch!='Y');valid=0;
while(ch=='Y'&&!valid)
{
valid=1;
gotoxy(1,18);clreol();
gotoxy(1,24);clreol();
gotoxy(1,25);clreol();
gotoxy(3,25);
cout<<"ENTER ITEM PRICE TO ADD IN THE MENU";
gotoxy(5,18);
cout<<"Item Price";
gets(t_itemprice);
itemprice=atof(t_itemprice);
if(t_itemprice[0]=='0')
return;
if(itemprice<itemcost||itemprice>1000)
{
valid=0;
gotoxy(3,24);

37
cout<<"\7Range="<<itemcost<<"....1000";
getch();
}
}
do
{
gotoxy(1,21);clreol();
gotoxy(1,24);clreol();
gotoxy(1,25);clreol();
gotoxy(5,21);
cout<<"Do you want to save this record(y/n):";
ch=getche();
ch=toupper(ch);
if(ch=='0')
return;
}while(ch!='N'&&ch!='Y');
if(ch=='N'&&ch!='Y');
if(ch=='N')
return;
itemcode=t_code;
getch();
fstream file;
file.open("FOOD.DAT",ios::out|ios::ate);
int location;
location=(recno-1)*sizeof(food);
file.seekp(location);
file.write((char*)this,sizeof(food));
file.close();
sort();clrscr();
gotoxy(5,15);
cout<<"\7Record Modified";

38
getch();
}

//THIS FUNCTION GIVES THE CODE NO. TO MODIFY RECORD FROM


//THE FOOD FILE (FOOD.DAT)

void food::modify_item()
{
clrscr();
char t_code[5],ch;
int t,tcode;
gotoxy(3,25);
cout<<"Press <ENTER> to see the list";
gotoxy(5,3);
cout<<"Enter Item code of the item to be modify:";
gets(t_code);
t=atoi(t_code);
tcode=t;
if(t_code[0]=='0')
return;
if(tcode==0)

{
list_of_item();
gotoxy(1,25);clreol();

gotoxy(3,25);
cout<<"Press <ENTER> to Exit";
gotoxy(5,24);
cout<<"Enter Item Code of the item to be modified:";
gets(t_code);

39
t=atoi(t_code);
tcode=t;

if(tcode==0)
return;
}
clrscr();
if(!item_found(tcode))
{
gotoxy(5,5);
cout<<"\7Record not found";
getch();
return;
}
display_record(tcode);
do
{
gotoxy(1,8);clreol();
gotoxy(5,8);
cout<<"Do you want to Modify this record(y/n):";
ch=getche();
ch=toupper(ch);
}while(ch!='N'&&ch!='Y');
if(ch=='N')
return;
modify_record(tcode);
}

//THIS FUNCTION SORT THE RECORD IN THE FOOD FILE


(FOOD.DAT) //ACCORDING TO THE CODE NOS.

40
void food::sort()
{
int i=0,j=0 ;
food arr[100];
food temp;
fstream file;
file.open("FOOD.DAT",ios::in);
file.seekg(0,ios::beg);
while(file.read((char*)&arr[i],sizeof(food)))
i++;
int size;
size=i;
file.close();
for(i=1;i<size;i++)
for(j=0;j<size-i;j++)
{
if(arr[j].itemcode>arr[j+1].itemcode)
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
file.open("FOOD.DAT",ios::out);
for(i=0;i<size;i++)
file.write((char*)&arr[i],sizeof(food));
file.close();
}
//THIS FUNCTION PURCHASES THE FOOD ITEM IN THE MENU

void food::purchase()

41
{
clrscr();
account a;
int t_billno,purchased=0;
t_billno=a.last_billno();
t_billno++;
char t_code[5],ch,t_quantity[5];
int t,tcode,i=0,valid;
float qty;
int t_itemcode;
float t_qty,t_cost,t_price;
char t_itemname[30];
struct date d;
int d1,m1,y1;
getdate(&d);
d1=d.da_day;
m1=d.da_mon;
y1=d.da_year;
do
{
clrscr();
gotoxy(3,25);
cout<<"Press <ENTER>to see the list";
gotoxy(5,3);
cout<<"Enter Item Code of the item to be purchased:";
gets(t_code);
t=atoi(t_code);
tcode=t;
if(t_code[0]=='0')
{
if(purchased)

42
a.prepare_bill(t_billno);
return;
}
if(tcode==0)
{
list_of_item();
gotoxy(1,25);clreol();
gotoxy(5,24);
cout<<"Enter Item Code of the item to be purchased:";
gets(t_code);
t=atoi(t_code);
tcode=t;
if(tcode==0)
{
if(purchased)
a.prepare_bill(t_billno);
return;
}
}
clrscr();
if(!item_found(tcode))
{
gotoxy(5,5);
cout<<"\7Item Code not found";
getch();
if(purchased)
a.prepare_bill(t_billno);
return;
}
gotoxy(60,2);
cout<<"Date:"<<d1<<"/"<<m1<<"/"<<y1;

43
display_record(tcode);
do
{
valid=1;
gotoxy(1,8);clreol();
gotoxy(1,24);clreol();
gotoxy(1,25);clreol();
gotoxy(3,25);
cout<<"ENTER QUANTITY TO BE PURCHASED IN Kg";
gotoxy(5,8);
cout<<"Quantity:";
gets(t_quantity);
qty=atoi(t_quantity);
if(t_quantity[0]=='0')
{
if(purchased)
a.prepare_bill(t_billno);
return;
}
if(qty<1||qty>800)
{
valid=0;
gotoxy(3,24);
cout<<"\7Range=1..800";
getch();
}
}while(!valid);
do
{
gotoxy(5,10);clreol();
gotoxy(5,10);

44
cout<<"Do You want to cancel this purchase(y/n):";
ch=getche();
ch=toupper(ch);
}
while(ch!='N'&&ch!='Y');
if(ch=='N')
{
purchased=1;
fstream file;
file.open("FOOd.DAT",ios::in);
file.seekg(0,ios::beg);
while(file.read((char*)this,sizeof(food)))
{
if(itemcode==tcode)
{
t_itemcode=itemcode;

strcpy(t_itemname,itemname);
t_cost=itemcost;
t_price=itemprice;
t_qty=qty;
a.add_bill(t_billno,t_itemcode,t_itemname,t_qty,t_cost,t_price);
i++;
break;
}
}
file.close();
}
do
{

45
gotoxy(5,12);
clreol();
gotoxy(5,12);
cout<<"Do you want to purchase more (y/n):";
ch=getche();
ch=toupper(ch);
}
while(ch!='N'&&ch!='Y');
}

while(ch=='Y');
a.prepare_bill(t_billno);
}

//THIS FUNCTION RETURNS THE BILL NO. OF THE LAST RECORD IN


//THE BILL FILE(BILL.DAT)

int account::last_billno()
{
fstream file;
file.open("BILL.DAT",ios::in);
file.seekg(0,ios::beg);
int t=0;
while(file.read((char*)this,sizeof(account)))
t=billno;
file.close();
return t;
}

//THIS FUNCTION ADDS THE RECORD IN THE BILL FILE (BILL.DAT)

46
void account::add_bill(int t_billno,int t_itemcode,char t_itemname[30],float
t_qty,float t_cost,float t_price)
{
struct date d;
int d1,m1,y1;
getdate(&d);
d1=d.da_day;
m1=d.da_mon;
y1=d.da_year;
dd=d1;
mm=m1;
yy=y1;
code=t_itemcode;
strcpy(name,t_itemname);
cost=t_cost;
price=t_price;
quantity=t_qty;
billno=t_billno;
fstream file;
file.open("BILL.DAT",ios::out|ios::app);
file.write((char*)this,sizeof(account));
file.close();
}

//THIS FUNCTION PREPARES AND DISPLAYS THE BILL FOR THE


//GIVEN BILL NO. ACCORDING TO PURCHASES MADE

void account::prepare_bill(int t_billno)


{
clrscr();
struct date d;

47
int d1,m1,y1;
getdate(&d);
d1=d.da_day;
m1=d.da_mon;
y1=d.da_year;
int total,total_bill=0;
gotoxy(33,3);
cout<<"CUSTOMER BILL";
gotoxy(32,4);
cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~";
gotoxy(55,5);
cout<<"Date:"<<d1<<"/"<<m1<<"/"<<y1;
gotoxy(8,7);
cout<<"ITEMS PURCHASED";
gotoxy(8,8);
cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~";
gotoxy(8,9);
cout<<"Item code Item name Cost price Qty Total";
gotoxy(8,10);

cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`";
int row=11;
fstream file;
file.open("BILL.DAT",ios::in);
file.seekg(0);
while(file.read((char*)this,sizeof(account)))
{
if(billno==t_billno)
{
gotoxy(8,5);
cout<<"BILL NO #"<<billno;

48
gotoxy(8,6);
cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~";
gotoxy(10,row);
cout<<code;
gotoxy(18,row);
cout<<name;
gotoxy(39,row);
cout<<cost;
gotoxy(47,row);
cout<<price;
gotoxy(56,row);
cout<<quantity;
total=quantity*price;

gotoxy(63,row);
cout<<total;
total_bill=total_bill+total;
row++;
}
}
file.close();
gotoxy(39,row+1);
cout<<"TOTAL BILL: Rs."<<total_bill<<"/=";
getch();
}

//THIS FUNCTION DISPLAYS THE LIST OF THE BILLS

void account::bill_list(void)
{

49
clrscr();
fstream file;
file.open("BILL.DAT",ios::in);
file.seekg(0);
int row=5,found=0,pageno=1,prev_billno=0,flag=0;
float total=0.0,total_bill=0.0;
gotoxy(30,2);
cout<<"LIST OF BILLS";
gotoxy(29,3);
cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~";
gotoxy(3,4);
cout<<"Billno.Date Item code Item name Cost price qty Total";
gotoxy(3,5);

cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~`";
while(file.read((char*)this,sizeof(account)))
{
row++;
delay(20);
found=1;
if(prev_billno!=billno)
{
if(flag)
{
total=quantity*price;

gotoxy(52,row);
total_bill=total_bill+total;

cout<<"TOTAL BILL:Rs"<<total_bill<<"/=";

50
row++;
}
gotoxy(4,row);
cout<<billno;
}
flag=1;
gotoxy(11,row);
cout<<dd<<"/"<<mm<<"/"<<yy;
gotoxy(24,row);
cout<<code;
gotoxy(32,row);
cout<<name;
gotoxy(42,row);
cout<<cost;
gotoxy(52,row);
cout<<price;
gotoxy(61,row);
prev_billno=billno;
}
row++;

gotoxy(71,row);
float total_2=0.0;
total_2=total_2+total_bill;
row++;
cout<<"TOTAL BILL:Rs."<<total_2<<"/=";
if(!found)
{
gotoxy(5,10);
cout<<"\7Records not found";

51
}
gotoxy(66,1);
cout<<"Page no.:"<<pageno;
gotoxy(1,25);
cout<<"Press any key to continue....";
getche();
file.close();
}

void gra()
{
clrscr();
int gmode,errorcode;int gd=DETECT,gm;
initgraph(&gd,&gm,"d:\\tc\\bgi");
setcolor(8);
ellipse(320,240,0,360,300,150);
settextstyle(10,0,3);
settextjustify(1,1);
setcolor(5);
outtextxy(320,170,"FASTFOOD AUTOMATION");
delay(250);
settextstyle(4,0,4);
setcolor(20);
outtextxy(320,220,"MADE BY");
delay(250);
outtextxy(320,315,"");
settextstyle(10,0,1);
setcolor(3);
delay(250);
outtextxy(320,265,"SHASHWAT");
for(int stangle=0;!kbhit();stangle++)

52
{
setcolor(7);
ellipse(320,240,stangle,stangle+20,300,150);
ellipse(320,240,stangle+180,stangle+200,300,150);
delay(9);
setcolor(8);
ellipse(320,240,stangle-1,stangle+19,300,150);
ellipse(320,240,stangle-1+180,stangle+199,300,150);
}
closegraph();
}

//THIS FUNCTION IS THE MAIN FUNCTION CALLING THE MAIN


//MENU

void main()
{
clrscr();
gra();
menu m;
m.main_menu();
}

53
5. OUTPUT

Output obtained by choosing the first option i.e. Purchase

54
After entering the item code of the item to be purchased

Calculated bill is then displayed as shown below:

Output obtained by choosing the second option see menu

55
Outputs obtained by choosing the third option edit menu

After choosing add item we get following:

56
Output obtained by choosing modify item

Output obtained after entering the code

57
6. CONCLUSION

As we all know that a restaurant is a retail establishment that serves prepared food to
customers. Service is generally for eating on premises, though the term has been used to
describe take-out establishments and food delivery services. So this project basically
develops a software that can be used at such places to easily manoeuvre the daily tasks of
taking the order, calculating the bill, modifying the details of the items in the menu etc.

 This project is time saving as it saves the time of the workers as well as
customers. It calculates bill quickly and correctly. Modification of the details of
the items in the menu, addition of more items in the menu, deletion of items and
keeping up of the track of the items purchased is much more convenient.

58
 It is also storage saving .Previously all the work was done manually and
required a lot of time. Tedious book-keeping is completely eliminated with
automation. Large amount can be stored in a single hardisk and make it easy
for the user to store data for future retrieval. The storage enhancement
provide benefit in the form of cost saving.

 Complicated calculations can be done more easily. Thus bills can be prepared
more quickly and with more accuracy just by choosing the correct option which
calculates the bill automatically.

 Optimal utilization of resources can be done. Different tasks of keeping up of the


track of the items in the menu, placing of order and calculating bill can be carried
out in different departments in a systematic way.

REFERENCES

 Computer Science with C++ by Sumitra Arora

 Object Oriented Programming in C++ by Robert Lafore

59
60

Вам также может понравиться