- FTIMS http://www.ftims.pun.pl/index.php - Programowanie obiektowe http://www.ftims.pun.pl/viewforum.php?id=27 - grupa 2 gadające owoce http://www.ftims.pun.pl/viewtopic.php?id=91 |
adamb156 - 19-11-2012 15:59:26 |
Jakby komuś się przydało to to jest uml od gadających owoców: Kod:#ifndef KOSZ_H #define KOSZ_H #include "owoc.h" #include <vector> using namespace std; class Kosz { private: vector<Owoc*> Owoce; public: Kosz(); void dodajOwoc(Owoc* owocek); void przedstawOwoce(); void podajWage(); }; #endif // KOSZ_H kosz.cpp: Kod:#include "kosz.h" Kosz::Kosz() { } void Kosz::dodajOwoc(Owoc* owocek) { this->Owoce.push_back(owocek); } void Kosz::przedstawOwoce() { for(int i=0; i<this->Owoce.size();i++) { this->Owoce.at(i)->przedstawSie(); cout<<endl; } } void Kosz::podajWage() { double Waga_kosza; for(int i=0; i<this->Owoce.size();i++) { Waga_kosza+=this->Owoce.at(i)->zwazOwoc(); } cout<<"Owoce w koszyku waza razem "<<Waga_kosza<<" kg."; } owoc.h: Kod:#ifndef OWOC_H #define OWOC_H #include <stdio.h> #include <cstdlib> #include <string> #include <iostream> using namespace std; class Owoc { private: double waga; string Nazwa; public: Owoc(double weight); void virtual przedstawSie()=0; double zwazOwoc(); }; #endif // OWOC_H owoc.cpp: Kod:#include "owoc.h" Owoc::Owoc(double weight) { this->waga=weight; } void Owoc::przedstawSie() { cout<<this->Nazwa; } double Owoc::zwazOwoc() { return this->waga; } jablko.h: Kod:#ifndef JABLKO_H #define JABLKO_H #include "owoc.h" class Jablko: public Owoc { public: Jablko(double weight); virtual void przedstawSie(); }; #endif // JABLKO_H jablko.cpp: Kod:#include "jablko.h" Jablko::Jablko(double weight): Owoc(weight) { this->Nazwa="jabluszkiem"; } void Jablko::przedstawSie() { cout<<"jestem "<<this->Nazwa; } gruszka.h: Kod:#ifndef GRUSZKA_H #define GRUSZKA_H #include "owoc.h" class Gruszka: public Owoc { public: Gruszka(double weight); void przedstawSie(); }; #endif // GRUSZKA_H gruszka.cpp: Kod:#include "gruszka.h" Gruszka::Gruszka(double weight): Owoc(weight) { this->Nazwa="gruszeczka"; } void Gruszka::przedstawSie() { cout<<"jestem "<<this->Nazwa; } antonowka.h: Kod:#ifndef ANTONOWKA_H #define ANTONOWKA_H #include "jablko.h" class Antonowka: public Jablko { public: Antonowka(double weight); void przedstawSie(); }; #endif // ANTONOWKA_H antonowka.cpp: Kod:#include "antonowka.h" Antonowka::Antonowka(double weight): Jablko(weight) { } void Antonowka::przedstawSie() { Jablko::przedstawSie(); cout<<" ale najlepszym"; } no i na koniec main.cpp: Kod:#include <stdio.h> #include "kosz.h" #include "owoc.h" #include "jablko.h" #include "gruszka.h" #include "antonowka.h" int main(void) { Kosz kosz; Gruszka *gruszka1=new Gruszka(0.25); Gruszka *gruszka2=new Gruszka(0.25); Jablko *jablko1=new Jablko(0.25); Antonowka *antonowka1=new Antonowka(0.25); kosz.dodajOwoc(gruszka1); kosz.dodajOwoc(gruszka2); kosz.dodajOwoc(jablko1); kosz.dodajOwoc(antonowka1); kosz.przedstawOwoce(); kosz.podajWage(); } Program działa mogą być jakieś zbędne includy tam ale to już sobie znajdźcie :P |
afro_samuray_benG - 01-12-2012 20:23:00 |
według mnie tak łatwiej, tyle że print powinnienem zrobić z owoców ale juz mi się nie chce zmieniać :D |