springboot大学校园国家资格考试信息网站-计算机毕业设计源码25311

摘要

随着社会的发展和教育水平的提高,国家资格考试对大学生来说具有重要的意义。为了方便大学生参与国家资格考试,构建一个大学校园国家资格考试信息网站具有重要的实际应用价值。

该网站将利用SpringBoot框架进行快速开发,结合Java编程语言和MySQL数据库,实现系统的设计与开发。SpringBoot具有简化配置和快速启动的特性,能够提高开发效率和项目的可维护性。Java编程语言具有强大的功能和丰富的资源库,能够满足网站开发的需求。MySQL数据库管理系统可以提供稳定的数据存储和高效的查询操作,确保网站的数据安全和性能。

通过该网站,大学生用户可以方便地获取最新的考试通知、报名时间、考试科目和内容等信息,参与模拟考试、制定学习计划、记录学习笔记,并在交流论坛上分享经验、提问问题。管理员则负责系统用户管理、考证资料管理、资源分享管理、学生提问管理等任务,以确保网站的正常运行和用户的良好体验。

综上所述,大学校园国家资格考试信息网站的开发将提供便捷的信息获取渠道和高效的学习交流平台,促进学生的学习效果和竞争力的提升,推动国家资格考试的现代化建设和教育创新。

关键词:大学校园国家资格考试信息网站;Java语言;SpringBoot框架;Mysql数据库

Abstract

With the development of society and the improvement of education level, the national qualification examination is of great significance to college students. In order to facilitate the participation of college students in the national qualification examination, building a university campus national qualification examination information website has important practical application value.

The website will utilize the SpringBoot framework for rapid development, combining Java programming language and MySQL database to achieve system design and development. SpringBoot features simplified configuration and fast startup, which can improve development efficiency and project maintainability. The Java programming language has powerful features and a rich resource library, which can meet the needs of website development. The MySQL database management system can provide stable data storage and efficient query operations, ensuring the data security and performance of the website.

Through this website, college students can easily access the latest exam notifications, registration times, exam subjects and content, participate in mock exams, develop study plans, take study notes, and share experiences and ask questions on exchange forums. The administrator is responsible for tasks such as system user management, examination data management, resource sharing management, and student question management to ensure the normal operation of the website and a good user experience.

In summary, the development of the national qualification examination information website on university campuses will provide convenient channels for information acquisition and an efficient learning and communication platform, promote the improvement of students' learning effectiveness and competitiveness, and promote the modernization construction and educational innovation of the national qualification examination.

Keywords: National Qualification Examination Information Website for University Campus; Java language; SpringBoot framework; MySQL database

目 录

第1章 引 言

1.1 选题背景及意义

1.2 国内外研究概况

1.3 主要研究内容

第2章 系统需求分析

2.1 系统可行性分析

2.1.1 技术可行性分析

2.1.2 经济可行性分析

2.1.3 操作可行性分析

2.2 系统需求分析

2.2.1 功能需求分析

2.2.2 非功能性需求分析

2.3 系统用例分析

第3章 系统设计

3.1 系统功能模块设计

3.2 数据库设计

3.2.1 数据库概念结构设计

3.2.2 数据库逻辑结构设计

4章 关键模块的设计与实现

4.1 登录模块

4.2 注册模块

4.3 密码修改模块

4.4 用户管理模块

4.5 模拟考试模块

4.6 考试管理模块

4.7 考证资料管理模块

4.8 资源分享管理模块

4.9 学习计划模块

第5章 系统测试

5.1 测试的目的

5.2 系统部分测试

5.3 系统测试结果

第6章 结语

参考文献

结束语

第1章 引 言

    1. 选题背景及意义

随着社会的发展和教育水平的提高,越来越多的大学生积极参与各类国家资格考试,以提升自身竞争力和就业机会。在过去,学生们获取考试相关信息主要依赖于传统的纸质材料、宣传册等途径,这种方式存在信息传递滞后、不及时等问题。同时,学生们往往需要花费大量时间和精力去查找各类考试资料、学习计划和交流经验,缺乏一个集中管理和交流的平台。因此,开发一个专门针对大学生的国家资格考试信息网站成为必要。

该网站将整合各类考试相关信息,包括考试通知、报名时间、考试科目和考试内容等,以便学生能够及时了解考试动态和准备工作。同时,网站还提供模拟考试功能,帮助学生进行考前复习和评估。此外,学生可以通过网站的交流论坛分享学习心得、提问问题,并与其他学生进行交流和互助。该网站的开发旨在提供便捷、高效的学习和交流平台,为大学生参与国家资格考试提供全方位的支持。通过将传统的纸质资料和线下交流转移到在线平台上,可以提高学生们获取信息的效率和便利性,促进学生之间的合作学习和知识分享。同时,通过对学生用户和管理员的功能需求进行分析和设计,可打造一个符合实际需求的系统,推动国家资格考试信息化建设和教育创新。

    1. 国内外研究概况

在国内,随着大学生参与国家资格考试的增多,相关研究也逐渐兴起。研究者致力于开发和优化网上考试平台,包括考试系统的设计、试题库的建设和成绩管理等方面。这些平台提供了在线模拟考试、自动阅卷和成绩分析等功能,为学生提供更加便捷和高效的考试体验。研究者关注资格考试信息化管理的问题,包括考试通知发布、报名流程优化、考试结果查询和证书颁发等方面。他们探索如何借助信息技术来提高考试管理的效率和准确性,提供更好的服务和支持。一些研究关注学习资源的共享和交流,旨在为学生提供更多的学习资料和经验分享。通过建立在线学习平台或论坛,学生可以互相学习、交流,并分享备考经验和复习方法。随着国家资格考试的重要性日益凸显,各种学习辅导和培训机构也涌现出来。相关研究关注这些机构的教学方法、课程设置和学习效果评估等方面,以提供指导和参考。一些研究探索教育技术在国家资格考试中的应用,如虚拟实验室、在线教学和智能化评估等。他们致力于利用先进的技术手段提升教学效果和学习体验,为学生提供更加个性化和高质量的教育服务。

在国外,国家资格考试的研究和应用也得到了广泛关注。许多国家对国家资格考试进行了评估和改革,旨在提高考试的有效性和公平性。这些研究关注考试内容、题型设计、评分标准等方面,并探索使用新的评估方法和技术来提高考试的质量和准确性。随着网络技术的发展,国外研究者开始探索网上考试和远程监控的应用。他们研究如何建立安全可靠的在线考试平台,以及如何利用监控技术和人工智能来确保考试的公正性和防止作弊行为。国外的研究关注教学和备考辅导的方法和策略,包括针对国家资格考试的课程设置、学习资源的开发和教学指导的创新。他们致力于提供更有效的学习支持和备考辅导,以提升学生的考试成绩和竞争力。国外的研究者注重国家资格考试领域的国际合作与交流,包括比较不同国家的考试制度、政策和实践经验,以及探讨国际间的认证和互认机制。他们致力于促进国际间的合作与交流,为学生提供更广泛的发展机会和就业选择。国外研究关注技术在国家资格考试中的应用,如虚拟现实、自动化评估和个性化学习等方面。他们探索如何借助先进的技术手段来提升考试效果和学习体验,并开展相关的实证研究和案例分析。

综上所述,国外研究主要关注国家资格考试的评估与改革、网上考试和远程监控、教学与备考辅导、国际合作与交流以及技术应用与创新等方面。这些研究为国家资格考试的现代化建设和提升学生学习效果提供了有益的经验和启示。未来的研究可以进一步加强国际合作与交流,借鉴国外的经验和成果,推动国内国家资格考试领域的创新和发展。

    1. 主要研究内容

(1)系统设计与开发:研究大学校园国家资格考试信息网站的设计和开发,包括系统架构、功能模块、用户界面等。着重考虑系统的易用性、可扩展性和安全性,以满足用户需求和提供良好的使用体验。

(2)数据管理:研究大学校园国家资格考试信息网站中的数据管理和分析方法。这包括如何收集、存储和处理相关的数据。

(3)用户行为与参与度:研究用户在大学校园国家资格考试信息网站中的行为习惯和参与度。通过对用户操作行为的分析和用户反馈的收集,了解用户对系统的使用偏好、交互模式和功能需求,以便改进系统设计和提供更好的服务。

(4)用户体验与服务质量:研究大学校园国家资格考试信息网站的用户体验和服务质量。通过用户调研和反馈收集,评估系统的易用性、响应速度、信息准确性等方面,以改进用户界面设计和功能优化,提供更好的用户体验和服务质量。

第2章 系统需求分析

大学校园国家资格考试信息网站存储所使用的是Mysql数据库以及开发中所使用的是IDEA、Tomcat这些开发工具的使用,能够给我们的编写工作带来许多的便利。系统使用SpringBoot框架进行开发,使系统的可扩展性和维护性更佳,减少Java配置代码,简化编程代码,目前SpringBoot框架也是很多用户选择的框架之一。

      1. 经济可行性分析

在开发大学校园国家资格考试信息网站中所使用的开发软件像IDEA开发工具、Tomcat服务器、MySQL数据库、Photoshop图片处理软件等,这些都是开源免费的,这些环境在学校都进行了系统的学习,自己能够独立操作完成,不需要额外花费,而且系统的开发工具从网上都可以直接下载,因此在经济方面是可行的。

      1. 操作可行性分析

此次项目设计的时候我参考了很多类似系统的成功案例,对它们的操作界面以及功能都进行了系统的分析,将众多案例结合在一起,突出以人为本简化操作,所以具有基本计算机知识的人都会操作本项目。因此操作可行性也没有问题。

    1. 系统需求分析
      1. 功能需求分析

通过大学校园国家资格考试信息网站,学生用户可以通过该网站获取最新的考试通知、报名时间、考试科目和内容等信息,参与模拟考试、制定学习计划、记录学习笔记,并在交流论坛上分享经验、提问问题。管理员则负责系统用户管理、考证资料管理、资源分享管理、学生提问管理等。通过构建一个集中管理和交流的平台,该网站为学生提供了便捷的信息获取、高效的学习和交流环境,有助于提升学生的学习效果、竞争力和就业机会,并推动国家资格考试的现代化建设和教育创新。具体如下:

学生用户端:

  1. 首页:展示网站的基本信息、最新动态和热门内容,提供快速导航入口。
  2. 交流论坛:学生用户可以在论坛上进行知识交流、问题讨论和经验分享,包括发帖、回帖、点赞和关注等功能。
  3. 模拟考试:学生可以参加模拟考试,选择不同科目进行考试,获取考试成绩和解析,并可以查看历史考试记录。
  4. 考试管理:学生可以查看个人考试记录、成绩和错题记录等,并进行试卷重做、错题复习和收藏试题等操作。
  5. 通知公告:学生可以获取到学校或系统发布的重要通知和公告,包括考试时间、报名信息和学习资源更新等。
  6. 新闻:学生可以浏览校园内外的新闻资讯,了解行业动态和学术进展,支持按分类、日期和关键词搜索。
  7. 考证资料:学生可以查询和下载与国家资格考试相关的学习资料和考试指南,包括电子书、视频教程和学习计划。
  8. 证书类型:学生可以了解各种国家资格证书的类型和要求,包括考试科目、报名时间和证书颁发机构等信息。
  9. 资源分享:学生可以上传分享、和下载其他用户分享的学习资料、心得体会等,与其他学生互相学习和交流,支持评论和点赞功能。
  10. 个人中心:学生可以管理个人信息,包括修改密码、查看学习计划、学习笔记和收藏的内容,还可编辑个人简介和头像等。
  11. 学生提问:学生可以向老师或其他学生提出问题,并获取答案和解决方案,支持问题分类和搜索功能。
  12. 学习计划:学生可以制定学习计划,包括设定学习目标、安排学习时间表和记录学习进度,可设置提醒功能。
  13. 学习笔记:学生可以记录学习过程中的重点知识、思考和心得体会,支持添加图片、标签和分享功能。
  14. 论坛列表:展示论坛板块的分类列表,方便学生选择感兴趣的话题进行讨论和交流。
  15. 收藏:学生可以收藏自己喜欢的帖子、资源和笔记,方便后续查看和回顾。

管理员端:

  1. 后台首页:展示系统的统计信息,如考证资料数量、资源分享数量和用户统计等。
  2. 系统用户:管理员可以管理系统的用户,包括学生用户和其他管理员,包括注册、审核、修改权限和删除等操作。
  3. 考证资料管理:管理员可以管理考证资料的上传、修改、删除和审核等操作,包括添加资料详情、视频教程、封面图片和相关标签。
  4. 证书类型管理:管理员可以管理不同证书类型的信息和要求,包括添加、编辑和删除不同证书的名称、科目和报名条件等。
  5. 资源分享管理:管理员可以审核、发布、删除学生上传的学习资料和心得分享,包括资源分类、内容审核和推荐功能。
  6. 学生提问管理:管理员可以审核、回答和管理学生的提问,包括问题分类、回答置顶和问题关闭等操作。
  7. 学习计划管理:管理员可以管理学生的学习计划,包括添加、编辑和删除学习计划,并可查看学生的学习进度和计划详情。
  8. 学习笔记管理:管理员可以管理学生的学习笔记,包括查看、编辑和删除学习笔记,支持关键词搜索和按日期筛选功能。
  9. 轮播图管理:管理员可以管理网站首页的轮播图内容和顺序,包括添加、编辑和删除轮播图图片和相关链接。
  10. 通知公告管理:管理员可以发布、编辑和删除系统的通知公告,包括添加发布时间、设置置顶和设定公告类型等。
  11. 资源管理:管理员可以管理考试资讯和资讯分类,包括添加、编辑和删除相关内容,并可推荐热门资源和最新资讯。
  12. 考试管理:管理员可以管理试卷列表、错题记录和试题的导入和管理,包括试题分类、难度设置和试题库备份等功能。
  13. 交流管理:管理员可以管理论坛板块的创建、删除和分类设置,包括审核帖子、设定权限和管理违规内容等操作。
      1. 非功能性需求分析

大学校园国家资格考试信息网站的非功能性需求比如大学校园国家资格考试信息网站的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下3-1表格中:

2.1 大学校园国家资格考试信息网站非功能需求表

安全性

主要指大学校园国家资格考试信息网站数据库的安装,数据库的使用和密码的设定必须合乎规范。

可靠性

可靠性是指大学校园国家资格考试信息网站能够安装用户的指示进行操作,经过测试,可靠性90%以上。

性能

性能是影响大学校园国家资格考试信息网站占据市场的必要条件,所以性能最好要佳才好。

可扩展性

比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。

易用性

用户只要跟着大学校园国家资格考试信息网站的页面展示内容进行操作,就可以了。

可维护性

大学校园国家资格考试信息网站开发的可维护性是非常重要的,经过测试,可维护性没有问题

    1. 系统用例分析

大学校园国家资格考试信息网站中用户角色用例图如图2.1所示:

图2.1用户角色用例图

大学校园国家资格考试信息网站中管理员用户用例图如图2.2所示:

图2.2 管理员用例图

  1. 系统设计

系功能模块分成了管理员和学生用户两个模块,每个模块登录进去对应相应的功能,具体的功能模块图如图3.1所示。

图3.1 大学校园国家资格考试信息网站功能模块图

    1. 数据库设计

数据库的设计承载者系统的各种数据,在建立数据库的时候,主要是数据库模型的设计以及各个数据库表的设计两部分。

      1. 数据库概念结构设计

下面是整个大学校园国家资格考试信息网站中主要的数据库表总E-R实体关系图。

图3.2 大学校园国家资格考试信息网站总E-R关系图

      1. 数据库逻辑结构设计

通过前面E-R关系图可以看到项目需要创建很多个数据表。以下是项目中的主要数据库表的关系模型:

表certificate_type (证书类型)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

certificate_type_id

int

10

0

N

Y

证书类型ID

2

certificate_type

varchar

64

0

Y

N

证书类型

3

certificate_name

varchar

64

0

Y

N

证书名称

4

certificate_cover

varchar

255

0

Y

N

证书封面

5

certificate_introduction

text

65535

0

Y

N

证书简介

6

examination_criteria

text

65535

0

Y

N

考证标准

7

hits

int

10

0

N

N

0

点击数

8

praise_len

int

10

0

N

N

0

点赞数

9

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表comment (评论)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

comment_id

int

10

0

N

Y

评论ID:

2

user_id

int

10

0

N

N

0

评论人ID:

3

reply_to_id

int

10

0

N

N

0

回复评论ID:空为0

4

content

longtext

2147483647

0

Y

N

内容:

5

nickname

varchar

255

0

Y

N

昵称:

6

avatar

varchar

255

0

Y

N

头像地址:[0,255]

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

9

source_table

varchar

255

0

Y

N

来源表:

10

source_field

varchar

255

0

Y

N

来源字段:

11

source_id

int

10

0

N

N

0

来源ID:

表exam (考试)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

exam_id

mediumint

8

0

N

Y

考试id

2

name

varchar

32

0

N

N

考试名称:[2,32]

3

duration

int

10

0

Y

N

答题时长

4

score

double

9

2

Y

N

总分

5

status

varchar

10

0

Y

N

状态:启用、禁用

6

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

7

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表examination_materials (考证资料)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

examination_materials_id

int

10

0

N

Y

考证资料ID

2

data_type

varchar

64

0

Y

N

资料类型

3

data_name

varchar

64

0

Y

N

资料名称

4

upload_time

date

10

0

Y

N

上传时间

5

information_details

varchar

255

0

Y

N

资料详情

6

information_video

varchar

255

0

Y

N

资料视频

7

data_cover

varchar

255

0

Y

N

资料封面

8

information_content

text

65535

0

Y

N

资料内容

9

hits

int

10

0

N

N

0

点击数

10

praise_len

int

10

0

N

N

0

点赞数

11

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

12

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表exam_question (试题)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

exam_question_id

mediumint

8

0

N

Y

2

type

varchar

20

0

Y

N

类型

3

title

varchar

255

0

Y

N

题目

4

question_item

varchar

500

0

Y

N

选项

5

answer

varchar

500

0

Y

N

参考答案

6

score

double

9

2

Y

N

总分

7

question_order

int

10

0

Y

N

排序

8

exam_id

mediumint

7

0

Y

N

所属试卷

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表exam_question_database (试题库)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

exam_question_id

mediumint

8

0

N

Y

2

subject_name

varchar

255

0

Y

N

科目名称

3

type

varchar

20

0

Y

N

类型

4

title

varchar

255

0

Y

N

题目

5

question_item

varchar

500

0

Y

N

选项

6

answer

varchar

500

0

Y

N

参考答案

7

score

double

9

2

Y

N

总分

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表learning_notes (学习笔记)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

learning_notes_id

int

10

0

N

Y

学习笔记ID

2

student_users

int

10

0

Y

N

0

学生用户

3

student_name

varchar

64

0

Y

N

学生姓名

4

note_name

varchar

64

0

Y

N

笔记名称

5

record_time

date

10

0

Y

N

记录时间

6

note_images

varchar

255

0

Y

N

笔记图片

7

note_details

longtext

2147483647

0

Y

N

笔记详情

8

notes_content

text

65535

0

Y

N

笔记内容

9

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表learning_plan (学习计划)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

learning_plan_id

int

10

0

N

Y

学习计划ID

2

student_users

int

10

0

Y

N

0

学生用户

3

student_name

varchar

64

0

Y

N

学生姓名

4

learning_type

varchar

64

0

Y

N

学习类型

5

learning_name

varchar

64

0

Y

N

学习名称

6

learning_time

varchar

64

0

Y

N

学习时间

7

plan_details

text

65535

0

Y

N

计划详情

8

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表learning_questions (学生提问)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

learning_questions_id

int

10

0

N

Y

学生提问ID

2

student_users

varchar

64

0

Y

N

学生用户

3

student_name

varchar

64

0

Y

N

学生姓名

4

student_questioning

varchar

64

0

Y

N

学生提问

5

reply_to_questions

varchar

64

0

Y

N

回复问题

6

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

7

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表resource_sharing (资源分享)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

resource_sharing_id

int

10

0

N

Y

资源分享ID

2

student_users

int

10

0

Y

N

0

学生用户

3

student_name

varchar

64

0

Y

N

学生姓名

4

data_type

varchar

64

0

Y

N

资料类型

5

data_name

varchar

64

0

Y

N

资料名称

6

upload_time

date

10

0

Y

N

上传时间

7

data_cover

varchar

255

0

Y

N

资料封面

8

learning_materials

varchar

255

0

Y

N

学习资料

9

learning_experience

text

65535

0

Y

N

分享心得

10

upload_records

int

10

0

Y

N

0

上传记录

11

hits

int

10

0

N

N

0

点击数

12

praise_len

int

10

0

N

N

0

点赞数

13

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

14

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表student_users (学生用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

student_users_id

int

10

0

N

Y

学生用户ID

2

student_name

varchar

64

0

Y

N

学生姓名

3

contact_phone_number

varchar

64

0

Y

N

联系电话

4

student_gender

varchar

64

0

Y

N

学生性别

5

examine_state

varchar

16

0

N

N

已通过

审核状态

6

user_id

int

10

0

N

N

0

用户ID

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表subject

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

subject_id

int

10

0

N

Y

2

name

varchar

255

0

Y

N

3

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

4

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

表subject_exam (考试)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

exam_id

mediumint

8

0

N

Y

考试id

2

subject_name

varchar

255

0

Y

N

3

name

varchar

32

0

N

N

考试名称:[2,32]

4

duration

int

10

0

Y

N

答题时长

5

score

double

9

2

Y

N

总分

6

status

varchar

10

0

Y

N

状态:启用、禁用

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

9

user_id

int

10

0

Y

N

出题人

表subject_exam_question (试题)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

exam_question_id

mediumint

8

0

N

Y

2

subject_name

varchar

255

0

Y

N

科目名称

3

type

varchar

20

0

Y

N

类型

4

title

varchar

255

0

Y

N

题目

5

question_item

varchar

500

0

Y

N

选项

6

answer

varchar

500

0

Y

N

参考答案

7

score

double

9

2

Y

N

总分

8

question_order

int

10

0

Y

N

排序

9

exam_id

mediumint

7

0

Y

N

所属试卷

10

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

11

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表subject_user_answer (用户答题)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_answer_id

mediumint

8

0

N

Y

2

user_id

mediumint

7

0

N

N

用户ID:[0,8388607]用户获取其他与用户相关的数据

3

exam_id

mediumint

7

0

N

N

0

考试id

4

score

double

9

2

Y

N

0.00

分数

5

answers

text

65535

0

Y

N

答案

6

score_detail

text

65535

0

Y

N

评分详情

7

objective_score

double

9

2

Y

N

0.00

客观题得分

8

subjective_score

double

9

2

Y

N

0.00

主观题得分

9

score_state

tinyint

4

0

Y

N

0

评分状态

10

nickname

varchar

255

0

Y

N

提交人

11

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

12

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表user_answer (用户答题)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_answer_id

mediumint

8

0

N

Y

2

user_id

mediumint

7

0

N

N

用户ID:[0,8388607]用户获取其他与用户相关的数据

3

exam_id

mediumint

7

0

N

N

0

考试id

4

score

double

9

2

Y

N

0.00

分数

5

answers

text

65535

0

Y

N

答案

6

score_detail

text

65535

0

Y

N

评分详情

7

objective_score

double

9

2

Y

N

0.00

客观题得分

8

subjective_score

double

9

2

Y

N

0.00

主观题得分

9

score_state

tinyint

4

0

Y

N

0

评分状态

10

nickname

varchar

255

0

Y

N

提交人

11

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

12

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表user_answer_wrong (用户答题)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_answer_id

mediumint

8

0

N

Y

2

subject_name

varchar

255

0

Y

N

科目名称

3

question_item

varchar

255

0

Y

N

选项

4

title

varchar

255

0

Y

N

题目

5

type

varchar

255

0

Y

N

题目类型

6

exam_id

mediumint

7

0

N

N

0

考试id

7

score

double

9

2

Y

N

0.00

分数

8

answers

text

65535

0

Y

N

用户提交的答案

9

answer

text

65535

0

Y

N

参考答案

10

score_detail

text

65535

0

Y

N

评分详情

11

objective_score

double

9

2

Y

N

0.00

客观题得分

12

subjective_score

double

9

2

Y

N

0.00

主观题得分

13

score_state

tinyint

4

0

Y

N

0

评分状态

14

nickname

varchar

255

0

Y

N

提交人

15

user_id

int

10

0

N

N

提交人ID

16

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

17

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

4章 关键模块的设计与实现

管理员、用户在登录界面输入账号+密码,完成验证,点击“登录”按钮,系统在用户数据库表中会对管理员、用户的账号进行匹配,账号+密码正确的话,就会登录到系统中各个用户的主管理界面,否则提示对应的信息,返回到登录的界面,其主界面展示如下图4.1所示。

图4.1 登录界面图

登录代码如下:

/**

     * 登录

     * @param data

     * @param httpServletRequest

     * @return

     */

    @PostMapping("login")

    public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {

        log.info("[执行登录接口]");

        String username = data.get("username");

        String email = data.get("email");

        String phone = data.get("phone");

        String password = data.get("password");

        List resultList = null;

        Map<String, String> map = new HashMap<>();

        if(username != null && "".equals(username) == false){

            map.put("username", username);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(email != null && "".equals(email) == false){

            map.put("email", email);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(phone != null && "".equals(phone) == false){

            map.put("phone", phone);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }else{

            return error(30000, "账号或密码不能为空");

        }

        if (resultList == null || password == null) {

            return error(30000, "账号或密码不能为空");

        }

        //判断是否有这个用户

        if (resultList.size()<=0){

            return error(30000,"用户不存在");

        }

        User byUsername = (User) resultList.get(0);

        Map<String, String> groupMap = new HashMap<>();

        groupMap.put("name",byUsername.getUserGroup());

        List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));

        if (groupList.size()<1){

            return error(30000,"用户组不存在");

        }

        UserGroup userGroup = (UserGroup) groupList.get(0);

        //查询用户审核状态

        if (!StringUtils.isEmpty(userGroup.getSourceTable())){

            String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());

            if (res==null){

                return error(30000,"用户不存在");

            }

            if (!res.equals("已通过")){

                return error(30000,"该用户审核未通过");

            }

        }

        //查询用户状态

        if (byUsername.getState()!=1){

            return error(30000,"用户非可用状态,不能登录");

        }

        String md5password = service.encryption(password);

        if (byUsername.getPassword().equals(md5password)) {

            // 存储Token到数据库

            AccessToken accessToken = new AccessToken();

            accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

            accessToken.setUser_id(byUsername.getUserId());

            Duration duration = Duration.ofSeconds(7200L);

            redisTemplate.opsForValue().set(accessToken.getToken(), accessToken,duration);

            // 返回用户信息

            JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

            user.put("token", accessToken.getToken());

            JSONObject ret = new JSONObject();

            ret.put("obj",user);

            return success(ret);

        } else {

            return error(30000, "账号或密码不正确");

        }

    }

    1. 注册模块

注册模块满足用户两部分,当用户想要进行资料相关信息的查询管理的时候,就必须进行登录,如果没有账号的话,在登录界面,点击“注册”按钮就会跳转到注册的界面,根据提示填写好注册信息,添加提交,注册的信息在数据库中就添加完成了,然后再输入填写好的账号和密码进行登录,其主界面展示如下图所示。

图4.2 注册界面图

注册代码如下:

/**

     * 注册

     * @param user

     * @return

     */

    @PostMapping("register")

    public Map<String, Object> signUp(@RequestBody User user) {

        // 查询用户

        Map<String, String> query = new HashMap<>();

        Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user));

        query.put("username",user.getUsername());

        List list = service.selectBaseList(service.select(query, new HashMap<>()));

        if (list.size()>0){

            return error(30000, "用户已存在");

        }

        map.put("password",service.encryption(String.valueOf(map.get("password"))));

        service.insert(map);

        return success(1);

}  

    1. 密码修改模块

用户使用该系统注册完成后,用户对登录密码有修改需求时,系统也可以提供用户修改密码权限。系统中所有的操作者能够变更自己的密码信息,执行该功能首先必须要登入系统,然后选择密码变更选项以后在给定的文本框中填写初始密码和新密码来完成修改密码的操作。在填写的时候,假如两次密码填写存在差异,那么此次密码变更操作失败,下面的图片展示的就是该板块对应的界面。

图4.3 密码修改界面图

密码修改代码如下:

/**

     * 修改密码

     * @param data

     * @param request

     * @return

     */

    @PostMapping("change_password")

    public Map<String, Object> change_password(@RequestBody Map<String, String> data, HttpServletRequest request){

        // 根据Token获取UserId

        String token = request.getHeader("x-auth-token");

        Integer userId = tokenGetUserId(token);

        // 根据UserId和旧密码获取用户

        Map<String, String> query = new HashMap<>();

        String o_password = data.get("o_password");

        query.put("user_id" ,String.valueOf(userId));

        query.put("password" ,service.encryption(o_password));

        int count = service.selectBaseCount(service.count(query, service.readConfig(request)));

        if(count > 0){

            // 修改密码

            Map<String,Object> form = new HashMap<>();

            form.put("password",service.encryption(data.get("password")));

            service.update(query,service.readConfig(request),form);

            return success(1);

        }

        return error(10000,"密码修改失败!");

    }

    1. 用户管理模块

管理员可以对系统中所有的用户角色进行管控,包含了管理员、学生用户两种角色,如果需要添加新的用户,点击页面中的“添加”按钮根据提示输入上用户信息,点击“提交”以后在对应的用户界面就可以查看到了,可以点击用户后面的“删除”按钮直接删除某一用户。界面如下图所示。

图4.4 用户管理界面图

代码如下:

  @RequestMapping("/get_obj")

    public Map<String, Object> obj(HttpServletRequest request) {

        List resultList = service.selectBaseList(service.select(service.readQuery(request), service.readConfig(request)));

        if (resultList.size() > 0) {

            JSONObject jsonObject = new JSONObject();

            jsonObject.put("obj",resultList.get(0));

            return success(jsonObject);

        } else {

            return success(null);

        }

    }

    1. 模拟考试模块

模拟考试:学生可以参加模拟考试,选择不同科目进行考试,获取考试成绩和解析,并可以查看历史考试记录。界面如下图所示。

图4.5模拟考试界面图

    1. 考试管理模块

考试管理:管理员可以管理试卷列表、错题记录和试题的导入和管理,包括试题分类、难度设置和试题库设计等功能。界面如下图所示。

图4.6 考试管理界面图

    1. 考证资料管理模块

考证资料:学生可以查询和下载与国家资格考试相关的学习资料和考试指南,包括电子书、视频教程和学习计划。界面如下图所示。

图4.7考证资料查看界面图

考证资料管理:管理员可以管理考证资料的上传、修改、删除和审核等操作,包括添加资料详情、视频教程、封面图片和相关标签。界面如下图所示。

图4.8考证资料添加界面图

    1. 资源分享管理模块

资源分享:学生可以上传分享、和下载其他用户分享的学习资料、心得体会等,与其他学生互相学习和交流,支持评论和点赞功能。界面如下图所示。

图4.9 资源分享界面图

    1. 学习计划模块

学习计划:学生可以制定学习计划,包括设定学习目标、安排学习时间表和记录学习进度,可设置提醒功能。界面如下图所示。

图4.10学习计划界面图

  1. 系统测试

通过前面章节的介绍,我们可以看到大学校园国家资格考试信息网站已经完成了,但是能不能投入使用还是未知,因为在每个项目正式使用之前必须对开发的项目进行测试,如果不进行测试一旦投入使用可能会出现很多未可知的问题,比如使用人数太多导致系统瘫痪,比如某一功能存在bug信息填写错误等,这些错误将给使用者带来很多的困扰,甚至造成更大的损失,因此测试是项目投入使用的最后一步,为用户提供一个运行顺畅、完美的项目也就是我们进行最后测试的目的。

    1. 系统部分测试

用户登录功能测试:

表5.1 用户登录功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

用户登录模块测试

用户登录成功的情况

点击前登录界面输入账号和密码分别输入admin和admin后点击“登录”按钮。

登录成功并调整到用户界面

正确

考证资料信息添加功能测试:

表5.2 考证资料信息添加功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

考证资料信息添加模块测试

考证资料信息添加成功的情况

在考证资料信息的页面中将点击添加,输入考证资料信息,输入正确的信息后然后点击“提交”按钮。

提示添加成功

正确

考证资料信息添加模块测试

考证资料信息添加失败的情况

在考证资料信息页面中不填写的考证资料名称,其他信息正常输入“提交”按钮。

提示“添加失败,信息不能为空”

正确

查询考试资讯功能模块测试:

表5.3 查询考试资讯功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

查询考试资讯功能测试

查询成功的情况

在考试资讯界面输入资讯标题进行查询

查询成功

正确

资源分享添加功能测试:

表5.4 资源分享添加功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

资源分享添加模块测试

资源分享添加成功的情况

在资源分享添加管理的页面中,输入资源信息,输入正确的信息后然后点击“提交”按钮。

提示添加成功

正确

资源分享添加模块测试

资源分享添加失败的情况

在资源分享页面中不填写分享内容,其他信息正常输入“提交”按钮。

提示“添加失败,信息不能为空”

正确

    1. 系统测试结果

通过编写大学校园国家资格考试信息网站的测试用例,已经检测完毕用户的登录模块、考证资料添加模块、考试资讯查看模块、资源分享添加模块的功能测试,在对以上功能得测试过程中,发现了系统中的很多漏送并进行了完善,经过多人在线进行测试,系统完全可以正常运行,当然在后期的维护中系统将不断完善。

  1. 结语

在开发大学校园国家资格考试信息网站之前,我对项目感到自信满满,认为它是一个相对简单的任务。然而,在实际的开发过程中,我逐渐发现了自身的许多不足之处。首先,我意识到自己对于一些重要的编程思想和方法还没有掌握得很牢固,如Bootsatrp、Jquery、AJAX、SpringBoot等Java Web开发技术。这使得我在项目的具体实施中遇到了一些困难和挑战。

通过开发这个大学校园国家资格考试信息网站,我不仅获得了丰富的实践经验,也在技术上取得了长足的进步。我深刻认识到,做任何事情都需要脚踏实地,不能过于自负和轻视细节。这次项目的开发经历让我明白了持续学习和不断提升的重要性。

与此同时,我也意识到了自己在Java编程知识方面的欠缺。在环境配置和算法的应用上,我经常遇到问题,导致项目运行出错或无法实现预期目标。我开始认真审视自己的不足,并努力补充知识和技能,以提升自己的编程水平。

在项目的实现过程中,我也发现了一些需要改进的地方。有时候,我没有对代码进行充分的优化,导致代码冗长而不够高效。这也给程序的运行带来了一定的影响,使得系统的性能不够流畅。通过这次经历,我深刻意识到了代码质量的重要性,并且开始注重编写简洁、高效的代码。

通过这个大学校园国家资格考试信息网站的开发,我不仅获得了宝贵的经验,也认识到了自身的不足之处。这次项目的实践让我更加坚信持续学习和努力提升的重要性,同时也激发了我对于编程和软件开发的热情和兴趣。我相信这次经历将对我的职业发展产生积极的影响。

参考文献

[1]齐润泉.基于卷积神经网络的智能化考试系统设计[J].信息技术,2024,(01):158-162+169.

[2]姜一波.基于SpringBoot+Vue的在线考试系统设计与实现[J].无线互联科技,2023,20(23):68-71.

[3]李从明.“互联网+”背景下网络考试系统分析与设计——以江苏开放大学为例[J].中国新通信,2023,25(18):71-73+202.

[4]李曼玉,朱宏程,苏蕾,易楚凡,郭豪.基于教考分离的在线考试系统设计研究[J].电脑编程技巧与维护,2023,(08):7-9.

[5]苏婉怡,揣小龙,王煜尧,刘美瑜.基于Java技术的考试系统设计与实现[J].无线互联科技,2023,20(14):75-77.

[6]李伟,金梁.基于WAMP架构的Web在线考试系统设计[J].自动化技术与应用,2023,42(05):162-165.

[7]刘军.基于AJAX技术和RSS技术的网络考试系统设计[J].长江信息通信,2023,36(05):179-181.

[8]王鹰汉,明小波.基于Vue的在线考试系统设计与实现[J].无线互联科技,2023,20(06):52-54+92.

[9]孙昕,刘红根,张海,唐盼盼.基于B/S架构的在线考试系统设计与实现[J].中国信息化,2023,(03):48-50.

[10]高思洋,孙秋灼,牛盼盼.基于Python的在线考试系统设计与实现[J].信息与电脑(理论版),2023,35(05):124-127.

[11]李娟,边玲,李海瑛,张东圆.基于微信小程序的手机在线考试系统设计[J].无线互联科技,2023,20(04):58-61+89.

[12]Yu Yang.Design and Implementation of Student Information Management System Based on Springboot[J].Advances in Computer, Signals and Systems,2022,6(6):

[13]蒋金涛.基于Web的高校在线考试系统设计[J].无线互联科技,2022,19(19):88-90.

[14]马延立.基于微信小程序的在线考试系统设计与实现[J].信息记录材料,2022,23(06):151-154.

[15]熊柏祥.基于Springboot和Vue框架的考试资源服务平台的设计与实现[J].信息与电脑(理论版),2022,34(01):97-99+103.

[16]Wu Hejing.Commerce Middle Office Management System Based on Springboot[J].International Journal of Advanced Network, Monitoring and Controls,2022,7(2):32-45.

[17]单树倩,任佳勋.基于SpringBoot和Vue框架的数据库原理网站设计与实现[J].电脑知识与技术,2021,17(30):40-41+50.

[18]Fuyuan Cheng.Talent Recruitment Management System for Small and Micro Enterprises Based on Springboot Framework[J].Advances in Educational Technology and Psychology,2021,5(2):

[19]Guanhong Chen,Jiangming Xu.Design and implementation of efficient Learning platform based on SpringBoot Framework[J].Journal of Electronics and Information Science,2020,6(1):

[20]Jian Chen,Chen Jian,Pan Hailan.Design of Man Hour Management Information System on SpringBoot Framework[J].Journal of Physics: Conference Series,2020,1646(1):012136-.

结束语

在论文的结束之际,我要衷心感谢您的阅读。同时,我特别要感谢我的导师。尽管我在实习期间非常忙碌,论文的撰写也经常是断断续续的,但我的导师一直非常负责,时不时地询问我的任务进展情况,并且跟进我的论文进度。在导师的指导下,我逐步完成了自己的论文和程序。从导师身上,我也学到了很多知识和经验,受益匪浅。同时,我也从导师身上看到了自己的不足,无论是在技术层面还是在对待工作的态度上,导师如同明镜一般反映出了我的缺点和不足。

此外,我还要感谢在我实习期间在论文和程序方面给予过我帮助的同学和社会人士。之前,我对于SpringBoot框架方面的知识并不了解,正是他们在我编写程序的过程中给了我很多启发和思路,也帮助我进行了程序的调试和检测。没有他们的帮助,我无法顺利完成本次毕业设计。

至此,我的毕业设计画上了圆满的句号。再次感谢您的阅读和支持。

免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值