Advertisement
Mite123

3,4,5 Lab 6 oop samo klasite

May 4th, 2020
393
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.84 KB | None | 0 0
  1. 3.NBA
  2. #include <iostream>
  3. #include<cstring>
  4. using namespace std;
  5. class NBAPlayer {
  6. protected:
  7.     char* ImePlayer;
  8.     char TimNaPlayer[50];
  9.     double avgPoints;
  10.     double avgAssists;
  11.     double avgJumps;
  12. public:
  13.     NBAPlayer() {
  14.         this->ImePlayer = new char;
  15.         strcpy(this->TimNaPlayer, "");
  16.         this->avgAssists = 0;
  17.         this->avgPoints = 0;
  18.         this->avgJumps = 0;
  19.     };
  20.     ~NBAPlayer(){
  21. };
  22.     NBAPlayer(const char* name, const char* team, double points, double assists, double jumps) {
  23.         this->ImePlayer = new char[strlen(ImePlayer) + 1];
  24.         strcpy(this->ImePlayer, name);
  25.         strcpy(this->TimNaPlayer, team);
  26.         this->avgPoints = points;
  27.         this->avgAssists = assists;
  28.         this->avgJumps = jumps;
  29.     }
  30.     NBAPlayer(const NBAPlayer& a) {
  31.         this->avgAssists = a.avgAssists;
  32.         this->avgJumps = a.avgJumps;
  33.         this->avgPoints = a.avgPoints;
  34.         this->ImePlayer = new char[strlen(a.ImePlayer) + 1];
  35.         strcpy(this->ImePlayer, a.ImePlayer);
  36.         strcpy(this->TimNaPlayer, a.TimNaPlayer);
  37.     }
  38.     NBAPlayer& operator=(const NBAPlayer& a) {
  39.         this->ImePlayer = new char[strlen(a.ImePlayer) + 1];
  40.         strcpy(this->ImePlayer, a.ImePlayer);
  41.         strcpy(this->TimNaPlayer, a.TimNaPlayer);
  42.         this->avgAssists = a.avgAssists;
  43.         this->avgJumps = a.avgJumps;
  44.         this->avgPoints = a.avgPoints;
  45.         return *this;
  46.     }
  47.     double rating() {
  48.         return (avgPoints * 0.45) + (avgAssists * 0.30) + (avgJumps * 0.25);
  49.     }
  50.     void print() {
  51.         cout << this->ImePlayer << " - " << this->TimNaPlayer << endl;
  52.         cout << "Points: " << this->avgPoints << endl;
  53.         cout << "Assists: " << this->avgAssists << endl;
  54.         cout << "Rebounds: " << this->avgJumps << endl;
  55.         cout << "Rating: " << rating() << endl;
  56.     }
  57. };
  58.  
  59. class AllStarPlayer :public NBAPlayer {
  60. private:
  61.     double avgPoints;
  62.     double avgAssists;
  63.     double avgJumps;
  64. public:
  65.     AllStarPlayer() {
  66.         this->avgAssists = 0.0;
  67.         this->avgPoints = 0.0;
  68.         this->avgJumps = 0.0;
  69.     };
  70.     ~AllStarPlayer(
  71.     ) {};
  72.     AllStarPlayer(NBAPlayer& a, double points, double assists, double jumps) :NBAPlayer(a)
  73.     {
  74.         this->avgPoints = points;
  75.         this->avgAssists = assists;
  76.         this->avgJumps = jumps;
  77.     }
  78.     AllStarPlayer(const char* Ime, const char* Tim, double points, double assists, double jumps, double AllStarPoints, double AllStarAssists, double AllStarJumps) :NBAPlayer(ImePlayer, TimNaPlayer, avgPoints, avgAssists, avgJumps) {
  79.         this->avgPoints = AllStarPoints;
  80.         this->avgAssists = AllStarAssists;
  81.         this->avgJumps = AllStarJumps;
  82.  
  83.     }
  84.     AllStarPlayer(const AllStarPlayer& a) {
  85.         this->avgPoints = a.avgPoints;
  86.         this->avgAssists = a.avgAssists;
  87.         this->avgJumps = a.avgJumps;
  88.     }
  89.     double allStarRating() {
  90.         return (0.3 * avgPoints) + (0.4 * avgAssists) + (0.3 * avgJumps);
  91.     }
  92.     double rating() {
  93.         NBAPlayer::rating();
  94.         allStarRating();
  95.     }
  96.     void print() {
  97.         NBAPlayer::print();
  98.         cout << "All Star Rating: " << allStarRating() << endl;
  99.         cout << "New Rating: ";
  100.         cout<< (NBAPlayer::rating() + allStarRating()) / 2 << endl;
  101.     }
  102. };
  103. 4.Kvadrat i pravoagolnik
  104. #include <iostream>
  105. #include <cstring>
  106. #include <cmath>
  107. using namespace std;
  108. class Kvadrat {
  109. protected:
  110.     //TODO da se deklariraat promenlivite
  111.     double a;
  112. public:
  113.     Kvadrat() {};
  114.    
  115.     //TODO default konstruktor
  116.     Kvadrat(double a) {
  117.         this->a = a;
  118.     }
  119.     //TODO konstruktor so argumenti
  120.     Kvadrat(const Kvadrat& a) {
  121.         this->a = a.a;
  122.     }
  123.     //TODO copy konstruktor
  124.     double perimetar() {
  125.         return 4*a;
  126.     }
  127.  
  128.     //TODO double perimentar() {}
  129.     double plostina() {
  130.         return a * a;
  131.     }
  132.     //TODO double plostina() {}
  133.     void pecati() {
  134.         cout << "Kvadrat so dolzina a=" << this->a << " ima plostina P=" << plostina() << " i perimetar L=" << perimetar() << endl;
  135.     }
  136.     double geta() {
  137.         return a;
  138.     }
  139.     //TODO void pecati();
  140. };
  141.  
  142. class Pravoagolnik:public Kvadrat { //da se vmetni nasleduvanjeto
  143.     //deklariranje na promenlivite
  144.     double x, y;
  145. public:
  146.     //TODO default konstruktor
  147.     Pravoagolnik(const Kvadrat& a, double x = 0, double y = 0) :Kvadrat(a) {
  148.         this->y = geta() + y;
  149.         this->x = geta() + x;
  150.     }
  151.     //TODO konstruktor
  152.    
  153.     Pravoagolnik(double a = 0, double z = 0, double w = 0) {
  154.         this->x = a + z;
  155.         this->y = a + w;
  156.     }
  157.     //Pravoagolnik (const Kvadrat &k, double x, double y)
  158.    
  159.     //TODO copy konstruktor
  160.     double perimetar() {
  161.         if (x == y)
  162.             Kvadrat::perimetar();
  163.         else
  164.         return 2*(x+y);
  165.     }
  166.     double plostina() {
  167.         if (x == y)
  168.             Kvadrat::plostina();
  169.         else
  170.         return x * y;
  171.     }
  172.     void pecati() {
  173.         if (x == y) {
  174.             a = x;
  175.             Kvadrat::pecati();
  176.         }
  177.         else
  178.             cout << "Pravoagolnik so strani: " << x << " i " << y << " ima plostina P=" << plostina()<< " i perimetar L=" << perimetar()<< endl;
  179.        
  180.      }
  181.  
  182.     //TODO prepokrivanje na metodite perimetar, plostina i pecati od klasata Kvadrat
  183. };
  184. 5.Moj termin
  185. #include <iostream>
  186. #include <cstring>
  187.  
  188. using namespace std;
  189. class Lekar {
  190. protected:
  191.     int FaksimilNaDoc;
  192.     char Ime[10];
  193.     char Prezime[11];
  194.     double PocetnaPlata;
  195. public:
  196.     Lekar() {};
  197.     ~Lekar() {};
  198.     Lekar(int FaksiMil, char* Ime, char* Prezime, double PocetnaPlata) {
  199.         this->FaksimilNaDoc = FaksiMil;
  200.         strcpy(this->Ime, Ime);
  201.         strcpy(this->Prezime, Prezime);
  202.         this->PocetnaPlata = PocetnaPlata;
  203.     }
  204.     void pecati() {
  205.         cout << this->FaksimilNaDoc << ": " << this->Ime << " " << this->Prezime << endl;
  206.     }
  207.     double plata() {
  208.         return PocetnaPlata;
  209.     }
  210. };
  211. class MaticenLekar :public Lekar {
  212. private:
  213.     int brPacienti;
  214.     double* KotizaciaOdPacienti = new double;
  215. public:
  216.     MaticenLekar() {
  217.         this->brPacienti = 0;
  218.        
  219.     };
  220.     ~MaticenLekar() {};
  221.     MaticenLekar(Lekar& Lekari, int brPacienti, double *KotizacijaPacient):Lekar(Lekari) {
  222.         this->KotizaciaOdPacienti = new double[sizeof(KotizaciaOdPacienti) + 1];
  223.         this->brPacienti = brPacienti;
  224.         for (int i = 0; i < brPacienti; i++) {
  225.             this->KotizaciaOdPacienti[i] = KotizacijaPacient[i];
  226.         }
  227.     }
  228.    
  229.  
  230.     void pecati() {
  231.        
  232.         Lekar::pecati();
  233.         double naplateniKotizacii = 0;
  234.         for (int i = 0; i < brPacienti; i++) {
  235.             naplateniKotizacii += KotizaciaOdPacienti[i];
  236.             }
  237.         cout << "Prosek na kotizacii: " << naplateniKotizacii / brPacienti << endl;
  238.     }
  239.     double plata() {
  240.         double naplateniKotizacii = 0;
  241.         for (int i = 0; i < brPacienti; i++) {
  242.             naplateniKotizacii += KotizaciaOdPacienti[i];
  243.         }
  244.         return Lekar::PocetnaPlata + naplateniKotizacii/brPacienti*0.3;
  245.     }
  246. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement