用Java写学生选课系统
时间: 2023-09-16 22:14:27 浏览: 43
好的,下面是一个简单的学生选课系统的Java代码示例,可以作为参考:
```java
import java.sql.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class CourseSelectionSystem extends JFrame implements ActionListener {
// 定义界面组件
private JLabel label1, label2;
private JTextField textField1, textField2;
private JButton button1, button2;
private JList<String> courseList;
private DefaultListModel<String> courseListModel;
private JTextArea textArea;
// 定义数据库连接对象
private Connection conn;
private Statement stmt;
// 构造函数
public CourseSelectionSystem() {
// 初始化界面组件
label1 = new JLabel("学号:");
label2 = new JLabel("密码:");
textField1 = new JTextField();
textField2 = new JPasswordField();
button1 = new JButton("登录");
button2 = new JButton("退出");
courseListModel = new DefaultListModel<String>();
courseList = new JList<String>(courseListModel);
textArea = new JTextArea();
// 设置界面布局
JPanel panel1 = new JPanel(new GridLayout(2, 2));
panel1.add(label1);
panel1.add(textField1);
panel1.add(label2);
panel1.add(textField2);
JPanel panel2 = new JPanel(new BorderLayout());
panel2.add(new JScrollPane(courseList), BorderLayout.CENTER);
panel2.add(button1, BorderLayout.SOUTH);
JPanel panel3 = new JPanel(new BorderLayout());
panel3.add(new JScrollPane(textArea), BorderLayout.CENTER);
panel3.add(button2, BorderLayout.SOUTH);
JPanel panel = new JPanel(new GridLayout(1, 3));
panel.add(panel1);
panel.add(panel2);
panel.add(panel3);
add(panel);
// 设置界面事件
button1.addActionListener(this);
button2.addActionListener(this);
// 连接数据库
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/courseselection", "root", "123456");
stmt = conn.createStatement();
} catch (Exception e) {
JOptionPane.showMessageDialog(this, "数据库连接失败:" + e.getMessage());
System.exit(0);
}
// 加载课程列表
try {
ResultSet rs = stmt.executeQuery("SELECT name FROM course");
while (rs.next()) {
courseListModel.addElement(rs.getString("name"));
}
rs.close();
} catch (Exception e) {
JOptionPane.showMessageDialog(this, "加载课程列表失败:" + e.getMessage());
System.exit(0);
}
// 设置界面属性
setTitle("学生选课系统");
setSize(800, 600);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
// 处理界面事件
public void actionPerformed(ActionEvent e) {
if (e.getSource() == button1) { // 登录
String studentId = textField1.getText();
String password = textField2.getText();
try {
ResultSet rs = stmt.executeQuery("SELECT * FROM student WHERE id='" + studentId + "' AND password='" + password + "'");
if (rs.next()) {
textArea.setText("欢迎您," + rs.getString("name") + "!\n");
} else {
JOptionPane.showMessageDialog(this, "学号或密码错误!");
}
rs.close();
} catch (Exception ex) {
JOptionPane.showMessageDialog(this, "登录失败:" + ex.getMessage());
}
} else if (e.getSource() == button2) { // 退出
System.exit(0);
}
}
// 程序入口
public static void main(String[] args) {
new CourseSelectionSystem();
}
}
```
上述代码实现了一个简单的学生选课系统,具有登录、退出和查看课程列表等功能。其中,使用了Java Swing框架来设计用户界面,使用了Java JDBC技术来连接数据库,使用了Java事件处理机制来处理用户事件。需要注意的是,上述代码只是一个简单示例,实际的学生选课系统需要更完善的功能和更严谨的代码。