Baixe o app para aproveitar ainda mais
Prévia do material em texto
TRABALHO PROGAMAÇÃO I Vinicius Galdino Alves de Souza 201504462751 Luiz Gustavo Martins de Moraes 201603366237 //Programas //Main package Programa; public class Main { public static void main(String[] args) { Menu m = new Menu(); m.programa(); } } //Menu package Programa; import java.util.InputMismatchException; import java.util.Scanner; public class Menu { MenuCarroDePasseio menuP = new MenuCarroDePasseio(); MenuCamioneta menuC = new MenuCamioneta(); int opcao; Scanner in = new Scanner(System.in); public void programa() { do { System.out.println("Selecione a opção desejada: "); System.out.println("(1) Carro de Passeio."); System.out.println("(2) Caminhão."); System.out.println("(0) Sair."); try { opcao = in.nextInt(); } catch (InputMismatchException e) { System.out.println("Erro de entrada: " + e.getMessage()); in.next(); opcao = 0; } switch (opcao) { case 1: menuP.passeio(); break; case 2: menuC.camioneta(); break; case 0: System.out.println("Saindo da aplicação."); break; default: System.out.println("Dígito incorreto, tente novamente: "); break; } } while (opcao != 0); } } //MenuCarroPasseio package Programa; import java.util.InputMismatchException; import Entidade.CarroPasseio; import java.util.Scanner; public class MenuCarroDePasseio { boolean dadosEnt = false; CarroPasseio cp = new CarroPasseio(); int opcao; Scanner in = new Scanner(System.in); public void passeio() { do { System.out.println("Selecione a opção desejada: "); System.out.println("(1) Entrada de Dados."); System.out.println("(2) Verificação de Dados."); System.out.println("(0) Retornar."); try { opcao = in.nextInt(); } catch (InputMismatchException e) { System.out.println("Erro de entrada: " + e.getMessage()); in.next(); opcao = 0; } switch (opcao) { case 1: dadosEnt = entradaP(); break; case 2: if (!dadosEnt) { System.out.println("Entrada de dados ainda não completa!"); break; } mostraP(); break; case 0: System.out.println("Retornando ao menu anterior."); break; default: System.out.println("Dígito incorreto, tente novamente: "); break; } } while (opcao != 0); } public boolean entradaP() { do { System.out.println("Insira os valores na ordem: "); System.out.println("(1): Insira o preço do carro, em reais: "); System.out.println("(2): Insira a cor do carro: "); System.out.println("(3): Insira o ano de fabricação do carro: "); System.out.println("(4): Insira a velocidade máxima do carro, em km/h: "); System.out.println("(5): Insira o modelo do carro: "); System.out.println("(6): Insira a quantidade de passageiros do carro: "); System.out.println("(7): Defina que o carro é usado. "); System.out.println("(0): Retornar. "); try { opcao = in.nextInt(); } catch (InputMismatchException e) { System.out.println("Erro de entrada: " + e.getMessage()); in.next(); opcao = 0; } switch (opcao) { case 1: System.out.println("Digite o valor: "); try { cp.setPreco(in.nextFloat()); break; } catch (InputMismatchException e) { System.out.println("Erro na entrada de dados: " + e.getMessage()); in.next(); break; } case 2: System.out.println("Digite a cor: "); try { cp.setCor(in.next()); break; } catch (InputMismatchException e) { System.out.println("Erro na entrada de dados: " + e.getMessage()); in.next(); break; } case 3: System.out.println("Digite o ano: "); try { cp.setAno(in.nextInt()); break; } catch (InputMismatchException e) { System.out.println("Erro na entrada de dados: " + e.getMessage()); in.next(); break; } case 4: System.out.println("Digite a velocidade máxima: "); try { cp.setVelocMax(in.nextFloat()); break; } catch (InputMismatchException e) { System.out.println("Erro na entrada de dados: " + e.getMessage()); in.next(); break; } case 5: System.out.println("Digite o modelo: "); try { cp.setModelo(in.next()); break; } catch (InputMismatchException e) { System.out.println("Erro na entrada de dados: " + e.getMessage()); in.next(); break; } case 6: System.out.println("Digite a quantidade máxima de passageiros: "); try { cp.setQtdPassageiros(in.nextInt()); break; } catch (InputMismatchException e) { System.out.println("Erro na entrada de dados: " + e.getMessage()); in.next(); break; } case 7: cp.setUsado(); if (cp.getPreco() != 0) { cp.abaixaPreco(); } else { System.out.println("Preço ainda não informado!"); } break; case 0: System.out.println("Retornando ao menu anterior. "); break; default: System.out.println("Dígito incorreto, tente novamente. "); break; } } while (opcao != 0); if (cp.getAno() != 0 && cp.getCor() != " " && cp.getModelo() != " " && cp.getPreco() != 0 && cp.getQtdPassageiros() != 0 && cp.getVelocMax() != 0) { return true; } return false; } public void mostraP() { do { System.out.println("Insira a opção desejada: "); System.out.println("(1): Mostre o preço do carro: "); System.out.println("(2): Mostre a cor do carro: "); System.out.println("(3): Mostre o ano de fabricação do carro:"); System.out.println("(4): Mostre a velocidade máxima do carro: "); System.out.println("(5): Mostre o modelo do carro: "); System.out.println("(6): Mostre a quantidade de passageiros do carro: "); System.out.println("(7): Mostre se o carro é usado. "); System.out.println("(8): Aumente o preço do carro baseado na taxa prévia: "); System.out.println("(0): Retornar. "); try { opcao = in.nextInt(); } catch (InputMismatchException e) { System.out.println("Erro de entrada: " + e.getMessage()); in.next(); opcao = 0; } switch (opcao) { case 1: System.out.println("O valor do carro é de " + cp.getPreco() + "reais."); break; case 2: System.out.println("A cor do carro é: " + cp.getCor() + "."); break; case 3: System.out.println("O ano de fabricação do carro é: " + cp.getAno() + "."); break; case 4: System.out.println("A velocidade máxima do carro é de " + cp.getVelocMax() + " km/h."); break; case 5: System.out.println("O modelo do carro é: " + cp.getModelo() + "."); break; case 6: System.out.println("A quantidade máxima de passageiros é de " + cp.getQtdPassageiros() + " pessoas."); break; case 7: cp.isUsado(); break; case 8: cp.aumentaPreco(); break; case 0: System.out.println("Retornando ao menu anterior. "); break; default: System.out.println("Dígito incorreto, tente novamente. "); break; } } while (opcao != 0); } } //MenuCamioneta package Programa; import Entidade.Camioneta; import java.util.InputMismatchException; import java.util.Scanner; public class MenuCamioneta { boolean dadosEnt = false; Camioneta c = new Camioneta(); int opcao; Scanner in = new Scanner(System.in); public void camioneta() { do { System.out.println("Selecione a opção desejada: "); System.out.println("(1) Entrada de Dados."); System.out.println("(2) Verificação de Dados."); System.out.println("(0) Retornar."); try { opcao = in.nextInt(); } catch (InputMismatchException e) { System.out.println("Erro de entrada: " + e.getMessage()); in.next(); opcao = 0; } switch (opcao) { case 1: dadosEnt = entradaC(); break; case 2: if (!dadosEnt) { System.out.println("Entrada de dados ainda não completa!"); break; } mostraC(); break; case 0: System.out.println("Retornando ao menu anterior."); break; default: System.out.println("Dígito incorreto, tente novamente: "); break; } } while (opcao != 0); } public boolean entradaC() { do { System.out.println("Insira os valores na ordem: "); System.out.println("(1): Insira o preço do carro, em reais: "); System.out.println("(2): Insira a cor do carro: "); System.out.println("(3): Insira o ano de fabricação do carro: "); System.out.println("(4): Insira a velocidade máxima do carro, em km/h: "); System.out.println("(5): Insira a carga máxima suportada, em kg: "); System.out.println("(6): Defina que o carro é usado. "); System.out.println("(0): Retornar. "); try { opcao = in.nextInt(); } catch (InputMismatchException e) { System.out.println("Erro de entrada: " + e.getMessage()); in.next(); opcao = 0; } switch (opcao) { case 1: System.out.println("Digite o valor: "); try { c.setPreco(in.nextFloat()); break; } catch (InputMismatchException e) { System.out.println("Erro na entrada de dados: " + e.getMessage()); in.next(); break; } case 2: System.out.println("Digite a cor: "); try { c.setCor(in.next()); break; } catch (InputMismatchException e) { System.out.println("Erro na entrada de dados: " + e.getMessage()); in.next(); break; } case 3: System.out.println("Digite o ano: "); try { c.setAno(in.nextInt()); break; } catch (InputMismatchException e) { System.out.println("Erro na entrada de dados: " + e.getMessage()); in.next(); break; } case 4: System.out.println("Digite a velocidade máxima: "); try { c.setVelocMax(in.nextFloat()); break; } catch (InputMismatchException e) { System.out.println("Erro na entrada de dados: " + e.getMessage()); in.next(); break; } case 5: System.out.println("Digite a carga máxima: "); try { c.setQtdCarga(in.nextInt()); break; } catch (InputMismatchException e) { System.out.println("Erro na entrada de dados: " + e.getMessage()); in.next(); break; } case 6: c.setUsado(); if (c.getPreco() != 0) { c.abaixaPreco(); } else { System.out.println("Preço ainda não informado!"); } break; case 0: System.out.println("Retornando ao menu anterior. "); break; default: System.out.println("Dígito incorreto, tente novamente. "); break; } } while (opcao != 0); if (c.getAno() != 0 && c.getCor() != " " && c.getPreco() != 0 && c.getQtdCarga() != 0 && c.getVelocMax() != 0) { return true; } else { return false; } } public void mostraC() { do { System.out.println("Insira a opção desejada: "); System.out.println("(1): Mostre o preço do carro: "); System.out.println("(2): Mostre a cor do carro: "); System.out.println("(3): Mostre o ano de fabricação do carro: "); System.out.println("(4): Mostre a velocidade máxima do carro: "); System.out.println("(5):Mostre a carga máxima suportada: "); System.out.println("(6): Mostre se o carro é usado. "); System.out.println("(7): Aumente o preço do carro baseado na taxa prévia: "); System.out.println("(0): Retornar. "); try { opcao = in.nextInt(); } catch (InputMismatchException e) { System.out.println("Erro de entrada: " + e.getMessage()); in.next(); opcao = 0; } switch (opcao) { case 1: System.out.println("O preço do carro é de " + c.getPreco() + " reais."); break; case 2: System.out.println("A cor do carro é: " + c.getCor() + "."); break; case 3: System.out.println("O ano de fabricação do carro é: " + c.getAno() + "."); break; case 4: System.out.println("A velocidade máxima do carro é de " + c.getVelocMax() + " km/h."); break; case 5: System.out.println("A carga máxima suportada é de " + c.getQtdCarga() + " kg."); break; case 6: c.isUsado(); break; case 7: c.aumentaPreco(); break; case 0: System.out.println("Retornando ao menu anterior. "); break; default: System.out.println("Dígito incorreto, tente novamente. "); break; } } while (opcao != 0); } } //Entidades //Veiculo package Entidade; public abstract class Veiculo { private boolean usado = false; private String cor = " "; private int ano = 0; private float velocMax = 0; private float preco = 0; public float getVelocMax() { return velocMax; } public void setVelocMax(float velocMax) { this.velocMax = velocMax; } public float getPreco() { return preco; } public void setPreco(float preco) { this.preco = preco; } public int getAno() { return ano; } public void setAno(int ano) { this.ano = ano; } public String getCor() { return cor; } public void setCor(String cor) { this.cor = cor; } public abstract void aumentaPreco(); public void isUsado() { if (usado) { System.out.println("O carro é usado."); } } public void setUsado() { usado = true; } } //CarroPasseio package Entidade; public class CarroPasseio extends Veiculo implements Extras { private String modelo = " "; private int qtdPassageiros = 0; public String getModelo() { return modelo; } public void setModelo(String modelo) { this.modelo = modelo; } @Override public void aumentaPreco() { super.setPreco((float) (super.getPreco() * 1.05)); System.out.println("Valor aumentado em 5%."); } public int getQtdPassageiros() { return qtdPassageiros; } public void setQtdPassageiros(int qtdPassageiros) { this.qtdPassageiros = qtdPassageiros; } @Override public void abaixaPreco() { super.setPreco((float) (super.getPreco() * 0.90)); } } //Camioneta package Entidade; public class Camioneta extends Veiculo implements Extras { private int qtdCarga = 0; @Override public void aumentaPreco() { super.setPreco((float) (super.getPreco() * 1.10)); System.out.println("Valor aumentado em 10%."); } public int getQtdCarga() { return qtdCarga; } public void setQtdCarga(int qtdCarga) { this.qtdCarga = qtdCarga; } @Override public void abaixaPreco() { super.setPreco((float) (super.getPreco() * 0.85)); } }
Compartilhar