-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathRestaurant.java
More file actions
134 lines (53 loc) · 5.54 KB
/
Restaurant.java
File metadata and controls
134 lines (53 loc) · 5.54 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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
//He it is, who coming after me is preferred before me, whose shoe's latchet I am not worthy to unloose. (John 1:27)
package com.javarush.task.task27.task2712;
public class Restaurant {
public static void main(String[] args) {
}
}
/*
Ресторан(1)
Давай напишем программу для автоматизации работы в ресторане.
Пусть задание сформулировано так - директор ресторана хочет, чтобы:
1. на каждом столике лежал планшет, через который можно было бы сделать заказ;
2. пока заказ готовится, на планшете показывалась реклама;
3. в конце рабочего дня была возможность посмотреть различную статистику:
а) загрузки повара;
б) сумму выручки за заказы;
в) сумму выручки за показы рекламы.
Мы будем разрабатывать ядро, без UI. UI ты потом сможешь дописать самостоятельно, сейчас ограничимся консольным интерфейсом.
Также мы часть данных захардкодим, ты потом сможешь прикрутить БД, и работать с ней.
Выделим несколько фич, которые будем реализовывать:
Первая:
- созданный посетителем заказ будет автоматически поступать к повару;
- повар будет готовить его какое-то время и отмечать приготовленным;
- после этого официант будет относить его.
Вторая:
- подобрать нужные рекламные ролики из списка оплаченных;
- отображение рекламных роликов во время приготовления заказа;
- максимизировать прибыль от показа рекламы.
Третья:
- подсчет статистики;
- отображение статистики директору.
Начнем с первой фичи - автоматизация обработки заказа:
Итак..
1. Создай класс Restaurant с методом main.
2. Начнем с планшета, создадим класс Tablet, в котором создадим поле final int number - это номер планшета, чтобы можно было однозначно установить, откуда поступил заказ. Номер планшета должен инициализироваться в конструкторе переданным параметром.
3. В классе Tablet создадим метод public void createOrder(), который будет создавать заказ из тех блюд, которые выберет пользователь.
Для этого создадим класс Order, который поместим в пакет kitchen.
4. В классе Order (заказ) должна быть информация, относящаяся к списку выбранных пользователем блюд.
Т.е. где-то должен быть список всех блюд, и должен быть список выбранных блюд в классе Order.
В классе Order нужны поля private final Tablet tablet и protected List<Dish> dishes.
Конструктор должен принимать один параметр типа Tablet и инициализировать поле tablet.
5. Нам нужен класс Dish(Блюдо), создадим его в пакете kitchen. Пусть это будет enum со списком блюд: Fish, Steak, Soup, Juice, Water.
6. Чтобы пользователь мог выбрать себе блюда, нужно их все ему отобразить. Для этого в Dish создай метод public static String allDishesToString(), который сформирует строку из всех блюд.
Пример: "Fish, Steak, Soup, Juice, Water". Формируй строку динамически.
Требования:
1. В классе Restaurant должен быть создан метод public static void main(String[] args).
2. В классе Tablet должно быть создано поле final int number.
3. Конструктор класса Tablet должен принимать 1 параметр типа int и инициализировать поле number.
4. В пакете kitchen должен быть создан enum Dish с элементами Fish, Steak, Soup, Juice, Water.
5. В Dish должен быть создан статический метод allDishesToString, динамически формирующий строку из всех блюд.
6. В пакете kitchen должен быть создан класс Order, содержащий в себе список блюд(dishes), а также планшет(tablet).
7. Конструктор класса Order должен принимать один параметр типа Tablet и инициализировать поле tablet.
8. В классе Tablet должен существовать метод public void createOrder().
*/