/** Koen Noens * Examen c++ 28/4/03 */ #include #include #include #define aantal 2 // hier aantal wijzigen !! class Muzikant { protected: char naam[20]; char voornaam[20]; char geboorteplaats[20]; char straat [20]; unsigned huisnr; char gemeente[20]; unsigned postnummer; char instrument[20]; public: Muzikant(); virtual void naarBestand(char * filename) { ofstream bestand(filename, ios::app); bestand << endl << naam << " " << voornaam <<"\tinstrument : " << instrument; }; }; class Professional:public Muzikant { private: float salaris; public: Professional(); void naarBestand(char * filename) { Muzikant::naarBestand(filename); ofstream bestand(filename, ios::app); bestand << "\tstatuut : Professional" << endl; }; }; class Amateur : public Muzikant { private: float percentage; public: Amateur(); void naarBestand(char * filename) { Muzikant::naarBestand(filename); ofstream bestand(filename, ios::app); bestand << "\tstatuut : Amateur" << endl; }; }; Muzikant :: Muzikant() { cout << "naam :\t"; cin.getline(naam,20); cout << "voornaam :\t"; cin.getline(voornaam,20); cout << "straat :\t"; cin.getline(straat, 20); cout <<"nr : \t"; cin >> huisnr; cin.get(); cout << "gemeente :\t"; cin.getline(gemeente, 20); cout << "postnummer :\t"; cin >> postnummer; cin.get(); cout << "instrument :\t"; cin.getline(instrument,20); } Amateur :: Amateur() { int temppercent; cout << "Amateur : percentage tijd ?\t"; cin >> temppercent; percentage = temppercent/100; }; Professional :: Professional() { cout << "Professional : salaris ?\t"; cin >> salaris; }; void main() { cout << "welkom bij het Muzikant Management Systeem\n\n"; Muzikant * sollicitanten[aantal]; char reply = 'm'; // vragen naar welk bestand er moet geschreven worden char bestand[12]; cout << "geef een naam voor het bestand waarin de gegevens opgeslagen moeten worden :\n"; cin.getline(bestand,12); if (!strlen(bestand)) { strcpy(bestand,"orkest.txt"); } //loopje voor meerdere muzikanten for (int i = 0; i < aantal; i++) { //input vragen cout << endl << endl << "Sollicitant " << i << endl; cout << "Professional of Amateur [P, A] ?" << endl; cin>>reply; cin.get(); switch(reply) { case 'P': case 'p': sollicitanten[i] = new Professional; break; case 'A': case 'a': sollicitanten[i] = new Amateur; break; default: cout << "ongeldig. Kies A of P"; //teller terugzetten : nieuwe poging i--; break; }; sollicitanten[i]->naarBestand(bestand); }; cout << endl << endl <<"Thank you for using Muzikant Management Systeem" << endl << endl; }