Advertisement
Guest User

lab4

a guest
Nov 26th, 2014
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.25 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <iostream>
  3. #include<cstring>
  4. #include<conio.h>
  5. #include<clocale>
  6. using namespace std;
  7.  
  8. class MARSH
  9. {
  10. public:
  11. char punkt1[30];
  12. char punkt2[30];
  13. int num;
  14. };
  15.  
  16.  
  17. MARSH In()
  18. {
  19. MARSH baza;
  20. cout << "ВВедите ID : \n";
  21. cin >> baza.num;
  22. cin.get();
  23. cout << "ВВедите Маршрут 1 : \n";
  24. cin.getline(baza.punkt1, 30);
  25.  
  26. cout << "ВВедите Маршрут 2 :\n";
  27. cin.getline(baza.punkt2, 30);
  28.  
  29.  
  30. return baza;
  31. }
  32.  
  33.  
  34. void Out(MARSH baza)
  35. {
  36. cout << " ID : ";
  37. cout << baza.num << "\n";
  38.  
  39. cout << " маршрут 1: ";
  40. cout << baza.punkt1 << "\n";
  41.  
  42. cout << " маршрут 2:";
  43. cout << baza.punkt2 << "\n";
  44. }
  45.  
  46. void sort(int size, MARSH * baza)
  47. {
  48. int i, j;
  49. MARSH tmp;
  50. for ( i = 0; i < size-1; i++) //переход по 1, 2, 3 элементу
  51. {
  52. for (j = i+1; j < size; j++) //сравнение с впепреди идущим элементом
  53. {
  54. if (baza[i].num > baza[j].num)
  55. {
  56. //поменять местами классы
  57. tmp = baza[i];
  58. baza[i] = baza[j];
  59. baza[j] = tmp;
  60. }
  61. }
  62. }
  63. }
  64.  
  65. void search(int size, MARSH * baza)
  66. {
  67. bool flag1 = true;
  68. char item[30];
  69. cout << "Enter location where are you interested to begin or stop ride: " << endl; // ввод искомого пункта
  70. cin >> item;
  71. cout << endl;
  72.  
  73. for (int q = 0; q < size; q++)
  74. {
  75. if(item == baza[q].punkt1 || item == baza[q].punkt2) // выводим если есть совпадения
  76. {
  77. flag1 = true;
  78. Out(baza[q]);
  79. }
  80. if (flag1 == false)
  81. {
  82. cout << "There is no routes that begins or starts in location that you have entered" << endl;
  83. break;
  84. }
  85. }
  86. _getch();
  87. }
  88.  
  89.  
  90. void main()
  91. {
  92. setlocale(LC_CTYPE, "rus");
  93. int size = 8;
  94. bool flag = false;
  95. MARSH *baza = new MARSH[size];
  96.  
  97.  
  98. char menu = 'y';
  99.  
  100.  
  101. while (menu != '0'){
  102.  
  103. cout << "\t\tбаза маршрутов\n";
  104.  
  105. cout << "1.ввод маршрутов в базу\n";
  106. cout << "2.добавление маршрутов в базу\n";
  107. cout << "3.показ всех маршрутов\n";
  108. cout << "4.сортировка маршрутов\n";
  109. cout << "5.задание\n";
  110.  
  111.  
  112.  
  113.  
  114. cin >> menu;
  115. switch (menu)
  116. {
  117. case '5':
  118. search(size, baza);
  119.  
  120.  
  121. case '1':
  122. if (flag==false)
  123. {
  124. system("cls");
  125. for (int i = 0; i < size; i++){
  126. baza[i] = In();
  127. }
  128. flag = true;
  129. _getch();
  130. system("cls");
  131. break;
  132. }
  133. else
  134. cout << "вы уже ввели маршруты в базу\n";
  135. _getch();
  136. system("cls");
  137. break;
  138.  
  139. case '4':
  140. sort(size, baza);
  141.  
  142. case '3':
  143. system("cls");
  144. for (int i = 0; i < size; i++){
  145. Out(baza[i]);
  146. cout << "\n---------------------------------\n";
  147. }
  148. _getch();
  149. system("cls");
  150. break;
  151.  
  152.  
  153.  
  154.  
  155. case '2':
  156. system("cls");
  157. int l;
  158. cout << "сколько Маршрутов хотите добавить в базу? : \n";
  159. cin >> l;
  160.  
  161.  
  162. system("cls");
  163. MARSH *a = new MARSH[size + l];
  164. for (int i = 0; i < size; i++){
  165. a[i] = baza[i];
  166. }
  167.  
  168. for (int i = size; i < size + l; i++){
  169. a[i] = In();
  170. }
  171.  
  172.  
  173.  
  174. delete[]baza;
  175. baza = a;
  176. size = size + l;
  177. system("cls");
  178. break;
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187. }
  188. }
  189. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement