fork(1) download
  1. #include <iostream>
  2. #include <sstream>
  3. #include <string>
  4. #include <algorithm>
  5. #include <vector>
  6.  
  7. class student
  8. {
  9. public:
  10. std::string firstName;
  11. std::string lastName;
  12. float gpa;
  13.  
  14. student() {};
  15. student(std::string last, std::string first, double grade)
  16. {
  17. firstName = first;
  18. lastName = last;
  19. gpa = grade;
  20. };
  21. };
  22.  
  23. int main()
  24. {
  25. std::vector<student> list;
  26. student current_student;
  27.  
  28. std::cout << "input data:" << std::endl;
  29.  
  30. int count = 0;
  31. std::string line;
  32. std::getline(std::cin, line);
  33. std::istringstream iss(line);
  34.  
  35.  
  36. while ((iss >> current_student.lastName) && (iss >> current_student.firstName) && (iss >> current_student.gpa))
  37. {
  38. list.push_back(current_student);
  39. count++;
  40. }
  41.  
  42. for ( int i = 0; i < count-1; i++)
  43. {
  44. if (list[i].lastName > list[i + 1].lastName)
  45. {
  46. std::swap (list[i], list[i+1]);
  47. }
  48. }
  49.  
  50. for ( int i = 0; i < count-1; i++)
  51. {
  52. if (list[i].firstName > list[i + 1].firstName)
  53. {
  54. std::swap (list[i], list[i+1]);
  55. }
  56. }
  57.  
  58.  
  59. for(int i = 0; i < count; i++)
  60. {
  61. std::cout << list[i].lastName << " " << list[i].firstName << " " << list[i].gpa << std::endl;
  62. }
  63.  
  64. return 0;
  65. }
Success #stdin #stdout 0s 3484KB
stdin
Ware Henry 87.2 Dantes Edmond 91.4 Earhart Amelia 92.6
stdout
input data:
Earhart Amelia 92.6
Dantes Edmond 91.4
Ware Henry 87.2