Fórum Vetor de objetos JAVA #532772
25/09/2015
0
Ola pessoal, to com o seguinte problema, tenho 3 clases que são
MESA
GerenciaMesa
App
tenho que gerencia um restaurante utilizando TAD, onde cadastro a mesa, faço o pedido e fecho a conta com desconto ou não. Estou com proble em criar os metodos de efetuar pedido e fechar conta.
Na mesa tem uma bin com as informaçoes, e tabem os metodos, imprimir, efetuar pedido e fechar conta.
Na GerenciaMesa eu tenho os metodos de cadastro e busca, e um vetor do tipo mesa.
No App o menu e as interaçoes com o usuario.
todos os metodos implementados estão funcional, mas nao consegui e nem sei por onde começa para fazer os metodos de efetuarPedido e de Fechar a conta.
MESA
GerenciaMesa
App
tenho que gerencia um restaurante utilizando TAD, onde cadastro a mesa, faço o pedido e fecho a conta com desconto ou não. Estou com proble em criar os metodos de efetuar pedido e fechar conta.
Na mesa tem uma bin com as informaçoes, e tabem os metodos, imprimir, efetuar pedido e fechar conta.
public class Mesas {
private int nMesa;
private int qtdP;
private double totalC = 0;
//Construtor com parametros
public Mesas(int nMesa, int qtdP) {
this.nMesa = nMesa;
this.qtdP = qtdP;
}
//Construtor sem parametros, iniciando todos atributos com zero.
public Mesas() {
this(0, 0);
}
//Seters e Getters dos atributos private.
public void setnMesa(int nMesa) {
this.nMesa = nMesa;
}
public void setQtdP(int qtdP) {
this.qtdP = qtdP;
}
public void setTotalC(double totalC) {
this.totalC = totalC;
}
public int getnMesa() {
return nMesa;
}
public int getQtdP() {
return qtdP;
}
public double getTotalC() {
return totalC;
}
//Metodo para efetuar o pedido apartir do codigo do produto e da quantidade.
public void efetuarPedido(int numero, int codigo, int qtd) {
}
//Metodo que retorna o valor da conta e o valor da conta por pessoa.
public void fecharConta(int numero, int pgt) {
}
//Exibe a tabela com o preço.
public String tabelaPreco() {
return "1 | Refrigerante | 2,00\n"
+ "2 | Cachorro Quente | 5,00\n"
+ "3 | Batata frita | 4,00";
}
//Exibe a tabela com os meios de pagamentos.
public String tabelaPagamento() {
return "1 | Dinheiro | 10%\n"
+ "2 | Cheque | Sem desconto\n"
+ "3 | Cartão | 5%";
}
//Metodo que imprimi os dados da mesa.
public String imprimir() {
return "Numero da mesa: " + this.nMesa
+ "\nQuantidade de pessoas: " + this.qtdP
+ " \nTotal da conta: " + this.totalC;
}Na GerenciaMesa eu tenho os metodos de cadastro e busca, e um vetor do tipo mesa.
public class GerenciaMesas {
private Mesas mesas[];
private int qtde;
public GerenciaMesas(int max) {
this.mesas = new Mesas[max];
this.qtde = 0;
}
//Inclui uma mesa na TAD.
public boolean cadastrarMesa(Mesas m) {
boolean retorno = false;
if (qtde < mesas.length) {
mesas[qtde] = m;
qtde++;
retorno = true;
}
return retorno;
}
//Imprimi todas as mesas cadastradas.
public String imprimirMesas() {
String imprimir = "";
if (this.qtde > 0) {
for (int i = 0; i < this.qtde; i++) {
imprimir += mesas[i].imprimir() + "\n\n";
}
return imprimir;
} else {
return "Nenhuma messa cadastrada no momento!";
}
}
// Busca a mesa pelo numero informado.
public String buscarMesa(int numero) {
String retorno = "";
if (this.qtde > 0) {
int i;
for (i = 0; i < this.qtde; i++) {
if (mesas[i].getnMesa() == numero) {
break;
}
}
if (i != this.qtde) {
retorno = mesas[i].imprimir();
}
}
return retorno;
}
//Exibi o numero da mesa com maior consumo.
public String maiorConsumo() {
int maior = 0;
if (this.qtde > 0) {
for (int i = 0; i < this.qtde; i++) {
if (mesas[i].getTotalC() > maior) {
maior = mesas[i].getnMesa();
}
}
return "A mesa com maior consumo é a numero:" + maior;
} else {
return "Nenhuma mesa cadastrada no momento";
}
}
}No App o menu e as interaçoes com o usuario.
public class App {
public static void main(String[] args) {
GerenciaMesas gc = new GerenciaMesas(100);
Mesas mesa = new Mesas();
int opcao;
while (true) {
opcao = Integer.parseInt(JOptionPane.showInputDialog(null, "1) Cadastrar mesas\n"
+ "2) Imprimir todas as mesas\n"
+ "3) Efetuar Pedidos\n"
+ "4) Calcular e imprimir o valor final da conta e por pessoa\n"
+ "5) Exibir a mesa com maior consumo\n"
+ "6) Sair", "Escolha uma Opção", QUESTION_MESSAGE));
switch (opcao) {
case 1:
Mesas m = new Mesas(Integer.parseInt(JOptionPane.showInputDialog(null, "Numero da mesa", "Identificação da mesa", QUESTION_MESSAGE)),
Integer.parseInt(JOptionPane.showInputDialog(null, "Quantidade de pessoas", "Total de clientes na mesa", QUESTION_MESSAGE)));
//retornar se a messa foi incluida ou nao.
if (gc.cadastrarMesa(m)) {
JOptionPane.showMessageDialog(null, "Mesa Incluida", "SUCESSO", INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(null, "Mesa nao incluida", "FALHA", INFORMATION_MESSAGE);
}
break;
case 2:
JOptionPane.showMessageDialog(null, gc.imprimirMesas(), "MESAS", INFORMATION_MESSAGE);
break;
case 3:
break;
case 4:
break;
case 5:
JOptionPane.showMessageDialog(null, gc.maiorConsumo(), "Maior consumo", INFORMATION_MESSAGE);
break;
case 6:
JOptionPane.showMessageDialog(null, "Programa encerrado com suscesso", "ECERRADO", INFORMATION_MESSAGE);
System.exit(0);
break;
default:
JOptionPane.showMessageDialog(null, "Digite um valor valido", "OPÇÃO INVALIDA", INFORMATION_MESSAGE);
}
}
}
}todos os metodos implementados estão funcional, mas nao consegui e nem sei por onde começa para fazer os metodos de efetuarPedido e de Fechar a conta.
Hugo Henrique
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)