Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "StudentCourses.h"
- #include "GroupOfStudents.h"
- //============================================================================
- // File Name : GroupOfStudents.cpp
- // Authors : You
- // Version : 1.0
- // Copyright : Your copyright notice (if applicable)
- // Description : C++ group project
- //============================================================================
- // Your code starts here
- const vector<StudentCourses>& GroupOfStudents::get_student_courses() const
- {
- return sc;
- }
- void GroupOfStudents::set_student_courses(vector<StudentCourses>& v)
- {
- sc = v;
- }
- void GroupOfStudents::write_to_file(bool binar) const
- {
- }
- void GroupOfStudents::pozovi_sort(bool id)
- {
- vector<StudentCourses> grupe = sc;
- if (id) {
- sort_id(grupe);
- for (StudentCourses stuco : grupe) {
- stuco.display();
- }
- }
- else {
- sort_prezime(grupe);
- }
- }
- void sort_prezime(vector<StudentCourses> &grupe) {
- if (grupe.size() <= 1) return;
- else {
- int mid = grupe.size() / 2;
- vector<StudentCourses> prva;
- vector<StudentCourses> druga;
- int i, j;
- for (i = 0; i < mid; i++)
- prva.push_back(grupe[i]);
- for (j = mid; j < grupe.size(); j++)
- druga.push_back(grupe[j]);
- sort_prezime(prva);
- sort_prezime(druga);
- i = 0, j = 0;
- int k = 0;
- while (j < prva.size() && k < druga.size())
- {
- if (prva[j].get_student().get_last_name() != druga[k].get_student().get_last_name()) {
- if (prva[j].get_student().get_last_name() < druga[k].get_student().get_last_name()) {
- grupe[i] = prva[j];
- j++;
- }
- else {
- grupe[i] = druga[k];
- k++;
- }
- }
- else if (prva[j].get_student().get_first_name() != druga[k].get_student().get_first_name()) {
- if (prva[j].get_student().get_last_name() < druga[k].get_student().get_last_name()) {
- grupe[i] = prva[j];
- j++;
- }
- else {
- grupe[i] = druga[k];
- k++;
- }
- }
- else {
- if (prva[j].get_student().get_id() < druga[k].get_student().get_id()) {
- grupe[i] = prva[j];
- j++;
- }
- else {
- grupe[i] = druga[k];
- k++;
- }
- }
- i++;
- }
- while (j < prva.size()) {
- grupe[i] = prva[j];
- j++; i++;
- }
- while (k < druga.size()) {
- grupe[i] = druga[k];
- k++; i++;
- }
- }
- }
- void sort_id(vector<StudentCourses> &grupe) {
- if (grupe.size() <= 1) return;
- else {
- int mid = grupe.size() / 2;
- vector<StudentCourses> prva;
- vector<StudentCourses> druga;
- int i, j;
- for (i = 0; i < mid; i++)
- prva.push_back(grupe[i]);
- for (j = mid; j < grupe.size(); j++)
- druga.push_back(grupe[j]);
- sort_id(prva);
- sort_id(druga);
- i = 0, j = 0;
- int k = 0;
- while (j < prva.size() && k < druga.size())
- {
- if (prva[j].get_student().get_id() < druga[k].get_student().get_id()) {
- grupe[i] = prva[j];
- j++;
- }
- else {
- grupe[i] = druga[k];
- k++;
- }
- i++;
- }
- while (j < prva.size()) {
- grupe[i] = prva[j];
- j++; i++;
- }
- while (k < druga.size()) {
- grupe[i] = druga[k];
- k++; i++;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement