1.程序中含有学生表(包含学生信息) 用户表(包含用户角色和登录信息) 请假申请表(包含请假相关信息) 审批记录表(记录每次审批的结果) 2.使用Java Swing创建用户登录界面,并根据角色跳转到不同的功能界面。 3.学生界面:显示学生信息和请假申请表单,可以提交新的请假申请或编辑已有申请。 4.辅导员界面:显示待审批的请假申请列表,可以进行审批操作。 5.院领导界面:显示待审批的请假申请列表,可以进行审批操作。 6.校领导界面:显示待审批的请假申请列表,可以进行审批操作。 7.在学生界面中,根据登录学号自动填写学生信息。用户手动填写其余请假信息,并提交申请到数据库中。 8.在辅导员、院领导和校领导界面中,显示待审批的请假申请列表。根据请假天数判断需要哪些角色审批,审批通过或驳回后更新数据库中的请假申请表和审批记录表。 9.如果审批被驳回,学生可以重新编辑请假申请并再次提交审批。 10.所有角色都可以查看审批记录,包括申请人、辅导员、院领导和校领导。 按上述步骤生成一整套完整的的swing代码,并包含数据库操作
时间: 2024-04-09 11:31:13 浏览: 36
对于这个问题,我可以为您提供一些基本的代码结构和步骤,但由于篇幅限制,无法提供完整的代码。请注意,以下代码只是示例,您可能需要根据您的具体需求进行适当调整和修改。
首先,您需要创建一个数据库来存储学生表、用户表、请假申请表和审批记录表。您可以使用Java的JDBC来连接数据库并执行相应的操作。这里以MySQL数据库为例。
1. 创建数据库连接类 `DBConnection.java`:
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBConnection {
private static final String URL = "jdbc:mysql://localhost:3306/your_database_name";
private static final String USER = "your_username";
private static final String PASSWORD = "your_password";
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(URL, USER, PASSWORD);
}
}
```
2. 创建学生类 `Student.java`:
```java
public class Student {
private String studentId;
private String name;
// other student information
// constructor, getters and setters
}
```
3. 创建用户类 `User.java`:
```java
public class User {
private String username;
private String password;
private String role;
// other user information
// constructor, getters and setters
}
```
4. 创建请假申请类 `LeaveApplication.java`:
```java
public class LeaveApplication {
private int applicationId;
private String studentId;
private String reason;
private int days;
private String status;
// other leave application information
// constructor, getters and setters
}
```
5. 创建审批记录类 `ApprovalRecord.java`:
```java
public class ApprovalRecord {
private int recordId;
private int applicationId;
private String approver;
private String result;
private String comment;
// other approval record information
// constructor, getters and setters
}
```
6. 创建登录界面类 `LoginFrame.java`,用于用户登录并根据角色跳转到不同的功能界面。
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class LoginFrame extends JFrame {
private JTextField usernameField;
private JPasswordField passwordField;
private JButton loginButton;
public LoginFrame() {
setTitle("Login");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
setSize(300, 200);
setLocationRelativeTo(null);
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(3, 2));
JLabel usernameLabel = new JLabel("Username:");
usernameField = new JTextField();
JLabel passwordLabel = new JLabel("Password:");
passwordField = new JPasswordField();
loginButton = new JButton("Login");
panel.add(usernameLabel);
panel.add(usernameField);
panel.add(passwordLabel);
panel.add(passwordField);
panel.add(new JLabel());
panel.add(loginButton);
add(panel);
loginButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String username = usernameField.getText();
String password = new String(passwordField.getPassword());
// 根据用户名和密码查询数据库,验证用户身份
User user = getUserByUsernameAndPassword(username, password);
if (user != null) {
// 根据用户角色跳转到不同的功能界面
switch (user.getRole()) {
case "student":
// 打开学生界面
openStudentFrame(user);
break;
case "counselor":
// 打开辅导员界面
openCounselorFrame(user);
break;
case "college_leader":
// 打开院领导界面
openCollegeLeaderFrame(user);
break;
case "university_leader":
// 打开校领导界面
openUniversityLeaderFrame(user);
break;
}
} else {
JOptionPane.showMessageDialog(LoginFrame.this, "Invalid username or password");
}
}
});
}
// 根据用户名和密码查询用户信息
private User getUserByUsernameAndPassword(String username, String password) {
// 查询数据库,返回用户对象或null
// 实现略
}
private void openStudentFrame(User user) {
StudentFrame studentFrame = new StudentFrame(user);
studentFrame.setVisible(true);
dispose();
}
private void openCounselorFrame(User user) {
CounselorFrame counselorFrame = new CounselorFrame(user);
counselorFrame.setVisible(true);
dispose();
}
private void openCollegeLeaderFrame(User user) {
CollegeLeaderFrame collegeLeaderFrame = new CollegeLeaderFrame(user);
collegeLeaderFrame.setVisible(true);
dispose();
}
private void openUniversityLeaderFrame(User user) {
UniversityLeaderFrame universityLeaderFrame = new UniversityLeaderFrame(user);
universityLeaderFrame.setVisible(true);
dispose();
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new LoginFrame().setVisible(true);
}
});
}
}
```
这里只提供了登录界面的代码示例,您还需要根据您的具体需求实现其他界面和功能。
希望以上代码能帮助到您,如果有任何问题,请随时提问。
阅读全文