├── .gitignore
├── src
├── main
│ ├── .gitignore
│ └── Mercado.java
├── Main.java
├── utils
│ └── Utils.java
└── modelos
│ └── Produto.java
├── .idea
├── .gitignore
├── modules.xml
└── misc.xml
└── MERCADO.iml
/.gitignore:
--------------------------------------------------------------------------------
1 | # Project exclude paths
2 | /out/
--------------------------------------------------------------------------------
/src/main/.gitignore:
--------------------------------------------------------------------------------
1 | /.idea
2 | /build
3 |
--------------------------------------------------------------------------------
/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/src/Main.java:
--------------------------------------------------------------------------------
1 | public class Main {
2 | public static void main(String[] args) {
3 | System.out.println("Hello world!");
4 | }
5 | }
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/MERCADO.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/src/utils/Utils.java:
--------------------------------------------------------------------------------
1 | package utils;
2 |
3 | import java.text.DecimalFormat;
4 | import java.text.DecimalFormatSymbols;
5 | import java.text.NumberFormat;
6 | import java.util.Locale;
7 |
8 | public class Utils {
9 | static NumberFormat numberFormat =
10 | new DecimalFormat("R$ #,##0.00", new DecimalFormatSymbols(new Locale("pt", "BR")));
11 |
12 | public static String doubleToString(Double value) {
13 | return numberFormat.format(value);
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/modelos/Produto.java:
--------------------------------------------------------------------------------
1 | package modelos;
2 |
3 | import utils.Utils;
4 |
5 | public class Produto {
6 | private static int count = 1;
7 |
8 | private int id;
9 | private String nome;
10 | private Double preco;
11 |
12 |
13 | public Produto(String nome, Double preco) {
14 | this.id = count;
15 | this.nome = nome;
16 | this.preco = preco;
17 | Produto.count += 1;
18 | }
19 |
20 | public int getId() {
21 | return id;
22 | }
23 |
24 | public String getNome() {
25 | return nome;
26 | }
27 |
28 | public void setNome(String nome) {
29 | this.nome = nome;
30 | }
31 |
32 | public Double getPreco() {
33 | return preco;
34 | }
35 |
36 | public void setPreco(Double preco) {
37 | this.preco = preco;
38 | }
39 | public String toString() {
40 | return "id: " + this.getId() +
41 | "\nNome: " + this.getNome() +
42 | "\nPreço" + Utils.doubleToString(this.getPreco());
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/src/main/Mercado.java:
--------------------------------------------------------------------------------
1 | package main;
2 |
3 | import modelos.Produto;
4 | import utils.Utils;
5 |
6 | import java.util.ArrayList;
7 | import java.util.HashMap;
8 | import java.util.Map;
9 | import java.util.Scanner;
10 |
11 | public class Mercado {
12 | private static Scanner input = new Scanner(System.in);
13 | private static ArrayList produtos;
14 | private static Map carrinho;
15 |
16 | public static void main(String[] args) {
17 | produtos = new ArrayList<>();
18 | carrinho = new HashMap<>();
19 | menu();
20 | }
21 | private static void menu() {
22 | System.out.println("--------------------------------------------------------");
23 | System.out.println("--------------Welcome to Wander Market---------------");
24 | System.out.println("*****Selecione uma operação que deseja realizar*****");
25 | System.out.println("--------------------------------------------------------");
26 | System.out.println("| Opção 1 - Cadastrar |");
27 | System.out.println("| Opção 2 - Listar |");
28 | System.out.println("| Opção 3 - Comprar |");
29 | System.out.println("| Opção 4 - Carrinho |");
30 | System.out.println("| Opção 5 - Sair |");
31 |
32 |
33 | int option = input.nextInt();
34 |
35 | switch (option) {
36 | case 1:
37 | cadastrarProdutos();
38 | break;
39 | case 2:
40 | listarProdutos();
41 | break;
42 | case 3:
43 | comprarProdutos();
44 | break;
45 | case 4:
46 | verCarrinho();
47 | break;
48 | case 5:
49 | System.out.println("Volte quando quiser!");
50 | System.exit(0);
51 | default:
52 | System.out.println("Opção inválida");
53 | menu();
54 | break;
55 | }
56 | }
57 |
58 | private static void cadastrarProdutos() {
59 | System.out.println("Nome do produto: ");
60 | String nome = input.next();
61 |
62 | System.out.println("Preço do produto: ");
63 | Double preco = input.nextDouble();
64 |
65 | Produto produto = new Produto(nome, preco);
66 | produtos.add(produto);
67 |
68 | System.out.println(produto.getNome() + " cadastrado com sucesso!");
69 | menu();
70 |
71 | }
72 |
73 | private static void listarProdutos(){
74 | if(produtos.size() > 0){
75 | System.out.println("Lista de produtos! \n");
76 |
77 | for (Produto p : produtos) {
78 | System.out.println(p);
79 | }
80 | }else {
81 | System.out.println("Nenhum produto cadastrado!");
82 | }
83 | menu();
84 | }
85 |
86 | private static void comprarProdutos(){
87 | if(produtos.size() > 0) {
88 | System.out.println("Codigo do produto: \n");
89 |
90 | System.out.println("------------Produtos Disponíveis-------------");
91 | for (Produto p : produtos) {
92 | System.out.println(p + "\n");
93 |
94 | }
95 | int id = Integer.parseInt(input.next());
96 | boolean isPresent = false;
97 |
98 | for (Produto p : produtos) {
99 | if(p.getId() == id) {
100 | int qtd = 0;
101 | try {
102 | qtd = carrinho.get(p);
103 | carrinho.put(p, qtd +1);
104 |
105 | } catch (NullPointerException e) {
106 | carrinho.put(p, 1);
107 | }
108 | System.out.println(p.getNome() + " adiciando ao carrinho");
109 | isPresent = true;
110 |
111 | if (isPresent) {
112 | System.out.println("Digite 1 para sim ou 0 para não");
113 | int option = Integer.parseInt(input.next());
114 |
115 | if (option == 1) {
116 | comprarProdutos();
117 |
118 | }else {
119 | finalizarCompra();
120 | }
121 | }
122 | } else {
123 | System.out.println("Produto não encontrado");
124 | menu();
125 | }
126 | }
127 | } else {
128 | System.out.println("Não existem produtos cadastrados!");
129 | menu();
130 | }
131 | }
132 |
133 | public static void verCarrinho() {
134 | System.out.println("---Produtos no seu carrinho!---");
135 | if(carrinho.size() > 0) {
136 | for (Produto p : carrinho.keySet()) {
137 | System.out.println("produto: " + p + "\nQuantidade: " + carrinho.get(p));
138 |
139 | }
140 | }else {
141 | System.out.println("carrinho vazio!");
142 | }
143 | menu();
144 | }
145 |
146 | public static void finalizarCompra() {
147 | Double valorDaCompra = 0.0;
148 | System.out.println("Seus produtos!");
149 |
150 | for (Produto p : carrinho.keySet()){
151 | int qtd = carrinho.get(p);
152 | valorDaCompra += p.getPreco() * qtd;
153 | System.out.println("Quatidade: " + qtd);
154 | System.out.println("--------------------");
155 | }
156 | System.out.println("O valor da sua compra é: " + Utils.doubleToString(valorDaCompra));
157 | carrinho.clear();
158 | System.out.println("Obrigado pela preferência!");
159 | menu();
160 | }
161 |
162 | }
163 |
--------------------------------------------------------------------------------