Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

[lista01exe19] Implementando exe19 e modificando o nome da classe Pri…

…ncipal do exe17 para Principal17.
  • Loading branch information...
commit 87f06fd1ad851ca2cb0db6d6e2f11e28282222de 1 parent aac2bed
Eduardo Quagliato authored
8 src/quagliato/prog2/lista01/Main.java
@@ -6,7 +6,8 @@
6 6 import quagliato.prog2.lista01.exe07.ExTesteCarro;
7 7 import quagliato.prog2.lista01.exe09.ExTesteColaborador;
8 8 import quagliato.prog2.lista01.exe14.ExTesteEmail;
9   -import quagliato.prog2.lista01.exe17.Principal;
  9 +import quagliato.prog2.lista01.exe17.Principal17;
  10 +import quagliato.prog2.lista01.exe19.Principal19;
10 11 import quagliato.prog2.util.StringUtils;
11 12
12 13 /**
@@ -42,7 +43,10 @@ public static void main(String args[]) {
42 43 (new ExTesteEmail()).execute();
43 44 break;
44 45 case 17:
45   - (new Principal()).execute();
  46 + (new Principal17()).execute();
  47 + break;
  48 + case 19:
  49 + (new Principal19()).execute();
46 50 break;
47 51 }
48 52
4 src/quagliato/prog2/lista01/exe17/Principal.java → src/quagliato/prog2/lista01/exe17/Principal17.java
@@ -10,7 +10,7 @@
10 10 *
11 11 * @author eduardo
12 12 */
13   -public class Principal implements Exercicio {
  13 +public class Principal17 implements Exercicio {
14 14
15 15 @Override
16 16 public void execute() {
@@ -27,7 +27,7 @@ public void execute() {
27 27 lista.adicionarItem(item3);
28 28 lista.adicionarItem(item4);
29 29
30   - Principal.imprimirLista(lista);
  30 + Principal17.imprimirLista(lista);
31 31
32 32 }
33 33
62 src/quagliato/prog2/lista01/exe19/CalcControle.java
... ... @@ -0,0 +1,62 @@
  1 +package quagliato.prog2.lista01.exe19;
  2 +
  3 +/**
  4 + *
  5 + * @author eduardo
  6 + */
  7 +public class CalcControle {
  8 +
  9 + private CalcInterface calcInterface;
  10 + private CalcDados calcDados;
  11 +
  12 + public void executar() {
  13 + if (calcInterface == null) {
  14 + calcInterface = new CalcInterface();
  15 + }
  16 +
  17 + if (calcDados == null) {
  18 + calcDados = new CalcDados();
  19 + }
  20 +
  21 + double resultado = 0;
  22 +
  23 + calcDados.setOperando(CalcDados.PRIMEIRO_OPERANDO, calcInterface.recebeOperando(CalcDados.PRIMEIRO_OPERANDO));
  24 +
  25 + while (true) {
  26 + calcDados.setOperando(CalcDados.SEGUNDO_OPERANDO, calcInterface.recebeOperando(CalcDados.SEGUNDO_OPERANDO));
  27 +
  28 + calcDados.setOperador(calcInterface.recebeOperador());
  29 + if (calcDados.getOperador() == 'S') {
  30 + System.exit(0);
  31 + }
  32 +
  33 + resultado = opera(calcDados.getOperando(CalcDados.PRIMEIRO_OPERANDO),
  34 + calcDados.getOperando(CalcDados.SEGUNDO_OPERANDO),
  35 + calcDados.getOperador());
  36 + System.out.println("resultado: " + resultado);
  37 + calcDados.setOperando(CalcDados.PRIMEIRO_OPERANDO, resultado);
  38 + }
  39 + }
  40 +
  41 + private double opera(double vl1, double vl2, char op) {
  42 + //TODO: Pergunta pro Robson 'Por que não passar uma instância de CalcDados?'
  43 + double resultado = 0;
  44 +
  45 + switch (op) {
  46 + case CalcDados.ADICAO:
  47 + resultado = vl1 + vl2;
  48 + break;
  49 + case CalcDados.DIVISAO:
  50 + resultado = vl1 / vl2;
  51 + break;
  52 + case CalcDados.MULTIPLICACAO:
  53 + resultado = vl1 * vl2;
  54 + break;
  55 + case CalcDados.SUBTRACAO:
  56 + resultado = vl1 - vl2;
  57 + break;
  58 + }
  59 +
  60 + return resultado;
  61 + }
  62 +}
53 src/quagliato/prog2/lista01/exe19/CalcDados.java
... ... @@ -0,0 +1,53 @@
  1 +package quagliato.prog2.lista01.exe19;
  2 +
  3 +/**
  4 + *
  5 + * @author eduardo
  6 + */
  7 +public class CalcDados {
  8 +
  9 + public static final int PRIMEIRO_OPERANDO = 1;
  10 + public static final int SEGUNDO_OPERANDO = 2;
  11 + public static final char ADICAO = '+';
  12 + public static final char SUBTRACAO = '-';
  13 + public static final char MULTIPLICACAO = '*';
  14 + public static final char DIVISAO = '/';
  15 + private double operando[];
  16 + private char operador;
  17 +
  18 + public void setOperando(int i, double valor) {
  19 + if (this.operando == null) {
  20 + this.operando = new double[2];
  21 + }
  22 + this.operando[i - 1] = valor;
  23 + }
  24 +
  25 + public double getOperando(int i) {
  26 + if (this.operando != null) {
  27 + return operando[i - 1];
  28 + }
  29 + return 3550; //TODO: Criar exception
  30 + }
  31 +
  32 + public void setOperador(char op) {
  33 + if (CalcDados.operadorValido(op)) {
  34 + this.operador = op;
  35 + }
  36 +
  37 + }
  38 +
  39 + public char getOperador() {
  40 + return this.operador;
  41 + }
  42 +
  43 + public static boolean operadorValido(char op) {
  44 + if (op != CalcDados.ADICAO
  45 + && op != CalcDados.SUBTRACAO
  46 + && op != CalcDados.MULTIPLICACAO
  47 + && op != CalcDados.DIVISAO
  48 + && op != 'S') {
  49 + return false;
  50 + }
  51 + return true;
  52 + }
  53 +}
54 src/quagliato/prog2/lista01/exe19/CalcInterface.java
... ... @@ -0,0 +1,54 @@
  1 +package quagliato.prog2.lista01.exe19;
  2 +
  3 +import java.util.Scanner;
  4 +
  5 +/**
  6 + *
  7 + * @author eduardo
  8 + */
  9 +public class CalcInterface {
  10 +
  11 + private CalcDados dados;
  12 + private Scanner s;
  13 +
  14 + public CalcInterface() {
  15 + this.s = new Scanner(System.in);
  16 + }
  17 +
  18 + public double recebeOperando(int i) {
  19 + inicializaCalcDados();
  20 +
  21 + if (i != CalcDados.PRIMEIRO_OPERANDO
  22 + && i != CalcDados.SEGUNDO_OPERANDO) {
  23 + return 3550; //TODO: Criar exception
  24 + }
  25 +
  26 + double valor;
  27 + System.out.print("valor: ");
  28 + valor = s.nextDouble();
  29 +
  30 + return valor;
  31 + }
  32 +
  33 + private void inicializaCalcDados() {
  34 + if (this.dados == null) {
  35 + this.dados = new CalcDados();
  36 + }
  37 + }
  38 +
  39 + public char recebeOperador() {
  40 + inicializaCalcDados();
  41 +
  42 + char op = 0;
  43 + while (!CalcDados.operadorValido(op)) {
  44 + System.out.print("operacao: ");
  45 + op = s.next().toUpperCase().charAt(0);
  46 + }
  47 +
  48 + return op;
  49 + }
  50 +
  51 + public void mostraResultado(double res) {
  52 + System.out.println("resultado: " + res);
  53 + }
  54 +}
16 src/quagliato/prog2/lista01/exe19/Principal19.java
... ... @@ -0,0 +1,16 @@
  1 +package quagliato.prog2.lista01.exe19;
  2 +
  3 +import quagliato.prog2.interfaces.Exercicio;
  4 +
  5 +/**
  6 + *
  7 + * @author eduardo
  8 + */
  9 +public class Principal19 implements Exercicio{
  10 +
  11 + @Override
  12 + public void execute() {
  13 + new CalcControle().executar();
  14 + }
  15 +
  16 +}

0 comments on commit 87f06fd

Please sign in to comment.
Something went wrong with that request. Please try again.