public class Teste
{
public static void main(String argggg[]) throws IOException
{
Operacoes op = new Operacoes();
Soma s = new Soma();
BufferedReader b = new BufferedReader(new InputStreamReader(System.in));
System.out.println(“Insira o primeiro valor :”);
op.setNumero1(Integer.parseInt(b.readLine()));
System.out.println(“Insira o segundo valor :”);
op.setNumero2(Integer.parseInt(b.readLine()));
System.out.println(“Selecione a operação: 1 = Soma, 2 = Subtraçaõ, 3 = Divisão, 4 = Multiplicação , 5 = Sair\n”);
op.setTipoOper(Integer.parseInt(b.readLine()));
switch(op.getTipoOper())
{
case 1:
s.Somar();
break;
case 5:
System.exit(0);
break;
default:
System.out.print(“Voce não inseriu nenhum dos itens de escolha”);
break;
}
}
}[/code]
Ele imprime na tela sempre zero no resultado!!!Sei que ele não esta atribuindo Os valores recebidos de teclado para o lugar certo que seria a superclasse…
mas porque???
se alguem puder me ajudar!!
grato
public class Teste
{
public static void main(String argggg[]) throws IOException
{
Soma op = new Soma();
BufferedReader b = new BufferedReader(new InputStreamReader(System.in));
System.out.println(“Insira o primeiro valor :”);
op.setNumero1(Integer.parseInt(b.readLine()));
System.out.println(“Insira o segundo valor :”);
op.setNumero2(Integer.parseInt(b.readLine()));
System.out.println(“Selecione a operação: 1 = Soma, 2 = Subtraçaõ, 3 = Divisão, 4 = Multiplicação , 5 = Sair\n”);
op.setTipoOper(Integer.parseInt(b.readLine()));
switch(op.getTipoOper())
{
case 1:
op.Somar();
break;
case 5:
System.exit(0);
break;
default:
System.out.print(“Voce não inseriu nenhum dos itens de escolha”);
break;
}
}
}[/code]
Se quisesse usar polimorfismo, veja o exemplo da Wikipedia (que por sinal eu escrevi):
Eu não havia terminado o codigo, tinha apenas feito a classe de soma, mas agora fiz a de subtração divisao e multiplicaçaõ, mas com aquele codigo á atribuido apenas para soma, e subtração e o restante continua com o mesmo problema de antes…
poderia fazer um loop pra melhor esse codigo na hora de passar os valores ! ficaria mais pratico e facil entendimento ! sem muita poluição de codigo! [quote]uma IDEIA!!! vlw!!![/quote]
Eu pus protected para que não sejam vistos de fora do pacote, pq estao todos no mesmi pacote, mas acho q naum eh isso q nao esta deixando funcionar certo???
como que poderia ser feito esse loop com while, for???
de q forma…
Tomei a liberdade de implementar um codigo diferente e peço que vc melhore a a formatação para o que vc deseja:
Classe Operacoes:[code]package calculadora;
public class Operacoes {
// metodo para somar.....
public float soma(int a, int b){
return (a + b);
}
//metodo subtrair e por diante…
public float subtracao(int a, int b){
return (a - b);
}
public float multiplica(int a, int b ){
return (a * b);
}
public float divide(int a, int b){
return(a /b);
}
}[/code]
classe Main ou principal
[code]
public class Main {
public static void main(String[] args) throws IOException {
Scanner s = new Scanner(System.in);
System.out.println("Digite um Numero........:");
int a = (Integer)s.nextInt();
System.out.println("Digite outro Numero....:");
int b = (Integer)s.nextInt();
System.out.println("\tSelecione a operação:\t\n1 = Soma,\t\n 2 = Subtração,\t\n 3 = Multiplicação,\t\n 4 = Divisão,\t\n 5 = Sair\n");
int opcao = (Integer)s.nextInt();
Operacoes op = new Operacoes();
switch (opcao) {
case 1:
System.out.println(op.soma(a, b));
break;
case 2:
op.subtracao(a, b);
break;
case 3:
op.multiplica(a, b);
break;
case 4:
op.divide(a, b);
break;
case 5:
System.exit(0);
break;
default:
System.out.println("Opção Invalida.............!");
break;
}
}
}[/code]
Realmente não foi necessário nem de loop de acordo com a logica da calculadora ! Mas se precisasse continuar calculando ai precisaria!
você pode fazer uma melhora com um metodo recursivo! mas ai é contigo !! Espero ter ajudado na sua duvida! Afinal nesse caso não seria necessário o uso de get e set …
[quote=paulo.rogeriobr]Tomei a liberdade de implementar um codigo diferente e peço que vc melhore a a formatação para o que vc deseja:
Classe Operacoes:[code]package calculadora;
public class Operacoes {
// metodo para somar.....
public float soma(int a, int b){
return (a + b);
}
//metodo subtrair e por diante…
public float subtracao(int a, int b){
return (a - b);
}
public float multiplica(int a, int b ){
return (a * b);
}
public float divide(int a, int b){
return(a /b);
}
}[/code]
classe Main ou principal
[code]
public class Main {
public static void main(String[] args) throws IOException {
Scanner s = new Scanner(System.in);
System.out.println("Digite um Numero........:");
int a = (Integer)s.nextInt();
System.out.println("Digite outro Numero....:");
int b = (Integer)s.nextInt();
System.out.println("\tSelecione a operação:\t\n1 = Soma,\t\n 2 = Subtração,\t\n 3 = Multiplicação,\t\n 4 = Divisão,\t\n 5 = Sair\n");
int opcao = (Integer)s.nextInt();
Operacoes op = new Operacoes();
switch (opcao) {
case 1:
System.out.println(op.soma(a, b));
break;
case 2:
op.subtracao(a, b);
break;
case 3:
op.multiplica(a, b);
break;
case 4:
op.divide(a, b);
break;
case 5:
System.exit(0);
break;
default:
System.out.println("Opção Invalida.............!");
break;
}
}
}[/code]
Realmente não foi necessário nem de loop de acordo com a logica da calculadora ! Mas se precisasse continuar calculando ai precisaria!
você pode fazer uma melhora com um metodo recursivo! mas ai é contigo !! Espero ter ajudado na sua duvida! Afinal nesse caso não seria necessário o uso de get e set …
vlw
[/quote]
POxa vlw ai rogerio…vc ajudou e muito…obrigadao msm…