Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <iostream>
- #include<cstring>
- #include<conio.h>
- #include<clocale>
- using namespace std;
- class MARSH
- {
- public:
- char punkt1[30];
- char punkt2[30];
- int num;
- };
- MARSH In()
- {
- MARSH baza;
- cout << "ВВедите ID : \n";
- cin >> baza.num;
- cin.get();
- cout << "ВВедите Маршрут 1 : \n";
- cin.getline(baza.punkt1, 30);
- cout << "ВВедите Маршрут 2 :\n";
- cin.getline(baza.punkt2, 30);
- return baza;
- }
- void Out(MARSH baza)
- {
- cout << " ID : ";
- cout << baza.num << "\n";
- cout << " маршрут 1: ";
- cout << baza.punkt1 << "\n";
- cout << " маршрут 2:";
- cout << baza.punkt2 << "\n";
- }
- void sort(int size, MARSH * baza)
- {
- int i, j;
- MARSH tmp;
- for ( i = 0; i < size-1; i++) //переход по 1, 2, 3 элементу
- {
- for (j = i+1; j < size; j++) //сравнение с впепреди идущим элементом
- {
- if (baza[i].num > baza[j].num)
- {
- //поменять местами классы
- tmp = baza[i];
- baza[i] = baza[j];
- baza[j] = tmp;
- }
- }
- }
- }
- void search(int size, MARSH * baza)
- {
- bool flag1 = true;
- char item[30];
- cout << "Enter location where are you interested to begin or stop ride: " << endl; // ввод искомого пункта
- cin >> item;
- cout << endl;
- for (int q = 0; q < size; q++)
- {
- if(item == baza[q].punkt1 || item == baza[q].punkt2) // выводим если есть совпадения
- {
- flag1 = true;
- Out(baza[q]);
- }
- if (flag1 == false)
- {
- cout << "There is no routes that begins or starts in location that you have entered" << endl;
- break;
- }
- }
- _getch();
- }
- void main()
- {
- setlocale(LC_CTYPE, "rus");
- int size = 8;
- bool flag = false;
- MARSH *baza = new MARSH[size];
- char menu = 'y';
- while (menu != '0'){
- cout << "\t\tбаза маршрутов\n";
- cout << "1.ввод маршрутов в базу\n";
- cout << "2.добавление маршрутов в базу\n";
- cout << "3.показ всех маршрутов\n";
- cout << "4.сортировка маршрутов\n";
- cout << "5.задание\n";
- cin >> menu;
- switch (menu)
- {
- case '5':
- search(size, baza);
- case '1':
- if (flag==false)
- {
- system("cls");
- for (int i = 0; i < size; i++){
- baza[i] = In();
- }
- flag = true;
- _getch();
- system("cls");
- break;
- }
- else
- cout << "вы уже ввели маршруты в базу\n";
- _getch();
- system("cls");
- break;
- case '4':
- sort(size, baza);
- case '3':
- system("cls");
- for (int i = 0; i < size; i++){
- Out(baza[i]);
- cout << "\n---------------------------------\n";
- }
- _getch();
- system("cls");
- break;
- case '2':
- system("cls");
- int l;
- cout << "сколько Маршрутов хотите добавить в базу? : \n";
- cin >> l;
- system("cls");
- MARSH *a = new MARSH[size + l];
- for (int i = 0; i < size; i++){
- a[i] = baza[i];
- }
- for (int i = size; i < size + l; i++){
- a[i] = In();
- }
- delete[]baza;
- baza = a;
- size = size + l;
- system("cls");
- break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement