Opdracht
In deze oefening werk je een eenvoudig digitaal winkelmandje uit. Deze applicatie heeft de volgende functionaliteit:
- Bij het opstarten krijgt de gebruiker een multiple-choice menu te zien met de volgende opties:
- a. Product toevoegen
- b. Product verwijderen
- c. Winkelmandje afrekenen
- d. Winkelmandje leegmaken
- e. Winkelmandje tonen
- f. Stoppen
- de gebruiker maakt een keuze uit het menu door de letter in te geven. Deze invoer wordt gevalideerd, dat wil zeggen dat je een foutmelding toont als de gebruiker een ongeldige keuze maakt, maar is niet case-sensitive. Dat wil zeggen dat de gebruiker zowel een kleine als een hoofdletter mag ingeven.
Optie: Product toevoegen
- Indien de gebruiker deze optie kiest wordt deze gevraagd om een product en een prijs in te geven.
- De invoer gebeurt als volgt:
productnaam:prijs
.
- De invoer wordt gevalideerd. De gebruiker krijgt een foutmelding als de invoer niet correct is. De invoer is correct als:
- de invoer bestaat uit 2 delen, gescheiden door een dubbele punt
- het eerste deel is een string die minstens 2 karakters lang is
- het tweede deel is een getal dat groter is dan 0
- Je werkt hiervoor een methode uit die geen parameters heeft maar wel alle functionaliteit bevat van deze optie. De return-waarde van deze methode is een string die voldoet aan de voorwaarden.
Foutmeldingen
- dubbele punt ontbreekt:
De invoer moet bestaan uit 2 delen, gescheiden door een dubbele punt.
- productnaam is te kort:
De productnaam moet minstens 2 karakters lang zijn.
- prijs is niet groter dan 0:
De prijs moet een getal zijn groter dan 0.
Split
Ook voor deze oefening zal je regelmatig gebruik moeten maken van de Split-methode. Je kan deze methode gebruiken om een string op te splitsen in een array van strings. Je kan de Split-methode als volgt gebruiken:
Optie: Product verwijderen
- Indien de gebruiker deze optie kiest wordt deze gevraagd om een product in te geven.
- De invoer gebeurt als volgt:
productnaam
.
- Indien het product bestaat in het winkelmandje wordt het verwijderd. Indien het product niet bestaat wordt een foutmelding getoond:
Het product bestaat niet.
en krijgt de gebruiker opnieuw het menu te zien.
Voor deze functionaliteit moet je geen methode uitwerken.
Optie: Winkelmandje afrekenen
- Indien de gebruiker deze optie kiest wordt de totaalprijs van het winkelmandje getoond.
- De totaalprijs wordt berekend door alle prijzen van de producten in het winkelmandje op te tellen.
- Indien het winkelmandje leeg is wordt een foutmelding getoond:
Het winkelmandje is leeg.
en krijgt de gebruiker opnieuw het menu te zien.
Voor deze functionaliteit werk je een methode uit die als enige parameter de Collection met producten heeft. De return-waarde van deze methode is een double die de totaalprijs bevat. Deze methode wordt enkel uitgevoerd als het winkelmandje niet leeg is.
Optie: Winkelmandje leegmaken
- Indien de gebruiker deze optie kiest wordt het winkelmandje leeggemaakt.
- Je toont een bevestiging aan de gebruiker:
Het winkelmandje is leeggemaakt.
VOor deze functionaliteit moet je geen methode uitwerken.
Optie: Winkelmandje tonen
- Indien de gebruiker deze optie kiest wordt het winkelmandje getoond.
- Indien het winkelmandje leeg is wordt een foutmelding getoond:
Het winkelmandje is leeg.
en krijgt de gebruiker opnieuw het menu te zien.
- Is het winkelmandje niet leeg, dan toon je de producten in het winkelmandje als volgt:
Product |
Prijs |
[productnaam] |
[prijs] |
[productnaam] |
[prijs] |
[productnaam] |
[prijs] |
Totaal |
[totaal] |
Om de totaalprijs te berekenen gebruik je de methode die je hebt uitgewerkt voor de optie “Winkelmandje afrekenen”.
Optie: Stoppen
- Indien de gebruiker deze optie kiest wordt de applicatie gestopt.
Je kan een Console-applicatie stoppen door de methode Environment.Exit(0)
aan te roepen.