Naloga utrjevanje Programiranje 2

by c47 on March 28th, 2012
No notes
Syntax: C++
Show lines - Hide lines - Show in textbox - Download
//============================================================================
// 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;
}
 

Leave a Reply

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

Subscribe to this comment feed via RSS