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?!?!
Segue abaixo o código…
Abraços…
[code]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);
}
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
/**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);
}
}
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.
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)
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);
}
}
Ó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.
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);
}
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