用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事件处理机制来处理用户事件。需要注意的是,上述代码只是一个简单示例,实际的学生选课系统需要更完善的功能和更严谨的代码。

相关推荐

最新推荐

recommend-type

【java课设】学生选课系统.pdf

(3)显示功能:可显示当前系统中所有学生和课程的记录,每条记录占据一行。 (4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。 (5)删除功能:主要实现对已添加的学生和课程记录进行...
recommend-type

基于Java Web的学生选课系统JavaWeb设计

本选课系统着重应用JAVA WEB技术包括:JSP技术以及JDBC连接数据库。使用前台的技术包括JSP,JavaScript,CSS等。数据库采用MySQL。开发环境采用MyEclipse 14。 系统设计部分主要介绍了系统详细功能设计、数据库设计...
recommend-type

高校学生选课系统任务书

该设计采用Java面向对象语言和MyEclipse开发平台以及MySQL数据库设计一个功能强大的高校学生选课系统。本系统采用B/S的模式,系统主要包括用户模块、管理模块、学生模块的设计和数据库概念模型的设计,然后利用JDBC...
recommend-type

学生选课系统(前后端分离式开发)

这里是一份选课系统的用户功能说明和界面样式,采用前后端分离开发,数据库mysql,后端java语言springboot架构,前端vue.js利用elementUI框架,支持改造。
recommend-type

JavaWeb学生选课系统设计(报告书)

②教师管理用例:教师用户可见的功能,包含了查看学生选课和提交成绩两个用例功能。 ③信息管理用例:管理员可见的功能,这个用例进一步分为三个用例:学生信息管理用例、教师信息管理用例和课程信息管理用例。 ④...
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

解释minorization-maximization (MM) algorithm,并给出matlab代码编写的例子

Minorization-maximization (MM) algorithm是一种常用的优化算法,用于求解非凸问题或含有约束的优化问题。该算法的基本思想是通过构造一个凸下界函数来逼近原问题,然后通过求解凸下界函数的最优解来逼近原问题的最优解。具体步骤如下: 1. 初始化参数 $\theta_0$,设 $k=0$; 2. 构造一个凸下界函数 $Q(\theta|\theta_k)$,使其满足 $Q(\theta_k|\theta_k)=f(\theta_k)$; 3. 求解 $Q(\theta|\theta_k)$ 的最优值 $\theta_{k+1}=\arg\min_\theta Q(
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。