0

平均を計算するプログラムを作成しようとしています。しかし、入力には 1 つの TextField のみを使用したいと考えています。助言がありますか?

ボタンが変わると、変数に番号が割り当てられるようにしようとしました。しかし、うまくいかないようです。

また、Java は変数を 0 に割り当てさせました...理由はわかりません...しかし、手動で変数に割り当てたものは、最終成績の計算に使用されます。

これは私がこれまでに持っているものです...

public class FinalApplet extends Applet implements ActionListener
{
    private TextField gradeField, finalField;
    private Button enter;

    public void init()
    {
        gradeField = new TextField(8);
        gradeField.addActionListener(this);
        add(gradeField);

        enter = new Button("Enter MP1 Grade");
        enter.addActionListener(this);
        add(enter);

        finalField = new TextField(8);
        finalField.addActionListener(this);
        add(finalField);
    }

    public void actionPerformed(ActionEvent e)
    {
        double mp1 = 0;
        double mp2 = 0;
        double exam1 = 0;
        double mp3 = 0;
        double mp4 = 0;
        double exam2 = 0;
        double finalGrade = 0;
        char letterGrade;
        //if (e.getSource() == gradeField || e.getSource() == enter)

            if (enter.getLabel() == "Enter MP1 Grade")
            {
                mp1 = Double.parseDouble(gradeField.getText());
                enter.setLabel("Enter MP2 Grade");
            }
            else if (enter.getLabel() == "Enter MP2 Grade")
            {
                mp2 = Double.parseDouble(gradeField.getText());
                enter.setLabel("Enter Exam1 Grade");
            }
            else if (enter.getLabel() == "Enter Exam1 Grade")
            {
                exam1 = Double.parseDouble(gradeField.getText());
                enter.setLabel("Enter MP3 Grade");
            }
            else if (enter.getLabel() == "Enter MP3 Grade")
            {
                mp3 = Double.parseDouble(gradeField.getText());
                enter.setLabel("Enter MP4 Grade");
            }
            else if (enter.getLabel() == "Enter MP4 Grade")
            {
                mp4 = Double.parseDouble(gradeField.getText());
                enter.setLabel("Enter Exam2 Grade");
            }
            else if (enter.getLabel() == "Enter Exam2 Grade")
            {
                exam2 = Double.parseDouble(gradeField.getText());
                enter.setLabel("Calculate Final Grade");
            }
            else if (enter.getLabel() == "Calculate Final Grade")
            {
                finalGrade = Math1.calcAverage(mp1, mp2, exam1, mp3, mp4, exam2);
                letterGrade = Math1.getLetter(finalGrade);
                finalField.setText(letterGrade + " - " + finalGrade);
                enter.setLabel("Enter MP1 Grade");
            }

    }
}

public class Math1
{       
    public static double calcAverage(double mp1, double mp2, double exam1, double mp3, double mp4, double exam2)
    {
        double finalGrade;

        finalGrade = (mp1 * .2) + (mp2 * .2) + (exam1 * .1) + (mp3 * .2) + (mp4 * .2) + (exam2 * .1);

        return finalGrade;
    }

    public static char getLetter(double finalGrade)
    {
        if (finalGrade >= 89.5)
            return 'A';
        else if (finalGrade >= 79.5 && finalGrade < 89.5)
            return 'B';
        else if (finalGrade >= 69.5 && finalGrade < 79.5)
            return 'C';
        else if (finalGrade >= 59.5 && finalGrade < 69.5)
            return 'D';
        else
            return 'F';
    }    
}
4

1 に答える 1