Advertisement
gasaichan

Untitled

Sep 24th, 2017
374
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.50 KB | None | 0 0
  1. // Создать структуру для базы данных авиабилетов :
  2. //Компания, пункт назначения, номер рейса, стоимость
  3. //билета. Ввести с клавиатуры данные о нескольких
  4. //проданных билетах.
  5. //Распечатать данные о проданных билетах до заданного пункта назначения.
  6. //Подсчитать суммарную стоимость билетов на заданный рейс.
  7.  
  8.  
  9. #include <stdio.h>
  10. #include <conio.h>
  11. #include <iostream>
  12. #include <random>
  13. #include <time.h>
  14. #include <math.h>
  15.  
  16.  
  17. using namespace std;
  18.  
  19.  
  20. struct avia
  21. {
  22.     char *company;
  23.     char *destiny;
  24.     int numflight;
  25.     int price;
  26. };
  27.  
  28. void Init(avia *a, int length)
  29. {
  30.     for (int i(0); i < length; i++)
  31.     {
  32.         cout << i + 1 << ":\n";
  33.         cout << "Введите название компании: ";
  34.         a[i].company = new char[20];
  35.         cin >> a[i].company;
  36.  
  37.         cout << "Введите пункт назначения: ";
  38.         a[i].destiny = new char[20];
  39.         cin >> a[i].destiny;
  40.  
  41.         cout << "Введите номер рейса: ";
  42.         cin >> a[i].numflight;
  43.         cout << "Введите  стоимость билета: ";
  44.         cin >> a[i].price;
  45.     }
  46. }
  47.  
  48.  
  49. void menu()
  50. {
  51.     cout << "1.Создать базу авиабилетов (eng): \n";
  52.     cout << "2.Распечатать данные о проданных билетах до заданного пункта назначения: \n";
  53.     cout << "3.Подсчитать суммарную стоимость билетов на заданный рейс: \n";
  54.     cout << "4.Выход: \n";
  55. }
  56.  
  57. void ShowTicket(const avia *a, int lenght)
  58. {
  59.     char *dest = new char[20];
  60.     cout << "Введите пункт назначения: ";
  61.     cin.clear();
  62.     cin >> dest;
  63.  
  64.     for (int i(0); i < lenght; i++)
  65.  
  66.     {
  67.         if (!strcmp(a[i].destiny, dest))
  68.         {
  69.             cout << "Компания:\t ";
  70.             cout << "Пункт назначения:\t ";
  71.             cout << "Номер рейса:\t ";
  72.             cout << "Стоимость билета:\t " << endl;
  73.             cout << "-----------------------------------------------------------------" << endl;
  74.             cout << a[i].company << "\t\t";
  75.             cout << a[i].destiny << "\t\t";
  76.             cout << a[i].numflight << "\t\t";
  77.             cout << a[i].price << "\t\t";
  78.             cout << endl;
  79.  
  80.         }
  81.     }
  82. }
  83.  
  84. void Free(avia *a, int lenght)
  85. {
  86.     for (int i(0); i < lenght; i++)
  87.     {
  88.         delete[] a[i].company;
  89.         delete[] a[i].destiny;
  90.     }
  91. }
  92.  
  93. void CountNum(avia *a, int length)
  94. {
  95.  
  96.     int flight_number = 0, sum = 0;
  97.     cout << "Введите номер рейса, суммарную стоимость билетов которого хотите узнать: ";
  98.     cin >> flight_number;
  99.     for (int i(0); i < length; i++)
  100.     {
  101.         if (a[i].numflight == flight_number)
  102.         {
  103.             sum = a[i].price + sum;
  104.         }
  105.     }
  106.     cout << "Суммарная стоимость билетов равна: " << sum << endl;
  107. }
  108.  
  109.  
  110. int main()
  111. {
  112.     setlocale(LC_ALL, "Russian");
  113.  
  114.     int N;
  115.     cout << "Введите количество авиабилетов: ";
  116.     cin >> N;
  117.  
  118.     avia *emp = new avia[N];
  119.  
  120.     char c;
  121.     do
  122.     {
  123.         menu();
  124.         cin >> c;
  125.  
  126.         switch (c)
  127.         {
  128.         case '1': system("cls"); Init(emp, N); break;
  129.         case '2': system("cls"); ShowTicket(emp, N); break;
  130.         case '3': system("cls"); CountNum(emp, N); break;
  131.         case '4': break;
  132.         default: cout << "Неверный пункт меню!\n";
  133.         }
  134.     } while (c != '4');
  135.  
  136.     Free(emp, N);
  137.     delete[] emp;
  138.     return 0;
  139. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement