基于Java swing实现的学生选课管理系统

摘 要

随着社会的发展,学生的人数和课程的种类急速增加,传统的选课管理模式已经无法满足当前的实际需求,为此,我们开发了学生选课管理系统。

本人结合学生选课管理的实际需要,完成了对学生选课管理系统的需求分析、功能模块划分、数据库模式分析等,并由此设计了后台数据库以及前台应用程序。

文中首先对课题背景,数据库基础理论和SQL语言进行了简单的讨论;接着,对学生选课管理系统进行了详细分析,划分了具体的功能模块,最后,给出了学生选课系统应用程序的设计过程,以及每个功能模块的核心代码。

系统可以实现学生选课的一些重要功能,如:学生的添加、更改、删除,信息查询。课程的添加、更改、删除,信息查询。学生选课的添加、删除、更改课程,信息查询。以及学生选课管理人员、用户个人信息的维护、系统退出等。

关键词: 管理系统;数据;MySQL;查询;修改;增加;删除;JTable

第一章 需求分析

1.1 研究背景

当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最到好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。

尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好学生选课信息而设计的。

学生选课作为一种信息资源的集聚地,包含很多的信息数据的管理。由于数据繁多,容易丢失,且不易查找。总体来说,缺乏系统,规范的信息管理手段。尽管有的学校有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发基本环境。

数据处理手工操作,工作量大,出错率高,出错后不易更改。造成了时间上的浪费。

基于这个问题,我认为有必要建立一个学生选课系统,使学生选课信息管理工作规范化、系统化、程序化,避免学生选课管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改选课情况。

1.2 课题的设计

本文就学生选课系统的设计与制作展开分析。学生选课系统主要应用Java Swing技术、Java事件处理机制和JDBC数据库技术来进行学生选课系统的开发与实现,我主要是应用Java Swing为前端开发工具,利用SQL语言实现数据查询。设计系统时,先从系统的数据流程开始分析,设计系统的业务流程图、系统的数据流程图、系统的E-R图。根据开题报告的设计要求开始进入系统的总体设计,接着制定系统的设计思想,分析系统的功能并设计系统的功能模块,这些都是系统制作前的准备工作;准备工作完成后,开始系统数据库和Swing主要布局界面的建立,主要有各个功能窗口的设计,将设计好的窗口集中到主菜单上,通过用户的用户名和密码的登录可以进入到主窗口,这样就完成系统的制作。最后,对系统进行调试,性能分析。

1.3 系统介绍

开发一个学生选课管理系统,主要有三个部分:系统管理,数据管理,数据查询。 

  • 系统管理主要用于用户信息的相关管理。主要包括密码设置、用户登录、退出三个功能

  • 数据管理主要用于信息的增加、删除、更改,主要包括学生管理、课程管理和选课管理三大模块。其中学生管理下有添加了添加学生、删除学生、修改学生三大功能,同样课程和选课也有增加、删除、修改这三大功能

  • 数据查询主要用于查询信息管理,主要包括查询学生信息管理、查询课程信息和查询选课信息三大功能

1.4 系统面向的用户群体

本系统为某高校所开发。立足于校园实际,着眼于未来发展,建成符合标准化协议、通用性较强、实用的系统,以提学生选课管理的现代化发展,实现信息资源的共享。系统的建成无疑会为广大师生提供极大的帮助。

1.5 开发环境

  • Eclipse应用程序

  • MySQL数据库

第二章 系统总体设计

该系统的设计是充分考虑到学生的管理和课程的管理两个大的方面,首先管理员需要根据正确的账号密码登陆到系统主界面,然后才能对该系统实施操作,否则不能登陆该系统。系统中主要包含的容有: 

  • 学生管理中的增、删、改、查等功能

  • 课程管理中的增、删、改、查等功能

  • 学生选课管理中的增、删、改、查等功能

  • 以上操作都直接关联数据库

  • 数据库采用的是MySQL数据库

第三章 模块设计

根据需求分析阶段得到的功能需求,可将系统功能大概分为六个模块:这几个模块用户登录、学生管理、课程管理、选课管理、查询管理、系统退出

3.1 用户登录

3.1.1 登录实体截图

3.2 主界面

主界面主要是用于对选择相应的功能进行相应的功能,主界面主要包括学生管理、课程管理、选课管理、数据查询、系统退出五大功能。    主界面添加JMenuBar菜单条,和JMenu菜单,和JMenuItem菜单项。三个菜单包括:学生管理、课程管理、选课管理和数据查询。学生管理中包括:增加学生、修改学生、删除学生。课程管理中包括:增加课程、修改课程、删除课程。选课管理中包括:增加选课、修改选课、删除选课。数据查询主要包括学生查询、课程查询、选课查询。还有一个单独的系统退出。

3.3 数据库连接

学生、课程以及成绩的增删改查都是建立在连接数据库的基础之上,在MySQL里建立用户管理员表、学生表、课程表、选课表等。建立JDBC数据源的连接。

连接数据库重要代码:

  1. public class DBUtil {
  2. static Connection con;
  3. public static Statement st;
  4. static PreparedStatement ps;
  5. public static ResultSet rs;
  6. static String url="jdbc:mysql://localhost:3306/studb?useUnicode=true&characterEncoding=UTF-8";
  7. static String name="root";
  8. static String pwd="123456";
  9. public static void initst() {
  10. try {
  11. Class.forName("com.mysql.jdbc.Driver");
  12. con=DriverManager.getConnection(url,name,pwd);
  13. st=con.createStatement();
  14. } catch (SQLException e) {
  15. e.printStackTrace();
  16. }catch (ClassNotFoundException e) {
  17. e.printStackTrace();
  18. }
  19. }
  20. public static void initps(String sql) {
  21. try {
  22. Class.forName("com.mysql.jdbc.Driver");
  23. con=DriverManager.getConnection(url,name,pwd);
  24. ps=con.prepareStatement(sql);
  25. rs= ps.executeQuery();
  26. } catch (SQLException e) {
  27. e.printStackTrace();
  28. }catch (ClassNotFoundException e) {
  29. e.printStackTrace();
  30. }
  31. }
  32. public static void closeDB() {
  33. try {
  34. if (rs!=null) {
  35. rs.close();
  36. }
  37. if (ps!=null) {
  38. ps.close();
  39. }
  40. if (st!=null) {
  41. st.close();
  42. }
  43. if (con!=null) {
  44. con.close();
  45. }
  46. } catch (Exception e) {
  47. // TODO: handle exception
  48. e.printStackTrace();
  49. }
  50. }
  51. }

 

3.4 数据查询

这部分主要功能是查询学生信息、课程信息以及选课信息。

查询学生信息

 

查询课程信息 

 

查询课程信息

 

3.5 添加学生信息

这部分的主要功能是向数据库中添加新的学生信息。 

添加学生信息

 

 

 

  • 6
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一季春秋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值