📄 scanf_test_inf.java
字号:
package stu.view;
import java.awt.ComponentOrientation;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.border.TitledBorder;
public class scanf_test_inf extends JFrame {
private static final long serialVersionUID = -5955187715333396097L;
double d1;
double d2;
double d3;
double d4;
double d5;
String classname;
String coursename;
public scanf_test_inf() {
super();
getContentPane().setLayout(null);
setBounds(100, 100, 435, 397);
setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
setTitle("成绩计算信息");
setResizable(false);
final Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
final Dimension my = this.getSize();
setLocationByPlatform(true);
setLocation((screen.width - my.width) / 2,
(screen.height - my.height) / 2);
setVisible(true);
final JLabel label = new JLabel();
label.setFont(new Font("宋体", Font.PLAIN, 14));
final TitledBorder titledBorder = new TitledBorder(null, "成绩计算信息",
TitledBorder.DEFAULT_JUSTIFICATION,
TitledBorder.DEFAULT_POSITION, null, null);
titledBorder.setTitleFont(new Font("宋体", Font.PLAIN, 15));
final TitledBorder titledBorder_1 = new TitledBorder(null, "成绩计算信息",
TitledBorder.DEFAULT_JUSTIFICATION,
TitledBorder.DEFAULT_POSITION, null, null);
titledBorder_1.setTitleFont(new Font("宋体", Font.PLAIN, 15));
final TitledBorder titledBorder_2 = new TitledBorder(null, "成绩计算信息",
TitledBorder.DEFAULT_JUSTIFICATION,
TitledBorder.DEFAULT_POSITION, null, null);
titledBorder_2.setTitleFont(new Font("宋体", Font.PLAIN, 15));
label.setBorder(titledBorder_2);
label.setBounds(62, 32, 311, 302);
getContentPane().add(label);
final JLabel label_1 = new JLabel();
label_1.setFont(new Font("", Font.PLAIN, 14));
label_1.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
label_1.setText("考试成绩所占比重:");
label_1.setBounds(78, 62, 141, 24);
getContentPane().add(label_1);
final JLabel label_1_2 = new JLabel();
label_1_2.setFont(new Font("", Font.PLAIN, 14));
label_1_2.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
label_1_2.setText("考勤成绩基分:");
label_1_2.setBounds(95, 95, 124, 24);
getContentPane().add(label_1_2);
final JLabel label_1_3 = new JLabel();
label_1_3.setFont(new Font("", Font.PLAIN, 14));
label_1_3.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
label_1_3.setText("迟到扣分比率:");
label_1_3.setBounds(95, 130, 124, 24);
getContentPane().add(label_1_3);
final JLabel label_1_4 = new JLabel();
label_1_4.setFont(new Font("", Font.PLAIN, 14));
label_1_4.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
label_1_4.setText("早退扣分比率:");
label_1_4.setBounds(95, 160, 124, 24);
getContentPane().add(label_1_4);
final JTextField textField = new JTextField();
textField.setBounds(225, 62, 106, 22);
getContentPane().add(textField);
final JTextField textField_2 = new JTextField();
textField_2.setBounds(224, 97, 107, 22);
getContentPane().add(textField_2);
final JTextField textField_3 = new JTextField();
textField_3.setBounds(225, 130, 107, 22);
getContentPane().add(textField_3);
final JTextField textField_4 = new JTextField();
textField_4.setBounds(224, 162, 107, 22);
getContentPane().add(textField_4);
final JComboBox comboBox = new JComboBox();
comboBox.setFont(new Font("", Font.PLAIN, 14));
comboBox.setBounds(225, 190, 107, 27);
getContentPane().add(comboBox);
final JComboBox comboBox_1 = new JComboBox();
comboBox_1.setFont(new Font("", Font.PLAIN, 14));
comboBox_1.setBounds(225, 232, 107, 27);
getContentPane().add(comboBox_1);
String url = "jdbc:odbc:DB_Student";
try {
Connection con1 = DriverManager.getConnection(url);
Statement st = con1.createStatement();
ResultSet rs = st.executeQuery("select 班级名 from 班级表");
while (rs.next()) {
comboBox.addItem(rs.getString(1));
}
rs.close();
st.close();
con1.close();
} catch (Exception e1) {
// e1.printStackTrace();
}
try {
Connection con1 = DriverManager.getConnection(url);
Statement st = con1.createStatement();
ResultSet rs = st.executeQuery("select 课程名 from 课程表");
while (rs.next()) {
comboBox_1.addItem(rs.getString(1));
}
rs.close();
st.close();
con1.close();
} catch (Exception e1) {
// e1.printStackTrace();
}
final JButton button = new JButton();
button.setFont(new Font("宋体", Font.PLAIN, 14));
button.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e) {
boolean flag1 = textField.getText().equals("");
boolean flag2 = textField_2.getText().equals("");
boolean flag3 = textField_3.getText().equals("");
boolean flag4 = textField_4.getText().equals("");
if (flag1 || flag2 || flag3 || flag4) {
JOptionPane.showMessageDialog(null, "各参数值不能空!", "系统提示",
JOptionPane.WARNING_MESSAGE);
}
else {
d1 = Double.parseDouble(textField.getText());
d2 = 1 - d1;
d3 = Double.parseDouble(textField_2.getText());
d4 = Double.parseDouble(textField_3.getText());
d5 = Double.parseDouble(textField_4.getText());
classname = (String) comboBox.getSelectedItem();
coursename = (String) comboBox_1.getSelectedItem();
/*
* System.out.println(d1); System.out.println(d2);
* System.out.println(d3); System.out.println(d4);
* System.out.println(d5); System.out.println(classname);
* System.out.println(coursename);
*/
String url = "jdbc:odbc:DB_Student";
try {
int come_number = 0, nocome_number = 0, latecome_number = 0, firstleave_number = 0;
Connection con1 = DriverManager.getConnection(url);
Statement st = con1.createStatement();
Statement st1 = con1.createStatement();
Statement st2 = con1.createStatement();
ResultSet rs = st1
.executeQuery("select distinct 学号 from 考勤表 where 班级名 = '"
+ classname
+ "' and 课程名 = '"
+ coursename + "'");
while (rs.next()) {
String number = rs.getString(1);
come_number = 0;
nocome_number = 0;
latecome_number = 0;
firstleave_number = 0;
ResultSet rs1 = st
.executeQuery("select distinct 点名日期 from 考勤表 where 学号 = '"
+ number
+ "' and 课程名 = '"
+ coursename
+ "' and 到课情况 = '"
+ "到" + "'");
while (rs1.next())
come_number++;
rs1 = st
.executeQuery("select distinct 点名日期 from 考勤表 where 学号 = '"
+ number
+ "' and 课程名 = '"
+ coursename
+ "' and 到课情况 = '"
+ "未到" + "'");
while (rs1.next())
nocome_number++;
rs1 = st
.executeQuery("select distinct 点名日期 from 考勤表 where 学号 = '"
+ number
+ "' and 课程名 = '"
+ coursename
+ "' and 到课情况 = '"
+ "迟到" + "'");
while (rs1.next())
latecome_number++;
rs1 = st
.executeQuery("select distinct 点名日期 from 考勤表 where 学号 = '"
+ number
+ "' and 课程名 = '"
+ coursename
+ "' and 到课情况 = '"
+ "早退" + "'");
while (rs1.next())
firstleave_number++;
double score;
// System.out.println("FS"+d3+" "+come_number+"
// "+nocome_number+" "+latecome_number+"
// "+firstleave_number);
if (come_number + nocome_number + latecome_number
+ firstleave_number == 0)
score = d3;
else
score = d3
+ (100 - d3)
/ (come_number + nocome_number
+ latecome_number + firstleave_number)
* come_number
+ (100 - d3)
/ (come_number + nocome_number
+ latecome_number + firstleave_number)
* latecome_number
* d4
+ (100 - d3)
/ (come_number + nocome_number
+ latecome_number + firstleave_number)
* firstleave_number * d5;
String sql = "select 考试成绩,出勤成绩,总成绩 from 成绩表 where 学号 = '"
+ number
+ "' and 课程名 = '"
+ coursename
+ "'";
rs1 = st.executeQuery(sql);
while (rs1.next()) {
double score1 = rs1.getDouble(1);
/*
* System.out.println(score1 + " " + score + " " +
* (score * d2 + score1 * d1));
*/
String updatesql = "update 成绩表 set 出勤成绩="
+ score + ",总成绩="
+ (score * d2 + score1 * d1)
+ " where 学号 = '" + number
+ "' and 课程名 = '" + coursename + "'";
try {
st2.executeUpdate(updatesql);
} catch (Exception e7) {
// e7.printStackTrace();
JOptionPane.showMessageDialog(null,
"成绩可能已被计算!", "系统提示",
JOptionPane.ERROR_MESSAGE);
}
}
}
rs.close();
st.close();
con1.close();
} catch (Exception e1) {
// e1.printStackTrace();
}
dispose();
JOptionPane.showMessageDialog(null, "成绩已经计算", "系统提示",
JOptionPane.INFORMATION_MESSAGE);
}
}
});
button.setText("确定");
button.setBounds(178, 291, 106, 28);
getContentPane().add(button);
final JLabel label_1_4_1 = new JLabel();
label_1_4_1.setFont(new Font("", Font.PLAIN, 14));
label_1_4_1.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
label_1_4_1.setText("计算班级:");
label_1_4_1.setBounds(95, 190, 124, 24);
getContentPane().add(label_1_4_1);
final JLabel label_1_4_2 = new JLabel();
label_1_4_2.setFont(new Font("", Font.PLAIN, 14));
label_1_4_2.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
label_1_4_2.setText("计算课程:");
label_1_4_2.setBounds(95, 232, 124, 24);
getContentPane().add(label_1_4_2);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -