Description
In this homework you are expected to implement and design a “Pizza Order Application” in Java.
You
should fulfill the concepts of:
• Factory Design Pattern
• Decorator Design Pattern
In this application user can order a pizza according to their choice of pizza shop, pizza type, and pizza
toppings
Related information about the shops is given below:
Shop Name: Pizza Globale
Pizzas:
• Goat Cheese Pizza – Info: Tomato Sauce, Mozzarella Cheese, Goat Cheese – Cost: 60₺
• Margherita Pizza – Info: Tomato Sauce, Mozzarella Cheese, Cherry Tomato, Basil Leaves – Cost:
60₺
• 4 Cheeses Pizza – Info: Tomato Sauce, Mozzarella Cheese, Roquefort Cheese, Parmesan
Cheese, Feta Cheese – Cost: 55₺
• Barbeque Chicken Pizza – Info: Tomato Sauce, Mozzarella Cheese, Chicken Slices, Barbeque
Sauce – Cost: 54₺
• Smoked Ribs Pizza – Info: Tomato Sauce, Mozzarella Cheese, Smoked Ribs, Arugula Leaves,
Parmesan Cheese – Cost: 70₺
Toppings:
• Parmesan Cheese – Cost: 5₺
• Olive – Cost: 4₺
• Sweet Corn – Cost: 3₺
• Ricotta Cheese – Cost: 4₺
• Red Pepper – Cost: 8₺
• Sausage – Cost: 9₺
• Pepperoni – Cost: 8₺
• Pastrami – Cost 10₺
• Basil Leaves – Cost 6₺
• Cherry Tomato – Cost 7₺
• Mushroom – Cost: 6₺
Shop Name: Pizza Hat
Pizzas:
• Ranch House Pizza – Info: Tomato Sauce, Mozzarella Cheese, Salami, Mushroom – Cost: 50₺
• Margherita Pizza – Info: Tomato Sauce, Mozzarella Cheese, Cherry Tomato, Basil Leaves – Cost:
53₺
• Pepperoni Pizza – Info: Tomato Sauce, Mozzarella Cheese, Pepperoni – Cost: 48₺
• Barbeque Chicken Pizza – Info: Tomato Sauce, Mozzarella Cheese, Chicken Slices, Barbeque
Sauce – Cost: 57₺
Toppings:
• Parmesan Cheese – Cost: 4₺
• Olive – Cost: 3₺
• Sweet Corn – Cost: 3₺
• Ricotta Cheese – Cost: 5₺
• Sausage – Cost: 8₺
• Pepperoni – Cost: 8₺
• Salami – Cost 9₺
• Basil Leaves – Cost 5₺
• Cherry Tomato – Cost 6₺
• Mushroom – Cost: 7₺
• Jalapeno – Cost: 4₺
Shop Name: Mama Jones’ Pizza
Pizzas:
• Aegean Pizza – Info: Tomato Sauce, Mozzarella Cheese, Olive, Red Onion, Red Pepper – Cost:
55₺
• Margherita Pizza – Info: Tomato Sauce, Mozzarella Cheese, Cherry Tomato, Basil Leaves – Cost:
58₺
• Mixed Pizza – Info: Tomato Sauce, Mozzarella Cheese, Pepperoni, Sausage, Salami, Green
Pepper – Cost: 63₺
• Barbeque Chicken Pizza – Info: Tomato Sauce, Mozzarella Cheese, Chicken Slices, Barbeque
Sauce, Jalapeno – Cost: 68₺
• Smoked Ribs Pizza – Info: Tomato Sauce, Mozzarella Cheese, Smoked Ribs, Arugula Leaves,
Parmesan Cheese – Cost: 72₺
Toppings:
• Parmesan Cheese – Cost: 5₺
• Olive – Cost: 3₺
• Ricotta Cheese – Cost: 5₺
• Sausage – Cost: 7₺
• Pepperoni – Cost: 7₺
• Salami – Cost 8₺
• Basil Leaves – Cost 7₺
• Cherry Tomato – Cost 7₺
• Jalapeno – Cost: 4₺
Your application should ask the users about their pizza orders in given order below:
1- Pizza Shop
2- Pizza Type (E.g., Smoked Ribs Pizza)
3- Topping (After each pizza selection)
Rules:
• User can order from only one pizza shop.
• User can order more than one pizza (User also can order same pizza more than ones).
• Users can add as many toppings as they want to their chosen pizzas.
After users’ orders are completed, related information about the orders should be printed out.
Expected Output Example:
———————————————————————————————————————————–
Please choose the pizza shop you want to give an order:
1. Pizza Globale
2. Pizza Hat
3. Mama Jones’ Pizza
———————————————————————————————————————————–
1. See or cancel your orders
2. Order another pizza
3. Go back to pizza shop selection
———————————————————————————————————————————–
Your orders:
Pizza Shop: Pizza Hat
Pizzas:
1.Ranch House Pizza (Tomato Sauce, Mozzarella Cheese, Salami, Mushroom, Sweet Corn, Olive)
Cost: 56₺
2.Ranch House Pizza (Tomato Sauce, Mozzarella Cheese, Salami, Mushroom)
Cost: 50₺
3.Pepperoni Pizza (Tomato Sauce, Mozzarella Cheese, Pepperoni, Jalapeno, Cherry Tomato)
Cost: 58₺
Total Number of Pizzas: 3
Total Cost: 164₺
———————————————————————————————————————————–
NOTE: You don’t have to use this exact format, but please try your best to make your software user
friendly and make sure it is expressive enough to the user. (E.g., make selections with numbers)
Assignment Rules:
1. In this lecture’s homework, there are no cheating allowed. If any cheating has been
detected, they will be graded as 0 and there will be no further discussion on this.
2. You are expected to submit your homework in groups. Therefore, only one of you will
be sufficient to submit your homework.
3. Make sure you export your homework as an Eclipse project. You can use other IDEs as
well, however, you must test if it supported by Eclipse. If the project import is not
accomplished in Eclipse, you will lose points.
4. Submit your homework through Cloud-LMS.
5. Your exported Java Project should have the following naming format with your assigned
group ID (which will be announced on MS Teams) as the given below:
G05_CENG431_HW4
Also, the zip folder that your project in should have the same name
G05_CENG431_HW4.zip
6. Please beware that if you do not follow the assignment rules for exporting and naming
conventions, you will lose points.
7. Please be informed that your submissions may be anonymously used in software
testing and maintenance research studies. Your names and student IDs will be replaced
with non-identifying strings. If you do not want your submissions to be used in research
studies, please inform the instructor (Dr. Tuglular) via e-mail.