Média Notas Alunos [ Programinha ]

10 respostas
U

Gente criei esse programinha, gostaria de sugestões e criticas a respeito, claro construivivas, obrigado.

/* Notas_Alunos 
@author Raphael Santana Carvalho */

import javax.swing.JOptionPane; // classe JOptionPane

public class Notas_Alunos {

	public static void main(String args[]) {

		int aluno = Integer.parseInt(JOptionPane.showInputDialog(null, "Quantos alunos há na sala?")); 
		double prova = 0;

		while (prova < 0) {
			prova = Double.parseDouble(JOptionPane.showInputDialog(null, "Favor informar a pontuação máxima \npara as notas dos alunos:")); 

			if (prova < 0) {
			JOptionPane.showInputDialog(null, "São validos apenas valores maiores ou igual a [0]!"); 
			}
		}
		
		int id_aluno;
		double nota_aluno = 0;
		double menor_nota=prova, maior_nota=0;
		double media = 0;

	for (id_aluno=1; id_aluno <= aluno; id_aluno++) {
		while (nota_aluno < 0) {
			String texto_aluno = JOptionPane.showInputDialog(null, "Digite a nota do aluno "+id_aluno+":");
			nota_aluno = Double.parseDouble(texto_aluno);

			if (nota_aluno < 0) {
			JOptionPane.showInputDialog(null, "São validos apenas valores maiores ou igual a [0]!"); 
			}
		}
	
		media += nota_aluno;

                if (nota_aluno > maior_nota) { 
                maior_nota = nota_aluno;
                }

                if (nota_aluno < menor_nota) { 
                menor_nota = nota_aluno;
                }
	}

	media = media/aluno;
	JOptionPane.showMessageDialog(null, "A sala tem: "+aluno+" alunos. \n E a média dos alunos é: "+media+". \n\n A maior nota é: "+maior_nota+". \n A menor nota é: "+menor_nota+".");

	}
}

10 Respostas

luxu

gera o .jar e coloca pra downloads pra teste…

AndreSorge

utroz Boa Noite…

Rodei o eu programa…e a logica do programa esta errada…você chegou a rodar??? o que eu te recomento a fazer é tratar as exceptions, e colocar fora do main…

Abraços e boa sorte…

M

acho que ficaria legal você fazer uma classe Aluno e encapsular os atributos também

d34d_d3v1l

brother,
ta com um probleminha aqui:

# double prova = 0;  
#   
#         while (prova < 0) {  
#             prova = Double.parseDouble(JOptionPane.showInputDialog(null, "Favor informar a pontuação máxima \npara as notas dos alunos:"));   
#   
#             if (prova < 0) {  
#             JOptionPane.showInputDialog(null, "São validos apenas valores maiores ou igual a [0]!");   
#             }

vê ai e me diga se descobriu..
mas a lógica ta certo...

ve se vc descobre outros erros também
abraços

U

O programa estava rodando certinho, a lógica tbm, o q está errado é o tratamento de erro com o while e if, chegando em casa vo rever, pois fiz as pressas e não testei, obrigado!

Bati o olho novamente, o possivel erro é o for antes do while.

d34d_d3v1l

qual a diferença entre:

< e <=
?

abrazz

Saladinha

qual a diferença entre:

< e <=
?

abrazz

se um numero for [b]</b que 10 ele vai até 9 se ele for [b]<=/b a 10 ele vai até 10

d34d_d3v1l

Saladinha:
qual a diferença entre:

< e <=
?

abrazz

se um numero for [b]</b que 10 ele vai até 9 se ele for [b]<=/b a 10 ele vai até 10

isso não era uma pergunta na verdade,
era para o utroz conseguir enxergar o seu erro no código…

mas tenho certeza que a intensão foi boa!
Parabens!
abrazz

AndreSorge

Boa Noite Pessoal…

Pode ser que de um erro no seu programa…quando você pedo para digitar a pontuação máxima, caso o usuário digitar a letra “A” ele vai dar uma exception nem lembro qual é, mais acho que NumberFormatException…

prova = Double.parseDouble(JOptionPane.showInputDialog(null, "Favor informar a pontuação máxima \npara as notas dos alunos:"));
U

Lembrando q fiz só um tratamento básico sem try, mais em breve farei mais prevenções!

Criado 13 de fevereiro de 2011
Ultima resposta 15 de fev. de 2011
Respostas 10
Participantes 6