Naloga utrjevanje Programiranje 2

by c47 on March 28th, 2012
No notes
Syntax: C++
Show lines - Hide lines - Show in textbox - Download
  1. //============================================================================
  2. // Name : Naloga_utrjevanje1.cpp
  3. // Author : Gregor Hann
  4. // Version :
  5. // Copyright : school stuff
  6. // Description : Hello World in C++, Ansi-style
  7. //============================================================================
  8.  
  9. #include <iostream>
  10. using namespace std;
  11.  
  12. class DruzinskiClan {
  13. private:
  14. string ime;
  15. int leto_rojstva;
  16. string funkcija;
  17. bool jeGlasbenik;
  18.  
  19. public:
  20. DruzinskiClan() {
  21. this->ime = "";
  22. this->leto_rojstva = 0;
  23. this->funkcija = "";
  24. this->jeGlasbenik = false;
  25. }
  26.  
  27. DruzinskiClan(const DruzinskiClan * dc) {
  28. this->ime = dc->ime;
  29. this->leto_rojstva = dc->leto_rojstva;
  30. this->funkcija = dc->funkcija;
  31. this->jeGlasbenik = dc->jeGlasbenik;
  32. }
  33.  
  34. void setIme(const string ime) { this->ime = ime; }
  35. void setLeto_rojstva(const int leto_rojstva) { this->leto_rojstva = leto_rojstva; }
  36. void setFunkcija(const string funkcija) { this->funkcija = funkcija; }
  37. void setJeGlasbenik(const bool jeGlasbenik) { this->jeGlasbenik = jeGlasbenik; }
  38.  
  39. string getIme() const { return ime; }
  40. int getLeto_rojstva() const { return leto_rojstva; }
  41. string getFunkcija() const { return funkcija; }
  42. bool getJeGlasbenik() const { return jeGlasbenik; }
  43. };
  44.  
  45. class Druzina {
  46. private:
  47. string priimek;
  48. DruzinskiClan * polje_clanov[10];
  49. int stevec;
  50. public:
  51. Druzina() {
  52. this->priimek = "";
  53. this->stevec = 0;
  54. }
  55.  
  56. Druzina(string priimek) {
  57. this->priimek = priimek;
  58. this->stevec = 0;
  59. }
  60.  
  61. void dodajClana(DruzinskiClan * a) {
  62. if (this->stevec < 10) {
  63. this->polje_clanov[this->stevec] = a;
  64.  
  65. this->stevec++;
  66. }
  67. }
  68.  
  69. void dodajClana(string i, int l, string f, bool j) {
  70. if (this->stevec < 10) {
  71. this->polje_clanov[this->stevec] = new DruzinskiClan;
  72.  
  73. this->polje_clanov[this->stevec]->setIme(i);
  74. this->polje_clanov[this->stevec]->setLeto_rojstva(l);
  75. this->polje_clanov[this->stevec]->setFunkcija(f);
  76. this->polje_clanov[this->stevec]->setJeGlasbenik(j);
  77.  
  78. this->stevec++;
  79. }
  80. }
  81.  
  82. int stOtrok() {
  83. int stOtrok = 0;
  84.  
  85. for (int i=0; i<this->stevec; i++)
  86. if ((this->polje_clanov[i])->getFunkcija() == "otrok")
  87. stOtrok++;
  88.  
  89. return stOtrok;
  90. }
  91.  
  92. int stClanov() const {
  93. return this->stevec;
  94. }
  95.  
  96. int steviloGlasbenikov() {
  97. int stGlasbenikov = 0;
  98.  
  99. for (int i=0; i<this->stevec; i++)
  100. if ((this->polje_clanov[i])->getJeGlasbenik() == true)
  101. stGlasbenikov++;
  102.  
  103. return stGlasbenikov;
  104. }
  105. };
  106.  
  107.  
  108. int main() {
  109. DruzinskiClan * c1 = new DruzinskiClan;
  110. c1->setIme("Marko");
  111. c1->setLeto_rojstva(1990);
  112. c1->setFunkcija("otrok");
  113. c1->setJeGlasbenik(false);
  114.  
  115. DruzinskiClan * c2 = new DruzinskiClan;
  116. c2->setIme("Brigita");
  117. c2->setLeto_rojstva(1970);
  118. c2->setFunkcija("mama");
  119. c2->setJeGlasbenik(false);
  120.  
  121. DruzinskiClan * c3 = new DruzinskiClan;
  122. c3->setIme("Tone");
  123. c3->setLeto_rojstva(1971);
  124. c3->setFunkcija("oce");
  125. c3->setJeGlasbenik(false);
  126.  
  127. DruzinskiClan * c4 = new DruzinskiClan;
  128. c4->setIme("Pepca");
  129. c4->setLeto_rojstva(1940);
  130. c4->setFunkcija("babica");
  131. c4->setJeGlasbenik(true);
  132.  
  133. // uporaba kopirnega konstruktorja
  134. DruzinskiClan * c5 = new DruzinskiClan(c4);
  135. c5->setIme("Pepi");
  136. c5->setFunkcija("dedek");
  137.  
  138. Druzina * d1 = new Druzina("Novakovi");
  139.  
  140. d1->dodajClana(c1);
  141. d1->dodajClana(c2);
  142. d1->dodajClana(c3);
  143. d1->dodajClana(c4);
  144. d1->dodajClana(c5);
  145.  
  146. cout << "Stevilo clanov: " << d1->stClanov() << endl;
  147. cout << "Stevilo otrok: " << d1->stOtrok() << endl;
  148. cout << "Stevilo glasbenikov: " << d1->steviloGlasbenikov() << endl << endl;
  149.  
  150. d1->dodajClana("Sara", 2012, "otrok", false);
  151.  
  152. cout << "Stevilo clanov: " << d1->stClanov() << endl;
  153. cout << "Stevilo otrok: " << d1->stOtrok() << endl;
  154. cout << "Stevilo glasbenikov: " << d1->steviloGlasbenikov() << endl;
  155.  
  156. return 0;
  157. }
  158.  

Leave a Reply

Note: XHTML is allowed. Your email address will never be published.

Subscribe to this comment feed via RSS