Hallo,
bin noch ein C++ Anfänger und hoffe das ich hier richtig bin mit meiner Frage.
Habe ein Programm geschrieben (der Code kommt weiter unten) das mir in der Funktion "Verkauf" über die If- Anweisung einfach rüberläuft ohne sie auszuführen, obwohl die Bedingung eintritt um sie auszuführen (If-Anweisung ist im Code mit rot Makiert).
Hoffe es kann mir jemand helfen und hier jetzt mein Code:
Grüße
Sindbad
bin noch ein C++ Anfänger und hoffe das ich hier richtig bin mit meiner Frage.
Habe ein Programm geschrieben (der Code kommt weiter unten) das mir in der Funktion "Verkauf" über die If- Anweisung einfach rüberläuft ohne sie auszuführen, obwohl die Bedingung eintritt um sie auszuführen (If-Anweisung ist im Code mit rot Makiert).
Hoffe es kann mir jemand helfen und hier jetzt mein Code:
Code:
#include <iostream> using namespace std; #define ANZAHL1 10 #define ANZAHL2 5 struct Auto { char firma[20]; char model[20]; int anzahl; double preis; int bestnr; }; struct Kunde { char name[30]; char vorname[20]; char strasse[30]; int hausnr; int plz; char stadt[30]; int tele; int bestnr[ANZAHL2]; int anzBestnr; }; int anzKunden = 0; int anzAuto = 0; void menue(struct Auto *s_auto, struct Kunde *s_kunde); void AnKunde(struct Kunde *s_kunde); void AnAuto(struct Auto *s_auto); void Verkauf(struct Auto *s_auto, struct Kunde *s_kunde); void AusKunde(struct Kunde *s_kunde, struct Auto *s_auto); void AusAuto(struct Auto *s_auto); int ausAuto(int bestnr, struct Auto *s_auto); int main() { Auto s_auto[ANZAHL1]; Kunde s_kunde[ANZAHL1]; menue(s_auto, s_kunde); system("Pause"); return (0); } void menue(struct Auto *s_auto, struct Kunde *s_kunde) { int auswahl; do { cout << "****************************" << endl; cout << "** (1) Kunde anlegen **" << endl; cout << "** (2) Fahrzeug anlegen **" << endl; cout << "** (3) Fahrzeug verkauft **" << endl; cout << "** (4) Kunden ausgeben **" << endl; cout << "** (5) Fahrzeuge ausgeben **" << endl; cout << "** (6) Programm Beenden **" << endl; cout << "****************************" << endl; cout << "Auswahl: "; cin >> auswahl; cout << endl << endl; switch (auswahl) { case 1: { AnKunde(s_kunde); } break; case 2: { AnAuto(s_auto); } break; case 3: { Verkauf(s_auto, s_kunde); } break; case 4: { AusKunde(s_kunde, s_auto); } break; case 5: { AusAuto(s_auto); } break; case 6: { cout << "Programm wird Beendet!" << endl << endl; } break; default: { cout << "Menuepunkt nicht vorhanden!!" << endl << endl; } } } while (auswahl != 6); } void AnKunde(struct Kunde *s_kunde) { if (anzKunden < ANZAHL1) { cout << "**** Erfassung der Kundendaten ****" << endl << endl; cout << "Vorname: "; cin.clear(); cin.sync(); cin.getline(s_kunde[anzKunden].vorname, 20); cout << endl; cout << "Nachname: "; cin.clear(); cin.sync(); cin.getline(s_kunde[anzKunden].name, 30); cout << endl; cout << "Strasse: "; cin.clear(); cin.sync(); cin.getline(s_kunde[anzKunden].strasse, 30); cout << endl; cout << "Hausnummer: "; cin >> s_kunde[anzKunden].hausnr; cout << endl; cout << "Postleitzahl: "; cin >> s_kunde[anzKunden].plz; cout << endl; cout << "Stadt: "; cin >> s_kunde[anzKunden].stadt; cout << endl; cout << "Telefonnummer: "; cin >> s_kunde[anzKunden].tele; cin.clear(); cin.sync(); cout << endl << endl; s_kunde[anzKunden].anzBestnr = 0; anzKunden++; } else { cout << "Sie haben die Maximale Anzahl an Kunden schon eingegeben!" << endl << endl; } } void AnAuto(struct Auto *s_auto) { if (anzAuto < ANZAHL1) { cout << "**** Erfassung der Fahrzeugdaten ****" << endl << endl; cout << "Fabrikat/Firma: "; cin.clear(); cin.sync(); cin.getline(s_auto[anzAuto].firma, 20); cout << endl; cout << "Model: "; cin.clear(); cin.sync(); cin.getline(s_auto[anzAuto].model, 20); cout << endl; cout << "Anzahl: "; cin >> s_auto[anzAuto].anzahl; cout << endl; cout << "Preis: "; cin >> s_auto[anzAuto].preis; cout << endl; cout << "Bestellnummer: "; cin >> s_auto[anzAuto].bestnr; cout << endl << endl; cin.clear(); cin.sync(); anzAuto++; } else { cout << "Sie haben die Maximale Anzahl von Autos schon eingegeben!" << endl << endl; } } void Verkauf(struct Auto *s_auto, struct Kunde *s_kunde) { int bestnr = 0; int pos = 0; char firma[20]; char model[20]; char name[30]; char vorname[20]; cout << "**** Fahrzeug verkauf ****" << endl << endl; cout << "Fabrikat/Firma: "; cin.clear(); cin.sync(); cin.getline(firma, 20); cout << endl; cout << "Model: "; cin.clear(); cin.sync(); cin.getline(model, 20); cout << endl << endl; for (int i=0; i < anzAuto; i++) { if (s_auto[i].firma == firma && s_auto[i].model == model) { if (s_auto[i].anzahl > 0) { bestnr = s_auto[i].bestnr; s_auto[i].anzahl--; } else { cout << "Kein Fahrzeug von dieser Marke mehr vorhanden!" << endl << endl; bestnr = -1; } } } if (bestnr == 0) { cout << "Fahrzeug nicht im Sortiement" << endl << endl; } else if (bestnr > 0) { cout << "Name des Kunden: "; cin.clear(); cin.sync(); cin.getline(name, 30); cout << endl; cout << "Vorname des Kunden: "; cin.clear(); cin.sync(); cin.getline(vorname, 20); for (int i=0; i < anzKunden; i++) { if (s_kunde[i].name == name && s_kunde[i].vorname == vorname) { if (s_kunde[i].anzBestnr <= (ANZAHL2 - 1)) { s_kunde[i].bestnr[s_kunde[i].anzBestnr] = bestnr; s_kunde[i].anzBestnr++; cout << "Der Kunde " << name << ", " << vorname << "erwarb das Fahrzeug " << endl; cout << model << " von der Firma " << firma << ". Herzlichen Glückwunsch!!" << endl << endl; } else { cout << "Kein verkauf an den Kunden mehr möglich!" << endl << endl; } } } } } void AusKunde(struct Kunde *s_kunde, struct Auto *s_auto) { cout << "**** Ausgabe aller Kundendaten ****" << endl << endl; for (int i=0; i<anzKunden; i++) { cout << "Name: " << s_kunde[i].name << endl; cout << "Vorname: " << s_kunde[i].vorname << endl; cout << "Strasse: " << s_kunde[i].strasse << endl; cout << "Hausnummer: " << s_kunde[i].hausnr << endl; cout << "Postleitzahl: " << s_kunde[i].plz << endl; cout << "Stadt: " << s_kunde[i].stadt << endl; cout << "Telefonnummer: " << s_kunde[i].tele << endl; if (s_kunde[i].anzBestnr > 0) { int x=0; for (int j=0; j<s_kunde[i].anzBestnr; j++) { cout << "Bestellung " << j+1 << ": "; x = ausAuto(s_kunde[i].bestnr[j], s_auto); cout << s_auto[x].firma << " " << s_auto[x].model; cout << endl; } } else { cout << "Kunde hat noch keinen Einkauf bei ihnen getaetigt." << endl; } cout << endl; } } void AusAuto(struct Auto *s_auto) { cout << "**** Anzeige aller Fahrzeuge im Sortiement ****" << endl << endl; if (anzAuto == 0) { cout << "Kein Fahrzeug vorhanden" << endl << endl; } else { for (int i=0; i<anzAuto; i++) { cout << "Fabrikat/Firma: " << s_auto[i].firma << endl; cout << "Model: " << s_auto[i].model << endl; cout << "Preis: " << s_auto[i].preis << " Euro" << endl; cout << "Bestellnummer: " << s_auto[i].bestnr << endl; cout << "Anzahl: " << s_auto[i].anzahl << endl; } } } int ausAuto(int bestnr, struct Auto *s_auto) { int j=0; for (int i=0; i<anzAuto; i++) { if(s_auto[i].bestnr == bestnr) { j = i; } } return (j); }
Sindbad
Comment