-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSupermercado.java
More file actions
85 lines (78 loc) · 3.42 KB
/
Supermercado.java
File metadata and controls
85 lines (78 loc) · 3.42 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
public class Supermercado {
Estoque estoque;
Supermercado(Estoque estoque) {
this.estoque = estoque;
}
void mostrarPrompt() {
System.out.print("> ");
}
void mostrarBoasVindas() {
System.out.println("╔═════════════════════╦══════════════════════════════════════╦═════════════════════╗");
System.out.println("║ ║ Seja bem-vindo ao Supermercado 2000! ║ ║");
System.out.println("║ ╚══════════════════════════════════════╝ ║");
System.out.println("║ lista - lista os items no estoque do supermercado ║");
System.out.println("║ detalhes [ID] - mostra os detalhes do produto com ID=[ID] ║");
System.out.println("║ comprar [ID] [QTD] - adiciona [QTD] produtos com ID=[ID] ao carrinho ║");
System.out.println("║ remove [ID] [QTD] - remove [QTD] produtos com ID=[ID] do carrinho ║");
System.out.println("║ carrinho - mostra os items no carrinho ║");
System.out.println("║ finalizar - mostra o valor total dos produtos adicionados ao carrinho ║");
System.out.println("╚══════════════════════════════════════════════════════════════════════════════════╝");
}
void receberCliente(Cliente cliente) {
this.mostrarBoasVindas();
this.mostrarPrompt();
while (cliente.estaComprando()) {
Comando comando;
try {
comando = cliente.receberComando();
} catch (ComandoInvalido e) {
System.out.println(e);
this.mostrarPrompt();
continue;
}
try {
switch (comando.nome) {
case "lista":
this.estoque.mostrarProdutos();
break;
case "carrinho":
cliente.carrinho.mostrarProdutos();
break;
case "detalhes": {
Produto produto = this.estoque.procurarProduto(comando.idProduto);
produto.mostrarDetalhes();
break;
}
case "comprar": {
Produto produto = this.estoque.procurarProduto(comando.idProduto);
cliente.carrinho.pegarProdutoDe(this.estoque, produto, comando.qtd);
System.out.println("Foi adicionado " + comando.qtd + " " + produto.descricao + " no seu carrinho!");
break;
}
case "remove": {
Produto produto = this.estoque.procurarProduto(comando.idProduto);
this.estoque.pegarProdutoDe(cliente.carrinho, produto, comando.qtd);
System.out.println("Foi removido " + comando.qtd + " " + produto.descricao + " do seu carrinho!");
break;
}
case "finalizar": {
System.out.println("O total da compra é R$" + cliente.carrinho.totalDaCompra());
cliente.carrinho.esvaziar();
break;
}
}
this.mostrarPrompt();
} catch (Exception e) {
System.out.println(e);
this.mostrarPrompt();
continue;
}
}
}
public static void main(String[] args) {
Estoque estoque = EstoqueImpl.estoquePadrao();
Supermercado mercado = new Supermercado(estoque);
Cliente cliente = new Cliente();
mercado.receberCliente(cliente);
}
}