(附源码)基于ssm远程作业提交系统-计算机毕设 34096

远程作业提交系统

 

科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代。在现实运用中,应用软件的工作规则和开发步骤,采用Java技术建设远程作业提交系统。

本设计主要实现集人性化、高效率、便捷等优点于一身的远程作业提交系统 ,完成课程安排、课程作业、作业提交、作业批改、通知公告、系统用户等功能模块。系统通过浏览器与服务器进行通信,实现数据的交互与变更。本系统通过科学的管理方式、便捷的服务提高了工作效率,减少了数据存储上的错误和遗漏。远程作业提交系统使用Java语言,采用基于 MVVM模式的ssm技术进行开发,数据方面主要采用的是微软的MySQL关系型数据库来作为数据存储媒介,配合前台HTML+CSS 技术完成系统的开发。

关键词:远程作业提交系统 ;MYSQL数据库;ssm框架

Remote Job Submission System

Abstract

The rapid development of technology has caused tremendous changes in people's daily lives, and the rapid development of electronic information technology has popularized and applied the application level of electronic information technology in various fields. The arrival of the information age has become an unstoppable fashion trend, and the history of human development is entering a new era. In practical applications, the working rules and development steps of the application software are constructed using Java technology to construct a remote job submission system.

This design mainly implements a remote homework submission system that combines the advantages of humanization, efficiency, and convenience, completing functional modules such as course arrangement, course assignments, homework submission, homework correction, notification and announcement, and system users. The system communicates with the server through a browser to achieve data interaction and changes. This system improves work efficiency and reduces errors and omissions in data storage through scientific management and convenient services. The remote job submission system uses the Java language and adopts the MSM technology based on MVVM mode for development. In terms of data, Microsoft's MySQL relational database is mainly used as the data storage medium, and the system development is completed with the foreground HTML+CSS technology.

Key words: Remote homework submission system; MYSQL database; SSM framework

  

 

ABSTRACT

  

1 绪论 1

1.1研究背景 1

1.2研究现状 1

1.3研究内容 1

第2章 开发技术介绍 3

2.1 B/S架构

2.2 MySQL数据库

2.3 ssm框架介绍 4

3 系统分析 6

3.1可行性分析 6

3.1.1经济可行性 6

3.1.2技术可行性 6

3.1.3操作可行性 6

3.1.4 时间可行性 7

3.1.5 法律可行性 7

3.2需求分析 7

3.3业务流程分析 7

3.4数据流程分析 8

4 系统设计 9

4.1系统结构设计 9

4.2功能模块设计 9

4.3数据库设计 10

4.3.1 E-R图设计 10

4.3.2表设计 11

5  系统实现 20

5.1 学生功能模块 20

5.2 教师功能模块 21

5.3管理员功能模块 22

6  系统测试 25

6.1 程序测试基本概念 25

6.2 程序测试具体内容 25

6.2.1 测试的重要性及目的 25

6.2.2登录测试 25

6.2.3学生管理模块测试 26

6.3 系统的优点 27

7  总结 38

   29

参考文献 30

1 绪论

1.1研究背景

社会主义进入新时代,经济实力越来越强。我们也变得越来越忙碌、对生活的要求也变得更加严格,对快速和方便的服务的需求也在逐渐增加。因此,对教学行业的管理、服务的要求也越来越严格。为适应时代的发展,各大学校开始广泛地使用电脑来进行管理,为提高工作人员效率提供了一种新的方式,并且减轻了他们的工作强度,在树立学校形象的同时,为学生提供更加方便、简单而高效的服务,实现双赢。

本系统即为方便管理员、教师、学生而制作的远程作业提交系统,结合了学生的需求,设计出的一个基于Java、MySQL的远程作业提交系统。

1.2研究现状

2021年处于信息高速发展的大背景之下。在今天,缺少手机和电脑几乎已经成为可能的事情,人们生活中已经难以离开手机和电脑。针对增加的成本管理和操作,学校非常有必要建立自己的远程作业提交系统,这既可以让更多的人体验到网络所带来的方便。

以往的三亚技师学院远程作业提交系统相关信息管理,都是工作人员手工统计。这种方式不但时效性低,而且需要查找和变更的时候很不方便。随着科学的进步,技术的成熟,计算机信息化也日新月异的发展,社会也已经深刻的认识,计算机功能非常的强大,计算机已经进入了社会发展的各个领域,并且发挥着十分重要的作用。本系统利用网络沟通、计算机信息存储管理,有着与传统的方式所无法替代的优点。比如计算检索速度特别快、可靠性特别高、存储容量特别大、保密性特别好、可保存时间特别长、成本特别低等。在工作效率.上,能够得到极大地提高,延伸至服务水平也会有好的收获,有了网络,远程作业提交系统的各方面的管理更加科学和系统化,更加规范和简便。

本文所设计的远程作业提交系统就是在这种客观条件下进行的,是一项利民利国的、非常有价值的教学。在远程作业提交系统管理方面,传统的管理方式显然无法与远程作业提交系统相比,远程作业提交系统正发挥着越来越重要的作用。远程作业提交系统的速度快、信息量大、安全、简单都是传统模式难以企及的优点,正在发挥着越来越重要的作用。在本文中的远程作业提交系统是一个基于MySQL数据库和SSM框架的。

1.3研究内容

1.不同管理员的登录问题:根据管理员的类别(管理员、学生、教师)实现管理员操作权限的区分并显示不同的操作界面。

2.数据库的连接问题:数据库连接为系统中的关键技术。

3.数据的一致性和安全问题:本系统必须保证数据的一致性和安全,才能实现有效的管理。不能让没有权限的管理员对数据进行操作并且定期对数据库进行备份。

4.界面开发:系统界面的设计很重要,要使界面具有亲和力。

5.分析信息化现状;

6.研究远程作业提交系统的现状及存在的问题;

7.研究系统平台的总体架构、总体设计、数据库设计、数据库安全设计及功能设计;

8.研究平台各个子系统的功能及实现的方法、信息技术的融合、信息安全技术的维护;

9.进行远程作业提交系统的功能设计。

2 开发技术介绍

2.B/S架构

B/S架构(浏览器/服务器)是当前应用最为广泛的一种架构,能够使系统的开发变得容易、易操作、易于维护。当你在你的电脑上安装一个数据库和几个非常常见的浏览器时,你就可以使用这个结构。B/S结构可以直接用于 B/S系统,并且 B/S架构可以在实际应用中大大降低了系统的运行维护。在 B/S平台上,各数据库彼此独立,具有很高的安全性。由于 B/S架构可以清晰地观察到系统所处理的业务,使管理者可以及时做出决定,从而避免了企业的亏损。B/S架构的本质特征是集中式管理,用户通过系统产生的数据,将其存入数据库,便于以后的应用,从而达到了各种需要。

B/S模型由一个浏览器、一个网络服务器、一个数据库服务器三个层级构成。数据管理采用了当前大部分现有B/S系统的表现层、应用层和数据层,Web浏览器是为了满足用户的要求而设计的,在数据处理和逻辑过程中使用的中间应用层,从而形成分布式的运行模式。B/S体系结构的逻辑是:在前端完成的处理,将主要的业务逻辑交给后台,而前端只负责少量的请求、渲染等。由于因特网技术的迅速发展,B/S体系结构使得任何时间、任何地点都能访问到该系统。

图2-1 B/S模式三层结构图

2.2 MySql数据库

Mysql的语言是非结构化的,用户可以在数据上进行工作。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。并且因为Mysql的语言和结构比较简单,但是功能和存储信息量很强大,所以得到了普遍的应用。

Mysql数据库在编程过程中的作用是很广泛的,为用户进行数据查询带来了的方便。Mysql数据库的应用因其灵活性强,功能强大,所以在实现某功能时只需要一小段代码,而不像其他程序需要编写大段代码。总体来说,Mysql数据库的语言相对要简洁很多。

数据流程分析主要就是数据存储的储藏室,它是在计算机上进行的,而不是现实中的储藏室。数据的存放是按固定格式,而不是无序的,其定义就是:长期有固定格式,可以共享的存储在计算机存储器上。数据库管理主要是数据存储、修改和增加以及数据表的建立。为了保证系统数据的正常运行,一些有能力的处理者可以进行管理而不需要专业的人来处理。数据表的建立,可以对数据表中的数据进行调整,数据的重新组合及重新构造,保证数据的安全性。介于数据库的功能强大等特点,本系统的开发主要应用了Mysql进行对数据的管理。

2.ssm框架介绍

SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容)。常作为数据源较简单的web项目的框架。

 Spring
Spring就像是整个项目中装配bean的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。也可以称之为项目中的粘合剂。
Spring的核心思想是IoC(控制反转),即不再需要程序员去显式地`new`一个对象,而是让Spring框架帮你来完成这一切。
 SpringMVC
SpringMVC在项目中拦截用户请求,它的核心Servlet即DispatcherServlet承担中介或是前台这样的职责,将用户请求通过HandlerMapping去匹配Controller,Controller就是具体对应请求所执行的操作。SpringMVC相当于SSH框架中struts。
 mybatis
mybatis是对jdbc的封装,它让数据库底层操作变的透明。mybatis的操作都是围绕一个sqlSessionFactory实例展开的。mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。

页面发送请求给控制器,控制器调用业务层处理逻辑,逻辑层向持久层发送请求,持久层与数据库交互,后将结果返回给业务层,业务层将处理逻辑发送给控制器,控制器再调用视图展现数据。

3 系统分析

3.1可行性分析

本文的设计的系统将会分别从经济的可行性,技术的可行性以及操作的可行性等方面进行全面的可行性的分析。

3.1.1经济可行性

本系统是远程作业提交系统,面向的是电脑用户所以成本并不高,维护和调试只需个别成员参与,所以人力投入也很少。虽说人力和资金的投入不是很多,但是面临的增益是十分的可观尤其是从长远角度来看,所谓知识是无价的,而保管者需要面临很多困扰,而远程作业提交系统很大程度上解决了这一问题,未来,需要投入到资源保管的人十分的少,不需要很多的人就够了,人少却又能保证信息的安全,那么对人员的资金就可以减少不少,并且工作人员并不会很辛苦。

使用的数据库是MySQL数据库,对于小型网站来讲是很低的成本,大大减少了空间,而原有的空间则可以用来处理别的事物。

3.1.2技术可行性

在技术方面也是完全可以做到的,目前所拥有的技术足以开发出一个完整的远程作业提交系统。因为面向的对象较为单一,所以所需要的技术并不复杂,皆是学校内所学到的知识,而且所需要的工具也不是很复杂。本系统采用ssm技术、Java编程语言和Mysql数据库进行开发设计,作为计算机专业学生,在学校期间就接触到许多关于编程方面的知识,当然也包括各种编程软件,对他们的了解度也比较系统,所以从技术方面来讲也是可以实行的。

3.1.3操作可行性

本系统的开发,运用的是基础技术,面向的是单一群体,所以不会造成信息拥堵和崩溃的局面,所以运行时是可以较快的执行用户的命令的。而存在于页面的数据都会以表单的形式传送到数据库,所以不会造成混乱。

就目前而言,计算机普及的时代,学习维护和运用系统并不会很困难,所以人员方面是可以实行的,而且系统可以运用在不同的计算机上,所以这里也是可以运行的。

3.1.4 时间可行性

就时间而言,因为项目并不是很庞大,所以是可以在时间范围内完成的。但是需要好好把握时间的安排,因为本次毕业设计是单人的,所以需要自我监督和敦促,不能见异思迁,一定要先有一个明确的时间规划表。才能在有限的时间内完成本系统

3.1.5 法律可行性

本系统所用的技术和资源均是合法的,引用的部分都有注明,参考文献等也是合乎规定的,是属于个人的创作成果,没有涉及到危害他人的知识产权的行为

3.2需求分析

针对现存的问题和需要,通过功能需求的分析,特建立了数字化、信息化的远程作业提交系统。

本系统主要包含了登录、课程安排、课程作业、作业提交、作业批改、通知公告、系统用户、学生疑问管理、教师解答管理、系统管理等多个功能模块。下面分别简单阐述一下这几个功能模块需求。不同的权限对应相应的功能模块的需求,管理员权限的级别是最高的,所以所对应的需求是最多的,根据不同的权限分别简单阐述一下各个权限的需求。

3.3业务流程分析

总体业务流程:以管理员的身份在登录页面输入账号和密码,经过数据库身份验证,验证成功后登录系统主页,可以使用系统,管理系统等功能操作 。

系统的业务流程如下图所示。

3-1系统业务流程图

3.4数据流程分析

数据流图的简称为DFD,是通过使用图形的方法对系统所具备的逻辑功能进行阐述,描述系统数据的流向和逻辑变换。由于该方法能将难以阐述的问题进行表述,因此被开发者广泛应用,是当前应用范围较为广泛的结构化系统分析方法。

零层数据流程是流程中最抽象的一层,它包括了登录管理、管理员功能管理和检索维护管理等功能模块,在登录模块使用到的数据存储有管理员账户信息文档、管理员信息文档,管理员功能管理模块需要的存储是管理员添加信息文档、查询信息文档、删除信息文档,检索维护是通过以上这些文档信息通过关键词进行搜索。

系统的1层数据流图如下图所示。

3-2系统数据流图(1层)

2层为管理员操作后台数据流图,管理员可以分别通过添加、修改和删除来对系统管理员进行管理,如下图所示:

3-4系统数据流图(2层)

4 系统设计

4.1系统结构设计

系统设计主要是管理员登录后对整个系统相关操作进行处理,可进行管理员的添加和删除,系统后台首页、课程安排、课程作业、作业提交、作业批改、通知公告管理等操作。

系统的功能结构图如下图所示。

     

4-1系统功能结构图

4.2功能模块设计

系统登录:系统登录是管理员访问系统的路口,设计了系统登录界面,包括管理员名、密码和验证码,然后对登录进来的管理员判断身份信息,判断是管理员管理员还是普通用户。

管理员管理:管理员可以管理系统的其他普通用户的账号,包括录入新管理员,删除现有的普通用户,修改现有的普通用户的信息,并可以通过管理员名和姓名等关键字搜索普通用户,打印管理员列表页面,导出管理员列表至excel中。

修改密码:系统所有管理员(管理员和学生用户教师用户)应该都要能修改自己的登录密码,修改后需要重新登录。

个人资料管理:由普通用户使用,普通用户登录系统后,可以修改个人原始信息,如修改电话号码、邮箱等,管理员的管理员名是无法修改的。

登录情况管理:系统每个管理员应该都能查看个人的历史登录情况,如登录IP、登录时间、登录地址等,防止管理员账号被盗,加强管理员账号安全。

4.3数据库设计

系统里尤为关键的部分是在数据库方面,需要十分清晰的思路,所以从开始的设计时需要做到确立模块之间的联系,从而可以很明确的建立表间的联系和表中所需的内容。设计数据库还有一点是减少表的繁杂的创建,所以联系很关键,可以大大的减少,数据表中重复的事项。由此可以保证数据的完整和统一,不会造成数据的错误和重复,并且可以使数据得到数据库安全的保护,会使用户更加的放心

4.3.1 E-R图设计

概念设计是整个数据库设计的关键,在概念设计阶段,由需求分析得到了E-R模型。E-R图是识别功能模型与数据模型间关联关系的,在主题数据库的抽取和规范化的过程中,采用的是简化的E-R图表示方法,从而避免过繁过细的E-R图表示影响规划的直观和可用性。是对现实世界的抽象和概括,是数据库设计人员进行数据可设计的有力工具,能够方便直接地表达应用中的各种语义知识,令一方面它简单、清晰、易于用户理解

管理员实体包括管理员名称、密码和权限三个属性。

学生用户ER图如下图所示。

4-2学生用户ER

课程作业ER图如下图所示。

4-3课程作业ER

4.3.2表设计

数据库表是数据库重要的组成部分,其实数据库只是一个框架,数据库表才是数据库的本质,本系统数据库表如下:

表course_arrangement (课程安排)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

course_arrangement_id

int

10

0

N

Y

课程安排ID

2

course_no

varchar

64

0

Y

N

课程编号

3

course_name

varchar

64

0

Y

N

课程名称

4

class_name

varchar

64

0

Y

N

班级名称

5

teacher

int

10

0

Y

N

0

任课教师

6

teachers_name

varchar

64

0

Y

N

教师姓名

7

class_time

varchar

64

0

Y

N

上课时间

8

class_location

varchar

64

0

Y

N

上课地点

9

recommend

int

10

0

N

N

0

智能推荐

10

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

11

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表course_assignment (课程作业)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

course_assignment_id

int

10

0

N

Y

课程作业ID

2

course_no

varchar

64

0

Y

N

课程编号

3

course_name

varchar

64

0

Y

N

课程名称

4

teacher

int

10

0

Y

N

0

任课教师

5

class_name

varchar

64

0

Y

N

班级名称

6

job_name

varchar

64

0

Y

N

作业名称

7

operation_content

text

65535

0

Y

N

作业内容

8

related_attachments

varchar

255

0

Y

N

相关附件

9

submission_time

datetime

19

0

Y

N

提交时间

10

recommend

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

更新时间

表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_correction (作业批改)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

homework_correction_id

int

10

0

N

Y

作业批改ID

2

course_no

varchar

64

0

Y

N

课程编号

3

course_name

varchar

64

0

Y

N

课程名称

4

job_name

varchar

64

0

Y

N

作业名称

5

teacher

int

10

0

Y

N

0

任课教师

6

student

int

10

0

Y

N

0

学生

7

student_name

varchar

64

0

Y

N

学生姓名

8

score

varchar

64

0

Y

N

评分

9

reply

longtext

2147483647

0

Y

N

批复

10

recommend

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

更新时间

表job_submission (作业提交)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

job_submission_id

int

10

0

N

Y

作业提交ID

2

course_no

varchar

64

0

Y

N

课程编号

3

course_name

varchar

64

0

Y

N

课程名称

4

teacher

int

10

0

Y

N

0

任课教师

5

job_name

varchar

64

0

Y

N

作业名称

6

student

int

10

0

Y

N

0

学生

7

student_name

varchar

64

0

Y

N

学生姓名

8

enclosure

varchar

255

0

Y

N

附件

9

submission_content

longtext

2147483647

0

Y

N

提交内容

10

recommend

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

更新时间

表notice_announcement (通知公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

notice_announcement_id

int

10

0

N

Y

通知公告ID

2

title

varchar

64

0

Y

N

标题

3

publisher

varchar

64

0

Y

N

发布人

4

published_on

date

10

0

Y

N

发布时间

5

relevant_attachments

varchar

255

0

Y

N

相关附件

6

content

text

65535

0

Y

N

内容

7

recommend

int

10

0

N

N

0

智能推荐

8

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

9

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

class_name

varchar

64

0

Y

N

班级名称

5

examine_state

varchar

16

0

N

N

已通过

审核状态

6

recommend

int

10

0

N

N

0

智能推荐

7

user_id

int

10

0

N

N

0

用户ID

8

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表teacher_user (教师用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

teacher_user_id

int

10

0

N

Y

教师用户ID

2

teacher_id

varchar

64

0

N

N

教师工号

3

teacher_name

varchar

64

0

Y

N

教师姓名

4

examine_state

varchar

16

0

N

N

已通过

审核状态

5

recommend

int

10

0

N

N

0

智能推荐

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

更新时间

表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

文件类型

第5章  系统实现

5.1 学生功能模块

在登录页面输入用户名、密码进行验证点击登录系统,如图5-1所示。

图5-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;

        QueryWrapper wrapper = new QueryWrapper<User>();

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

            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, "账号或密码不正确");

        }

}

    public String select(Map<String,String> query,Map<String,String> config){

        StringBuffer sql = new StringBuffer("select ");

        sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");

        sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));

        if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){

            sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");

        }

        if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){

            sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");

        }

        if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){

            int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;

            int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;

            sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);

        }

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

        return sql.toString();

}

    public List selectBaseList(String select) {

        List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);

        List<E> list = new ArrayList<>();

        for (Map<String,Object> map:mapList) {

            list.add(JSON.parseObject(JSON.toJSONString(map),eClass));

        }

        return list;

}

作业批改;在作业批改页面中可以查看课程编号、课程名称、作业名称、任课教师、学生、学生姓名等内容;并进行详细操作,如图5-2所示。

图5-2作业批改界面图

通知公告;在通知公告页面中查看标题、发布人、发布时间、相关附件、内容等内容;并进行详细操作,如图5-3所示。 

图5-3通知公告界面图

作业提交;在作业提交页面中查看课程编号、课程名称、任课教师、作业名称、学生、学生姓名等内容;并进行详细操作,如图5-4所示。 

图5-4作业提交界面图

5.2 教师功能模块

教师登录进入远程作业提交系统可以查看:课程安排、课程作业、作业提交、作业批改、通知公告等功能,并进行详细操作,如图5-5所示。

图5-5 教师功能界面图

课程安排管理;在课程安排页面中通过填写课程编号、课程名称、班级名称、任课教师、教师姓名、上课时间、上课地点等内容;并进行查询、添加、修改操作;如图5-6所示。

图5-6 课程安排界面图

课程作业,在课程作业页面中可以看到课程编号、课程名称、班级名称、任课教师、作业名称、相关附件、提交时间等,并进行查询、添加、修改操作,如图5-7所示。

图5-7课程作业界面图

5.3管理员功能模块

管理员登录进入页面可以查看课程安排、课程作业、作业提交、作业批改、通知公告、系统用户等功能并进行详细操作,如图5-8所示。

图5-8管理员功能界面图

学生用户管理;在学生用户管理页面中可以对昵称、用户名、学生学号、学生姓名、班级名称等内容进行查看、添加、修改或删除等操作,如图5-9所示。

图5-9学生用户管理界面图

用户管理代码如下。

public List selectBaseList(String select) {

        List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);

        List<E> list = new ArrayList<>();

        for (Map<String,Object> map:mapList) {

            list.add(JSON.parseObject(JSON.toJSONString(map),eClass));

        }

        return list;

}

课程安排管理,在课程安排管理页面中可以查看课程编号、课程名称、班级名称、任课教师、教师姓名、上课时间、上课地点等内容,并可根据需要进行查看、添加、修改或删除等操作,如图5-10所示。

图5-10课程安排管理界面图

课程作业管理,在课程作业管理页面中可以查看课程编号、课程名称、任课教师、班级名称、作业名称、作业内容等内容,并可根据需要进行查看、添加、修改或删除等操作,如图5-11所示。

图5-11课程作业管理界面图

作业提交管理,在作业提交管理页面中可以查看课程编号、课程名称、任课教师、作业名称、学生、学生姓名等内容,并可根据需要进行批改、查看、添加、修改或删除等操作,如图5-12所示。

图5-12 作业提交管理界面图

    

通知公告管理,在通知公告管理页面中可以查看标题、发布人、发布时间、相关附件、内容等内容,并可根据需要进行查看、添加、修改或删除等操作,如图5-13所示。

图5-13 通知公告管理界面图

6  系统测试

6.1 程序测试基本概念

程序测试是很重要的一个环节,当自身的程序已经完成时,仍需要测试来保证程序的正确性和可靠性,因为往往此时出现的错误就是用户可能会出现的错误,所以调试变得至关重要。唯有经过多次的调试才能够使系统达到完美的状态,使得用户可以安全,放心的使用程序,保障用户信息的安全是每个系统最基本的需求,因而调试也就是系统的最基本的要求。但是为了保证说最大程度减少开发者的工作量,应当分三个阶段来测试,初期,中期和最终期。前期:主要调试模块间的关系部分,看看是否是正确的,合理的,否则到后面会造成难以修改和总是出错的现象。中期:插入部分数据,看看是否数据库方面连接和设计得当,有些时候理念存在的是不能够在现实中完美实现的,并且调试界面找到最优的布局。最终期:插入全部数据,看是否正确,修改页面看是否能达到最初预期效果,检查功能是否完全实现。

6.2 程序测试具体内容

6.2.1 测试的重要性及目的

1.测试的重要性

只有经过反复的测试,才能够使系统得到最稳定的状态,才能把最好的一面展现给使用的用户,是极为关键的一个步骤。但是往往也是大家极容易忽视的一个部分,因为绝大部分的人认为这个部分是不重要的,但事实并非如此,任何系统不管怎样做都不可能完全去除错误,所以需要测试来最大程度的降低和减少错误。要在多环境下进行测试,以保证用户能够在不同环境配置下都能够正常使用。大多数,用户的需求是不断更新的,所以测试具有十分重要的意义,能够及时的把握到用户的最新动态,做出对系统的修改。

测试的目的

测试是为了让用户能够使用到系统的最好一面,能够充分利用到系统内的跟自己相关的部分。另一方面,从系统开发者的角度来说,这个举措有助于开发者在开发系统的同时能够与用户保持有好的关系,能够使开发的系统减少最多的错误和误差,并且有助于开发,边测试边开发,能够及时解决用户的需求,而开发者也能够减少返工的工作量,保证开发是朝着正确的道路前进的,并且对于用户来说能够定期看到一定的工作成果,也是更有助于提出更好的意见,而不是到末期突然提出大量的工作需求。这样可以使得用户和开发者之间的关系得到一定程度的改善,而开发者也从中得到更多改善系统的方向。

6.2.2登录测试

登录及管理员添加模块是对各个系统中不可缺少的功能之一,为了对在运行过程能正常的操作本项目就要对此进行测试。

1. 使用不同浏览器访问服务器的IP地址。

2. 输入特殊的信息登录系统,例如边界值等。

3. 查看登录及管理员添加之后登录系统所返回的结果。

无论系统管理员还是用户登录时都需要用户名和密码进行登录,当输入正确的用户名和密码观察是否正常登录。登录测试表如下表6-1所示:

6-1登录测试表

名称

功能名称

操作阐述

期盼结果

测试结果

登录信息管理

登录

系统管理员登录时输入

账号:admin密码:admin

进入后台主页面

成功

添加用户登录时输入

账号:zhangchao密码:000000

进入系统首页

成功

管理员可以管理添加教师的信息。添加测试表如下表6-2所示:

6-2添加测试表

名称

功能名称

操作阐述

期盼结果

测试结果

添加信息管理

添加

管理员进入添加教师管理页面

成功显示所有添加教师列表

成功

管理员进入添加教师管理页面,点击删除按钮

删除成功,出现删除成功的提示

成功

教师进入添加页面,按提示输入添加教师信息

添加成功,出现添加成功的提示

成功

6.2.3学生管理模块测试

学生管理信息模块对本界面中的数据和信息进行相对应得基本操作,主要有查看学生,删除学生等。

管理员在可以查看并删除学生。学生管理如表6-3所示:

6-3学生管理测试表

模块名称

功能名称

操作描述

预期结果

测试结果

学生信息管理

查看

管理员进入学生管理页面,查看学生 

所有学生均显示

成功

删除

管理员进入学生管理页面,点击删除按钮 

弹窗提示,删除成功

成功

6.3 系统的优点

本系统的优点在于界面简单,对于有计算机基本操作的人群均可以高效的使用,查询功能可以使使用者在大量的数据搜索时能够快速的找到所需要的内容,开发的结构简单所以便于日后进行维护和更新功能。信息的添加和查询,使得资源得到了充分的利用。功能并不复杂所以执行速度也较快,所以用户可以得到比较良好的体验,系统内部的增删改查也比较人性化,所以比较快捷和精准。用户为管理员用户,而身份而判别使得系统比较明了,更具有安全性,系统内的数据是得到了一定的保护的。而页面上添加用户,新增添了的一个优势在于,添加后的用户,需得到管理员的审核才能够使用,避免了恶意添加或是恶意进入用户内部的举动。并且管理员据有最高权限,保证数据的安全

7  总结

经过几个月的努力还坚持,远程作业提交系统终于完成了,程序功能模块能按照需求来运行,能实现多管理员的迸发使用,但是系统由于设计经验以及旅行团知识的局限性,在本系统的开发过程中,在一些功能方面和业务逻辑方面做得不是很完善,系统还存在一些缺陷。界面的设计从布局到外观,受限于自身的设计功底较低,没能达到自己所要设计的界面要求,另一方面,系统存在一些没有考虑的问题和模块。

在学习的过程中首次进行独立设计工作,编码过程出现了许多问题和困难,原以为正确无误的程序运行过程中不会遇到问题,但是在运行过程中也总会出现各种各样的问题,在调试过程中找不出运行出错的原因。而这些基本问题却都是一些简单的问题,例如标点符号应该是英文状态下的,却因为不好的编程习惯造成了一些中文的符号输入,经过仔细观察和老师的帮组下,还是将问题解决了。

目前系统的功能比较简单,还存在许多瑕疵,这是一份遗憾,也是促进我不断进步的动力。

  

经历了近三个多月的动手实践及老师辛勤的指导和同学朋友热心的帮助下,本人的毕业设计远程作业提交系统的基本功能也基本完成。

此次设计中,通过不断的探讨与学习使我熟悉、使我初步了解了Java相关技术。做的是一个ssm远程作业提交系统,使我对做网站所需要,及运行的环境有了初步的了解,在此次设计中我翻阅了较多的书籍,在有限的时间了丰富了对远程作业提交系统技术的知识也积累了少许的经验。起初对Java的初步认识,通过这次设计更进一步的了解了其工作原理,懂得了配置服务器环境,连接数据库源,在设计过程中,也学会了用ssm设计一个简单的页面,增强了动手的能力,激发了在此方面的兴趣。

但是由于时间、基础及缺乏实践等多方面的问题,还有诸多需要解决的问题依然存在,设计中很多方面考虑不够周全或者考虑不到。

非常感谢我的老师,我的同学,我的朋友并希望在今后的学习生活中不断陪养多方面的兴趣,不断学习进步从而能够实现独立完成。设计中存在的诸多缺点诚肯老师的原谅。

参考文献

[1]伍德鹏,李佩学.基于SSM框架的高职院校教学办公用品管理信息系统设计研究[J].轻工科技,2023,39(01):99-101.

[2]常婉纶,谈姝辰,屈小娥,田召.基于SSM框架的二级学院教科研信息共享系统的设计与实现[J].电脑知识与技术,2022,18(34):39-41.DOI:10.14004/j.cnki.ckt.2022.2208.

[3]沈志元,张文健.基于Java技术的医院管理系统的设计与实现[J].电脑知识与技术,2022,18(32):38-40+54.DOI:10.14004/j.cnki.ckt.2022.1994.

[4]张丽景,张文川.基于对比分析法的高职“MySQL数据库”课程设计——以兰州石化职业技术大学为例[J].现代信息科技,2022,6(21):188-191.DOI:10.19850/j.cnki.2096-4706.2022.21.046.

[5]曹泽翰.基于SSM框架的流体力学课程虚拟仿真实验平台设计[J].信息与电脑(理论版),2022,34(20):34-36.

[6]杨一帆.服务于MySQL数据库的在线监测系统设计[J].自动化技术与应用,2022,41(10):179-182.DOI:10.20033/j.1003-7241.(2022)10-0179-04.

[7]林佳一.混合式教学在高职MySQL数据库课程的实践研究[J].电脑知识与技术,2022,18(26):133-135.DOI:10.14004/j.cnki.ckt.2022.1737.

[8]黄人薇,朱冬玲,唐世文.课程目标达成度评价设计与实践的研究——以MySQL数据库基础与应用为例[J].电脑与电信,2022(09):34-38.DOI:10.15966/j.cnki.dnydx.2022.09.012.

[9]林易康, 基于Java的web应用程序控制管理软件. 湖北省,武汉东湖学院,2021-10-01.

[10]He Xinbin,Bai Yongbin,Yue Lisen,Wang Haixiao,Liu Yi. Design and Implementation of Information System Based on Java Technology Platform[J]. Journal of Physics: Conference Series,2021,2033(1).

[11]胡文斌,刘卫东,哈进兵,吕建国,戴星辰,高世鹏. 一种基于SSM框架的轨道交通能源管理系统[P]. 江苏省:CN113326143A,2021-08-31.

[12]张永盛. 基于SSM框架的天学网一对一直播课管理系统的设计与实现[D].首都经济贸易大学,2021.DOI:10.27338/d.cnki.gsjmu.2021.000643.

[13]Tian Ming Huang. Design and Implementation of App System for Legal Consulting Based on JAVA Technology[J]. Procedia Computer Science,2020,166(C).

[14]Lei Yu,Cheng Li,Lei Wei,Hu WenYa. Marine biological monitoring and managing system based on Java technology[J]. MIPPR 2019: REMOTE SENSING IMAGE PROCESSING, GEOGRAPHIC INFORMATION SYSTEMS, AND OTHER APPLICATIONS,2020,11432.

[15]张胜伟.现代远程教育中作业系统的构建[J].电脑知识与技术,2009,5(32):8968-8969.

[16]寇小文.远程作业提交系统的设计与实现[J].怀化学院学报,2009,28(04):156-157.DOI:10.16074/j.cnki.cn43-1394/z.2009.04.041.

[17]蔺志青,肖波,陈学.远程教学及其作业管理系统[J].中国数据通讯网络,2000(04):19-21.

请关注点赞+私信博主,免费领取项目源码

  • 20
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 我们可以使用Java语言和SSM框架来实现图书管理系统。我们可以使用Spring框架中的IOC容器来解耦各组件,从而让系统的代码结构更加清晰,同时也可以使用Spring框架中的AOP技术来实现系统的权限控制和日志记录。此外,我们还可以使用Mybatis框架来实现数据库的操作,从而更加方便地实现图书管理系统的功能。 ### 回答2: 基于SSMSpring+SpringMVC+MyBatis)框架实现图书管理系统需要以下步骤: 1. 环境搭建:安装Java开发环境、Maven项目管理工具、Tomcat服务器,引入SSM相关的依赖包。 2. 创建数据库:使用MySQL等数据库管理系统创建图书管理系统所需的数据库,包括图书、借阅记录等表。 3. 创建实体类:根据数据库表设计实体类,包括图书、借阅记录等。 4. 配置数据源:在Spring配置文件中配置数据源,连接数据库。 5. 创建Dao层:使用MyBatis的注解或XML配置方式实现图书相关的数据库操作,包括图书的增删改查。 6. 创建Service层:编写图书相关的业务逻辑代码,封装对Dao层的调用。 7. 创建Controller层:编写图书相关的请求处理代码,接收请求参数并调用相应的Service方法。 8. 创建视图层:使用JSP、HTML等技术实现前端页面,展示图书列表、借阅记录等信息。 9. 配置SpringMVC:在Spring配置文件中配置SpringMVC相关的视图解析器、控制器等。 10. 部署运行:将项目打包成war文件,部署到Tomcat服务器中运行。 通过以上步骤,我们就可以基于SSM框架成功实现图书管理系统。用户可以在系统中进行图书查询、借阅、归还等操作,管理员可以进行图书的管理和操作日志的查看。 ### 回答3: 基于SSM实现图书管理系统,可以分为以下几个步骤: 1. 设计数据库结构: 首先,需要设计数据库表的结构。可以创建几个表,如图书表、读者表、借阅记录表等。每个表都有相应的字段来存储不同的信息。 2. 搭建项目环境: 在Java开发工具中,搭建基于SSM框架的项目环境。SSM框架由SpringSpringMVC和MyBatis组成,分别负责实现控制反转、Web层和数据持久层的功能。 3. 编写实体类: 根据数据库表的结构,编写对应的实体类。每个实体类对应数据库表的字段,并且有相应的成员变量和访问方法。 4. 配置MyBatis: 在项目的配置文件中,配置MyBatis的相关信息,如数据库连接、映射文件路径等。映射文件中定义了SQL语句与实体类之间的映射关系。 5. 编写数据访问层: 利用MyBatis框架,编写数据访问层的代码。主要负责与数据库进行交互,执行SQL语句,并将查询结果封装到实体类中。 6. 编写业务逻辑层: 在Spring框架的帮助下,编写业务逻辑层的代码。该层处理具体的业务逻辑,如图书的增删改查、读者的注册登录等功能。 7. 编写控制器: 利用SpringMVC框架,编写控制器的代码。该层负责接收前端请求,调用相应的业务逻辑处理,并返回结果给前端。 8. 编写前端页面: 使用HTML、CSS和JavaScript等技术,编写前端页面。可以根据需求设计图书借阅、读者管理等功能的界面,并与后端进行交互。 9. 测试和调试: 对整个系统进行测试和调试,验证功能的正确性和性能的优化。 10. 部署和上线: 将完成的系统部署到服务器上,并上线供用户使用。 以上就是基于SSM框架实现图书管理系统的大致步骤,通过这个系统,可以实现图书的增删改查、借阅归还等功能,方便用户管理图书馆的资源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值