Billing Systems For Restaurants And Data Computer Science Essay

Published:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

Puff and Fresh is a popular Restaurant where a large number of Customers Visited. It is very important to have a successful Billing system for the Restaurant. Currently the Restaurant has manual billing system which has many faults when maintain the Bills. Therefore it is good to maintain a computerize system to reduce the errors and to reduce the tiresome Billing system.

This documentation contains information on how the Billing system has been created. Facts are discussed under the following topics:

Basic investigation to identify the problem.

Solutions for the problem.

Flow charts and pseudo codes for the system.

The codlings of the system designed for the Puff and Fresh.

Data dictionary

User manual

Future recommendations

The documentation has clearly defined the above topics and there importance of the system. All requirements have been reasoned out and proper conclusions have been made.

1. Introduction

Puff and Fresh is a Restaurant. At present Puff and Fresh maintain manual Billing system and they need a computerize approach to maintain Bills. Puff and Fresh shows the customer the different breakfast items offered by the restaurant. Allow the customer to select more than one item from the menu. Calculate and Print the bill….

It is required to develop a C++ application that could Print Menu Item, Price, Amount etc……The program is needed to have a user interface which contains the functionalities such as inserting number of adults and children. Choosing the menu and ordering the menu. Creating the bill and print the bill.

The aim of this assignment is to present the knowledge the students have gathered this module; 'C ++ programming'. The assignment is divided into their respective sections, and each section has its own objectives, which are to be achieved successfully.

 

 

2. Investigation

Basic fact finding techniques have been followed and the preliminary investigation has been conducted to find out the problems faced by Puff and Fresh Restaurant. The current manual billing system consists of errors mentioned below.

Puff and fresh has daily customers. The Bills are stored in files and when the administration needs to access a particular bill, they have to manually go through the files and find it. This is often time consuming and can be a tiresome task.

Maintaining records in files over account details require a lot of space and those records may be damaged or misused due to the poor security measures the Restaurant has taken.

Since there are a lot of files to be handled, Puff and fresh has needed to handle accounts information's. This is an additional cost. And also the puff and fresh has to spend on paper and other stationary that are needed to store the billing system.

A full feasibility study has been conducted and its results show that a computerized system for Puff and fresh is economically, legally and technically feasible to implement.

3. Solution for the problem.

The preliminary investigation has given a clear idea about the problem the Puff and Fresh is currently facing. It is clear that the Restaurant needs a computerized system to run and manage the Bill process.

Prototyping life cycle model been chosen as the appropriate life cycle model to be used to implement the system. Results from the E-R diagrams and the data flow diagrams have given an idea about the entities and their relationships.

The new computerized system has been designed and created in a manner to solve all the problems the Restaurant is currently facing.

Entering no of adults: The computerized system is created to identify the amount of adults. This reduces the work of the staff by preventing manual entry of the number and so it prevents errors.

Entering no of children's: The computerized system is created to identify the amount of children's. This reduces the work of the staff by preventing manual entry of the number and so it prevents errors.

Requesting orders: this program can identify the request orders without any errors.

The system is password protected and the users have to enter a password to log into the system. This prevents unauthorized users logging into the system.

4. Flowcharts and pseudo codes for the system.

4.1Request Password function

Pseudo code

Request Password ()

Char password

Char enter Password

Open file "password"

Read from file password

Struct

Print "user id"

Print "password"

Get input enter id

Get input enter password

If enter id and password = id and password is true then

Print "user authenticated press enter to login the program"

Else

Print "no such login information you entered user id of password invalid please try again…"

End if

Close file

While

Enter user id and password! = administrator, password

End while

Return

4.2 Printing main menu

Pseudo code

Meals ()

Print "welcome to puff and fresh breakfast billing system"

Print "item no" "menu item" "price"

Print "1 string hoppers Rs65.00"

Print "2 egg sandwich Rs15.00"

Print "3 thosai with chutney Rs18.50"

Print "4 parata Rs10.50"

Print "5 sausage bun Rs30.00"

Print "6 fish roll Rs25.00"

Print "7 plain tea Rs10.00"

Print "8 coffee Rs15.00"

Print "9 tea Rs20.00"

Print "10 fruit juice Rs22.50"

End

4.3 Main menu

Pseudo code

Meals ()

Print "welcome to puff and fresh breakfast billing system"

Print "item no" "menu item" "price"

Print "1 string hoppers Rs65.00"

Print "2 egg sandwich Rs15.00"

Print "3 thosai with chutney Rs18.50"

Print "4 parata Rs10.50"

Print "5 sausage bun Rs30.00"

Print "6 fish roll Rs25.00"

Print "7 plain tea Rs10.00"

Print "8 coffee Rs15.00"

Print "9 tea Rs20.00"

Print "10 fruit juice Rs22.50"

Do while

Print "enter number of adults"

Get input number of adults

Print "enter number of children"

Get input number of children

Do while

Print "adult"

Print "please enter your orders"

Get input menu number <10

Print "please enter amount of order"

Get input amount order

Print" would you like to enter more orders (Y/N)"

Get input y or n

If

Input y

Print "please enter your orders"

Else

Print "children"

Print "please enter your orders"

Get input menu number <10

Print "please enter amount of order"

Get input amount order

Print" would you like to enter more orders (Y/N)"

Get input y or n

If input y print "please enter your orders"

Else

Print "puff and fresh billing system"

Print "adults/children amount total"

Print "would you like to continue (y/n)? "

If

Input get y

Return

Main menu

Else

Exit

5. Header files used in the program.

#include<stdio.h>//for input and output library

#include<string>// for string data types

#include<stdlib.h>//for search and sorting (standerd library)

#include<math.h>//for mathematics

#include<string.h>// for string data types

#include<conio.h>// for header files console input/outputs

5.1 User defined functions used in the the program

double price[10] = {65.00 , 15.00 , 18.50 , 10.50 , 30.00 , 25.00 , 10.00 , 15.00 , 20.00 , 22.50 }; //prices of the items

double mealTaxPrices[10]; // prices of the tax prices of the meals

int adultNumber,childNumber;// number of adults and childern

void printMeals();// fuction to print the meals

void orderMeals();// function to order the meals

double orderForAdult();// function to order for adults

double orderForChildren();// function to order for childern

void get_password();// function to get the password

static struct account accounts[] = { //user names and passwords of the program

void get_password ( char *pwd, int size )//function to get the paswwords

int main ()//fucntion to main

6. Coding of the Puff and fresh Billing System

// +++++++++++++ Puff and Fresh billing System ++++++++++++

#include<stdio.h>//for input and output library

#include<string>// for string data types

#include<stdlib.h>//for search and sorting (standerd library)

#include<math.h>//for mathematics

#include<string.h>// for string data types

#include<conio.h>// for header files console input/outputs

// Declaring Functions

double price[10] = {65.00 , 15.00 , 18.50 , 10.50 , 30.00 , 25.00 , 10.00 , 15.00 , 20.00 , 22.50 }; //prices of the items

double mealTaxPrices[10]; // prices of the tax prices of the meals

int adultNumber,childNumber;// number of adults and childern

void printMeals();// fuction to print the meals

void orderMeals();// function to order the meals

double orderForAdult();// function to order for adults

double orderForChildren();// function to order for childern

void get_password();// function to get the password

//arrays for the password

#define FIELD_SIZE 25

#define length(array) ( sizeof (array) / sizeof (array)[i] )

struct account {

char *id;

char *password;

};

static struct account accounts[] = { //user names and passwords of the program

{ "Administrator", "password" },

{ "Tuwan", "icbt" }

};

int is_authorized ( const char *uid, const char *pwd )//password is correct

{

int i;

for ( i = 0; i < length ( accounts ); i++ ) {

if ( stricmp ( uid, accounts[i].id ) == 0 &&

strcmp ( pwd, accounts[i].password ) ==0 )

{

return 1;

}

}

return 0;

}

void get_password ( char *pwd, int size )//function to get the paswwords

{

int i = 0;

int ch;

while ( i < size - 1 && ( ch = getch() ) != '\r' ) {

if ( ch == '\b' ) {

if ( i != 0 ) {

printf ( "\b%c\b", ' ' );

--i;

}

}

else {

putchar ( '*' );

pwd[i++] = (char)ch;

}

}

pwd[i] = '\0';

}

int main ()//fucntion to main

{

system ("cls");//to clear the screen

system ("color 0c");//This function help to change color in command prompt

char uid[FIELD_SIZE];

char pwd[FIELD_SIZE];

//print the Login

printf("\t ----------------------------------------------------------\n");//print this line

printf("\t ********** Welcome to Puff and Fresh Restaurant **********\n");//print this line

printf("\t ----------------------------------------------------------\n\n\n\n");//print this line

printf("Login by keying in your details below :-\n\n");//print this line

printf ( "User ID: " );//print this line

fflush ( stdout );

if ( fgets ( uid, sizeof uid, stdin ) != NULL ) {

char *newline = strchr ( uid, '\n' );

if ( newline != NULL )

*newline = '\0';

printf ( "Password: " );//print this line

fflush ( stdout );

get_password ( pwd, sizeof pwd );

if ( is_authorized ( uid, pwd ) )

//If entered the correct data then this meseage will display.

printf("\n\n\t <<USER AUTHENTICATED Press Enter to Enter the Program>>\n");

else

{

//If entered wrong then this error meseage will display and exit.

printf("\n\n\t\t\t<<NO SUCH LOGIN INFORMATION>>");

printf("\n\n\t<<You Entered User Id or Password is Invalid Please Try again..>>\n");

system("pause");

return main ();

}

}

getchar();

printMeals();

char response = 'y';

//print this in the main menu asking number of adults and number of chilrdren

printMeals();

while(response == 'y'|| response == 'Y')

{

printf("<*> please enter number of adults :");//print this line

scanf("%d",&adultNumber);

printf("<*> please enter number of children:");//print this line

scanf("%d",&childNumber);

orderMeals();

printf("\n<*> would you like to continue(y/n):");//print this line

scanf("\n%c",&response);

}

//in the bill this will print

printf("\n ******************** THANK YOU FOR COMING ************************\n");//print this line

printf(" \20********************** PLEASE VISIT US NEXT TIME **************************\20 \n");//print this line

system("pause");

return 0;

}

void printMeals()//fuction to print meals

{

char code;

system("cls");//to clear the screen

system ("color f3");//This function help to change color in command prompt

printf(" Puff and fresh Copyright: (C)2010 Tuwan.\n\n"); //print this line

printf(" \20=======================================================================\20\n"); //print this line

printf(" \20********************* WELCOME TO PUFF AND FRESH ***********************\20\n"); //print this line

printf(" \20********************* Breakfast Billing System ***********************\20\n"); //print this line

printf(" \20=======================================================================\20\n\n\n"); //print this line

printf(" \t\t Below is the menue:\20\n\n"); //print this line

printf(" \t\t Item No\tMenu Item\t\tPrice:\n"); //print this line

printf(" \t\t \22*******************************\22\n\n"); //print this line

printf(" \t\t 1- \tString Hoppers\t\tRs.65.50\n"); //print this line

printf(" \t\t 2-\t\tEgg Sandwitch\t\tRs.15.00\n"); //print this line

printf(" \t\t 3- \tThosai with Chutney\tRs.18.50\n"); //print this line

printf(" \t\t 4- \tParata\t\t\tRs.10.50\n"); //print this line

printf(" \t\t 5- \tSausages Bun\t\tRs.30.00\n"); //print this line

printf(" \t\t 6- \tFish Roll\t\tRs.25.00\n"); //print this line

printf(" \t\t 7- \tPlain Tea\t\tRs.10.00\n"); //print this line

printf(" \t\t 8- \tCoffee\t\t\tRs.15.00\n"); //print this line

printf(" \t\t 9- \tTea\t\t\tRs.20.00\n");//print this line

printf(" \t\t 10- \tFruit Juice\t\tRs.22.50\n");//print this line

printf("\n");

}

void orderMeals() //function to print order meals

{

double totalPriceForAdult, totalPriceForChildren;

double allPayment,discount;

printf(" \t\t**** ORDER MENUE****\n"); //print this line

totalPriceForAdult = orderForAdult();

totalPriceForChildren = orderForChildren();

allPayment = totalPriceForAdult + totalPriceForChildren ;

system("cls");//to clear the screen

system ("color f4");//This function help to change color in command prompt

printf("\t \20==================================================\20");//print this line

printf("\n \t\t \22****** WELCOME TO PUFF AND FRESH ******\22 \n");//print this line

printf(" \t\t*********** Breakfast Billing System ************ \n");//print this line

printf(" \t \20=============================================================\20\n\n");//print this line

printf(" \t\tAdult/Child\t\tAmount\t\tTotal Price\n");//print this line

printf(" \t\tadults\t\t\t%d\t\t%5.2f\n",adultNumber,totalPriceForAdult);//print adult amount and the price of the adult

printf(" \t\tchildren\t\t%d\t\t%5.2f\n",childNumber,totalPriceForChildren);//print child amount and the price of the child

printf(" \t\tTotal bill\t\t\t\t%5.2f\n",allPayment );//print the toal bill

//arithmetic of the bill

if(allPayment < 10)

discount=((allPayment * 0.5)/100);

else if(allPayment>= 10 && allPayment<20)

discount=((allPayment * 1)/100);

else if(allPayment>= 20 && allPayment<30)

discount=((allPayment * 1.5)/100);

else if(allPayment>= 30 && allPayment<40)

discount=((allPayment * 2.0)/100);

else

discount= ((allPayment * 5.0)/100);

printf(" \t\tTotal bill after discount\t\t%5.2f\n\n",allPayment-discount);//print total bill anfter discount

printf(" \t No 234, peradeniya road, Kandy. Tel:- 081-2345678\n\n");//print this line

}

double orderForAdult() //fuction to print orders for adult

{

int menuOption,i,amount;

char response = 'y';

double totalPerPerson = 0.0,totalAllPerson = 0.0;

double tax = 5.0;

if(adultNumber <=0)

printf("\n ");

else

printf("*\tadults:\n");//print this line

for(i=0;i<adultNumber;i++)

{

printf("<$> adult %d please enter your orders\n",i+1);//print this line

while(response == 'y' || response == 'Y')

{

printf("<$> please enter your option:");//print this line

scanf("%d",&menuOption);

if(menuOption<1 || menuOption>10)

{

printf(" sorry we don`t have this order \nagain! ");//print this line

continue;

}

printf("<$> please enter your amount of order:");//print this line

scanf("%d",&amount);

totalPerPerson = totalPerPerson + (amount * price[menuOption - 1] );//total price of a person

printf("<$> Would you like to enter more orders(y/n):");//print this line

scanf("\n%c",&response);

}

printf("\n");

totalAllPerson += totalAllPerson + totalPerPerson;//arithmetic

totalPerPerson = 0.0;

response = 'y';

}

return totalAllPerson + ((totalAllPerson * tax) / 100);//arithmetic

}

double orderForChildren()//fuction to print orders for child

{

int menuOption,i,amount;

char response = 'y';

double totalPerChild = 0.0,totalAllChildren = 0.0;

double tax = 5.0,oneOrder;

if(childNumber <=0)

printf("\n");

else

printf("*\tChildren:\n");//print this line

for(i=0;i<childNumber;i++)

{

printf("<$> child %d please enter your orders\n",i+1);//print this line

while(response == 'y' || response == 'Y')

{

printf("<$> please enter your option:");//print this line

scanf("%d",&menuOption);

if(menuOption<1 || menuOption>10)

{

printf(" sorry we don`t have this order \nagain! ");//print this line

continue;

}

printf("<$> please enter your amount of order:");//print this line

scanf("%d",&amount);

oneOrder = (price[menuOption - 1] * 60)/100 ;//this one order for a child with discount %60 of one order of adult

totalPerChild = totalPerChild + (amount * oneOrder) ;//total price of a person

printf("<$> Would you like to enter more orders(y/n):");//print this line

scanf("\n%c",&response);

}

totalAllChildren += totalAllChildren + totalPerChild;

response = 'y';

totalPerChild = 0.0;

printf("\n");

}

return totalAllChildren + ((totalAllChildren * tax) / 100);//arithmetic

}

//***************************************END*****************************************//

7. Advantages and Disadvantages of Puff and Fresh billing system:

Advantages of Puff and Fresh billing system

It is a Windows based system

The program is easy to learn.

Developing or modifying code is much easier and faster

Restricted to a limited number of users

You can have a fully functional and the user interface elements are quite powerful.

Improved security

Disadvantages of Puff and Fresh billing system

Take time to implement

Difficult to use in non-Windows environments.

Viruses can infect.

8. Data dictionary

Variable name

Data type

Description

account

struct

The struct assigned to the accounts

User id

char

Variable to hold the password

password

char

The variable holding the value for the confirm password

No of adults

Char

The variable holding the value for the confirm number of adults

No of children

char

The variable holding the value for the confirm number of children

payment

double

The variable holding the value of payment

total

double

The variable holding the value of total

discount

double

The variable holding the value of discount

tax

double

The variable holding the value of tax

Menu option

Int

The variable holding the value of menu option

Meals

char

The variable holding the value for the confirm meals

9. Test cases of the system.

Checking the User ID and Password

#

Test

Test Type

Expected Outcome

Actual

Outcome

1.1

Type in an incorrect User ID

Erroneous

Error message displayed

Error message displayed

1.2

Type in the correct Password.

Erroneous

Error message displayed

Error message displayed

1.3

Type in an correct

User ID

Erroneous

Error message displayed

Error message displayed

1.4

Type in an incorrect Password

Erroneous

Error message displayed

Error message displayed

1.5

Type in an correct

User ID

Normal

Logging into the system message displayed

Logging into the system message displayed

1.6

Type in an correct Password

Normal

Logging into the system message displayed

Logging into the system message displayed

Selecting options from the Main Menu ( Entering options using main menu Adult and children)

Adult

#

Test

Test Type

Expected Outcome

Actual

Outcome

2.1

Type in an incorrect option.

Erroneous

Error message displayed

Error message displayed

2.2

Type in the correct option

Normal

Option becomes available.

Option becomes available.

Selecting options from the Main Menu ( Entering options using main menu Adult and children)

Children

#

Test

Test Type

Expected Outcome

Actual

Outcome

2.1

Type in an incorrect option.

Erroneous

Error message displayed

Error message displayed

2.2

Type in the correct option

Normal

Option becomes available.

Option becomes available.

10. Report about the program

When chording this program Puff and Fresh Billing system I had to face lots of difficulties like syntax errors, semantic errors and compiling errors. Such as when we misspelled a word it becomes a syntax error. For example u can see below screenshot.

If there is an error in logic it becomes a logical error. When we compile the chord the compiling chord show the error. You can see an example below.

(A logical error)

11. Recommendations

Implementing a security system to allow access to only authorized personals.

Take regular backups of all the player records.

Conducting a user training and support plan to train the staff at Puff and Fresh.

Update the system in the future adding new features.

Implement a system where the player can order Items online.

Create a centralized database; thereby the same data is accessible from any location.

Security from viruses; computer viruses could be a major problem; therefore reliable antivirus software could be installed. This software could be updated on a regular basis and the employees should be trained to use it.

Keep the passwords updated; that is the users should change their passwords on a regular basis.

Install Malware and spyware guards to protect the system from being hacked.

12. Conclusion

The documentation includes all necessary information on the structure and the coding of the program created for Puff and Fresh Billing system. Creating the program was an overwhelming task that required a lot of analyzing, research work and personal skills. Below is a list of problems that had to be faced while creating the program.

Understanding the problem and coming up with the most suitable solutions.

Using the correct logics and the coding that would work best according to the requirements.

Making proper use of the data types and variables such as structs and arrays.

Understanding the errors that occur when using such data types and finding solutions to overcome those errors.

Creating user-defined functions and passing parameters successfully.

Creating proper user interface.

Creating proper messages for input and output.

Understanding the situations where displaying of error messages are needed and successfully creating them.

Above problems have been successfully analyzed and correct solutions have been given in this assignment.

Creating this report had been a great experience and a lot of facts have been learned since the required tasks have been given in a challenging manner. Tasks such as creating a system to a restaurant, needed research work as well as personal skills. Creating proper error messages was a very tiring task that consumed a lot of time. The program has been created successfully with proper error messages displaying at proper situations.

Alternative measures had to be taken when using arrays and enumerators to prevent run-time errors. Even though there were no logical or syntax errors, using arrays inside struct created errors with the memory and finding out those errors was a difficult task.

13. Gantt chart

14. Reference

Malik, D.S, I. (1999). C++ Programming: programmed Design Including Data Structures. Second Edition, Thompson Course technology, pp.269-294.

DaniWeb.LLC, 2003 - 2010, Viewed on 25th of August 2008, http://www.daniweb.com/forums/thread141983.html

Experts Exchange LLC 2009, viewed on 18th of August 2010, http://www.expertsexchange.com/Programming/Languages/CPP/Q_2163.html

About, Inc. About and About.com,2010, viewed on 24th of August 2010,

http://en.allexperts.com/q/C-1040/Storing-Info-Files.htm

Lectures tutes and notes of c++.

Exhedra Solutions, Inc, 1997-2010, viewed on 24th of August 2010, http://www.planetsourcecode.com/vb/default.asp?lngWId=3

Experts Exchange LLC 2010, viewed on 15th of August 2010, http://www.expertsexchange.com/Programming/Languages/CPP/Q_2163.html

Writing Services

Essay Writing
Service

Find out how the very best essay writing service can help you accomplish more and achieve higher marks today.

Assignment Writing Service

From complicated assignments to tricky tasks, our experts can tackle virtually any question thrown at them.

Dissertation Writing Service

A dissertation (also known as a thesis or research project) is probably the most important piece of work for any student! From full dissertations to individual chapters, we’re on hand to support you.

Coursework Writing Service

Our expert qualified writers can help you get your coursework right first time, every time.

Dissertation Proposal Service

The first step to completing a dissertation is to create a proposal that talks about what you wish to do. Our experts can design suitable methodologies - perfect to help you get started with a dissertation.

Report Writing
Service

Reports for any audience. Perfectly structured, professionally written, and tailored to suit your exact requirements.

Essay Skeleton Answer Service

If you’re just looking for some help to get started on an essay, our outline service provides you with a perfect essay plan.

Marking & Proofreading Service

Not sure if your work is hitting the mark? Struggling to get feedback from your lecturer? Our premium marking service was created just for you - get the feedback you deserve now.

Exam Revision
Service

Exams can be one of the most stressful experiences you’ll ever have! Revision is key, and we’re here to help. With custom created revision notes and exam answers, you’ll never feel underprepared again.