Загрузка данных
package lab14_4;
public class Main {
public static void main(String[] args) {
Utils utils = new Utils();
Ochered queue = null;
Ochered queue2 = null;
Stack stack = null;
while (true) {
System.out.println("Выберите тип структуры:\n1 - Очередь\n2 - Стек\n0 - Выход\nВаш выбор:");
int vibor = utils.safeIntInput();
mainChoice:
switch (vibor) {
case 1: {
int size;
while (true) {
System.out.println("Укажите размер очереди");
size = utils.safeIntInput();
if (size < 1) System.out.println("Количество элементов должно быть положительным.");
else break;
}
do {
System.out.println("Выберите тип очереди:\n1 - Фиксированная\n2 - Кольцевая\n3 - Динамическая\n4 - Кольцевая-динамическая\n0 - Назад\nВаш выбор:");
int choice = utils.safeIntInput();
switch (choice) {
case 1:
queue = new FixOchered(size);
queue2 = new FixOchered(size);
break;
case 2:
queue = new KoltOchered(size);
queue2 = new KoltOchered(size);
break;
case 3:
queue = new DinamOchered(size);
queue2 = new DinamOchered(size);
break;
case 4:
queue = new KoltDinamOchered(size);
queue2 = new KoltDinamOchered(size);
break;
case 0:
break mainChoice;
default:
System.out.println("Ошибка! Некорректный выбор типа очереди.");
}
} while (queue == null && queue2 == null);
loop:
do {
System.out.println("\nВыберите действие:");
System.out.println("1 - Вывод на экран");
System.out.println("2 - Добавить элемент");
System.out.println("3 - Извлечь элемент");
System.out.println("4 - Сброс очереди");
System.out.println("5 - Копирование очереди");
System.out.println("6 - Вывод скопированной очереди");
System.out.println("7 - Извлечение из скопированной очереди");
System.out.println("0 - Назад");
System.out.print("Ваш выбор: ");
int viborDeystviya1 = utils.safeIntInput();
switch (viborDeystviya1) {
case 1:
queue.printElement();
break;
case 2:
System.out.println("Введите элемент");
System.out.print("Введите новый элемент: ");
double newElement = utils.safeDoubleInput();
queue.put(newElement);
break;
case 3:
queue.get();
break;
case 4:
queue.reset();
System.out.println("Очередь успешно сброшена");
break;
case 5:
Ochered.copy(queue, queue2);
System.out.println("Очередь успешно скопирована");
break;
case 6:
queue2.printElement();
break;
case 7:
queue2.get();
break;
case 0:
break loop;
}
} while (true);
break;
}
case 2:
int sizeStack;
while (true) {
System.out.println("Укажите размер стека");
sizeStack = utils.safeIntInput();
if (sizeStack < 1) {
System.out.println("Количество элементов должно быть положительным.");
} else break;
}
boolean flagStack = true;
while (flagStack) {
System.out.println("Выберите тип стека:\n1 - Фиксированный\n2 - Кольцевой\n3 - Динамический\n4 - Кольцевой-динамический\n0 - Назад\nВаш выбор:");
int choiceStack = utils.safeIntInput();
switch (choiceStack) {
case 1:
stack = new FixStack(sizeStack);
break;
case 2:
stack = new KolStack(sizeStack);
break;
case 3:
stack = new DinamStack(sizeStack);
break;
case 4:
stack = new KolDinStack(sizeStack);
break;
case 0:
flagStack = false;
continue;
default:
System.out.println("Ошибка! Некорректный выбор типа стека.");
break;
}
boolean flag1Stack = true;
while (flag1Stack) {
System.out.println("\nВыберите действие:");
System.out.println("1 - Вывод на экран");
System.out.println("2 - Добавить элемент");
System.out.println("3 - Извлечь элемент");
System.out.println("4 - Сброс стека");
System.out.println("0 - Назад");
System.out.print("Ваш выбор: ");
int viborDeystviya2 = utils.safeIntInput();
switch (viborDeystviya2) {
case 1:
stack.printElement();
break;
case 2:
System.out.println("Введите элемент");
System.out.print("Введите новый элемент: ");
int newEl = utils.safeIntInput();
stack.push(newEl);
break;
case 3:
stack.pop();
break;
case 4:
stack.reset();
System.out.println("Стек успешно сброшен");
break;
case 0:
flag1Stack = false;
break;
}
}
}
break;
case 0:
return;
}
}
}
}