Объектно-ориентированное программирование на C++. Андрианова А.А - 30 стр.

UptoLike

Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
struct Student
{
char fio[100]; // ФИО студента
char group[10]; // номер группы
float mark; // средний балл успеваемости
};
// функция сравнения по фамилии студентов
bool GreaterFio(Student s1, Student s2)
{
if(strcmp(s1.fio, s2.fio) > 0)
return true;
return false;
}
// функция сравнения по среднему баллу студентов
bool GreaterMark(Student s1, Student s2)
{
if(s1.mark > s2.mark)
return true;
return false;
}
// функция сравнения по группе и фамилии студентов
bool GreaterGroupFio(Student s1, Student s2)
{
if(strcmp(s1.group, s2.group) > 0)
return true;
if(strcmp(s1.group, s2.group) == 0)
return GreaterFio(s1, s2);
return false;
}
// функция сравнения по номеру группы и баллу студентов
bool GreaterGroupMark(Student s1, Student s2)
{
if(strcmp(s1.group, s2.group) > 0)
return true;
if(strcmp(s1.group, s2.group) == 0)
return GreaterMark(s1, s2);
return false;
}
// функция сортировки списка студентов методом пузырька
void Sort(Student* a, int n, bool (*f)(Student, Student))
{
for(int i = 0; i < n - 1; i++)
{
bool flag = false;
30
                                Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
     struct Student
     {
          char fio[100];       // ФИО студента
          char group[10];      // номер группы
          float mark;          // средний балл успеваемости
     };

     // функция сравнения по фамилии студентов
     bool GreaterFio(Student s1, Student s2)
     {
          if(strcmp(s1.fio, s2.fio) > 0)
               return true;
          return false;
     }

     // функция сравнения по среднему баллу студентов
     bool GreaterMark(Student s1, Student s2)
     {
          if(s1.mark > s2.mark)
               return true;
          return false;
     }

     // функция сравнения по группе и фамилии студентов
     bool GreaterGroupFio(Student s1, Student s2)
     {
          if(strcmp(s1.group, s2.group) > 0)
               return true;
          if(strcmp(s1.group, s2.group) == 0)
               return GreaterFio(s1, s2);
          return false;
     }

     // функция сравнения по номеру группы и баллу студентов
     bool GreaterGroupMark(Student s1, Student s2)
     {
          if(strcmp(s1.group, s2.group) > 0)
               return true;
          if(strcmp(s1.group, s2.group) == 0)
               return GreaterMark(s1, s2);
          return false;
     }

     // функция сортировки   списка студентов методом пузырька
     void Sort(Student* a,   int n, bool (*f)(Student, Student))
     {
          for(int i = 0; i   < n - 1; i++)
          {
               bool flag =   false;

30