-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMainUnit01.java
More file actions
104 lines (89 loc) · 6.09 KB
/
MainUnit01.java
File metadata and controls
104 lines (89 loc) · 6.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
package Work02;
import java.util.Scanner;
import static Work02.Unit01.Main.*;
public class MainUnit01 {
private static int userIntegerInput(String msg) {
Scanner sc = new Scanner(System.in);
int inputStr;
while (true) {
System.out.print(msg);
try {
inputStr = Integer.parseInt(sc.next());
break;
} catch (NumberFormatException e) {
System.out.println(red + "Неверный ввод! Введите целое число!" + reset);
}
}
return inputStr;
}
public static void itemSelect() { // Метод выбора по параметрам
System.out.println(yellow + """
\n1) Команда - "1" запускает выполнение задачи № 1;
1) Команда - "2" запускает выполнение задачи № 2;
3) Команда - "0" запускает выхода в предыдущее меню.
Введите выбранную команду:""" + reset);
int checkExit = 3;
while (checkExit != 0) {
checkExit = userIntegerInput("\nВведите номер команды. Для выхода в предыдущее меню нажмите 0.\nВвод: ");
switch (checkExit) {
case 1 -> {
System.out.println("\nВыполнение Задание №1 ... ");
mainTask();
}
case 2 -> {
System.out.println("\nВыполнение Задание №2 ... ");
System.out.println("\nТут пусто. В уроке было только одна задача");
}
}
System.out.println(yellow + "\nВыполненеие завершено." + reset);
}
}
public static void getAllItems() { // Выводит текстом какие задачи есть
System.out.println("\n\tЗадание 1.\n");
System.out.println("""
Урок 1. Принципы ООП: Инкапсуляция, наследование, полиморфизм
Реализовать, с учетом ооп подхода, приложение
Для проведения исследований с генеалогическим древом.
Идея: описать некоторое количество компонент, например:
- модель человека
- компонента хранения связей и отношений между людьми: родитель, ребёнок - классика, но можно подумать\s
и про разные отношения
- компонент для проведения исследований
- дополнительные компоненты, например отвечающие за вывод данных в консоль, загрузку и сохранения в файл,
получение/построение отдельных моделей человека.
Под “проведением исследования” можно понимать получение всех детей выбранного человека.
* на первом этапе сложно применять сразу все концепты ООП, упор делается на инкапсуляцию.\s
Если получится продумать иерархию каких-то компонент - здорово. После первой лекции,\s
они не знают про абстракцию и интерфейсы
Продумать какие проблемы могут возникнуть в том, коде, который они написали.
Например, с генеалогическим древом, мы можем знать о двух людях, но не знаем в каких “отношениях” они были -\s
двоюродные или троюродные, или мы точно знаем как звали прапрабабушку, но совершенно не знаем прабабушку -\s
как хранить такие связи или что будет если в компоненту обхода передать ссылку на null-дерево.
""");
}
public static void main(String[] args) {
int checkExit = 3;
while (checkExit != 0) {
System.out.println(cyan + """
\n
1) Команда - "1" запускает меню выбора задач;
2) Команда - "0" запускает выход и завершение программы.
""" + reset);
checkExit = userIntegerInput("""
Введите номер действия. Для выхода нажмите 0. \nВвод:\s
""");
switch (checkExit) {
case 1 -> itemSelect();
case 2 -> getAllItems();
}
}
System.out.println("""
1) Команда - "1" запускает выполнение задачи № 1;
2) Команда - "0" запускает выход и завершение программы.
Введите выбранную команду:""");
}
public static final String reset = "\u001B[0m";
public static final String red = "\u001B[31m";
public static final String yellow = "\u001B[33m";
public static final String cyan = "\u001B[36m";
}