#include #include using namespace std; class Person { private: string vorname; string name; string strasse; unsigned int hausnr; string ort; unsigned int plz; public: Person() {}; void datenErfassen(); void datenAusgeben(); }; void Person::datenErfassen() { cout << "--Datenerfassung--" << endl; cout << "Vorname: "; cin >> vorname; cout << "Nachname: "; cin >> name; cout << "Strasse: "; cin >> strasse; cout << "Hausnummer: "; cin >> hausnr; cout << "PLZ: "; cin >> plz; cout << "Ort: "; cin >> ort; cout << endl << "Person erfasst." << endl; } void Person::datenAusgeben() { cout << vorname << " " << name << endl; cout << strasse << " " << hausnr << endl; cout << plz << " " << ort << endl; } class Buch{ private: string titel; string autor; public: Buch() {}; Buch(string t,string a) : titel(t), autor(a) {}; void datenAusgeben(); }; void Buch::datenAusgeben() { cout << titel << " (von " << autor << ")"; } class Datum{ private: short tag; short monat; unsigned int jahr; public: void datumErfassen(); void datenAusgeben(); void umEinenMonatErhoehen(); }; void Datum::datumErfassen() { cout << "Tag: "; cin >> tag; cout << "Monat: "; cin >> monat; cout << "Jahr: "; cin >> jahr; } void Datum::datenAusgeben() { cout << tag << "." << monat << "." << jahr << endl; } void Datum::umEinenMonatErhoehen() { if(monat == 12) { jahr = jahr+1; monat=(monat%12)+1; } else if(tag == 28 && monat == 2) { tag = 31; monat+=1; } else if(tag <= 28) { monat+=1; } else if(tag > 28 && tag <= 31 && monat == 1) { tag = 28; monat+=1; } else if(tag==31 && monat != 7) { switch (monat) { case 3: case 5: case 8: case 10: { tag=30; monat+=1; break; } } } else if(tag==30) { switch (monat) { case 4: case 6: case 9: case 11: { tag=31; monat+=1; break; } } } else monat+=1; } class Ausleihe { private: Person ausleiher; Buch ausgeliehenesBuch; Datum rueckgabe; bool hat_buch; public: Ausleihe() { hat_buch = false; }; void datenErfassen(Person,Buch,Datum); void datenAusgeben(); void verlaengere(); void zurueckgeben(); bool get_hat_buch(); }; void Ausleihe::datenErfassen(Person p, Buch b, Datum d) { ausleiher = p; ausgeliehenesBuch = b; rueckgabe = d; hat_buch = true; } void Ausleihe::datenAusgeben() { ausleiher.datenAusgeben(); cout << endl << "Ausgeliehenes Buch: "; ausgeliehenesBuch.datenAusgeben(); cout << endl << "Rueckgabe bis: "; rueckgabe.datenAusgeben(); } void Ausleihe::verlaengere() { rueckgabe.umEinenMonatErhoehen(); cout << "Ausleihe um 1 Monat verlaengert." << endl; } void Ausleihe::zurueckgeben() { cout << "Buch "; ausgeliehenesBuch.datenAusgeben(); cout << " wurde zuruckgegeben." << endl; hat_buch = false; } bool Ausleihe::get_hat_buch() { return hat_buch; } int main() { Person p; int auswahl; Buch b[3] = {{"Titel 1", "Autor a"},{"Titel 2", "Autor b"},{"Titel 2", "Autor c"}}; Ausleihe a; Datum d; p.datenErfassen(); system("pause"); do { system("cls"); cout << "--MENUE--" << endl; cout << "[1] Personendaten erfassen" << endl; cout << "[2] Buch ausleihen" << endl; cout << "[3] Ausleihe verlaengern" << endl; cout << "[4] Daten ausgeben" << endl; cout << "[5] Buch zurueckgeben" << endl; cout << "[0] Beenden" << endl; cout << endl << "Auswahl: "; cin >> auswahl; switch(auswahl) { case 1: { system("cls"); p.datenErfassen(); system("pause"); system("cls"); break; } case 2: { system("cls"); if(a.get_hat_buch() == true) { cout << "Ausleihe nicht moeglich. Person hat bereits ein Buch ausgeliehen" << endl; } else { cout << "Welches Buch soll ausgeliehen werden?" << endl; for(int i=0;i<3;i++) { cout << "[" << i+1 << "] "; b[i].datenAusgeben(); cout << endl; } cout << endl << "Auswahl: "; cin >> auswahl; system("cls"); cout << "Bis wann soll das Buch zurueckgegeben werden?" << endl; d.datumErfassen(); a.datenErfassen(p,b[auswahl-1],d); } system("pause"); system("cls"); break; } case 3: { system("cls"); if(a.get_hat_buch() == true) a.verlaengere(); else cout << "Person hat kein Buch ausgeliehen." << endl; system("pause"); system("cls"); break; } case 4: { system("cls"); if(a.get_hat_buch() == true) a.datenAusgeben(); else cout << "Person hat kein Buch ausgeliehen." << endl; system("pause"); system("cls"); break; } case 5: { system("cls"); if(a.get_hat_buch() == true) a.zurueckgeben(); else cout << "Person hat kein Buch ausgeliehen." << endl; system("pause"); system("cls"); break; } case 0: { cout << endl << "Auf Wiedersehen" << endl; return 0; } default: { cout << endl << "Falsche Eingabe!" << endl; system("pause"); } } }while(auswahl!=0); return 0; }