Filage

KR_OAIP

Mar 25th, 2024
802
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.18 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. struct Data {
  7.     unsigned int day{ 0 };
  8.     unsigned int month{ 0 };
  9.     unsigned int year{ 0 };
  10. };
  11.        
  12. struct student {
  13.     unsigned int bookNum{ 0 };
  14.     string name;
  15.     char secondName{ 0 };
  16.     char surname{ 0 };
  17.     Data birthday;
  18.     Data entering;
  19.     float averageGrade{ 0 };
  20. };
  21.  
  22. void dataInput(student& students) {
  23.     cout << "Введите номер зачетной книжки: ";
  24.     cin >> students.bookNum;
  25.     cout << "Введите фамилию студента: ";
  26.     cin >> students.name;
  27.     cout << "Введите инициалы студента, имя и отчество: ";
  28.     cin >> students.secondName;
  29.     cin >> students.surname;
  30.     cout << "Введите дату рождения: ";
  31.     cout << "День: ";
  32.     cin >> students.birthday.day;
  33.     cout << "Месяц: ";
  34.     cin >> students.birthday.month;
  35.     cout << "Год: ";
  36.     cin >> students.birthday.year;
  37.     cout << "Введите дату поступления в университет: ";
  38.     cout << "День: ";
  39.     cin >> students.entering.day;
  40.     cout << "Месяц: ";
  41.     cin >> students.entering.month;
  42.     cout << "Год: ";
  43.     cin >> students.entering.year;
  44.     cout << "Введите средний балл по итогам первой сессии: ";
  45.     cin >> students.averageGrade;
  46. }
  47.  
  48. void dataOutput(student& students) {
  49.     cout << "Номер зачетной книжки: " << students.bookNum;
  50.     cout << "\nФИО: " << students.name << " " << students.secondName << " " << students.surname;
  51.     cout << "\nДата рождения: " << students.birthday.day << "." << students.birthday.month << "." << students.birthday.year;
  52.     cout << "\nДата зачисления: " << students.entering.day << "." << students.entering.month << "." << students.entering.year;
  53.     cout << "\nСредний балл за первую сессию: " << students.averageGrade << endl;
  54. }
  55.  
  56. void sortByEntering(student students[], int n) {
  57.     for (int i = 0; i < n; i++) {
  58.         for (int j = i + 1; j < n; j++) {
  59.             if (students[i].entering.year > students[j].entering.year ||
  60.                 students[i].entering.year == students[j].entering.year &&
  61.                 students[i].entering.month > students[j].entering.month ||
  62.                 students[i].entering.year == students[j].entering.year &&
  63.                 students[i].entering.month == students[j].entering.month &&
  64.                 students[i].entering.day > students[j].entering.day) {
  65.                 student temp = students[j];
  66.                 students[j] = students[i];
  67.                 students[i] = temp;
  68.             }
  69.         }
  70.     }
  71. }
  72.  
  73. void outOldestAndGreatest(student students[], int n) {
  74.     float maxAverage = 0;
  75.     for (int i = 0; i < n; i++) {
  76.         for (int j = i + 1; j < n; j++) {
  77.             if (students[i].averageGrade > maxAverage) {
  78.                 maxAverage = students[i].averageGrade;
  79.             }
  80.         }
  81.     }
  82.     cout << "Студенты с максимальным средним баллом: \n";
  83.     for (int i = 0; i < n; i++) {
  84.         if (students[i].averageGrade == maxAverage) {
  85.             dataOutput(students[i]);
  86.             cout << endl;
  87.         }
  88.     }
  89. }
  90.  
  91.  
  92. int main() {
  93.     setlocale(LC_ALL, "Rus");
  94.     int n;
  95.     cout << "Ввведите кол-во студентов: ";
  96.     cin >> n;
  97.     student* students = new student[n];
  98.     for (int i = 0; i < n; i++) {
  99.         cout << "Введите данные о " << i + 1 << " студенте: \n";
  100.         dataInput(students[i]);
  101.     }
  102.     cout << "Итоговая информация о всех студентах: \n";
  103.     for (int i = 0; i < n; i++) {
  104.         cout << i + 1 << " студент \n";
  105.         dataOutput(students[i]);
  106.         cout << endl;
  107.     }
  108.     sortByEntering(students, n);
  109.     cout << "\nОтсортированные студенты: \n";
  110.     for (int i = 0; i < n; i++) {
  111.         cout << i + 1 << " студент \n";
  112.         dataOutput(students[i]);
  113.         cout << endl;
  114.     }
  115.     cout << endl;
  116.     outOldestAndGreatest(students, n);
  117.     delete[] students;
  118. }
Advertisement
Add Comment
Please, Sign In to add comment