Advertisement
canezzy

GroupOfStudents.cpp

Dec 3rd, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.09 KB | None | 0 0
  1. #include "StudentCourses.h"
  2. #include "GroupOfStudents.h"
  3. //============================================================================
  4. // File Name : GroupOfStudents.cpp
  5. // Authors : You
  6. // Version : 1.0
  7. // Copyright : Your copyright notice (if applicable)
  8. // Description : C++ group project
  9. //============================================================================
  10.  
  11. // Your code starts here
  12.  
  13. const vector<StudentCourses>& GroupOfStudents::get_student_courses() const
  14. {
  15. return sc;
  16. }
  17.  
  18. void GroupOfStudents::set_student_courses(vector<StudentCourses>& v)
  19. {
  20. sc = v;
  21. }
  22.  
  23. void GroupOfStudents::write_to_file(bool binar) const
  24. {
  25.  
  26. }
  27.  
  28. void GroupOfStudents::pozovi_sort(bool id)
  29. {
  30. vector<StudentCourses> grupe = sc;
  31. if (id) {
  32. sort_id(grupe);
  33. for (StudentCourses stuco : grupe) {
  34. stuco.display();
  35. }
  36. }
  37. else {
  38. sort_prezime(grupe);
  39. }
  40. }
  41.  
  42.  
  43.  
  44.  
  45. void sort_prezime(vector<StudentCourses> &grupe) {
  46.  
  47. if (grupe.size() <= 1) return;
  48. else {
  49. int mid = grupe.size() / 2;
  50. vector<StudentCourses> prva;
  51. vector<StudentCourses> druga;
  52.  
  53. int i, j;
  54.  
  55. for (i = 0; i < mid; i++)
  56. prva.push_back(grupe[i]);
  57.  
  58. for (j = mid; j < grupe.size(); j++)
  59. druga.push_back(grupe[j]);
  60.  
  61. sort_prezime(prva);
  62. sort_prezime(druga);
  63.  
  64.  
  65. i = 0, j = 0;
  66. int k = 0;
  67.  
  68. while (j < prva.size() && k < druga.size())
  69. {
  70.  
  71. if (prva[j].get_student().get_last_name() != druga[k].get_student().get_last_name()) {
  72. if (prva[j].get_student().get_last_name() < druga[k].get_student().get_last_name()) {
  73. grupe[i] = prva[j];
  74. j++;
  75. }
  76. else {
  77. grupe[i] = druga[k];
  78. k++;
  79. }
  80. }
  81. else if (prva[j].get_student().get_first_name() != druga[k].get_student().get_first_name()) {
  82. if (prva[j].get_student().get_last_name() < druga[k].get_student().get_last_name()) {
  83. grupe[i] = prva[j];
  84. j++;
  85. }
  86. else {
  87. grupe[i] = druga[k];
  88. k++;
  89. }
  90. }
  91. else {
  92. if (prva[j].get_student().get_id() < druga[k].get_student().get_id()) {
  93. grupe[i] = prva[j];
  94. j++;
  95. }
  96. else {
  97. grupe[i] = druga[k];
  98. k++;
  99. }
  100. }
  101.  
  102.  
  103. i++;
  104. }
  105. while (j < prva.size()) {
  106. grupe[i] = prva[j];
  107. j++; i++;
  108. }
  109. while (k < druga.size()) {
  110. grupe[i] = druga[k];
  111. k++; i++;
  112. }
  113.  
  114. }
  115.  
  116.  
  117. }
  118.  
  119.  
  120.  
  121. void sort_id(vector<StudentCourses> &grupe) {
  122.  
  123. if (grupe.size() <= 1) return;
  124. else {
  125. int mid = grupe.size() / 2;
  126. vector<StudentCourses> prva;
  127. vector<StudentCourses> druga;
  128.  
  129. int i, j;
  130.  
  131. for (i = 0; i < mid; i++)
  132. prva.push_back(grupe[i]);
  133.  
  134. for (j = mid; j < grupe.size(); j++)
  135. druga.push_back(grupe[j]);
  136.  
  137. sort_id(prva);
  138. sort_id(druga);
  139.  
  140.  
  141. i = 0, j = 0;
  142. int k = 0;
  143.  
  144. while (j < prva.size() && k < druga.size())
  145. {
  146. if (prva[j].get_student().get_id() < druga[k].get_student().get_id()) {
  147. grupe[i] = prva[j];
  148. j++;
  149. }
  150. else {
  151. grupe[i] = druga[k];
  152. k++;
  153. }
  154.  
  155. i++;
  156. }
  157. while (j < prva.size()) {
  158. grupe[i] = prva[j];
  159. j++; i++;
  160. }
  161. while (k < druga.size()) {
  162. grupe[i] = druga[k];
  163. k++; i++;
  164. }
  165.  
  166. }
  167.  
  168.  
  169. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement