Estou num exercício que pede um programa tipo calculadora, onde o usuário escolhe se quer adição, subtração, multiplicação ou divisão.
Após o usuário escolher o programa aleatóriamente traz probleminhas de matemática para o usuário responder.
O usuário recebe mensagens de parabéns se a resposta estiver correta, se estiver errada a resposta o usuário recebe mensagem de erro e pede novamente para o usuário dar a resposta.
Até aí tudo bem, eu consegui.
O problema é que o usuário pode escolher se quer que esses problemas de aritmética seja dado somente com números de um dígito ou escolher com dois dígitos.
Supondo que com um dígito seja (int) e dois dígitos seja (double). Segue o código abaixo feito somente com um dígito.
Qual a melhor maneira de fazer com dois dígitos? Seria deixar o código abaixo Classe Calculadora formulado com OO (Orientado a objeto) e criar uma nova classe tipo CalculadoraDoisDigitos para o de ponto flutuante em um novo programa? Fundindo depois as duas classe numa classe de teste?Ou tem como fazer no mesmo código abaixo sem comprometer a legibilidade?
[code]import java.util.Scanner;
public class Calculadora
{
public static void main ( String args[] )
{
int escolha, num1, num2, numero1, numero2, number1, number2, suaResposta;
int respostaAtual = 0;
Scanner scan = new Scanner ( System.in );
do
{
System.out.println("\n\n-1 - Sair\n 1 - Somar\n 2 - Subtrair\n 3 - Multiplicar\n 4 - Dividir");
System.out.print("\n\nEscolha uma escolhaeracao: ");
escolha = scan.nextInt();
if(escolha==-1){
System.exit(0);
}
num1 = (int)(Math.random() * 9 +1); //para gerar números aleatório para tabuada de 1 a 10
num2 = (int)(Math.random() * 9 +1);
numero1= (int)(Math.random() *1000);//para gerar números aleatórios para soma e subtração
numero2= (int)(Math.random() *1000);
number1= (int)(Math.random()*100); //para gera números aleatórios para divisão
number2= (int)(Math.random()*100);
switch(escolha)
{
case 1:
{
System.out.printf("Quanto é %d + %d \n",numero1,numero2);
respostaAtual=numero1+numero2;
break;
}
case 2:
{
System.out.printf("Quanto é %d - %d \n",numero1,numero2);
respostaAtual=numero1-numero2;
break;
}
case 3:
{
System.out.printf("Quanto é %d x %d \n",num1,num2);
respostaAtual=num1*num2;
break;
}
case 4:
{
System.out.printf("Quanto é %d / %d \n",number1,number2);
respostaAtual=number1/number2;
break;
}
}
System.out.printf("Insira a resposta: ");
suaResposta = scan.nextInt();
while(suaResposta!=respostaAtual) {
System.out.printf("Resposta errada. Digite novamente a resposta\n");
System.out.printf("Insira a resposta: ");
suaResposta = scan.nextInt();
}
if (suaResposta==respostaAtual){
System.out.printf("Parabéns, você acertou\n");
}
}
while(escolha != -1);
}
}[/code]