目录
1设计任务
1.1设计背景
随着网络不断的普及发展,高校选课管理系统依靠网络技术的支持得到了快速的发展,首先要从用户的实际需求出发,通过了解用户的需求开发出具有针对性的选课功能,利用目前网络给用户带来的方便快捷这一特点对系统进行调整,设计的系统让用户的使用起来更加方便,本系统的主要目的就是给用户带来方便,用户只要在家中就可以进行查看课程信息。
随着科学技术的不断提高,计算机信息技术科学逐渐成熟和壮大,计算机技术的快捷性,准确性,自动化特点已为人们深刻了解和认识。计算机技术已进入人类社会的各个领域,并在政治,经济,生活,文化服务等各个领域发挥着越来越重要的作用。作为基础核心,国家非常重视高校和中小学教育,倾注了大量的人力和财力来培养大学生,培养实用型人才,在政策上和财力上都倾注了很大的精力。故而教育资源的调配显得非常重要,也突出了学校中选课的重要性。
由于传统手工排课方式使得教学资源不能够科学地调配,存在着许多缺点,如:效率低, 保密性差,不方便长时间存储之后的查找和更新维护,导致学生选课不合理,不方便,造成学生和学校教学资源之间的冲突,从而根本上影响了教学质量。国内外许多学校积极引进和开发了许多网上选课管理系统, 符合学校自身的特定需求,极大地凸显了网上选课管理系统带来的优点,如检索快速,查找方便,高可靠性,大存储量,长寿命,使用方便等。
互联网发展至今,已经解决了很多解决不了的难题,使得工作更加便捷,提高了工作效率。目前各行各业都在运用网络信息管理程序,不同的人群也都接触到信息管理,特别是在各大电商行业广泛的应运起来。通过对当前网络环境发展的分析与总结,开发选课管理系统可以改变以往的学生选课方式,改变传统学生选课的状态,由于人群的不断增多,使用传统的线下学生选课模式已经远远不能满足于用户需求了,而且越来越多的校园也在开通线上选课,所以开发一个高校选课管理系统可以解决校园不利于线下选课的问题,同时校园可以利用网络对球类信息进行管理,设计的网站保证信息的完整安全,这样才能提高工作效率,保证系统安全正常的运行。
1.2设计意义
网上选课管理系统是学校教育管理的一部分,是极其重要的[1]。作为一所学校,在教育学生的核心思想下,使用各种途径来完成教育管理,提高教务管理的效率,方便学生学习,优化教师的教学,从而整体上提高学校的办学效率,采用计算机技术来辅助学校管理成为非常重要的一部分,因此利用计算机技术构建网上选课管理系统,会帮助学校的教务管理。选课管理系统,会帮助学校的教务管理。借助计算机应用的强大优势,利用计算机对选课信息进行管理,有着手工管理所无法比拟的优点,借助计算机检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等优点,能够极大地提高学校选课管理系统管理的效率,成为学校管理科学化、正规化地充分条件,争取与世界接轨的必经道路。从全国来看,利用计算机信息技术管理选课信息以及学生信息是各大高校都在积极开展的工作,也是高校教学管理工作的重要内容。
总体上,高校学分制选课管理系统与传统的选课方式相比更加节约资源,避免不必要的消耗,同时将选课自主权转移给学生自己,使网上选课有效的避免了许多人为因素的影响,使教学更加透明。而且随着在校大学生人数的不断增加,教务选课管理系统中的数据量也不断的上涨。也可以改变以往选课的传统模式,不需充分发挥排课系统对于教务管理的帮助,适应招生考试制度的改革和“走班制”教学模式的实施,致力于实现适用于新的教学模式的排课选课管理系统,找到解决传统排课系统弊端的解决方案,适应国家考试制度的改革。
设计的研究将会补充传统排课系统中不足,为“走班制”新教学模式内的排课问题找到一种合理的解决办法,提高教务管理人员的排课效率和准确性,简化排课方面的手工操作,更好的利用人力资源,合理安排教学资源,解决资源紧张的问题。最大可能的满足教师们的排课期望,充分发挥学生们的自由选择性,激发了老师的授课积极性和学生的学习积极性,拥有一定的研究意义。借助计算机应用的强大优势,利用计算机对选课信息进行管理,有着手工管理所无法比拟的优点,借助计算机检索迅速、查找方便、可靠性高、存储量大,保整性好、寿命长、成本低等优点,能够极大地提高学校学生选课的效率,成为学校管理科学化、正规化地充分条件,争取与世界接轨的必经道路。从全国来看,利用计算机信息技术管理选课信息以及学生信息是各大高校都在积极开展的工作,也是高校教学管理工作的重要内容。
2系统分析
2.1可行性分析
2.1.1技术可行性分析
选课管理系统采用MVC框架、JAVA编程语言和MYSQL数据库进行开发设计,作为计算机专业学生,在学校期间就接触到许多关于编程方面的知识,当然也包括各种编程软件,对他们的了解度也比较系统,所以技术开发上面还是有一定把握[2]。
2.1.2操作可行性分析
程序开发经验不足,在界面设计上面不会设计太复杂,要讲究简单好看,操作上要方便,不能让用户觉得不流畅。用户一旦进入操作界面,界面上就会有相应提示,跟着操作提示就可以找到对应的功能操作模块,对于用户来说免培训就能使用。
2.1.3经济可行性分析
选课管理系统主要是从节约成本出发,然后进行具体的系统设计,在系统的设计过程中由于采用的所有工具以及技术支持全部都是免费的,因此不需要有任何的成本就可以进行该系统的设计。所用到的所有资源都是免费的,只要有网络就可以进行下载使用,不需要支付相应的费用,因此该项目在经济方面是完全可行的。
2.2需求分析
2.2.1功能需求分析
本选课管理系统主要包括四大功能模块,即登录功能模块、管理员功能模块、教师功能模块和学生功能模块[3]。
(1)登录模块用例分析:实现不同身份的用户登录。
(2)管理员功能模块用例分析:系统中的核心用户是系统管理员,管理员登录后,通过管理员菜单来管理后台系统。主要功能有:学生信息管理、教师信息管理、课程信息管理。管理员用例图如图2.1所示。
图 2.1 管理员用例图
(3)教师功能模块用例分析:系统的主要用户之一,主要功能有:学生信息管理、课程信息管理、成绩信息管理、个人信息查看。教师用例图如图2.2所示。
图2.2 教师用例图
(4)学生功能模块用例分析:系统的主要用户之一,主要功能有:课程信息查看,选择课程,成绩查询,个人信息查看。学生用例图如图2.3所示。
图2.3 学生用例图
2.2.2性能需求分析
(1)系统响应效率:页面响应时问应该在3秒以内,最长不能超过4秒。
(2)界面简洁清晰:系统界面要求简单明了,容易操作,符合用户操作习惯。
(3)储存性高:因为选课管理系统中有很多的信息需要存储,因此对于系统的存储量有很大的要求,需要有一个强大的数据库的支持才能确保所有的信息都能安全稳定的进行存储。
(4)易学性:该系统在操作上必须简单好上手,没有很多复杂的操作,只需要简单的进行学习就能操作该系统。
(5)稳定性需求:开发的选课管理系统要求运行稳定,运行过程中无界面不清楚、字体模糊等现象。
3系统设计
3.1系统总体设计
本选课管理系统选择B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式[4]。适合在互联网上进行操作,只要用户能连网,任何时间、任何地点都可以进行系统的操作使用。系统工作原理图如图3.1所示。
图3.1 系统工作原理图
整个系统是由多个功能模块组合而成的,要将所有的功能模块都一一列举出来,然后进行逐个的功能设计,使得每一个模块都有相对应的功能设计,然后进行系统总体的设计。选课管理系统系统结构图如图3.2所示。
图3.2 系统结构图
3.2系统详细设计
详细设计是在完成总体设计之后,将每一个模块再进行精细的分类,并确定其各个的作用,以及如何实现这些作用。
3.2.1用户登录功能模块设计
登录模块主要满足了管理员、教师和学生的权限登录,登录模块顺序图如图3.3所示。
图3.3 登录模块顺序图
3.2.2管理员功能模块设计
管理员可以修改或删除教师信息、学生信息、课程信息等内容。管理员功能模块流程图如图3.4所示。
图3.4 管理员功能模块流程图
3.2.3教师功能模块设计
教师模块主要进行学生信息管理、课程信息管理、成绩信息管理、个人信息查看。教师功能模块流程图如图3.5所示。
图3.5 教师功能模块流程图
3.2.4学生功能模块设计
学生模块主要进行课程信息查看,选择课程,成绩查询,个人信息查看。学生功能模块流程图如图3.6所示。
图3.6 学生功能模块流程图
3.2.5系统流程设计
能根据实际问题的具体情况,结合面向对象的基本理论和基本技巧,正确分析问题,并能设计出解决问题的有效算法与程序。系统总体流程图如图3.7所示。
图3.7 系统总体流程图
3.3数据库设计
3.3.1概念结构设计
在本系统的数据库中共有4个实体:管理员,教师,学生和课程。
管理员实体包括管理员编号、账号、密码、姓名等字段,管理员实体图如图3.8所示。
图3.8 管理员实体图
教师实体包括教师编号、账号、密码、姓名、职称等字段,教师实体图如图3.9所示。
图3.9 教师实体图
学生实体包括学生编号、账号、密码、姓名、学号,专业等字段,学生实体图如图3.10所示。
图3.10 学生实体图
课程实体包括课程编号、课程名、学分,教师编号、选修、课时等字段,课程实体图如图3.11所示。
图3.11 课程实体图
管理员可以管理教师信息、学生信息、课程信息,教师可以管理学生信息、课程信息、成绩信息,学生可以选择课程、查看课程、查看分数。系统E-R图如图3.12所示。
图3.12 系统E-R图
3.3.2逻辑结构设计
根据3.3.1节中可以将系统中的概念模型转换为具体的表(即关系)结构,共分为5个关系,详细信息如下所示:
(1)管理员(管理员编号、账号、密码、姓名);
(2)教师(教师编号、账号、密码、姓名、职称);
(3)学生(学生编号、账号、密码、姓名、学号,专业);
(4)课程(课程编号、课程名、学分、选修、课时);
(5)成绩信息(分数编号、分数)。
3.3.3物理结构设计
管理员信息表:用来存放系统管理员编号、账号、密码和姓名等信息。管理员信息表如表3.1所示。
表3.1 管理员信息表
编号 | 字段 | 说明 | 类型 | 长度 | 约束 | 可否为空 |
1 | id | 管理员编号 | int | 主键 | 否 | |
2 | userName | 账号 | varchar | 20 | 否 | |
3 | password | 密码 | varchar | 20 | 否 | |
4 | trueName | 管理员姓名 | varchar | 20 | 是 |
教师信息表:用来存放教师编号、账号、密码、姓名和职称等信息。教师信息表如表3.2所示。
表3.2 教师信息表
编号 | 字段 | 说明 | 类型 | 长度 | 约束 | 可否为空 |
1 | id | 编号 | int | 主键 | 否 | |
2 | userName | 账号 | varchar | 20 | 否 | |
3 | password | 密码 | varchar | 20 | 否 | |
4 | trueName | 教师姓名 | varchar | 20 | 是 | |
5 | title | 职称 | varchar | 50 | 是 |
学生信息表:用来存放学生编号、账号、密码、姓名、学号和专业等信息。学生信息表如表3.3所示。
表3.3 学生信息表
编号 | 字段 | 说明 | 类型 | 长度 | 约束 | 可否为空 |
1 | id | 编号 | int | 主键 | 否 | |
2 | userName | 账号 | varchar | 20 | 否 | |
3 | password | 密码 | varchar | 20 | 否 | |
4 | trueName | 教师姓名 | varchar | 20 | 外键 | 是 |
5 | stuNo | 学号 | varchar | 20 | 是 | |
6 | professional | 专业 | varchar | 30 | 是 |
课程信息表:用来存放学生编号、账号、密码、姓名、学号和专业等信息。课程信息表如表3.4所示。
表3.4 课程信息表
编号 | 字段 | 说明 | 类型 | 长度 | 约束 | 可否为空 |
1 | id | 编号 | int | 主键 | 否 | |
2 | courseName | 课程名称 | varchar | 40 | 是 | |
3 | credit | 学分 | int | 是 | ||
4 | teacherId | 教师编号 | int | 外键 | 是 | |
5 | isxuan | 是否选修 | int | 是 | ||
6 | coursetime | 课时 | int | 是 |
成绩信息表:用来存放成绩编号、学生编号、课程编号和分数等信息。成绩信息表如表3.5所示。
表3.5 成绩信息表
编号 | 字段 | 说明 | 类型 | 长度 | 约束 | 可否为空 |
1 | id | 编号 | int | 0 | 主键 | 否 |
2 | studentId | 学生编号 | int | 0 | 外键 | 否 |
3 | courseId | 课程编号 | int | 0 | 外键 | 否 |
4 | coursetime | 分数 | int | 0 | 是 |
4系统实现
4.1用户登录功能模块实现
用户可以选择不同身份进行选择登录,登录时需要输入用户名和密码,选择用户类型,然后在数据库中进行比对,确认是正确的,就可以进入主页面[5]。
4.2管理员功能模块实现
管理员可以管理学生信息,教师信息,课程信息,可以对学生信息,教师信息,课程信息等进行修改操作或删除操作[6]。
4.3教师功能模块实现
教师模块可以管理学生信息、课程信息、成绩信息,可以对学生信息、课程信息、成绩信息等进行修改操作或删除操作,可以查看个人信息[7]。
4.4学生功能模块实现
学生模块可以选择课程,查看课程信息、查询成绩信息、查看个人信息,学生可以进行选择课程操作或者退选课程操作[8]。
5系统测试
5.1测试目的
测试的目的在于要对系统的稳定和可操作性能进行对照检查。对于软件的开发利用最终的目的在最后的测试和试用,这是一个不可缺少的重要环节。对于软件开发者而言,在对每一个单独的功能进行编排时候,都要有单独的测试,并通过测试阶段才可以研发多个功能性软件,这样既缩短了研发时间,也可以在的单个的早期测试中发现问题,以免融合后的软件,在查找问题时就很难快速解决或者急速定位问题。
选课管理系统开发设计完成后,需要对其进行系统测试,测试的主要目的就是发现并找出系统中存在的问题[9],并及时的进行解决,确保系统可以正常稳定的运行下去,在进行系统测试的时候,按照指定好的测试步骤进行,并且将测试的结果进行详细的记录,在进行测试时做好选择自动化的测试,这样既可以节省时间而且也能确保测试的准确性,相比于人工测试更加方便,人工测试有很多不确定的因素,在测试过程中可能会出现一系列问题,用机器测试就不会出现类似的问题。最后,及时对测试完成之后的文档进行保存,方便后续测试时使用。
5.2测试方法
黑盒测试和白盒测试是软件测试中的两种常见方法。黑盒测试是指在不考虑内部代码或结构的情况下,通过对软件系统的输入和输出进行测试来评估软件的功能和性能。测试人员只需要通过输入数据和观察输出结果来判断软件是否符合预期的行为。白盒测试是指测试人员需要了解软件的内部结构、代码和算法,并通过检查程序的内部逻辑来评估软件的质量和性能。白盒测试通常需要测试人员具有编程和软件开发方面的知识。
黑盒测试和白盒测试通常都是软件测试中的重要组成部分,它们可以相互补充来评估软件的整体质量。黑盒测试可以帮助测试人员评估软件系统的实际用户体验和功能,而白盒测试可以帮助测试人员评估软件代码的可靠性和安全性。本系统采用黑盒测试的方法。
5.3测试内容
在进行选课管理系统的黑盒测试时,主要目的是使系统具有稳定性,使用户使用方便,测试人员需要测试以下内容:
用户登录功能是否正常;管理员管理教师、学生、课程等功能是否正常;教师管理学生、课程、成绩等功能是否正常;学生选课功能是否正常。
5.4测试用例
系统的几个主要的功能模块被用来作为选课管理系统的测试,对各个功能模块进行完善,提高系统的稳定性[10]。
(1)用户登录功能模块测试用例主要测试不同用户登录系统的功能是否正常,查看结果是否符合预期。用户登录功能模块测试用例如表5.1所示。
表5.1 用户登录功能模块测试用例
用例编号 | 用例标题 | 前置条件 | 操作步骤 | 测试数据 | 预期结果 | 测试状态 |
1 | 使用正确账号密码进行登录 | 无 | 1.进入登录页面; 2.用户名输入账号“admin” 3.密码栏输入密码“123” 4.用户类型选择“管理员” 5.点击登录按钮 | 账号:admin 密码:123 用户类型:管理员 | 登录成功,进入系统主页 | 通过 |
2 | 使用正确账号密码进行登录 | 无 | 1.进入登录页面; 2.用户名输入账号“a” 3.密码栏输入密码“123” 4.用户类型选择“学生” 5.点击登录按钮 | 账号:a 密码:123 用户类型:学生 | 登录成功,进入系统主页 | 通过 |
3 | 使用正确账号密码进行登录 | 无 | 1.进入登录页面; 2.用户名输入账号“z” 3.密码栏输入密码“123” 4.用户类型选择“教师” 5.点击登录按钮 | 账号:z 密码:123 用户类型:教师 | 登录成功,进入系统主页 | 通过 |
4 | 使用错误账号密码进行登录 | 无 | 1.进入登录页面; 2.用户名输入账号“admin” 3.密码栏输入密码“12345” 4.用户类型选择“管理员” 5.点击登录按钮 | 账号:admin 密码:12345 用户类型:管理员 | 登录失败,弹出“用户名或密码错误”的提示框 | 通过 |
(2)管理员功能模块测试用例主要测试管理员管理学生信息,教师信息和课程信息等操作功能是否正常,查看结果是否符合预期。管理员功能模块测试用例如表5.2所示。
表5.2 管理员功能模块测试用例
用例编号 | 用例标题 | 前置条件 | 操作步骤 | 测试数据 | 预期结果 | 测试状态 |
1 | 学生信息管理 | 登录到主页 | 1.点击修改按钮 2.点击保存按钮 | 无 | 修改成功 | 通过 |
2 | 教师信息管理 | 登录到主页 | 1.点击删除按钮 2.点击确定按钮 | 无 | 删除成功 | 通过 |
3 | 课程信息管理 | 登录到主页 | 1.点击修改按钮 2.点击重置按钮 3.点击保存按钮 | 无 | 保存失败 | 通过 |
(3)教师功能模块测试用例主要测试教师管理学生信息,课程信息和成绩信息等操作功能是否正常,查看结果是否符合预期。教师功能模块测试用例如表5.3所示。
表5.3 教师功能模块测试用例
用例编号 | 用例标题 | 前置条件 | 操作步骤 | 测试数据 | 预期结果 | 测试状态 |
1 | 学生信息管理 | 登录到主页 | 1.点击修改按钮 2.点击保存按钮 | 无 | 修改成功 | 通过 |
2 | 课程信息管理 | 登录到主页 | 1.点击删除按钮 2.点击确定按钮 | 无 | 删除成功 | 通过 |
3 | 成绩录入 | 登录到主页 | 1.点击成绩录入 2.输入成绩20 3.点击录入成绩按钮 4.点击确定按钮 | 无 | 录入成功 | 通过 |
(4)学生功能模块测试用例主要测试学生选课功能是否正常,查看结果是否符合预期。学生功能模块测试用例如表5.4所示。
表5.4 学生功能模块测试用例
用例编号 | 用例标题 | 前置条件 | 操作步骤 | 测试数据 | 预期结果 | 测试状态 |
1 | 选择课程 | 登录到主页 | 1.点击选择课程按钮 2.选择Python课程 3.点击选择课程按钮 | 无 | 选择成功 | 通过 |
2 | 退选课程 | 登录到主页 | 1.点击选择课程按钮 2.选择需要退选的Python课程 3.点击退选课程课程按钮 | 无 | 退选成功 | 通过 |
6设计总结和心得体会
本系统通过对MVC模式和MYSQL数据库的使用,从硬件和软件两反面说明了选课管理系统的设计与实现的可行性,本系统结论及研究成果如下:实现了MVC与MYSQL相结合构建的选课管理系统,通过本次选课管理系统的设计与实现,小组成员感触到学习一门新技术,最重要的是实践,只有多动手才能尽快掌握它,一个系统的开发,经验是最重要的,经验不足,就难免会有许多考虑不周之处。要想吸引更多的用户,系统的界面必须要美观、有特色、友好,功能要健全。
由于在此之前对于MVC知识并没有深层次了解,所以从一开始就碰到许多困难,例如一开始的页面显示不规范、数据库连接有问题、无法实现参数的传递等等,通过不断的查阅相关的资料,以及向老师同学请教,最后出现的所有的问题都得到了解决,通过这次的系统开发,学到了很多的知识,也明白了我们在哪些方面有不足的地方,尤其是学会如何从大量的信息中筛选出所需有用的信息,同时更加深刻的体会到了,虽然书本上的大部分知识都是有价值,正确的,但实际上每个人编程的思路和对数据处理的方法、思想都是不同的,这就要求我们一定要通过实践才能找到解决问题的方案。在此次课程设计中,我们不断的提高了自己,也得到了宝贵的经验,相信这些对我们以后的发展都会有很大帮助。
通过这次选课管理系统的开发,让我们学到了更多的知识,同时通过这次系统的设计也让我们明白了自己在哪方面有不足,以后加以学习争取可以开发住更多有用的适用的系统软件,本次系统的设计提高了我们的编程水平,为了我们今后系统的开发打下了结实的基础。
参考文献
[1]刘伟冉.基于Java的网上选课系统设计和实现[J].黑龙江科技信息, 2020, 000(027):53-61.
[2]钮永莉,邹长忠.基于MVC框架的高校学生选课系统的设计与实现[J]. 2021(2018-3):57-59.
[3]李凌涛.基于JSP的学生信息管理系统设计与实现[J].信息与电脑, 2021(018):033.
[4]王开柱,宁洪伟,李锐.B/S模式的网上选课系统的设计与开发[J]. 2021.
[5]韩洪勇,朱珍珍,姚连达.基于JSP和Servlet的学生信息管理系统[J].科技风, 2020(19).
[6]刘斌,张雄,胡明浩.实验室选课系统web后端设计[J]. 2022(17).
[7]许家伟.基于JSP的在线考试系统的设计与实现[J].现代信息科技, 2023, 7(8):4.
[8]李凌涛.基于JSP的学生信息管理系统设计与实现[J].信息与电脑, 2021(018):033.
[9]刘承良.教学管理系统平台选课管理功能的研究[J].电脑知识与技术, 2022(21).
[10]肖建芳.多校区高校公共选修课选课管理系统的研究与设计[J].南方职业教育学刊.2020.10(1).