当前位置: 首页 > news >正文

(附源码)ssm捐赠救助系统 毕业设计 060945

摘  要

随着现代工业的发展,计算机信息管理系统越来越受到企业重视,而捐赠救助系统就是一个典型的信息管理系统 ,捐赠救助系统能够极大地提高物资信息的管理的效率,也是部队的科学化、正规化管理与世界接轨的重要条件。于此本人开发一个捐赠救助管理系统 ,系统实现了捐赠救助管理基本信息、系统用户管理、爱心资讯、分类列表、团队介绍、加入团队、救助信息、爱心救助、物资捐赠、物资去向、收入统计、支出统计,捐赠救助管理系统可以摆脱传统的手动填写商品据工作模式,节省了大的人力、物力和财力,使得管理员从繁琐的工作中解放出来。总体来说网站是通过SSM架构搭建后台的,中间件使用的是tomcat服务器,数据库管理平台采用开源的Mysql,前端使用的主要是jsp页面展示技术。通过测试,该需要能够较好的完成设定的目标。

关键词:捐赠救助系统;Java;MySQL; SSM

Abstract

With the development of modern industry, computer information management system is paid more and more attention by enterprises, and donation and rescue system is a typical information management system. Donation and rescue system can greatly improve the efficiency of material information management, and it is also an important condition for the scientific and standardized management of the army to connect with the world. Here, I develop a donation and assistance management system, which realizes the basic information of donation and assistance management, system user management, love information, classified list, team introduction, joining the team, assistance information, love assistance, material donation, material destination, income statistics and expenditure statistics. The donation and assistance management system can get rid of the traditional manual filling in of commodity data, It saves a lot of manpower, material and financial resources, and liberates the administrator from the tedious work. Generally speaking, the website is built through SSM architecture, the middleware uses Tomcat server, the database management platform uses open source mysql, and the front end mainly uses JSP page display technology. Through the test, the needs can better achieve the set goals.

Key words  Donation assistance system; Java; MySQL; SSM

目  录

  

  

1 引言

1.1 选题意义

1.2 研究现状

1.3系统的特点

1.4论文结构与章节安排

2 系统需求分析

2.1可行性分析

2.1.1 技术可行性分析

2.1.2 操作可行性分析

2.1.3 经济可行性分析

2.2功能需求分析

2.3用例分析

3系统总体设计

3.1系统功能模块设计

3.1.1 前台页面设计

3.1.2 用户模块设计

3.1.3 评论管理模块设计

3.1.4试卷管理模块设计

3.2数据库设计

3.2.1数据库概要设计

3.2.2数据库逻辑设计

4系统详细实现

4.1 网站总体的逻辑结构图

4.1.1网站MVC结构图

4.1.2网站的三层架构图

4.2网站功能实现

4.2.1网站主页功能实现

4.2.2用户注册登录功能实现

4.2.3 团队介绍功能实现 20

4.2.4救助信息功能实现 20

4.2.5志愿活动功能实现 21

4.2.6用户管理功能实现 22

4.2.7活动报名管理功能实现 22

4.2.8物资捐赠功能实现 23

5系统测试

5.1 系统测试目的

5.2 系统可用性测试

5.3 系统典型测试用例

5.4 测试总结

总结

参考文献 29

   31

1 引言

1.1 选题意义

互联网的快速发展不仅影响着整个社会的各行各业,也影响着人们的日常生活。互联网上存储着海量的数据与信息,人们获取信息的方式不再只是通过传统的媒体,还有互联网。互联网已经遍布人们的日常生活中,人们足不出户就可知晓天下事,甚至足不出户就可以买到自己想要的东西,这也是捐赠救助系统兴起的原因。

捐赠救助系统组织管理进行信息化建设的目的主要有三点:一是信息资源是能够创造财富的;二是信息化的运用可以降低成本,提高效率;三是信息透明是捐赠救助组织的核心竞争力,有助于提高捐赠救助系统组织的公信力建设。通过网络信息的传播并透明公开,能提高公信力,并增强规范发展,同时推动捐赠救助系统服务的成效;通过信息平台建设和信息服务,有助于转变捐赠救助系统组织服务意识,救助项目执行管理方式的改变以及专业能力建设的推动,这必将成为捐赠救助系统事业发展的趋势。

随着社会的发展,捐赠救助系统组织的业务流程和服务形式的进一步优化,工作方式必然全面改造,需要彻底地向社会大众提供优质、规范、透明、公正的服务,符合国际水准的管理和服务。

如何运用现代信息技术,帮助捐赠救助系统组织,完善捐赠救助系统组织捐赠相关信息的入库、更新、检索,优化管理流程、提高效率,这些问题的研究和解决对中国捐赠救助系统组织的发展具有重要意义,同时也对其他相关组织信息化管理有示范与借鉴的作用。

本系统以使捐赠救助系统后台管理规范化信息化为宗旨,利用Java技术,采用B/S模式,实现了工作人员登录个人账号后对于捐赠过程涉及到的信息的增删改查等功能,保证了捐赠救助系统工作人员对于各种信息登记获取的及时性与便利性。且在本论文中,笔者对于小型捐赠救助系统信息管理不完善的现象,给出了一定的解决方案。

1.2 研究现状

在捐赠救助组织的研究中发现,大量文献都是从政治、经济、法律和社会学等学科方向为基础进行分析研究的,笔者们都是以宏观的角度来思考问题,从国家层面出发,以现行的制度、法律为着手点进行的研究。为此,笔者查阅了大量资料,深入捐赠救助组织进行调查研究,发现对我国捐赠救助事业的理论研究大部分都停留在如何完善法制建设、如何加强舆论监督等方面,而忽视了对现代信息技术在捐赠救助组织中的应用研究,以及信息化建设严重滞后对捐赠救助组织的不利影响的研究。

在杨珊所著的《论捐赠救助组织的法律地位》和秦雨歌、刘士珊的《美国捐赠救助立法的启示》中可以看出,在我国捐赠救助事业中,政府对捐赠救助组织的地位影响巨大,当前的捐赠救助事业正处于从行政垄断型向开放市场型转变的阶段,转变的关键在于合理定位政府和捐赠救助组织的关系,为了促进捐赠救助组织的效率和透明度,一方面明确捐赠救助组织的法律地位,保证捐赠救助组织平等获取捐赠救助资源的能力;另一方面须明确和强化政府对捐赠救助组织的依法监管的职能和责任,建立和完善政府对捐赠救助机构的指导、规范和监管的法律法规。法律的建立影响重大,不会轻易的实现,而有些文章是从社会学、伦理学的角度来剖析问题,例如邓玮的《城市居民捐赠救助意识影响因子分析及动员策略》中以因子模型分析出:影响城市居民捐赠救助意识的因子主要有四个,依次是文化因子、制度因子、经济因子以及信任因子,必须采用加强感恩教育、完善捐赠救助制度、加大捐赠救助宣传力度、增强对捐赠救助组织及制度的信任感等动员策略。

1.3系统的特点

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

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

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

1.4论文结构与章节安排

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

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

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

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

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

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

2 系统需求分析

2.1可行性分析

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

2.1.1 技术可行性分析

捐赠救助系统通过分析以上的网站需求,首先需要使用数据库存储各种数据,包括系统用户数据,爱心救助数据,救助信息数据、物资去向数据、收入统计数据、支出统计数据、物资捐赠数据等。其次,后端数据要调到页面上来,所以需要使用到前端技术,包括html,css 和javascript三大技术。当前端发出请求的时候,还需要中间件的支持等。这些技术在学校基本都学习过了,而且在使用上如果发生遗忘都可以查询到相关知识进行补充。所以总的来说,技术可行性是没有问题的。

2.1.2 操作可行性分析

总体来严,该网站的操作设计和逻辑设计还是比较简单的。因为总体的设计目标只是包括数据的读取等基本内容。而且,就目前使用的客户一般都是用户和管理人员,都是有较高文化的一群人和学习能力较强的人。但是还是要把程序的操作设计得尽量简单,比如爱心救助、救助信息、物资去向、物资捐赠、收入统计、支出统计等功能,比如用户的登录和登出功能等,都需要尽量的简单,这样让网站用户更容易上手。针对管理员的操作,这边需要指出,是需要一定的理解的,比如爱心救助管理、物资捐赠管理、物资去向管理、活动报名管理的设定,比如各类信息的添加和修改等,还是需要一定的计算机基本认识,如有需要,可以对其进行简单的介绍或者培训。

2.1.3 经济可行性分析

整体来说,项目的开发使用的硬件和软件还是不多的,硬件就是一台电脑,软件需求比较多,因为现在都有很多开源软件可是使用,所以投入也是不高的,项目使用的开源软件还是比较多的,比如mysql,tomcat,mybatis等,图标字体阿里巴巴的图标字体库,版本控制使用的git等。总体的投入主要就是开发的时间投入,所以总的来说,经济可行性也是没有问题的。

2.2功能需求分析

捐赠救助系统的主要目的分为三个。

首先:可以通过该网站可以很好的整合和记录捐赠救助系统相关信息。以前通过传统的捐赠救助系统方式有个最大的问题就是信息查询、交流方式繁琐,而且各种信息容易丢死,有了这样一个捐赠救助系统,那么则可以很容易的把所有的捐赠救助系统信息都放到数据库中,如果再对数据库进行备份处理,那么这样就可以很好的对捐赠救助系统信息进行保存。

其次:捐赠救助系统提供了一个用户和用户,用户与管理员进行互动交流的网站,用户可以通过注册获取一个帐户,查询捐赠救助系统信息,进行交流等。在这个网站中,用户之间可以进行随时查询、交流等。

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

2.3用例分析

捐赠救助系统中的管理员角色主要负责了如下功能操作。

(1)公共内容管理功能需求:公共内容管理包括了轮播图,公告栏两部分,管理员可以对这两部分进行添加,修改,删除和查询等。

(2)系统用户管理功能需求:系统用户管理部分包括了管理员,注册用户和志愿者团队三部分,管理员可以对这三部分进行添加,修改,删除以及查询等。

(3)内容模块管理功能需求:内容模块管理部分包括了爱心资讯,分类列表,管理员可以对其进行添加,修改,删除,查看爱心资讯,评论等。

(4)模块管理功能需求:模块管理主要实现了团队介绍功能、加入团队功能、救助信息功能、爱心救助功能、志愿活动功能、活动报名功能、物资捐赠功能、物资去向功能、收入统计功能、支出统计功能,管理员可以进行添加,编辑,删除操作。

 

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

捐赠救助系统中的志愿者团队角色主要负责了如下功能操作。

(1)注册登录功能需求:没有账号的志愿者,可以输入账号,密码,昵称,邮箱等信息进行注册操作,注册后可以输入账号和密码进行登录。

(2)模块管理功能需求:模块管理部分主要实现了团队介绍管理、加入团队管理、救助信息管理、爱心救助管理、志愿活动管理、活动报名管理,可以进行添加,编辑,删除和查询,同时可以对救助信息进行管理,进行救助,评论等操作。

 

图2-2志愿者团队角色用例图

捐赠救助系统中的前台用户角色主负责了如下功能操作。

(1)用户查看系统信息功能需求:用户可以通过系统首页查看捐赠救助信息知道捐赠救助系统信息,包括首页,公告栏,爱心资讯,团队介绍,救助信息、志愿活动、物资捐赠,同时可以输入关键词进行资讯查询等模块,用户可以对资讯信息进行收藏,评论等操作。

(2)用户登录与注册功能需求:用户可以通过注册获取帐户。

(3)公告栏功能需求:用户登录网站以后,是可以进行对公告栏信息查看,进行发布、评论等操作。

(4)爱心资讯功能需求:用户登录网站以后,是可以进行对爱心资讯进行查看,进行资讯,查看评论。

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

 

图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.点击数:用户可以查看志愿活动信息列表,进行志愿活动信息,查看志愿活动信息点击数。

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,用户编号,主题,捐赠编号,捐赠物资,数量,发放数量,发放地址,受助人,智能推荐,创建时间,更新时间}

物资捐赠信息{ID,用户编号,主题,捐赠物资,数量,捐赠方式,捐赠时间,捐赠编号,备注,点击数,点赞数,创建时间,更新时间}

团队介绍信息{ID,团队编号,团队名称,负责人,团队LOGO,人数,团队地址,志愿活动,团队介绍,点击数,点赞数,智能推荐,创建时间,更新时间}

救助信息{ID,团队编号,团队名称,封面,救助人,救助类型,筹款金额,已完成金额,进度,捐赠人数,救助编号,救助原因,点击数,点赞数,审核状态,创建时间,更新时间}

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

表3.1 volunteer_team表

字段名称

类型

长度

不是null

主键

字段说明

volunteer_team_id

int

11

志愿者团队ID

team_number

varchar

64

团队编号

team_name

varchar

64

团队名称

person_in_charge

varchar

64

负责人

address

varchar

64

地址

number_of_teams

int

11

团队人数

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

user_id

int

11

用户ID

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

表3.2 voluntary_activities表

字段名称

类型

长度

不是null

主键

字段说明

voluntary_activities_id

int

11

志愿活动ID

team_number

int

11

团队编号

team_name

varchar

64

团队名称

activity_name

varchar

64

活动名称

publicity_map

varchar

255

宣传图

activity_time

varchar

64

活动时间

activity_location

varchar

64

活动地点

activity_number

varchar

64

活动编号

activity_introduction

text

0

活动介绍

hits

int

11

点击数

praise_len

int

11

点赞数

examine_state

varchar

16

审核状态

examine_reply

varchar

255

审核回复

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

表3.3 team_introduction表

字段名称

类型

长度

不是null

主键

字段说明

team_introduction_id

int

11

团队介绍ID

team_number

int

11

团队编号

team_name

varchar

64

团队名称

person_in_charge

varchar

64

负责人

team_logo

varchar

255

团队logo

number_of_people

varchar

64

人数

team_address

varchar

64

团队地址

voluntary_activities

text

0

志愿活动

team_introduction

text

0

团队介绍

hits

int

11

点击数

praise_len

int

11

点赞数

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

表3.4 rescue_information表

字段名称

类型

长度

不是null

主键

字段说明

rescue_information_id

int

11

救助信息ID

team_number

int

11

团队编号

team_name

varchar

64

团队名称

cover

varchar

255

封面

rescuer

varchar

64

救助人

rescue_type

varchar

64

救助类型

fund_raising_amount

int

11

筹款金额

completed_amount

int

11

已完成金额

speed_of_progress

varchar

64

进度

number_of_donations

varchar

64

捐赠人数

salvage_number

varchar

64

救助编号

reasons_for_rescue

text

0

救助原因

hits

int

11

点击数

praise_len

int

11

点赞数

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

表3.5 rescue_information表

字段名称

类型

长度

不是null

主键

字段说明

rescue_information_id

int

11

救助信息ID

team_number

int

11

团队编号

team_name

varchar

64

团队名称

cover

varchar

255

封面

rescuer

varchar

64

救助人

rescue_type

varchar

64

救助类型

fund_raising_amount

int

11

筹款金额

completed_amount

int

11

已完成金额

speed_of_progress

varchar

64

进度

number_of_donations

varchar

64

捐赠人数

salvage_number

varchar

64

救助编号

reasons_for_rescue

text

0

救助原因

hits

int

11

点击数

praise_len

int

11

点赞数

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

表3.6 registered_user表

字段名称

类型

长度

不是null

主键

字段说明

registered_user_id

int

11

注册用户ID

user_number

varchar

64

用户编号

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

user_id

int

11

用户ID

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

表3.7 material_donation表

字段名称

类型

长度

不是null

主键

字段说明

material_donation_id

int

11

物资捐赠ID

user_number

int

11

用户编号

theme

varchar

64

主题

donated_materials

varchar

64

捐赠物资

number

varchar

64

数量

donation_method

varchar

64

捐赠方式

donation_time

date

0

捐赠时间

donation_number

varchar

64

捐赠编号

remarks

text

0

备注

hits

int

11

点击数

praise_len

int

11

点赞数

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

表3.8 material_destination表

字段名称

类型

长度

不是null

主键

字段说明

material_destination_id

int

11

物资去向ID

user_number

int

11

用户编号

theme

varchar

64

主题

donation_number

varchar

64

捐赠编号

donated_materials

varchar

64

捐赠物资

number

varchar

64

数量

issued_quantity

varchar

64

发放数量

issuing_address

varchar

64

发放地址

recipients

varchar

64

受助人

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

表3.9 love_rescue表

字段名称

类型

长度

不是null

主键

字段说明

love_rescue_id

int

11

爱心救助ID

salvage_number

varchar

64

救助编号

team_name

varchar

64

团队名称

team_number

int

11

团队编号

rescuer

varchar

64

救助人

user_number

int

11

用户编号

donated_amount_

int

11

捐款金额

contact_number

varchar

64

联系电话

pay_state

varchar

16

支付状态

pay_type

varchar

16

支付类型

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

表3.10 income_statistics表

字段名称

类型

长度

不是null

主键

字段说明

income_statistics_id

int

11

收入统计ID

date

date

0

日期

income_type

varchar

64

收入类型

amount_of_money

varchar

64

金额

source_of_income

text

0

收入来源

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

表3.11 expenditure_statistics表

字段名称

类型

长度

不是null

主键

字段说明

expenditure_statistics_id

int

11

支出统计ID

date

date

0

日期

expenditure_type

varchar

64

支出类型

expenditure_amount

varchar

64

支出金额

expenditure_destination

text

0

支出去向

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

表3.12 activity_registration表

字段名称

类型

长度

不是null

主键

字段说明

activity_registration_id

int

11

活动报名ID

team_number

int

11

团队编号

team_name

varchar

64

团队名称

user_number

int

11

用户编号

activity_name

varchar

64

活动名称

full_name

varchar

64

姓名

activity_number

varchar

64

活动编号

contact_number

varchar

64

联系电话

registration_type

varchar

64

报名类型

donated_amount_

varchar

64

捐款金额

examine_state

varchar

16

审核状态

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网站的三层架构图

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

 

图4.2 捐赠救助系统三大操作类结构图

4.2网站功能实现

4.2.1网站主页功能实现

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

图4.3捐赠救助系统主界面

 

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

4.2.2用户注册登录功能实现

该捐赠救助系统用户是需要先注册的,没有登录的情况下,用户进行任何的操作,都会跳到登录页面,提示注册。具体的流程图和实现界面如下:

图4.4捐赠救助系统用户注册登入流程图

 

 

图4.5捐赠救助系统用户注册界面

用户注册界面关键代码:

   /**

     * 注册

     * @return

     */

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

}

    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){

        E entity = JSON.parseObject(JSON.toJSONString(body),eClass);

        baseMapper.insert(entity);

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

}

4.2.3 团队介绍功能实现

所有的用户登录以后,都可以选择要团队介绍进行团队名称等操作,具体的流程图和实现界面如下:

 

图4.6 团队介绍流程图

 

图4.7团队介绍界面

4.2.4救助信息功能实现

用户可以进行救助信息,以用户救助信息为例,界面如图:

 

图4.8救助信息界面

4.2.5志愿活动功能实现

用户在志愿活动界面可以查看用户志愿活动信息,点击进入详细界面,可以评论,同时也可以发布内容,管理员可以管理用户发布的志愿活动信息,添加,编辑,删除,管理评论等,具体的实现界面如下图:

 

图4.9志愿活动界面

 

图4.10志愿活动管理界面

4.2.6用户管理功能实现

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

 

图4.11用户管理界面

4.2.7活动报名管理功能实现

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

图4.12活动报名管理界面

活动报名管理关键代码:

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

}

4.2.8物资捐赠功能实现

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

图4.13物资捐赠界面

物资捐赠管理关键代码:

@RequestMapping(value = "/del")

    @Transactional

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

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

        return success(1);

}

 

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]顾磊. 104位慈善家捐赠超697亿元[N]. 人民政协报,2022-01-25(012).

[2]吴良海,刘琼霞,胡芳芳.税收立法、公益性捐赠与企业绩效[J].安徽工业大学学报(自然科学版),2022,39(01):110-117.

[3]郑兴焰,程付超.捐赠物品追溯和服务系统的实现[J].福建电脑,2022,38(01):69-72.

[4]陈炳林,杨涛,杨金华,董盛雯,李闯,李金玲. 一种旧书捐赠箱[P]. 安徽省:CN215423510U,2022-01-07.

[5], 统一战线 组织爱心捐赠助力疫情防控. 刘玉峰,孙星宇 主编,唐山市曹妃甸区年鉴,团结出版社,2021,88,年鉴.DOI:10.38679/y.cnki.ycfdq.2021.000576.

[6]Hu Xiaodan,Fernandez Frank,Gándara Denisa. Are Donations Bigger in Texas? Analyzing the Impact of a Policy to Match Donations to Texas’ Emerging Research Universities[J]. American Educational Research Journal,2021,58(4):

[7]De Caro Raffaele,Boscolo-Berto Rafael,Artico Marco,Bertelli Eugenio,Cannas Mario,Cappello Francesco,Carpino Guido,Castorina Sergio,Cataldi Amelia,Cavaletti Guido Angelo,Cinti Saverio,Cocco Lucio Ildebrando,Cremona Ottavio,Crivellato Enrico,De Luca Antonio,Falconi Mirella,Familiari Giuseppe,Ferri Gian Luca,Fornai Francesco,Gesi Marco,Geuna Stefano,Gibelli Daniele Maria,Giordano Antonio,Gobbi Pietro,Guerra Germano,Gulisano Massimo,Macchi Veronica,Macchiarelli Guido,Manzoli Lucia,Michetti Fabrizio,Miscia Sebastiano,Montagnani Stefania,Montella Andrea Costantino Mario,Morini Sergio,Onori Paolo,Palumbo Carla,Papa Michele,Porzionato Andrea,Quacci Daniela Elena,Raspanti Mario,Rende Mario,Rezzani Rita,Ribatti Domenico,Ripani Maurizio,Rodella Luigi Fabrizio,Rossi Pellegrino,Sbarbati Andrea,Secchiero Paola,Sforza Chiarella,Stecco Carla,Toni Roberto,Vercelli Alessandro,Vitale Marco,Zancanaro Carlo,Zauli Giorgio,Zecchi Sandra,Anastasi Giuseppe Pio,Gaudio Eugenio. The Italian law on body donation: A position paper of the Italian College of Anatomists[J]. Annals of Anatomy,2021,238:

[8]GB/T 38418-2019, 捐赠用纺织品通用技术要求[S].

[9]李晓旭. 社会组织开展医疗救助状况及对策研究[D].华北理工大学,2020.

[10]福慈.爱心救助、健康扶贫 庆祝第四个“中华慈善日”捐赠恤病仪式隆重举行[J].慈善,2019(06):87.

[11]杨永政.挤出还是挤入:政府社会救助支出对个人慈善捐赠影响的实证研究[J].中国非营利评论,2019,24(02):162-187.

[12]冷燕飞, 校友网上捐赠系统V1.0. 湖北省,湖北旭智管理咨询有限公司,2018-10-09.

[13]魏子衡.河北十项举措做好“7·19”特大洪涝灾害应急救助工作[J].中国减灾,2016(17):44-45.

[14]赵莹莹. 建立捐赠机制 打造救助品牌 扎实推进慈善事业又好又快发展[N]. 人民政协报,2018-07-12(C04).

[15]安群英,阚安生,王天朗. 创新救助模式让群众得实惠[N]. 郑州日报,2018-01-29(001).

致  谢

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

免费领取本源代码,请关注点赞+私信

相关文章:

  • vue3调用mqtt
  • spring容器
  • 数商云供应链系统为机械设备行业打造数据智能应用服务,助力企业智慧决策
  • 纳米/聚合物/化合物/无机材料/多肽/多糖修饰聚苯乙烯微球的研究
  • javaweb JAVA JSP电车租赁系统jsp租赁系统 jsp汽车租赁 电车租赁网站案例源码
  • 中国标志性的图片简笔画,互联网简笔画图片大全
  • 管理经济学知识点汇总
  • 已经安装了torch,但是安装tochvision出现,no module named ‘torch‘
  • 赢未来杂志赢未来杂志社赢未来编辑部2022年第7期目录
  • 阿里云Elasticsearch搜索
  • Sulfo-Cy5 羧酸,Sulfo-Cyanine5 carboxylic acid,花青素荧光染料Cy5标记羧酸
  • AngularJS渲染完成事件捕获
  • spring MVC源码探索之AbstractHandlerMethodMapping
  • Redis线程模型
  • 通过 JFR 与日志深入探索 JVM - 调试 JVM 的工具 WhiteBox API
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • [译]前端离线指南(上)
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • Android Volley源码解析
  • android 一些 utils
  • download使用浅析
  • ES10 特性的完整指南
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • iOS 系统授权开发
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • Js基础——数据类型之Null和Undefined
  • Material Design
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • Python爬虫--- 1.3 BS4库的解析器
  • 半理解系列--Promise的进化史
  • 多线程 start 和 run 方法到底有什么区别?
  • 翻译--Thinking in React
  • 搞机器学习要哪些技能
  • 汉诺塔算法
  • 后端_MYSQL
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 数据仓库的几种建模方法
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 在Unity中实现一个简单的消息管理器
  • 进程与线程(三)——进程/线程间通信
  • 通过调用文摘列表API获取文摘
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ​批处理文件中的errorlevel用法
  • #数学建模# 线性规划问题的Matlab求解
  • (Note)C++中的继承方式
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (附源码)ssm高校实验室 毕业设计 800008
  • (规划)24届春招和25届暑假实习路线准备规划
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (转)程序员技术练级攻略
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .net core webapi 大文件上传到wwwroot文件夹