Skip to main content

Aufgabe 2

Schwierigkeitsgrad: Einfach
Themen: Kontrollstrukturen (Switch - Operator, Ternärer Operator) Ein- und Ausgabe Strings

In dieser Übung entwickeln Sie ein einfaches Menüsystem für einen Getränkeautomaten. Der Benutzer soll durch Eingabe einer Zahl ein Getränk auswählen können, woraufhin das Programm den Namen des gewählten Getränks anzeigt.

Schreiben Sie ein C++ -Programm, das dem Benutzer folgende drei Getränke zur Auswahl stellt:

  • Wasser
  • Cola
  • Kaffee

Die Auswahl erfolgt über die Konsole per std::cin. Der Benutzer gibt dabei eine Zahl von 1 bis 3 ein. Mithilfe einer switch-Kontrollstruktur soll das Programm je nach Eingabe den Namen des entsprechenden Getränks ausgeben. Verwenden Sie dazu eine Variable vom Typ std::string (erfordert den Header <string>).

Wird eine Zahl eingegeben, die keiner der verfügbaren Optionen entspricht, soll eine Standardmeldung wie „Ungültige Auswahl“ erscheinen. Nutzen Sie hierfür den default-Fall der switch-Struktur.

Zusätzlich soll das Programm nach der Auswahl anzeigen, ob das gewählte Getränk Koffein enthält. Verwenden Sie hierzu den ternären Operator (? :). Bedenken Sie, dass also z.B. eine Variable vom Typ bool benötigt wird, welche je nach Getränkewahl auf true oder false gesetzt wird.

Hinweise

Ein Header in C++ (z. B. #include <iostream>) ist eine sogenannte Kopfdatei. Diese enthalten wichtige vordefinierte Definitionen und Funktionen, die Sie im Programm verwenden möchten – zum Beispiel std::cout und std::cin für die Ein- und Ausgabe oder std::string für Textvariablen.

Der ternäre Operator eignet sich gut, um auf einfache und übersichtliche Weise zwischen zwei Ausgaben zu unterscheiden – je nachdem, ob z.B. eine Variable vom Typ bool wahr oder falsch ist. Der Syntax sieht so aus:

(Bedingung) ? (Ausgabe wenn wahr) : (Ausgabe wenn falsch)

Arithmetische Operatoren (wie z.B. der Multiplikationsoperator * ) haben eine höhere Priorität als der ternäre Operator. Deshalb empfiehlt es sich, klammern um den gesamten Ausdruck zu setzen.

Dieser Operator ist aber nicht immer klarer als eine einfache If-Anweisung, also sollte er nur sparsam eingesetzt werden. Kommentare nach dem Operator können ggf. die Lesbarkeit deutlich verbessern.