Advertisement
Aleksandr_Grigoryev

Кек

Mar 15th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.12 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <iomanip>
  5. using namespace std;
  6. struct abitu {
  7.     char name[21];
  8.     int NumList;
  9.     int matem, Rus, Physics;
  10. };
  11. void first(string filename)
  12. {
  13.     int LengthName = 20;
  14.     ifstream fin(filename, ios::binary);
  15.     abitu man;
  16.     while (fin.peek() != EOF)
  17.     {
  18.         fin.read((char*)&man, sizeof(abitu));
  19.         cout << man.name << " " << man.matem;
  20.         if (man.Rus == 5)
  21.         {
  22.             cout << " " << "Русский язык";
  23.         }
  24.         if (man.Physics == 5)
  25.         {
  26.             cout << " " << "Физика";
  27.         }
  28.         cout << endl;
  29.     }
  30.     fin.close();
  31. }
  32. void second(string filename)
  33. {
  34.     int LengthName = 20;
  35.     ifstream fin(filename, ios::binary);
  36.     abitu man;
  37.     while (fin.peek() != EOF)
  38.     {
  39.         fin.read((char*)&man, sizeof(abitu));
  40.         cout << man.name << " " << man.NumList << " ";
  41.         cout << (((double)(man.matem + man.Rus + man.Physics)) / 3);
  42.         cout << endl;
  43.     }
  44.     fin.close();
  45. }
  46. void third(string filename)
  47. {
  48.     int LengthName = 20;
  49.     const int n = 3;
  50.     ifstream fin(filename, ios::binary);
  51.     abitu man;
  52.     double Marks[n] = { 0 };
  53.     int count = 0;
  54.     while (fin.peek() != EOF)
  55.     {
  56.         fin.read((char*)&man, sizeof(abitu));
  57.         count++;
  58.         Marks[0] += man.matem;
  59.         Marks[1] += man.Rus;
  60.         Marks[2] += man.Physics;
  61. }
  62.     cout  << "Математика"  << (Marks[0] / count) << endl;
  63.     cout  << "Русский язык"  << (Marks[1] / count) << endl;
  64.     cout << "Физика" << (Marks[2] / count) << endl;
  65.     fin.close();
  66. }
  67. void fourth(string filename)
  68. {
  69.     const int n = 3;
  70.     int LengthName = 20;
  71.     ifstream fin(filename, ios::binary);
  72.     abitu man;
  73.     int Marks[n] = { 0 };
  74.     int count = 0;
  75.     while (fin.peek() != EOF)
  76.     {
  77.         fin.read((char*)&man, sizeof(abitu));
  78.         count++;
  79.         Marks[man.matem - 3]++;
  80.     }
  81.     cout << "Кол-во оценок по математике" << endl;
  82.     cout << setw(LengthName) << "3 " << (Marks[0]) << endl;
  83.     cout << setw(LengthName) << "4" << (Marks[1]) << endl;
  84.     cout << setw(LengthName) << "5" << (Marks[2]) << endl;
  85.     fin.close();
  86. }
  87. void fifth(string filename)
  88. {
  89.     int LengthName = 20;
  90.     ifstream fin(filename, ios::binary);
  91.     ofstream fout("out.bin", ios::binary);
  92.     abitu man;
  93.     while (fin.peek() != EOF)
  94.     {
  95.         fin.read((char*)&man, sizeof(abitu));
  96.         if (man.matem + man.Rus + man.Physics >= 12)
  97.             fout.write((char*)&man, sizeof(abitu));
  98.     }
  99.     fin.close();
  100.     fout.close();
  101.     fin.open("out.bin", ios::binary);
  102.     while (fin.peek() != EOF)
  103.     {
  104.         fin.read((char*)&man, sizeof(abitu));
  105.         cout << setw(LengthName) << man.name << " " << man.NumList << " ";
  106.         cout << "Матем. " << man.matem << " Рус. " << man.Rus << " Физ. " << man.Physics;
  107.         cout << endl;
  108.     }
  109.     fin.close();
  110. }
  111.  
  112. int main()
  113. {
  114.     setlocale(LC_ALL, "Russian");
  115.     ifstream fin("abitu.txt");
  116.     ofstream fout("abitu.bin", ios::binary);
  117.     if (!fin.is_open())
  118.     {
  119.         cout << "can't open file" << endl;
  120.         exit(-1);
  121.     }
  122.     else
  123.     {
  124.         abitu man;
  125.         while (fin.peek() != EOF)
  126.         {
  127.             fin >> man.name;
  128.             fin >> man.NumList;
  129.             fin >> man.matem >> man.Rus >> man.Physics;
  130.             fout.write((char*)&man, sizeof(abitu));
  131.  
  132.         }
  133.         fin.close();
  134.         fout.close();
  135.         third("abitu.bin");
  136.     }
  137.     system("pause");
  138.     return 0;
  139. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement