Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

меню без ф-ций

.txt
Скачиваний:
0
Добавлен:
06.10.2025
Размер:
7.4 Кб
Скачать
#include <iostream>
#include <conio.h>
using namespace std;

void ShowMenu(int str)
{
    system("cls");
    cout << "ДЕРЕВЬЯ" << endl;
    printf("%s1. Двоичное дерево\n", str == 1 ? " => " : " ");
    printf("%s2. Преобразовать в АВЛ-дерево\n", str == 2 ? " = > " : " ");
    printf("%s3. Парсинг\n", str == 3 ? " => " : " ");
    printf("%s4. Выход\n", str == 4 ? " => " : " ");
}

void ShowMenu1(int str)
{
    system("cls");
    cout << "ДВОИЧНОЕ ДЕРЕВО" << endl;
    printf("%s1. Добавить новый элемент\n", str == 1 ? " => " : " ");
    printf("%s2. Удалить элемент\n", str == 2 ? " => " : " ");
    printf("%s3. Найти элемент\n", str == 3 ? " => " : " ");
    printf("%s4. Назад\n", str == 4 ? " => " : " ");
}
void ShowMenu2(int str)
{
    system("cls");
    cout << "ПАРСИНГ" << endl;
    printf("%s1. Прямой обход\n", str == 1 ? " => " : " ");
    printf("%s2. Обратный обход\n", str == 2 ? " => " : " ");
    printf("%s3. Симметричный обход\n", str == 3 ? " => " : " ");
    printf("%s4. Обход в ширину\n", str == 4 ? " => " : " ");
    printf("%s5. Назад\n", str == 5 ? " => " : " ");
}

int main() {

    setlocale(0, "");
    int str = 1, ind = 4, usl = 0;
    int com;
    int str1 = 1, ind1 = 4, usl1 = 0, avalue = 0, rvalue = 0, svalue = 0;
    int com1;
    int str2 = 1, ind2 = 5, usl2 = 0;
    int com2;


    while (usl == 0) {
        ShowMenu(str);
        com = _getch();
        if (com >= '1' && com <= '4') str = com - '0';
        if (com == 224) {
            com = _getch();
            switch (com) {
            case 72:
                str = (str - 1 + 3) % 4 + 1;
                break;
            case 80:
                str = str % 4 + 1;
                break;
            }
        }
        if (com == 13)
        {
            switch (str)
            {
            case 1: /*двоичное дерево*/
                system("cls");
                cout << "Двоичное дерево, прочтенное из файла:"<<endl;
                //ф-ция которая показывает дерево
                system("pause");
                break;

            case 2: /*АВЛ-дерево*/
                system("cls");
                cout << "Двоичное дерево, преобразованное в АВЛ:" << endl;
                //ф-ция которая показывает дерево
                while (usl1 == 0) {
                    ShowMenu1(str1);
                    com1 = _getch();
                    if (com1 >= '1' && com1 <= '4') str1 = com1 - '0';
                    if (com1 == 224) {
                        com1 = _getch();
                        switch (com1) {
                        case 72:
                            str1 = (str1 - 1 + 3) % 4 + 1;
                            break;
                        case 80:
                            str1 = (str1 - 1 + 1) % 4 + 1;
                            break;
                        }
                    }
                    if (com1 == 13)
                    {
                        switch (str1)
                        {
                        case 1: //добавление эл-та
                            system("cls");
                            cout << "Введите новый элемент:" << endl;
                            cin >> avalue;
                            //ф-ция добавления
                            system("pause");
                            break;
                        case 2: //удаление эл-та
                            system("cls");
                            cout << "Какой элемент удалить?:" << endl;
                            cin >> rvalue;
                            //ф-ция удаления
                            system("pause");
                            break;
                        case 3: //поиск эл-та
                            system("cls");
                            cout << "Какой элемент найти?" << endl;
                            cin >> svalue;
                            //ф-ция поиск
                            system("pause");
                            break;
                        case 4:
                            usl1 = 1;
                            str1 = 1;
                            break;
                        }
                    }
                }
                usl1 = 0;
                break;

            case 3: /*парсинг*/
                system("cls");
                cout << "Текущее дерево:" << endl;
                //ф-ция которая показывает дерево
                while (usl2 == 0) {
                    ShowMenu2(str2);
                    com2 = _getch();
                    if (com2 >= '1' && com2 <= '5') str2 = com2 - '0';
                    if (com2 == 224) {
                        com2 = _getch();
                        switch (com2) {
                        case 72:
                            str2 = (str2 - 1 + 4) % 5 + 1;
                            break;
                        case 80:
                            str2 = (str2 - 1 + 1) % 5 + 1;
                            break;
                        }
                    }
                    if (com2 == 13)
                    {
                        switch (str2)
                        {
                        case 1: //прямой
                            system("cls");
                            cout << "Прямой обход дерева:" << endl;
                            //ф-ция 
                            system("pause");
                            break;
                        case 2: //обратный
                            system("cls");
                            cout << "Обратный обход дерева:" << endl;
                            //ф-ция 
                            system("pause");
                            break;
                        case 3: //симметричный
                            system("cls");
                            cout << "Симметричный обход дерева:" << endl;
                            //ф-ция 
                            system("pause");
                            break;
                        case 4: //в ширину
                            system("cls");
                            cout << "Обход дерева в ширину:" << endl;
                            //ф-ция 
                            system("pause");
                            break;
                        case 5:
                            usl2 = 1;
                            str2 = 1;
                            break;
                        }
                    }
                }
                usl2 = 0;

                break;
            case 4:
                system("cls");
                return 0;
                break;
            }
        }
    }
}
Соседние файлы в предмете Алгоритмы и системы данных