Guest User

Untitled

a guest
Nov 22nd, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.64 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. #define HOUR 60
  4.  
  5. using namespace std;
  6.  
  7. class Train {
  8. public:
  9.  
  10. string to;
  11. int number;
  12. int hour;
  13. int min;
  14. int osits;
  15. int ksists;
  16. int psits;
  17. Train();
  18. Train(string to, int number, int hour, int min, int osits, int ksists, int psits) {
  19. this->to = to;
  20. this->number = number;
  21. this->hour = hour;
  22. this->min = min;
  23. this->osits = osits;
  24. this->ksists = ksists;
  25. this->psits = psits;
  26. }
  27.  
  28. void show() {
  29. cout << "Train: "<< this->to << " №:" << this->number << " Time: "<< this->hour << "h " << this->min << "min Общии:" << this->osits << " Купэ:" << this->ksists << " Плацкарт:" << this->psits << endl;
  30. }
  31.  
  32. int getAbsTime() {
  33. return this->min + this->hour * 60;
  34. }
  35.  
  36. ~Train();
  37. };
  38.  
  39. void showTo(Train *trains[],string search, int *size) {
  40. for (int i = 0; i < *size; i++) {
  41. if (trains[i]->to == search) {
  42. trains[i]->show();
  43. }
  44. }
  45. }
  46.  
  47. void showPathAfter(Train *trains[], string search, int *size, int hour, int min) {
  48. int absTime = hour * HOUR + min;
  49. for (int i = 0; i < *size; i++) {
  50. if ((trains[i]->getAbsTime() > absTime) && (trains[i]->to == search)) {
  51. trains[i]->show();
  52. }
  53. }
  54. }
  55.  
  56. void showToSits(Train *trains[], string search, int *size) {
  57. for (int i = 0; i < *size; i++) {
  58. if ((trains[i]->to == search) && (trains[i]->osits > 0)) {
  59. trains[i]->show();
  60. }
  61. }
  62. }
  63.  
  64. int main() {
  65. int size = 5;
  66. Train *trains[size];
  67. trains[0] = new Train( "A", 242, 12, 20, 0, 23, 100);
  68. trains[1] = new Train( "B", 311, 14, 50, 10, 25, 10);
  69. trains[2] = new Train( "C", 941, 9, 00, 100, 31, 12);
  70. trains[3] = new Train( "A", 19, 21, 00, 00, 10, 11);
  71. trains[4] = new Train( "A", 312, 18, 00, 2, 10, 39);
  72.  
  73. int mode;
  74. bool exit = false;
  75. string tmp;
  76. int hour, min;
  77. while (true) {
  78. cout << "--------------------------" << endl;
  79. cout << "Введите команду 1 - Путь до пункта" << endl;
  80. cout << "Введите команду 2 - Путь до пункта после времени" << endl;
  81. cout << "Введите команду 3 - Путь до с общими местами" << endl;
  82. cout << "-----------------------------" << endl;
  83. cout << "Введите команду 0 - exit!" << endl;
  84. cin >> mode;
  85. switch(mode) {
  86. case 1:
  87. cout << "Enter path" << endl;
  88. cin >> tmp;
  89. showTo(trains, tmp, &size);
  90. break;
  91. case 2:
  92. cout << "Enter path" << endl;
  93. cin >> tmp;
  94. cout << "Enter time" << endl;
  95. cin >> hour >> min;
  96. showPathAfter(trains, tmp, &size, hour, min);
  97. case 3:
  98. cout << "Enter path" << endl;
  99. cin >> tmp;
  100. showToSits(trains, tmp, &size);
  101. break;
  102. case 0:
  103. exit = true;
  104. break;
  105. }
  106. if (exit) break;
  107. }
  108. return 0;
  109. }
Add Comment
Please, Sign In to add comment