0% found this document useful (0 votes)
41 views12 pages

PPS Mini Project Shubh Agarwal RA2311003010328 Vidushi Mishra RA2311003010338

This document describes a mini project to create a simple menu item taker system using Python. It includes a problem statement, methodology, flowchart, coding details, module descriptions, and results. The system allows users to view a menu, place food orders, add new menu items, and receive a notification when their order is ready. It implements the core functions of a basic restaurant ordering app in an easy-to-use menu-driven interface.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
41 views12 pages

PPS Mini Project Shubh Agarwal RA2311003010328 Vidushi Mishra RA2311003010338

This document describes a mini project to create a simple menu item taker system using Python. It includes a problem statement, methodology, flowchart, coding details, module descriptions, and results. The system allows users to view a menu, place food orders, add new menu items, and receive a notification when their order is ready. It implements the core functions of a basic restaurant ordering app in an easy-to-use menu-driven interface.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

SIMPLE MENU ITEM MAKER

21CSS101J – PROGRAMMING FOR PROBLEM-SOLVING

Mini Project Report

Submitted by

Shubh Agarwal [Reg. No.: RA2311003010328]


B.Tech. CSE - Core
Vidushi Mishra [Reg. No.: RA2311003010338]
B.Tech. CSE - Core

SCHOOL OF COMPUTING
COLLEGE OF ENGINEERING AND TECHNOLOGY
SRM INSTITUTE OF SCIENCE AND TECHNOLOGY
(Under Section 3 of UGC Act, 1956)
S.R.M. NAGAR, KATTANKULATHUR – 603 203
CHENGALPATTU DISTRICT

November 2023

1 | Page
2 | Page
TABLE OF CONTENTS

S No. Title Page No.

4
1 Problem Statement

2 Methodology / Procedure/ Algorithm 4

3 Flowchart 5

6-9
4 Coding (C/Python)

10
5 Modules of the proposed work

11
6 Results/Screenshots

12
7 Conclusion

12
8 Acknowledgement

12
9 References

3 | Page
1. Problem Statement

Simple Menu Item Taker

The problem addressed by the provided project code is to create a simple menu item taker system that allows
users to view a menu, place orders for food items with specified quantities, add new items to the menu, and
receive a notification when the order is ready.

2. Methodology / Procedure/ Algorithm

Menu Display and Modification:


Display the menu with item names and prices.
Allow users to add new items to the menu with their respective prices.

Order Placement:
Enable users to place orders by selecting items from the menu.
For each selected item, users can specify the quantity they want to order.

Order Calculation:
Calculate the total cost of the order based on the selected items and quantities.

Order Notification
Notify users that their order is being prepared.
Introduce a delay of 3 seconds to simulate order preparation time.
Play a sound to further indicate that the order is ready.

User Interaction:
Allow users to interact with the system through a simple menu-driven interface.
Provide options to view the menu, place orders, add items to the menu, and exit the system.

4 | Page
3. Flow chart

Here's a simplified flowchart for the Item Menu Taker:

5 | Page
4. Coding (C/Python)

import time

import pygame

menu = {"Burger": 5.99, "Pizza": 8.99, "Salad": 4.99}

def display_menu():

print("Menu:")

for i, (item, price) in enumerate(menu.items(), start=1):

print(f"{i}. {item} - ${price:.2f}")

def order_food(order):

while True:

display_menu()

print("0. Finish ordering")

item_number = input("Enter the number of the item you want to order (0 to finish): "

if item_number == '0':

break

try:

item_number = int(item_number)
6 | Page
if 1 <= item_number <= len(menu):

item = list(menu.keys())[item_number - 1]

quantity = int(input(f"How many {item}s do you want to order? Enter quantity: "))

order.append((item, menu[item], quantity))

print(f"{quantity} {item}(s) added to your order.")

else:

print("Invalid item number. Please choose a valid number.")

except ValueError:

print("Invalid input. Please enter a valid number.")

def calculate_total(order):

total = sum(price * quantity for _, price, quantity in order)

return total

def add_item_to_menu():

new_item = input("Enter the name of the new item: ")

new_price = float(input("Enter the price of the new item: "))

menu[new_item] = new_price

print(f"{new_item} added to the menu with a price of ${new_price:.2f}")

7 | Page
def notify_order_ready():

print("\nPreparing your order...")

time.sleep(3) # Introduce a 3-second delay

print("Your order is ready! Enjoy your meal!")

# Play sound using pygame

pygame.mixer.init()

pygame.mixer.music.load("ting_iphone.wav") # Replace with the actual path to your sound file

pygame.mixer.music.play()

def main():

order = []

print("Welcome to the Simple Menu Item Taker!")

while True:

print("\n1. View Menu")

print("2. Order Food")

print("3. Add Item to Menu")

print("4. Exit")

choice = input("Enter your choice: ")

8 | Page
if choice == '1':

display_menu()

elif choice == '2':

order_food(order)

total = calculate_total(order)

print(f"Your order total is: ${total:.2f}")

notify_order_ready()

elif choice == '3':

add_item_to_menu()

elif choice == '4':

print("Thank you for using the menu item taker. Goodbye!")

break

else:

print("Invalid choice. Please enter a valid option (1-4).")

if __name__ == "__main__":
main()

9 | Page
5. Modules of the proposed work
display_menu():
Displays the menu with item names and prices.

order_food(order):
Facilitates the ordering process by allowing users to select items and specify quantities.
Appends the selected items, their prices, and quantities to the order list.

calculate_total(order):
Calculates the total cost of the order based on the selected items and quantities.

add_item_to_menu():
Allows users to add new items to the menu with their respective prices.

notify_order_ready():
Notifies users that their order is being prepared.
Introduces a 3-second delay to simulate order preparation time.
Plays a sound to indicate that the order is ready.

main():
The main function orchestrating the overall flow of the program.
Accepts user input and directs the flow based on the chosen options.

10 | Page
6. Results/Screenshots

● CONTENT PAGE

● DATABASE AND TABLE SETUP

11 | Page
7. Conclusion

The provided project code implements a simple menu item taker system with functionalities such as viewing
the menu, placing orders, adding items to the menu, and receiving notifications. The system uses a menu-
driven approach, allowing users to interact easily. The addition of a sound notification and a delay before
order readiness enhances the user experience. The code serves as a foundation for a basic restaurant order
management system and can be extended for more complex functionalities in future iterations.

8. Acknowledgement

After the completion of the project, the students went to the basics. They had a great experience
participating in the project.

9. References :

1. YouTube for brainstorming ideas

12 | Page

You might also like