Advertisement
Guest User

Untitled

a guest
Jun 20th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.16 KB | None | 0 0
  1. //#include <conio.h>
  2. #include <iostream>
  3. #include <cstdlib>
  4. #include <string.h>
  5. using namespace std;
  6.  
  7. struct Train //с помощью слова struct объявляется структура Train.
  8. // По своей сути структура представляет собой набор данных.
  9. //Она имеет поля, которые в свою очередь могут иметь разные типы данных, и даже быть массивами.
  10. //Также можно сделать структуру в структуре, что довольно часто используется.
  11. //Итак, мы создали структуру с 4 полями
  12. {
  13. int number;
  14. char path[10];
  15. int hour;
  16. int min;
  17. };
  18. using namespace std;
  19. int main() //В этой части мы создаем 4 наших структур, у каждой из них, напомню, 4 поля:
  20. //пункт назначения, номер поезда, часы и минуты отправления поезда.
  21. //Все эти поля в нашей программе заполняет пользователь вручную с помощью консоли.
  22. //За это отвечает оператор ввода cin.
  23. {
  24. const int N = 4;
  25. setlocale(LC_ALL, "Russian");
  26. Train trains[4];
  27. //В этой части мы создаем 4 наших структур, у каждой из них, напомню, 4 поля:
  28. //пункт назначения, номер поезда, часы и минуты отправления поезда.
  29. //Все эти поля в нашей программе заполняет пользователь вручную с помощью консоли.
  30. //За это отвечает оператор ввода cin.
  31.  
  32. for (int i = 0; i < N; i++) {
  33. cout << "punkt naznacheniya " << i + 1 << endl;
  34. cin >> trains[ i ].path ;
  35. cout << "nomer poezda " << i + 1 << endl;
  36. cin >> trains[ i ].number;
  37. cout << " vremya otpravleniya chasi" << i + 1 << endl;
  38. cin >> trains[ i ].hour ;
  39. cout << " vremya otpravleniya minuti " << i + 1 << endl;
  40. cin >> trains[ i ].min ;
  41. }
  42. for(int i = 0; i < N; i++)
  43. {
  44. for(int j = i + 1; j < N; j++) //После того как мы заполнили поля наших структур,
  45. //по заданию нам нужно вывести их отсортированными по пути в алфавитном порядке.
  46. //Для этого используется конструкция сравнения двух структур по их путям отправления.
  47. // Сделано это с помощью 2 циклов и функции сравнения строк strcmp.
  48. // После сортировки уже выводим на экран консоли информацию о структурах.
  49. {
  50. if(strcmp(trains[i].path, trains[j].path)>0)
  51. {
  52. Train tmp = trains[i];
  53. trains[i] = trains[j];
  54. trains[j] = tmp;
  55. }
  56. }
  57. }
  58. for (int i = 0; i < N; ++i)
  59. {
  60. cout << " punkt naznacheniya: " << trains[ i ].path << " nomer poezda: " << trains[ i ].number << " vremya otpravleniya : " << trains[ i ].hour << ":" << trains[ i ].min << endl << endl;
  61. }
  62. // на очереди у нас задание с клавиатуры времени отправления и вывод тех поездов, которые отправятся после этого времени:
  63. // Итак, сначала мы просим пользователя ввести время в часах и минутах, отдельно записываем часы и минуты в переменные.
  64. //Далее сравниваем это время с временем отправления каждого поезда, и соответственно,
  65. //выводим информацию о тех поездах время отправления которых позже, чем ввел пользователь.
  66. //Если таких поездов не обнаружилось, то мы выводим информацию об их отсутствии.
  67. int time_h;
  68. int time_min;
  69. int k = 0;
  70. cout << "Vvedite vashe vremya (chasi zatem minuti)" << endl;
  71. cin >> time_h >> time_min;
  72. cout << " vashe vremya:" << time_h <<":" << time_min << endl << endl;
  73. for(int i = 0; i < N; i++)
  74. {
  75. if((time_h < trains[i].hour) || (time_h == trains[i].hour && time_min < trains[i].min))
  76. {
  77. cout << " sledyushie poezda otpravyatsya posle vashego vremeni: " << trains[i].number <<" s vremenem "<< trains[i].hour << ":"<< trains[i].min << endl;
  78. k++;
  79. }
  80. }
  81. if(k == 0)
  82. cout << " Net podhodyashih poesdov" << endl;
  83.  
  84. //_getch();
  85. return 0;
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement