请完成下列Java程序:实现换算GPA, 对于学生学习的每一门课程,都输入两个数据:考试成绩和学分,考试成绩按如下公式换算: 90~100:5 75~89: 4 60~74: 3 40~59: 2

admin2009-01-15  59

问题 请完成下列Java程序:实现换算GPA,  对于学生学习的每一门课程,都输入两个数据:考试成绩和学分,考试成绩按如下公式换算:
       90~100:5
       75~89: 4
       60~74: 3
       40~59: 2
       40以下:1
   GPA等于换算后每门课的成绩的学分加权平均值(∑(成绩×学分)/∑学分)。
   要求用图形用户界面实现上述功能,用户窗口包括2个文本区域,一个输入成绩,一个输入学分,一个文本面板用作输出GPA的换算结果,一个按钮,点击实现换算。
   注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。
   程序运行结果如下:
                  
     import   java.awt.*;
     import java.awt.Event.*;
     import java.awt.event.ActionEvent;
     import java.awt.event.ActionListener;
     import java.awt.event.WindowAdapter;
     import java.awt.event.WindowEvent;
     import javax.swing.*;
     public class exll_2 extends JFrame{
       private JTextField jtf1=new JTextField();
       private JTextField jtf2=new JTextField();
       private JTextPane jtp=new JTextPane();
       private JButton jb=new JButton("增加");
       private JLabel jll=new JLabel("课程数: ");
       private JLabel j12=new JLabe1("学分数: ");
       double dTol=0;
       int nTolN=0,  nCount=0;
       public static void main(String[]  args)  {
           exll_2 frm=new exll_2();
           frm.setTitle("GPA");
           frm.pack();
           frm.setVisible(true);
           frm.addWindowListener(new WindowAdapter()
           public void windowClosing(WindowEvent we)  {
               System.exit(0);
             }
           });
    }   
    public exll_2()
           Container cp=getContentPane();
           cp.setLayout(new GridLayout(4,2));
           cp.add(new JLabel("成绩"));
           cp.add(jtf1);
           cp.add(new JLabel("学分"));
           cp.add(jtf2);
           jb.addActionListener( new ActionListener()  {
                 public void actionPerformed(ActionEvent ae)
                  int n1, n2,nt;
                  n1= Integer.parseInt(jtf1.getText());
                  n2 = Integer.parseInt(jtf2.getText());
                  if(n1 <= 100 && nl >= 0){
                     if( n1 >= 90)
                        nt  =  5;
                     else if(n1 >= 75)
                        nt  =  4;
                     else if(n1 >= 60)
                        nt  =  3;
                     else if( n1 >= 40)
                        nt = 2;
                     else
                        nt  =  1;
                     ___________________;
                     ____________________;
                     nTolN += n2;
                     if(nCount > 0)   {
                        jll.setText("课程数:  "+nCount);
                        j12.setText("学分数: "+nTolN);
                        jtp-setText(String.valueOf(dTol/nTolN));
                     }
             }
             jtf1.setText(  ""  );
             jtf2.setText(  ""  );
       }
       });
     cp.add(j11);
     cp.add(j12);
     cp.add(jb);
     cp.add(jtp);
  }
}

选项

答案dTol += nt*n2 nCount ++

解析 本题主要考查简单应用swing基本构件和布局管理器实现图形用户界面的设计,并能按题目要求设计换算GPA的算法。解题关键是熟悉熟悉swing的基本构件库,包括JTextField,JFrame,JTextPane,JButton,swing的事件机制以及GridLayout布局管理器的使用,还需要理解题干中的信息,并根据信息给出解决问题的算法。本题中,第1个空,计算∑(成绩×学分);
第2个空,对课程计数器nCount做累加。
转载请注明原文地址:https://kaotiyun.com/show/fIID777K
0

最新回复(0)