Código Java - Prova com questões aleatorias e correção
Por: juliagilb • 24/6/2020 • Trabalho acadêmico • 302 Palavras (2 Páginas) • 174 Visualizações
public class ProvaTeste {
public static void main(String[] args){
Prova prova = new Prova(); prova.aplicar();
}
}
import java.util.Scanner;
public class Prova {
private Scanner entrada;
private Questao[] questao;
//cria o vetor de questões
public Prova(){
entrada = new Scanner(System.in);
questao = new Questao[5];
for (int i = 0; i < 5; i++){
questao[i] = new Questao();
}
}
public void aplicar(){
int resposta;
int numeroTentativas;
boolean acertou;
for (int i = 0; i < 5; i++){
acertou = false;
numeroTentativas = 0;
//Imprimindo uma questão
System.out.printf("Questão %d:%nDigite a resposta da questão a seguir%n %s",questao[i].getIdQuestao(),questao[i].getEnunciado());
//Armazenando a resposta do usuário
resposta = entrada.nextInt();
//Verificando se a resposta está correta
while (numeroTentativas < 2){
numeroTentativas++;
if (questao[i].acertouQuestao(resposta)){
System.out.println("Muito bem, você acertou!");
acertou = true; break;
}
else{
System.out.println("Infelizmente você errou!");
if (numeroTentativas < 2){
//Imprimindo uma questão
System.out.print("Você ganhou mais uma chance! Digite outra resposta para a questão: ");
//Armazenando a resposta do usuário
resposta = entrada.nextInt();
}
}
}
//Apresentando o resultado da correção
if (acertou){
System.out.printf("Você tentou %d vez(es) e acertou a questão.%n",numeroTentativas);
}
else {
System.out.printf("Você tentou %d vez(es) e errou a questão.%n",numeroTentativas);
}
}
}
}
import java.util.Random;
public class Questao {
private static final Random numeroAleatorio = new Random();
private String enunciado;
private int gabarito;
private int idQuestao;
private static int totalQuestoes = 0;
//Elaborando a questão e armazenando a resposta correta
public Questao(){
totalQuestoes++;
idQuestao = totalQuestoes;
//Gerando os operandos da operação
int operando1 = numeroAleatorio.nextInt(10);
int operando2 = numeroAleatorio.nextInt(10);
//Calculando a resposta do exercício
gabarito = operando1 * operando2;
//Montando o enunciado
enunciado = "Quanto é " + String.valueOf(operando1) + " * " + String.valueOf(operando2) + "?: ";
...