Criar menu em java

4 respostas
java
F

Boa tarde, tenho uma duvida como posso fazer o menu de ingredientes onde tem o preço e depois o cliente faz o pedido e ao fazer o pedido somamos a conta e perguntamos ao cliente se quer o nif ou nao?

É urgente por favor

4 Respostas

R

Sua pergunta é totalmente genérica, tente reformular.

Diga o que você já tem, o que já pensou, o que pretende fazer, se tem Interface Gráfica (ou não)…, enfim, são N perguntas que você pode fazer a você mesmo e até conseguir alguma coisa

F

Basicamente fiz um menu com 5 ingredientes e não sei como se faz pedido deste ingredientes para depois a soma na fatura.

Por exemplo:

1 - bolo custa 0.60 euros
2 - cafe custa 0.65 euros
3 - tosta mista - 1 euros
4 - pão com manteiga - 0.45 euros
5 - lanche misto - 1.20 euros

E o cliente escolhe 1 e 2 depois tenho fazer a soma 0.60+0.65= 1.25 euros

S

Se for pelo console você pode fazer mais ou menos assim:

public class MenuIngredientes {

    private static final Scanner IN = new Scanner(System.in);
    private double somaTotal;

    public static void main(String[] args) {
        String continuar = "Sim";
        MenuIngredientes menuIngredientes = new MenuIngredientes();
        while (continuar.toUpperCase().startsWith("S")) {
            menuIngredientes.mostrarMenu();
            System.out.println("Comprar mais? [Sim/Não]");
            continuar = IN.nextLine();
        }

        System.out.println("Total a pagar: €" + menuIngredientes.somaTotal);
    }

    public void mostrarMenu() {
        System.out.println("[1] Bolo custa 0.60 Euros");
        System.out.println("[2] Café custa 0.65 Euros");
        System.out.println("[3] Tosta mista custa 1 Euro");
        System.out.println("[4] Pão com manteiga custa 0.45 Euros");
        System.out.println("[5] Lanche misto custa 1.20 Euros");
        System.out.print("Escolha => ");

        int opt = Integer.parseInt(IN.nextLine());
        executaLogica(opt);
    }

    public void executaLogica(int opt) {
        switch (opt) {
            case 1:
                somaTotal += 0.60;
                break;
            case 2:
                somaTotal += 0.65;
                break;
            case 3:
                somaTotal += 1;
                break;
            case 4:
                somaTotal += 0.45;
                break;
            case 5:
                somaTotal += 1.20;
                break;
            default:
                System.out.println("Digite uma opção válida!");
        }
    }
}

Claro que eu não fiz verificações, nem nada muito complexo.
Se for com GUI, você fara de uma maneira diferente.

S

Se você tiver uma classe para representar cada um dos itens de seu menu, fica fácil:

public class Item {

    public String descricao;
    public double valor;

    public Item() {}

    public Item(String descricao, double valor) {
        this.descricao = descricao;
        this.valor = valor;
    }
}

Aí você pode fazer algo assim:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintStream;

public class Exemplo {

    public static void main(String[] args) {
        Exemplo programa = new Exemplo();
        programa.executar();
    }

    private final BufferedReader entrada = new BufferedReader(new InputStreamReader(System.in));
    private final PrintStream saida = System.out;

    public void executar() {
        Item[] itens = listarItens();
        apresentarMenu(itens);

        double total = 0;
        int opcao;
        do {
            opcao = lerOpcao("Digite o item desejado [0 para sair]: ");
            if (opcao > 0) {
                Item item = itens[opcao - 1];
                saida.printf("%s - %.2f euros%n", item.descricao, item.valor);
                total += item.valor;
            }
        } while (opcao != 0);
        saida.printf("Total à pagar: %.2f euros%n", total);
    }

    private Item[] listarItens() {
        return new Item[] {
                new Item("Bolo", 0.60),
                new Item("Café", 0.65),
                new Item("Torta Mista", 1.00),
                new Item("Pão com Manteiga", 0.45),
                new Item("Lanche Misto", 1.20)
        };
    }

    private void apresentarMenu(Item[] itens) {
        int opcao = 0;
        for (Item item : itens) {
            saida.printf("%d - %s - %.2f euros%n", ++opcao, item.descricao, item.valor);
        }
    }

    private int lerOpcao(String mensagem) {
        while (true) {
            try {
                saida.print(mensagem);
                return Integer.parseInt(entrada.readLine());
            } catch (Exception e) {
                saida.println("Valor inválido!");
            }
        }
    }
}
Criado 5 de agosto de 2020
Ultima resposta 5 de ago. de 2020
Respostas 4
Participantes 4