You are on page 1of 22

PROJECT REPORT

ON
“Cafeteria Management System”

Under The Supervision of Submitted By


Mr. Praveen Shah Mehak Gupta
Assistant Professor-USCS BCA I E

1
ACKNOWLEDGEMENT

The most awaited moment of any endeavor is successful completion, but nothing can be done
successfully if done alone. Success is the outcome of contribution and consistent help of various persons
and we thank those ones who helped us in successful completion of this project.
Primarily I would like to thank Prof (Dr.) Sonal Sharma, Dean-USCS for providing a healthy and
encouraging environment to study.
I profusely thankful to Dr. Sameer Dev Sharma, Head of Department-USCS for their valuable
support and guidance to build the project.

I am also thankful to Mr. Amarjeet Rawat, Program Coordinator- BCA Ist Year, Assistant
Professor-USCS for providing all the required resources in the successful completion of my project
report.

I express my thanks to Mr. Praveen Shah, Project Mentor, Assistant Professor-USCS. He has been
generous enough to provide me an opportunity and accepting my project for the most valuable guidance
and affordable treatment given to us at every stage to boost my morale.

Mehak Gupta
Roll No: 02
B.C.A 1st Semester
Section - E

2
DECLARATION

I hereby declare that the project report entitled Cafeteria Management System submitted by
Mehak Gupta to Uttaranchal School of Computing Sciences. The project report was done under
the guidance of Mr. Praveen Shah, Assistant Professor-USCS. I further declare that the work
reported in this project report has not been submitted and will not be submitted, either in part or
in full, for the award of any other degree or diploma in this university or any other university or
institute.

Mehak Gupta
Roll No: 02
B.C.A 1st Semester
Section - E

iii
CERTIFICATE

This is to certify Mehak Gupta student of BCA 1st Semester, of Uttaranchal School of
Computing Sciences, Dehradun, has completed the Project Report for the topic
Cafeteria Management System for the session (2023- 2024).

Under the guidance of:


Mr. Praveen Shah
Assistant Professor-USCS
Uttaranchal University Dehradun

4
TABLE OF CONTENTS

S.No. Topics Page no.

01 ACKNOWLEDGEMENT

02 DECLARATION

03 CERTIFICATE

04 INTRODUCTION 06

05 OBJECTIVES 07

06 SYSTEM ANALYSIS
 EXISTING SYSTEM 08
 PROPOSED SYSTEM AND SCOPE OF PROPOSED 09
SYSTEM
 HARDWARE & SOFTWARE REQUIREMENT 10
 FUNCTIONAL & NON-FUNCTIONAL 11
REQUIREMENTS
 MODULES DESCRIPTION 12
07 SYSTEM ANALYSIS DESIGN
 USE CASE DIAGRAM 13

08 REFERENCES AND BIBLIOGRAPHY 14

09 CODE 15-22

5
1. INTRODUCTION

Cafeteria management system is to provide fast services to their college students and
teachers. Usually, People have to go to cafeteria and order the food which is updated in a
notebook i.e., using pen & paper system, but with the help of this system you just have to
follow a very simple procedure to order your stuffs. And you need not to wait in the long
queue to place your order.

A cafeteria facility is a supplementary system that is provided by organizations for their


employees/students.

Organizations with large numbers of employees cannot handle a canteen/cafeteria with


manual processes.

Our cafeteria management system provides an interface for easy ordering, billing features
and lots more. Implementation of such a system makes the operation of the kitchen and the
whole of the cafeteria as effective and quick as possible.

6
2. OBJECTIVES

The main objective of the project is to manage the details of cafeteria, invoices, sales, and
calculations.

The purpose is to build a software that will reduce the manual work of ordering items and
managing cafeteria. It tracks all the details about the generated bills, ordered food, customer
details, etc.

2.1 FEATURES OF CAFETERIA MANAGEMENT SYSTEM

 Generate Invoice – For Generating invoice, the user adds the item with
the prices.
 Show all Invoices– For displaying all invoices, the user can view the
previous orders’ invoices too.
 Search Invoice- For searching an invoice with the name of customer.
 Exit – For the exit, the user can also exit in the system.

7
3. EXISTING SYSTEM

The existing system is a paper-based system. The process takes a lot of time as the employee has
to written down all the orders and sometimes it is not even in a proper sequence, results in poor
service.

The delays in food serving and improper management leads to unsatisfied and unhappy
customers which can decrease the sales of cafeteria.

CHARACTERISTTICS:

 Lack of data security.

 More man power.

 Time consuming.

 Consumes large volume of paper work.

 Needs manual calculations.

 No direct role for the higher officials.

8
4. PROPOSED SYSTEM

This system is generally advantageous to avoid spending time waiting in the queue by posting
orders directly to the kitchen without delay and also by scheduling orders ahead of time. It saves
time and also this technique is easy to use.

The proposed Cafeteria Management System is an adapt solution for chaos at college cafeterias
by computerizing the ordering and billing system.

4.1 Scope of proposed system

It will help in collecting information of cafeteria in details. In a very short time, the collection of
data will be obvious, simple and sensible. It will help a person to know the management of
passed month perfectly. It will reduce the manual work of writing down the orders with pen and
paper.

We tried to automate the management system of cafeteria with proper maintenance of data and
calculations of bills.

9
5. HARDWARE AND SOFTWARE REQUIREMENT

5.1 SOFTWARE USED


 Dev C

5.2 HARDWARE USED


 INTEL CORE i5

 4GB RAM

 SSD 332GB

5.3 PROGRAMMING LANGUAGE USED


 C Language

5.4 PLATFORM USED


 Window 11

10
6. FUNCTIONAL AND NON-FUNCTIONAL REQUIREMENTS

6.1 FUNCTIONAL REQUIREMENTS


The customers will be provided the following functionality:

 Add customer details like name, food items, price, etc.

 Calculate Total amount with discounts offered.

 Generate Invoices.

 Display all the invoices.

 Search for a particular invoice by customer’s name.

 Exit

6.2 NON-FUNCTIONAL REQUIREMENTS


Performance Criteria:

 Time:

The elapsed time between the submission of order process between the customer and cashier in a
cafeteria should be minimum as possible.

 User-friendly:

The user interface should be kept simple and easy to understand.

 Flexibility:

Our project should be flexible so that whenever we want to make changes in it very easily it can
be done.

 Portable:

Our project should be portable on any platform and available on websites easily and at a faster
speed than others.

11
7. MODULES

NAME OF MODULES FUNCTIONS

Cafeteria Management Module Used for managing the Cafeteria details.

Generate Invoice Module Used for generating invoice.

Display Module Used for displaying invoices.

Search Module Used for managing invoices.

Exit Module EXIT

12
8.USE CASE DIAGRAM

13
9.REFERENCES AND BIBLIOGRAPHY

 Google for problem solving.

 YouTube for understanding concept.

 https://www.acssonaicollege.com/wp-content/uploads/2022/01/Devhare-Vanita-
Dhokne.pdf

 https://www.freeprojectz.com/premium-synopsis/synopsis-canteen-management-system

14
10. CODING

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

struct items

char item[20];

float price;

int qty;

};

struct orders

char customer[50];

char date[50];

int numOfItems;

struct items itm[50];

};

//functions to generate bills

void generateBillHeader(char name[50],char date[30])

printf("\n\n");

printf("\t HAPPY HAPPY CAFETERIA");

printf("\n\t -----------------");

printf("\nDate:%s",date);

15
printf("\nInvoice To: %s",name);

printf("\n");

printf("---------------------------------------\n");

printf("Items\t\t");

printf("Qty\t\t");

printf("Total\t\t");

printf("\n---------------------------------------");

printf("\n\n");

void generateBillBody(char item[30],int qty, float price)

printf("%s\t\t",item);

printf("%d\t\t",qty);

printf("%.2f\t\t",qty * price);

printf("\n");

void generateBillFooter(float total)

printf("\n");

float dis = 0.1*total;

float netTotal=total-dis;

float cgst=0.09*netTotal,grandTotal=netTotal + 2*cgst;//netTotal + cgst + sgst

printf("---------------------------------------\n");

printf("Sub Total\t\t\t%.2f",total);

printf("\nDiscount @10%s\t\t\t%.2f","%",dis);

16
printf("\n\t\t\t\t-------");

printf("\nNet Total\t\t\t%.2f",netTotal);

printf("\nCGST @9%s\t\t\t%.2f","%",cgst);

printf("\nSGST @9%s\t\t\t%.2f","%",cgst);

printf("\n---------------------------------------");

printf("\nGrand Total\t\t\t%.2f",grandTotal);

printf("\n---------------------------------------\n");

int main()

int opt,n;

struct orders ord;

struct orders order;

char saveBill = 'y',contFlag = 'y';

char name[50];

FILE *fp;

//dashboard

while(contFlag == 'y')

system("clear");

float total = 0;

int invoiceFound = 0;

printf("\t============= HAPPY HAPPY CAFETERIA =============");

printf("\n\nPlease select your preferred operation");

printf("\n\n1.Generate Invoice");

printf("\n2.Display all Invoices");

printf("\n3.Search Invoice");

17
printf("\n4.Exit");

printf("\n\nYour choice:\t");

scanf("%d",&opt);

fgetc(stdin);

switch(opt)

case 1:

system("clear");

printf("\nPlease enter the name of the customer:\t");

fgets(ord.customer,50,stdin);

ord.customer[strlen(ord.customer)-1] = 0;

strcpy(ord.date,__DATE__);

printf("\nPlease enter the number of items:\t");

scanf("%d",&n);

ord.numOfItems = n;

for(int i=0;i<n;i++)

fgetc(stdin);

printf("\n\n");

printf("Please enter the item %d:\t",i+1);

fgets(ord.itm[i].item,20,stdin);

ord.itm[i].item[strlen(ord.itm[i].item)-1]=0;

printf("Please enter the quantity:\t");

scanf("%d",&ord.itm[i].qty);

printf("Please enter the unit price:\t");

scanf("%f",&ord.itm[i].price);

total += ord.itm[i].qty * ord.itm[i].price;

18
}

generateBillHeader(ord.customer,ord.date);

for(int i=0;i<ord.numOfItems;i++)

generateBillBody(ord.itm[i].item,ord.itm[i].qty,ord.itm[i].price);

generateBillFooter(total);

printf("\nDo you want to save the invoice [y/n]:\t");

scanf("%s",&saveBill);

if(saveBill == 'y')

fp = fopen("RestaurantBill.dat","a+");

fwrite(&ord,sizeof(struct orders),1,fp);

if(fwrite != 0)

printf("\nSuccessfully saved");

else

printf("\nError saving");

fclose(fp);

break;

case 2:

system("clear");

fp = fopen("RestaurantBill.dat","r");

printf("\n *****Your Previous Invoices*****\n");

19
while(fread(&order,sizeof(struct orders),1,fp))

float tot = 0;

generateBillHeader(order.customer,order.date);

for(int i=0;i<order.numOfItems;i++)

generateBillBody(order.itm[i].item,order.itm[i].qty,order.itm[i].price);

tot+=order.itm[i].qty * order.itm[i].price;

generateBillFooter(tot);

fclose(fp);

break;

case 3:

printf("Enter the name of the customer:\t");

//fgetc(stdin);

fgets(name,50,stdin);

name[strlen(name)-1] = 0;

system("clear");

fp = fopen("RestaurantBill.dat","r");

printf("\t*****Invoice of %s*****",name);

while(fread(&order,sizeof(struct orders),1,fp))

float tot = 0;

if(!strcmp(order.customer,name))

generateBillHeader(order.customer,order.date);

20
for(int i=0;i<order.numOfItems;i++)

generateBillBody(order.itm[i].item,order.itm[i].qty,order.itm[i].price);

tot+=order.itm[i].qty * order.itm[i].price;

generateBillFooter(tot);

invoiceFound = 1;

if(!invoiceFound)

printf("Sorry the invoice for %s doesnot exists",name);

fclose(fp);

break;

case 4:

printf("\n\t\t Bye Bye :)\n\n");

exit(0);

break;

default:

printf("Sorry invalid option");

break;

printf("\nDo you want to perform another operation?[y/n]:\t");

scanf("%s",&contFlag);

21
}

printf("\n\t\t Bye Bye :)\n\n");

printf("\n\n");

return 0;

22

You might also like