No livro do Deitel tem 3 exercícios que a medida que termina o próximo vai pedindo para modificar o anterior.
Vou passar o enunciado dos três para vocês entenderem o meu código. E depois vou dizer o que não entendi.
Primeiro os enunciados.
[b]6.31 Escreva um programa que ajude um estudante da escola primária a aprender a multiplicação. Use Math.random para produzir dois inteiros positivos. Deve então indicar uma pergunta na barra de status como:
Quanto é 6 vezes 7?
O estudante insere então a resposta em um JTextField. Se resposta correta, exiba mensagem " Muito bom! " no applet, faça então uma outra pergunta da multiplicação. Se a resposta é errada, exiba 'Tente novamente" no applet, deixe então o estudante tentar outra vez a mesma pergunta repetidamente até que o estudante acertar. Um método separado deve ser usado para gerar cada pergunta nova. Este método deve ser chamado uma vez quando o applet começa a execução e cada vez o usuário responde à pergunta corretamente.
6.32 O uso dos computadores na instrução é referido como a instrução computer-assisted (CAI). Um problema que se torna em ambientes do CAI é fatiga do estudante. Isto pode ser eliminado variando as mensagens de está correto ou não. Modifique o programa do exercício 6.31 assim que os vários comentários são imprimidos para cada resposta correta e cada resposta incorreta como segue: Muito bom!
Excelente!
Trabalho agradável!
Prossiga o bom trabalho!
Respostas a uma resposta incorreta
Não. Tente por favor outra vez.
Erro. Tente uma vez mais.
Use a geração de número aleatório para escolher um número de 1 a 4 que serão usados para selecionar uma resposta apropriada a cada resposta. Use uma switch para as respostas.
6.33 Uns sistemas mais sofisticados das instruções assistidas por computador monitoram o desempenho do estudante durante o tempo. Modifique o programa do exercício 6.32 para contar o número de respostas corretas e incorretas inseridas pelo estudante. Depois que oo estudante der 10 respostas, seu programa devem calcular a porcentagem de respostas corretas. Se a porcentagem é mais baixa de 75%, deve exibir uma mensagem dizendo que precisa da ajuda extra do instrutor, reinicialize o programa para que outro estudante possa experimentá-lo.[/b]
Por enquanto ainda não passei o código em métodos (Orientado a Objetos) estou tentando apenas pela estruturação;
Segue o código:
[code]import java.util.Scanner;
import java.util.Random;
public class Multiplication {
public static void main (String[] args)
{
Random aleatorioAcerto = new Random(); //chama classe Random
Random aleatorioErro = new Random();
int numero, numero0, numero1, numero2;
int respostaAtual;
int suaResposta;
numero1 = (int)(Math.random() * 9 +1); //gera número aleatório de 1 a 9
numero2 = (int)(Math.random() * 9 +1);//gera número aleatório de 1 a 9
respostaAtual = numero1 * numero2;
//Usuário insere resposta
Scanner input = new Scanner (System.in);
{
System.out.println("Quanto é "+ numero1 + " vezes "+ numero2 + “?”);
}
suaResposta = input.nextInt();
// RESPOSTA ERRADA
while (suaResposta !=respostaAtual) {//enquanto resposta sua for errada faça
numero = aleatorioErro.nextInt(4); //classe Random gera número aleatório de 1 a 4
switch (numero){
case 0:
System.out.printf(“Não é essa a resposta.\n”);
break;
case 1:
System.out.printf(“Hoje não é seu dia.\n”);
break;
case 2:
System.out.printf(“Continue…tentando.\n”);
break;
case 3:
System.out.printf(“Um dia você chega lá.\n”);
break;
}
System.out.printf("\n\n",numero);
System.out.print("Digite novamente a resposta: ");
suaResposta = input.nextInt(); //fim do loop quando resposta estiver correta
}
//RESPOSTA CORRETA
if ( suaResposta == respostaAtual) // Se resposta estiver correta
{
numero0 = aleatorioAcerto.nextInt(4); //classe Random gera número aleatório de 1 a 4
switch (numero0) {
case 0:
System.out.printf(“Muito bem, continue assim!”);
break;
case 1:
System.out.printf(“Jóia, você é um gênio!”);
break;
case 2:
System.out.printf(“Jovem, você tem futuro!”);
break;
case 3:
System.out.printf(“É isso aí…!”);
break;
}
System.out.printf("\n\n",numero0);
}
}
}
[/code]
O problema é no exercício 3 que pede para quando o aluno digitar 10 respostas exibir caso as respostas corretas sejam inferior 75% um mensagem para pedir ajuda ao instrutor e o programa reinicializar novamente.
Mais ou menos sei que deve usar um loop de 10 resposta com um contador, a lógica da porcentagem seria mais ou menos essa::
if ( count == 10 )
{
if ( ( respostaCorreta / 10 ) < 0.75 ) //Ainda não está criado “respostaCorreta”
System.out.printf( “Por favor peça ajuda de seu instrutor\n\n” ) ;
}
O primeiro problema é como inserir isso no código acima não estou conseguindo.
E a lógica será que está correta, dá para melhorar?