Naloga utrjevanje Programiranje 2
No notes
Syntax:
C++
//============================================================================ // Name : Naloga_utrjevanje1.cpp // Author : Gregor Hann // Version : // Copyright : school stuff // Description : Hello World in C++, Ansi-style //============================================================================ #include <iostream> using namespace std; class DruzinskiClan { private: string ime; int leto_rojstva; string funkcija; bool jeGlasbenik; public: DruzinskiClan() { this->ime = ""; this->leto_rojstva = 0; this->funkcija = ""; this->jeGlasbenik = false; } DruzinskiClan(const DruzinskiClan * dc) { this->ime = dc->ime; this->leto_rojstva = dc->leto_rojstva; this->funkcija = dc->funkcija; this->jeGlasbenik = dc->jeGlasbenik; } void setIme(const string ime) { this->ime = ime; } void setLeto_rojstva(const int leto_rojstva) { this->leto_rojstva = leto_rojstva; } void setFunkcija(const string funkcija) { this->funkcija = funkcija; } void setJeGlasbenik(const bool jeGlasbenik) { this->jeGlasbenik = jeGlasbenik; } string getIme() const { return ime; } int getLeto_rojstva() const { return leto_rojstva; } string getFunkcija() const { return funkcija; } bool getJeGlasbenik() const { return jeGlasbenik; } }; class Druzina { private: string priimek; DruzinskiClan * polje_clanov[10]; int stevec; public: Druzina() { this->priimek = ""; this->stevec = 0; } Druzina(string priimek) { this->priimek = priimek; this->stevec = 0; } void dodajClana(DruzinskiClan * a) { if (this->stevec < 10) { this->polje_clanov[this->stevec] = a; this->stevec++; } } void dodajClana(string i, int l, string f, bool j) { if (this->stevec < 10) { this->polje_clanov[this->stevec] = new DruzinskiClan; this->polje_clanov[this->stevec]->setIme(i); this->polje_clanov[this->stevec]->setLeto_rojstva(l); this->polje_clanov[this->stevec]->setFunkcija(f); this->polje_clanov[this->stevec]->setJeGlasbenik(j); this->stevec++; } } int stOtrok() { int stOtrok = 0; for (int i=0; i<this->stevec; i++) if ((this->polje_clanov[i])->getFunkcija() == "otrok") stOtrok++; return stOtrok; } int stClanov() const { return this->stevec; } int steviloGlasbenikov() { int stGlasbenikov = 0; for (int i=0; i<this->stevec; i++) if ((this->polje_clanov[i])->getJeGlasbenik() == true) stGlasbenikov++; return stGlasbenikov; } }; int main() { DruzinskiClan * c1 = new DruzinskiClan; c1->setIme("Marko"); c1->setLeto_rojstva(1990); c1->setFunkcija("otrok"); c1->setJeGlasbenik(false); DruzinskiClan * c2 = new DruzinskiClan; c2->setIme("Brigita"); c2->setLeto_rojstva(1970); c2->setFunkcija("mama"); c2->setJeGlasbenik(false); DruzinskiClan * c3 = new DruzinskiClan; c3->setIme("Tone"); c3->setLeto_rojstva(1971); c3->setFunkcija("oce"); c3->setJeGlasbenik(false); DruzinskiClan * c4 = new DruzinskiClan; c4->setIme("Pepca"); c4->setLeto_rojstva(1940); c4->setFunkcija("babica"); c4->setJeGlasbenik(true); // uporaba kopirnega konstruktorja DruzinskiClan * c5 = new DruzinskiClan(c4); c5->setIme("Pepi"); c5->setFunkcija("dedek"); Druzina * d1 = new Druzina("Novakovi"); d1->dodajClana(c1); d1->dodajClana(c2); d1->dodajClana(c3); d1->dodajClana(c4); d1->dodajClana(c5); cout << "Stevilo clanov: " << d1->stClanov() << endl; cout << "Stevilo otrok: " << d1->stOtrok() << endl; cout << "Stevilo glasbenikov: " << d1->steviloGlasbenikov() << endl << endl; d1->dodajClana("Sara", 2012, "otrok", false); cout << "Stevilo clanov: " << d1->stClanov() << endl; cout << "Stevilo otrok: " << d1->stOtrok() << endl; cout << "Stevilo glasbenikov: " << d1->steviloGlasbenikov() << endl; return 0; }