Nelogeek

Untitled

Oct 24th, 2021
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.58 KB | None | 0 0
  1. #include <iostream>
  2. #include <time.h>
  3. #include <conio.h>
  4. #include <stdlib.h>
  5. #include <stdio.h>
  6. #include <locale.h>
  7. #include <cstring>
  8. #include <string>
  9. #include <fstream>
  10.  
  11. using namespace std;
  12.  
  13. struct Student
  14. {
  15.     char FIO[30];
  16.     int Ball[5];
  17.     float SrBall;
  18. };
  19.  
  20. void addStudent(Student St[], int size)
  21. {
  22.     for (int k = 0; k < size; k++)
  23.     {
  24.         cout << "Введите фамилию" << endl; cin.get(); cin.get(St[k].FIO, 30); cin.get();
  25.         St[k].SrBall = 0;
  26.         cout << "Введите баллы (5 штук)" << endl;
  27.  
  28.         for (int i = 0; i < 5; i++)
  29.         {
  30.             cin >> St[k].Ball[i];
  31.             St[k].SrBall += St[k].Ball[i];
  32.         }
  33.  
  34.         St[k].SrBall /= 5;
  35.     }
  36. }
  37. void showStudent(Student St[], int size)
  38. {
  39.     cout << endl << "Список студентов" << endl;
  40.     for (int y = 0; y < size; y++)
  41.         St[y].SrBall = 0;
  42.     for (int k = 0; k < size; k++)
  43.     {
  44.         for (int j = 0; j < 5; j++)
  45.         {
  46.             St[k].SrBall += St[k].Ball[j];
  47.         }
  48.         St[k].SrBall /= 5;
  49.         cout << endl << St[k].FIO << " - " << St[k].SrBall << " -";
  50.         for (int i = 0; i < 5; i++)
  51.             cout << ' ' << St[k].Ball[i];
  52.     }
  53. }
  54. void sortSrBall(Student St[], int size)
  55. {
  56.     Student tmp;
  57.  
  58.     for (int i = 0; i < size - 1; i++)
  59.         for (int j = i + 1; j < size; j++)
  60.             if (St[i].SrBall < St[j].SrBall)
  61.             {
  62.                 tmp = St[i];
  63.                 St[i] = St[j];
  64.                 St[j] = tmp;
  65.             }
  66. }
  67. void searchMaxBall(Student St[], int size, int key)
  68. {
  69.     if (key < 0 || key > 5)
  70.     {
  71.         cout << "Предмет не найден" << endl;
  72.         return;
  73.     }
  74.     string FIO = St[0].FIO;
  75.     int MaxSrBall = St[0].Ball[key - 1];
  76.     for (int i = 0; i < size - 1; i++)
  77.     {
  78.         if (St[i].SrBall > MaxSrBall)
  79.         {
  80.             MaxSrBall = St[i].Ball[key - 1];
  81.             FIO = St[0].FIO;
  82.         }
  83.     }
  84.     cout << FIO << " - " << MaxSrBall; cout << endl;
  85. }
  86. void inFile(Student St[], int size)
  87. {
  88.     ofstream file;
  89.     file.open("C:\\User\\Desktop\\Структуры\\lists.txt", fstream::in | fstream::out);
  90.     if (!file.is_open())
  91.     {
  92.         cout << "error!" << endl;
  93.         return;
  94.     }
  95.  
  96.     for (int i = 0; i < size; i++)
  97.     {
  98.         file << St[i].FIO;
  99.         for (int k = 0; k < 5; k++)
  100.             file << ' ' << St[i].Ball[k];
  101.         file << endl;
  102.     }
  103.  
  104.     file.close();
  105.     return;
  106. }
  107. void onFile(Student St[], int n)
  108. {
  109.     int i = 0, j = 0;
  110.     ifstream infile;
  111.     infile.open("C:\\User\\Desktop\\Структуры\\lists.txt");
  112.     while (!infile.eof())
  113.     {
  114.         infile >> St[i].FIO >> St[i].Ball[0] >> St[i].Ball[1] >> St[i].Ball[2] >> St[i].Ball[3] >> St[i].Ball[4];
  115.         i++;
  116.     }
  117. }
  118.  
  119. int main()
  120. {
  121.     setlocale(LC_ALL, "Russian");
  122.  
  123.     int N = 25;
  124.     Student* G = new Student[N];
  125.  
  126.     int count = 0;
  127.     int key = 0; char value;
  128.     cout << "Вариант ввода:\n1)Ручной\n2)Из файла\n";
  129.     cin >> value;
  130.     cout << "Количество студентов: ";
  131.     cin >> count;
  132.     cout << "Порядковый номер предмета: ";
  133.     cin >> key;
  134.     if (value == '1')
  135.     {
  136.         addStudent(G, count);
  137.     }
  138.     else {
  139.         onFile(G, count);
  140.     }
  141.     showStudent(G, count);
  142.     sortSrBall(G, count);
  143.     showStudent(G, count);
  144.     cout << endl;
  145.     cout << "\nМаксимальный балл у ";
  146.     searchMaxBall(G, count, key); cout << endl;
  147.     inFile(G, count);
  148.  
  149.     system("pause");
  150.     return 0;
  151. }
Advertisement
Add Comment
Please, Sign In to add comment