Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //#include <conio.h>
- #include <iostream>
- #include <cstdlib>
- #include <string.h>
- using namespace std;
- struct Train //с помощью слова struct объявляется структура Train.
- // По своей сути структура представляет собой набор данных.
- //Она имеет поля, которые в свою очередь могут иметь разные типы данных, и даже быть массивами.
- //Также можно сделать структуру в структуре, что довольно часто используется.
- //Итак, мы создали структуру с 4 полями
- {
- int number;
- char path[10];
- int hour;
- int min;
- };
- using namespace std;
- int main() //В этой части мы создаем 4 наших структур, у каждой из них, напомню, 4 поля:
- //пункт назначения, номер поезда, часы и минуты отправления поезда.
- //Все эти поля в нашей программе заполняет пользователь вручную с помощью консоли.
- //За это отвечает оператор ввода cin.
- {
- const int N = 4;
- setlocale(LC_ALL, "Russian");
- Train trains[4];
- //В этой части мы создаем 4 наших структур, у каждой из них, напомню, 4 поля:
- //пункт назначения, номер поезда, часы и минуты отправления поезда.
- //Все эти поля в нашей программе заполняет пользователь вручную с помощью консоли.
- //За это отвечает оператор ввода cin.
- for (int i = 0; i < N; i++) {
- cout << "punkt naznacheniya " << i + 1 << endl;
- cin >> trains[ i ].path ;
- cout << "nomer poezda " << i + 1 << endl;
- cin >> trains[ i ].number;
- cout << " vremya otpravleniya chasi" << i + 1 << endl;
- cin >> trains[ i ].hour ;
- cout << " vremya otpravleniya minuti " << i + 1 << endl;
- cin >> trains[ i ].min ;
- }
- for(int i = 0; i < N; i++)
- {
- for(int j = i + 1; j < N; j++) //После того как мы заполнили поля наших структур,
- //по заданию нам нужно вывести их отсортированными по пути в алфавитном порядке.
- //Для этого используется конструкция сравнения двух структур по их путям отправления.
- // Сделано это с помощью 2 циклов и функции сравнения строк strcmp.
- // После сортировки уже выводим на экран консоли информацию о структурах.
- {
- if(strcmp(trains[i].path, trains[j].path)>0)
- {
- Train tmp = trains[i];
- trains[i] = trains[j];
- trains[j] = tmp;
- }
- }
- }
- for (int i = 0; i < N; ++i)
- {
- cout << " punkt naznacheniya: " << trains[ i ].path << " nomer poezda: " << trains[ i ].number << " vremya otpravleniya : " << trains[ i ].hour << ":" << trains[ i ].min << endl << endl;
- }
- // на очереди у нас задание с клавиатуры времени отправления и вывод тех поездов, которые отправятся после этого времени:
- // Итак, сначала мы просим пользователя ввести время в часах и минутах, отдельно записываем часы и минуты в переменные.
- //Далее сравниваем это время с временем отправления каждого поезда, и соответственно,
- //выводим информацию о тех поездах время отправления которых позже, чем ввел пользователь.
- //Если таких поездов не обнаружилось, то мы выводим информацию об их отсутствии.
- int time_h;
- int time_min;
- int k = 0;
- cout << "Vvedite vashe vremya (chasi zatem minuti)" << endl;
- cin >> time_h >> time_min;
- cout << " vashe vremya:" << time_h <<":" << time_min << endl << endl;
- for(int i = 0; i < N; i++)
- {
- if((time_h < trains[i].hour) || (time_h == trains[i].hour && time_min < trains[i].min))
- {
- cout << " sledyushie poezda otpravyatsya posle vashego vremeni: " << trains[i].number <<" s vremenem "<< trains[i].hour << ":"<< trains[i].min << endl;
- k++;
- }
- }
- if(k == 0)
- cout << " Net podhodyashih poesdov" << endl;
- //_getch();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement