Elabore uma classe em que o usuário fornece dois números e uma letra correspondente a operação desejada de acordo com a tabela:
-------------------------
Letra | Operação
-------------------------
A | Adição PS: Procurei fazer de forma didática e de
B | Subtração 2 maneiras: uma com funções na mesma
C | Multiplicação classe outra em classes diferentes.
D | Divisão
-------------------------
(Questão 3 do livro Java 7 de Sergio Furgeri - página 64)
Código Java
//Autor: Thiago Campos
//Data: 20.09.2012
package br.com.livroJava7.pag64; //pertence a este pacote
/**
*
* @author Thiago
*/
import javax.swing.JOptionPane; //importa a biblioteca
public class Operacoes {
public static void main(String[] args){
//variaveis locais
double num1;
double num2;
double result = 0;
//resultado da operacao
char opcao='x';
String opcaoStr;
//guada a operação
String numeros = "";
//valores digitados
String operacao = "";
//operação escolhida
//entrada de dados
num1 = Integer.parseInt(JOptionPane.showInputDialog("
Informe o primeiro numero:"));
num2 = Integer.parseInt(JOptionPane.showInputDialog("
Informe o segundo numero:"));
opcaoStr = JOptionPane.showInputDialog("
Informe a operação desejada:");
opcao = opcaoStr.charAt(0);
//processo decisório
switch (opcao) {
case 'A':
result = adicao(num1, num2);
opcaoStr = "
Adição";
break;
case 'B':
result = subtrair(num1, num2);
opcaoStr = "
Subtração";
break;
case 'C':
result = multiplicar(num1, num2);
opcaoStr = "
Multiplicação";
break;
case 'D':
opcaoStr = "
Divisão";
if (num2 == 0){
JOptionPane.showMessageDialog(null, "
Opção invalida, o divisor não pode ser 0!");
}else{
result = dividir(num1, num2);
}
break;
default:
JOptionPane.showMessageDialog(null, "
Opção invalida!");
opcaoStr = "
Invalida";
}
//fim do switch
//saida dos dados
JOptionPane.showMessageDialog(null, "
RESULTADO DA OPERAÇÃO"
+ "\n
Os valores digitados foram: " + num1 + "
e " + num2
+ "\n
Operação escolhida: " + opcaoStr
+ "\n
Resultado da operação é: " + result);
}
//fim do main
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Inicio da função adição
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
public static double adicao(double n1, double n2){
//variavel
double s = 0;
//resultado da soma
s = n1 + n2;
return s;
}
//fim da função Adicao
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Inicio da função subtração
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
public static double subtrair(double n1, double n2){
//variavel
double sub = 0;
//resultado da subt
sub = n1 - n2;
return sub;
}
//fim da função Adicao
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Inicio da função multiplicar
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
public static double multiplicar(double n1, double n2){
//variavel
double m = 0;
//resultado da multiplicação
m = n1 * n2;
return m;
}
//fim da função Adicao
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Inicio da função dividir
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
public static double dividir(double n1, double n2){
//variavel
double d = 0;
//resultado da divisão
d = n1 / n2;
return d;
}
//fim da função Adicao
}
//fim da classe operações
_______________________________________________________________
2ª OPÇÃO : CLASSES DISTINTAS PARA O MESMO PROBLEMA
_______________________________________________________________
Código Java
//Autor: Thiago Campos
//Data: 20.09.2012
package br.com.livroJava7.pag64; //pertence a este pacote
/**
*
* @author Thiago
*/
import javax.swing.JOptionPane; //importa a biblioteca
public class Operacao2 {
public static void main(String[] args){
//variaveis locais
OperacaoClasse valor = new OperacaoClasse();
//instanciando objeto
double num1;
double num2;
double result = 0;
//resultado da operacao
char opcao='x';
String opcaoStr; /
/guada a operação
String numeros = "";
//valores digitados
String operacao = "";
//operação escolhida
//entrada de dados
num1 = Integer.parseInt(JOptionPane.showInputDialog("
Informe o primeiro numero:"));
num2 = Integer.parseInt(JOptionPane.showInputDialog("
Informe o segundo numero:"));
opcaoStr = JOptionPane.showInputDialog("
Informe a operação desejada:");
opcao = opcaoStr.charAt(0);
//processo decisório
switch (opcao) {
case 'A':
valor.setAdicao(num1, num2);
//envio des variaveis
result = valor.getAdicao();
//retorno do resultado
opcaoStr = "Adição";
break;
case 'B':
valor.setSubtrair(num1, num2);
//envio des variaveis
result = valor.getSubtrair();
//retorno do resultado
opcaoStr = "Subtração";
break;
case 'C':
valor.setMultiplicar(num1, num2);
//envio des variaveis
result = valor.getMultiplicar();
//retorno do resultado
opcaoStr = "Multiplicação";
break;
case 'D':
valor.setDividir(num1, num2);
//envio des variaveis
opcaoStr = "Divisão";
if (num2 == 0){
JOptionPane.showMessageDialog(null, "
Opção invalida, o divisor não pode ser 0!");
}else{
result = valor.getDividir();
//retorno do resultado
}
break;
default:
JOptionPane.showMessageDialog(null, "
Opção invalida!");
opcaoStr = "Invalida";
}
//fim do switch
//saida dos dados
JOptionPane.showMessageDialog(null, "
RESULTADO DA OPERAÇÃO"
+ "\n
Os valores digitados foram: " + num1 + " e " + num2
+ "\n
Operação escolhida: " + opcaoStr
+ "\n
Resultado da operação é: " + result);
}
//fim do main
}
//fim da classe operaçao2
_______________________________________________________________
CLASSE DOS METODOS
_______________________________________________________________
package br.com.livroJava7.pag64; //pertence a este pacote
/**
*
* @author Thiago
*/
public class OperacaoClasse {
//variaveis
private double res = 0;
//set e get
public void setAdicao(double n1, double n2){
res = n1 + n2;
}
public double getAdicao(){
return res;
}
public void setSubtrair(double n1, double n2){
res = n1 - n2;
}
public double getSubtrair(){
return res;
}
public void setMultiplicar(double n1, double n2){
res = n1 * n2;
}
public double getMultiplicar(){
return res;
}
public void setDividir(double n1, double n2){
res = n1 / n2;
}
public double getDividir(){
return res;
}
}
//fim da classe OperacaoClasse