0_liprikon_0

Zadanie_5

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