Advertisement
Guest User

Untitled

a guest
Mar 21st, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.21 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <conio.h>
  5. #include <locale.h>
  6.  
  7. struct time
  8. {
  9.     int h;
  10.     int m;
  11.  
  12.     void enter()
  13.     {
  14.         scanf("%d:%d", &h, &m);
  15.     }
  16.  
  17.     void get()
  18.     {
  19.         printf("%d:%d", h, m);
  20.     }
  21.  
  22.     int comp(time time1, time time2)
  23.     {
  24.         if(time1.h == time2.h && time1.m == time2.m)
  25.             return 0;
  26.         else if(time1.h < time2.h && time1.m < time2.m)
  27.             return 1;
  28.         else
  29.             return 2;
  30.     }
  31. };
  32.  
  33. struct avia
  34. {
  35.     char film[32];
  36.     time time;
  37.     int price;
  38.     int count_;
  39.  
  40.     void reg()
  41.     {
  42.         printf("Пожалуйста, введите название фильма: ");
  43.         scanf("%s", &film);
  44.         printf("Пожалуйста, введите время сеанса: ");
  45.         time.enter();
  46.         printf("Пожалуйста, введите стоимость билета: ");
  47.         scanf("%d", &price);
  48.         printf("Пожалуйста, введите количество зрителей: ");
  49.         scanf("%i", &count_);
  50.         printf("\n\nРегистрация прошла успешно\n\n");
  51.     }
  52.  
  53.     void getInfo()
  54.     {
  55.         printf("Название фильма: %s", film);
  56.         printf("\nВремя сеанса: ");
  57.         time.get();
  58.         printf("\nСтоимость билета: %d", price);
  59.         printf("Количество зрителей: %d\n\n", count_);
  60.     }
  61.  
  62. };
  63.  
  64. void enter(avia *arr, int size_)
  65. {
  66.     for(int i=0; i<size_; i++)
  67.     {
  68.         arr[i].reg();
  69.     }
  70. }
  71.  
  72. void sort_(avia *arr, int size_)
  73. {
  74.     for(int i=0; i<size_; i++)
  75.     {
  76.         for(int j=0; j<size_; j++)
  77.         {
  78.             if(strcmp(arr[i].film, arr[j].film) < 0)
  79.             {
  80.                 struct avia T = arr[i];
  81.                 arr[i] = arr[j];
  82.                 arr[j] = T;
  83.             }
  84.         }
  85.     }
  86. }
  87.  
  88. void del_(avia *arr, int &size_)
  89. {
  90.     printf("Введите элемент, который нужно удалить: ");
  91.     int num;
  92.     scanf("%d", &num);
  93.     num--;
  94.     size_--;
  95.     for(int i=num; i<size_; i++)
  96.     {
  97.         arr[i] = arr[i+1];
  98.     }
  99.     printf("Операция выполнена успешно!\n");
  100. }
  101.  
  102. void print_(avia *arr, int size_)
  103. {
  104.     for(int i=0; i<size_; i++)
  105.     {
  106.         arr[i].getInfo();
  107.     }
  108. }
  109.  
  110. int search_(avia *arr, int size_)
  111. {
  112.     int par_;
  113.     printf("По какому параметру будем искать, введите цифру из списка:\n1.Название фильма\n2.Время сеанса\n3.Цена билета\n4.Количество зрителей\n");
  114.     scanf("%d", &par_);
  115.     char film[32];
  116.     time time;
  117.     int price;
  118.     int count_;
  119.     switch(par_)
  120.     {
  121.         case 1: scanf("%s", &film); for(int i=0; i<size_; i++) {if(arr[i].film == film) return i;}
  122.         case 2: time.enter(); for(int i=0; i<size_; i++) {if(time.comp(time, arr[i].time) == 0) return i;}
  123.         case 3: scanf("%d", &price); for(int i=0; i<size_; i++) {if(arr[i].price == price) return i;}
  124.         case 4: scanf("%d", &count_); for(int i=0; i<size_; i++) {if(arr[i].count_ == count_) return i;}
  125.         default: return -1;
  126.     }
  127. }
  128.  
  129.  
  130. int exit_()
  131. {
  132.     printf("==================\n");
  133.     printf("= кино-симулятор =\n");
  134.     printf("= завершает свою =\n");
  135.     printf("=     работу     =\n");
  136.     printf("==================\n");
  137.     exit(0);
  138. }
  139.  
  140. int main()
  141. {
  142.     setlocale(LC_ALL, "rus");
  143.     avia arr[10];
  144.     int n;
  145.     printf("Введите количество элементов: ");
  146.     scanf("%d", &n);
  147.     for(int i=0; i<n; i++)
  148.     {
  149.         arr[i].reg();
  150.     }
  151.     int menu = 0;
  152.     while(menu != 5)
  153.     {
  154.         printf("Выберите из меню команду:\n1. Сортировка\n2.Удалить элемент\n3.Вывести\n4.Найти\n5.Выйти\n");
  155.         scanf("%i", &menu);
  156.         if(menu == 1)
  157.             sort_(arr, n);
  158.         if(menu == 2)
  159.             del_(arr, n);
  160.         if(menu == 3)
  161.             print_(arr, n);
  162.         if(menu == 4)
  163.             arr[search_(arr, n)-1].getInfo();
  164.         if(menu == 5)
  165.             exit_();
  166.     }
  167. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement