Skip to content
Browse files

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

…ncipal do exe17 para Principal17.
  • Loading branch information...
1 parent aac2bed commit 87f06fd1ad851ca2cb0db6d6e2f11e28282222de Eduardo Quagliato committed May 7, 2012
View
8 src/quagliato/prog2/lista01/Main.java
@@ -6,7 +6,8 @@
import quagliato.prog2.lista01.exe07.ExTesteCarro;
import quagliato.prog2.lista01.exe09.ExTesteColaborador;
import quagliato.prog2.lista01.exe14.ExTesteEmail;
-import quagliato.prog2.lista01.exe17.Principal;
+import quagliato.prog2.lista01.exe17.Principal17;
+import quagliato.prog2.lista01.exe19.Principal19;
import quagliato.prog2.util.StringUtils;
/**
@@ -42,7 +43,10 @@ public static void main(String args[]) {
(new ExTesteEmail()).execute();
break;
case 17:
- (new Principal()).execute();
+ (new Principal17()).execute();
+ break;
+ case 19:
+ (new Principal19()).execute();
break;
}
View
4 ...gliato/prog2/lista01/exe17/Principal.java → ...iato/prog2/lista01/exe17/Principal17.java
@@ -10,7 +10,7 @@
*
* @author eduardo
*/
-public class Principal implements Exercicio {
+public class Principal17 implements Exercicio {
@Override
public void execute() {
@@ -27,7 +27,7 @@ public void execute() {
lista.adicionarItem(item3);
lista.adicionarItem(item4);
- Principal.imprimirLista(lista);
+ Principal17.imprimirLista(lista);
}
View
62 src/quagliato/prog2/lista01/exe19/CalcControle.java
@@ -0,0 +1,62 @@
+package quagliato.prog2.lista01.exe19;
+
+/**
+ *
+ * @author eduardo
+ */
+public class CalcControle {
+
+ private CalcInterface calcInterface;
+ private CalcDados calcDados;
+
+ public void executar() {
+ if (calcInterface == null) {
+ calcInterface = new CalcInterface();
+ }
+
+ if (calcDados == null) {
+ calcDados = new CalcDados();
+ }
+
+ double resultado = 0;
+
+ calcDados.setOperando(CalcDados.PRIMEIRO_OPERANDO, calcInterface.recebeOperando(CalcDados.PRIMEIRO_OPERANDO));
+
+ while (true) {
+ calcDados.setOperando(CalcDados.SEGUNDO_OPERANDO, calcInterface.recebeOperando(CalcDados.SEGUNDO_OPERANDO));
+
+ calcDados.setOperador(calcInterface.recebeOperador());
+ if (calcDados.getOperador() == 'S') {
+ System.exit(0);
+ }
+
+ resultado = opera(calcDados.getOperando(CalcDados.PRIMEIRO_OPERANDO),
+ calcDados.getOperando(CalcDados.SEGUNDO_OPERANDO),
+ calcDados.getOperador());
+ System.out.println("resultado: " + resultado);
+ calcDados.setOperando(CalcDados.PRIMEIRO_OPERANDO, resultado);
+ }
+ }
+
+ private double opera(double vl1, double vl2, char op) {
+ //TODO: Pergunta pro Robson 'Por que não passar uma instância de CalcDados?'
+ double resultado = 0;
+
+ switch (op) {
+ case CalcDados.ADICAO:
+ resultado = vl1 + vl2;
+ break;
+ case CalcDados.DIVISAO:
+ resultado = vl1 / vl2;
+ break;
+ case CalcDados.MULTIPLICACAO:
+ resultado = vl1 * vl2;
+ break;
+ case CalcDados.SUBTRACAO:
+ resultado = vl1 - vl2;
+ break;
+ }
+
+ return resultado;
+ }
+}
View
53 src/quagliato/prog2/lista01/exe19/CalcDados.java
@@ -0,0 +1,53 @@
+package quagliato.prog2.lista01.exe19;
+
+/**
+ *
+ * @author eduardo
+ */
+public class CalcDados {
+
+ public static final int PRIMEIRO_OPERANDO = 1;
+ public static final int SEGUNDO_OPERANDO = 2;
+ public static final char ADICAO = '+';
+ public static final char SUBTRACAO = '-';
+ public static final char MULTIPLICACAO = '*';
+ public static final char DIVISAO = '/';
+ private double operando[];
+ private char operador;
+
+ public void setOperando(int i, double valor) {
+ if (this.operando == null) {
+ this.operando = new double[2];
+ }
+ this.operando[i - 1] = valor;
+ }
+
+ public double getOperando(int i) {
+ if (this.operando != null) {
+ return operando[i - 1];
+ }
+ return 3550; //TODO: Criar exception
+ }
+
+ public void setOperador(char op) {
+ if (CalcDados.operadorValido(op)) {
+ this.operador = op;
+ }
+
+ }
+
+ public char getOperador() {
+ return this.operador;
+ }
+
+ public static boolean operadorValido(char op) {
+ if (op != CalcDados.ADICAO
+ && op != CalcDados.SUBTRACAO
+ && op != CalcDados.MULTIPLICACAO
+ && op != CalcDados.DIVISAO
+ && op != 'S') {
+ return false;
+ }
+ return true;
+ }
+}
View
54 src/quagliato/prog2/lista01/exe19/CalcInterface.java
@@ -0,0 +1,54 @@
+package quagliato.prog2.lista01.exe19;
+
+import java.util.Scanner;
+
+/**
+ *
+ * @author eduardo
+ */
+public class CalcInterface {
+
+ private CalcDados dados;
+ private Scanner s;
+
+ public CalcInterface() {
+ this.s = new Scanner(System.in);
+ }
+
+ public double recebeOperando(int i) {
+ inicializaCalcDados();
+
+ if (i != CalcDados.PRIMEIRO_OPERANDO
+ && i != CalcDados.SEGUNDO_OPERANDO) {
+ return 3550; //TODO: Criar exception
+ }
+
+ double valor;
+ System.out.print("valor: ");
+ valor = s.nextDouble();
+
+ return valor;
+ }
+
+ private void inicializaCalcDados() {
+ if (this.dados == null) {
+ this.dados = new CalcDados();
+ }
+ }
+
+ public char recebeOperador() {
+ inicializaCalcDados();
+
+ char op = 0;
+ while (!CalcDados.operadorValido(op)) {
+ System.out.print("operacao: ");
+ op = s.next().toUpperCase().charAt(0);
+ }
+
+ return op;
+ }
+
+ public void mostraResultado(double res) {
+ System.out.println("resultado: " + res);
+ }
+}
View
16 src/quagliato/prog2/lista01/exe19/Principal19.java
@@ -0,0 +1,16 @@
+package quagliato.prog2.lista01.exe19;
+
+import quagliato.prog2.interfaces.Exercicio;
+
+/**
+ *
+ * @author eduardo
+ */
+public class Principal19 implements Exercicio{
+
+ @Override
+ public void execute() {
+ new CalcControle().executar();
+ }
+
+}

0 comments on commit 87f06fd

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