Duvida na hora de executar

5 respostas
LucasAdri07

Olá pessoal.

Estava desenvolvendo um código aqui para calcular média de aluno, imprimir se foir aprovado, se precisará de recuperação, etc…

public class MediaFinalAluno {

    public static void main(String[] args) {
        double nota1ano1 = 10;
        double nota2ano1 = 10;
        double nota3ano1 = 10;
        double nota4ano1 = 7;
        double nota5ano1 = 5;
        double nota6ano1 = 9;
        double nota7ano1 = 4;
        double nota8ano1 = 10;
        double nota9ano1 = 10;
        double nota10ano1 = 10;
        double nota11ano1 = 10;
        double nota12ano1 = 4;
        double mediaPrimeiroBimestre = nota1ano1 + nota2ano1 + nota3ano1;
        double mediaSegundoBimestre = nota4ano1 + nota5ano1 + nota6ano1;
        double mediaTerceiroBimestre = nota7ano1 + nota8ano1 + nota9ano1;
        double mediaQuartoBimestre = nota10ano1 + nota11ano1 + nota12ano1;
        double mediaFinalAlunoAno1 = mediaPrimeiroBimestre / 3 + mediaSegundoBimestre / 3 + mediaTerceiroBimestre / 3 + mediaQuartoBimestre / 3;
        mediaFinalAlunoAno1 = mediaFinalAlunoAno1 / 4;
        int qtdNegativas = 0;
        if (nota1ano1 < 5) {
            qtdNegativas++;
        }
        if (nota2ano1 < 5) {
            qtdNegativas++;
        }
        if (nota3ano1 < 5) {
            qtdNegativas++;
        }
        if (nota4ano1 < 5) {
            qtdNegativas++;
        }
        if (nota5ano1 < 5) {
            qtdNegativas++;
        }
        if (nota6ano1 < 5) {
            qtdNegativas++;
        }
        if (nota7ano1 < 5) {
            qtdNegativas++;
        }
        if (nota8ano1 < 5) {
            qtdNegativas++;
        }
        if (nota9ano1 < 5) {
            qtdNegativas++;
        }
        if (nota10ano1 < 5) {
            qtdNegativas++;
        }
        if (nota11ano1 < 5) {
            qtdNegativas++;
        }
        if (nota12ano1 < 5) {
            qtdNegativas = qtdNegativas + 1;
        }
        System.out.println("Resultado Escolar 1º Ano do Ensino Médio");
        System.out.printf("\nMedia do Primeiro Bimestre = %.1f %n", (mediaPrimeiroBimestre / 3));
        System.out.printf("Media do Segundo Bimestre = %.1f %n", (mediaSegundoBimestre / 3));
        System.out.printf("Media do Terceiro Bimestre = %.1f %n", (mediaTerceiroBimestre / 3));
        System.out.printf("Media do Quarto Bimestre = %.1f %n", (mediaQuartoBimestre / 3));
        System.out.printf("Media Final do Aluno = %.1f %n", (mediaFinalAlunoAno1));
        if (qtdNegativas >= 3) {
            System.out.println("\nReprovado por exceder o numero de notas negativas.");
            System.exit(0);
        } else if (mediaFinalAlunoAno1 > 7) {
            System.out.println("\nAluno Aprovado");
        } else if (mediaFinalAlunoAno1 < 5) {
            System.out.println("\nReprovado");
            System.exit(0);
        } else {
            System.out.println("\nAluno Aprovado Com Dependencia");
        }
        double nota1ano2 = 8;
        double nota2ano2 = 10;
        double nota3ano2 = 7;
        double nota4ano2 = 6;
        double nota5ano2 = 4;
        double nota6ano2 = 8;
        double nota7ano2 = 9;
        double nota8ano2 = 10;
        double nota9ano2 = 4;
        double nota10ano2 = 8;
        double nota11ano2 = 8;
        double nota12ano2 = 5;
        double mediaPrimeiroBimestreAno2 = nota1ano2 + nota2ano2 + nota3ano2;
        double mediaSegundoBimestreAno2 = nota4ano2 + nota5ano2 + nota6ano2;
        double mediaTerceiroBimestreAno2 = nota7ano2 + nota8ano2 + nota9ano2;
        double mediaQuartoBimestreAno2 = nota10ano2 + nota11ano2 + nota12ano2;
        double mediaFinalAlunoAno2 = mediaPrimeiroBimestreAno2 / 3 + mediaSegundoBimestreAno2 / 3 + mediaTerceiroBimestreAno2 / 3 + mediaQuartoBimestreAno2 / 3;
        mediaFinalAlunoAno2 = mediaFinalAlunoAno2 / 4;
        qtdNegativas = 0;
        if (nota1ano2 < 5) {
            qtdNegativas++;
        }
        if (nota2ano2 < 5) {
            qtdNegativas++;
        }
        if (nota3ano2 < 5) {
            qtdNegativas++;
        }
        if (nota4ano2 < 5) {
            qtdNegativas++;
        }
        if (nota5ano2 < 5) {
            qtdNegativas++;
        }
        if (nota6ano2 < 5) {
            qtdNegativas++;
        }
        if (nota7ano2 < 5) {
            qtdNegativas++;
        }
        if (nota8ano2 < 5) {
            qtdNegativas++;
        }
        if (nota9ano2 < 5) {
            qtdNegativas++;
        }
        if (nota10ano2 < 5) {
            qtdNegativas++;
        }
        if (nota11ano2 < 5) {
            qtdNegativas++;
        }
        if (nota12ano2 < 5) {
            qtdNegativas = qtdNegativas + 1;
        }
        System.out.println("\nResultado Escolar 2º Ano do Ensino Médio");
        System.out.printf("\nMedia do Primeiro Bimestre = %.1f %n", (mediaPrimeiroBimestreAno2 / 3));
        System.out.printf("Media do Segundo Bimestre = %.1f %n", (mediaSegundoBimestreAno2 / 3));
        System.out.printf("Media do Terceiro Bimestre = %.1f %n", (mediaTerceiroBimestreAno2 / 3));
        System.out.printf("Media do Quarto Bimestre = %.1f %n", (mediaQuartoBimestreAno2 / 3));
        System.out.printf("Media Final do Aluno = %.1f %n", (mediaFinalAlunoAno2));
        if (qtdNegativas >= 3) {
            System.out.println("\nReprovado por exceder o numero de notas negativas.");
            System.exit(0);
        } else if (mediaFinalAlunoAno2 > 7) {
            System.out.println("\nAluno Aprovado");
        } else if (mediaFinalAlunoAno2 < 5) {
            System.out.println("\nReprovado");
            System.exit(0);
        } else {
            System.out.println("\nAluno Aprovado Com Dependencia");
        }

        double nota1ano3 = 7;
        double nota2ano3 = 4;
        double nota3ano3 = 9;
        double nota4ano3 = 5;
        double nota5ano3 = 8;
        double nota6ano3 = 4;
        double nota7ano3 = 5;
        double nota8ano3 = 10;
        double nota9ano3 = 7;
        double nota10ano3 = 5;
        double nota11ano3 = 6;
        double nota12ano3 = 10;
        double mediaPrimeiroBimestreAno3 = nota1ano3 + nota2ano3 + nota3ano3;
        double mediaSegundoBimestreAno3 = nota4ano3 + nota5ano3 + nota6ano3;
        double mediaTerceiroBimestreAno3 = nota7ano3 + nota8ano3 + nota9ano3;
        double mediaQuartoBimestreAno3 = nota10ano3 + nota11ano3 + nota12ano3;
        double mediaFinalAlunoAno3 = mediaPrimeiroBimestreAno3 / 3 + mediaSegundoBimestreAno3 / 3 + mediaTerceiroBimestreAno3 / 3 + mediaQuartoBimestreAno3 / 3;
        mediaFinalAlunoAno3 = mediaFinalAlunoAno3 / 4;
        double mediaFinalAlunoTotal = (mediaFinalAlunoAno1 + mediaFinalAlunoAno2 + mediaFinalAlunoAno3) / 3;
        qtdNegativas = 0;
        if (nota1ano3 < 5) {
            qtdNegativas++;
        }
        if (nota2ano3 < 5) {
            qtdNegativas++;
        }
        if (nota3ano3 < 5) {
            qtdNegativas++;
        }
        if (nota4ano3 < 5) {
            qtdNegativas++;
        }
        if (nota5ano3 < 5) {
            qtdNegativas++;
        }
        if (nota6ano3 < 5) {
            qtdNegativas++;
        }
        if (nota7ano3 < 5) {
            qtdNegativas++;
        }
        if (nota8ano3 < 5) {
            qtdNegativas++;
        }
        if (nota9ano3 < 5) {
            qtdNegativas++;
        }
        if (nota10ano3 < 5) {
            qtdNegativas++;
        }
        if (nota11ano3 < 5) {
            qtdNegativas++;
        }
        if (nota12ano3 < 5) {
            qtdNegativas = qtdNegativas + 1;
        }
        System.out.println("\nResultado Escolar 3º Ano do Ensino Médio");
        System.out.printf("\nMedia do Primeiro Bimestre = %.1f %n", (mediaPrimeiroBimestreAno3 / 3));
        System.out.printf("Media do Segundo Bimestre = %.1f %n", (mediaSegundoBimestreAno3 / 3));
        System.out.printf("Media do Terceiro Bimestre = %.1f %n", (mediaTerceiroBimestreAno3 / 3));
        System.out.printf("Media do Quarto Bimestre = %.1f %n", (mediaQuartoBimestreAno3 / 3));
        System.out.printf("Media Final Aluno = %.1f %n", (mediaFinalAlunoAno3));
        if (qtdNegativas >= 3) {
            System.out.println("\nReprovado por exceder o numero de notas negativas.");
            System.exit(0);
        } else if (mediaFinalAlunoAno3 > 7) {
            System.out.println("\nAluno Aprovado Parcialmente, Aguardando Media Final do Aluno Após o Periodo do Curso");
            System.exit(0);
        } else if (mediaFinalAlunoAno3 < 5) {
            System.out.println("\nReprovado");
        } else {
            System.out.println("\nAluno Aprovado Parcialmente, Aguardando Media Final do Aluno Após o Periodo do Curso ");
        }
        System.out.printf("\nMedia Final do Aluno Após o Periodo do Curso = %.1f %n", (mediaFinalAlunoTotal));
        if (mediaFinalAlunoTotal >= 7) {
            System.out.println("\nAluno atingiu a média e concluiu o curso com sucesso.");
        } else if (mediaFinalAlunoTotal < 4) {
            System.out.println("\nAluno não atingiu a média suficiente para a conclusão do curso.");
        } else {
            System.out.println("\nAluno deve realizar uma prova de recuperação.");
        }
    }
}

Obs: Desculpe pelo código imenso mas sera necessario para entender o problema.

Só que tem um problema, gostaria que imprimisse que se o aluno tiver 2 Aluno Aprovado Com Dependencia na soma total para o final do curso, que esse aluno fosse reprovado.

Preciso criar uma variavél int AlunoAprovadoComDependencia = 0; e criar um if dizendo

if (AlunoAprovadoComDependencia = 2) System.out.println ("Aluno Reprovado");

Só não sei como fazer na hora que imprimir que o Aluno foi aprovado com dependencia como vincular com a variavél AlunoAprovadoComDependencia.

5 Respostas

B

Você sabe quando um aluno foi aprovado com dependência. Portanto, pode incrementar a tal variável neste ponto aqui de seu programa:

} else {  
             System.out.println("\nAluno Aprovado Com Dependencia");  
         }

Cuidado que a comparação é para usar “if (AlunoAprovadoComDependencia >= 2)”, não "if (AlunoAprovadoComDependencia = 2) " (que não compila, já que a comparação usa “==”, não “=” ) e acho que seu critério (o seu programa é grande demais para eu conseguir ler sem eu perder a atenção) é “se o aluno tiver pelo menos 2 dependências, ele é reprovado”, não “se o aluno tiver exatamente 2 dependências”. OK?

LucasAdri07

hmm entendi, vlw bezier :smiley:

Marck

Ei Lucas, bacana o código.
Agora você só tem que alterar, com a mesma lógica para ficar Orientado a Objetos.

Eu fiz um exemplo aqui p ver se te ajuda:

import java.util.ArrayList;
import java.util.List;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author marciliosouza
 */
public class Aluno {

    private String nome;

    //O Aluno possui varias notas
    List<Nota> notas = new ArrayList<Nota>();

    public Aluno(String nome)
    {
        this.nome = nome;
    }

    public void addNota(Nota nota)
    {
        notas.add(nota);
    }

    public double media()
    {
        double sum = 0;
        for(Nota n : notas)
        {
            sum += n.nota;
        }

        return sum / notas.size();
    }

    public boolean aprovado()
    {
        int qtdeReprovacoes = 0;

        for(Nota n : notas)
        {
            if(n.nota < 5)
                ++qtdeReprovacoes;
        }

        return qtdeReprovacoes >= 3;
    }


    public static void main(String [] args)
    {
        Aluno lucasAdri07 = new Aluno("Lucas");
        lucasAdri07.addNota(new Nota(4, 1));
        lucasAdri07.addNota(new Nota(5, 1));
        lucasAdri07.addNota(new Nota(3, 1));
        lucasAdri07.addNota(new Nota(6, 1));
        lucasAdri07.addNota(new Nota(7, 1));
        lucasAdri07.addNota(new Nota(2, 1));

        if(lucasAdri07.aprovado())
            System.out.println("Aluno " + lucasAdri07.nome + " está aprovado");
    }

}


class Nota
{

    public Nota(double  nota, int mes)
    {
        this.nota = nota;
        this.mes = mes;
    }
    double nota;
    int mes;

}

Caso você precisa de ajuda, e só falar!

abraço!

LucasAdri07

Putz Marck, muito obrigado cara, eu estava tentnado tranformar em OO, você deu uma grande força, valeuzão, agora só vou treinar a lógica do código.

Marck

:smiley: Por nada!

Com isso você vai implementando. Coloca o nome do curso na Nota…e mais alguns atributos no Aluno.

abraço

Criado 24 de março de 2010
Ultima resposta 24 de mar. de 2010
Respostas 5
Participantes 3