Advertisement
Dimoo23

NBA Player - nasleduvanje

May 20th, 2018
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.79 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3.  
  4. using namespace std;
  5.  
  6. class NBAPlayer{
  7. protected:
  8.     char *ime;
  9.     char tim[40];
  10.     double poeni;
  11.     double asistencii;
  12.     double skokovi;
  13. public:
  14.     // default constructor
  15.     NBAPlayer () {
  16.         ime = new char [0];
  17.         poeni = 0;
  18.         asistencii = 0;
  19.         skokovi = 0;
  20.     }
  21.     // constructor w/ arguments
  22.     NBAPlayer ( char *name, char *team, double points, double assists, double jumps ) {
  23.         ime = new char [strlen(name) + 1];
  24.         strcpy(ime,name);
  25.         strcpy(tim,team);
  26.         poeni = points;
  27.         asistencii = assists;
  28.         skokovi = jumps;
  29.     }
  30.     // copy constructor
  31.     NBAPlayer ( const NBAPlayer &p ) {
  32.         ime = new char [strlen(p.ime)+1];
  33.         strcpy (ime,p.ime);
  34.         strcpy (tim,p.tim);
  35.         poeni = p.poeni;
  36.         asistencii = p.asistencii;
  37.         skokovi = p.skokovi;
  38.     }
  39.     // destructor
  40.     ~NBAPlayer () { delete [] ime; }
  41.     // operator =
  42.     NBAPlayer & operator=( const NBAPlayer &p ){
  43.         if(this!=&p){
  44.             delete [] ime;
  45.             ime = new char [strlen(p.ime)+1];
  46.             strcpy (ime,p.ime);
  47.             strcpy (tim,p.tim);
  48.             poeni = p.poeni;
  49.             asistencii = p.asistencii;
  50.             skokovi = p.skokovi;
  51.         }
  52.         return *this;
  53.     }
  54.     // metod rating
  55.     double rating () {
  56.         return ( poeni*0.45 + asistencii*0.3 + skokovi*0.25 );
  57.     }
  58.     // metod za pecatenje
  59.     void print () {
  60.         cout<<ime<<" - "<<tim<<endl;
  61.         cout<<"Points: "<<poeni<<endl;
  62.         cout<<"Assists: "<<asistencii<<endl;
  63.         cout<<"Rebounds: "<<skokovi<<endl;
  64.         cout<<"Rating: "<<rating()<<endl;
  65.     }
  66. };
  67.  
  68. class AllStarPlayer : public NBAPlayer {
  69. private:
  70.     double ASpoeni;
  71.     double ASasistencii;
  72.     double ASskokovi;
  73. public:
  74.     // default constructor
  75.     AllStarPlayer () : NBAPlayer () {
  76.         ASpoeni = 0;
  77.         ASasistencii = 0;
  78.         ASskokovi = 0;
  79.     }
  80.     // constructor w/ arguments
  81.     AllStarPlayer ( char *name, char *team, double points, double assists, double jumps , double _points, double _assists, double _jumps )
  82.     : NBAPlayer ( name, team, points, assists, jumps ) {
  83.         ASpoeni = _points;
  84.         ASasistencii = _assists;
  85.         ASskokovi = _jumps;
  86.     }
  87.     // constructor sto prima objekt nbaplayer
  88.     AllStarPlayer ( const NBAPlayer &p, double _points, double _assists, double _jumps )
  89.     : NBAPlayer ( p ) {
  90.         ASpoeni = _points;
  91.         ASasistencii = _assists;
  92.         ASskokovi = _jumps;
  93.     }
  94.     // copy constructor
  95.     AllStarPlayer ( const AllStarPlayer &a ) {
  96.         ime = new char [strlen(a.ime)+1];
  97.         strcpy (ime,a.ime);
  98.         strcpy (tim,a.tim);
  99.         poeni = a.poeni;
  100.         asistencii = a.asistencii;
  101.         skokovi = a.skokovi;
  102.         ASpoeni = a.ASpoeni;
  103.         ASasistencii = a.ASasistencii;
  104.         ASskokovi = a.ASskokovi;
  105.     }
  106.     // operator =
  107.     AllStarPlayer & operator= ( const AllStarPlayer &a ) {
  108.         if (this!=&a){
  109.                 delete [] ime;
  110.             ime = new char [strlen(a.ime)+1];
  111.             strcpy (ime,a.ime);
  112.             strcpy (tim,a.tim);
  113.             poeni = a.poeni;
  114.             asistencii = a.asistencii;
  115.             skokovi = a.skokovi;
  116.             ASpoeni = a.ASpoeni;
  117.             ASasistencii = a.ASasistencii;
  118.             ASskokovi = a.ASskokovi;
  119.         }
  120.         return *this;
  121.     }
  122.     // destructor
  123.     ~AllStarPlayer () {}
  124.     // metod allstarrating
  125.     double allStarRating () {
  126.         return ( ASpoeni*0.3 + ASasistencii*0.4 + ASskokovi*0.3 );
  127.     }
  128.     // prepokrien metod rating
  129.     double rating () {
  130.         return ( ( NBAPlayer :: rating() + allStarRating() ) / 2 );
  131.     }
  132.     // prepokrien metod print
  133.     void print () {
  134.         NBAPlayer :: print();
  135.         cout<<"All Star Rating: "<<allStarRating()<<endl;
  136.         cout<<"New Rating: "<<rating()<<endl;
  137.     }
  138. };
  139. int main() {
  140.  
  141.   char name[50];
  142.   char team[40];
  143.   double points;
  144.   double assists;
  145.   double rebounds;
  146.   double allStarPoints;
  147.   double allStarAssists;
  148.   double allStarRebounds;
  149.  
  150.   NBAPlayer * players = new NBAPlayer[5];
  151.   AllStarPlayer * asPlayers = new AllStarPlayer[5];
  152.   int n;
  153.   cin >> n;
  154.  
  155.   if (n == 1) {
  156.  
  157.     cout << "NBA PLAYERS:" << endl;
  158.     cout << "=====================================" << endl;
  159.     for (int i = 0; i < 5; ++i) {
  160.       cin >> name >> team >> points >> assists >> rebounds;
  161.       players[i] = NBAPlayer(name,team,points,assists,rebounds);
  162.       players[i].print();
  163.     }
  164.   }
  165.   else if (n == 2) {
  166.  
  167.     for (int i=0; i < 5; ++i){
  168.       cin >> name >> team >> points >> assists >> rebounds;
  169.       cin >> allStarPoints >> allStarAssists >> allStarRebounds;
  170.       players[i] = NBAPlayer(name,team,points,assists,rebounds);
  171.       asPlayers[i] = AllStarPlayer(players[i],allStarPoints,allStarAssists,allStarAssists);
  172.     }
  173.  
  174.     cout << "NBA PLAYERS:" << endl;
  175.     cout << "=====================================" << endl;
  176.     for (int i=0; i < 5; ++i)
  177.       players[i].print();
  178.  
  179.     cout << "ALL STAR PLAYERS:" << endl;
  180.     cout << "=====================================" << endl;
  181.     for (int i=0; i < 5; ++i)
  182.       asPlayers[i].print();
  183.  
  184.     }
  185.     else if (n == 3) {
  186.  
  187.       for (int i=0; i < 5; ++i){
  188.         cin >> name >> team >> points >> assists >> rebounds;
  189.         cin >> allStarPoints >> allStarAssists >> allStarRebounds;
  190.         asPlayers[i] = AllStarPlayer(name, team, points, assists, rebounds,
  191.                                      allStarPoints,allStarAssists,allStarAssists);
  192.       }
  193.       cout << "ALL STAR PLAYERS:" << endl;
  194.       cout << "=====================================" << endl;
  195.       for (int i=0; i < 5; ++i)
  196.         asPlayers[i].print();
  197.  
  198.     }
  199.  
  200.     delete [] players;
  201.     delete [] asPlayers;
  202. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement