// Übung 3 - Aufgabe C (Strukture: Person, Geburtstag) // g++ -Wno-deprecated u3C.cc #include #include main() { const int LNAME = 50; // max. Laenge eines Namens struct datum // Datensatz fuer das Datum { int tag, monat, jahr; }; struct person // Datensatz fuer eine Person { char name[LNAME]; datum geburtstag; float gehalt; }; person A, B; // die zwei Vergleichspersonen bool equ_old, a_older, // Sind A u. B glecich alt? Ist A aelter? a_mehr; // Hat A mehr Gehalt? datum da,db; // temp. Datumsvariablen // Einlesen der Daten fuer A cout << endl; cout << "Person A: " << endl; cout << " name : "; cin >> A.name; cout << " Geburtstag tt mm jjjj : "; cin >> A.geburtstag.tag >> A.geburtstag.monat >> A.geburtstag.jahr; cout << " Gehalt : "; cin >> A.gehalt; // Einlesen der Daten fuer B cout << endl; cout << "Person B: " << endl; cout << " name : "; cin >> B.name; cout << " Geburtstag tt mm jjjj : "; cin >> B.geburtstag.tag >> B.geburtstag.monat >> B.geburtstag.jahr; cout << " Gehalt : "; cin >> B.gehalt; cout << endl << endl; // // Ausgabe der Daten von A // // cout << endl; // cout << A.name << " geb. am " // << A.geburtstag.tag << "." << A.geburtstag.monat << ". " << A.geburtstag.jahr << endl; // cout << " hat ein Gehalt von " << A.gehalt << " Goldtalern" << endl; // cout << endl; // // Vergleich des Alters // da = A.geburtstag; db = B.geburtstag; // temp. Var. erleichtern Lesbarkeit equ_old = false; // Normalfall: A,B sind nicht gleichalt if ( da.jahr != db.jahr ) { a_older = ( da.jahr < db.jahr ); } else if ( da.monat != db.monat ) // Gleiches Jahr ==> weiter mit Monat { a_older = ( da.monat < db.monat ); } else if ( da.tag != db.tag ) // Gleicher Monat ==> weiter mit Tag { a_older = ( da.tag < db.tag ); } else // bleibt bloss noch gleicher Geburtstag uebrig { equ_old = true; } // // Ausgabe Altersvergleich // cout << A.name << " ist "; if (equ_old) { cout << "gleichaltrig mit "; } else { if (a_older) { cout << "aelter "; } else { cout << "juenger "; } cout << "als "; } cout << B.name << endl << endl; // // Vergleich des Gehalts // a_mehr = ( A.gehalt >= B.gehalt ); // // Ausgabe Gehaltsvergleich // cout << A.name << " hat "; if (a_mehr) { cout << "mind. soviel Gehalt wie "; } else { cout << "weniger Gehalt als "; } cout << B.name << endl << endl; }