Advertisement
daniil_mironoff

Ex. 7.9 (2)

May 23rd, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.03 KB | None | 0 0
  1. // ЗАДАНИЕ 7.9 (2)
  2. // Создать массив, элементами которого являются структуры:
  3. // список посетителей курсов (фамилия, название курса, длительность курса).
  4. // Создать функцию, сортирующую данную структуру (например, по длительности),
  5. // и функцию для поиска нужного значения в структуре.
  6. // Использовать эти функции по назначению в программе
  7. // (для вывода отсортированной информации и поиска нужной информации).
  8.  
  9. #include <iostream>         // Для ВВОДА и ВЫВОДА
  10. #include <string>           // Для string
  11.  
  12. using namespace std;        // ПРОСТРАНСТВО ИМЁН
  13.  
  14. int const size = 5;         // Кол-во студентов
  15.  
  16. // Структура Студент
  17. struct student {
  18.     string name;            // Фамилия студента
  19.     string name_course;     // Название курса
  20.    
  21.     int duration_course;    // Длительность курса (в часах)
  22. };
  23.  
  24. // Сортировка (Пузырьком) Студентов по полю Длительность курса
  25. void sort_students(student * students, int size) {
  26.     // Сортировка
  27.     for (int i = 0; size > i; i++) {
  28.         for (int j = 0; size - i - 1 > j; j++) {
  29.             if (students[j].duration_course > students[j + 1].duration_course) {
  30.                 student var = students[j];
  31.                 students[j] = students[j + 1];
  32.                 students[j + 1] = var;
  33.             } else {
  34.                 continue;
  35.             }
  36.         }
  37.     }
  38. }
  39.  
  40. void search_student(student * students, int size) {
  41.     // Очистка буфера от цифр
  42.     string buff;
  43.     getline(cin, buff);
  44.    
  45.     // Ввод имени для поиска
  46.     string name;
  47.     cout << "Enter search name: ";
  48.     getline(cin, name);
  49.    
  50.     // Поиск
  51.     for (int i = 0; size > i; i++) {
  52.         // Если имя ученика совпало с искомым
  53.         if (students[i].name == name) {
  54.             cout << "===[DETECTED  STUDENT]===" << endl;
  55.             cout << "Name: "            << students[i].name            << endl;
  56.             cout << "Name Course: "     << students[i].name_course     << endl;
  57.             cout << "Duration Course: " << students[i].duration_course << endl;
  58.             cout << "=========================" << endl;
  59.             cout << endl;
  60.         }
  61.     }
  62. }
  63.  
  64. int main() {
  65.     // Создание массива структур Учеников
  66.     student students[size];
  67.    
  68.     // Цикл ввода данных
  69.     for (int i = 0; size > i; i++) {
  70.         string str;
  71.        
  72.         cout << "Enter name " << i + 1 << " student: ";
  73.         getline(cin, str);
  74.         students[i].name = str;
  75.        
  76.         cout << "Enter name course " << i + 1 << " student: ";
  77.         getline(cin, str);
  78.         students[i].name_course = str;
  79.        
  80.         cout << endl;
  81.     }
  82.    
  83.     // Цикл ввода Длительности курса
  84.     for (int i = 0; size > i; i++) {
  85.         cout << "Enter duration course " << i + 1 << " student ("
  86.         << students[i].name << "): ";
  87.         cin >> students[i].duration_course;
  88.     }
  89.    
  90.     cout << endl;
  91.    
  92.     // Сортировка
  93.     sort_students(students, size);
  94.    
  95.     // Вывод
  96.         cout << "=========================" << endl;
  97.     for (int i = 0; size > i; i++) {
  98.         cout << "Name: "            << students[i].name            << endl;
  99.         cout << "Name Course: "     << students[i].name_course     << endl;
  100.         cout << "Duration Course: " << students[i].duration_course << endl;
  101.         cout << "=========================" << endl;
  102.     }
  103.    
  104.     cout << endl;
  105.    
  106.     // Поиск
  107.     search_student(students, size);
  108.    
  109.     return 0;
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement