ssm物业管理系统的设计与实现毕业设计源码261632

摘要

随着计算机科学技术日渐成熟,人们已经深刻认识到了计算机功能的强大,计算机已经进入到了人类社会发展的各个领域,并且发挥着十分重要的作用。每个社区的物业管理是一项系统而复杂的工作,它需要一个团队互相配合、分工协作。在该领域,传统的手工存取或者借助一些软件对物业进行管理方式常常不能对物业的各种信息进行实时的跟踪以及管理,因此为了更加完善的对物业进行统一的管理,使其能够更加全面、更加有效的服务于软件开发的过程,故开发此物业管理系统。

论文针对在物业各种数据规模大,物业管理人员和业主需要对物业相关的一些信息进行管理的需求,设计了物业管理系统的框架,给出了物业管理系统的总体设计,并对物业管理系统的架构及关键模块的实现过程进行了详细论述。采用SSM技术和MySQL数据库技术,基于B/S模式实现了一个完整系统的设计,为大使用者提供了良好的物业管理的系统。

关键词:物业管理;SSM;MySQL;B/S模式

Abstract

With the increasing maturity of computer science and technology, people have deeply realized the powerful function of computer. Computer has entered all fields of human social development and plays a very important role. The property management of each community is a systematic and complex work, which requires a team to cooperate with each other, division of labor and cooperation. In this field, the traditional manual access or the management of the property with the help of some software often can not track and manage all kinds of property information in real time. Therefore, in order to improve the unified management of the property and enable it to serve the process of software development more comprehensively and effectively, this property management system is developed.

In view of the large scale of various property data and the need of property managers and owners to manage some property related information, this paper designs the framework of property management system, gives the overall design of property management system, and discusses in detail the architecture of property management system and the implementation process of key modules. Using SSM technology and MySQL database technology, a complete system design is realized based on B / S mode, which provides a good property management system for large users.

Key words: property management; SSM; MySQL; B / S mode

目  录

摘要

Abstract

第 1 章 引  言

1.1 选题背景

1.2 课题研究意义

1.3 论文结构安排

1.4 开发技术说明:

1.5 Mysql描述

1.6 Java描述

1.7 ssm框架介绍

第 2 章 物业管理系统的需求分析

2.1 可行性分析

2.1.1 技术可行性

2.1.2 经济可行性

2.1.3 操作可行性

2.2 总体设计原则

2.3 系统需求分析

2.4 业务流程分析

2.4.1 登录流程

2.4.2 注册流程

2.4.3 添加信息流程

2.4.4 删除信息流程

2.4.5 非功能性需求分析

2.5 系统用例分析

第 3 章 物业管理系统总体设计

3.1 系统功能模块设计

3.2 数据库设计

3.2.1 数据库概念结构设计

3.2.2 数据库逻辑结构设计

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

4.1 登录模块的实现

4.1.1 通知公告界面

4.1.2 收费信息界面

4.1.3 个人信息界面

4.2 管理人员角色模块

4.2.1 登录界面

4.2.2 用户管理界面

4.2.3 收费信息界面

4.2.4 投诉信息界面

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

5.1 软件测试的重要性

5.2 测试实例的研究与选择

5.3 测试环境与测试条件

5.4 系统运行情况

5.5 系统评价

5.5.1 系统功能评价

5.5.2 系统技术评价

5.5.3 系统经济评价

第 6 章 结论

参考文献

致谢

现下全国很多物业都已经把自己物业内的软件朝着智能化的方向在转移,尤其是在朝着符合自己物业特色的网页端方向来扩展。像以前物业公司内使用的物业管理系统是单机版的,就需要朝着网页版来进行扩展,因此我决定开物业管理系统[1]。通过借助现在热门的浏览器进行浏览管理,让物业管理系统变的更加人性化,也可以提高自己物业在智能化管理上有所提高[2]。

    1. 课题研究意义

近几年来,随着物业相关的各种信息越来越多,比如报修维修、缴费、车位、访客等信息,对物业管理方面的需求越来越高,我们在工作中越来越多方面需要利用网页端管理系统来进行管理,我们所需要的各种信息的处理操作都可以通过使用网页系统来完成,有了网页端的系统就可以方便的对各种信息进行查询和维护了[3]。

因此需要实现对物业管理的电子化,提高物业管理效能和使用效能。随着计算机应用技术的高速发展,各种基于WEB的系统收到了企业以及用户的欢迎,基于这个背景下设计一款物业管理系统,利用WEB网页管理的便利性的优点,提高物业管理系统的工作效率,使业主以及管理人员能够享受更加便捷高效的服务[4]。

    1. 论文结构安排

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

第1章 交代项目的背景和现状。

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

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

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

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

第6章 介绍了物业管理系统的结论。

    1. 开发技术说明:

本系统前端部分基于MVVM模式进行开发,采用B/S模式,后端部分基于Java的ssm框架进行开发。

前端部分:前端框架采用了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router和Vuex实现动态路由和全局状态管理,Ajax实现前后端通信,Element UI组件库使页面快速成型,项目前端通过栅格布局实现响应式,可适应PC端、平板端、手机端等不同屏幕大小尺寸的完美布局展示。

后端部分:采用ssm作为开发框架,同时集成MyBatis、Redis等相关技术。

    1. Mysql描述

现在Mysql数据库在网络上它可以支撑许多个用户,而且也可以适应客服机和服务器的部署或者配置等,我们这里的服务器和客户机其实就是一种软件上的概念,并且我们使用的计算机硬件也与他们不存在一一对应的关系[3]。

Mysql是一款非常流行的关系型数据库管理系统,它的出现一直都是佼佼者,它不仅功能非常强大,而且使用起来非常方便,并且Mysql的跨平台能力也很好,软件开发人员非常喜欢它的这些强大的优点。不同于其他关系型数据库,对于数据库的管理它有着自己的一套方案,通过对用户设定相应的权限和角色来达到对数据库的管理。由此可见,Mysql是一个能够适用于吞吐量高,可靠性高,效率高的一款数据库管理软件[4]。

优点一:Mysql中对于不同身份的用户都设定其不同的权限来完成不同的业务逻辑,这使得Mysql在安全和完整性远远超出了其他关系型数据库。

优点二:对于那些动画、图形和声音的数据类型Mysql也可以支持,这说明多数据类型Mysql也是可以支持的。

优点三:Mysql还可以做到多个平台的开发,软件开发的多种编程语言都可以实现对Mysql数据库的操作[5] [6]。

    1. Java描述

Java是一种平台性计算机语言技术,主要包括两部分:JAVA虚拟机(Java Virtual Machine,JVM)和JAVA API(Application Program Interface,应用接口编程) [11]。

个人对两种语言深入理解:C语言更多的是创造工具,而Java更多的是使用工具。我们知道Java很多的底层实现其实是通过C语言来实现的,所以更能看出这一点。在使用Java的过程中,我们需要会使用API文档,可以将其看做是Java的使用说明。Java面向对象的特性,使其有很多封装好的对象,在使用时,我们只要知道对象的行为(也是对象封装的方法),在这里要注意方法是静态方法还是常规方法,因为调用时,差距很大。未来肯定会有比Java更加人性化,更加容易开发的编程语言,但是肯定不可能完全迥异于Java语言,俗话说“他山之石,可以攻玉”,学好Java也可以方便我们更好的学习其它语言[12]。

    1. ssm框架介绍

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

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

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

 

在软件开发的过程中系统的可行性分析是必不可少的,可行性的研究就是评估问题是否能得到解决并且是要以最少的时间和最少的代价来解决。为实现上面的目标还要必须考虑到解决这些问题的方法的优点和缺点,还要考虑到实现了这些系统规模的开发带来的经济效益。这里可以用技术的可行性,操作的可行性,经济的可行性对我们的系统进行可行性的研究。物业管理系统的可行性分析如下所示:

      1. 技术可行性

物业管理系统采用的是Java编程语言,数据库部分采用的是当前流行的MYSQL数据库,物业管理系统中的所有数据资源都存储在Mysql数据库中,本系统多处采用了AJAX的异步操作,AJAX技术可以对用户指定部分的数据进行局部刷新,不仅减少了服务器对页面的解析而且极大增加了用户的体验度。本系统的环境配置也较为简单,因为用的是Myeclipse编辑器,而Myeclipse里面有自带的Tomcat服务器和JDK环境,因此不需要我们在重新配置。

本系统采用Java、Mysql来支持事务和数据逻辑用H5来做前台页面的显示。

HTML网页中的不同组成成分是采用标签的形式来进行标识的。以下是HTML的基本的组成布局:

 

图3-1 HTML基本构成图

      1. 经济可行性

物业管理系统是在Java和Mysql的环境中运行的,而系统的成本也只是主要分布在软件的开发和维护上。但如果系统上线投入使用之后,不仅可以方便人们,还节省了用户的时间和精力,而且还极大限度的方便了运营者,减少了运营者的工作强度。物业管理系统其实也不太复杂,在开发的时候经济支出也不大,在开发系统时时间用的也不多,从时间的优势和对经济利益方面产生的好处远超过维护和管理的成本,所以开发此系统是可行合适的。

      1. 操作可行性

本系统是基于浏览器和服务器的物业管理系统,系统开发完成之后用户只需要在浏览器中输入正确的URL地址即可进行访问。本系统的前台页面简单明了,在没有操作指导的情况下也可以进行操作,无论是系统管理员还是普通用户在页面中所有的操作都是在浏览器中完成的,因此只要电脑在有网络的情况下,打开浏览器都能操作。而且在使用之前也不用进行相关的环境配置,因此本系统方便、简单、易于使用,所以该系统是容易并且可操作的。

    1. 总体设计原则

一个系统要在开发和维护的过程中方便使用,必须采取一定的设计原则,其主要设计原则有:

简单性:系统功能简单易懂,只需要掌握基本的计算机操作能力即可使用。

针对性:针对特定的小区用户,没有多余的其他功能,使用户可以专心使用。

实用性:能够满足用户在线查看小区物业信息等方面的需求。

一致性:设计风格、命名规范一致,整个系统的各个功能模块色彩、摆放位置、功能等都是一致的。

先进性:本系统的代码采用读取数据的方式,方便后续开发、拓展。

    1. 系统需求分析

物业管理系统需要满足的需求有以下几个:

1.信息获取方便,用户可在网页上快速浏览到新的信息

2.查看小区物业详情,单独查看某一个小区物业的详细信息,获取好评等。

3.注册登录,小区需要吸引用户,即通过注册来提高用户的存留率。

4.修改用户信息,可以修改用户密码或者用户名等一些个性化操作。

5.管理员功能,管理员可以对用户或者小区物业进行管理。

6.系统安全,操作简便,不过于复杂。

7.系统可以稳定运行,不存在卡顿等问题造成用户反感。

    1. 业务流程分析
      1. 登录流程

登录模块主要满足管理员以及用户的权限登录,用户登录流程图如图2-1所示。

 

图2-1 登录流程图

      1. 注册流程

未有账号的用户可进入注册界面进行注册操作,用户注册流程图如图2-2所示。

 

图2-2 注册流程图

      1. 添加信息流程

用户在添加信息时,信息编号自动生成,系统会对添加的信息进行验证,验证通过则添加至数据库,添加信息成功,反之添加失败。添加信息流程如图2-3所示。

 

图2-3 添加信息流程图

      1. 删除信息流程

用户可选择要删除的信息进行信息删除操作,在删除信息时系统提示是否确定删除信息,是则删除信息成功,系统数据库将信息进行删除。删除信息流程图如图2-4所示。

 

图2-4删除信息流程图

      1. 非功能性需求分析

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

2.1 物业管理系统非功能需求表

安全性

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

可靠性

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

性能

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

可扩展性

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

易用性

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

可维护性

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

    1. 系统用例分析

物业管理系统中居民角色用例图如图2.1所示:

 

图2.1 居民角色用例图

物业管理系统中管理员角色用例图如图2.2所示:

 

图2.2管理员角色用例图

在上一章节中分析了物业管理系统的功能性需求,并且根据需求分析了物业管理系统中的用例。那么接下来就要开始对物业管理系统架构、主要功能和数据库开始进行设计。

    1. 系统功能模块设计

系统的整体架构确定以后,再来看物业管理系统的主要功能模块图整体的功能模块包括管理员+居民用户两个模块,实现的模块主要有用户管理、费信息、投诉分类、投诉信息、通知公告、物业报修等。

 

图3.1 物业管理系统功能模块图

    1. 数据库设计

数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有E-R模型和逻辑结构设计两部分。

      1. 数据库概念结构设计

下面是整个物业管理系统中主要的数据库表总E-R实体关系图。

图3.2 物业管理系统总E-R关系图

 

      1. 数据库逻辑结构设计

通过前面E-R关系图一共需要创建很多个数据表。在此罗列这几个主要数据库表的关系模型如下:

charging_information

字段名称

类型

长度

不是null

主键

字段说明

charging_information_id

int

11

主键

收费信息ID

unit_number

int

11

单元号

payment_name

varchar

64

缴费名称

payment_amount

int

11

缴费金额

related_notes

varchar

255

相关票据

payment_details

text

0

缴费明细

pay_state

varchar

16

支付状态

pay_type

varchar

16

支付类型

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

community_residents

字段名称

类型

长度

不是null

主键

字段说明

community_residents_id

int

11

主键

小区居民ID

unit_number

varchar

64

单元号

name_of_owner

varchar

64

业主姓名

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

user_id

int

11

用户ID

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

complaint_classification

字段名称

类型

长度

不是null

主键

字段说明

complaint_classification_id

int

11

主键

投诉分类ID

complaint_category

varchar

64

投诉类别

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

complaint_information

字段名称

类型

长度

不是null

主键

字段说明

complaint_information_id

int

11

主键

投诉信息ID

theme

varchar

64

主题

complaint_category

varchar

64

投诉类别

relevant_vouchers

varchar

255

相关凭证

unit_number

int

11

单元号

name_of_owner

varchar

64

业主姓名

complaint_content

text

0

投诉内容

examine_state

varchar

16

审核状态

examine_reply

varchar

16

审核回复

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

notice_announcement

字段名称

类型

长度

不是null

主键

字段说明

notice_announcement_id

int

11

主键

通知公告ID

title

varchar

64

标题

relevant_attachments

varchar

255

相关附件

publisher

varchar

64

发布人

release_date

date

0

发布日期

content

text

0

内容

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

property_repair

字段名称

类型

长度

不是null

主键

字段说明

property_repair_id

int

11

主键

物业报修ID

unit_number

int

11

单元号

name_of_owner

varchar

64

业主姓名

repair_items

varchar

64

报修物品

related_pictures

varchar

255

相关图片

repair_content

text

0

报修内容

examine_state

varchar

16

审核状态

examine_reply

varchar

16

审核回复

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

物业管理系统的详细设计与实现主要是根据前面的物业管理系统的需求分析和物业管理系统的总体设计来设计页面并实现业务逻辑。主要从物业管理系统界面实现、业务逻辑实现这两部分进行介绍。

    1. 登录模块的实现

该登录模块利用js进行设计,JavaScript函数CheckSubmit()对输入框是否为空进行验证,使用js的技术结合Mysql 2012数据库的查询语句进行登录信息的验证。首先从文本框中分别获得账号user_name和密码user_pw,使用Sql语句“select * from t_user where user_name=‘”+user_name+“’ and user_pw=‘”+user_pw+“’”将查询结果赋给rs结果集,若rs.next()返回值为空,表示数据库找不到该用户数据,若rs.next()返回值不为空,则显示登录成功,进入主界面。

用户登录流程图如下所示。

 

5-1用户登录流程

用户登录流程:用户只有输入正确的用户名和密码才会成功进入系统,用户输入用户名密码后点击登录按钮,系统会进行校验该用户名是否存在,如果用户名与密码不匹配或者用户名不存在,则返回主界面。

系统登录界面如下图所示。

 

图5-2系统登录界面

登录功能的逻辑代码如下所示。

  /**

     * 登录

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

}

      1.  通知公告界面

当访客点击物业管理系统中导航栏上的“通知公告”后将会进入到该“通知公告”列表的界面,然后选择想要看的通知公告,点击进入到详细界面,通知公告界面如下图4.3 所示。

 

图4.3通知公告界面图

      1. 收费信息界面

当访业主击物业管理系统中导航栏上的“收费信息”后将会进入到该收费信息提交的界面,系统会自动生成单元号、缴费名称、缴费金额、相关票据、缴费明细、支付状态等信息,业主只需要点击支付就可以了,收费界面如下图4.4所示。

 

图4.4收费信息界面图

      1. 个人信息界面

当业主点击右上角“我的”这个按钮,会出现子菜单,点击“个人信息”可以对个人的资料以及登录系统的密码进行设置,我的账户界面如下图4.5所示。

 

图4.5我的账户界面图

    1. 管理人员角色模块

物业管理系统的管理员人员包括了管理员以及居民用户两部分,其中管理员拥有最高的权限,可以对用户信息、系统信息以及物业服务信息进行管控。

      1. 登录界面

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

图4.6登录界面图

      1. 用户管理界面

用户管理模块包含了管理员,居民用户两个部分,管理员可以查看到业主的信息,但是只有管理员可以对业主进行增删改查操作,界面如下图4.11所示。

 

 

图4.7 用户管理界面图

      1. 收费信息界面

管理员点击“收费信息”这一按钮后会显示出单元号、缴费名称、缴费金额、相关票据、缴费金额、相关票据、缴费明细信息,,点击“详情”这一按钮后,会对收费信息的进行编辑,收费信息界面如下图4.8所示。

 

图4.8 收费信息界面图

      1. 投诉信息界面

点击“投诉信息”这一按钮后会显示出所有的投诉信息,在投诉信息界面可以查看新的投诉信息,可以对投诉信息进行修改、删除、回复,投诉信息界面如下图4.13所示。

 

图4.9 投诉信息界面图

测试存在于软件开发进程中的最后一个阶段,它可以保证一个软件的开发质量是否符合设计者的初衷,也为程序的正式上线做了最后一道质量检测的工序。软件测试主要是控制各种条件、包括软件输出方式,使用模式和运行环境等,来评估一个系统或应用是否符合设计标准。在软件测试过程中,我们一般刻意的去制造错误和极端条件,不能仅依照正常模式允许,而是多去尝试那些意外的情况。

    1. 软件测试的重要性

只有在运行和维护阶段之前经历大量的测试的软件,才能说明它的质量是经得起检验的。最近计算机业界也都一致认为,测试应该存在于软件设计的每个阶段,因为越早发现错误,修复起来就越容易。

实际上,对于一个软件应用,错误是必然存在的,无论使用何种技术或手段,都不可能绝对的排除软件漏洞。测试是随着软件开发一同诞生的,两者是共同发展进步的。实际上,测试可以大幅度的降低维护的成本,如果一个漏洞在开发的早期就被发现,那么修复它的成本远比上线后再修复的成本要低得多。

    1. 测试实例的研究与选择

测试有白盒测试和黑盒测试两种方式。

其中,白盒测试是将软件看成一个透明的白盒子,按照程序的内部控制结构和处理技术逻辑来选定测试用例、软件系统测试的逻辑路径及过程需要进行管理测试,又称玻璃盒测试。因此白盒测试需要选择足够多的测试用例,覆盖尽可能多的代码来发现程序中的错误。

黑盒测试,也称为功能测试。它将需软件看作一个黑盒,像一个普通用户一样来模拟软件的使用流程。黑盒测试通过大量的输入边界值或错误数据,来检查是否可产生正确的输出。

本系统测试 主要选择黑盒测试,少量采用白盒测试。通过测试达到以下测试目的:

1.检查各大功能模块的运行,确保其能够正确运行,并检查各页面的完整性,保证页面完整。

2.检查各个接口是否可以正确地输入和输出,保证数据流通稳定可行。

3.检查数据结构,保证其和外部接口没有访问错误,访问顺利。

4.检查原计划的性能需求有没有完成,运行流畅。

本系统的测试用例(部分):

登录部分测试用例

编号

对象

项目

操作

预期结果

结果

1

登录

登录提示

使用正确的账号密码登录

成功登录

预期结果

2

登录提示

使用正确的账号但错误的密码登录

提示密码错误

预期结果

3

登录提示

使用错误的账号登录

提示不存在账户

预期结果

4

登录提示

不输入账号,点击登录

提示输入账号

预期结果

5

登录提示

输入账号但不输入密码点击登录

提示输入密码

预期结果

6

登录入口

已登录账号,查看登录入口

不显示登录入口

预期结果


    1. 测试环境与测试条件

处理器:Inter Core I7-4710MQ四核处理器

内存:4GB

硬盘:1T

操作系统:Windows 10

数据库:MySQL

    1. 系统运行情况

全部测试用例都已通过(包括但不限于以上测试用例),且不存在漏洞,实现了论文开始时所作要求。本系统运行稳定,使用流畅,可以满足客户需求。

    1. 系统评价
      1. 系统功能评价

试运行后进行系统评估,可以认为该系统达到预定的目标要求,可以满足用户的需求,也满足了系统开发前所作目标。

      1. 系统技术评价

系统在经过大量重复测试后运行十分稳定,安全实用,功能模块已经达到预定目标所需。

      1. 系统经济评价

在规定的时间内实现系统的大部分功能,且满足要求,节省开发成本,有助于提高科学管理水平,符合本人经济情况。

  • 6 章 结论

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

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

参考文献

[1]李贞,耿海军.基于Java交互式页面的远程农机设计系统研究[J].农机化研究,2022,44(10):176-180.DOI:10.13427/j.cnki.njyi.2022.10.028.

[2]林辉.基于Java Web的渭南市大荔县图书管理系统的设计与实现[J].电子设计工程,2021,29(24):155-158+163.DOI:10.14022/j.issn1674-6236.2021.24.032.

[3]闫秋萍.SSH框架下小微企业财务收支管理系统设计与实现[J].微型电脑应用,2021,37(12):177-179+186.

[4]安沈昊,于荣欢.基于MySQL的天地一体化网络结构数据库构建[J].兵工自动化,2021,40(12):66-70.

[5]王淑芳.收支两条线管理模式下血站财务管理研究[J].经济管理文摘,2021(24):146-147.

[6]苏妮娜,张培,李呈越,张德瑞.财务软件的应用对财务管理专业学生专业素养的影响——以太原工业学院为例[J].经济师,2021(12):209-210.

[7]郑艳玲.多种支付模式下医院财务存在的风险与解决对策[J].纳税,2021,15(33):99-100.

[8]李兆琪.基于MySQL数据库服务器创建企业工资管理系统[J].赤峰学院学报(自然科学版),2021,37(11):10-11.DOI:10.13398/j.cnki.issn1673-260x.2021.11.004.

[9]张景辉.基于Java的数据库开发技巧[J].电脑知识与技术,2021,17(33):68-69.DOI:10.14004/j.cnki.ckt.2021.3325.

[10]张凤霞.财务管理视角下的事业单位内部控制策略[J].财会学习,2021(32):197-198.

[11]杨 国举, 张 桂花. 基于springboot与layui的数据展示设计与实现[J]. 计算机系统网络和电信,2020,2(3):

[12]Minmin He,Shengli Lv. Research on Civil Aircraft Structural Strength Material Performance Database Based on SpringBoot[C]//Proceedings of 2020 4th International Conference on Electrical,Automation and Mechanical Engineering(EAME2020).Proceedings of 2020 4th International Conference on Electrical,2020:1062-1067.DOI:10.26914/c.cnkihy.2020.057541.

[13]Kan Ji,Xiaojun Chen,Aoming Qin,Jia Liu,Jinmei Wu. Design and Implementation of Teaching Quality Evaluation System Based on SpringBoot[C]//第七届计算与信息科学国际学术会议论文集.,2019:444-452.

[14]高攀, 张桂花. 基于gradle和springboot实现的个人简单博客系统[J]. 计算机系统网络和电信,2019,1(3):

[15]王翾. 物业管理系统的设计与实现[D].华北理工大学,2019.

[16]郑光勇,李健,李宏坤.基于JAVA的物业管理系统的研究与设计[J].教育现代化,2018,5(46):1-5.DOI:10.16541/j.cnki.2095-8420.2018.46.001.

[17]龚静琪. 基于MVC的新型物业管理系统的设计与实现[D].江西财经大学,2018.

[18]徐丽. 基于移动应用的物业管理系统的设计与实现[D].山东大学,2018.

[19]张琳莹,张云洁.物业管理系统设计与实现[J].电脑知识与技术,2018,14(11):104-107.DOI:10.14004/j.cnki.ckt.2018.1221.

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

致谢

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340