0_liprikon_0

Zadanie_4

Jan 16th, 2021
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.09 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <Windows.h>
  5. #include <cstdlib>
  6.  
  7. #define N 5 //объявление количества магазинов
  8. #define M 10 //объявление количества товаров
  9.  
  10. using namespace std;
  11.  
  12. struct tovar // товары
  13. {
  14.     string tovar; //наименование товара
  15.     int kolvo; //количество товара
  16.     int cost; //стоимость товара
  17. } TV[M];
  18.  
  19. struct shop //магазины
  20. {
  21.     int shop; //номер магазина
  22.     string surname; //фамилия
  23.     tovar volume;
  24. } CMP[N];
  25. int main()
  26. {
  27.     int i = 0, menu = 0;
  28.  
  29.     setlocale(LC_ALL, "Russian"); //перевод на русский язык
  30.     SetConsoleCP(1251);
  31.     SetConsoleOutputCP(1251);
  32.     system("cls");
  33.  
  34.     cout << "Меню выбора: \nВведите 1 для добавления информации. \nВведите 2 для просмотра. \nВведите 3 для получения списка суммы \nВведите 4 для завершения работы программы.";
  35.     cout << "\nВвод номера пункта меню: ";
  36.     cin >> menu;
  37.  
  38.     do
  39.     {
  40.         switch (menu)
  41.         {
  42.         case 1: //добавление магазина
  43.         {
  44.  
  45.             system("cls");
  46.             ofstream FILE("zadanie.txt", ios_base::app); //открытие файла
  47.             int i = 0, position = 0;
  48.             do
  49.             {
  50.                 string surname = " ", tovar = " ";
  51.                 FILE << endl;
  52.                 cout << "\t\tДобавление нового магазина:\n";
  53.  
  54.                 cout << "Номер магазина: ";
  55.                 cin >> CMP[i].shop;
  56.                 cout << "Фамилия: ";
  57.                 cin.ignore(1, '\n'); //Необходимая очистка буфера ввода для корректности отображения введенных строк
  58.                 getline(cin, surname); //ввод строки фамилии
  59.                 for (int i = 0; i < M; i++)
  60.                 {
  61.                     cout << "Введите наименование товара: ";
  62.                     getline(cin, TV[i].tovar);
  63.                     cout << endl;
  64.                     cout << "Введите количество товара:";
  65.                     cin >> TV[i].kolvo;
  66.                     cout << endl;
  67.                     cout << "Цена товара: ";
  68.                     cin >> TV[i].cost;
  69.                     cout << endl;
  70.                 }
  71.  
  72.                 FILE << "     " << CMP[i].shop << "\t\t" << CMP[i].surname << " ";
  73.                 FILE << TV[i].tovar << "   " << "\t    ";
  74.                 FILE << TV[i].kolvo << "\t\t " << TV[i].cost;
  75.  
  76.                 cout << "\nДобавить ещё один магазин?\nВведите 1, если хотите продолжить, 4, если хотите закончить.\nВвод: ";
  77.                 do
  78.                 {
  79.                     cin >> position;
  80.                     if (position != 1 && position != 4)
  81.                     {
  82.                         cout << "\nТакого варианта не существует.\nВведите номер корректно: ";
  83.                     }
  84.                 } while (position != 1 && position != 4);
  85.  
  86.                 system("cls");
  87.                 i++;
  88.             } while (position != 4);
  89.  
  90.             FILE.close(); //закрытие файла
  91.  
  92.             system("cls");
  93.             cout << "\nВвод данных был выполнен успешно.\n\n";
  94.             system("pause");
  95.             break;
  96.         }
  97.         case 3: //считывание файла и работа с его данными
  98.         {
  99.             int sum = 0;
  100.             int j = 0;
  101.  
  102.             ifstream FILE("zadanie.txt", ios::in); //открытие файла
  103.             if (!FILE.is_open())
  104.             {
  105.                 cout << "\nФайл не может быть открыт!\nПроверьте наличие файла \"zadanie.txt\" и запустите программу заново.\n\n";
  106.                 system("pause");
  107.                 exit(0);
  108.             }
  109.  
  110.             cout << "\tCписок суммы: " << endl;
  111.  
  112.             for (int i = 0; !FILE.eof(); i++)
  113.             {
  114.                 FILE.ignore(255, '\n');
  115.                 FILE >> CMP[i].shop;
  116.                 FILE >> CMP[i].surname;
  117.                 for (int j = 0; j < M; j++)
  118.                     FILE >> TV[i][j].tovar;
  119.                     FILE >> TV[i][j].kolvo;
  120.                     FILE >> TV[i][j].cost;
  121.                 sum += TV[j].kolvo * TV[j].cost;
  122.                 cout << "\tНомер магазина: " << CMP[i].shop << endl << "\tТовара на сумму: " << sum << endl;
  123.             }
  124.         }
  125.         case 4: //выход из программы
  126.         {
  127.             exit(0);
  128.             break;
  129.         }
  130.         }
  131.     } while (menu != 4);
  132. }
Advertisement
Add Comment
Please, Sign In to add comment