Trata-se de um código que realiza o cálculo da média das notas e informa se o aluno passou ou não segundo os critérios da UNI-RN - envolve Média Ponderada e Média Aritmética. Este programa verifica se o aluno passou ou ficou em recuperação, quanto precisa tirar na recuperação e qual será sua média final conforme a nota tirada na recuperação.
//Autor: Thiago Campos
//Data: 12.12.2012
package main;
//pacote no qual pertence esta classe
import javax.swing.JOptionPane;
import java.text.DecimalFormat;
//responsavel por formatar a qtd de casas decimais
import dominio.Calculos;
public class FimDeSemestre {
public static void main(String[] args){
//declaração de variaveis
int op;
double n1, n2;
Calculos mP = new Calculos();
double resultado;
DecimalFormat df = new DecimalFormat("0.##");
//instancio o formato
//escolha da opção
do {
op = Integer.parseInt(JOptionPane.showInputDialog("
MENU DE OPÇÕES"
+ "\n
1-Saber a situação"
+ "\n
2-Saiba sua média final com a nota de recuperação"
+ "\n
3-Sair"));
switch (op) {
case 1:
//entrada das notas
n1 = Double.parseDouble(JOptionPane.showInputDialog("
Informe a 1ª nota(Use o ponto no lugar da vírgula):"));
n2 = Double.parseDouble(JOptionPane.showInputDialog("
Informe a 2ª nota(Use o ponto no lugar da vírgula):"));
resultado = mP.mediaPonderada(n1, n2);
if (resultado >= 7) {
//media ponderada maior - igual a 7 - aluno Aprovado
JOptionPane.showMessageDialog(null, "
Parabéns, você está aprovado!");
} else {
if (resultado < 3) {
//media ponderada menor do que 3 - aluno reprovado
JOptionPane.showMessageDialog(null, "
Você está reprovado!");
} else {
JOptionPane.showMessageDialog(null, "
Você ficou em recuperação,"
+ "\n Sua média é: " + df.format(mP.mediaPonderada(n1, n2))
+ "\n Você precisa tirar " + df.format(mP.qtoPrecisa()) + "
na recuperação para passar com média 5,0");
}
}
break; //fim do menu == a 1
case 2: //Esta opção informará ao aluno qual será a média final dele com a nota de recuperação
double nRec = Double.parseDouble(JOptionPane.showInputDialog("
Informe a nota de recuperação."));
JOptionPane.showMessageDialog(null, "
A media final é " + mP.mediaFinal(nRec));
break;
case 3:
JOptionPane.showMessageDialog(null, "
Fechando o programa!");
break;
default:
JOptionPane.showMessageDialog(null, "
Opção inválida!");
}
} while (op != 3);
}
//fim do main
}
//fim da classe
/*---------------------------------------------------------------------------------------------------
* Esta classe possui todos os cálculos do programa
---------------------------------------------------------------------------------------------------*/
package dominio;
public class Calculos {
private double mP;
private double mF;
//calculo da media ponderada
public double mediaPonderada (double n1, double n2){
return mP = ((n1*4) + (n2*6))/10;
}
//calculo da media aritmética
public double mediaFinal(double nR){
return mF = (mP+nR)/2;
}
//calculo da nota que precisa tirar para passar com média 5
public double qtoPrecisa(){
return (10 - mP);
}
}
//fim da classe