C/C++ Programmierung
Aufgabe 40
Erstellen Sie eine Kopie von Aufgabe 36 und modifizieren Sie es wie folgt:
Deklarieren Sie eine Variable lager, die ein Feld von maximal 50 Artikeln darstellt. Das Programm fordert den Benutzer dann auf, ein Kommando einzugeben. Die Kommandos bestehen aus einem Buchstaben.
E für Eingabe eines neuen Artikels
L für die Ausgabe einer Liste aller Artikel
X beendet das Programm
Lösung für die Aufgabe
#include <fstream.h>
// Konstante für die maximale Anzahl von Artikeln
const int MAX_ARTIKEL = 50;
// Artikel-Struktur definieren
struct artikel
{
char name[100];
int anzahl;
float preis;
};
// Funktion zum Einlesen der Artikel
void cinartikel(struct artikel *artikel)
{
cout << "Artikeleingabe" << endl;
cout << "Name: ";
cin >> artikel->name;
cout << "Wie viele: ";
cin >> artikel->anzahl;
cout << "Wie teuer: ";
cin >> artikel->preis;
}
// Funktion zum Anzeigen der Artikel
void coutartikel(struct artikel *artikel)
{
cout << artikel->anzahl << " " << artikel->name << " zu je " << artikel->preis << " DM, Gesamtwert: " << artikel->anzahl * artikel->preis << " DM" << endl;
}
// Header anzeigen und Zeichen einlesen
char befehlseingabe()
{
char zeichen;
cout << endl << "Befehle:" << endl;
cout << " E = Eingabe eines neuen Artikels" << endl;
cout << " L = Ausgabe einer Liste aller Artikel" << endl;
cout << " X = Programm beenden" << endl << endl;
cout << "Bitte Befehl eingeben: " << endl;
cin >> zeichen;
return zeichen;
}
// Start des Hauptprogrammes
main()
{
// Variablen deklarieren
struct artikel lager[MAX_ARTIKEL]; // Alle Artikel im Lager
char zeichen; // Wird für die Befehle benötigt
int max = 0; // Anzahl der verschiedenen Artikel
// Hauptroutine
zeichen = befehlseingabe();
while (zeichen != 'X' && zeichen != 'x')
{
switch (zeichen)
{
case 'E': // Eingabe eines neuen Artikels
case 'e':
if (max < MAX_ARTIKEL)
{
cinartikel(&lager[max]);
max++;
}
else
cout << "Es können keine weiteren Artikel hinzugefügt werden." << endl;
break;
case 'L': // Ausgabe einer Liste mit allen Artikeln
case 'l':
if (max == 0)
cout << "Es sind keine Artikel verfügbar." << endl;
else
{
for (int i = 0; i < max; i++)
coutartikel(&lager[i]);
}
break;
}
// Neuen Befehl einlesen
zeichen = befehlseingabe();
}
}
Zurück zur Übersicht