Skip to content

Instantly share code, notes, and snippets.

@vbifonixor
Created June 16, 2016 18:47
Show Gist options
  • Save vbifonixor/5398f20d1f1f6c4d01418968fc004943 to your computer and use it in GitHub Desktop.
Save vbifonixor/5398f20d1f1f6c4d01418968fc004943 to your computer and use it in GitHub Desktop.
#include <iostream>
#include <locale.h>
#include <string>
#include "List.h"
#include "Tree.h"
#define MAIN_MENU 0
#define LIST_MENU 1
#define TREE_MENU 2
using namespace std;
void PrintHelp(int Menu) {
switch(Menu){
case MAIN_MENU:
cout<<"Для работы со списком используйте \'List\'.\nДля работы с деревом используйте \'Tree\'.\n";
break;
case LIST_MENU:
puts("\'AddFirst\' - Добавить элемент в начало списка.");
puts("\'AddLast\' - Добавить элемент в конец списка.");
puts("\'Find\' - Поиск элемента в списке.");
puts("\'Delete\' - Удаление элемента по ключу.");
puts("\'DeleteFirst\' - Удалить первый элемент списка.");
puts("\'DeleteLast\' - Удалить послежний элемент списка.");
puts("\'Count\' - Подсчет количества элементов в списке.");
puts("\'Print\' - Вывод всего списка на экран.");
puts("\'Task2\' - Выполнить задание 4.");
puts("\'Task15\' - Выполнить задание 8.");
puts("\'Task19\' - Выполнить задание 13.");
break;
case TREE_MENU:
cout << "\'Create\' - Создать дерево.\n";
cout << "\'Add\' - Добавить элемент в дерево.\n";
cout << "\'Print\' - Вывод дерева на экран.\n";
cout << "\'Delete\' - Удаление элемента.\n";
cout << "\'Task1\' - Выполнить задание 1.\n";
cout << "\'Task2\' - Выполнить задание 2.\n";
break;
}
}
void End() {
List::Destroy();
Tree::Destroy();
cout<<"Удачи!";
system("PAUSE>>void");
exit(EXIT_SUCCESS);
}
void ListMenu() {
puts("Вы выбрали работу со списком. Для выхода в главное меню используйте \'Up\'.");
string cmd;
while (true) {
cout << "Список > ";
cin >> cmd;
if (cmd == "AddLast")List::AddLast();
else if (cmd == "AddFirst")List::AddFirst();
else if (cmd == "Print") List::PrintFullList();
else if (cmd == "Delete")List::Delete();
else if (cmd == "DeleteFirst")List::PopFirst();
else if (cmd == "DeleteLast")List::Pop();
else if (cmd == "Find")List::Find();
else if (cmd == "Count")cout << "В списке " << List::Count() << " элементов.\n";
else if (cmd == "Help")PrintHelp(LIST_MENU);
else if (cmd == "Task2")List::Task2();
else if (cmd == "Task15")List::Task15();
else if (cmd == "Task19")List::Task19();
else if (cmd == "Up")return;
else if (cmd == "Exit")End();
else cout << "Неправильная команда!\n";
}
}
void TreeMenu() {
string cmd;
while (true) {
cout << "Дерево > ";
cin >> cmd;
if (cmd == "Create")Tree::Create();
else if (cmd == "Add")Tree::Add();
else if (cmd == "Print")Tree::Print();
else if (cmd == "Delete")Tree::Delete();
else if (cmd == "Task1")Tree::Task1();
else if (cmd == "Task2")Tree::Task2();
else if (cmd == "Help")PrintHelp(TREE_MENU);
else if (cmd == "Up")return;
else if (cmd == "Exit")End();
else cout << "Неправильная команда!\n";
}
}
void main(int argc, char **argv) {
setlocale(LC_ALL, "Russian");
puts("Лабораторная работа №3 | Группа ДКП-152п | Подгруппа №8");
string cmd;
PrintHelp(MAIN_MENU);
while (true) {
cout << ">";
cin >> cmd;
if (cmd == "List")ListMenu();
else if (cmd == "Tree")TreeMenu();
else if (cmd == "Help")PrintHelp(MAIN_MENU);
else if (cmd == "Exit")End();
else cout<<"Неправильная команда! Для помощи введите \'Help\'.\n";
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment