1.3-Object-Georienteerd-Programmeren

Horeca

Vandaag willen we dat je een restaurant systeem bouwt waarmee je bestellingen (van klanten) kan registreren. We houden het simpel en richten ons vooral op het bestelproces. Je kunt drankjes en etenswaren bestellen. Ieder te bestellen item op de menukaart heeft een naam en een prijs. Daarnaast moet er van drankjes worden opgeslagen of het alcoholisch is en hoeveel milliliter er in een flesje zit. Van etenswaren slaan we op voor hoeveel personen een portie is en of het een warm of koud gerecht is.

Let op dat je bij het printen van de order een onderscheid maakt tussen drankjes en etenswaren (omdat de ene bestelling naar de bar en de andere naar de keuken moet).

Om je programma te voorzien van wat data hebben wij menuitems.csv meegeleverd met daarin enkele menuitems. Merk goed op dat er in dit csv bestand een onderscheid wordt gemaakt tussen dranken en gerechten.

Nadat je de basis van het programma hebt afgerond dagen we je vooral uit om uitbreidingen te maken op het systeem met eigen (extra) dranksoorten en etenswaren. Deze zouden eenvoudig toe te voegen zijn door middel van inheritance.

Let op: Het klassendiagram laat alleen de overervingsboom zien. Mogelijk wil je nog andere klassen toevoegen om je programmatuur beter te maken.

Voorbeeld

****** Order system ******
* 1) Show menu and place order
* 2) Show entire order 
* 0) Exit!
***************************************
Please make a selection from the menu: 1

*************** Item selector ***************
1) Cafe Creme (€2.75) [alcoholic: false, amount: 250ml]
2) Flesje Appelsap (€2.95) [alcoholic: false, amount: 250ml]
3) Bier van het fust (€5.75) [alcoholic: true, amount: 500ml]
4) Grote reuze pannenkoek (€7.95) [hot: true, for 1 people.]
5) Grote salade (€11.75) [hot: false, for 4 people.]
6) Shoarma pannenkoek (€14.75) [hot: true, for 1 people.]
7) De Noorse pannenkoek (€13.75) [hot: true, for 1 people.]
8) Twee van Dobben-kroketten (€13.75) [hot: true, for 2 people.]
9) Rode port (€3.75) [alcoholic: true, amount: 150ml]
10) Whisky (€4.25) [alcoholic: true, amount: 60ml]
11) Moccachino (€3.0) [alcoholic: false, amount: 175ml]

Please select a value: 4

****** Order system ******
* 1) Show menu and place order
* 2) Show entire order 
* 0) Exit!
***************************************
Please make a selection from the menu: 2
*** Table bill *** 

Food items: 
    Grote reuze pannenkoek (€7.95) [hot: true, for 1 people.]

Drinks: 


The total amount for this order: €7.95


****** Order system ******
* 1) Show menu and place order
* 2) Show entire order 
* 0) Exit!
***************************************
Please make a selection from the menu: 1

*************** Item selector ***************
1) Cafe Creme (€2.75) [alcoholic: false, amount: 250ml]
2) Flesje Appelsap (€2.95) [alcoholic: false, amount: 250ml]
3) Bier van het fust (€5.75) [alcoholic: true, amount: 500ml]
4) Grote reuze pannenkoek (€7.95) [hot: true, for 1 people.]
5) Grote salade (€11.75) [hot: false, for 4 people.]
6) Shoarma pannenkoek (€14.75) [hot: true, for 1 people.]
7) De Noorse pannenkoek (€13.75) [hot: true, for 1 people.]
8) Twee van Dobben-kroketten (€13.75) [hot: true, for 2 people.]
9) Rode port (€3.75) [alcoholic: true, amount: 150ml]
10) Whisky (€4.25) [alcoholic: true, amount: 60ml]
11) Moccachino (€3.0) [alcoholic: false, amount: 175ml]

Please select a value: 2

****** Order system ******
* 1) Show menu and place order
* 2) Show entire order 
* 0) Exit!
***************************************
Please make a selection from the menu: 2
*** Table bill *** 

Food items: 
    Grote reuze pannenkoek (€7.95) [hot: true, for 1 people.]

Drinks: 
    Flesje Appelsap (€2.95) [alcoholic: false, amount: 250ml]


The total amount for this order: €10.90


****** Order system ******
* 1) Show menu and place order
* 2) Show entire order 
* 0) Exit!
***************************************
Please make a selection from the menu: 0

Thank you, please come again