Advertisement
Guest User

Untitled

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