1.程序中含有学生表(包含学生信息) 用户表(包含用户角色和登录信息) 请假申请表(包含请假相关信息) 审批记录表(记录每次审批的结果) 2.使用Java Swing创建用户登录界面,并根据角色跳转到不同的功能界面。 3.学生界面:显示学生信息和请假申请表单,可以提交新的请假申请或编辑已有申请。 4.辅导员界面:显示待审批的请假申请列表,可以进行审批操作。 5.院领导界面:显示待审批的请假申请列表,可以进行审批操作。 6.校领导界面:显示待审批的请假申请列表,可以进行审批操作。 7.在学生界面中,根据登录学号自动填写学生信息。用户手动填写其余请假信息,并提交申请到数据库中。 8.在辅导员、院领导和校领导界面中,显示待审批的请假申请列表。根据请假天数判断需要哪些角色审批,审批通过或驳回后更新数据库中的请假申请表和审批记录表。 9.如果审批被驳回,学生可以重新编辑请假申请并再次提交审批。 10.所有角色都可以查看审批记录,包括申请人、辅导员、院领导和校领导。 按上述步骤生成代码,并包含数据库操作
时间: 2024-04-09 18:28:26 浏览: 40
XX学校学生请假回访登记表共2页.pdf.zip
根据您的需求,以下是一个示例代码,使用Java Swing创建用户登录界面,并实现了学生请假系统的各项功能,包括用户角色跳转、请假申请、审批操作以及数据库操作。请注意,以下代码仅为示例,您可以根据实际需求进行修改和扩展。
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;
public class LeaveApplicationSystem extends JFrame {
private JPanel loginPanel;
private JPanel studentPanel;
private JPanel counselorPanel;
private JPanel deanPanel;
private JButton loginButton;
private JTextField usernameField;
private JPasswordField passwordField;
private JLabel infoLabel;
private String currentUserRole;
private String currentUserID;
private Connection conn;
private Statement stmt;
public LeaveApplicationSystem() {
initializeDatabase();
loginPanel = new JPanel();
loginPanel.setLayout(new GridLayout(3, 2));
loginPanel.add(new JLabel("Username:"));
usernameField = new JTextField();
loginPanel.add(usernameField);
loginPanel.add(new JLabel("Password:"));
passwordField = new JPasswordField();
loginPanel.add(passwordField);
loginButton = new JButton("Login");
loginButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
login();
}
});
loginPanel.add(loginButton);
infoLabel = new JLabel();
loginPanel.add(infoLabel);
studentPanel = new JPanel();
studentPanel.setLayout(new BorderLayout());
// 添加学生信息和请假申请表单等组件
counselorPanel = new JPanel();
counselorPanel.setLayout(new BorderLayout());
// 添加辅导员界面组件
deanPanel = new JPanel();
deanPanel.setLayout(new BorderLayout());
// 添加院领导界面组件
setLayout(new CardLayout());
add(loginPanel, "login");
add(studentPanel, "student");
add(counselorPanel, "counselor");
add(deanPanel, "dean");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(600, 400);
setVisible(true);
}
private void initializeDatabase() {
try {
String url = "jdbc:mysql://localhost:3306/leave_application_system";
String user = "username";
String password = "password";
conn = DriverManager.getConnection(url, user, password);
stmt = conn.createStatement();
} catch (SQLException e) {
e.printStackTrace();
System.exit(1);
}
}
private void login() {
String username = usernameField.getText();
String password = new String(passwordField.getPassword());
try {
String query = "SELECT * FROM user_table WHERE username='" + username + "' AND password='" + password + "'";
ResultSet rs = stmt.executeQuery(query);
if (rs.next()) {
currentUserRole = rs.getString("role");
currentUserID = rs.getString("id");
switch (currentUserRole) {
case "student":
showPanel("student");
break;
case "counselor":
showPanel("counselor");
break;
case "dean":
showPanel("dean");
break;
default:
showPanel("login");
break;
}
} else {
infoLabel.setText("Invalid username or password.");
}
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
private void showPanel(String panelName) {
CardLayout cardLayout = (CardLayout) getContentPane().getLayout();
cardLayout.show(getContentPane(), panelName);
}
public static void main(String[] args) {
new LeaveApplicationSystem();
}
}
```
以上代码创建了一个基本的请假系统的界面,并实现了用户登录功能。您可以根据需要,进一步完善学生界面、辅导员界面、院领导界面和校领导界面的具体功能和布局。同时,您还需要根据实际情况,修改数据库连接相关信息,并完善数据库操作的代码。
请注意,以上代码仅为示例,可能需要您根据具体情况进行适当修改和扩展。
阅读全文