Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

MikeM

Exerc. para calcular media

Recommended Posts

Oi.
Preciso fazer um codigo que leia a nota das 5 notas digitadas e dê a média, que é 6, e diga caso >=6 = aprovado, se não está em Recuperação. Caso ele fique em Recuperação, a menor das 5 notas será substituido pela nota da Recuperação, e após isso a divisão devera ser feita novamente para ver se o aluno está ou não aprovado.
n1+n2+n3+n4+n5 / 5
Caso for maior ou igual a 6 = aprovado, beleza..
Caso contrario: Aluno em RP
Ai vai aparecer uma mensagem dizendo para digitar a nota da prova de Recuperação do aluno, ficando assim:
n1+n2+n3(imagine que essa foi a menor nota)+n4+n5 / 5
Caso a media for = ou maior q 6 = aprovado
caso contrario = ALUNO REPROVADO
Fiz esse codigo, que ta incompleto devido a minha debilitação devido ao trabalho e a falta de tempo:

 

import java.util.Scanner;

import java.text.DecimalFormat;
public class Avaliacao01
{
public static void main(String[] args);
{
Scanner nota = new Scanner(System.in);
DecimalFormat media = new DecimalFormat(“0.00);
float n1, n2, n3, n4, n5, media, RPal1, RPal2;
float opc1=Sim;
float opc2=Nao;
String aluno1 = Mike;
String aluno2 = Joao;
System.out.println("Digite a nota da 1ª avaliação do aluno: "+aluno1);
n1 = nota.nextFloat();
System.out.println("Digite a nota da 2ª avaliação do aluno: "+aluno1);
n2 = nota.nextFloat();
System.out.println("Digite a nota da 3ª avaliação do aluno: "+aluno1);
n3 = nota.nextFloat();
System.out.println("Digite a nota da 4ª avaliação do aluno: "+aluno1);
n4 = nota.nextFloat();
System.out.println("Digite a nota da 5ª avaliação do aluno: "+aluno1);
n5 = nota.nextFloat();
media = (n1+n2+n3+n4+n5)/5;
System.out.println(ajuste.format(media));
if (media >=6)
{
System.out.println("A média do aluno foi de: "+media". Ele está aprovado!");
}
else
{
System.out.println("A média do aluno foi de: "+media". O mínimo para ser aprovado é 6. O aluno está em recuperação");
}
RPal1 = getValue(n1, n2, n3, n4, n5);
System.out.println("Digite a nota da prova de recuperação do aluno: "+aluno1);
RPal1=mf.nextFloat();
mf=(n1 < n2)/5
{
....... Continuar amanhã
System.out.println("Deseja continuar e ajustar a nota da prova de recuperação do aluno "+aluno1 "? (opc1=S/opc2=N)");
if (opc1=Sim)
{
RPal1 =

 

Podem me ajudar a corrigir os erros e dizer onde errei? Sei que tem muitos erros e algumas coisas incompletas. É que cheguei 00:00 em casa (faço 2 cursos e estudo) e o sor deu esse exercicio para amanha.
Abç

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tive tempo pra testar.

import java.util.Scanner;

public class Main {
    
    private final Scanner input;

    public Main() {
        this.input = new Scanner(System.in);
        init();
    }
    
    private boolean isAprovado(double notas[]){
        double media = 0;
        for(int i = 0; i < notas.length; i++)
            media += notas[i];
        return media / notas.length >= 6;
    }
    
    private void mudaMenorNota(double arrayNotas[], double nota){
        double menor = arrayNotas[0];
        int indexMenor = 0;
        for(int i = 1; i < arrayNotas.length; i++)
            if(arrayNotas[i] < menor)
                indexMenor = i;
        arrayNotas[indexMenor] = nota;
    }
    
    private void init(){
        double notas[] = new double[5];
        for(int i = 0; i < notas.length;i++){
            System.out.println((i+1) + " nota: ");
            notas[i] = input.nextDouble();
        }
        
        if(isAprovado(notas))
            System.out.println("Aluno aprovado.");
        else {
            System.out.println("Aluno Reprovado. Nota de recuperação do aluno: ");
            double notaRecuperacao = input.nextDouble();
            mudaMenorNota(notas, notaRecuperacao);
            if(isAprovado(notas))
                System.out.println("Aluno aprovado com a nota de recuperação.");
            else System.out.println("Reprovado");
        }
    }
    
    public static void main(String[] args) {
        new Main();
    }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Refiz o meu código:

 

 

import java.util.Scanner;
import java.text.DecimalFormat;
public class Media
{
public static void main(String[] args)
{
Scanner ler=new Scanner(System.in);
DecimalFormat dec = new DecimalFormat("0.00");
float n1, n2, n3, n4, n5, media, mf;
int opc1 = 1;
int opc2 = 2;
String aluno1 = "Mike";
System.out.println("Digite a nota da 1ª avaliação do aluno: "+aluno1);
n1 = ler.nextFloat();
System.out.println("Digite a nota da 2ª avaliação do aluno: "+aluno1);
n2 = ler.nextFloat();
System.out.println("Digite a nota da 3ª avaliação do aluno: "+aluno1);
n3 = ler.nextFloat();
System.out.println("Digite a nota da 4ª avaliação do aluno: "+aluno1);
n4 = ler.nextFloat();
System.out.println("Digite a nota da 5ª avaliação do aluno: "+aluno1);
n5 = ler.nextFloat();
media = (n1+n2+n3+n4+n5)/5;
System.out.println(dec.format(media));
if (media >=6)
{
System.out.println("Aluno aprovado!!! A média mínima é 6. A média do aluno é: "+media);
}
else
{
System.out.println("Aluno em recuperação!!! A média mínima é 6. A média do aluno é: "+media);
System.out.println("\n\n Deseja continuar e fazer a média contando com a nota da recuperação do aluno? (S=1/N=2)");
opc1 = ler.nextInt();
if (opc1==1)
{
System.out.println("Digite a nota da prova de recuperação do aluno:");
//Continuar...
}
else
{
System.out.println("\n\n Tchau. Até mais! ");
}
}
}
}

 


Falta: Completar a parte da recuperação, fazendo ela substituir a menor nota entre as 5 avaliações, e depois dividir todas as 5 avaliações por 5, e caso a média for =>6 = aprovado, caso contrário = reprovado.
Após isso o código precisa perguntar se o usuário quer continuar a setar a nota dos outros alunos, que no caso seria o aluno 2,3,4,5 e 6.
Quero também que de para "selecionar" um aluno para setar a nota dele por meio de um numero, por exemplo, aparecer escrito: 1. Mike, 2. Joao. Se o usuário digitar 1, vai começar a aparecer os println do meu código, perguntando a nota das avaliações, rp, etc... e quando terminar perguntar se quer continuar ou não setando nota dos alunos, se sim, aparecer a lista de alunos novamente, se não, a println de despedida que eu disse. Essa última parte eu já fiz.
P.S: Quando colocarem o código em algum programa, irão perceber que "opc1 = 1" está escrito do lado "O valor designado nunca é utilizado". Não sei como consertar isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.