⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scanf_test_inf.java

📁 用来管理在校学生的出勤.作息等的管理系统
💻 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 + -