Advertisement
A1exyndr

Untitled

May 26th, 2022
572
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <cmath>
  3. #include <stdio.h>
  4. #include <fstream>
  5.  
  6. using namespace std;
  7. string dis[3] = { "Физика", "Математика", "Информатика" };
  8.  
  9. struct baza {
  10.     int numb;
  11.     string name;
  12.     string gr;
  13.     int esm[3];
  14. };
  15.  
  16. void chtenie(baza data[10]) {
  17.     string str;
  18.     ifstream f("wedomost.txt");
  19.     for (int i = 0; i < 10; i++) {
  20.         f.read((char*)&data[i].numb, sizeof(data[i].numb));
  21.         f.read((char*)&data[i].name, sizeof(data[i].name));
  22.         f >> str;
  23.         data[i].name = data[i].name + " " + str;
  24.         cout << data[i].numb << " " << data[i].name << "\n";
  25.         for (int j = 0; j < 3; j++) {
  26.             f.read((char*)&data[i].esm[j], sizeof(data[i].esm[j]));
  27.             cout << dis[j] << " = " << data[i].esm[j] << " ";
  28.         }
  29.         cout << "\n";
  30.     }
  31. }
  32. void zapis(baza data[10]) {
  33.     ofstream a("wedomost.dat", ios::binary);
  34.     int k = 0, n = 0;
  35.     cout << "\nДанные о студентах, имеющих хотя бы одну 2\n";
  36.     for (int i = 0; i < 10; i++) {
  37.         for (int j = 0; j < 3; j++) {
  38.             if (data[i].esm[j] == 2)
  39.                 k++;
  40.         }
  41.         if (k > 0) {
  42.             n++;
  43.             cout << data[i].numb << " " << data[i].name << "\n";
  44.             a.write((char*)&data[i].numb, sizeof(data[i].numb));
  45.             a.write((char*)&data[i].name, sizeof(data[i].name));
  46.             for (int j = 0; j < 3; j++) {
  47.                 a.write((char*)&data[i].esm[j], sizeof(data[i].esm[j]));
  48.                 cout << dis[j] << " = " << data[i].esm[j] << " ";
  49.             }
  50.         }
  51.         k = 0;
  52.         cout << "\n";
  53.     }
  54.     if (n == 0)
  55.         cout << "\nТаких студентов нет\n";
  56. }
  57.  
  58. int main() {
  59.     setlocale(LC_ALL, "rus");
  60.     baza data[10];
  61.     cout << "База данных студентов\n";
  62.     chtenie(data);
  63.     zapis(data);
  64. }
Advertisement
RAW Paste Data Copied
Advertisement