import java.applet.*;
import java.awt.*;
import java.text.*;

public class Notas extends Applet
{
    NumberFormat nf1 = NumberFormat.getNumberInstance();

    Button button = new Button("Calculo");

    //n1 Primeiro teste
    TextField tf11 = new TextField("7");
    TextField tf12 = new TextField("7");
    TextField tf13 = new TextField("7");

    //n2 Primeira prova
    TextField tf21 = new TextField("7");
    TextField tf22 = new TextField("7");
    TextField tf23 = new TextField("7");

    //n3 Desempenho nas aulas
    TextField tf31 = new TextField("10");
    TextField tf32 = new TextField("7.5");
    TextField tf33 = new TextField("5.0");

    //n4 Projeto
    TextField tf41 = new TextField("7");
    TextField tf42 = new TextField("7");
    TextField tf43 = new TextField("7");

    //n5 prova geral
    TextField tf51 = new TextField("0");
    TextField tf52 = new TextField("0");
    TextField tf53 = new TextField("0");

    //n6 exame
    TextField tf61 = new TextField("0");
    TextField tf62 = new TextField("0");
    TextField tf63 = new TextField("0");

    //nd nota da disciplina
    TextField tf71 = new TextField("");
    TextField tf72 = new TextField("");
    TextField tf73 = new TextField("");

    double
    n101,n201,n301,n401,n501,n601,nd01,
    n102,n202,n302,n402,n502,n602,nd02,
    n103,n203,n303,n403,n503,n603,nd03;

    // Metodo de calculo da nota da disciplina
    double nota(double n1,double n2,double n3,double n4,double n5,double n6)
    {
        double mediasimples=(((n1+n2)/2)+n3+n4)/3;
        double prova =n5;
        double mediacomprova =((mediasimples+prova)/2);
        double exame =n6;
        double mediafinal = ((mediacomprova+exame)/2);
        if (mediasimples>=7)
   return(mediasimples);
        else if (mediacomprova>=5)  return(mediacomprova);
        else return(mediafinal);
    }

    public void init()
    {
        setLayout(new GridLayout(5,9));

         nf1.setMaximumFractionDigits(1);
 
        tf31.setBackground(Color.yellow);
        tf32.setBackground(Color.yellow);
        tf33.setBackground(Color.yellow);

        tf71.setEditable(false);tf71.setBackground(Color.yellow);
        tf72.setEditable(false);tf72.setBackground(Color.yellow);
        tf73.setEditable(false);tf73.setBackground(Color.yellow);

        add(new Label("Nome",Label.CENTER));
        add(new Label("Freq.",Label.CENTER));
        add(new Label("Teste",Label.CENTER));
        add(new Label("Prova",Label.CENTER));
        add(new Label("N. Aula",Label.CENTER));
        add(new Label("Projeto",Label.CENTER));
        add(new Label("P. Geral",Label.CENTER));
        add(new Label("Exame",Label.CENTER));
        add(new Label("Nota",Label.CENTER));

        add(new Label("Rita",Label.LEFT));
        add(new Label("4p 0F",Label.LEFT));
        add(tf11);add(tf21);add(tf31);add(tf41);
        add(tf51);add(tf61);add(tf71);

        add(new Label("Ana",Label.LEFT));
        add(new Label("3p 1F",Label.LEFT));
        add(tf12);add(tf22);add(tf32);add(tf42);
        add(tf52);add(tf62);add(tf72);

        add(new Label("Paula",Label.LEFT));
        add(new Label("2p 2F",Label.LEFT));
        add(tf13);add(tf23);add(tf33);add(tf43);
        add(tf53);add(tf63);add(tf73);

        add(new Label()); add(new Label()); add(new Label());
        add(new Label()); add(new Label());
        add(button);      add(new Label());
        add(new Label()); add(new Label());
    }
 
    public boolean action(Event evt, Object arg)
   {
        if (evt.target == button)
        {
            n101 = Double.valueOf(tf11.getText()).doubleValue();//teste1
            n201 = Double.valueOf(tf21.getText()).doubleValue();//prova1
            n301 = Double.valueOf(tf31.getText()).doubleValue();//desempenho
            n401 = Double.valueOf(tf41.getText()).doubleValue();//projeto
            n501 = Double.valueOf(tf51.getText()).doubleValue();//provageral
            n601 = Double.valueOf(tf61.getText()).doubleValue();//exame
 
            n102 = Double.valueOf(tf12.getText()).doubleValue();//teste1
            n202 = Double.valueOf(tf22.getText()).doubleValue();//prova1
            n302 = Double.valueOf(tf32.getText()).doubleValue();//desempenho
            n402 = Double.valueOf(tf42.getText()).doubleValue();//projeto
            n502 = Double.valueOf(tf52.getText()).doubleValue();//provageral
            n602 = Double.valueOf(tf62.getText()).doubleValue();//exame

            n103 = Double.valueOf(tf13.getText()).doubleValue();//teste1
            n203 = Double.valueOf(tf23.getText()).doubleValue();//prova1
            n303 = Double.valueOf(tf33.getText()).doubleValue();//desempenho
            n403 = Double.valueOf(tf43.getText()).doubleValue();//projeto
            n503 = Double.valueOf(tf53.getText()).doubleValue();//provageral
            n603 = Double.valueOf(tf63.getText()).doubleValue();//exame

            // calculos
           nd01 = nota(n101,n201,n301,n401,n501,n601);
           nd02 = nota(n102,n202,n302,n402,n502,n602);
           nd03 = nota(n103,n203,n303,n403,n503,n603);

           // coloca numeros como texto na caixa do resultado
           tf71.setText(String.valueOf(nf1.format(nd01)));
           tf72.setText(String.valueOf(nf1.format(nd02)));
           tf73.setText(String.valueOf(nf1.format(nd03)));

           return true;
        }
        return false;
    }
}