- Faca um programa para corrigir provas de multipla escolha. Cada prova tem 8 questoes e ̃
cada questao vale um ponto. O primeiro conjunto de dados a ser lido do usuario ́ e o gabarito ́
da prova. Os outros dados sao os numeros dos alunos e as respostas que deram ́ as questoes. ̃
Existem dez alunos matriculados. Calcule e mostre:
• O numero e a nota de cada aluno; ́
• A porcentagem de aprovac ̧ao, sabendo-se que a nota m ınima e 6 ́
olha que eu fiz
Scanner sc = new Scanner(System.in);
int [] prova = new int[8];
int []usuario = new int [8];
int questao =1;
String nomeAluno;
int nota[] = new int[8];
String abcd;
int cont =1;
while (cont <= 10 ){
System.out.println("Seu nome ");
nomeAluno = sc.next();
for (int j = 1; j < prova.length; j++){
System.out.println(" " +j +" questao : A - B - C - D" );
abcd = sc.next();
}
for (int j = 0; j < prova.length; j++) {
System.out.println(nomeAluno+" nota: "+nota[j]);
}
cont++;
}
System.out.println("A nota do aluno é : ");
}
como calcular nota so sei pegar o nomes de aluno.
Não precisa ler nome do aluno.
Faça como pede o enunciado:
Comece implementando a leitura do gabarito.
Depois implemente a leitura dos números dos alunos e as respostas.
Botei pra gerar automáticamente, digitar tudo isso é chato.
import java.util.ArrayList;
import java.util.stream.IntStream;
public class App {
private static final Prova GABARITO = new Prova();
private static final ArrayList<Prova> PROVAS_DOS_ALUNOS = new ArrayList<Prova>();
private static final int QUANTIDADE_DE_ALUNOS = 10;
public static void main(String[] args) {
gerarProvasDosAlunos();
exibir();
}
private static void gerarProvasDosAlunos()
{
IntStream.range(0, QUANTIDADE_DE_ALUNOS).forEach(i -> PROVAS_DOS_ALUNOS.add(new Prova()));
}
private static void exibirRespostasGabarito()
{
GABARITO.getRespostas().forEach(resposta -> System.out.print(resposta + " "));
}
private static int compararComOGabarito(Prova prova)
{
int i = 0;
int pontos = 0;
for(char resposta : prova.getRespostas())
{
if (resposta == GABARITO.getRespostas().get(i))
{
pontos++;
}
i++;
}
return pontos;
}
private static void exibirRespostasAlunos()
{
int i = 0;
for(Prova prova : PROVAS_DOS_ALUNOS)
{
System.out.print(i + 1 + ") ");
prova.getRespostas().forEach(resposta -> System.out.print(resposta + " "));
System.out.println("Acertou: " + compararComOGabarito(prova));
i++;
}
}
private static double porcentagemDeAprovacao()
{
int aprovados = 0;
for(Prova prova : PROVAS_DOS_ALUNOS)
{
if(compararComOGabarito(prova) >= Prova.QUANTIDADE_DE_ACERTOS_PARA_APROVACAO)
{
aprovados++;
}
}
return (double) aprovados / PROVAS_DOS_ALUNOS.size();
}
private static void exibir()
{
System.out.println("===============================================");
System.out.println("GABARITO");
exibirRespostasGabarito();
System.out.println();
System.out.println("===============================================");
System.out.println("RESPOSTAS DOS ALUNOS");
exibirRespostasAlunos();
System.out.println("===============================================");
System.out.println("Porcentagem de Aprovação: " + porcentagemDeAprovacao() * 100 + "%");
}
}
import java.util.ArrayList;
import java.util.Random;
import java.util.stream.IntStream;
public class Prova {
public final static String ALTERNATIVAS = "ABCD";
public final static int NUMERO_DE_QUESTOES = 8;
public final static int QUANTIDADE_DE_ACERTOS_PARA_APROVACAO = 6;
private ArrayList<Character> respostas = new ArrayList<Character>();
Prova()
{
gerar();
}
public ArrayList<Character> getRespostas()
{
return respostas;
}
private void gerar()
{
Random random = new Random();
IntStream.range(0, NUMERO_DE_QUESTOES).forEach(i -> {
char alternativa = ALTERNATIVAS.charAt(random.nextInt(ALTERNATIVAS.length()));
respostas.add(alternativa);
});
}
}