MikiStrail

ООП Лаб 6

Apr 22nd, 2019
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.74 KB | None | 0 0
  1. 1. Недвижнина
  2. #include <iostream>
  3. #include <cstring>
  4.  
  5. using namespace std;
  6.  
  7.  
  8. class Nedviznina {
  9. protected:
  10.     char *adresa;
  11.     int kvadratura;
  12.     int cena;
  13.     void copy(const Nedviznina &n) {
  14.         adresa = new char[strlen(n.adresa) + 1];
  15.         strcpy(adresa, n.adresa);
  16.         kvadratura = n.kvadratura;
  17.         cena = n.cena;
  18.     }
  19. public:
  20.     Nedviznina(char *adresa = "", int kvadratura = 0, int cena = 0) {
  21.         this->adresa = new char[strlen(adresa) + 1];
  22.         strcpy(this->adresa, adresa);
  23.         this->kvadratura = kvadratura;
  24.         this->cena = cena;
  25.     }
  26.     Nedviznina(const Nedviznina &n) { copy(n); }
  27.  
  28.     Nedviznina& operator=(const Nedviznina &n) {
  29.         if (this != &n)
  30.             copy(n);
  31.         return *this;
  32.     }
  33.     ~Nedviznina() { delete [] adresa; }
  34.  
  35.     friend istream& operator>>(istream &takeItIn, Nedviznina &n) {
  36.         takeItIn >> n.adresa;
  37.         takeItIn >> n.kvadratura;
  38.         takeItIn >> n.cena;
  39.         return takeItIn;
  40.     }
  41.  
  42.     char* getAdresa() { return adresa; }
  43.  
  44.     int vkupnaCena() { return kvadratura*cena; }
  45.  
  46.     float danokNaImot() { return vkupnaCena() * 0.05; }
  47.  
  48.     void pecati() {
  49.         cout << adresa << ", Kvadratura: " << kvadratura << ", Cena po Kvadrat: " << cena << endl;
  50.     }
  51. };
  52.  
  53. class Vila : public  Nedviznina {
  54. private:
  55.     int danokNaLuksuz;
  56.     void copy(const Vila &v) {
  57.         Nedviznina::copy(v);
  58.         danokNaLuksuz = v.danokNaLuksuz;
  59.     }
  60. public:
  61.     Vila(char *adresa = "", int kvadratura = 0, int cena = 0, int danokNaLuksuz = 0)
  62.     : Nedviznina(adresa, kvadratura, cena) {
  63.         this->danokNaLuksuz = danokNaLuksuz;
  64.     }
  65.     Vila(const Vila &v) { copy(v); }
  66.  
  67.     Vila& operator=(const Vila &v) {
  68.         if (this != &v)
  69.             copy(v);
  70.         return *this;
  71.     }
  72.  
  73.     friend istream& operator>>(istream &takeItIn, Vila &v) {
  74.         takeItIn >> v.adresa;
  75.         takeItIn >> v.kvadratura;
  76.         takeItIn >> v.cena;
  77.         takeItIn >> v.danokNaLuksuz;
  78.         return takeItIn;
  79.     }
  80.  
  81.     float danokNaImot() { return vkupnaCena() * (0.05 + danokNaLuksuz/100.0); }
  82.  
  83.     void pecati() {
  84.         cout << adresa << ", Kvadratura: " << kvadratura << ", Cena po Kvadrat: " << cena
  85.              << ", Danok na luksuz: " << danokNaLuksuz << endl;
  86.     }
  87. };
  88.  
  89.  
  90. int main() {
  91.     Nedviznina n;
  92.     Vila v;
  93.     cin>>n;
  94.     cin>>v;
  95.     n.pecati();
  96.     cout<<"Danok za: "<<n.getAdresa()<<", e: "<<n.danokNaImot()<<endl;
  97.     v.pecati();
  98.     cout<<"Danok za: "<<v.getAdresa()<<", e: "<<v.danokNaImot()<<endl;
  99.     return 0;
  100. }
  101.  
  102.  
  103. 2. NBA
  104. #include <iostream>
  105. #include <cstring>
  106. #include <string>
  107. using namespace std;
  108.  
  109. class NBAPlayer
  110. {
  111. protected:
  112.     char *ime;
  113.     char tim[40];
  114.     double poeni;
  115.     double asistencii;
  116.     double skokovi;
  117. public:
  118.     NBAPlayer (){
  119.         ime = new char[0];
  120.         poeni = 0;
  121.         asistencii = 0;
  122.         skokovi = 0;
  123.         strcpy(ime, "");
  124.          }
  125.     NBAPlayer(char *i, char *t, double p, double a, double s)
  126.     {
  127.         ime = new char[strlen(ime) + 1];
  128.         strcpy(ime, i);
  129.         strcpy(tim, t);
  130.         poeni = p;
  131.         asistencii = a;
  132.         skokovi = s;
  133.     }
  134.     NBAPlayer(NBAPlayer &np)
  135.     {
  136.         ime = new char[strlen(np.ime)+1];
  137.         strcpy(ime, np.ime);
  138.         strcpy(tim, np.tim);
  139.         poeni = np.poeni;
  140.         asistencii = np.asistencii;
  141.         skokovi = np.skokovi;
  142.     }
  143.  
  144.     NBAPlayer& operator= ( const NBAPlayer &np)
  145.     {
  146.         if(this == &np)
  147.             return *this;
  148.             else
  149.         delete[] ime;
  150.         ime = new char[strlen(np.ime) + 1];
  151.         strcpy(ime, np.ime);
  152.         strcpy(tim, np.tim);
  153.         poeni = np.poeni;
  154.         asistencii = np.asistencii;
  155.         skokovi = np.skokovi;
  156.     }
  157.  
  158.     ~NBAPlayer()
  159.     {
  160.         delete [] ime;
  161.     }
  162.  
  163.     double rating()
  164.     {
  165.         return 0.45*poeni + 0.3*asistencii + 0.25*skokovi;
  166.     }
  167.     void print()
  168.     {
  169.         cout << ime << " - " << tim << endl;
  170.         cout << "Points: " << poeni << endl;
  171.         cout << "Assists: " << asistencii << endl;
  172.         cout << "Reboundds: " << skokovi << endl;
  173.         cout << "Rating: " << rating() << endl;
  174.     }
  175. };
  176.  
  177. class AllStarPlayer : public NBAPlayer
  178. {
  179. protected:
  180.     double poeniAll;
  181.     double asistenciiAll;
  182.     double skokoviAll;
  183. public:
  184.     AllStarPlayer() : NBAPlayer()
  185.     {
  186.         poeniAll = 0;
  187.         asistenciiAll = 0;
  188.         skokoviAll = 0;
  189.     }
  190.     AllStarPlayer(char *i, char *t, double p, double a, double s, double pa, double aa, double sa) : NBAPlayer(i,t,p,a,s)
  191.     {
  192.         poeniAll = pa;
  193.         asistenciiAll = aa;
  194.         skokoviAll = sa;
  195.     }
  196.     AllStarPlayer(NBAPlayer &np, double asp, double asa, double alle) :NBAPlayer(np)
  197.     {
  198.         poeniAll = asp;
  199.         asistenciiAll = asa;
  200.         skokoviAll = alle;
  201.     }
  202.     AllStarPlayer(AllStarPlayer &all) : NBAPlayer(all)
  203.     {
  204.         poeniAll = all.poeniAll;
  205.         asistenciiAll = all.asistenciiAll;
  206.         skokoviAll = all.skokoviAll;
  207.     }
  208.     AllStarPlayer& operator= (const AllStarPlayer &all)
  209.     {
  210.         if(this == &all)
  211.             return *this;
  212.             else
  213.         delete [] ime;
  214.         ime = new char[strlen(all.ime) + 1];
  215.         poeniAll = all.poeniAll;
  216.         asistenciiAll = all.asistenciiAll;
  217.         skokoviAll = all.skokoviAll;
  218.         strcpy(ime, all.ime);
  219.         strcpy(tim, all.tim);
  220.         poeni = all.poeni;
  221.         asistencii = all.asistencii;
  222.         skokovi = all.skokovi;
  223.     }
  224.     double allStarRating()
  225.     {
  226.         return 3.0*poeniAll + 4.0*asistenciiAll + 3.0*skokoviAll;
  227.     }
  228.     double rating()
  229.     {
  230.         return (NBAPlayer::rating()+rating())/2;
  231.     }
  232.     void print()
  233.     {
  234.         NBAPlayer::print();
  235.         cout << "All Star Rating: " << allStarRating() << endl;
  236.         cout << "New Rating: " << rating() << endl;
  237.     }
  238. };
  239.     int main() {
  240.  
  241.   char name[50];
  242.   char team[40];
  243.   double points;
  244.   double assists;
  245.   double rebounds;
  246.   double allStarPoints;
  247.   double allStarAssists;
  248.   double allStarRebounds;
  249.  
  250.   NBAPlayer * players = new NBAPlayer[5];
  251.   AllStarPlayer * asPlayers = new AllStarPlayer[5];
  252.   int n;
  253.   cin >> n;
  254.  
  255.   if (n == 1) {
  256.  
  257.     cout << "NBA PLAYERS:" << endl;
  258.     cout << "=====================================" << endl;
  259.     for (int i = 0; i < 5; ++i) {
  260.       cin >> name >> team >> points >> assists >> rebounds;
  261.       players[i] = NBAPlayer(name,team,points,assists,rebounds);
  262.       players[i].print();
  263.     }
  264.   }
  265.   else if (n == 2) {
  266.  
  267.     for (int i=0; i < 5; ++i){
  268.       cin >> name >> team >> points >> assists >> rebounds;
  269.       cin >> allStarPoints >> allStarAssists >> allStarRebounds;
  270.       players[i] = NBAPlayer(name,team,points,assists,rebounds);
  271.       asPlayers[i] = AllStarPlayer(players[i],allStarPoints,allStarAssists,allStarRebounds);
  272.     }
  273.  
  274.     cout << "NBA PLAYERS:" << endl;
  275.     cout << "=====================================" << endl;
  276.     for (int i=0; i < 5; ++i)
  277.       //players[i].print();
  278.  
  279.     cout << "ALL STAR PLAYERS:" << endl;
  280.     cout << "=====================================" << endl;
  281.     for (int i=0; i < 5; ++i)
  282.       asPlayers[i].print();
  283.  
  284.     }
  285.     else if (n == 3) {
  286.  
  287.       for (int i=0; i < 5; ++i){
  288.         cin >> name >> team >> points >> assists >> rebounds;
  289.         cin >> allStarPoints >> allStarAssists >> allStarRebounds;
  290.         asPlayers[i] = AllStarPlayer(name, team, points, assists, rebounds,
  291.                                      allStarPoints,allStarAssists,allStarRebounds);
  292.       }
  293.       cout << "ALL STAR PLAYERS:" << endl;
  294.       cout << "=====================================" << endl;
  295.       for (int i=0; i < 5; ++i)
  296.         asPlayers[i].print();
  297.  
  298.     }
  299.  
  300.     delete [] players;
  301.     delete [] asPlayers;
  302. }
Advertisement
Add Comment
Please, Sign In to add comment