选课系统的设计和实现
更新: 2025/3/20 11:11:44 字数: 0 字
项目背景
我校原先的选课分为 网上选课、整班导入和电子表格导入,网上选课主要是针对全校公选课,全校学生一起在平台上选课,而在我们分专业后的选课以及我们在专业分流后下学期的所选课程,目前使用的是电子表格导入模式。
(1)原有选课系统只能用于处理全校通识课与公共课的选课,不能处理二级学院的内部选课。该模块用于学院内部选课的需求。
(2)对于大类招生的专业,在专业分流的这学期由于分流后专业和班级发生变化,也只能采用网上选课的方式选择下学期的课程。
为此,我们做了选课系统用来解决专业选课和专业分流选课问题。
项目目的
该选课系统来自实际需求,主要是为我们学校的二级学院的选课需求所设计的。主要使用的人有学生、主管院长、教学科长。该系统主要用于解决二级学院的选课问题。
该系统旨在解决以下问题:
二级学院选课问题:
满足二级学院内部的选课需求,提供灵活、便捷的选课方式。
支持专业分流后的选课需求,确保学生在专业分流后的学期能够顺利选择下学期的课程。
提升选课效率和准确性:
通过系统化的选课流程,减少人工操作,提高选课效率。
确保选课数据的准确性,避免因人为错误导致的选课问题。
优化用户体验:
提供友好的用户界面和操作流程,让学生和教职工能够轻松使用该系统。
提供实时通知和反馈机制,提升用户满意度。
支持未来扩展:
系统设计具有良好的扩展性,能够适应未来更多功能的需求。
为学校的信息化管理打下坚实基础,便于后续的功能扩展和优化。
综上所述,开发新的选课系统不仅能够解决现有的选课问题,还能为学校的教学管理提供有力支持,极大地提升选课效率和用户体验。
功能模块图

具体流程
教师在开课模块进行开课
(1)教师在开课的时候,会有网上选课,整班导入,表格导入,(专业选课,专业分流)选课 5 种选课模式。
(2)教师开课就是创建教学班的过程,教学班:课程名,上课时间(周、星期、节数、节次)、开课学年、学期、专业、上课地点,选课人数,选课方式、主讲老师...等。
(3)其中选择专业选课 和 专业分流选课来创建教学班,然后在选择对应的选课课组,这样做个教学班就会加入到对应的选课分组中去。
我们加一种选课模式叫做专业选课 ,然后给数据库加上这种选课模式,用户选择这种选课模式的话,就会出现选课课组信息,只要选指定的课组就行了。

创建选课课组
(1)教学科长创建选课课组,根据学年、学期、年级、专业来创建选课课组。
(2)创建完选课课组后,需要向选课课组中添加课程信息,该课程信息来源于该选课学年、选课学期、该年级学生、该专业的培养方案。
(3)选择好后保存即可。
学生选课
该学生请求选课,传入tcId(要选的教学班id)和sdId(选课的课组id), 然后通过sdId去将该选课课组信息从缓存Map中查询出来, 然后,查看查询出来的信息进行判断,判断是否还有选课机会,如果有选课机会,判断该课组选课类型, 如果是专业方向选课的话有每人选多少门课的限制,如果是专业分流选课的话没有该限制,如果符合条件下一步就是选课,选课时先修改缓存中的信息, 修改完成后,再修改数据库的信息,如果数据库信息修改失败,再将缓存中的信息修改回来,如果修改成功,就提示选课成功。

学生取消选课
为了更快的响应我们的取消选课,我们当我们的请求到来时我们直接对数据库做操作,如果该课程已经选了,删除肯定会成功,但是如果没有选删除就会失败,取消选课和选课一样我们使用的是存储过程。

项目演示
1. 创建选课课组
操作步骤:
(1)以主管院长的身份登录我们的系统。
(2)打开选课模块,我们选择“专业方向选课”这个菜单。
(3)点击新增,添加专业方向选课课组。
(4)我们点击“新增”按钮,弹出专业方向选课课组配置。
(5)我们选课学年选:2023年,选课学期为春季,选课学院为:智能科学与工程学院,选课专业为:计算机科学与技术,年级:2021级,限制选课课程数为:3,开始时间:2024年6月27日,结束时间为:2024年6月29日。
(6)填写好后我们点击创建,此时一个课组信息就创建完成了。



2.向课组中添加课程
我们课组创建好后,可以向课组中添加课程,向课组中添加课程,课程信息是从我们的培养方案中查询出来的。
操作步骤:
(1)点击课程进入课程选择界面;


(2)点击新增,得到该年级该专业该学年学期的所有课程,我们需要将专业课添加入该课组中。
(3)选择你想要添加的专业课课程,将其加入选课课组中。
(4)如果添加错了,可以点击“删除”删除已添加到课组里面的课程。

3. 发布课组
在课组创建好后,向课组中添加好课程后,并且等教学科长在开课时把教学班开起来后,我们可以发布选课课组。点击确定后该选课课组将发布出去。


4.学生选课
(1)用学生的用户名密码进行登录。
(2)打开“选课管理”模块,打开学生选课菜单。
(3)可以看到当前的选课课组有那些,这个就是我们刚刚创建的选课课组信息。

(4)点击“查看课程”,查看该选课课组下的课程有那些。

(5)点击选课选择课程,比如选择:计算机应用系统能力实践,这门课。

(6)检验差错检查算法,“计算机应用系统能力实践”和“操作系统原理”的上课时间是冲突的,因此,我们选择“计算机应用系统能力实践”课程后,我们的差错检查算法,可以检查到“操作系统原理”原理课程冲突了,会自动屏蔽, 因此,“操作系统原理”会从我们的选课表中移除。可以看到“操作系统原理”会从我们的选课表中移除了。

(7)取消选课,学生在已选课程下,点击“取消”按钮,就会弹出取消选课的对话框。
(8)如果学生想取消,点击确定即可。


5. 选课小程序端
我们的选课,只在微信端做了学生选课的界面。
1、学生查询选课课组信息。

2、学生选课和学生取消选课,学生点击选课课组信息,可以查看选课课组下的课程信息,如果该课组处于可选课状态,会有选课和取消选课按钮。

(1)学生需要选课的时候,点击“选课”按钮,弹出对话框;

(2)点击“确定”,该课程就被选中了;以“Python程序设计”为例:

(3)退选课程,点击“取消”按钮取消已选的课程。

