Your pizza shop expands and now handles delivery orders

PART 1
Part 1 demonstrates inheritance.

Your Pizza Shop expands and now handles delivery orders and sit down orders in a restaurant setting. There are differences in a SeatedPizzaOrder and a DeliveryPizzaOrder. These are more specialized versions of the PizzaOrders you have been creating all along and you decide to write a program that handles them the same as much as possible and reuses the code of a general PizzaOrder class as much as possible to demonstrate inheritance.

Create a PizzaOrder Class. This class should have the following properties (and their underlying private variables): Size {of type int}, Toppings {of type String}, Price {of type Decimal}. Make a full constructor for the class that takes all three values, and a default constructor that initializes the basic pizza as a 12 inch cheese pizza for $8. Make sure to include validation in your Size and Price properties and constructor to prevent a change to Size that would be less than 12 or greater than 16, and prevent a change to Price that would be less than 0.

Create a class that inherits from your PizzaOrder class called SeatedPizzaOrder. SeatedPizzaOrder has the three data values that any PizzaOrder has (size, toppings, and price) but also has a tablenumber (of type integer) and serverName (of type string) which allows you to track where the pizza is going and who took the order in the restaurant
Create a class that inherits from your PizzaOrder class called DeliveryPizzaOrder. DeliveryPizzaOrder has the three data values that any PizzaOrder has (size, toppings, and price) but also has a driverName (of type string) which allows you to track who is delivering the pizza.

Create a GUI with controls of your choosing or a console class with a main in it. The choice is up to you to create objects of each and test them. This program should allow the user to enter in the values for a SeatedPizzaOrder and the values for a DeliveryPizzaOrder, and after creating an object of each one, it should displays their values (from the created objects) for the user.

_______ END PART 1 ________________________

PART 2
Part 2 is demonstrating polymorphism with classes of different types in an array being processed by a loop.

This program will demonstrate polymorphism and builds on your assignment 1 program. It will allow an array of PizzaOrders of both subclasses….and handle the bills for all of them to be paid all at once polymorphically.

Copy your PizzaOrder, SeatedPizzaOrder, and DeliveryPizzaOrder classes from PART1 into a new project for a C# application with a GUI.

Change your PizzaOrder from the PART 1 to be an abstract class. Make sure it has an abstract message called printBill().

Change your SeatedPizzaOrder class. Make sure it overrides the printBill() method to return a string with all of the information on the bill along with 10% added to the price.

Change your DeliveryPizzaOrder class. Make sure it overrides the printBill() method to return a string with all of the information on the bill along with $4 added to the price as a delivery fee.

Make a GUI program (with controls of your choosing) that has an array of 4 PizzaOrders in it. Include a checkbox (or radio buttons if you prefer) on the form to control whether it is a DeliveryPizzaOrder or not. Include all the screen controls needed to get the information from the user for either type of order and have a button to allow the user to add a PizzaOrder to the array of either type based on the users choice.

Finally, make sure the GUI include controls to allow the user to see the 4 PizzaOrders bills using printBill() polymorphically once they are all entered. Like a button to call it for the array in a loop, which takes the output from printBill() and adds it to a listbbox for each of them in turn as the loop calls it.

_______________END PART 2___________________

[Note: Using 4 orders because having exactly 4 means we can enter exactly the set number and prevent null reference exceptions and still use a loop with a counter. We could have a larger array and check for null values to see where there are no orders, or use an ArrayList or other collection in a real world setting. Having a set number simplifies this program and avoids the null reference error in testing..]

 

 

"Get Help With Your Essay
. If you need assistance with writing your essay, our professional essay writing service is here to help!

Order Now