.平均学分绩点(Grade Point Average,GPA)可以作为学生学习能力与质量的综合评价指标之一。平均学分绩点的计算是将学生修过的每一门课程(包括重修的课程)的课程绩点乘以该门课程的学分,累加后再除以总学分。国内大部分高校通用的计算方法是:课程绩点= 分数/10-5,学分绩点 = 学分×课程绩点。用所学JAVA图形用户界面知识,设计一个用于学生平均学分绩点计算的图形用户界面(Graphical User Interface,GUI)程序。
实现以下基本功能:
(1)建立两个输入框,用于输入学生的学号与姓名;
(2)建立八个输入框,用于输入概率统计、离散数学、数据结构、面向对象程序设计(JAVA)等4门课程的成绩(成绩以百分制表示)及对应学分;
package four;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class GPA {
public static void main(String[] args) {
JFrame frame=new JFrame("平均学分绩点计算器");
frame.setBounds(300,100,400,350);
frame.setLayout(new BorderLayout());
//上--学号+姓名
JPanel j1=new JPanel();
j1.setBackground(Color.decode("#ffb3c2"));
frame.add(j1,BorderLayout.NORTH);
JLabel l1=new JLabel("学号");
j1.add(l1);
JTextField t1=new JTextField(14);
j1.add(t1);
JLabel l2=new JLabel("姓名");
j1.add(l2);
JTextField t2=new JTextField(14);
j1.add(t2);
//中--成绩
JPanel j2=new JPanel();
j2.setBackground(Color.decode("#ffccd6"));
frame.add(j2,BorderLayout.CENTER);
j2.setLayout(new FlowLayout(FlowLayout.CENTER,20,30));
JLabel l3=new JLabel("概率统计");
j2.add(l3);
JTextField t11=new JTextField(7);
j2.add(t11);
JLabel l32=new JLabel("学分");
j2.add(l32);
JTextField t12=new JTextField(7);
j2.add(t12);
JLabel l4=new JLabel("离散数学");
j2.add(l4);
JTextField t21=new JTextField(7);
j2.add(t21);
JLabel l42=new JLabel("学分");
j2.add(l42);
JTextField t22=new JTextField(7);
j2.add(t22);
JLabel l5=new JLabel("数据结构");
j2.add(l5);
JTextField t31=new JTextField(7);
j2.add(t31);
JLabel l52=new JLabel("学分");
j2.add(l52);
JTextField t32=new JTextField(7);
j2.add(t32);
JLabel l6=new JLabel(" java ");
j2.add(l6);
JTextField t41=new JTextField(7);
j2.add(t41);
JLabel l62=new JLabel("学分");
j2.add(l62);
JTextField t42=new JTextField(7);
j2.add(t42);
//右--按钮
JPanel j3=new JPanel();
j3.setBackground(Color.decode("#ffd9e1"));
frame.add(j3,BorderLayout.EAST);
JButton b1=new JButton("计算");
b1.setSize(5, 5);
j3.add(b1);
b1.setBackground(Color.decode("#ffcdb4"));
//下--输出
JPanel j4=new JPanel();
j4.setBackground(Color.decode("#ffe5eb"));
frame.add(j4,BorderLayout.SOUTH);
JTextField put=new JTextField(40);
j4.add(put);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//输入内容并获取
b1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String id=t1.getText();
String name=t2.getText();
//String s1=t11.getText();
int s1=0;
s1=Integer.parseInt(t11.getText());
int x1=0;
x1=Integer.parseInt(t12.getText());
int s2=0;
s2=Integer.parseInt(t21.getText());
int x2=0;
x2=Integer.parseInt (t22.getText ()) ;
int s3=0;
s3=Integer.parseInt(t31.getText());
int x3=0;
x3=Integer.parseInt(t32.getText());
int s4=0;
s4=Integer.parseInt(t41.getText());
int x4=0;
x4=Integer.parseInt(t42.getText());
int m1=(s1/10-5)*x1;
int m2=(s2/10-5)*x2;
int m3=(s3/10-5)*x3;
int m4=(s4/10-5)*x4;
int m=(m1+m2+m3+m4)/4;
put.setText("姓名:"+name+"t学号:"+id+"t平均学分绩点:"+m);
// put.setText(name);
}
});
}
}
给按钮添加事件:
JButton button=new JButton();
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
//这里写内容
}
})
输出在文本框:
JTextField textField=new JTextField();
textField.setText("这里写输出的东西!");
用getText获取文本框内容的时候返回的时候返回的是String类型,用的时候用int类型,所以强制转换一下
JTextField t11=new JTextField(7);//文本框7列 int s1=0; s1=Integer.parseInt(t11.getText());
界面是这样的
不对的地方烦请指正,谢谢。



