PhotoShaman

Зашквар11

Feb 17th, 2017
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.98 KB | None | 0 0
  1. #include <fstream>
  2. #include <iostream>
  3. #include <clocale>
  4. #include <windows.h>
  5.  
  6. using namespace std;
  7. //Написати програму, яка створює бінарний файл з даними про сканери (дані вводяться з
  8. //клавіатури) – 6 - 8 записів.Передбачити також виводити вмісту файла на екран.
  9. //Написати функцію, яка виводить дані з файлу, що відповідають умовам, зазначеним у варіанті
  10. //завдання :
  11. //Підрахувати кількість сканерів дорожчих за 1000 грн.
  12.  
  13. struct scan_info {
  14.     char model[25];                 // найменування моделі
  15.     int price;                      // ціна
  16.     double x_size;                  // горизонтальний розмір області сканування
  17.     double y_size;                  // вертикальний розмір області сканування
  18.     int optr;                       // оптичний дозвіл
  19.     int grey;                       // число градацій сірого
  20. };
  21.  
  22. int IntInput()
  23. {
  24.     int imputNumber;
  25.     while (!(cin >> imputNumber) || (cin.peek() != '\n'))
  26.     {
  27.         cin.clear();
  28.         while (cin.get() != '\n');
  29.         cout << "Это не целое число. Попробуйте еще раз.\n";
  30.     }
  31.     return imputNumber;
  32. }
  33.  
  34. double DoubleInput()
  35. {
  36.     double imputNumber;
  37.     while (!(cin >> imputNumber) || (cin.peek() != '\n'))
  38.     {
  39.         cin.clear();
  40.         while (cin.get() != '\n');
  41.         cout << "Это не число. Попробуйте еще раз.\n";
  42.     }
  43.     return imputNumber;
  44. }
  45.  
  46. void main()
  47. {
  48.     setlocale(LC_ALL, "Russian");
  49.     ofstream Fout;
  50.     Fout.open("C:\\Users\\User\\Desktop\\OutputScaners.scaners", ios::binary);
  51.  
  52.     int scanersCount;
  53.     cout << "Введите количество сканеров:";
  54.     scanersCount = IntInput();
  55.     scan_info TScanerOutput;
  56.     for (int i = 1; i <= scanersCount; i++)
  57.     {
  58.         cout << "----- Сканер #" << i << " -----";
  59.         cout << "\nВведите название модели:";
  60.         cin >> TScanerOutput.model;
  61.         cout << "\nВведите цену модели:";
  62.         TScanerOutput.price = IntInput();
  63.         cout << "\nВведите горизонтальный размер области сканирования:";
  64.         TScanerOutput.x_size = DoubleInput();
  65.         cout << "\nВведите вертикальный размер области сканирования:";
  66.         TScanerOutput.y_size = DoubleInput();
  67.         cout << "\nВведите оптическое разрешение:";
  68.         TScanerOutput.optr = IntInput();
  69.         cout << "\nВведите число градаций серого:";
  70.         TScanerOutput.grey = IntInput();
  71.         system("cls");
  72.         Fout.write((char*)&TScanerOutput, sizeof(TScanerOutput));
  73.     }
  74.     cout << "Вывести данные файла на экран?(ДА - Space. НЕТ - Esc)";
  75.     while (true)
  76.     {
  77.         if (GetAsyncKeyState(VK_SPACE))
  78.         {
  79.             ifstream Fin;
  80.             scan_info TScanerInput;
  81.             //TScanerInput = new scan_info[scanersCount];
  82.             Fin.open("C:\\Users\\User\\Desktop\\OutputScaners.scaners", ios::binary);
  83.             int moreThanThousand = 0;
  84.             while (!Fin.eof()) //Фиксить чтение структруры
  85.             {
  86.                 Fin.read((char*)&TScanerInput, sizeof(scan_info));
  87.                 //for (int i = 0; i < scanersCount; i++)
  88.                 //{
  89.                     cout << endl << TScanerInput/*[i]*/.model;
  90.                     cout << endl << TScanerInput/*[i]*/.price;
  91.                     cout << endl << TScanerInput/*[i]*/.x_size;
  92.                     cout << endl << TScanerInput/*[i]*/.y_size;
  93.                     cout << endl << TScanerInput/*[i]*/.optr;
  94.                     cout << endl << TScanerInput/*[i]*/.grey;
  95.                 //}
  96.                 //if (Fin.read((char*)&TScanerInput, sizeof(TScanerInput)))
  97.                 //{
  98.                 //  if (TScanerInput.price > 1000)
  99.                 //  {
  100.                 //      moreThanThousand++;
  101.                 //  }
  102.                 //}
  103.             }
  104.             Fin.close();
  105.             cout << endl << "Сканеров дороже 1000: " << moreThanThousand << " шт.";
  106.             break;
  107.         }
  108.         if (GetAsyncKeyState(VK_ESCAPE))
  109.         {
  110.             break;
  111.         }
  112.     }
  113.  
  114.     Fout.close();
  115.     system("pause");
  116. }
Advertisement
Add Comment
Please, Sign In to add comment