springboot软件工程课程大作业评分系统(学生端)-计算机毕业设计源码16346

摘要

软件工程课程作为计算机科学与技术专业的重要组成部分,旨在培养学生掌握软件开发的全过程,包括需求分析、设计、编码、测试以及维护等各个环节。大作业作为课程学习的重要实践环节,不仅是学生理论知识应用能力的体现,更是培养学生团队协作精神和创新能力的重要途径。为了更加客观、公正地评价学生在大作业中的表现,我们设计了一套评分系统,以确保评分过程的透明性和一致性,从而为学生提供准确的反馈,帮助他们不断提升软件工程实践能力。接下来,我们可以进一步详细阐述评分系统的具体设计、功能、应用方式以及预期效果等,以便读者对评分系统有一个全面的了解。

本系统以实际运用为开发背景,通过系统管理员可以对所有的学生相关联的一些资料、课程、作业等数据信息进行统一的管理,方便资料的保留。学生可以通过注册,然后登录到系统当中,对课程、作业、资料以及学校通知这些信息进行查询管理。总的来说,系统使用Spring Boot这个框架,数据库采用目前流行的开源关系型数据库mysql。这一系统在前台的技术使用上,使用了目前流行的vue.js,让页面展现得更加的整齐漂亮。

关键词:课程大作业评分系统;Spring Boot框架;mysql数据库

Abstract

As an important component of computer science and technology, software engineering courses aim to cultivate students' mastery of the entire process of software development, including requirements analysis, design, coding, testing, and maintenance. As an important practical part of course learning, homework is not only a reflection of students' ability to apply theoretical knowledge, but also an important way to cultivate their teamwork spirit and innovation ability. In order to objectively and fairly evaluate the performance of students in major assignments, we have designed a scoring system to ensure transparency and consistency in the scoring process, providing accurate feedback to students and helping them continuously improve their software engineering practical abilities. Next, we can further elaborate on the specific design, functions, application methods, and expected effects of the scoring system, so that readers can have a comprehensive understanding of the scoring system.

This system is developed based on practical application, and through the system administrator, it is possible to uniformly manage all student related data information such as materials, courses, and assignments, facilitating the retention of information. Students can register and log in to the system to query and manage information such as courses, assignments, materials, and school notifications. Overall, the system uses the Spring Boot framework and the database uses the popular open-source relational database MySQL. This system uses the currently popular Vue.js technology in the front-end, making the page display more neat and beautiful.

Keywords: Course assignment grading system; Spring Boot framework; MySQL database

随着信息技术的飞速发展,软件工程作为计算机科学与技术专业的核心课程,对于培养学生的实践能力与创新精神具有重要意义。然而,传统的软件工程课程大作业评分方式往往存在主观性强、效率低下、反馈不及时等问题,难以全面、客观地评价学生的作业表现。因此,设计并实现一个高效、便捷的软件工程课程大作业评分系统,成为当前软件工程教育领域亟待解决的重要课题。

通过构建这样一个评分系统,我们可以实现作业评分的标准化、自动化和智能化,提高评分效率和准确性,减少人为因素的影响。同时,系统还能够提供及时的反馈和建议,帮助学生更好地了解自己的作业表现,提升软件工程实践能力。因此,软件工程课程大作业评分系统的选题具有重要的现实意义和应用价值,对于推动软件工程教育的改革与发展具有重要意义。

    1. 课题研究意义

软件工程课程大作业评分系统的选题意义在于通过引入自动化、智能化的评分机制,实现评分过程的优化与升级。这不仅能够大幅度提升评分效率,减轻教师的工作负担,更能确保评分结果的客观性与公正性,从而有效避免人为因素带来的误差。同时,该系统还能为学生提供及时、具体的反馈,帮助他们深入了解自身在软件工程实践中的优势与不足,进而指导他们有针对性地改进学习方法,提升实践能力。此外,评分系统的实施也是软件工程教育现代化、信息化的重要体现,它不仅能够使教学管理更加便捷、高效,还能够为教学改进提供有力的数据支持。因此,选题软件工程课程大作业评分系统,对于推动软件工程教育的持续改进与发展具有深远的意义。

    1. 国内外研究现状

在国外,众多知名高校和研究机构已经在这一领域取得了显著的成果。他们利用自然语言处理、机器学习等先进技术,构建出能够深度分析学生作业内容、自动提取关键信息并进行评分的系统。这些系统不仅能够大幅提高评分效率,减少教师的工作量,还能够确保评分结果的客观性和准确性,避免了人为因素带来的误差。

相比之下,国内在软件工程课程大作业评分系统的研究方面虽然起步稍晚,但近年来也呈现出蓬勃发展的态势。越来越多的高校开始重视这一领域的研究,并投入大量资源进行探索和实践。一些高校已经成功开发出具有自主知识产权的评分系统,并将其应用于实际教学中,取得了良好的效果。这些系统不仅能够自动评分,还能够为学生提供个性化的反馈和建议,帮助他们更好地了解自己的作业表现,进而提升软件工程实践能力。

然而,尽管国内外在软件工程课程大作业评分系统的研究与应用方面取得了一定的进展,但仍存在一些挑战和问题。例如,如何确保评分系统的客观性和公正性、如何提供更为精准和个性化的反馈、如何适应不同教学需求和课程特点等。因此,软件工程课程大作业评分系统的研究与应用仍然具有广阔的发展空间和重要的实践价值,需要更多的研究者投入其中,不断探索和创新。

    1. 论文结构安排

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

第1章 交代了项目的背景以及开发的实际意义。

第2章 对本系统的可行性、功能需求展开分析。

第3章 阐述了项目的总体设计。

第4章 阐明了软件工程课程大作业评分系统详细功能的实现,主要根据技术性的功能模块功能实现。

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

第6章 介绍了软件工程课程大作业评分系统的结论。

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

      1. 经济可行性分析

在开发软件工程课程大作业评分系统中所使用的开发软件像IDEA开发工具、Tomcat8.0服务器、mysql5.7数据库、Photoshop图片处理软件等,这些都是开源免费的,这些环境在学校都进行了系统的学习,自己能够独立操作完成,不需要额外花费,而且系统的开发工具从网上都可以直接下载,因此在经济方面是可行的。

      1. 操作可行性分析

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

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

软件工程课程大作业评分系统的功能需求分析主要围绕学生和后台管理员两大用户群体展开,确保系统能够满足不同用户群体的实际需求,提供高效、便捷的作业评分与反馈服务。

对于学生用户而言,系统首页应提供直观、简洁的界面,方便学生快速了解系统用户和个人作业情况。课程公告模块用于发布课程相关的通知和更新,确保学生能够及时获取课程动态。学习小组模块则支持学生分组学习和协作,促进交流与合作。课程资料模块提供课程相关的学习资料,方便学生随时查阅。平时作业和小组作业模块分别展示学生的个人作业和小组作业情况,包括作业要求、提交状态、成绩等。报名通知模块用于发布课程报名信息,学生可在此查看并完成报名操作。成绩反馈模块则提供作业成绩的详细反馈,帮助学生了解自身表现,指导后续学习。我的账户和个人中心模块包含学生的个人信息、账户设置以及提交作业、查看成绩等功能,方便学生进行个人管理和操作。

对于后台管理员而言,后台首页应提供系统概览和管理入口,方便管理员对系统进行全面管理和维护。系统用户模块管理管理员和学生用户的信息和权限,确保系统的安全性和稳定性。课程资料管理、资料分类管理模块支持管理员对课程资料进行上传、编辑和分类,确保资料的有序性和易访问性。平时作业管理、作业类型管理模块用于设置和管理作业的类型和要求,为学生提供明确的作业指导。提交平时作业管理、平时作业成绩管理、小组作业管理、提交小组作业管理、小组作业成绩管理模块则负责处理学生作业的提交、评分和反馈,确保评分过程的公正、准确和高效。报名通知管理、报名记录管理模块用于发布和管理课程的报名通知和记录,方便管理员进行报名统计和管理。成绩反馈管理模块则用于生成和发送成绩反馈,帮助学生和教师了解作业情况。课程公告管理模块则允许管理员发布课程公告,及时传达系统用户和要求

      1. 非功能性需求分析

软件工程课程大作业评分系统的非功能性需求比如自助软件工程课程大作业评分系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下2-1表格中:

2.1 软件工程课程大作业评分系统非功能需求表

安全性

主要指软件工程课程大作业评分系统数据库的安装,数据库的使用和密码的设定必须合乎规范。

可靠性

可靠性是指软件工程课程大作业评分系统能够安装用户的指示进行操作,经过测试,可靠性90%以上。

性能

性能是影响软件工程课程大作业评分系统占据市场的必要条件,所以性能最好要佳才好。

可扩展性

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

易用性

用户只要跟着软件工程课程大作业评分系统的页面展示内容进行操作,就可以了。

可维护性

软件工程课程大作业评分系统开发的可维护性是非常重要的,经过测试,可维护性没有问题

    1. 系统操作流程
      1. 信息添加流程

软件工程课程大作业评分系统可以实现快速、准确地收集和处理各种信息,而且在使用过程中,只有在按照指定的界面和指定的参考文献,才能够正确地获取和处理信息,而若信息未能满足预期,就会被退出第一步,并且在第二步中,还会继续检查信息的准确性,以确保最终的结果能够满足预期的目标。

图2.2 信息添加流程图

      1. 信息删除流程

无论是何种用户角色,只要进入了不正常的系统操作界面,就可以使用不同的信息内容来进行操作。当用户尝试删除系统中的数据时,必须先ACK这些数据是否已经被删除,如果没有,就应该按照图2.3的指示进行操作,以免影响系统的正常运行。

图2.3 信息删除流程图

    1. 系统用例分析

软件工程课程大作业评分系统学生角色用例图如图2.4所示:

图2.4 学生角色用例图

软件工程课程大作业评分系统中管理员角色用例图如图2.5所示:

图2.5 管理员角色用例图

在分析了项目开发的背景、意义以及其开发的可行性后,接下来就是探讨项目的功能划分,以及具体实现的时候对项目数据库各种表的设计,在本章会做一个系统的介绍。

    1. 系统功能模块设计

系功能模块的设计就是把系统具体要实现哪些功能,功能如何划分做一个系统的架构,以模块图的方式展示出来,方便我们进行功能得罗列以及涉及。在系统的功能方面,项目分成了管理员+学生个模块,每个模块登录进去对应相应的功能,具体的功能模块图如图3.1所示。

图3.1 软件工程课程大作业评分系统功能模块图

    1. 数据库设计

数据库的设计承载者系统的各种数据,在一个系统中各种数据都需要一个专门的容器,数据库就是这个容器,在建立数据库的时候,主要是数据库模型的设计以及各个数据库表的设计两部分。

      1. 数据库概念结构设计

下面是整个软件工程课程大作业评分系统中主要的数据库表总E-R实体关系图。

图3.2 软件工程课程大作业评分系统总E-R关系图

      1. 数据库逻辑结构设计

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

表access_token (登陆访问时长)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

token_id

int

10

0

N

Y

临时访问牌ID

2

token

varchar

64

0

Y

N

临时访问牌

3

info

text

65535

0

Y

N

4

maxage

int

10

0

N

N

2

最大寿命:默认2小时

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

7

user_id

int

10

0

N

N

0

用户编号:

表assignment_type (作业类型)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

assignment_type_id

int

10

0

N

Y

作业类型ID

2

assignment_type

varchar

64

0

Y

N

作业类型

3

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表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

更新时间:

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

表course_materials (课程资料)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

course_materials_id

int

10

0

N

Y

课程资料ID

2

data_name

varchar

64

0

Y

N

资料名称

3

data_classification

varchar

64

0

Y

N

资料分类

4

data_cover

varchar

255

0

Y

N

资料封面

5

data_document

varchar

255

0

Y

N

资料文档

6

data_introduction

longtext

2147483647

0

Y

N

资料介绍

7

uploader

int

10

0

Y

N

0

上传人员

8

teachers_name

varchar

64

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

更新时间

表data_classification (资料分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

data_classification_id

int

10

0

N

Y

资料分类ID

2

data_classification

varchar

64

0

Y

N

资料分类

3

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表group_assignment (小组作业)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

group_assignment_id

int

10

0

N

Y

小组作业ID

2

assignment_name

varchar

64

0

Y

N

作业名称

3

cover

varchar

255

0

Y

N

封面

4

assignment_type

varchar

64

0

Y

N

作业类型

5

homework_file

varchar

255

0

Y

N

作业文件

6

group_members

varchar

64

0

Y

N

小组成员

7

teacher_users

int

10

0

Y

N

0

教师用户

8

teachers_name

varchar

64

0

Y

N

教师姓名

9

assignment_description

text

65535

0

Y

N

作业说明

10

hits

int

10

0

N

N

0

点击数

11

timer_title

varchar

64

0

Y

N

计时器标题

12

timing_start_time

datetime

19

0

Y

N

计时开始时间

13

timing_end_time

datetime

19

0

Y

N

计时结束时间

14

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

15

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表group_assignment_grades (小组作业成绩)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

group_assignment_grades_id

int

10

0

N

Y

小组作业成绩ID

2

submission_number

varchar

64

0

N

N

提交编号

3

assignment_name

varchar

64

0

Y

N

作业名称

4

assignment_type

varchar

64

0

Y

N

作业类型

5

group_members

varchar

64

0

Y

N

小组成员

6

teacher_users

int

10

0

Y

N

0

教师用户

7

teachers_name

varchar

64

0

Y

N

教师姓名

8

student_users

int

10

0

Y

N

0

学生用户

9

student_name

varchar

64

0

Y

N

学生姓名

10

contribution_level

varchar

64

0

Y

N

贡献度

11

homework_correcting

varchar

255

0

Y

N

批改作业

12

grade_score

int

10

0

Y

N

0

成绩分数

13

comment

text

65535

0

Y

N

评语

14

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

15

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

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

表homework_grades (平时作业成绩)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

homework_grades_id

int

10

0

N

Y

平时作业成绩ID

2

submission_number

varchar

64

0

N

N

提交编号

3

assignment_name

varchar

64

0

Y

N

作业名称

4

assignment_type

varchar

64

0

Y

N

作业类型

5

teacher_users

int

10

0

Y

N

0

教师用户

6

teachers_name

varchar

64

0

Y

N

教师姓名

7

student_users

int

10

0

Y

N

0

学生用户

8

student_name

varchar

64

0

Y

N

学生姓名

9

homework_correcting

varchar

255

0

Y

N

批改作业

10

grade_score

int

10

0

Y

N

0

成绩分数

11

comment

text

65535

0

Y

N

评语

12

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

13

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表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

更新时间:

表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已取消

表registration_notice (报名通知)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

registration_notice_id

int

10

0

N

Y

报名通知ID

2

assignment_name

varchar

64

0

Y

N

作业名称

3

cover

varchar

255

0

Y

N

封面

4

assignment_type

varchar

64

0

Y

N

作业类型

5

teacher_users

int

10

0

Y

N

0

教师用户

6

teachers_name

varchar

64

0

Y

N

教师姓名

7

situation_description

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

更新时间

表registration_record (报名记录)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

registration_record_id

int

10

0

N

Y

报名记录ID

2

registration_number

varchar

64

0

Y

N

报名编号

3

assignment_name

varchar

64

0

Y

N

作业名称

4

cover

varchar

255

0

Y

N

封面

5

assignment_type

varchar

64

0

Y

N

作业类型

6

teacher_users

int

10

0

Y

N

0

教师用户

7

teachers_name

varchar

64

0

Y

N

教师姓名

8

student_users

int

10

0

Y

N

0

学生用户

9

student_name

varchar

64

0

Y

N

学生姓名

10

attachment

varchar

255

0

Y

N

附件

11

reason_for_registration

text

65535

0

Y

N

报名理由

12

examine_state

varchar

16

0

N

N

未审核

审核状态

13

examine_reply

varchar

16

0

Y

N

审核回复

14

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

15

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表regular_homework (平时作业)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

regular_homework_id

int

10

0

N

Y

平时作业ID

2

assignment_name

varchar

64

0

Y

N

作业名称

3

cover

varchar

255

0

Y

N

封面

4

assignment_type

varchar

64

0

Y

N

作业类型

5

homework_file

varchar

255

0

Y

N

作业文件

6

teacher_users

int

10

0

Y

N

0

教师用户

7

teachers_name

varchar

64

0

Y

N

教师姓名

8

assignment_description

text

65535

0

Y

N

作业说明

9

hits

int

10

0

N

N

0

点击数

10

timer_title

varchar

64

0

Y

N

计时器标题

11

timing_start_time

datetime

19

0

Y

N

计时开始时间

12

timing_end_time

datetime

19

0

Y

N

计时结束时间

13

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

14

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表score_feedback (成绩反馈)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

score_feedback_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

feedback_date

date

10

0

Y

N

反馈日期

5

assignment_type

varchar

64

0

Y

N

作业类型

6

teacher_users

int

10

0

Y

N

0

教师用户

7

homework_attachment

varchar

255

0

Y

N

作业附件

8

feedback_reasons

text

65535

0

Y

N

反馈原因

9

examine_state

varchar

16

0

N

N

未审核

审核状态

10

examine_reply

varchar

16

0

Y

N

审核回复

11

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

12

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表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

更新时间:

表student_users (学生用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

student_users_id

int

10

0

N

Y

学生用户ID

2

student_id

varchar

64

0

N

N

学生学号

3

student_name

varchar

64

0

Y

N

学生姓名

4

examine_state

varchar

16

0

N

N

已通过

审核状态

5

user_id

int

10

0

N

N

0

用户ID

6

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

7

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表submit_group_assignments (提交小组作业)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

submit_group_assignments_id

int

10

0

N

Y

提交小组作业ID

2

submission_number

varchar

64

0

Y

N

提交编号

3

assignment_name

varchar

64

0

Y

N

作业名称

4

assignment_type

varchar

64

0

Y

N

作业类型

5

group_members

varchar

64

0

Y

N

小组成员

6

teacher_users

int

10

0

Y

N

0

教师用户

7

teachers_name

varchar

64

0

Y

N

教师姓名

8

student_users

int

10

0

Y

N

0

学生用户

9

student_name

varchar

64

0

Y

N

学生姓名

10

contribution_level

varchar

64

0

Y

N

贡献度

11

finish_ones_homework

varchar

255

0

Y

N

完成作业

12

examine_state

varchar

16

0

N

N

未审核

审核状态

13

examine_reply

varchar

16

0

Y

N

审核回复

14

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

15

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表submit_regular_assignments (提交平时作业)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

submit_regular_assignments_id

int

10

0

N

Y

提交平时作业ID

2

submission_number

varchar

64

0

Y

N

提交编号

3

assignment_name

varchar

64

0

Y

N

作业名称

4

assignment_type

varchar

64

0

Y

N

作业类型

5

teacher_users

int

10

0

Y

N

0

教师用户

6

teachers_name

varchar

64

0

Y

N

教师姓名

7

student_users

int

10

0

Y

N

0

学生用户

8

student_name

varchar

64

0

Y

N

学生姓名

9

finish_ones_homework

varchar

255

0

Y

N

完成作业

10

examine_state

varchar

16

0

N

N

未审核

审核状态

11

examine_reply

varchar

16

0

Y

N

审核回复

12

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

13

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

upload_id

int

10

0

N

Y

上传ID

2

name

varchar

64

0

Y

N

文件名

3

path

varchar

255

0

Y

N

访问路径

4

file

varchar

255

0

Y

N

文件路径

5

display

varchar

255

0

Y

N

显示顺序

6

father_id

int

10

0

Y

N

0

父级ID

7

dir

varchar

255

0

Y

N

文件夹

8

type

varchar

32

0

Y

N

文件类型

表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

会员折扣

表user_chat_friend

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_chat_friend_id

int

10

0

N

Y

id

2

user_id

int

10

0

N

N

用户id

3

friend_user_id

int

10

0

N

N

用户好友id

4

friend_user_name

varchar

255

0

Y

N

好友名称

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

表user_chat_group

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_chat_group_id

int

10

0

N

Y

id

2

group_id

int

10

0

Y

N

群聊id

3

group_name

varchar

255

0

Y

N

群聊名称

4

user_id

int

10

0

Y

N

用户id

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

表user_chat_read

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_chat_read_id

varchar

255

0

N

Y

id

2

user_id

int

10

0

Y

N

接收人id

3

send_user_id

int

10

0

Y

N

发送人id

4

group_id

int

10

0

Y

N

群聊id

5

type

int

10

0

Y

N

类型1-点对点消息,2-群聊消息

6

create_time

timestamp

19

0

Y

N

CURRENT_TIMESTAMP

时间

7

message

text

65535

0

Y

N

消息

表user_group (用户组:用于用户前端身份和鉴权)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

group_id

mediumint

8

0

N

Y

用户组ID:[0,8388607]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]

3

name

varchar

16

0

N

N

名称:[0,16]

4

description

varchar

255

0

Y

N

描述:[0,255]描述该用户组的特点或权限范围

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

register

smallint

5

0

Y

N

0

注册位置:

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

管理员和学生在登录界面输入账号+密码,点击“登录”按钮,系统在用户数据库表中会对管理员、学生的账号进行匹配,账号+密码正确的话,就会登录到系统中各个用户的主管理界面,否则提示对应的信息,返回到登录的界面,其主界面展示如下图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.select(map, new HashMap<>()).getResultList();

        }

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

            map.put("email", email);

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

        }

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

            map.put("phone", phone);

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

        }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.select(groupMap, new HashMap<>()).getResultList();

        if (groupList.size()<1){

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

        }

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

        //查询用户审核状态

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

            String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();

            String res = String.valueOf(service.runCountSql(sql).getSingleResult());

            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());

            tokenService.save(accessToken);

            // 返回用户信息

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

图4.2 注册界面图

注册关键代码如下:

@PostMapping("register")

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

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

        Map<String,Object> map = service.readBody(request.getReader());

        query.put("username",String.valueOf(map.get("username")));

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

图4.3 提交作业界面图

    1. 小组作业模块

学生点击“小组作业”页面,可以查看到相关信息详情。并根据详情进行提交作业、评论等操作,界面如下图4.3所示。

图4.3 小组作业界面图

    1. 系统用户模块

管理人员是可以对注册的用户和作者用户进行管理的,也可以对管理员进行管控界面如下图4.5所示。

图4.5 系统用户界面图

系统用户的逻辑代码如下所示。

  @PostMapping("/add")

    @Transactional

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

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

        return success(1);

    }

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

    service.insert(map);

     return success(1);

 }

    1. 资料分类管理模块

点击“资料分类管理”按钮会显示出所有的资料分类信息,支持对资料分类管理的增删改查操作界面如下图4.6所示。

图4.6 资料分类管理界面图

    1. 课程资料模块

学生点击“课程资讯”页面,可以查看到相关信息详情。并根据详情进行点赞、评论等操作界面如下图4.7所示。

图4.7 课程资料界面图

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

    1. 系统部分测试

用户登录功能测试:

表5.1 用户登录功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

用户登录模块测试

用户登录成功的情况

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

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

正确

系统用户添加功能测试:

表5.2 系统用户添加功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

系统用户添加模块测试

系统用户添加成功的情况

在系统用户的页面中将点击添加,输入系统用户关信息,输入正确的信息后然后点击“提交”按钮。

提示添加成功

正确

系统用户添加模块测试

系统用户添加失败的情况

在系统用户页面中不填写的名称、类型信息,其他信息正常输入“提交”按钮。

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

正确

密码修改功能测试:

表5-3 密码修改功能测试表

用例名称

密码修改测试用例

目的

测试管理员密码修改功能

前提

管理员用户正常登录情况下

测试流程

1)管理员密码修改并完成填写。

2)点击进行提交。

预期结果

使用新的密码可以登录

实际结果

实际结果与预期结果一致

    1. 系统测试结果

通过编写软件工程课程大作业评分系统的测试用例,已经检测完毕用户的登录模块、系统用户添加模块、修改密码模块的功能测试,在对以上功能得测试过程中,发现了系统中的很多漏送并进行了完善,经过多人在线进行测试,系统完全可以正常运行,当然在后期的维护中系统将不断完善。

软件工程课程大作业评分系统对学生用户而言,是一个极具价值的学习辅助工具。通过这一系统,学生能够更加便捷地管理自己的作业,随时了解作业提交状态、成绩及反馈,从而及时调整学习方法和策略。系统提供的个性化反馈机制,不仅帮助学生明确自己在软件工程实践中的优势与不足,还为他们提供了具体的改进建议,促进了学生的自主学习和持续改进。此外,系统还为学生提供了一个互动交流的平台,通过学习小组等功能,促进了学生之间的合作与交流,提升了学习效果。综上所述,软件工程课程大作业评分系统对学生用户而言,具有极大的实用价值,有助于提升学生的软件工程实践能力和学习效果。

参考文献

[1]李红艳,陈炜,王玲,等. 基于人工智能的舞蹈动作识别与评分系统开发 [J]. 天津理工大学学报, 2024, 40 (02): 26-33.

[2]Zakia K S ,Vaibhav A ,Yin T C . Using software metrics for predicting vulnerable classes in java and python based systems [J]. Information Security Journal: A Global Perspective, 2024, 33 (3): 251-267.

[3]DiMolfetta D . Hackers tried to breach, disable widely used open-source Java tools, groups warn [J]. Nextgov.com (Online), 2024,

[4]Anjaningrum D W ,Azizah N ,Suryadi N . Spurring SMEs’ performance through business intelligence, organizational and network learning, customer value anticipation, and innovation - Empirical evidence of the creative economy sector in East Java, Indonesia [J]. Heliyon, 2024, 10 (7): e27998-.

[5]李志平,张永胜,徐辉景,等. 基于人工智能的CT影像加权评分系统对肺结节良恶性鉴别的价值 [J]. 浙江医学, 2024, 46 (07): 703-709.

[6]李明,冯树栋,白宗文,等. 基于SpringBoot的成果需求匹配系统设计与实现 [J]. 延安大学学报(自然科学版), 2024, 43 (01): 90-95. DOI:10.13876/J.cnki.ydnse.230026.

[7]刘慧玲,谭定英,陈平平. 基于SpringBoot和Vue.js的大学生团队管理系统的设计 [J]. 电脑编程技巧与维护, 2024, (03): 120-122. DOI:10.16184/j.cnki.comprg.2024.03.039.

[8]付俊峰,魏博文,黄佩兵,等. 基于Java平台的超大发电装备运载线路数值测试方法 [J]. 三峡大学学报(自然科学版), 2024, 46 (02): 98-105. DOI:10.13393/j.cnki.issn.1672-948X.2024.02.015.

[9]徐姗,蒋玉婷,李峥,等. 改良中医危重症评分系统的实践应用 [J]. 中医药管理杂志, 2024, 32 (05): 250-252. DOI:10.16690/j.cnki.1007-9203.2024.05.024.

[10]乔善平,黄艺美,吴鹏,等. 基于案例驱动的Java程序设计课程教学模式改革与实践 [J]. 计算机教育, 2024, (03): 95-100. DOI:10.16512/j.cnki.jsjjy.2024.03.040.

[11]张建兵,方紫玉. 混合式教学模式下Java语言程序设计过程性考核实践探索 [J]. 电脑知识与技术, 2024, 20 (07): 168-170. DOI:10.14004/j.cnki.ckt.2024.0431.

[12]徐少军,李宗哲,梅杰,等. 基于Springboot+Vue框架的质量检验监督管理系统研发 [J]. 纺织标准与质量, 2024, (01): 11-14+21.

[13]钟思苗,陈瑞芳,彭月星,等. 彩色多普勒超声评分系统在卵巢-附件肿块良恶性诊断中的效能评估 [J]. 大医生, 2024, 9 (03): 4-7.

[14]武英楷,朱新峰,宁尚攀,等. 股骨近端抗旋转髓内钉稳定评分系统的预测价值 [J]. 中国矫形外科杂志, 2024, 32 (02): 121-126.

[15]吴伶琳. 基于SpringBoot的客户关系管理系统设计与实现 [J]. 无线互联科技, 2023, 20 (24): 60-62.

[16]武际斌,段良华,金永亮. 基于Vue+SpringBoot的课程思政素材库的设计与实现[C]// 百色学院马克思主义学院. 2023年思想政治教育论坛论文集. 山东信息职业技术学院;, 2023: 3. DOI:10.26914/c.cnkihy.2023.087218.

[17]智达公交数字化评分系统 引领赛事评判进入智能新时代 [J]. 城市公共交通, 2023, (12): 112-113.

[18]游晶,邱淑丽,李敬文. 基于SpringBoot的校园智慧报修系统的设计与实现 [J]. 电脑知识与技术, 2023, 19 (32): 50-52+65. DOI:10.14004/j.cnki.ckt.2023.1718.

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

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

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

[22]林健民. 桥门式起重机作业人员实操考试自动评分系统实现方法的研究 [J]. 中国设备工程, 2020, (16): 246-247.

致谢

在软件工程课程大作业评分系统的研发过程中,我们得到了众多人的支持与帮助,在此表示衷心的感谢。首先,感谢指导老师的悉心指导和耐心解答,他们的专业知识和丰富经验为我们提供了宝贵的指导。同时,也要感谢团队成员们的辛勤付出和默契配合,正是大家的共同努力,才使得系统能够顺利开发并投入使用。此外,还要感谢学校提供的良好研发环境和资源支持,为我们创造了良好的研究条件。最后,感谢所有参与系统测试和使用的学生们,他们的反馈和建议为系统的完善提供了重要依据。再次向所有给予我们支持和帮助的人表示衷心的感谢!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值