1.  
  2. #include <string>
  3. #include <vector>
  4. #include <iostream>
  5. #include <fstream>
  6. #include <iomanip>
  7. using namespace std;
  8.  
  9. class player
  10. {
  11. private:
  12. string last_name;
  13. string first_name;
  14. vector <int> score;
  15.  
  16. public:
  17.  
  18. string get_last_name();
  19. void set_last_name( string n_l_name);
  20.  
  21. string get_first_name();
  22. void set_first_name ( string n_f_name);
  23.  
  24. vector <int> get_score();
  25. void set_score ( vector <int> n_score);
  26.  
  27. };
  28.  
  29. string player::get_last_name()
  30. {
  31. return last_name;
  32. }
  33.  
  34. void player::set_last_name( string n_l_name)
  35. {
  36. last_name = n_l_name;
  37. }
  38.  
  39. string player::get_first_name()
  40. {
  41. return first_name;
  42. }
  43.  
  44. void player::set_first_name( string n_f_name)
  45. {
  46. first_name = n_f_name;
  47. }
  48.  
  49. vector <int> player::get_score()
  50. {
  51. return score;
  52. }
  53.  
  54. void player::set_score( vector< int > n_score)
  55. {
  56. for ( int i=0; i< n_score.size() ;i++)
  57. {
  58. score.push_back( n_score[i]);
  59. }
  60. }
  61.  
  62. ///////////////////////////////////////////////////////////
  63. // BOOL FUNCTION THAT HELPS SORTING VECTOR OF PLAYERS./////
  64. // RETURNS TRUE IF THE FIRST PLAYER'S ALPHABET IS EARLIER./
  65. ///////////////////////////////////////////////////////////
  66. bool Isbigger_last_name( player p1, player p2 )
  67. {
  68. if ( p1.get_last_name() < p2.get_last_name())
  69. {
  70. return true;
  71. }
  72. else if ( p1.get_last_name() == p2.get_last_name())
  73. {
  74. if ( p1.get_first_name() < p2.get_first_name())
  75. {
  76. return true;
  77. }
  78. else
  79. {
  80. return false;
  81. }
  82. }
  83. else {
  84. return false;
  85. }
  86.  
  87. }
  88.  
  89.  
  90.  
  91. //////////////////////////////////////////
  92. // OUTPUT FUNCTION THAT OUTPUTS STUFF.////
  93. //////////////////////////////////////////
  94. void out_put_function( ofstream &out_file, vector<player> v1 )
  95. {
  96. int biggest_name = 0;
  97. int temp_biggest_name;
  98. // FIGURING OUT THE LONGEST NAME SO THAT I CAN ORGANIZE IT.
  99. for ( int i=0; i < v1.size(); i++)
  100. {
  101. temp_biggest_name = v1[i].get_last_name().size() + v1[i].get_first_name().size();
  102. if ( biggest_name <= temp_biggest_name)
  103. {
  104. biggest_name = temp_biggest_name;
  105. }
  106. }
  107.  
  108. for ( int i=0; i< biggest_name + 68; i++)
  109. {
  110. out_file << "-";
  111. }
  112.  
  113. cout << v1[0].get_last_name() << " " << v1[0].get_score().size() << endl;
  114. int apply_space;
  115. out_file << endl;
  116. out_file << "| ";
  117. for (int i=0; i<v1.size();i++)
  118. {
  119. out_file << " " << v1[i].get_first_name() << " " << v1[i].get_last_name();
  120. apply_space = biggest_name - v1[i].get_first_name().size() - v1[i].get_last_name().size();
  121. for ( int i=0; i< apply_space; i++)
  122. {
  123. out_file << " ";
  124. }
  125.  
  126. out_file << " | ";
  127. for ( int j=0; j < v1[i].get_score().size(); j++)
  128. {
  129. for ( int k =0; k < 2; k++)
  130. {
  131. out_file << v1[i].get_score()[j] << " ";
  132. j++;
  133. }
  134. j--;
  135. }
  136. }
  137.  
  138.  
  139. }
  140.  
  141.  
  142.  
  143.  
  144. int main( int argc, char* argv[])
  145. {
  146. //Intput the file using command line argv[1].
  147. ifstream read_file(argv[1]);
  148. if ( !read_file )
  149. {
  150. cerr << "Can't open " << argv[1] << " to read \n";
  151. exit(1);
  152. }
  153.  
  154. string temp_last_name;
  155.  
  156. string temp_first_name;
  157.  
  158. int temp_score;
  159.  
  160. vector < int > vec_temp_score;
  161.  
  162. vector < player > vec_players;
  163.  
  164. player temp_player;
  165.  
  166. while ( read_file >> temp_first_name >> temp_last_name )
  167. {
  168. for ( int i=0; i< 20;i++) // loop through the integers(scores) and read into the vector.
  169. {
  170. read_file >> temp_score;
  171. vec_temp_score.push_back(temp_score);
  172. }
  173.  
  174. temp_player.set_last_name( temp_last_name);
  175. temp_player.set_first_name( temp_first_name);
  176. temp_player.set_score( vec_temp_score);
  177.  
  178. vec_players.push_back(temp_player);
  179. }
  180.  
  181. cout << vec_players[2].get_last_name() << vec_players[0].get_score().size() << endl;
  182.  
  183. sort( vec_players.begin(), vec_players.end(), Isbigger_last_name);
  184.  
  185. cout << vec_players[0].get_last_name() << vec_players[0].get_score().size() << endl;
  186.  
  187. //Out file the output using command line argv[2].
  188. ofstream out_file(argv[2]);
  189. if ( !out_file )
  190. {
  191. cerr << "Can't open " << argv[2] << " to read \n";
  192. exit(1);
  193. }
  194.  
  195. out_put_function ( out_file, vec_players );
  196.  
  197. }
  198.