Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <conio.h>
- #include <locale.h>
- struct time
- {
- int h;
- int m;
- void enter()
- {
- scanf("%d:%d", &h, &m);
- }
- void get()
- {
- printf("%d:%d", h, m);
- }
- int comp(time time1, time time2)
- {
- if(time1.h == time2.h && time1.m == time2.m)
- return 0;
- else if(time1.h < time2.h && time1.m < time2.m)
- return 1;
- else
- return 2;
- }
- };
- struct avia
- {
- char film[32];
- time time;
- int price;
- int count_;
- void reg()
- {
- printf("Пожалуйста, введите название фильма: ");
- scanf("%s", &film);
- printf("Пожалуйста, введите время сеанса: ");
- time.enter();
- printf("Пожалуйста, введите стоимость билета: ");
- scanf("%d", &price);
- printf("Пожалуйста, введите количество зрителей: ");
- scanf("%i", &count_);
- printf("\n\nРегистрация прошла успешно\n\n");
- }
- void getInfo()
- {
- printf("Название фильма: %s", film);
- printf("\nВремя сеанса: ");
- time.get();
- printf("\nСтоимость билета: %d", price);
- printf("Количество зрителей: %d\n\n", count_);
- }
- };
- void enter(avia *arr, int size_)
- {
- for(int i=0; i<size_; i++)
- {
- arr[i].reg();
- }
- }
- void sort_(avia *arr, int size_)
- {
- for(int i=0; i<size_; i++)
- {
- for(int j=0; j<size_; j++)
- {
- if(strcmp(arr[i].film, arr[j].film) < 0)
- {
- struct avia T = arr[i];
- arr[i] = arr[j];
- arr[j] = T;
- }
- }
- }
- }
- void del_(avia *arr, int &size_)
- {
- printf("Введите элемент, который нужно удалить: ");
- int num;
- scanf("%d", &num);
- num--;
- size_--;
- for(int i=num; i<size_; i++)
- {
- arr[i] = arr[i+1];
- }
- printf("Операция выполнена успешно!\n");
- }
- void print_(avia *arr, int size_)
- {
- for(int i=0; i<size_; i++)
- {
- arr[i].getInfo();
- }
- }
- int search_(avia *arr, int size_)
- {
- int par_;
- printf("По какому параметру будем искать, введите цифру из списка:\n1.Название фильма\n2.Время сеанса\n3.Цена билета\n4.Количество зрителей\n");
- scanf("%d", &par_);
- char film[32];
- time time;
- int price;
- int count_;
- switch(par_)
- {
- case 1: scanf("%s", &film); for(int i=0; i<size_; i++) {if(arr[i].film == film) return i;}
- case 2: time.enter(); for(int i=0; i<size_; i++) {if(time.comp(time, arr[i].time) == 0) return i;}
- case 3: scanf("%d", &price); for(int i=0; i<size_; i++) {if(arr[i].price == price) return i;}
- case 4: scanf("%d", &count_); for(int i=0; i<size_; i++) {if(arr[i].count_ == count_) return i;}
- default: return -1;
- }
- }
- int exit_()
- {
- printf("==================\n");
- printf("= кино-симулятор =\n");
- printf("= завершает свою =\n");
- printf("= работу =\n");
- printf("==================\n");
- exit(0);
- }
- int main()
- {
- setlocale(LC_ALL, "rus");
- avia arr[10];
- int n;
- printf("Введите количество элементов: ");
- scanf("%d", &n);
- for(int i=0; i<n; i++)
- {
- arr[i].reg();
- }
- int menu = 0;
- while(menu != 5)
- {
- printf("Выберите из меню команду:\n1. Сортировка\n2.Удалить элемент\n3.Вывести\n4.Найти\n5.Выйти\n");
- scanf("%i", &menu);
- if(menu == 1)
- sort_(arr, n);
- if(menu == 2)
- del_(arr, n);
- if(menu == 3)
- print_(arr, n);
- if(menu == 4)
- arr[search_(arr, n)-1].getInfo();
- if(menu == 5)
- exit_();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement