springboot 学科竞赛管理系统-计算机毕业设计源码23714

摘要

随着学校、社会对大学生专业技能、实践创新能力的重视程度越来越高,有越来越多的同学教师参与到各种竞赛中。这使得竞赛管理的难度日益增加。文章通过需求分析,基于SpringBoot设计并实现了一个适用于高校师生,方便管理、操作简单、时效性强的学科竞赛管理系统。系统的主要功能包含竞赛信息、竞赛作品、评审打分、获奖信息、报名记录、取消记录等。通过线上统一管理的方式将竞赛信息及时、公开地传到学生手中,简化大学生竞赛的资料提交和报名流程,提高学生参赛的积极性以及竞赛组织方的工作效率。

关键词:竞赛管理;Java;springboot;mysql

Abstract

With the increasing attention paid by schools and society to the professional skills and practical innovation abilities of college students, more and more students and teachers are participating in various competitions. This makes competition management increasingly difficult. The article designs and implements a college student competition management system suitable for college teachers and students, with convenient management, simple operation, and strong timeliness, based on requirement analysis and SpringBoot. The main functions of the system include competition information, competition works, evaluation and scoring, award information, registration records, cancellation records, etc. By implementing unified online management, competition information can be transmitted to students in a timely and public manner, simplifying the submission and registration process for college student competitions, enhancing their enthusiasm for participating and the efficiency of competition organizers.

Keywords: competition management; Java; springboot; mysql

目录

摘要

Abstract

第 1 章 引  

1.1 课题研究背景

1.2 课题研究目的

1.3 系统特点

1.4 论文结构安排

第 2 章 学科竞赛管理系统的需求分析

2.1 系统可行性分析

2.1.1 技术可行性分析

2.1.2 经济可行性分析

2.2 系统需求分析

2.2.1 功能需求分析

2.2.2 非功能性需求分析

2.3 系统用例分析

2.4 系统流程分析

2.4.1 数据增加流程

2.4.2 数据修改流程

2.4.3 数据删除流程

第 3 章 学科竞赛管理系统总体设计

3.1 系统功能模块设计

3.2 数据库设计

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

4.1 登录模块

4.2 管理员模块

4.3 竞赛信息模块

4.4 竞赛报名界面

4.5 竞赛成绩界面

4.6 竞赛结果界面

4.7 竞赛资讯界面

4.8 竞赛信息管理界面

4.9 竞赛报名管理模块

4.10 竞赛结果管理界面

4.11 竞赛成绩管理界面

第 5 章 系统实验与结果分析

5.1 调试部分问题

5.2 系统部分测试

5.3 系统测试结果

第 6 章 结论

参考文献

致谢

  • 1 章 引  言
    1. 选题研究背景

大学生学科竞赛工作是高等教育实践教学的常规工作之一,是进一步推动实践教育教学改革的重要途径,是大学生综合运用理论知识、培养团队合作精神和提高创新实践能力的重要训练手段,同时也是促进指导教师团队提高指导水平的有效方法。

随着高等学校规模不断扩大,大学生学科竞赛成为高校培养实践性应用型人才地重要载体,对培养大学生的综合素质以及创新能力有着至关重要的作用,因此有关学生学科竞赛管理的信息化建设方面的研究层出不穷,并且获得了极其丰富的研究成果。

    1. 课题研究目的

随着学校、社会对大学生所学专业知识的运用、综合能力和实践能力的重视程度越来越高,各个高校的学生都积极地从多个方面来增强专业知识的运用,为提升综合能力和实践能力而参加各类学科竞赛。但是,越来越多的学生、教师参与到各类学科竞赛中,使学科竞赛管理的难度日益增加,而且提交资料和申请流程出错频率的增加更一步使管理难度增加。传统的学科竞赛管理需要工作者收集学生的报名信息,人工验证报名信息是否合格,这需要很多的人力、物力。而现今的教师工作繁多,这样繁琐无用的工作严重影响办公效率的问题也就显得尤为突出。

基于以上原因,设计一款操作简单,能够规范流程的学科竞赛管理系统来帮助学生、教师减少申请竞赛的流程难度,将更多的时间精力用来完成竞赛项目。

    1. 系统特点

(1)系统在springboot这一框架基础上采用反射机制设计一套灵活小巧的Web应用开发框架,做到前后端分离,系统前端采用CSS、DIV进行设计实现。

(2)学科竞赛管理系统中的web后台管理中的前端使用的是bootstrap框架,它配合ajax和jquery可以美化页面设计。

(3)流行vue框架结合jQuery技术,在jQuery基础上扩展一些插件,通过自己定义插件更好的实现前端的设计。

    1. 论文结构安排

论文将分层次经行编排,除去论文摘要致谢文献参考部分,正文部分还会对网站需求做出分析,以及阐述大体的设计和实现的功能,最后罗列部分调测记录,论文主要架构如下:

第1章 交代项目的背景、开发这个系统的意义以及系统适用的技术的特点。

第2章 对系统的需求展开分析。

第3章 阐述了网站的总体设计。

第4章 阐明了学科竞赛管理系统详细功能的实现,主要根据技术性的功能模块功能实现。

第5章 罗列了部分系统调试与测试的记录。

第6章 介绍了学科竞赛管理系统的结论。

学科竞赛管理系统存储所使用的mysql数据库以及开发中所使用的IDEA、Tomcat这些开发工具的使用,能够给我们的编写工作带来许多的便利。系统使用springboot框架进行开发,使系统的可扩展性和维护性更佳,减少java配置代码,简化编程代码,目前springboot框架也是很多企业选择的框架之一。

      1. 经济可行性分析

在开发学科竞赛管理系统中所使用的开发软件像IDEA开发工具、Tomcat8.0服务器、MySQL5.7数据库、Photoshop图片处理软件等,这些都是开源免费的,并且学科竞赛管理系统是自己设计并编码实现的,数据库是使用流行mysql进行数据的存储,开源的mysql等技术的使用,减少系统开发费用。

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

学科竞赛管理系统的设计与实现是为了让学校学科竞赛管理处的使用者更加方便的进行学科竞赛所涉及到的一些信息,使用者查找某一信息的时候能节省大量的时间和精力,有效减少不必要的查找时间。

研究学科竞赛管理系统的设计与实现,是为了能够拥有界面简洁友好、操作简单以及运行稳定的智能化的一站式学科竞赛管理方式。系统的需求主要来自学校的管理人员。

学科竞赛管理系统选择Eclipse开发工具的java开发语言中springboot+mysql数据库来存储数据,实现了注册登录、竞赛信息、竞赛报名、竞赛成绩、赛事结果这几大功能。

(1)登录:管理员的账号是在数据库中直接设计好的,管理员进入系统的登录界面可以直接输入账号+密码,点击“登录”进行登录,如果忘记密码的话,可以点击登录按钮下面的忘记密码,根据提示进行找回密码;

(2)管理员:管理员进入到学科竞赛管理系统以后,点击“用户管理”下的“管理员”这个按钮就会显示出管理员的信息,如果想要填写新的管理员,点击右上角“添加”按钮,然后输入用户名、密码、昵称、手机号码等信息,点击“提交”按钮进行提交,其中用户名和密码是必须填写的,同时也支持对已有的管理员进行编辑、删除和查询;

(3)竞赛信息:点击“竞赛信息”这个按钮就会显示出所有的竞赛内容,主要包括竞赛名称、竞赛分类、竞赛时间,管理员可以对竞赛信息进行增删改查操作;

(4)竞赛报名:点击“竞赛报名”这个按钮就会显示出报名页面,需要提交报名信息进行提交,管理员对用户提交的竞赛报名信息进行审核管理;

(5)竞赛成绩:点击“竞赛成绩”这个按钮就会显示出所有的竞赛成绩信息,成绩信息由管理员进行发布管理;

(6)赛事结果:点击“赛事结果”这个按钮可以对结果信息进行发布,用户可以查看结果内容;

(7)系统管理:点击“系统管理”这个按钮管理员可以对轮播图进行增删改查;

(8)公告消息管理:点击公告可以查看系统发布的最新公告信息,管理员对公告内容进行增删改查操作;

(9)资源管理:可以对竞赛资讯以及资讯内容进行分类管理。

      1. 非功能性需求分析

学科竞赛管理系统的非功能性需求比如系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下3-1表格中:

2.1 学科竞赛管理系统非功能需求表

安全性

主要指学科竞赛管理系统数据库的安装,数据库的使用和密码的设定必须合乎规范。

可靠性

可靠性是指学科竞赛管理系统能够安装用户的指示进行操作,经过测试,可靠性90%以上。

性能

性能是影响学科竞赛管理系统占据市场的必要条件,所以性能最好要佳才好。

可扩展性

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

易用性

用户只要跟着学科竞赛管理系统的页面展示内容进行操作,就可以了。

可维护性

学科竞赛管理系统开发的可维护性是非常重要的,经过测试,可维护性没有问题

    1. 系统用例分析

学科竞赛管理系统中管理人员角色用例图如图2.1所示:

图2.1 管理员角色用例图

学科竞赛管理系统用户角色用例图如图2.2所示:

图2.2 用户角色用例图

    1. 系统流程分析
      1. 数据增加流程

用户成功登入系统后能够实现增加数据的操作,增加数据的编号是特定的,系统生成,用户不能随意填写,除了编号以外,其他增加信息用户自己填写,填写后的信息经过系统验证,验证合法通过就显示增加数据成功了,相反的话,就没有增加成功,图2.3显示的就是在增加数据时的流程。

图2.3 数据增加流程图

      1. 数据修改流程

数据修改时的流程和上面介绍的数据增加时的流程原理是一样的,如图2.4所示。

图2.4数据修改流程图

      1. 数据删除流程

如果系统里面存在一些没有用的数据的话相关的管理人员还可以对这些数据进行删除,图2.5就是数据删除时的流程图。

图2.5  数据删除流程图

  • 3 章 学科竞赛管理系统总体设计

在上一章节中分析了学科竞赛管理系统的功能性需求,并且根据需求分析了学科竞赛管理系统中的用例以及系统的增删改查流程。那么接下来就要开始对学科竞赛管理系统架构、主要功能和数据库开始进行设计。

    1. 系统功能模块设计

系统的整体架构确定以后,再来看学科竞赛管理系统的主要功能模块图整体的功能模块包括登录、竞赛信息、竞赛报名竞赛成绩竞赛结果竞赛资讯公告信息这几大功能,图3.1就是学科竞赛管理系统的功能模块图。

图3.1 学科竞赛管理系统功能模块图

    1. 数据库设计

主要数据库表的关系模型如下:

    1. 表competition_registration (竞赛报名)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

competition_registration_id

int

10

0

N

Y

竞赛报名ID

2

event_name

varchar

64

0

Y

N

赛事名称

3

event_category

varchar

64

0

Y

N

赛事类别

4

event_time

datetime

19

0

Y

N

赛事时间

5

event_location

varchar

64

0

Y

N

赛事地点

6

registration_notice

text

65535

0

Y

N

报名须知

7

student_users

int

10

0

Y

N

0

学生用户

8

student_name

varchar

64

0

Y

N

学生姓名

9

registration_time

datetime

19

0

Y

N

报名时间

10

examine_state

varchar

16

0

N

N

未审核

审核状态

11

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

12

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

    1. 表competition_results (竞赛成绩)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

competition_results_id

int

10

0

N

Y

竞赛成绩ID

2

event_name

varchar

64

0

Y

N

赛事名称

3

event_category

varchar

64

0

Y

N

赛事类别

4

event_time

datetime

19

0

Y

N

赛事时间

5

event_location

varchar

64

0

Y

N

赛事地点

6

student_users

int

10

0

Y

N

0

学生用户

7

student_name

varchar

64

0

Y

N

学生姓名

8

competition_results

int

10

0

Y

N

0

竞赛成绩

9

competition_ranking

int

10

0

Y

N

0

竞赛排名

10

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

11

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

    1. 表event_information (赛事信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

event_information_id

int

10

0

N

Y

赛事信息ID

2

event_name

varchar

64

0

Y

N

赛事名称

3

event_category

varchar

64

0

Y

N

赛事类别

4

event_time

datetime

19

0

Y

N

赛事时间

5

event_location

varchar

64

0

Y

N

赛事地点

6

registration_notice

text

65535

0

Y

N

报名须知

7

cover_photo

varchar

255

0

Y

N

封面图片

8

event_content

longtext

2147483647

0

Y

N

赛事内容

9

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

    1. 表event_results (赛事结果)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

event_results_id

int

10

0

N

Y

赛事结果ID

2

event_name

varchar

64

0

Y

N

赛事名称

3

event_category

varchar

64

0

Y

N

赛事类别

4

event_time

datetime

19

0

Y

N

赛事时间

5

event_location

varchar

64

0

Y

N

赛事地点

6

result_time

datetime

19

0

Y

N

结果时间

7

cover_photo

varchar

255

0

Y

N

封面图片

8

result_content

longtext

2147483647

0

Y

N

结果内容

9

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

    1. 表hits (用户点击)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

hits_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

    1. 表notice (公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

notice_id

mediumint

8

0

N

Y

公告id:

2

title

varchar

125

0

N

N

标题:

3

content

longtext

2147483647

0

Y

N

正文:

4

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

5

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

    1. 表praise (点赞)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

praise_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

status

bit

1

0

N

N

1

点赞状态:1为点赞,0已取消

    1. 表slides (轮播图)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

slides_id

int

10

0

N

Y

轮播图ID:

2

title

varchar

64

0

Y

N

标题:

3

content

varchar

255

0

Y

N

内容:

4

url

varchar

255

0

Y

N

链接:

5

img

varchar

255

0

Y

N

轮播图:

6

hits

int

10

0

N

N

0

点击量:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

    1. 表student_users (学生用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

student_users_id

int

10

0

N

Y

学生用户ID

2

student_name

varchar

64

0

Y

N

学生姓名

3

student_gender

varchar

64

0

Y

N

学生性别

4

student_age

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

更新时间

    1. 表auth (用户权限管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

auth_id

int

10

0

N

Y

授权ID:

2

user_group

varchar

64

0

Y

N

用户组:

3

mod_name

varchar

64

0

Y

N

模块名:

4

table_name

varchar

64

0

Y

N

表名:

5

page_title

varchar

255

0

Y

N

页面标题:

6

path

varchar

255

0

Y

N

路由路径:

7

position

varchar

32

0

Y

N

位置:

8

mode

varchar

32

0

N

N

_blank

跳转方式:

9

add

tinyint

3

0

N

N

1

是否可增加:

10

del

tinyint

3

0

N

N

1

是否可删除:

11

set

tinyint

3

0

N

N

1

是否可修改:

12

get

tinyint

3

0

N

N

1

是否可查看:

13

field_add

text

65535

0

Y

N

添加字段:

14

field_set

text

65535

0

Y

N

修改字段:

15

field_get

text

65535

0

Y

N

查询字段:

16

table_nav_name

varchar

500

0

Y

N

跨表导航名称:

17

table_nav

varchar

500

0

Y

N

跨表导航:

18

option

text

65535

0

Y

N

配置:

19

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

20

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

    1. 表collect (收藏)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

collect_id

int

10

0

N

Y

收藏ID:

2

user_id

int

10

0

N

N

0

收藏人ID:

3

source_table

varchar

255

0

Y

N

来源表:

4

source_field

varchar

255

0

Y

N

来源字段:

5

source_id

int

10

0

N

N

0

来源ID:

6

title

varchar

255

0

Y

N

标题:

7

img

varchar

255

0

Y

N

封面:

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

    1. 表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:

    1. 表user (用户账户:用于保存用户登录信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_id

mediumint

8

0

N

Y

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

2

state

smallint

5

0

N

N

1

账户状态:[0,10](1可用|2异常|3已冻结|4已注销)

3

user_group

varchar

32

0

Y

N

所在用户组:[0,32767]决定用户身份和权限

4

login_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

上次登录时间:

5

phone

varchar

11

0

Y

N

手机号码:[0,11]用户的手机号码,用于找回密码时或登录时

6

phone_state

smallint

5

0

N

N

0

手机认证:[0,1](0未认证|1审核中|2已认证)

7

username

varchar

16

0

N

N

用户名:[0,16]用户登录时所用的账户名称

8

nickname

varchar

16

0

Y

N

昵称:[0,16]

9

password

varchar

64

0

N

N

密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成

10

email

varchar

64

0

Y

N

邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

11

email_state

smallint

5

0

N

N

0

邮箱认证:[0,1](0未认证|1审核中|2已认证)

12

avatar

varchar

255

0

Y

N

头像地址:[0,255]

13

open_id

varchar

255

0

Y

N

针对获取用户信息字段

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

15

vip_level

varchar

255

0

Y

N

会员等级

16

vip_discount

double

11

2

Y

N

0.00

会员折扣

管理员,在登录界面输入用户名+密码,然后选择对应的角色,点击“登录”按钮,系统在用户数据库表中会对管理员的账号进行匹配,用户名+密码正确的话,就会登录到系统中各个用户的主管理界面,否则提示对应的信息,返回到登录的界面,如果忘记密码的话,可以点击登录按钮下面的忘记密码,根据提示进行找回密码;其主界面展示如下图4.1所示。

图4.1 首页界面图

首页界面逻辑代码如下:

 @RequestMapping("/get_list")

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

        Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request));

        return success(map);

}

    1. 管理员模块

管理员进入到学科竞赛管理系统以后,点击“用户管理”下的“管理员”这个按钮就会显示出管理员的信息,如果想要填写新的管理员,点击右上角“添加”按钮,然后输入用户名、密码、昵称、手机号码等信息,点击“提交”按钮进行提交,其中用户名和密码是必须填写的,同时也支持对已有的管理员进行编辑、删除和查询。界面如下图4.2所示。

图4.2 管理员界面图

管理员界面的关键代码如下。

  @PostMapping("/add")

    @Transactional

    public Map<String, Object> add(HttpServletRequest request) throws IOException {

        service.insert(service.readBody(request.getReader()));

        return success(1);

    }

    @Transactional

    public Map<String, Object> addMap(Map<String,Object> map){

        service.insert(map);

        return success(1);

}

    public Map<String,Object> readBody(BufferedReader reader){

        BufferedReader br = null;

        StringBuilder sb = new StringBuilder("");

        try{

            br = reader;

            String str;

            while ((str = br.readLine()) != null){

                sb.append(str);

            }

            br.close();

            String json = sb.toString();

            return JSONObject.parseObject(json, Map.class);

        }catch (IOException e){

            e.printStackTrace();

        }finally{

            if (null != br){

                try{

                    br.close();

                }catch (IOException e){

                    e.printStackTrace();

                }

            }

        }

        return null;

}

    public void insert(Map<String,Object> body){

        StringBuffer sql = new StringBuffer("INSERT INTO ");

        sql.append("`").append(table).append("`").append(" (");

        for (Map.Entry<String,Object> entry:body.entrySet()){

            sql.append("`"+humpToLine(entry.getKey())+"`").append(",");

        }

        sql.deleteCharAt(sql.length()-1);

        sql.append(") VALUES (");

        for (Map.Entry<String,Object> entry:body.entrySet()){

            Object value = entry.getValue();

            if (value instanceof String){

                sql.append("'").append(entry.getValue()).append("'").append(",");

            }else {

                sql.append(entry.getValue()).append(",");

            }

        }

        sql.deleteCharAt(sql.length() - 1);

        sql.append(")");

        log.info("[{}] - 插入操作:{}",table,sql);

        Query query = runCountSql(sql.toString());

        query.executeUpdate();

    }

    1. 竞赛信息模块

点击“竞赛信息”这个按钮就会显示出所有的竞赛信息的内容,包括竞赛名称、竞赛分类、竞赛日期、竞赛地址、竞赛介绍等,管理员进行发布,用户可以查看。界面如下图4.3所示。

图4.3 竞赛信息界面图

竞赛信息的关键代码入下。

@RestController

@RequestMapping("auth")

public class AuthController extends BaseController<Auth, AuthService> {

    /**

     * 服务对象

     */

    @Autowired

    public AuthController(AuthService service) {

        setService(service);

    }

}

    1. 竞赛报名界面

点击“竞赛报名”这个按钮就会显示出报名界面,进行填写报名信息然后提交。界面如下图4.4所示。

图4.4 竞赛报名界面图

竞赛报名界面逻辑代码如下:

@RequestMapping(value = {"/avg_group", "/avg"})

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

        Query count = service.avg(service.readQuery(request), service.readConfig(request));

        return success(count.getResultList());

}

    1. 竞赛成绩界面

点击“竞赛成绩”这个按钮,就会展示出用户的竞赛成绩信息。界面如下图4.5所示。

图4.5 竞赛成绩界面图

竞赛成绩界面逻辑代码如下:

@PostMapping("/set")

@Transactional

    public Map<String, Object> set(HttpServletRequest request) throws IOException {

        service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));

        return success(1);

    }

    1. 竞赛结果界面

点击“竞赛结果”可以查看竞赛结果列表。界面如下图4.6所示。

图4.6 竞赛结果界面图

竞赛结果界面逻辑代码如下:

@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.7所示。

图4.7 竞赛资讯界面图

    1. 竞赛信息管理界面

点击“竞赛信息管理”这个按钮就会显示出所有的竞赛信息,如果想要填写新的竞赛信息,点击上方的“添加”按钮,然后输入竞赛名称、竞赛分类、竞赛日期、竞赛内容,点击“提交”按钮进行提交,同时也支持对已有的竞赛信息进行编辑、删除和查询。界面如下图4.8所示。

图4.8 竞赛信息管理界面图

竞赛信息界面逻辑代码如下:

@RequestMapping(value = {"/sum_group", "/sum"})

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

        Integer value = service.selectSqlToInteger(service.sum(service.readQuery(request), service.readConfig(request)));

        return success(value);

    }

    1. 竞赛报名管理模块

点击“竞赛报名管理”这个按钮就会显示出所有的竞赛报名的信息,可以查看以及审核。界面如下图4.9所示。

图4.9 竞赛报名管理界面图

    1. 竞赛结果管理界面

点击“竞赛结果管理”这个按钮就会显示出所有的竞赛结果的信息,管理员可以在线对竞赛结果进行发布。界面如下图4.10所示。

图4.10 竞赛结果管理界面图

竞赛结果管理界面逻辑代码如下:

@RequestMapping(value = {"/count_group", "/count"})

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

        Integer value= service.selectSqlToInteger(service.groupCount(service.readQuery(request), service.readConfig(request)));

        return success(value);

    }

    1. 竞赛成绩管理界面

点击“竞赛成绩管理”这个按钮就会显示出所有的竞赛成绩,管理员可以对竞赛成绩进行维护管理,。界面如下图4.11所示。

图4.11 竞赛成绩管理界面图

 竞赛成绩管理界面逻辑代码如下:

@RequestMapping(value = {"/sum_group", "/sum"})

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

        Integer value = service.selectSqlToInteger(service.sum(service.readQuery(request), service.readConfig(request)));

        return success(value);

    }

问题1:数据库无法添加中文。

解决过程:重新创建数据库,将库的编码格式改为utf8。

效果:能在新库的表中添加中文。

问题2:控制台报错前台与后台参数不一致

解决过程:检查代码,找到报错参数完成修改,继续报错,服务器移除项目重新运行。

效果:重启项目不再报错。

问题3:报错No bean named 'sysLogServiceImpl' available找不到名为sysLogServiceImpl的bean的对象。

解决过程:询问导师报错原因,发现错误原因是未添加注解@Service,需要在在impl实现类的外面添加@Service注解。

效果:重新debug项目无报错。

问题4:启动项目时报错:Mapped Statements collection does not contain value for

解决过程:网上搜索解决办法,出错可能的原因有多个,经过努力排查,错误原因是mapper映射地址有误。在mybatis-config里重新配置地址。

效果:项目启动正常

    1. 系统部分测试

用户登录功能测试:

表5.1 用户登录功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

用户登录模块测试

用户登录成功的情况

点击前台首页左上角“登录”链接后账号和密码分别输入admin和admin后点击“登录”按钮。

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

正确

竞赛信息添加功能测试:

表5.2 竞赛信息添加功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

竞赛信息添加模块测试

竞赛信息添加成功的情况

在竞赛的页面中将点击添加,输入竞赛名称、竞赛类型、竞赛地址、竞赛时间、内容等,输入正确的信息后然后点击“提交”按钮。

提示添加成功

正确

竞赛信息添加模块测试

竞赛信息添加失败的情况

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

提示“添加失败,竞赛名称号不能为空”

正确

查询竞赛结果信息功能模块测试:

表5.3 查询竞赛结果信息功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

查询竞赛结果信息功能测试

查询成功的情况

菜单栏中点击竞赛结果,进入竞赛结果列表,对竞赛结果进行查询

查询成功

正确

查询竞赛成绩功能模块测试:

表5.4 查询竞赛成绩功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

查询竞赛成绩功能测试

查询成功的情况

菜单栏中点击竞赛成绩管理,输入用户名称进行查询

查询成功

正确

竞赛结果添加功能测试:

表5.5 竞赛结果添加功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

竞赛结果添加模块测试

竞赛结果添加成功的情况

在竞赛的页面中将点击添加,输入竞赛名称、竞赛类型、结果时间、结果内容等,输入正确的信息后然后点击“提交”按钮。

提示添加成功

正确

竞赛结果添加模块测试

竞赛结果添加失败的情况

在竞赛页面中不填写结果内容,其他信息正常输入“提交”按钮。

提示“添加失败,结果内容不能为空”

正确

    1. 系统测试结果

通过对学科竞赛管理系统的调试,能够检测学科竞赛管理系统的稳定性,为学科竞赛管理系统正式运行、稳定运行提供了可预测性的维护备案。能够帮助使用者熟悉整个学科竞赛管理系统,并对学科竞赛管理系统可能出现的错误有所了解。本章节提供了部分调试用例及调试日志,可以帮助使用者解决简单的错误问题,也加深了开发者对于此框架下的学科竞赛管理系统编写的了解度,为后期开发者顺利完成学科竞赛管理系统、发布学科竞赛管理系统提供了非常大的帮助。

  • 6 章 结论

本次学科竞赛管理系统的开发使我成长了不少,在此之前我对Java编程还是一知半解,许多编程思想和方法都还没掌握牢靠,比如Bootsatrp、Jquery、AJAX 、Spring、SpringMVC、mybeatis等许多Java Web开发技术,都是在本次学科竞赛管理系统的开发中我逐渐掌握逐渐熟悉的技术。

本次学科竞赛管理系统的开发中我还学会了例如良好的编程思想和完善的规划思想。在着手编程之前需要罗列出程序框架的大概,脑海中构建出程序的主题框架。做好这一步我们才能胸有成竹的经行开发项目。当设计框架了熟于心之后,需要思考本次编程所需的主要知识点和技术点,并充分学习。如此一来项目的开发才能循序渐进、如丝般顺滑,长久以往就能养成良好的开发习惯。一个程序好不好还要看出的bug多不多,如果在项目完成前做好bug的查验与预防可能发生的事故才能保证程序的稳定长久性运行。如果项目在完工后出现各种问题自己,那么在进入社会后,不仅会给公司团队带来麻烦和增加不必要的工作,还会导致客户流失,公司对自己的评价下降。

在本次项目中我也暴露了诸多问题。对于Java的编程知识有所欠缺,环境配置和算法上出现诸多问题,时常导致项目运行出错,或者目标的实现有问题。或者实现想法时算法未优化,使得代码冗长,程序运行不顺畅。

参考文献

[1]潘毅;赖馨粤;林拥军;郭瑞. 新工科背景下大学生专业实践能力培养的探索与实践——以全国大学生结构设计信息技术大赛为例 [J/OL]. 高等建筑教育, 1-9[2023-11-26]

[2]刘红鸽. 基于Java Web的远程数学实验教学系统设计与实现 [J]. 办公自动化, 2023, 28 (19): 31-34.

[3]尹应荆. JAVA编程语言在计算机软件开发中的应用 [J]. 石河子科技, 2023, (05): 45-47.

[4]闫立誉. 基于Java平台开发的软件保护技术探究 [J]. 数字技术与应用, 2023, 41 (08): 199-201.

[5]张雅茹. 基于Java的数据库通用转储工具的研究 [J]. 软件, 2023, 44 (08): 177-180.

[6]袁佩玲;丁星星;张莹. 学科竞赛推动下实验室创新创业能力培养模式探索 [J]. 黑龙江教育(理论与实践), 2023, (08): 72-74.

[7]M.E. L M A A M E F J S V . Does competition management improve the ecophysiological response to water shortage of mixed woodland species of North Patagonia? [J]. Forest Ecology and Management, 2023, 541

[8]杨友法;郭城;汪浩源;许孝整;黄银河;彭凯;章力成;林学志. 基于SpringBoot+Vue技术的学科竞赛管理系统的设计与实现 [J]. 电脑知识与技术, 2023, 19 (10): 54-58.

[9]Wang J L Z T . Reform and Practice of Management Mode of Electronic Information Subject Competitions Based on the Cultivation of Innovative Talents[C]// [出版者不详], 2023:

[10]刘位龙. 强基固本 融合创新 推进信息管理与信息系统专业建设 [J]. 山东教育, 2022, (16): 33-34.

[11]Stefan P K . Entrepreneurial regions at a dead end: competition, management by objectives and decentralization less effective, efficient and legitimate [J]. European Planning Studies, 2021, 29 (10): 1925-1950.

[12]张建林;王锁柱;李猛坤;王瑞梅. 信息管理与信息系统专业创新创业实践教育探索 [J]. 计算机教育, 2021, (09): 77-80.

[13]沈佳棋;倪珊;王杰;丁洁. 基于Vue+SpringBoot的分类学科竞赛管理系统设计 [J]. 无线互联科技, 2020, 17 (17): 74-77.

[14]方伟鉴;曾俊成;唐银翔;叶静. 基于B/S的高校大学生学科竞赛大数据管理系统设计与实现 [J]. 信息通信, 2020, (06): 164-165.

[15]李炳乾. 智慧型校园背景下学科竞赛系统的建设研究 [J]. 吉林广播电视大学学报, 2019, (09): 120-121+160.

[16]习海旭;戴仁俊;白凤娥;史航;高伟. 工程教育专业认证视角下虚拟现实开发人才的培养 [J]. 中国多媒体与网络教学学报(上旬刊), 2019, (08): 136-137+140.

.

致谢

至此论文结束,感谢您的阅读。在此我要感谢我的导师,虽然我在实习期间很忙,论文撰写总是停停改改,但是导师依然十分负责,时不时的询问我的任务进展情况,跟进我的论文进度。虽然我在实习期间很忙,以至于很晚才开始进行论文撰写和编写程序的工作,但是在指导老师的帮助下,我逐步完成了自己的论文和程序,从导师身上也学习到很多知识,和经验,这些知识和经验令我受益匪浅。也从导师身上看到了自己的不足,不论是在即使层面上还是在对待工作的态度上,倒数如同明镜一般照出了我的缺点我的不足。此外,我还要感谢在我实习期间在论文和程序上帮助过我的同学和社会人士,此前我对于springboot框架方面的一些知识还不了解,是他们在我编写程序过程中给了我很多的启发和感想,也帮助了我对于程序的调试和检测。没有他们我是不能顺利完成本次毕业设计的。至此,我的毕业设计就花上了一个圆满的句号了。

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

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值