/
dimass1km
/
laba_5.
Обзор
Документация
Войти
/
dimass1km
/
laba_5.
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
main.cpp
111 строк
4 KB
dimass1km
create: main.cpp
15 мар 2026, 17:38
Верифицирован
15 мар 2026, 17:38
65d1723
Код
Авторство
О чём код?
#include <iostream> #include <string> int main() { BtreeNode* root = nullptr; cout << "Программа работы с базой сотрудников\n"; cout << "Выберите способ ввода данных:\n"; cout << " 1 - ввод с клавиатуры\n"; cout << " 2 - загрузка из файла\n"; cout << "Ваш выбор: "; int choice; cin >> choice; if (choice == 1) { inputFromConsole(root); } else if (choice == 2) { string filename; cout << "Введите имя файла: "; getline(cin, filename); inputFromFile(root, filename); } else { cerr << "Неверный выбор. Программа завершена.\n"; return 1; } //проверка cout << "\n=== Содержимое дерева (по id) ===\n"; if (root == nullptr) cout << "Дерево пусто.\n"; else treePrintRecursively(root, ""); //поиск int cmd; do { cout << "\n=== Меню ===\n"; cout << "1. Вывести информацию о всех сотрудниках\n"; cout << "2. Найти сотрудника по ID\n"; cout << "3. Найти сотрудников по стажу и специальности\n"; cout << "4. Обход дерева в ширину\n"; cout << "5. Выход\n"; cout << "Выберите пункт: "; cin >> cmd; cin.ignore(numeric_limits<streamsize>::max(), '\n'); switch (cmd) { case 1: { if (root == nullptr) { cout << "База данных пуста.\n"; } else { cout << "\n--- Список всех сотрудников ---\n"; printAllEmployees(root); } break; } case 2: { if (root == nullptr) { cout << "База данных пуста.\n"; break; } int searchId; cout << "Введите ID для поиска: "; cin >> searchId; cin.ignore(); BtreeNode* found = findNode(root, searchId); if (found) { cout << "\n--- Найден сотрудник ---\n"; printEmployee(found->d); } else { cout << "Сотрудник с ID " << searchId << " не найден.\n"; } break; } case 3: { if (root == nullptr) { cout << "База данных пуста.\n"; break; } int minExp, maxExp; string prof; cout << "Введите минимальный стаж (лет): "; cin >> minExp; cout << "Введите максимальный стаж (лет): "; cin >> maxExp; cin.ignore(); cout << "Введите специальность: "; getline(cin, prof); cout << "\n--- Сотрудники со стажем от " << minExp << " до " << maxExp << " и специальностью \"" << prof << "\" ---\n"; findByExperienceAndProfession(root, minExp, maxExp, prof); break; } case 4: bft(root); break; case 5: cout << "Завершение работы.\n"; break; default: cout << "Неверный пункт меню. Повторите ввод.\n"; } } while (cmd != 4); // Освобождение памяти freeTree(root); cout << "Память освобождена.\n"; return 0; }