All pastes #2076922 Raw Edit

Something

public cpp v1 · immutable
#2076922 ·published 2011-06-08 20:34 UTC
rendered paste body
#include <iostream>using namespace std;enum Monat {	Jan,Feb,Mrz,Apr,Mai,Jun,	Jul,Aug,Sep,Okt,Nov,Dez};struct Datum {	short tag;	enum Monat mon;	unsigned int jahr;};enum Art {m,w};struct Person {	string vorname, name;	enum Art geschlecht;	struct Datum geburtsdatum;};void input(Person klasse[], int n){	string vorname, name;	int geschlecht, monat;	short tag;	unsigned int jahr;		for(int i = 0; i < n; i++){		cout << "---" << i+1 << ". SchülerIn---" << endl;		cout << "Vorname: ";		cin >> vorname;		klasse[i].vorname = vorname;		cout << endl;		cout << "Nachname: ";		cin >> name;		klasse[i].name = name;		cout << endl;		cout << "Geschlecht (1 = m 2 = w): ";		cin >> geschlecht;		switch(geschlecht){			case 1: klasse[i].geschlecht = m; break;			case 2: klasse[i].geschlecht = w; break;		}		cout << endl;		cout << "---Geburtsdatum---" << endl;		cout << "Tag: ";		cin >> tag;		klasse[i].geburtsdatum.tag = tag;		cout << endl;		cout << "Monat: ";		cin >> monat;		switch(monat){			case 1: klasse[i].geburtsdatum.mon = Jan; break;			case 2: klasse[i].geburtsdatum.mon = Feb; break;			case 3: klasse[i].geburtsdatum.mon = Mrz; break;			case 4: klasse[i].geburtsdatum.mon = Apr; break;			case 5: klasse[i].geburtsdatum.mon = Mai; break;			case 6: klasse[i].geburtsdatum.mon = Jun; break;			case 7: klasse[i].geburtsdatum.mon = Jul; break;			case 8: klasse[i].geburtsdatum.mon = Aug; break;			case 9: klasse[i].geburtsdatum.mon = Sep; break;			case 10: klasse[i].geburtsdatum.mon = Okt; break;			case 11: klasse[i].geburtsdatum.mon = Nov; break;			case 12: klasse[i].geburtsdatum.mon = Dez; break;		}		cout << endl;		cout << "Jahr: ";		cin >> jahr;		klasse[i].geburtsdatum.jahr = jahr;		cout << endl;	}}void output(Person klasse[], int n){	cout << "---Mädchen---" << endl;	for(int i = 0; i < n; i++){		if(klasse[i].geschlecht == w){			cout << klasse[i].name << ", " << klasse[i].vorname << " geboren " << klasse[i].geburtsdatum.tag << "." << klasse[i].geburtsdatum.mon+1 << "." << klasse[i].geburtsdatum.jahr << endl;		}	}	cout << "---Jungen---" << endl;	for(int i = 0; i < n; i++){		if(klasse[i].geschlecht == m){			cout << klasse[i].name << ", " << klasse[i].vorname << " geboren " << klasse[i].geburtsdatum.tag << "." << klasse[i].geburtsdatum.mon+1 << "." << klasse[i].geburtsdatum.jahr << endl;		}	}}Person * oldest(Person klasse[], int n){	Person * old;	int day, month, year;	day = klasse[0].geburtsdatum.tag;	month = klasse[0].geburtsdatum.mon;	year = klasse[0].geburtsdatum.jahr;	old = &klasse[0];		for(int i = 1; i < n; i++){		if(klasse[i].geburtsdatum.jahr < year){			year = klasse[i].geburtsdatum.jahr;			old = &klasse[i];		}	}	for(int j = 0; j < n; j++){		if(klasse[j].geburtsdatum.jahr == year && klasse[j].geburtsdatum.mon < month){			month = klasse[j].geburtsdatum.mon;			old = &klasse[j];		}	}	for(int k = 0; k < n; k++){		if(klasse[k].geburtsdatum.jahr == year && klasse[k].geburtsdatum.mon == month && klasse[k].geburtsdatum.tag < day){			day = klasse[k].geburtsdatum.tag;			old = &klasse[k];		}	}	return old;}int main(){	const int max = 2;	struct Person klasse[max];		input(klasse, max);	Person *alt = oldest(klasse, max); 	output(klasse, max);		cout << alt->vorname << endl; //vorname der ältesten person ausgeben...}