您好, 访客   登录/注册

基于Java的选课管理系统的设计与实现

来源:用户上传      作者:连瑞梅

  摘要:针对学校选课存在的漏选、错选及拥塞的问题,设计并实现一种基于Java语言的选课管理系统。该系统采用B/S结构,前端使用bootstrap框架,后端则由Spring.MyBatis、Maven等多种技术结合来完成,使用mysql来对选课系统中数据进行处理。通过对系统的不断测试和改进,实践证明,该系统能够很好地适应学校选课系统的特殊需求,为提高选课的准确率、降低拥塞性提供了很好的技术支持。
  关键词:选课系统;MVC;MyBatis;Java;B/S结构
  中图分类号:TP311.52 文献标识码:A
  文章编号:1009-3044(2020)05-0067-05
  开放科学(资源服务)标识码cOSID):
  1 背景
  我校是由三个院校合并建成后进而升级为本科院校的,前几年又将潍坊艺校合并进来,因此学生层次呈阶梯式,培养模式也呈现多样化,因此作为高校教育教学工作的核心工作之一的选课与排课的工作量必然会呈级数增长。显然,传统的选课排课方式已经不能适应目前我校特殊的教育状况。迫切需要设计一款校园选课管理系统[1]来提高其工作效率。我校目前有22个教学单位,68个本科专业,全日制在校学生近两万三千余人。校园选课管理系统充分将CRMc2]的技术和理念融入校园信息系统,让全体师生能乘载校园管理系统之便利用于科研工作及學习,很好地解决了以前学生选课难、老师工作量大等问题。相比于传统的选课方式而言,基于Java的选课管理系统以计算机代替人力,将学校的管理者、教师、学生紧密相连,做到了信息的高效互通。有了这款选课系统,学校的教务管理人员能够做到使教学资源可以快速合理地分配使用,以尽量减少资源浪费;教师和选课管理人员可以极大地提高了工作效率,使得他们有更多的时间和精力专注于本职工作;学生在进行网上选课时保证做到及时性和准确性,避免了选课时候因重复和拥塞等不确定因素造成选课的失败和延迟。它充分体现了在这个信息化时代,实行系统化管理的优点。
  2 系统架构及相关技术
  2.1 JSP和JavaEE
  JSP[3]不像html只能传输静态数据,JSP技术实现了html语法中的Java扩展,能够通过<%java代码%>的标记将很多需要动态实现的代码直接写入前端显示页面中。这种全新的页面解析方式,能够实现一次编写,多处运行,很好地实现了代码重复利用这一原则。这样对于后期的维护和更新也将变得十分方便。
  JavaEE[4]是Java三大分支中的企业级Java技术标准。它能够跨平台使用,没有C++烦琐的指针概念、拥有异常机制和gc机制,安全性非常好。与JavaSE和JavaME相比较而言,JavaEE更适合用于网站、各类系统的设计和制作。
  2.2 Mysql和MyBatis
  Mysql数据库中的数据根据不同的关系存储在不同的表中,极大地提高了数据处理的效率和灵活性。它对于数据的存收稿日期:2019-12-15储和管理充分体现了其关联的特点。此外,Msql还有很多吸引人的地方。例如使用简单、安全性好、支持多语言查询、可移植等。
  持久层框架MyBatis的使用充分简化了开发难度,它不用再像JDBC那样在连接和使用数据库的时候总要书写大量的JDBC代码。因为sql语句与Java代码的分离,使之能够自动将sql语句映射到Java实体类,实现了其半自动化管理的特性。
  2.3 SpringlVWC和Maven管理
  SpringMVC[5]是一个灵活实用的web层框架,其本质是将MVCc6]设计模式基于Java代码在web中实现,不仅从很大程度上简化了web开发的流程,还使web层的事务处理得到解耦。解决了多视图依赖一个业务,视图敏感度过高等一系列问题。
  Maven简单来说就是一个基于项目实例模型合理分配和管理项目间各种依赖关系的项目管理工具。使用Maven来管理项目,项目中所需要的各种依赖包就不用再去手动导入和添加依赖了,直接在pom.xml文件中配置包名及相应的版本号即可,Maven会帮你自动进行处理。
  2.4 bootstrap框架
  bootstrap是基于HTML、css、JavaScript开发的前端开发框架,是一个快速开发Web App和站点的工具包,其相比自己手写样式而言方便了许多。作者将前端开发中常用的css、各种插件和组件进行了整合和归类展示,加上链接的定位功能,开发者使用起来快捷和方便,深受前端开发者的喜爱。
  3 系统分析与设计
  3.1 系统需求分析
  3.1.1系统的业务流程分析
  基于Java的校园选课管理系统,主要面向全体在校师生的,用户的角色主要分为三类:第一类是系统管理员,主要负责维护协同管理系统的正常运行。第二类是属于普通用户的教师,可以完成课程的增加删除与学生成绩的登录管理及在线答疑等工作。第三类用户主要是学生,他们只能进行选课与查询课程。对于这些用户,他们通过自己的账号和密码能够正常登录选课系统,并且根据用户角色的不同显示各自所需的数据和相关操作按钮。系统的管理员能够对整个系统进行管理和维护;老师能够使用选课系统进行开设新课程和给所选的课程进行评分;同学们能够在选课系统上进行课程的选择。具体的业务流程见图1所示。
  3.1.2 数据流程分析
  设计和开发选课系统[7]必定会涉及很多数据。因为我们开发选修系统的最终目标是实现数据无纸化管理。在开发前对数据流程进行分析,不仅能够使开发的业务逻辑更加明朗,还能避免因数据混乱造成开发失败。此次选课系统数据流程的分析主要是根据用户和选课系统的交互及其交互过程中产生的数据信息的走向、流动和存储来进行的,由此设计出合理的数据逻辑,保证选课系统运行过程中数据的流通,同时也确保了业务逻辑的正常开发。同学们选课的数据[8],老师开设课程的数据能够确保存人数据库。在老师打分和学生选课的时候数据库又能够向相关的用户提供他们所需要的信息。具体的数据流程如图2所示。   3.2 系统设计
  3.2.1 系统架构设计
  为了让同学们和其他用户方便访问选课系统,此次设计在B/S结构[9]的基础上进行开发。具体结构如图3所示。
  1)表示层。由前端框架bootstrap和JSP技术设计而成,主要用于前端界面登录窗口、管理员窗口、教师窗口和学生选课窗口的展示和操作,它是用户与课程管理系统交互的界面。客户机通过浏览器访问选课系统可以直接进行选课程、开设课程、维护管理等一系列操作。
  2)中间功能层。该层是选课系统业务处理的核心层,主要负责前端用户的请求与处理,后端数据层的数据调用和判断等。其主要功能是用户存储数据、调用数据和对各种业务逻辑进行处理。
  3)数据服务层。主要负责学生数据、教师数据、课程数据等与选课系统相关数据的存储和访问,是选课系统数据的大本营。
  3.2.2 系统模块设计
  系统模块主要由管理员模块、教师模块、学生模块及退出系统四大部分组成。其中管理员模块由管理课程、管理用户(包括教师、学生及其他用户)两个模块。同时每个模块相应的子模块还有对应的数据展示列表。其具体的系统模块设计图如图4所示。
  4 系统数据库设计
  4.1 概念结构及表字段分析
  从用户的需求人手,选课系统应该有教师类、学生类、课程类、用户管理類等多个实体类。各个实体类之间存在着相应的关系,通过数据表主(外)键或者实体类之间的实体关联产生相应且符合逻辑的数据流动。各种类的具体属性设计如下。
  4.1.1 教师类与学生类的设计
  1)教师类如图5所示,主要是描述老师的信息。具体包含教工卡号、姓名、职称/职务、讲授课程及性别等属性。
  2)学生类见图6,主要描述学生的相关信息。有学籍卡号、姓名、出生日期、入学时间、所属系部及性别等属性。
  4.1.2 课程类与用户类的设计
  1)课程类设计如图7所示,主要是描述课程的相关信息。具体包含课程代码、课程名称、开课学期、上课地点、学分等属性。
  2)用户管理类设计如图8所示,主要描述用户的相关信息。具体包含用户ID、用户昵称、用户密码、角色等属性。
  4.2 数据库中数据表的设计
  由于篇幅关系,在此只列出已经设计的数据表中的Course表(见表1)、Student表(见表2)和Teacher表(见表3),余表略。
  11 Course表即课程信息表。主要用于课程信息的存储。具体信息如表1所示。
  21 Student表即学生信息表。主要用于存放学生的信息。具体信息如表2所示。
  3) Teacher表。主要用于存储老师的信息数据。具体信息如表3所示。
  5 系统实现与测试
  5.1系统的实现途径
  5.1.1 Intellij IDEA中Maven工程的创建
  使用Java开发工具Intellij在Maven管理的环境下创建名为Examination System的web工程,并在工程中建po、mapper、service等后期存放文件必须用到的一些包。
  5.1.2 Spring框架的搭建及相关参数的配置
  对于Spring而言,它的事务处理能力十分强大。相比于之前所用的JDBC连接池来说,在jar包的处理上它更加简洁方便。我们只需要在pom.xml文件中对开发所需的一些jar包导入即可直接使用。然后再对wbe.xml、pom.xml、spring.xml等配置文件进行配置,搭建起Spring框架,对后面选课系统的进一步开发会有事半功倍的效果。
  5.1.3数据库的搭建及相关数据表的建立 利用开发工具建立数据库,并完成选课系统所需相关表的建立。
  5.1.4 MyBatis连接数据库,并测试数据的连接状态
  利用MYBatis相关插件根据数据库中的表逆向生产实体类、接口等文件,为后面的选课系统开发打下坚实的基础。
  5.2 登录模块的实现
  5.2.1 前端登录界面的实现
  利用bootstrap前端框架提供的相关登录界面样式和表单控件,结合JSP动态网页开发技术来开发和实现登录界面login.JSP。用户的登录除了核对用户账号和密码之外,还要对其身份进行核对,三者只要其中一项不符合要求都不允许正常登录。
  5.2.2 后台登录校验的实现。
  后台接收到前端页面传来的用户ID和密码后,会在后台执行相应的逻辑判断。经过做逻辑判断,看看是不是和mysql中的信息一致。如果都符合要求,再对用户的角色进行判断,不同的角色登录到不同的JSP显示页面中。若是不符合要求就跳转到相应的错误显示页面。其核心校验代码见图9。
  5.3 系统各个模块的实现
  5.3.1管理员模块的实现
  管理员通过校验后登录选课系统。并实现前后端数据的传递、接收和判断。登录系统之后,你就能看到管理员的显示窗口了。显示窗口包括左导航栏列表显示区,主页显示区的数据展示列表。其效果图如图10所示。
  前端发出请求后,后台在控制器中调用相应的方法进行逻辑事物的处理,主要包含课程、教师、学生信息的查询方法的执行和响应。其中,每个方法在执行的过程中又会去调用其相应的接口和方法。最后完成与数据库的交互。当然,各类方法在执行的过程中还会进行很多数据格式的处理,非空逻辑判断等,这里就不再加以说明了。
  5.3.2 教师模块的实现
  教师模块前端界面的设计与实现。老师填写正确的登录信息之后能够进入到教师模块的显示页面。顶部的标题栏负责大标题的显示和搜索框的显示。导航栏设置超链接,编辑区显示对应的列表信息,在列表的操作框中可以通过事件按钮的单击。查看到详细的选课人员信息。在学生名单页面可以通过打分按钮给学生进行打分。实现效果图在此只列出教师模块图,如图11所示。   5.3.3 学生模块的实现
  学生模块的实现主要包括学生选课程的实现,查询和所选课程完成情况的实现,密码重置和注销的实现。学生登录后默认在所有课程页面,页面分页展示,学生可以通过点击页码对课程进行查看和浏览,也可以通过搜索框输入课程名称进行精准的定位。找到要选择的课程后,单击课程按钮选择课程。若是课程已经选择过,则不能进行重复选择,单击后会跳转到提示页面。完成课程后,学生可以在所选课程页面上查看选择的课程。除此之外,同学们还能在修完课程之后查看所选的课程合格了没有。如果选课后想要对选课进行更换,可在已选课程页面中进行退选该门课程的操作。
  具体实现的学生选课列表实现见图12与图13所示。
  5.4 系统的测试
  5.4.1 软件测试的目的
  在选课系统还没有正式应用之前,通过测试我们能够发现一些系统存在的潜在问题和缺陷,并对其进行进一步的修复和改进,能很好地提升系统的性能和优化程度。对系统以后投入使用保证正常运行是一个很好的保障。若是不对其进行测试就直接投入使用,不仅不能保证使用过程中的正常运行,还会大大增加维护的成本和影响用户的体验。所以说,使用前的软件测试是非常有意义和必要性的。
  5.4.2 测试结果
  经过对选课系统登录、显示、查询、删除等各个模块的多次测试和改进,系统运行正常,可以投入使用。部分测试用例如表4所示。
  部分具体测试结果显示图展示如下:
  1)成功登录测试结果见图14所示。不同的用户角色分别进入不同的管理页面,所得到的数据展示也不同。
  2)登录失败测试结果见图15所示。不同的失败原因系统会反馈不同的提醒信息页面。
  3)选课按钮测试结果见图16所示。正常情况下,选择有效的课程信息是会自动跳转到相关显示页面显示。如果选的是无效的信息,会出现相应的错误展示信息。 6 结束语
  本文基于Java语言对选课系统进行开发,采用B/S结构,前端使用bootstrap框架,后端则由Spring、MyBatis、Maven等多种技术结合来完成,使用mysql来对选课系统中数据进行处理。为适应选课系统的功能需求来设计系统的结构并实现各个模块如登录、教师开设课程、学生选课及管理员等模块的功能。通过对系统的不断测试和改进,实践证明,该系统能够很好地适应学校选课系统的特殊需求,为提高选课的准确率、降低拥塞性提供了很好的技术支持。
  参考文献:
  [1]張俊.高校教务管理系统选课算法研究综述[Jl.攀枝花学院学报,2017(2):49-52.
  [2]蔡呈凯.客户关系管理系统的设计与实现[Jl,科技致富向导,2015(11):42-43.
  [3]石义良,邓娟.JSP数据库访问技术研究[J].科技资讯,本栏目责任编辑:谢媛媛2009(2):14.
  [4]杨开振.Java EE互联网轻量级框架整合开发[M].北京:电子工业出版社,2017.
  [5] Craig Walls.Spring实战[M].4版.北京:人民邮电出版社,2016.
  [6]钮永莉,邹长忠.基于MVC框架的高校学生选课系统的设计与实现[J].北京印刷学院学报,2018,26(3):2-8.
  [7]徐富新,王洲,陈芳,等.手机短信在实验选课系统的应用 [Jl.计算机技术与发展,2013(11).
  [8]白伟丽.学生选课系统的设计与实现[Jl.电脑与电信,2018(10):38-40.
  [9]王鑫.基于Web的学生选课系统研究[J].无线互联科技,2018,15(6):63-64,72.
  [10]罗丽.基于B/S模式的高校学生选课系统设计与实现[Dl.长沙:湖南大学,2014.
  【通联编辑:谢媛媛】
  基金项目:山东省本科高校教学改革研究项目(项目编号:C2016M048);教育部产学合作协同育人项目(项目编号:201802027013)
  作者简介:连瑞梅(1968-),女,山东潍坊人,副教授,硕士,主要研究方向为Java程序设计、Python编程与数据可视化、PHP程序设计。
转载注明来源:https://www.xzbu.com/8/view-15180531.htm