📄 inputscore.java~92~
字号:
public void goOnInput() {
average = 0;
strNumber = "";
tempLesson = "";
canCalculate = true;
jTextField_SN.setText("");
jTextField_SN.setEditable(true);
jTextField_Name.setText("");
jTextField_Score.setText("");
jTextField_Score.setEditable(false);
jTextField_Status.setText("");
jComboBox_HaveSelected.removeAllItems();
jComboBox_HaveSelected.setEnabled(false);
jButton_Input.setEnabled(false);
jButton_LookMore.setEnabled(false);
jButton_GoOn.setEnabled(false);
jButton_Calculate.setEnabled(false);
for (int i = 0; i < 15; i++) {
lesson[i] = null;
result[i] = score[i] = "0";
}
}
JLabel jLabel_Prompt = new JLabel();
JLabel jLabel_SN = new JLabel();
JTextField jTextField_SN = new JTextField();
JLabel jLabel_Name = new JLabel();
JTextField jTextField_Name = new JTextField();
JLabel jLabel_Status = new JLabel();
JTextField jTextField_Status = new JTextField();
JLabel jLabel_HaveSelected = new JLabel();
JComboBox jComboBox_HaveSelected = new JComboBox();
JLabel jLabel_Score = new JLabel();
JTextField jTextField_Score = new JTextField();
JButton jButton_Input = new JButton();
JButton jButton_LookMore = new JButton();
JButton jButton_GoOn = new JButton();
JButton jButton_Cancel = new JButton();
JButton jButton_Calculate = new JButton();
public void calculate() {
try {
if (jComboBox_HaveSelected.getItemCount() == 0) {
JOptionPane.showMessageDialog(this, "该生尚未任何选择课程!无法完成计算!",
"计算错误!", 1);
throw new Exception();
}
int tempTotalResult = 0, tempTotalScore = 0;
for (int i = 0; (i < lesson.length && lesson[i] != null); i++) {
tempTotalScore += Integer.parseInt(score[i].trim());
}
for (int i = 0; (i < lesson.length && lesson[i] != null); i++) {
tempTotalResult += Integer.parseInt(result[i].trim()) *
Integer.parseInt(score[i].trim());
}
if (tempTotalScore == 0) {
throw new Exception();
}
average = (double) tempTotalResult / tempTotalScore;
Statement stmt;
ResultSet rs;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:db_STU", "",
"");
stmt = con.createStatement();
String tempOrder = "update Result_Info set GAP='" + average +
"' where 学号='" + strNumber + "'";
stmt.executeUpdate(tempOrder);
stmt.close();
con.close();
JOptionPane.showMessageDialog(this,
"经计算得到平均综合总成绩" + average + "分,并成功录入!",
"录入成功!",
1);
} catch (Exception e) {
JOptionPane.showMessageDialog(this, "计算平均综合总成绩时出现错误!请检查该生是否已经选择课程。",
"错误!", 1);
e.printStackTrace();
}
}
public void check() { //测试能否计算平均成绩的方法
for (int i = 0; i < lesson.length; i++) {
if (lesson[i] != null && (result[i] == "0" || score[i] == "0")) {
canCalculate = false;
break;
}
}
}
public void calculateAverage() {
check();
if (!canCalculate) {
if (JOptionPane.showConfirmDialog(this, "课程成绩输入可能不完整,仍要计算吗?",
"继续计算?",
2) == 0) {
calculate();
}
}
if (canCalculate) {
calculate();
}
}
public void inputScore() {
try {
if (jComboBox_HaveSelected.getItemCount() == 0) {
JOptionPane.showMessageDialog(this, "该生尚未任何选择课程!无法完成成绩录入!",
"录入错误!", 1);
throw new Exception("None");
}
tempLesson = jComboBox_HaveSelected.getSelectedItem().
toString().trim();
int tempScore = Integer.parseInt(jTextField_Score.getText().trim());
if (tempScore < 0 || tempScore > 100) {
throw new Exception();
}
int tempLessonNumber = 0; //标记选课信息表中要录入成绩课程的列号
Statement stmt;
ResultSet rs;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:db_STU",
"",
"");
stmt = con.createStatement();
rs = stmt.executeQuery("select 学号,课程1,课程2,课程3,课程4,课程5,课程6,课程7,课程8,课程9,课程10,课程11,课程12,课程13,课程14,课程15 from Result_Info");
while (rs.next()) {
String temp = rs.getString(1);
if (temp.equals(strNumber)) {
for (int i = 1; i <= 15; i++) {
if (rs.getString(i + 1).equals(tempLesson)) {
tempLessonNumber = i;
break;
}
}
break;
}
}
String tempOrder = "update Result_Info set 成绩" + tempLessonNumber +
"='" + tempScore + "' where 学号='" + strNumber +
"'";
stmt.executeUpdate(tempOrder);
stmt.close();
con.close();
JOptionPane.showMessageDialog(this, "课程成绩已成功录入!", "成绩录入成功", 1);
} catch (Exception e) {
if (!e.getMessage().equals("None")) {
JOptionPane.showMessageDialog(this,
"您输入的成绩信息不正确!成绩应是0~100的整数,请检查输入!",
"输入错误!", 1);
}
}
}
public void jTextField_SN_actionPerformed(ActionEvent e) {
getInfo();
getSelectedInfo();
}
public void jButton_Cancel_actionPerformed(ActionEvent e) {
dispose();
}
public void jButton_LookMore_actionPerformed(ActionEvent e) {
getLessonInfo();
}
public void jButton_GoOn_actionPerformed(ActionEvent e) {
goOnInput();
}
public void jButton_Input_actionPerformed(ActionEvent e) {
if (JOptionPane.showConfirmDialog(this, "录入成绩时,会将原成绩覆盖,要继续吗?",
"是否录入成绩?",
2) == 0) {
inputScore();
}
getSelectedInfo();
JOptionPane.showMessageDialog(this, "成绩有可能改变,请单击“计算”及时更新平均综合总成绩。",
"需要更新", 1);
}
public void jTextField_Score_actionPerformed(ActionEvent e) {
inputScore();
}
public void jButton_Calculate_actionPerformed(ActionEvent e) {
calculateAverage();
}
}
class InputScore_jButton_Calculate_actionAdapter implements ActionListener {
private InputScore adaptee;
InputScore_jButton_Calculate_actionAdapter(InputScore adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton_Calculate_actionPerformed(e);
}
}
class InputScore_jTextField_Score_actionAdapter implements ActionListener {
private InputScore adaptee;
InputScore_jTextField_Score_actionAdapter(InputScore adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jTextField_Score_actionPerformed(e);
}
}
class InputScore_jButton_Input_actionAdapter implements ActionListener {
private InputScore adaptee;
InputScore_jButton_Input_actionAdapter(InputScore adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton_Input_actionPerformed(e);
}
}
class InputScore_jButton_GoOn_actionAdapter implements ActionListener {
private InputScore adaptee;
InputScore_jButton_GoOn_actionAdapter(InputScore adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton_GoOn_actionPerformed(e);
}
}
class InputScore_jButton_LookMore_actionAdapter implements ActionListener {
private InputScore adaptee;
InputScore_jButton_LookMore_actionAdapter(InputScore adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton_LookMore_actionPerformed(e);
}
}
class InputScore_jButton_Cancel_actionAdapter implements ActionListener {
private InputScore adaptee;
InputScore_jButton_Cancel_actionAdapter(InputScore adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton_Cancel_actionPerformed(e);
}
}
class InputScore_jTextField_SN_actionAdapter implements ActionListener {
private InputScore adaptee;
InputScore_jTextField_SN_actionAdapter(InputScore adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jTextField_SN_actionPerformed(e);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -