Assessment 3 Detail Python Programming Assessment: Restaurant Menu Management System This assessment evaluates your ability to utilise Python’s data structures and functions to create a menu managemen


Assessment 3 Detail

Python Programming Assessment: Restaurant Menu Management System

This assessment evaluates your ability to utilise Python’s data structures and functions to create a menu management system for a restaurant.

Project Objective:

Develop a Python program that simulates a restaurant menu using functions and data structures. This program will demonstrate your understanding of data manipulation, control flow, and efficient data organisation.

Project Description:

Imagine a restaurant with various dishes categorised by type (appetiser, main course, dessert). You’ll build a program to manage the menu, including adding dishes, updating prices, and displaying information for customers.

Data Structure:

We’ll represent dishes on the menu using dictionaries with the following keys:

•      Name (string) – Unique name of the dish.

•      Description (string) – Brief description of the dish ingredients.

•      Price (float) – Current price of the dish.

•      Category (string) – Dish type (appetiser, main course, dessert).

The overall menu will be represented as a dictionary with categories as keys and lists of dish dictionaries as values. For example:

Python

menu = {

    “Appetizers”: [dish1_dict, dish2_dict, …],

    “Main Courses”: [dish3_dict, dish4_dict, …],

    “Desserts”: [dish5_dict, dish6_dict, …] }

Tasks:

1.      Menu Initialisation:

 Create a function to initialise the menu data. This function should: 

o Create an empty dictionary to store the menu categories and dish lists. o Optionally, pre-populate the menu with some sample dishes using dictionaries as described above.

2.      Add a Dish:

•      Develop a function to add a new dish to the menu.

•      This function should prompt the user for details (name, description, price, category) and create a new dish dictionary.

•      Add the newly created dish dictionary to the appropriate category list within the menu dictionary.

3.      Update Dish Price:

•      Design a function to update the price of a specific dish.

•      This function should allow the user to search for a dish by name.

•      If the dish exists, prompt the user for the new price and update the price value in the corresponding dish dictionary.

4.      Display Menu:

•      Create a function that allows customers to view the entire menu categorised.

•      This function should iterate through the menu dictionary, displaying the category name and then looping through each dish dictionary within that category, printing its name, description, and price.

5.      Search for Dish:

•      Develop a function that allows customers to search for a specific dish by name.

•      If the dish exists, display its full information (name, description, price, and category).

•      If the dish is not found, display an appropriate message.

Assessment Evaluation:

•      Appropriate use of functions, dictionaries, lists, and conditional statements.

•      Accurate representation of menu data with efficient organisation (using categories).

•      Implementation of adding dishes, updating prices, displaying the entire menu, and searching for specific dishes functionalities.

•      User-friendly interface with clear prompts and informative messages.

•      Error handling for invalid user inputs and dish search functionality.

•      Overall code organisation, readability, and adherence to Python best practices.

What you should submit:

•      Your report will consist of:

o        A brief description of your chosen approach and data structures. o Algorithm (pseudocode) for Task 2, Task 3 and Task 5.

o        Well-commented Python code for the restaurant menu management system.

 Source code for your Python implementation