├── .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 | --------------------------------------------------------------------------------