Cód para calcular média... [RESOLVIDO]

11 respostas
R

Oi Pessoal... eu fiz um código para calcular a média de um aluno, sendo o seguinte, entra com nota 1 e nota 2 se for menor que 6 fazer sub, caso contrario aprovado... esta funcionando, só que ele não esta calculando a média depois que a nota da sub substitui a menor nota.

Alguem sabe como posso resolver isso?!?! :cry:
Segue abaixo o código...

Abraços...

package com.yourcompany.struts;

/**Programa que calcula a média do aluno, 
*se o aluno fica de exame ou não e imprime 
*Aprovado ou reprovado
*/

import javax.swing.JOptionPane;

public class Media 
{
	public static void main (String[]args)
	{
		String nome, n1, n2, nsub;
		double nota1, nota2, sub, media;
		
		
		nome = JOptionPane.showInputDialog("Digite o nome do aluno");


		//Recebe a string nota
		
		n1 = JOptionPane.showInputDialog("Digite a p1");
		//converte a String em double
		nota1 = Double.parseDouble(n1);
		
		n2 = JOptionPane.showInputDialog("Digite a p2");
		nota2 = Double.parseDouble(n2);
		
		media = (nota1+nota2)/2;
		
		if (media>=6)
		{
			JOptionPane.showMessageDialog(null,"Aluno" +nome+"\n"+"A média do aluno é"+media,"Aluno Aprovado",JOptionPane.INFORMATION_MESSAGE);
		}
		else 
		{
		JOptionPane.showMessageDialog(null,"Aluno" +nome+"\n"+"A media do aluno é"+media, "Deverá fazer Prova Substituta", JOptionPane.WARNING_MESSAGE);
		}
		
		nsub = JOptionPane.showInputDialog("Digite a nota da Sub");
		//converte a String em double
		sub = Double.parseDouble(nsub);
		
		if (nota1<=6)
		{
			System.out.println(n1);
		
			nsub = n1;
			n1 = nsub;
		}
		else 
		{
			System.out.println(n2);
		}
		
				
		media = (sub + nota2)/2;
		
		if (sub>=6)
		{
			JOptionPane.showMessageDialog(null,"Aluno" +nome+"\n"+"A média do aluno é"+nsub,"Aluno Aprovado",JOptionPane.INFORMATION_MESSAGE);
		}
		else 
		{
		JOptionPane.showMessageDialog(null,"Aluno" +nome+"\n"+"A media do aluno é"+nsub, "Reprovado", JOptionPane.WARNING_MESSAGE);
		}
	
		System.exit(0);
	}
}

11 Respostas

C

Está funcionando. fiz algumas alterações, vc vai perceber. Só coloquei algumas coisas dentro do else que executa quando a nota do aluno é menor que 6.0. Ele é que faz todo o trabalho quando o aluno deve fazer prova substituta… Qualquer dúvida, posta ai :slight_smile:

/**Programa que calcula a média do aluno, 
 *se o aluno fica de exame ou não e imprime 
 *Aprovado ou reprovado
 */
 
 import javax.swing.JOptionPane;
 
 public class Media 
 {
 	public static void main (String[]args)
 	{
 		String nome, n1, n2, nsub;
 		double nota1, nota2, sub, media;
 		
 		
 		nome = JOptionPane.showInputDialog("Digite o nome do aluno");
 
 
 		//Recebe a string nota
 		
 		n1 = JOptionPane.showInputDialog("Digite a p1");
 		//converte a String em double
 		nota1 = Double.parseDouble(n1);
 		
 		n2 = JOptionPane.showInputDialog("Digite a p2");
 		nota2 = Double.parseDouble(n2);
 		
 		media = (nota1+nota2)/2;
 		
 		if (media>=6)
 		{
 			JOptionPane.showMessageDialog(null,"Aluno " +nome+"\n"+"A média do aluno é "+media,
						"Aluno Aprovado",JOptionPane.INFORMATION_MESSAGE);
 		}
 		else 
 		{
			JOptionPane.showMessageDialog(null,"Aluno " +nome+"\n"+"A media do aluno é "+ media,
						"Deverá fazer Prova Substituta", JOptionPane.WARNING_MESSAGE);
			nsub = JOptionPane.showInputDialog("Digite a nota da Sub");
			//converte a String em double
			sub = Double.parseDouble(nsub);
			media = (sub + nota2)/2;
			if (sub>=6)
 			{
 				JOptionPane.showMessageDialog(null,"Aluno" +nome+"\n"+"A média do aluno é "+nsub,
						"Aluno Aprovado",JOptionPane.INFORMATION_MESSAGE);
 			}
 			else 
 			{
 				JOptionPane.showMessageDialog(null,"Aluno" +nome+"\n"+"A media do aluno é "+nsub,
						"Reprovado", JOptionPane.WARNING_MESSAGE);
 			}
 		} 	
 		System.exit(0);
 	}
 }
E

Olá Renata,

Tente colocar o trecho de código que pede a nota substitutiva do aluno dentro da condição onde a média dele é menor que 6, ou seja, no else. Depois disso, verifique qual das duas notas, a 1 ou a 2 é a menor, e só então peça a nota substitutiva, jogando o valor na variável nota1 ou nota2, dependendo de qual for a menor.

[]s

W

aproveitando o código do colega cassio

nsub = JOptionPane.showInputDialog("Digite a nota da Sub");
 			//converte a String em double
 			sub = Double.parseDouble(nsub);

                        if (nota1 < nota2){
                           media = (sub + nota2)/2;
                        } else {
                           media = (nota1 + sub)/2;
                           }
 			
 			if (media>=6) //aqui estava if (sub>=6)

Falow…

S

Eu comentei o código.

import javax.swing.JOptionPane;
 
 public class Media 
 {
    public static void main (String[]args){
        
        // Atributos
        String nome, n1, n2, nsub;
        double nota1, nota2, sub, media;
        
        //Recebendo o nome do aluno(a)
        nome = JOptionPane.showInputDialog("Digite o nome do aluno(a) ");

       //Recebe a string nota
        n1 = JOptionPane.showInputDialog("Digite a p1 ");
        n2 = JOptionPane.showInputDialog("Digite a p2");
        
        //converte a String em double
        nota1 = Double.parseDouble(n1);
        nota2 = Double.parseDouble(n2);

        //Calcula a media 
        media = (nota1+nota2)/2;
        
        //Verifica se a média é superior ou igual a 6
        if (media>=6){
            JOptionPane.showMessageDialog(null,"Aluno " +nome+"\n"+"A média do aluno(a) é "+media+"\n"+"Aluno(a) Aprovado.","Situação do Aluno(a)",JOptionPane.INFORMATION_MESSAGE);
        }else{
            JOptionPane.showMessageDialog(null,"Aluno " +nome+"\n"+"A media do aluno(a) é "+media+"\n"+"Deverá fazer Prova Substituta."+"\n"+"Pressione ok para digitar a nota da sub.","Situação do Aluno(a)", JOptionPane.WARNING_MESSAGE);
            
            //Recebendo e convertendo valor
            nsub = JOptionPane.showInputDialog("Digite a nota da Sub");
            sub = Double.parseDouble(nsub);

            //Calculando a nota da sub
            media = (sub + nota2)/2;

            if (media >=6 ){
                JOptionPane.showMessageDialog(null,"Aluno(a) " +nome+"\n"+"A média do aluno(a) é"+media+"\n"+"Aluno Aprovado","Situação do Aluno(a)",JOptionPane.INFORMATION_MESSAGE);
            }else{
                JOptionPane.showMessageDialog(null,"Aluno(a)" +nome+"\n"+"A media do aluno é"+media+"+\n"+"Reprovado","Situação do Aluno(a)", JOptionPane.WARNING_MESSAGE);
            }
        }
       System.exit(0);
    }
 }
R

BRIGADAO GALERA! ME AJUDARAM BASTANTE!!!
:oops:

R

O

Ólá. Eu consegui dar um reformulada em seu programa, só que como eu precisava de calcular com 4 notas assim o fiz, é só vc ver o que foi alterado e pegar a sintax. Abraço. Osvaldo.

O

Ficou assim…
/**Programa que calcula a média do aluno,
*se o aluno fica de exame ou não e imprime
*Aprovado ou reprovado
*/

import javax.swing.JOptionPane;

public class Media

{

public static void main (String[]args)

{

String nome, n1, n2, n3, n4, nsub;

double nota1, nota2, nota3, nota4, sub, media;
nome = JOptionPane.showInputDialog("Digite o nome do aluno");   


    //Recebe a string nota   
       
    n1 = JOptionPane.showInputDialog("Digite a primeira nota");   
    //converte a String em double   
    nota1 = Double.parseDouble(n1);   
       
    n2 = JOptionPane.showInputDialog("Digite a segunda nota");   
    nota2 = Double.parseDouble(n2);
    
    n3 = JOptionPane.showInputDialog("Digite a terceira nota");   
    nota3 = Double.parseDouble(n3);
    
    n4 = JOptionPane.showInputDialog("Digite a Quarta nota");   
    nota4 = Double.parseDouble(n4);
       
    media = (nota1+nota2+nota3+nota4)/4;   
       
    if (media>=6)   
    {   
        JOptionPane.showMessageDialog(null,"Aluno " +nome+"\n"+"A média do aluno é "+media,"Aluno Aprovado",JOptionPane.INFORMATION_MESSAGE);
        System.exit(0); 
    }
    else   
    {   
    JOptionPane.showMessageDialog(null,"Aluno " +nome+"\n"+"A media do aluno é "+media, "Deverá fazer Prova Substituta", JOptionPane.WARNING_MESSAGE);   
    }   
       
    nsub = JOptionPane.showInputDialog("Digite a nota da Sub");   
    //converte a String em double   
    sub = Double.parseDouble(nsub);   
       
    /*if (sub<=6)   
    {   
        System.out.println(n1);   
       
        nsub = n1;   
        n1 = nsub;   
    }   
    else   
    {   
        System.out.println(n2);   
    }*/   
       
               
    media = (sub + media)/2;   
       
    if (media>=5)   
    {   
        JOptionPane.showMessageDialog(null,"Aluno " +nome+"\n"+"A média do aluno é "+media,"Aluno Aprovado",JOptionPane.INFORMATION_MESSAGE);   
    }   
    else  	   
    {   
    JOptionPane.showMessageDialog(null,"Aluno " +nome+"\n"+"A media do aluno é "+media, "Reprovado", JOptionPane.WARNING_MESSAGE);   
    }   
   
    System.exit(0);   
}

}

F

LEGAL!

A

Como ficaria esse código usando ArrayList para guardar os nomes e notas dos alunos?

F

Pessoal, preciso de ajuda, por favor!!!
To com duvida nesse seguinte exercicio:
Escreva um programa para contar quantos números 5 foram digitados e acumule os números diferentes de 5 de um total de 50 números.

Já nesse aqui então: Escreva um código que receba 08 variáveis contendo as idades de 8 pessoas através da caixa de diálogo e calcule o total das idades e também a média aritmética das mesmas.
Apresentar uma saída conforme abaixo:
O total das idades é x,x,x e a média y,y,y.

Mandem em código, se puderem tá, esses exercicios que falei?
É porque tenho que entregar esse exercicio de java ainda hoje, por favor.
obrigado igualmente
Gabriel

Criado 29 de junho de 2006
Ultima resposta 17 de mar. de 2010
Respostas 11
Participantes 9