博主介绍:java高级开发,从事互联网行业六年,熟悉各种主流语言,精通java、python、爬虫、web开发,已经做了六年的程序开发,开发过上千套大学生实战程序,可以定制、也可成品项目,博客中有上百套程序可供参考,欢迎共同交流学习。
🍅文末点击卡片获取联系🍅
技术:SpringBoot+mysql+vue+tomcat
目录
1 系统介绍
在如今社会上,关于信息上面的处理,没有任何一个企业或者个人会忽视,如何让信息急速传递,并且归档储存查询,采用之前的纸张记录模式已经不符合当前使用要求了。所以,对学生毕业设计信息管理的提升,也为了对学生毕业设计信息进行更好的维护,毕业设计系统的出现就变得水到渠成不可缺少。通过对毕业设计系统的开发,不仅仅可以学以致用,让学到的知识变成成果出现,也强化了知识记忆,扩大了知识储备,是提升自我的一种很好的方法。通过具体的开发,对整个软件开发的过程熟练掌握,不论是前期的设计,还是后续的编码测试,都有了很深刻的认知。
毕业设计系统通过MySQL数据库与Spring Boot框架进行开发,毕业设计系统能够实现教师管理,公告类型管理,班级管理,课题信息管理,任务类型管理,选题申请管理,学院管理,课题任务管理,最终成绩管理,公告信息管理,学生管理等功能。
通过毕业设计系统对相关信息的处理,让信息处理变的更加的系统,更加的规范,这是一个必然的结果。已经处理好的信息,不管是用来查找,还是分析,在效率上都会成倍的提高,让计算机变得更加符合生产需要,变成人们不可缺少的一种信息处理工具,实现了绿色办公,节省社会资源,为环境保护也做了力所能及的贡献。
2 系统背景
2.1 选题背景
目前整个社会发展的速度,严重依赖于互联网,如果没有了互联网的存在,市场可能会一蹶不振,严重影响经济的发展水平,影响人们的生活质量。计算机的发展,不管是从硬件还是软件,都有很多技术储备,每年都有很多的技术和软件产生,纵观各个领域,无一不用互联网软件,办公用的还是电脑居多,但是人手一台智能设备已经变成了现在人们的生活日常,哪怕的普通的老百姓都成了上知天文下知地理的所在,这些都依赖于互联网技术。互联网技术在信息的传播方面是巨大的,而信息的处理就变成了各种产业管理者和维护者的重任。人们已经习惯了互联网的存在,所以经常操作一些互联网产品变成了日常,所以开发一个毕业设计系统,让人们使用是没有一点问题的,并且在这个过程中不仅能够规范学生毕业设计信息管理的使用流程还有信息处理流程,也能让整个信息的传播处理,都存在一种可控制的范围,最重要的是,计算机在学生毕业设计信息管理方面可以给管理者提供更好的帮助。
2.2 选题意义
当开发软件变成了一个潮流之后,会发现不管任何行业都能开发适合自己的软件,不管是内部员工管理,还是财务管理,甚至业务管理都可以数据化,并且可以对这些数据集中处理,进而根据数据处理结果就自然而然的提高了管理水平,最重要的是,开发一个软件投入使用,开发过程其实就是梳理行业痛点的过程,就是让软件来弥补行业的管理漏洞,不断的优化事物的处理流程。毕业设计系统就是一款专门开发的软件,通过Web技术,让使用者可以在任何一台智能设备上面通过浏览器进行操作使用,对数据的处理不在局限于地域距离,只要软件开发到位,使用起来方便,达到预期目的,会发现有软件和没有软件的区别是很大的,有了这款软件之后,会发现数据的存储安全方面,比起之前的满屋寻找记录的优势是多么的巨大。
3 系统功能结构
4 数据库结构
本系统数据在数据库中都是通过各种二维表进行记录保存的,在数据库中设计这样的二维表也是比较重要的内容,因为它影响着数据的存储效率。在设计二维表也就是关系模型之前,一些有关二维表方面的常用概念需要进行充分了解。
关系:一张具体的数据表即表示关系,关系的名称与数据表的名称保持一致;
元组:数据表中,每行显示的数据即代表元组;
属性:数据表中,每列表示的数据即代表属性;
关键字:数据表中,为了与其他数据表进行区分,则需要在每张表中进行主键的设置;
通过上节内容可以知晓数据库中的各个实体,并通过一定方式把这些实体表示的内容进行数据表的转换,通常来说,每个实体都会对应一张具体的数据表,在本系统指定的数据库中创建命名好的数据库,才可以对数据表进行创建与设计。毕业设计系统数据表设计结果展示如下:
表4-1 最终成绩表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
jiaoshi_id | 教师 | int(11) | 是 |
yonghu_id | 学生 | int(11) | 是 |
keti_id | 课题 | int(11) | 是 |
chengji_number | 成绩 | int(11) | 是 |
create_time | 创建时间 | timestamp | 是 |
表4-2 教师表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
username | 账户 | varchar(200) | 是 |
password | 密码 | varchar(200) | 是 |
jiaoshi_name | 教师姓名 | varchar(200) | 是 |
sex_types | 性别 | int(11) | 是 |
jiaoshi_phone | 手机号 | varchar(200) | 是 |
jiaoshi_id_number | 身份证号 | varchar(200) | 是 |
jiaoshi_email | 电子邮箱 | varchar(200) | 是 |
create_time | 创建时间 | timestamp | 是 |
表4-3 课题信息表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
keti_name | 课题名称 | varchar(200) | 是 |
keti_types | 课题类型 | int(11) | 是 |
keti_text | 课题内容 | text | 是 |
jiaoshi_id | 教师 | int(11) | 是 |
keti_yesno_types | 审核状态 | int(11) | 是 |
keti_yesno_text | 审核结果 | text | 是 |
create_time | 创建时间 | timestamp | 是 |
表4-4 课题任务表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
jiaoshi_id | 教师 | int(11) | 是 |
xuantishenqing_id | 选题申请 | int(11) | 是 |
ketirenwu_name | 课题任务 | varchar(200) | 是 |
ketirenwu_types | 任务类型 | int(11) | 是 |
ketirenwu_file | 参考文献 | varchar(200) | 是 |
ketirenwu_huida_file | 阶段文档 | varchar(200) | 是 |
ketirenwu_yesno_types | 审核结果 | int(11) | 是 |
ketirenwu_yesno_text | 教师打分 | text | 是 |
insert_time | 添加时间 | timestamp | 是 |
create_time | 创建时间 | timestamp | 是 |
表4-5 公告信息表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
news_name | 公告标题 | varchar(200) | 是 |
news_types | 公告类型 | int(11) | 是 |
news_photo | 公告图片 | varchar(200) | 是 |
insert_time | 添加时间 | timestamp | 是 |
news_content | 公告详情 | text | 是 |
create_time | 创建时间 | timestamp | 是 |
表4-6 管理员表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | bigint(20) | 否 |
username | 用户名 | varchar(100) | 否 |
password | 密码 | varchar(100) | 否 |
role | 角色 | varchar(100) | 是 |
addtime | 新增时间 | timestamp | 否 |
表4-7 选题申请表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
xuantishenqing_uuid_number | 课题编号 | varchar(200) | 是 |
yonghu_id | 学生 | int(11) | 是 |
keti_id | 课题 | int(11) | 是 |
xuantishenqing_yesno_types | 申请状态 | int(11) | 是 |
xuantishenqing_yesno_text | 申请结果 | text | 是 |
create_time | 创建时间 | timestamp | 是 |
表4-8 学生表
字段 | 注释 | 类型 | 空 |
id (主键) | 主键 | int(11) | 否 |
yonghu_uuid_number | 学号 | varchar(255) | 是 |
username | 账户 | varchar(200) | 是 |
password | 密码 | varchar(200) | 是 |
yonghu_name | 学生姓名 | varchar(200) | 是 |
yonghu_address | 家庭地址 | varchar(200) | 是 |
yonghu_phone | 手机号 | varchar(200) | 是 |
yonghu_id_number | 身份证号 | varchar(200) | 是 |
yonghu_email | 电子邮箱 | varchar(200) | 是 |
sex_types | 性别 | int(11) | 是 |
xueyuan_types | 学院 | int(11) | 是 |
banji_types | 班级 | int(11) | 是 |
yonghu_delete | 假删 | int(11) | 是 |
create_time | 创建时间 | timestamp | 是 |
5 系统功能
这里主要是对系统设计实现进行描述,通过系统的设计和数据库的设计,通过编码后变成了可以进行操作的界面,让一切想法变成了结果,通过文字和具体程序操作界面的截图之间的配合,可以把功能更直观的描述起来。
5.1管理员功能实现
5.1.1 课题信息管理
管理员进入如图5-1所示的课题信息管理界面之后,管理员点击信息显示栏中最右侧的修改,删除按钮可依次完成课题信息的修改,删除等操作,管理员也能在当前界面查询课题信息,添加课题信息等。
图5-1 课题信息管理界面
5.1.2 成绩统计报表
管理员进入如图5-2所示的成绩统计报表界面之后,管理员根据各个年份来统计各个学生的成绩信息,同时,管理员可以点击成绩统计报表界面右上角的各种小图标,可以把统计图转化为折线图,柱形图等图形,管理员也能下载统计报表。
图5-2 成绩统计报表界面
5.1.3 教师管理
管理员进入如图5-3所示的教师管理界面之后,管理员点击信息显示栏中最右侧的修改,删除按钮可依次完成教师信息的修改,删除等操作。
图5-3 教师管理界面
5.2 教师功能实现
5.2.1 选题申请管理
教师进入如图5-4所示的选题申请管理界面之后,教师负责审核学生选题信息,也可以拒绝学生选题信息,当学生完成课题任务之后,教师需要在选题申请管理界面发布学生的最终成绩。
图5-4 选题申请管理界面
5.2.2 课题任务管理
教师进入如图5-5所示的课题任务管理界面之后,教师负责发布课题任务,学生就需要完成任务并上传文档,教师就负责查看学生的任务完成情况信息,然后审核学生完成的课题任务,最后对学生完成的课题任务进行打分。
图5-5 课题任务管理界面
5.2.3 最终成绩管理
教师进入如图5-6所示的最终成绩管理界面之后,教师查看学生最终成绩信息,可以对学生的最终成绩信息进行查询或删除。
图5-6 最终成绩管理界面
5.3 学生功能实现
5.3.1 课题信息管理
学生进入如图5-7所示的课题信息管理界面之后,学生可以查看课题信息,如果学生没有选择课题,则可以对能够申请的课题进行申请。每个学生只能选择一个课题,已经成功选择课题的学生就不能申请课题了。
图5-7 课题信息管理界面
5.3.2 课题任务管理
学生进入如图5-8所示的课题任务管理界面之后,学生可以查看课题任务,然后完成课题任务并上传阶段性文档。
图5-8 课题任务管理界面
5.3.3 最终成绩查看
学生进入如图5-9所示的最终成绩查看界面之后,学生查看课题名称,查看成绩信息,可以通过课题名称,教师姓名,课题类型以及学生姓名来查询最终成绩。
图5-9 最终成绩查看界面
6 系统测试
在整个系统完成之后,就需要进入系统测试环节。在系统测试环节的主要任务就是用不同的测试方法,使用不同的测试用例,来引出系统出现的问题,只要测试出问题,才可以让程序员有目的性的对问题进行解决,最终让问题越来越少,才能让用户验收程序。
6.1系统测试的特点
系统测试,是有一定的特点,并且根据这些特定也有相关的描述信息,下面就是对这些测试的特点来进行阐述:
第一点:完整的测试,就是在用户的角度上,通过不同的权限,来测试不同的模块,最终判断程序的优劣性。
第二点:测试主要从程序的设计架构方面来进行测试,也需要从业务操作流程方面测试。
第三点:测试不是想一出是一出,要有严谨的测试步骤,测试目的,只有科学的测试方法才能产生科学的测试结果,能很好的对出错几率进行降低。
总的来说,系统测试不仅仅是让功能符合,还要在突发情况下有相应的配套表现,只要考虑的多,做的多,系统运行过程中才能更加平稳。
6.2 系统功能测试
本章节主要是测试部分,选用一些常规操作进行测试,看测试效果是否达到程序设计预期。
6.2.1 学生登录测试
一般都要进行登录测试,登录测试是所有功能里面最基础也是重要的部分,只有合法的登录才可以进行对应权限的操作,不合法的登录肯定是不让学生进行下一步操作的。具体步骤参考下图。
表6-1 学生登录测试表
测试功能 | 操作流程 | 测试的数据 | 结果 | 是否符合要求 |
学生登录 | 学生填写账号,填写密码,数据填写完成之后点击登录按钮 | 账号和密码保证一个出错一个正确 | 不能登录 | 是 |
账号和密码都正确 | 登录成功 | 是 |
6.2.2 课题查询测试
查询功能是一个常用的功能,通过条件查询可以获得自己所需的内容,条件输入也需要输入正确的已经存在的条件才可以有获取结果,对不同的获取条件返回不同的结果集。
表6-2 课题查询功能测试表
测试功能 | 操作流程 | 测试的数据 | 结果 | 是否符合要求 |
课题查询功能 | 在查询界面的数据输入框中登记关键词然后搜索 | 课题名称有误或为空 | 不能查询 | 是 |
课题名称信息正确 | 查询成功 | 是 |
6.3 系统测试结果
经过整体性测试,毕业设计系统测试无误,符合设计预期,同时也符合操作性设定以及易维护性设定,并且在数据的安全性保障上也有很好的体现。毕业设计系统已经可以使用。
7 总结
开发与实现毕业设计系统已经花费了半年时间,在这期间,作为学生的我收获了很多知识。因为独自开发毕业设计系统,仅仅依靠在校期间学到的软件开发方面的知识显然是不行的,还需要通过其他的学习渠道进行程序开发类知识的拓展,比如去图书馆借阅书籍,比如数据库设计的书籍,Java编程语言方面的书籍,软件工程方面的书籍等,还可以通过上网查看编程方面的博客,这些博客呈现的知识是各个软件开发者在工作生涯中总结的编程知识,都是编程知识中的精华,可以帮助学习开发的人员在编程中避免很多开发误区,还可以节省开发的时间。另外,也可以通过数字图书馆下载相似系统方面的参考文献进行程序开发类的知识学习。总而言之,当一个人完成毕业设计系统的设计与开发后,不仅自身的专业知识水平得到了提升,还提高了自己将理论转为实际操作的能力,以及面对问题通过知识学习进而解决问题的能力。
毕业设计系统的设计实现,让我有以下几点体会:
(1)在确定要研究的系统之后,对于系统的研究内容也就是系统的功能的分析与设计是比较重要的部分,这方面主要是站在使用者的角度进行考虑,可以参考相似系统的功能进行设计,也能通过对目标用户群进行问卷调查等方式进行功能需求的确定,只有确定了系统需要的功能之后,才可以开展系统的配套数据库的设计,系统的编码等后续工作。
(2)对于系统的代码编写是一项比较复杂的工作,这也是系统的后端部分,用户操作系统看到的只是代码运行之后呈现出来的操作界面前端部分,编写的代码与运行实现的界面是相对应的,所以编写代码时,需要一边编写,一边查看代码的运行效果,这里就需要编写代码的人员注意一些编写细节,比如规范命名程序变量,注释关键代码等,这些编码习惯会帮助开发者在该系统中进行功能拓展或功能维护中提高效率。
(3)系统的功能模块在编码实现之后,也需要单独进行测试,发现问题之后能够及时进行解决,当系统的所有的功能都实现之后,再次对该系统整体进行测试,方便开发者在检验系统功能的基础上,进行系统问题的修复与完善。
由于时间比较短暂,加上开发期间我都是一边学习理论,一边进行实操,对于开发的毕业设计系统除了具备能够正常运行,能够提供信息管理功能,以及能够保证系统运行期间产生的数据的安全性等特点外,本系统也具备一些缺点,首先表现的就是当使用者使用系统时,在对数据进行查询或者更新时,系统响应时间比较长,增加了用户的等待时间,让用户的使用体验不够理想,其次,毕业设计系统的功能操作的流程设计上也存在一些不合理之处,最后,毕业设计系统对于权限划分,功能模块细分上也存在一些漏洞。
总的说来,在今后的时间里面,自己除了要加强理论知识的学习外,还要继续投入时间和精力去对毕业设计系统进行修复,让本软件拥有更强的性能,比如安全性以及可靠性。