001
16.12.2016, 19:11 Uhr
~Julia_w
Gast
|
C++: |
#include <cstdlib> #include <iostream> #include <string> #include <vector> #include <stdio.h> #include <fstream> #include <string> using namespace std;
class Reservierung { friend class Motorrad; private: string adresse, motorradname; int telefon, gebJahr;
public: string name, vorname; bool fhrschein_A; bool uebergabe; Reservierung() {} // Konstruktormethode mit Elementinitialisierung Reservierung(string motName, string n, string v, string addy, int tele, int born, bool license): motorradname(motName), name(n), vorname(v), adresse(addy), telefon(tele), gebJahr(born), fhrschein_A(license) {} Reservierung(string n, string v, string addy, int tele, int born, bool license): name(n), vorname(v), adresse(addy), telefon(tele), gebJahr(born), fhrschein_A(license) {}
~Reservierung() {} // Destruktor };
class Motorrad:public Reservierung { private:
public: // Default-Konstruktor Motorrad():Reservierung() {} // Konstruktormethode mit Elementinitialisierung Motorrad(string motName, string n, string v, string addy, int tele, int born, bool license): Reservierung(motName, n, v, addy, tele, born, license) {} Motorrad(string n, string v, string addy, int tele, int born, bool license): Reservierung(n, v, addy, tele, born, license) {}
~Motorrad() // Destruktor { cout<<"Reservierung geloescht!"<<endl; //Löschen der Reservierung, bzw. freigeben des Speichers //virtuelle Funktion muss überschrieben werden } void datenausgeben() //schreiben des Reservierungsdaten in reservierung.txt { cout << "Motorrad: " <<motorradname<<": " <<name << ", " << vorname << ", " << adresse << ", " << telefon << " " << endl; cout << "Fuehrerschein Klasse A vorhanden?: " <<fhrschein_A << endl; fstream f; f.open("reservierungen.txt", ios::out | ios::app); f << "Motorrad: " <<motorradname<<": " << name << ", " << vorname << ", " << adresse << ", " << telefon << " " << "Fuehrerschein Klasse A vorhanden?: " <<fhrschein_A <<endl << endl; f.close(); } };
struct Kunde { string name, vorname, adresse; int gebJahr, telefon; bool fhrschein_A, uebergabe; };
void eingabe(struct Kunde *zeiger) { cout<<"Nachame eingeben! "<<endl; cin>>(*zeiger).name; cout<<"Vorname eingeben! "<<endl; cin>>(*zeiger).vorname; cout<<"Adresse eingeben! "<<endl; cin>>(*zeiger).adresse; cout<<"Telefonnummer eingeben! (nur Zahlen!)"<<endl; cin>>(*zeiger).telefon; cout<<"Geburtstag eingeben! [ddmmyy]"<<endl; cin>>(*zeiger).gebJahr; cout<<"Fuehrerschein Klasse A vorhanden? [ja=1 || nein=0]"<<endl; cin>>(*zeiger).fhrschein_A; }
int main(int argc, char *argv[]) { string bikeName[]= {"Suzuki_Bandit", "Honda_TransAlp", "BMW_F_650_GS","Kawasaki_ZZR1400"}; struct Kunde customer[5]; char temp; Motorrad *Suzuki_Bandit=NULL; Motorrad *Honda_TransAlp=NULL; Motorrad *BMW_F_650_GS=NULL; Motorrad *Kawasaki_ZZR1400=NULL; while(1) { cout<<"Hauptmenue \n"<<" 1 Reservierung vornehmen \n"<<" 2 Motorrad herausgeben \n"<<endl; cin>>temp; if(temp=='1') //..wenn Zifferneingabe == 1 { cout<<"Fuer die folgenden Motorraeder die zugehoerigen Ziffern eingeben! \n"<<" 1 Suzuki_Bandit \n 2 Honda_TransAlp \n 3 BMW_F_650_GS \n 4 Kawasaki_ZZR1400 \n"<<endl; char temp2; cin>>temp2; if ((temp2=='1')&&(Suzuki_Bandit==NULL)) { eingabe(&customer[1]); Suzuki_Bandit=new Motorrad(customer[1].name, customer[1].vorname, customer[1].adresse, customer[1].telefon, customer[1].gebJahr, customer[1].fhrschein_A); //Instanz von Motorrad deklarieren Suzuki_Bandit->datenausgeben(); // Aufruf der Funktion datenausgabe() if(Suzuki_Bandit->fhrschein_A==false) { delete Suzuki_Bandit; // wenn keine Führerscheinklasse A vorliegt, Reservierung löschen durch Destruktoraufruf Suzuki_Bandit=NULL; //Objekt mit NULL initialiesieren, also leer cout<<"Kein gueltiger Fuehrerschein"<<endl; } } else if((temp2=='2')&&(Honda_TransAlp==NULL)) { eingabe(&customer[2]); Honda_TransAlp=new Motorrad(customer[2].name, customer[2].vorname, customer[2].adresse, customer[2].telefon, customer[2].gebJahr, customer[2].fhrschein_A); //Instanz von Motorrad deklarieren Honda_TransAlp->datenausgeben(); // Aufruf der Funktion datenausgabe() if(Honda_TransAlp->fhrschein_A==false) { delete Honda_TransAlp; // wenn keine Führerscheinklasse A vorliegt, Reservierung löschen durch Destruktoraufruf Honda_TransAlp=NULL; //Objekt mit NULL initialiesieren, also leer cout<<"Kein gueltiger Fuehrerschein"<<endl; } } else if((temp2=='3')&&(BMW_F_650_GS==NULL)) { eingabe(&customer[3]); BMW_F_650_GS=new Motorrad(customer[3].name, customer[3].vorname, customer[3].adresse, customer[3].telefon, customer[3].gebJahr, customer[3].fhrschein_A); //Instanz von Motorrad deklarieren BMW_F_650_GS->datenausgeben(); // Aufruf der Funktion datenausgabe() if(BMW_F_650_GS->fhrschein_A==false) { delete BMW_F_650_GS; // wenn keine Führerscheinklasse A vorliegt, Reservierung löschen durch Destruktoraufruf BMW_F_650_GS=NULL; //Objekt mit NULL initialiesieren, also leer cout<<"Kein gueltiger Fuehrerschein"<<endl; } } else if((temp2=='4')&&(Kawasaki_ZZR1400==NULL)) { eingabe(&customer[4]); Kawasaki_ZZR1400=new Motorrad(customer[4].name, customer[4].vorname, customer[4].adresse, customer[4].telefon, customer[4].gebJahr, customer[4].fhrschein_A); //Instanz von Motorrad deklarieren Kawasaki_ZZR1400->datenausgeben(); // Aufruf der Funktion datenausgabe() if(Kawasaki_ZZR1400->fhrschein_A==false) { delete Kawasaki_ZZR1400; // wenn keine Führerscheinklasse A vorliegt, Reservierung löschen durch Destruktoraufruf Kawasaki_ZZR1400=NULL; //Objekt mit NULL initialiesieren, also leer cout<<"Kein gueltiger Fuehrerschein"<<endl; } } else cout<<"gewuenschtes Motorrad bereits reserviert. \n"<<endl; } else if (temp=='2') //... wenn Zifferneingabe == 2 { cout<<" 2 Motorrad rausgeben \n \n" <<endl; string temp3, temp4; cout<<"Vorname eingeben \n"<<endl; cin>>temp3; cout<<"Nachname eingeben \n"<<endl; cin>>temp4; if ((temp3==Suzuki_Bandit->vorname) && (temp4==Suzuki_Bandit->name)) //...wenn eingegebener Vorname UND Nachname gleich der Motorrad.name UND Motorrad.vorname { Suzuki_Bandit->uebergabe=true; Suzuki_Bandit=NULL; //Objekt mit NULL initialiesieren, also leer cout<<"Reservierung Suzuki_Bandit geloescht und Motorrad rausgegeben. \n"<<endl;// Reservierung löschen durch Destruktoraufruf //delete Suzuki_Bandit; //Reservierung löschen durch Destruktoraufruf } else if ((temp3==Honda_TransAlp->vorname) && (temp4==Honda_TransAlp->name)) //...wenn eingegebener Vorname UND Nachname gleich der Motorrad.name UND Motorrad.vorname { Honda_TransAlp->uebergabe=true; Honda_TransAlp=NULL; //Objekt mit NULL initialiesieren, also leer cout<<"Reservierung Honda_TransAlp geloescht und Motorrad rausgegeben. \n"<<endl; // Reservierung löschen durch Destruktoraufruf //delete Honda_TransAlp; //Reservierung löschen durch Destruktoraufruf } else if ((temp3==BMW_F_650_GS->vorname) && (temp4==BMW_F_650_GS->name)) //...wenn eingegebener Vorname UND Nachname gleich der Motorrad.name UND Motorrad.vorname { BMW_F_650_GS->uebergabe=true; BMW_F_650_GS=NULL; //Objekt mit NULL initialiesieren, also leer cout<<"Reservierung BMW_F_650_GS geloescht und Motorrad rausgegeben. \n"<<endl;// Reservierung löschen durch Destruktoraufruf //delete BMW_F_650_GS; //Reservierung löschen durch Destruktoraufruf } else if ((temp3==Kawasaki_ZZR1400->vorname) && (temp4==Kawasaki_ZZR1400->name)) //...wenn eingegebener Vorname UND Nachname gleich der Motorrad.name UND Motorrad.vorname { Kawasaki_ZZR1400->uebergabe=true; Kawasaki_ZZR1400=NULL; //Objekt mit NULL initialiesieren, also leer cout<<"Reservierung Kawasaki_ZZR1400 geloescht und Motorrad rausgegeben. \n"<<endl;// Reservierung löschen durch Destruktoraufruf //delete Kawasaki_ZZR1400; //Reservierung löschen durch Destruktoraufruf } else cout<<"Keine Uebereinstimmung von eingegebenen Namen und Reservierung. \n "<<endl; } } system("PAUSE"); return EXIT_SUCCESS; }
|
|