摘 要

随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理。在现实运用中,应用软件的工作规则和开发步骤,采用Java技术建设菠萝大学课室预约分析与设计。

本设计主要实现集人性化、高效率、便捷等优点于一身的菠萝大学课室预约分析与设计,完成用户管理、课室分类管理、课室信息管理、课室预约管理、取消预约管理、使用通知、报修管理、公告管理等功能模块。系统通过浏览器与服务器进行通信,实现数据的交互与变更。只需通过一台电脑,动动手指就可以操作系统,实现数据通信管理。整个系统的设计过程都充分考虑了数据的安全、稳定及可靠等问题,而且操作过程简单。本系统通过科学的管理方式、便捷的服务提高了工作效率,减少了数据存储上的错误和遗漏。

菠萝大学课室预约分析与设计使用Java语言,采用基于 MVC模式的JavaEE技术进行开发,使用 MyEclipse 2017 CI 10 编译器编写,数据方面主要采用的是微软的MySQL关系型数据库来作为数据存储媒介,配合前台HTML+CSS 技术完成系统的开发。

关键词:菠萝大学课室预约分析与设计;Java;MySQL;

Abstract

With the advent of the Internet trend, all walks of life are considering using the Internet to promote themselves. The best way is to establish their own Internet system and maintain and manage it. In practical application, the working rules and development steps of the application software are analyzed and designed by using Java technology to build the classroom reservation of pineapple University.

This design mainly realizes the analysis and design of classroom reservation of pineapple University, which integrates the advantages of humanization, high efficiency and convenience, and completes the functional modules such as user management, classroom classification management, classroom information management, classroom reservation management, cancellation reservation management, use notice, repair application management, announcement management and so on. The system communicates with the server through the browser to realize the interaction and change of data. You can operate the system and realize data communication management by moving your fingers through a computer. The safety, stability and reliability of data are fully considered in the design process of the whole system, and the operation process is simple. Through scientific management and convenient service, the system improves work efficiency and reduces errors and omissions in data storage.

The analysis and design of classroom reservation in pineapple University uses Java language and Java EE technology based on MVC mode. It is written with MyEclipse 2017 CI 10 compiler. 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 front desk HTML + CSS technology.

Key words Analysis and design of classroom reservation in pineapple University; Java; MySQL;

目 录

摘 要 1

目 录 1

1 引言 1

1.1 选题背景及意义 1

1.2 研究现状 1

1.3系统的特点 1

1.4论文结构与章节安排 2

2 系统需求分析 3

2.1可行性分析 3

2.1.1 技术可行性分析 3

2.1.2 操作可行性分析 3

2.1.3 经济可行性分析 3

2.2功能需求分析 3

2.3用例分析 4

3系统总体设计 6

3.1系统功能模块设计 6

3.1.1后台页面设计 6

3.1.2 用户模块设计 7

3.1.3 课室信息管理模块设计 7

3.1.4课室预约管理模块设计 8

3.2数据库设计 8

3.2.1数据库概要设计 8

3.2.2数据库逻辑设计 9

4系统详细实现 13

4.1 网站总体的逻辑结构图 13

4.1.1网站MVC结构图 13

4.1.2网站的三层架构图 13

4.2网站功能实现 14

4.2.1网站主页功能实现 14

4.2.2用户注册登录功能实现 15

4.2.3 课室信息功能实现 18

4.2.4课室预约功能实现 20

4.2.5取消预约功能实现 20

4.2.6用户管理功能实现 22

4.2.7报修管理功能实现 23

4.2.8公告管理功能实现 24

5系统测试 26

5.1 系统测试目的 26

5.2 系统可用性测试 26

5.3 系统典型测试用例 27

5.4 测试总结 28

总结 29

参考文献 30

致 谢 32

1 引言

1.1 选题背景及意义

对于菠萝大学课室预约分析与设计而言,最主要的是管理课室的信息。如果使用一般的方法来管理,会比较繁琐,管理起来也很有可能出错。为了方便教室人员的管理工作,提高工作效率,同时为了更好地为学生、教师提供服务,有必要开发菠萝大学课室预约分析与设,使学校的课室管理走上信息化之路,克服人为的种种弊端。

菠萝大学课室预约分析与设计的开发不仅可以减少人力、物力和财力资源的浪费,更重要的是有助于提高课室管理的效率。课室管理人员管理用户信息时是一项复杂的组织工作,这种复杂性不仅仅指学生学籍变更快,变更人数众多,更突出地表现在课室管理主要对象(即学生)的数据量大,管理起来带来不便,所以开发一个实用、高效的课室管理信息系统是很有必要的。

菠萝大学课室预约分析与设计能够实时地反映课室的学习情况和课室信息;能督促教师进一步提高教学水平,帮助学生提高学习能力。学生在学习中的很多不必要的工作都会被简化,老师也能更轻松及时的了解到学生学习的情况,并马上把对学生课程的意见反馈给学生。这为师生交流提供了一个非常好的技术平台。这种协作系统可以有助于:

1.促进学生和老师使用信息技术;

2.促进学生老师家长三者间交流;

3.刺激内容活动策略的分享,因此通过因特网增加协同工作;

4.刺激虚拟教学团体的相互作用;

5.促进信息技术在更多非正式的环境中使用;

6.有助于基于网络的平台创造,在幽默的形式中显示纲领性的内容。

1.2 研究现状

目前我国各行各业的信息化建设开展得如火如荼,这种信息化的发展已经影响到了各学校。学校在对学生进行管理时,学生课室的管理一直都是很麻烦的事情,不仅仅管理起来不易修改和更新,而且学生需要了解本人的信息时,也需要去学校课室处找专门人员。由于这些操作的繁琐性,菠萝大学课室预约分析与设计的开发成为各学校必须的事情,特别是各个高校。

然而目前许多菠萝大学课室预约分析与设计在使用时,效率低下容易出错,学生、教师资料不易整理,大量丢失,这些无疑都已成为管理高校课室的障碍。这就要求学校能够建立高效的菠萝大学课室预约分析与设计,对学生的选课、查询等操作及流程进行规范化管理,简化业务流程,提高工作效率并防止中间的漏洞;迅速、准确地捕捉用户要求,并加以高效回应。同时需要不断完善系统,增加模块,更好的满足用户需求,简化课室人员的管理工作,尽量做到一切信息化。

1.3系统的特点

(1)系统不使用纯的IDEA进行系统开发,使用springboot框架,使系统的可扩展性和维护性更佳,目前springboot框架也是很多企业选择的框架之一,同时也是使用springboot框架进行开发的基础。

(2)前台使用的是JavaScript框架,同时使用Vue-Router校验框架,这样就可以减少前端代码的输入量,而且基于JavaScript框架的Vue-Router框架使用简单,是流行的前端使用框架。

(3)数据库使用流行mysql进行数据的存储,开源的mysql等技术的使用,减少系统开发费用。

1.4论文结构与章节安排

本文共分为六章,章节内容安排如下:

第一章:引言。第一章主要介绍了课题研究的背景意义,国内目前相关研究现状以及技术和本文的研究内容与主要工作。

第二章:系统需求分析。第二章主要从系统的可行性、功能等方面进行需求分析。

第三章:系统总体设计。第三章主要对系统功能模块、数据库进行功能设计。

第四章:系统详细设计。第四章主要介绍了系统各个用户的功能、系统界面的实现。

第五章:系统测试。第五章主要对系统的部分界面进行测试并对主要功能进行测试

2 系统需求分析

2.1可行性分析

通过以下的网站总体需求分析,进而分析是否拥有达成需求的技术、资金和开发人员等条件。那么就从以下几点进行简单的说明:

2.1.1 技术可行性分析

所谓的技术可行性就是在限定时间,前期拟定的功能能否被满足。在开发设计上是否会遇上解决不了的问题。做完的项目能否被很好地应用,如果存在缺点在后期的维护上是否存在很大的难度。在对这个系统评估后,认定已存在的技术能达成目标。用Java技术来实现动态的页面,嵌入低依赖性的设计模式,灵活的数据库,配合稳定的服务器,整个系统的运行效率大大提升。由此可见,在技术层面达成目标不是非非之想。

2.1.2经济可行性分析

在项目上使用的工具大部分都是是当下流行开源免费的,所以在开发前期,开发时用于项目的经费将会大大降低,不会让开发该软件在项目启动期受到经费的影响,所以经济上还是可行的。尽量用最少的花费去满足用户的需求。省下经费用于人工费,以及设备费用。将在无纸化,高效率的道路上越走越远。

2.1.3 操作可行性分析

本系统实现功能的操作很简单,普通电脑的常见配置就可以运行本软件,并且只要粗通电脑使用的基本常识就可以流畅的使用本软件。电脑具备连接互联网的能力,并且可以正常访问系统,并不需要操作者有什么高超的能力,只需了解业务流程,并且按照专业知识进行正确操作即可,所以高校教室排课系统具备操作可行性。

2.2功能需求分析

菠萝大学课室预约分析与设计的主要目的分为三个。

首先:可以通过该网站可以很好的整合菠萝大学课室预约分析与设计相关信息。以前通过传统的菠萝大学课室预约分析与设计有个最大的问题就是信息查询方式繁琐,而且各种信息容易丢死,有了这样一个菠萝大学课室预约分析与设计,那么则可以很容易的把所有的菠萝大学课室预约分析与设计信息都放到数据库中,如果再对数据库进行备份处理,那么这样就可以很好的对菠萝大学课室预约分析与设计信息进行保存。

其次:菠萝大学课室预约分析与设计提供了一个用户和用户,用户与管理员进行互动交流的网站,用户可以通过注册获取一个帐户,查询菠萝大学课室预约分析与设计信息,进行预约等。在这个网站中,用户之间可以进行随时查询、预约等。

再次:该网站需要很好的功能扩充性和可维护性。由于该网站是涉及的用户比较多,对管理员来说同样也是一个信息管理网站,包括用户信息,课室信息,课室预约信息等。而且,随着用户数量的增加,必然对程序的更新迭代要求更高,所有在开发的时候就需要注意程序的可维护性和可拓展性。

2.3用例分析

菠萝大学课室预约分析与设计中的管理员角色主要负责了如下功能操作。

(1)用户管理功能需求:用户管理部分包括了管理员,注册用户二部分,管理员可以对这二部分进行添加,修改,删除以及查询等。

(2)更多管理功能需求:更多管理部分包括了课室分类、课室信息、课室预约、取消预约、使用通知、报修管理、公告管理,管理员可以对其进行添加,修改,删除,以及查询等。

图2-1管理员角色用例图

菠萝大学课室预约分析与设计中的前台学生角色主负责了如下功能操作。

(1)更多管理功能需求:更多管理部分包括课室信息、课室预约、取消预约、使用通知、报修管理、公告管理,管理员可以对其进行添加,修改,删除,以及查询等。

(2)我的账户功能需求:用户登录网站以后,是可以进行我的账户进行管理的,包括个人资料,修改密码两部分。

图2-3 用户角色用例图

3系统总体设计

3.1系统功能模块设计

系统设计的目的是分析系统包括的所有功能结构,为开发人员设计开发和实现系统做好准备工作。经过前期的需求调查、分析和整理之后,确定的总体需求主要包括多个模块,分别是:用户管理、课室分类管理、课室信息管理、课室预约管理、取消预约管理、使用通知、报修管理、公告管理。系统整体角色分为两个部分,一是注册用户、二是管理员。权限分布也是很明显,用户是在除去浏览信息之外还具有查询和管理自己账户信息、课室申请等权限;管理员是最高权限拥有者。

图3.1菠萝大学课室预约分析与设计功能模块图

3.1.1 后台页面设计

本菠萝大学课室预约分析与设计的前台页面所有的页面设计主要是上中下的结构,这样的好处是让所有的页面更加的整洁。主题的页面颜色采用淡色为主,为突出页面的美观。主页面上分为导航栏,导航栏的每个导航项目设计为一张jsp页面,除此之外,还有就是用户中心页面,后台管理的页面了。后台管理页面已简单的上下结构为主。

3.1.2 用户模块设计

(1)用户模块结构图

本网站的用户包括管理员,注册用户模块。两种用户模块的功能基本是相同的,注册用户模块比管理员多了一个注册功能,所以以用户模块的结构图为例进行分析,如下图:

图3.2用户模块结构图

(2)各个结构的具体业务逻辑

a.查询用户信息:设计最基础的查询功能,主要就是根据用户id查询用户信息。该功能主要体现在管理员用户信息查询和用户自己查询信息的时候。

b.修改用户信息:用户可以根据情况,对自己的基本信息进行修改,包括名字修改、密码修改、头像修改等操作。

c.增加用户:用户可以通过注册来获得账号

d.删除用户信息:管理员没有权利进行删除信息的删除,最多把用户加入到黑名单中,禁止用户进行登录操作。

3.1.3课室信息管理模块设计

(1)课室信息模块结构图

菠萝大学课室预约分析与设计是一个交流性质的公开网站,用户和用户之间可以对网站上的内容,比如课室号、课室名称、位置、课室类别、状态、已被预约时间、教室设备等进行点评,增加用户之间的互动性。但是同时也为了更好的规范课室信息的内容,给予管理员删除不合适的言论的功能,所以需要专门设计一个课室信息管理模块,具体的结构图如下:

图3.3评论模块结构图

(2)各个结构的具体业务逻辑

a.查询课室信息:设计最基础的查询功能,主要就是根据用户id查询该用户下的所有课室信息。

b.添加课室信息:管理员可以根据情况,添加课室信息到网站上。

c.删除课室信息:管理员可以根据情况,对课室的基本信息进行修改等操作。

3.1.4课室预约管理模块设计

(1)课室预约模块结构图

菠萝大学课室预约分析与设计是中需要存储不少用户课室预约信息,用户可以查看课室预约信息,进行预约查看课室信息,管理员可以添加,修改,删除课室预约信息等,具体的结构图如下:

图3.4试卷模块结构图

(2)各个结构的具体业务逻辑

a.添加课室预约:管理员和用户可以对课室预约进行添加。

b.修改课室预约:管理员和用户可以对课室预约进行修改。

c.删除课室预约:管理员和用户可以对课室预约进行删除。

d.查询课室预约:用户可以查询课室预约列表。

e.添加课室预约:管理员和用户可以对课室预约进行添加。

3.2数据库设计

3.2.1数据库概要设计

菠萝大学课室预约分析与设计根据上面的E-R实体图,就再找到实体与实体之间的关系来,制作总的E-R图,实体之间的关系一共有4种,也就是一对一,多对一,一对多和多对多,总的E-R图是设计数据库表格的依据,如下图是网站的总E-R图。

图3.5系统总体E-R图

3.2.2数据库逻辑设计

根据上面的E-R图,继而设计数据库表格,注意的是数据库表格遵从三范式标准,这样以后操作也会更加简单一些。

课室分类信息{ID,课室类别,审核状态,智能推荐,创建时间,更新时间}

课室信息{ID,课室号,课室名称,位置,课室类别,状态,已被预约时间,教室设备,智能推荐,创建时间,更新时间}

取消预约信息{ID,课室名称,预约使用时间,用户名,课室号,取消原因,审核状态,审核回复,智能推荐,创建时间,更新时间}

公告管理信息{ID,标题,发布人,发布时间,相关附件,内容,智能推荐,创建时间,更新时间}

课室预约信息{ID,课室号,课室名称,状态,预约使用时间,用户名,联系电话,用途,审核状态,审核回复,智能推荐,创建时间,更新时间}

报修管理信息{ID,课室号,课室名称,报修物品,用户名,报修内容,审核状态,审核回复,智能推荐,创建时间,更新时间}

使用通知信息{ID,课室号,用户名,课室名称,预约使用时间,通知内容,智能推荐,用户编号,创建时间,更新时间}

注册用户信息{ID,用户名,审核状态,智能推荐,用户ID,创建时间,更新时间}

系统的各个数据库表如下。

表3.1 use_notification表

名称

类型

长度

不是null

主键

注释

use_notification_id

int

11

使用通知ID

classroom_number

varchar

64

课室号

classroom_name

varchar

64

课室名称

appointment_time

datetime

0

预约使用时间

user_name

int

11

用户名

notice_content

text

0

通知内容

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

表3.2 repair_application_management表

名称

类型

长度

不是null

主键

注释

repair_application_management_id

int

11

报修管理ID

classroom_number

varchar

64

课室号

classroom_name

varchar

64

课室名称

repair_items

varchar

64

报修物品

user_name

int

11

用户名

repair_content

text

0

报修内容

examine_state

varchar

16

审核状态

examine_reply

varchar

255

审核回复

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

表3.3 registered_user表

名称

类型

长度

不是null

主键

注释

registered_user_id

int

11

注册用户ID

user_name

varchar

64

用户名

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

user_id

int

11

用户ID

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

表3.4 classroom_reservation表

名称

类型

长度

不是null

主键

注释

classroom_reservation_id

int

11

课室预约ID

classroom_number

varchar

64

课室号

classroom_name

varchar

64

课室名称

state

varchar

64

状态

appointment_time

datetime

0

预约使用时间

user_name

int

11

用户名

contact_number

varchar

64

联系电话

purpose

text

0

用途

examine_state

varchar

16

审核状态

examine_reply

varchar

255

审核回复

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

表3.5 announcement_management表

名称

类型

长度

不是null

主键

注释

announcement_management_id

int

11

公告管理ID

title

varchar

64

标题

publisher

varchar

64

发布人

release_date

date

0

发布日期

relevant_attachments

varchar

255

相关附件

content

longtext

0

内容

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

表3.6 cancel_reservation表

名称

类型

长度

不是null

主键

注释

cancel_reservation_id

int

11

取消预约ID

classroom_name

varchar

64

课室名称

appointment_time

datetime

0

预约使用时间

user_name

int

11

用户名

classroom_number

varchar

64

课室号

cancellation_reason

text

0

取消原因

examine_state

varchar

16

审核状态

examine_reply

varchar

255

审核回复

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

表3.7 classroom_information表

名称

类型

长度

不是null

主键

注释

classroom_information_id

int

11

课室信息ID

classroom_number

varchar

64

课室号

classroom_name

varchar

64

课室名称

position

varchar

64

位置

classroom_category

varchar

64

课室类别

state

varchar

64

状态

reserved_time

text

0

已被预约时间

classroom_equipment

text

0

教室设备

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

表3.8 classroom_classification表

名称

类型

长度

不是null

主键

注释

classroom_classification_id

int

11

课室分类ID

classroom_category

varchar

64

课室类别

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

4系统详细实现

4.1 网站总体的逻辑结构图

4.1.1网站MVC结构图

首先从项目整体的进行逻辑设计,采用的是目前流行的MVC模式进行开发。Model层是网站的核心层,里面含有项目的核心逻辑代码和数据库,View层是Model层的显示实例,Controller的主要的功能就是处理用户与数据交互的。值得注意的是,MVC模式的特点是为了更好的对前台和后台进行解耦的操作,控制器就是充当解耦的中间层,他可以分发前台的请求,然后通过调用模型层来处理数据。本网站使用的控制器是springMVC,springMVC的dispatchServlet是对servlert的封装。

图4.1菠萝大学课室预约分析与设计MVC结构图

4.1.2网站的三层架构图

菠萝大学课室预约分析与设计使用的springboot框架搭建后台网站,把所有的对象都交予springboot的ioc容器进行管理,这样的好处就是能够更好的让网站掌握对象的生命周期还有方便进行依赖注入,减少代码的书写量和对象之间的耦合。具体的三层包括,控制层、业务逻辑层和数据持久化层,也就是controller, service和dao层。Dao层的实现类通过mybatis映射文件进行实例化操作。三层架构的好处就是能够更好的对网站操作进行解耦,方便维护与分工。

图4.2 菠萝大学课室预约分析与设计三大操作类结构图

4.2网站功能实现

4.2.1网站主页功能实现

用户进入首页之后会显示如下的一个窗口。如下图:

图4.3菠萝大学课室预约分析与设计主界面

由于该项目只是用来测试,用户登录首页展示的图片等数据有的是从项目本地拿到的,有的则是从数据库中获取的。页面中的搜索部分,页头部分等都是属于公共样式,可以进行公告样式的抽取,然后再引入到jsp页面中。

4.2.2用户注册登录功能实现

该菠萝大学课室预约分析与设计用户是需要先注册的,没有登录的情况下,用户进行任何的操作,都会跳到登录页面,提示注册。具体的流程图和实现界面如下:

图4.4菠萝大学课室预约分析与设计用户注册登入流程图

图4.5用户注册界面

用户注册关键代码如下所示。

/**

* 注册

* @param user

* @return

*/

@PostMapping("register")

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

// 查询用户

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

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

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

if (list.size()>0){

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

}

user.setUserId(null);

user.setPassword(service.encryption(user.getPassword()));

service.save(user);

return success(1);

}

/**

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

*/

@Id

@GeneratedValue(strategy = GenerationType.IDENTITY)

@Column(name = "user_id")

private Integer userId;

/**

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

*/

@Basic

@Column(name = "state")

private Integer state;

/**

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

*/

@Basic

@Column(name = "user_group")

private String userGroup;

/**

* 上次登录时间:

*/

@Basic

@Column(name = "login_time")

private Timestamp loginTime;

/**

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

*/

@Basic

@Column(name = "phone")

private String phone;

/**

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

*/

@Basic

@Column(name = "phone_state")

private Integer phoneState;

/**

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

*/

@Basic

@Column(name = "username")

private String username;

/**

* 昵称:[0,16]

*/

@Basic

@Column(name = "nickname")

private String nickname;

/**

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

*/

@Basic

@Column(name = "password")

private String password;

/**

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

*/

@Basic

@Column(name = "email")

private String email;

/**

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

*/

@Basic

@Column(name = "email_state")

private Integer emailState;

/**

* 头像地址:[0,255]

*/

@Basic

@Column(name = "avatar")

private String avatar;

/**

* 创建时间:

*/

@Basic

@Column(name = "create_time")

@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")

private Timestamp createTime;

@Basic

@Transient

private String code;

}

4.2.3 课室信息功能实现

所有的用户登录以后,都可以选择课室信息进行操作,具体的流程图和实现界面如下:

图4.6课室信息流程图

图4.7课室信息界面

课室信息管理关键代码如下所示。

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

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

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

return success(count.getResultList());

}

4.2.4课室预约功能实现

用户可以进行课室预约,以用户课室预约为例,界面如图:

图4.8课室预约界面

课室预约信息关键代码如下所示。

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

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

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

return success(count.getResultList());

}

4.2.5取消预约功能实现

用户在取消预约界面可以查看取消预约信息,点击进入详细界面,可以查询课室名称、预约使用时间、用户名、课室号、取消原因,管理员可以管理用户的取消预约,添加,编辑,删除,管理取消预约等,具体的实现界面如下图:

图4.9取消预约界面

取消预约关键代码如下所示。

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

}

4.2.6用户管理功能实现

管理员在用户管理模块,可以对用户信息进行管理,用户管理模块由管理员,注册用户两部分组成组成,这里以管理员管理为例,具体的实现界面如下图:

图4.11用户管理界面

用户管理关键代码如下所示。

public String encryption(String plainText) {

String re_md5 = new String();

try {

MessageDigest md = MessageDigest.getInstance("MD5");

md.update(plainText.getBytes());

byte b[] = md.digest();

int i;

StringBuffer buf = new StringBuffer("");

for (int offset = 0; offset < b.length; offset++) {

i = b[offset];

if (i < 0)

i += 256;

if (i < 16)

buf.append("0");

buf.append(Integer.toHexString(i));

}

re_md5 = buf.toString();

} catch (Exception e) {

e.printStackTrace();

}

return re_md5;

}

4.2.7报修管理功能实现

管理员在报修管理模块,可以对报修信息进行添加,修改,删除,管理报修,查询等,具体的实现界面如下图:

图4.12报修管理界面

报修管理关键代码如下所示。

@RequestMapping(value = "/del")

@Transactional

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

service.delete(service.readQuery(request), service.readConfig(request));

return success(1);

}

@Transactional

public void delete(Map<String,String> query,Map<String,String> config){

StringBuffer sql = new StringBuffer("DELETE FROM ").append("`").append(table).append("`").append(" ");

sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.GROUP_BY))));

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

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

query1.executeUpdate();

}

4.2.8公告管理功能实现

管理员和用户在公告列表模块,可以对公告相关信息进行管理,包括扁桃体、发布人、发布日期、相关附件等,具体的实现界面如下图:

图4.13公告管理界面

公告管理关键代码如下所示。

@RequestMapping("/get_obj")

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

Query select = service.select(service.readQuery(request), service.readConfig(request));

List resultList = select.getResultList();

if (resultList.size() > 0) {

JSONObject jsonObject = new JSONObject();

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

return success(jsonObject);

} else {

return success(null);

}

}

public Query 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 runEntitySql(sql.toString());

}

5系统测试

5.1 系统测试目的

系统开发到了最后一个阶段那就是系统测试,系统测试对软件的开发其实是非常有必要的。因为没什么系统一经开发出来就可能会尽善尽美,再厉害的系统开发工程师也会在系统开发的时候出现纰漏,系统测试能够较好的改正一些bug,为后期系统的维护性提供很好的支持。通过系统测试,开发人员也可以建立自己对系统的信心,为后期的系统版本的跟新提供支持。

5.2 系统可用性测试

网站的可用性测试是测试网站最基本的功能,比如鼠标点击是否可用,页面跳转是否正常等。下面是具体的测试结果。

表5-1菠萝大学课室预约分析与设计可用性测试

测试项

测试人员评价

窗口移动、改变大小、关闭等操作是否正常

操作模块是否友好

模块和提示内容等文字描述是否正确

模块布局是否合理、协调

模块的状态是否正确(对选中项能否发生对应切换)

键盘、鼠标操作是否支持

所需的数据项是否正确显示

操作流程是否合理

是否提供帮助信息

5.3 系统典型测试用例

对网站的主要页面和功能点的测试用例如下:

(1) 用户登陆网站测试用例如表 5-2 所示。

表5-2用户登录网站测试用例

用例名称

用户登录网站

目的

测试用户通过正确的用户名和密码可否登录功能

前提

未登录的情况下

测试流程

1) 进入登录页面

2) 输入正确的用户名和密码

预期结果

用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入

实际结果

实际结果与预期结果一致

(2)课室信息测试用例如表 5-3 所示

表5-3 课室信息测试用例

用例名称

课室信息

目的

测试课室信息功能

前提

测试流程

打开课室信息界面

预期结果

可以进行查看课室信息详细

实际结果

实际结果与预期结果一致

(3)课室预约试用例如表 5-4所示

表5-4课室预约测试用例

用例名称

课室预约

目的

测试课室预约模块功能

前提

测试流程

用户在课室预约区进行点评操作。

预期结果

课室预约提交以后,可以查看到自己的课室预约信息

实际结果

实际结果与预期结果一致

(4)课室添加信息测试用例如表 5-5 所示

表5-5课室添加测试用例

用例名称

课室添加

目的

测试课室添加功能

前提

测试流程

管理员和用户点击课室添加,输入课室信息

预期结果

提交课室后可以查看课室信息,前台显示课室信息

实际结果

实际结果与预期结果一致

(5)取消预约测试用例如表 5-6 所示

表5-6取消预约测试用例

用例名称

取消预约

目的

测试取消预约功能

前提

测试流程

用户选择试卷,点击取消预约进行取消预约

预期结果

进入取消预约界面进行取消预约

实际结果

实际结果与预期结果一致

5.4 测试总结

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

总结

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

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

参考文献

[1]黄志芳,赖力潜,何梓杰,李伟鑫,谢宋汕,李晓烽,魏洁锋. 一种基于图像识别的智能课室管理系统[P]. 广东省:CN214279007U,2021-09-24.

[2]Xia Gao,Gao Xia,Xiong HongZhou,Xu Fangqin. Design and implementation of Wisdom classroom management system based on voice control[J]. Journal of Physics: Conference Series,2020,1651(1):

[3]黄志芳,何梓杰,宋世杰,陈泽锐,陈旭.基于图像识别的智能课室管理系统[J].电子测量技术,2020,43(18):93-97.DOI:10.19651/j.cnki.emt.2004621.

[4]邝邦洪,任锦辉,易露霞,王宏,黄鹏,陈仲文. 新时代高水平应用型大学五进知识管理系统及方法[P]. 广东省:CN111597266A,2020-08-28.

[5]秦景辉,崔润荣. 一种云+端的虚拟课室构建及其媒体流广播方法[P]. 广东省:CN110992751A,2020-04-10.

[6]邓 晓刚. Development of Classroom Management System Based on “Internet+”[J]. Creative Education Studies,2020,07(03):

[7]陈寅城. 多媒体教室管理系统分析与设计[D].江西财经大学,2020.

[8]Margaret T. Floress,Angela L. Rock,Assegedech Hailemariam. THE CATERPILLAR GAME: A CLASSROOM MANAGEMENT SYSTEM[J]. Psychology in the Schools,2020,54(4):

[9]邓冬华.高职院校智能型多媒体课室的设计[J].电脑知识与技术,2019,13(04):191-193.

[10]方梓丞.基于二维码的课室管理服务系统的设计与实现[J].现代计算机(专业版),2019(22):77-81.

[11]颜友仁.广外实验室预约系统的研究和设计[J].福建电脑,2019,30(12):142-144.

[12]秦景辉. 基于OpenStack的虚拟课室无缝接入系统的设计与实现[D].中山大学,2019

[13]梁国业.基于C/S与B/S混合架构高校课室管理系统的研究与实现[J].科技信息,2013(34):187.

[14]李学俭.课室智能门禁系统的建设与课室管理优化[J].微计算机信息,2018,28(10):278-279+267.

[15]关晓颖,谢盛嘉,刘德玲.多媒体课室智能电控系统设计[J].计算机与现代化,2018(07):174-176+179.

致 谢

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

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

(附源码)springboot菠萝大学课室预约系统分析与设 毕业设计641656相关推荐

  1. (附源码)Springboot+mysql+软件工程课程思政微平台的设计与实现 毕业设计271113

    软件工程课程思政微平台的设计与实现 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻 ...

  2. (附源码)springboot森林生物调查系统的设计与实现 毕业设计301826

    springboot森林生物调查系统 摘 要 随着互联网大趋势的到来,社会的方方面面,各行各业都在考虑利用互联网作为媒介将自己的信息更及时有效地推广出去,而其中最好的方式就是建立网络管理系统,并对其进 ...

  3. (附源码)springboot校园疫情智慧防控微信小程序 毕业设计011133

    小程序spring boot校园疫情智慧防控 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术 ...

  4. (附源码)springboot微信点餐系统的设计与实现 毕业设计221541

    springboot点餐微信小程序 摘 要 点餐微信小程序采用B/S模式.采用JAVA语言.springboot框架.mysql数据库.小程序框架uniapp等开工具.促进了点餐微信小程序的业务发展. ...

  5. (附源码)springboot毕业论文管理系统 毕业设计030946

    目 录 摘要 1 1 绪论 1 1.1选题的目的及意义 1 1.2国内外研究现状及发展趋势 1 1.3系统开发技术的特色 1 1.4论文结构与章节安排 1 2毕业论文管理系统分析 3 2.1 可行性分 ...

  6. (附源码)ssm大学校园慈善拍卖网站的设计与实现 毕业设计250910

    目 录 摘要 1 1 绪论 1 1.1 研究背景及意义 1 1.2研究现状 1 1.3论文结构与章节安排 1 2 大学校园慈善拍卖网站系统分析 3 2.1 可行性分析 3 2.2 系统流程分析 3 2 ...

  7. (附源码)springboot停车场车辆定位管理可视化分析系统的设计与实现 毕业设计101702

    Springboot停车场车辆定位管理可视化分析系统 摘 要 21世纪时信息化的时代,几乎任何一个行业都离不开计算机,将计算机运用于停车场车辆定位管理也是十分常见的.过去使用手工的管理方式,造成了管理 ...

  8. (附源码)springboot实验室自主预约系统 毕业设计111953

    Springboot实验室自主预约系统 摘 要 远程预约是一种全新的网络租用方式,它通过互联网突破了时间和空间限制,实现了便捷快速的预约与管理功能.在对数据信息有效组织并整合了一定使用功能后,远程预约 ...

  9. (附源码)springboot网络微小说 毕业设计031758

    Springboot网络微小说的设计与实现 摘 要 大数据时代下,数据呈爆炸式地增长.为了迎合信息化时代的潮流和信息化安全的要求,利用互联网服务于其他行业,促进生产,已经是成为一种势不可挡的趋势.在网 ...

最新文章

  1. Autoware安装和快速使用
  2. HDU - 5008 Boring String Problem(后缀树求本质不同第k大子串)
  3. FIR和IIR的区别+差分方程的单位冲激响应(matlab图解)
  4. 机房线路故障,引发多家公司不能上网,和自己de经历有感
  5. (转)Spring Boot 2 (十):Spring Boot 中的响应式编程和 WebFlux 入门
  6. oracle无法减小列长度,中国港湾扩展表单分配时调整字段后保存时报错,无法正常维护表单定义...
  7. Angular官方教程采坑
  8. [转载] Python Web开发—进阶提升 490集超强Python视频教程 真正零基础学习Python视频教程
  9. 2017 校赛 问题 B: CZJ-Superman
  10. mysql 约束 和索引_Mysql中索引和约束的示例语句
  11. 机器人学之动力学笔记【11】—— 拉格朗日 动力学方程
  12. css画横线箭头_如何用纯CSS实现的箭头的效果?
  13. halcon模板匹配实践(5)使用橡皮擦涂抹功能实现减少模板匹配特征
  14. Jupyter 安装与应用
  15. 毕业四年后的程序员继续租房子
  16. 左除与右除的区别--MATLAB
  17. gtx1660是什么级别的_GTX1660显卡首测:1060终于可以退休了!
  18. 基于AnimeGAN模型生成宫崎骏风格动漫照片
  19. xxl-job任务调度中心
  20. 优知学院总结之Mysql面试

热门文章

  1. “PMVDN”元宇宙新势力崛起
  2. 今天逛VC驿站 的收获
  3. VC驿站《VC++网络编程班》开课啦!
  4. 判断iOS6/iOS7, 3.5inch/4.0inch
  5. 用python画花瓣-用python画花瓣
  6. kubernetes HPA使用及测试
  7. 使用Maya和Substance Painter制作一辆越野赛车(1)
  8. 2012第29周官方应用市场Top Grossing动态
  9. 电源系列2:LDO 基本 原理(二)
  10. 社会保障卡读取基本文件数据