基于JAVA的日常收支管理系统设计与开发研究_第1页
基于JAVA的日常收支管理系统设计与开发研究_第2页
基于JAVA的日常收支管理系统设计与开发研究_第3页
基于JAVA的日常收支管理系统设计与开发研究_第4页
基于JAVA的日常收支管理系统设计与开发研究_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

燕山大学本科生毕业设计(论文)PAGEIIPAGEII基于JAVA的日常收支管理系统设计与开发摘要随着信息技术不断发展,越来越多的现代化计算机管理系统进入了社会应用的方方面面,收支管理领域也不例外。在日常生活中这一方面,人们更加重视收入和支出,通过收入和支出的关系来调节日常的理财管理。而传统的纸笔记账的方式,如果通过手工统计,不仅效率低下,而且每天记录的账本越来越多,不容易存储。本文根据人们在日常生活中的收支管理需求,采用B/S模式、JAVA技术和SSM(Spring+SpringMVC+MyBatis)架构实现日常收支管理系统的开发。关键词:日常收支管理;J2EE;SSM框架;Maven

AbstractWiththecontinuousdevelopmentofinformationtechnology,moreandmoremoderncomputermanagementsystemshaveenteredallaspectsofsocialapplication,andthefieldofrevenueandexpendituremanagementisnoexception.Indailylife,peoplepaymoreattentiontoincomeandpayment,andregulatethedailyfinancialmanagementthroughtherelationshipbetweenincomeandexpenditure.Thetraditionalwayofpapernotebooks,ifmanualstatistics,isnotonlyinefficient,butalsoaccountsmoreandmoredaily,anditisnoteasytostore.Accordingtopeople'sdemandofincomeandexpendituremanagementindailylife,thispaperstudiesthedesignanddevelopmentofdailybudgetmanagementsystembyusingB/S,JAVAandSSM(Spring+SpringMVC+MyBatis)architecturetorealizetheinquiryandstatisticsofincomeexpenditure,andpresenttheirownrevenueandexpendituredatathroughthecorrespondingcharts,sothatpeoplewillbecomplicated.Theheavymanualbusinessisliberatedtoimprovetheefficiencyandqualityofmanagingmoney.KeywordsdailyexpensesJ2EESSMframeworkMaven

目录摘要 IAbstract II1绪论 11.1课题研究背景 11.2课题目的及意义 22系统开发环境介绍 32.1JAVA简介 32.1.1Eclipse 32.1.2J2EE 32.1.3SSM 42.2数据库概述 62.3Maven 62.4Ajax及jQuery 62.5FreeMarker 72.6ECharts 73系统分析 83.1系统可行性分析 83.1.1经济可行性 83.1.2技术可行性 83.1.3操作可行性 83.2系统需求分析 93.2.1功能需求 93.2.2性能需求 103.3数据库分析 103.4系统安全分析 104系统设计 124.1系统设计原则 124.2系统架构设计 124.3系统功能模块设计 134.4数据库设计 165系统功能实现 195.1系统架构实现 195.2系统主要功能模块实现 195.2.1用户登录模块实现 205.2.2我的主页模块实现 215.2.3内容管理模块实现 216系统测试 256.1测试规划 256.2系统功能测试 256.3小结 277总结 287.1总结 287.2展望 28参考文献 29致谢 30PAGE291绪论1.1课题研究背景如今,随着社会经济的快速发展,人们的生活水平不断提高。同时,随着对外开放水平的不断提高,市场经济前景越来越好,金融市场的发展变化也在逐步加快,随之而来的是人们财富收入、房地产、汽车、旅游业不断增加,成为普通人生活中不可分割的一部分,现代化。在财务管理中,人们面临着越来越多的项目和事情,如何进行合理的规范。如何管理他们的日常收支,如何规划他们的财富,如何延续他们的财富,如何享受他们的财富,已经成为人们生活中不可分割的一部分。这与他们的生活质量密切相关,也为日常收支管理的产生和发展提供了良好的外部条件。在日常财务管理方面,现代家庭与传统家庭有很大的不同。通过比较,现代家庭的财务管理相对比较困难,其中隐藏着多种财务危机。一方面是收支比例比较大,收入水平虽然提高了,但是支出更大。这是由于进入新世纪以来,现代人的消费行为、消费观念以及生活方式等发生了重要的变革,彰显身份、地位、品味、个性等等消费活动行为已经成为当今社会的消费主流,人们通过这些消费行为以及内容实现着自我认同感。另一方面是投资虽广,风险也高。而传统家庭理财方式大多以储蓄为主,勤俭致富、量入为出,因而财富的累积速度虽慢,风险也低。还有一方面是子女花费更多。现代家庭父母十分重视孩子的养育,加上国家政策现在开放了二胎,生活上、学习教育上的费用比以前多得多。面对日渐增多的财富,大多数的中国家庭并不知道如何去利用以保持家庭财富的稳定持续的增长,使得家庭财务入不敷出,常年以往也就可能过着债务的生活,不能保持家庭财务的持续平衡稳定。有调查表明,导致现代婚姻破裂的最主要原因——钱。对金钱的缺乏或家庭财务危机可以导致一系列的心理精神问题,牵扯生活的方方面面,最终累积到不可收拾,关系最终冰消瓦解。所以,财务危机是一个恶性循环,一旦财务发生危机,处理不好肯能会压垮如同“稻草”一般的婚姻。1.2课题目的及意义世界经济实现全球化以来,随着科学技术的不断提高,尤其是互联网技术的不断提高。人们也不断地向软件开发工作者提出要求。与此同时,人类生产生活的不断发展也在不断的促使着家庭财务管理水平的增长[4]。无论是公司、企业还是家庭,财务都会越来越复杂,类型也会越来越复杂,财务管理也会越来越困难,特别是随着经济的不断增长,人们对家庭的财务管理会越来越困难。因此,现代社会中,就迫切需要一个良好的日常收支管理系统进行合理的综合管理。然而,很多家庭的收支管理还停留在传统的手工记账方式上,对比通过日常收支管理系统来管理收支信息,手工纸笔的记账方式不但效率和保密性都很低,不利于数据的查询和统计,并且还会产生繁冗的数据,工作量非常的大。因而为了满足人们通过计算机实现日常收支管理的迫切需求,开发并实现相对实用性强的日常收支管理系统对日常的收支信息进行管理不失为一个首选。在我们的日常生活中,收支管理是每个单位、个人和家庭组织不可缺少的任务,也是人们日常财务管理不可缺少的研究对象。然而,对家庭中这种无序支出的管理和核算是一个非常严重的问题,也是经济管理的研究课题。关键知识。家庭财务管理系统应提供全面的日常财务收支信息,完善信息分析能力,为家庭财务管理提供信息分析和财务指导。因此,一个完善的日常收支体系应该有这样的信息支撑。日常收支管理系统是为满足当代个人或家庭理财管理的需求而设计的一个账务管理系统。它从当代人们理财的需要出发,实现了管理个人或家庭账务所必须的日常收支、月预算管理、统计报表以及图形分析等功能,为每一个家庭管理者提供详细的信息以及快速的查询方式,更加快了家庭管理者对家庭账务进行管理的效率。

2系统开发环境介绍2.1JAVA简介Java是最初由SunMyStudio公司的詹姆斯·高斯林(后来合并为甲骨文公司)和他的同事开发的计算机程序设计语言。1995年正式发布。这个通用术语包括面向Java的面向对象编程语言和Java平台。它具有跨平台、面向对象和通用编程的特点。它广泛应用于企业级Web应用程序开发。使用。目前,Java编程语言得到了广泛的应用。与其他编程语言相比,Java语言具有以下优点。一方面,大多数由Java开发的程序都面向机构、企业和公司。它的结构比C++更清晰。与VB和VF语言相比,它更加复杂和僵化,更容易学习编程和操作。另一方面,Java程序可以跨多个平台在Linux系统和移动终端上运行,并实现多样化。应用程序简单易行,对计算机软件的开发和编程有着不可估量的帮助。2.1.1EclipseEclipse是一种基于Java的开源扩展开发平台,它只包含基本框架和服务,可以通过插件构建开发环境。伊柯丽斯最初是由IBM开发成为下一代IDE,但它的未来目标显然不只是成为Java程序的IDE环境。根据Eclipse的体系结构,通过插件的开发,它可以扩展到任何语言开发中,甚至成为一种绘制图片的工具。在2001年11月的开源社区中,它现在由Eclipse基金会管理,这是一个非盈利软件供应商联盟。2.1.2J2EEJ2EE是基于Java技术的一系列标准。与传统的应用开发体系结构不同,它包含许多组件,可以简化和规范应用系统的开发和部署,从而提高重用价值。它为构建可扩展和易于维护的业务系统提供了良好的机制,支持开发多层Web应用程序,以及JDBC、JNDI、EJB、RMI、JavaIDL/CORBA、JSP、JavaServlet、XML、JMS、JTA、JTS、JavaMail、JAF、EAI、JAAS、JCA等技术规范。图2-1。图2-1J2EE的架构图2.1.3SSMSSM是Spring、SpringMVC和Mybatis的缩写。它是一个轻量级的集成框架,应用广泛。许多项目都是在SSM框架下开发的,服务于中小企业门户、政府网站、金融服务等。SpringMVC框架作为表示层和MyBatis框架作为持久层可以很好地与Spring作为容器集成。在集成之后,Spring充当整个应用程序的工厂。应用SSM集成框架,将整个系统开发的结构大致划分为图2-2。图2-2SSM框架结构图Spring是当前主流的、开源的、轻量级的J2EE应用框架,是一个为开发者提供解决JavaEE问题的一站式框架。Spring框架提供面向方面的编程(AOP),其核心机制是反向控制(IOC),有自己的MVC框架,可以集成各种数据库持久层框架(如JDBC、Hibernate、MyBatis等)。AOP和IOC是互补的技术,它们使用模块化来解决企业应用程序开发中的复杂问题。在常用的面向对象开发方法中,日志语句可能需要放置在所有的方法和Java类中,以实现日志记录功能。但是,在AOP中,我们可以将它们声明性地应用于需要日志记录的组件,然后模块化日志记录服务。当然,优点是日志服务的存在不需要由Java类知道,也不需要关心相关的代码。因此,在SpringAOP中编写的应用程序代码是松散耦合的。AOP功能完全集成到Spring事务管理、日志记录和其他功能的上下文中。Spring框架是一个分层架构,由7个定义良好的模块组成。Spring模块构建在核心容器之上,核心容器定义了创建、配置和管理bean的方式,如图2-3所示。spring可以实现表示层、业务层和持久层的集成,但这并不意味着spring框架可以替代现有的框架,而是可以紧密地集成现有的框架,也就是说,它起到了桥梁的作用。组成Spring框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。SpringMVC是一种基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,属于SpringFrameWork的后续产品。SpringMVC使用了MVC架构模式的思想,将web层进行解耦,基于请求驱动指的就是使用请求-响应模型,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他如Struts1,Struts2的框架等[14]。SpringMVC分离了\t"/gebitan505/article/details/44455235/_blank"控制器、模型\t"/gebitan505/article/details/44455235/_blank"对象、分发器以及处理程序对象的角色,这种分离让它们更容易进行定制。SpringMVC是通过servlet来封装框架源代码以及控制其流程。首先,dispatcherservlet接收自web发送到SpringMVC程序的请求。然后,它使用注释配置组织在springweb应用程序上下文中配置的组件(例如实际的请求处理控制器和视图解析器),所有这些都需要处理。控制器类使用@controller注释来指示类是控制器类。当带有@controller注释的控制器接收到请求时,它会寻找适当的处理程序方法来处理该请求。这就需要控制器通过一个或多个handler映射去把每个请求映射到handler方法。为了这样做,一个控制器类的方法需要被@RequestMapping注解装饰,使它们成为handler方法。handler方法处理完请求后,它把控制权委托给视图名与handler方法返回值相同的视图。为了提供一个灵活的方法,一个handler方法的返回值并不代表一个视图的实现而是一个逻辑视图。这些逻辑视图能够映射到正确的实现,并将这些实现写入到上下文文件,之后便能更改视图层代码甚至不用修改请求handler类的代码。为一个逻辑名称匹配正确的文件是视图解析器的责任,只要控制器类把一个视图名称解析到一个视图实现,它会根据视图实现的设计来渲染对应对象。如图2-4所示是SpringMVC请求处理过程。2.2数据库概述mysql作为一种流行的小型关系型数据库管理系统,由于其存储空间小、运行速度快等优点,已经成为许多系统的首选数据库。同时,MySQL是一个自由、开源、功能丰富的数据库。为了降低总拥有成本,许多中小型网站使用MySQL作为网站数据库,降低了成本,提高了系统的安全性。综合考虑了日常收支管理系统的各个方面,选择了MySQL数据库对数据进行管理,该数据库基于数据访问频率低、存储数据量小、缺乏高并发性等特点。2.3MavenMaven是一个优秀的软件工程管理工具。基于项目对象模型(POM)的概念,Maven可以管理和控制项目的各个方面。例如,通过命令调用,可以方便快捷地解决项目建设中所需的清理、编译、测试和生成报告,从而有效地减少了人工配置和构建的数量。Maven将编译所需的资源放在一个中央仓库中,例如jar、tld、pom等。在编译程序时,Maven会自动在仓库中找到包,如果本地仓库不存在,则会将其从配置的远程仓库下载到本地仓库。所有这些都是自动的,直到那时我们只需要编写所有JAR包的依赖项。2.4Ajax及jQueryajax是一个使用异步交互过程的web服务。通过ajax,javascriptt可以使用xmlhttp请求对象直接与服务器通信,并且可以与web服务器交换数据,而无需重载页面,也不会阻塞用户[18]。ajax技术可以看作是服务器和客户机之间的过渡层。它使用户操作和服务器响应异步化,减少了网页请求的信息量,加快了网页的响应速度[19]。jQuery是一个兼容CSS3和各种浏览器的Javascript库。jQuery最大的优点是它的操作文档很全,各种应用的表达非常详细,还有许多成熟的插件供开发者学习使用。2.5FreeMarkerFreeMarker是一款模板引擎的通用工具,它基于模板和要改变的数据,用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)。FreeMarker基于Apache许可证2.0版本发布,它不是一个Web应用框架,而更适合作为一个Web应用框架的一个组件。其模板编写FreeMarkerTemplateLanguage(FTL),属于简单、专用的语言。在真实编程语言中需要准备相关数据来显示,比如数据库查询和业务运算。在模板中,主要用于如何展现数据,而在模板之外注意于要展示什么数据[21]。在本课题的研究中,采用FreeMarker完成页面模板层的实现。FreeMarker能够通过内建机制对不同类型数据的页面显示格式进行拓展,适应与MVC模式的Web应用,它还提供了强大的宏功能,有效地克服了jsp中传统html设计方法中代码滥用的有害后果,保证了逻辑层和表示层的相对分离,提高了页面的可维护性,使页面的划分更加合理。程序员和艺术家之间的责任更加明确[22]。2.6EChartsECharts,商业级数据图表,一个由纯Javascript组成的图表库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器(IE6/7/8/9/10/11,chrome,firefox,Safari等),底层依赖轻量级的Canvas类库ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。创新的拖拽重计算、数据视图、值域漫游等特性大大增强了用户体验,赋予了用户对数据进行挖掘、整合的能力。方便了日常收支系统实现将一段时间内的流水账务的数据信息从晦涩难懂的传统数据形象通过多种图形生动地呈现出来。

3系统分析3.1系统可行性分析在实际系统的开发中,首先要做好前期基础工作,掌握系统可行性的总体情况,明确新系统的初步目标,做好需求分析的准备。用户登录日常收支管理系统,记录各种日常运行账户信息,进行必要的管理操作,使用户能够全面控制和管理日常财务收支。因此,该系统的实际研究和开发应从经济可行性、技术可行性和操作可行性三个方面进行。3.1.1经济可行性随着社会物质文明的不断发展和人民生活水平的不断提高,家用电脑的普及已经到来。现在配置一台台式计算机的成本很低,完全可以认识到一台台式计算机可以被人们使用。随着通信行业的发展,在社区内建立内部局域网已成为一种趋势。硬件和网络传输没有问题。系统开发为日常收支管理系统,开发人员和维护人员各1人,成本基本为0。此外,该系统是一个净经济效益为0的非营利性网站。总之,这在经济上是可行的。3.1.2技术可行性该系统采用MVC分层体系结构思想和SSM框架进行集成开发。页面呈现部分采用jquery封装的Ajax技术,FreeMarker负责将数据模型中的数据合并到模板中,然后部分实现页面刷新和过载,完成输出,提高用户体验。使用MySQL数据库,这些技术相对成熟,便于系统维护和扩展,技术上可行。3.1.3操作可行性本系统主要用于记录用户日常自来水账户信息、收支管理及部分数据操作。基本上是添加、删除和修改数据库。所涉及的操作相对简单,易于理解和维护。数据库的设计过程并不复杂,数据类型和类型相对单一。因此,整个系统的运行非常方便快捷。任何接触过电脑的普通用户都能在很短的时间内快速启动。此外,系统本身的内存容量很小。系统配置要求不高,可以在不占用大量存储空间的情况下执行。用户只需在通用计算机上运行系统,简单、快速、方便地实现日常收支。管理。3.2系统需求分析系统需求分析是软件工程项目建设的第一阶段,也是软件工程项目建设的必由之路。合理的需求分析工作可以使项目前期建设事半功倍。相反,它会导致软件项目成本建设的增加,甚至影响整个项目的生存。3.2.1功能需求日常收支管理系统主要包括日常收支流水账管理和各种收支报表的统计分析。用户可以建立自己的账簿,或者一个人可以建立多个账户,在进行统计分析的同时,跟踪记录自己或其他人(如家庭成员)的增减活动,以便随时浏览和查询财产所有权状况,方便用户购买。追逐和管理财产。日常收支管理系统的功能模块主要包括日常收支管理、详细月度预算管理、通讯录管理、图形报表统计、用户管理、权限管理、角色管理等模块。如图3-1所示。图3-1系统用例图接下来是对每个用例的简要分析和描述:日常收支管理:日常收支管理是对用户的日常流量账户信息进行添加、修改、删除和查询,也可以根据查询条件统计相应金额。收支管理模块主要根据用户财产的增减和票据类型进行分类。它可以是日常收入、支出、转让、贷款等。月度预算明细管理:主要是对人员月度预算的成本项目信息进行新增、修改、删除和查询,可以根据不同的人员信息设置多个人员信息,对月度预算的详细成本项目进行管理。通讯录:主要记录人员信息和一系列的管理操作。操作日志:通过操作日志模块,用户可以对日常收支管理模块、月度预算明细管理模块、通讯录模块进行一系列的增减操作,用户可以随时查看某一时段的操作。用户管理、角色管理、权限管理模块,包括密码修改、用户数据管理、角色数据管理、权限数据管理等功能。一个用户可以有多个角色,一个角色可以有多个权限。在权限管理中,系统管理员可以根据权限名称为相应的权限分配不同的菜单。3.2.2性能需求一般性能要求是消息接收平稳,协议解析正确,界面友好,运行时间满足使用需要,安全保证。在我们的日常生活中,系统的高配置和高带宽的条件很容易得到满足。我们需要考虑的性能需求只不过是系统的接口和功能。在系统开发的每个阶段,我们都需要考虑接口的友好性以及各种功能的连接和协调。此外,在该系统中,还应考虑到收支表过大造成的数据查询困难。这些是系统设计下一步需要考虑的性能方面。3.3数据库分析本系统以MySQL为数据库,实现了日常收支管理功能、月度预算明细管理功能、通讯录功能和操作日志功能。其他子模块需要使用的表有:日常收支表、月度预算明细表、收支统计表、操作日志表、通讯簿表、按钮表、菜单表、角色表、权限表、权限菜单关系。表格、用户表格等。因此,总而言之,我们基本上可以确定系统所需的表。由于系统开发过程中的需要,系统也可能需要一些临时表,所以这里不作详细介绍。3.4系统安全分析为了实现对用户收支管理数据的保护,需要对信息安全提出更高的要求,具体体现在以下几个方面:防火墙安全设备的访问控制技术可以防止病毒的非法入侵,防止黑客对系统的危害。系统的操作系统环境应及时更新补丁,合理配置服务,安装防病毒软件,保证日常收支管理系统的稳定、安全运行。通过严格的用户登录认证机制,系统具有防止恶意登录和MD5加密保护用户帐户密码的功能。

4系统设计4.1系统设计原则系统设计是软件系统的重要组成部分,是新系统的物理设计阶段。根据软件设计要求和系统特点,系统设计应遵循以下原则:(1)系统的合理性所有设计都是按照系统的需求为原则。只有设计出符合并满足的需求的程序,才有使用价值。(2)系统的统一性如果设计不能达成统一条件,体系结构不断的变动,版本的迭代替换混乱不清,这是无法开展后面的工作,做出的程序也毫无价值。(3)系统的扩展性所有程序的生命周期取决于扩展增强功能是否容易。这取决于程序的亲和力。因此,在程序开发的早期阶段,根据不同的功能划分不同的模块是非常重要的。(4)系统的兼容性程序的部署不止要考虑系统环境,还要调整浏览器页面的兼容性,避免不同浏览器出现不一样显示效果,所以需要对程序测试进行把控。4.2系统架构设计为了满足了“低耦合,高内聚”,维持代码的健壮性和扩展性,系统采用SSM集成框架,它是Spring+SpringMVC+MyBatis的整合。整个系统主要是基于注解和XML映射文件的方式来整合,架构核心是Spring,贯穿整个MVC架构层。MVC设计模式主要体现在如图4-1所示J2EE的四层架构模型,包括表现层、控制层、业务逻辑层以及持久层。以下是各层的描述内容:JavaBeanJavaBean表现层SpringMVCFreeMarker控制层SpringMVC业务逻辑层SpringIOC数据持久层MyBatis浏览器数据库MySQL图4-1系统架构图表示层:对于用户来说,浏览器就是表示层。主要与用户页面交互。根据用户的输入和事件,向系统控制层发送HTTP请求,对返回的特定数据进行处理和显示。系统采用了freemaker模板引擎和jqueryeasyui前端框架,提供了友好的表示层设计。控制层:主要负责具体业务模块流程的控制。在这一层中,需要使用业务逻辑层的接口来控制业务流程。当表示层将请求发送到控制层时,控制层将请求分配给业务逻辑层进行数据处理,并将从视图和业务逻辑层返回的数据合并回表示层。业务逻辑层:主要负责业务模块、业务规则、业务流程等相关代码的逻辑应用设计。它位于数据访问层和控制层之间。通过调用数据访问层的接口,可以进行添加、删除和修改。这有利于通用业务逻辑的独立性和可重用性,使程序更简洁,然后将处理后的数据返回到控制层。持久层:在这里封装添加、删除和修改数据的任务,为业务逻辑层的每个模块提供数据需求支持。同时,利用mybatis框架提供了易于维护、高性能的数据访问,不需要进行复杂的SQL拼写等操作。4.3系统功能模块设计日常收支管理系统实现了人们对于日常收入支出的流水账务统计、工作的记录以及日常收支管理的成本,对自己和其他人的财务信息进行全面监测管理,以及通过图形图表将财务信息生动直观地呈现,为用户提供准确有效的信息价值。功能模块如图4-2所示。1.核心模块:图4-2系统的功能结构(1)我的主页:登录系统后默认显示我的主页,包括收支统计功能、支出分析功能、预算分析功能。收支统计部分将展示所有的人员、上月总收入以及上月总支出,同时用户上次登录日常收支管理系统的时间也会呈现出来。支出分析部分主要对人员分别在一周内和一月内每天的支出费用进行统计分析。通过折线图和柱状图的形式,用户可以得到支出费用随时间而变化的连续数据的反馈。预算分析部分主要将月预算费用项目的金额费用和月预算总金额的关系和比例通过扇形统计图的形式加以展示,使用户看上去一目了然。用户只需要在下拉框选择相应的人员,系统就会局部刷新图形。除此之外,支出分析和预算分析的数据图形可以通过图片格式保存在本地电脑,方便用户查看。如果后台数据信息为空或者不匹配,系统就会给出对应的图表数据请求失败的错误提示信息。内容管理:包括日常收支管理、月预算明细管理、通讯录。登录系统之后,页面左侧的菜单列表可以选择相应的菜单模块进入对应界面。日常收支管理模块和月预算管理模块主要是对整个日常收支系统状况进行全面的信息管理和操作。对收支类型分类和收支类型说明处理。图4-3日常收支管理的功能结构图4-4月预算明细管理的功能结构日常收支管理模块,包括统计用户每笔收入支出的详细信息,即账套、人员、类别、日期、收支标识、金额以及备注。所有的日常流水账务信息都呈现在这里,用户可以根据实际需要新增、修改、删除、浏览、查询流水账务记录。在月预算明细管理界面,用户同样能够根据每月预算项目设置费用项目名称、类别、人员和预算金额,同时能够进行增删查改的数据操作。同时,系统对每一项流水账务信息设置了备注功能,用户根据实际的日常收支情况对自己的财务收支信息进行备注说明,这样每一笔收入每一笔支出都有迹可循。整个日常收支管理系统中,内容管理中的收支管理模块和月预算明细管理模块比较重要,需要对人员的每一个信息做详细的记录,从而才有前面的收支统计、支出分析和预算分析图表的直观展示。通讯录只是对系统功能的一个补充,即对日常信息的补充和备忘,在此就不在详细介绍。日志查询:该模块主要统计了内容管理中各个模块的操作日志信息,根据内容管理的每一个模块的数据操作生成相应的日志信息。可以通过这个功能查询用户在操作时间范围内自己的数据操作情况,也可以以自定义的方式查询。在这个模块,设置了日志流水号、操作人员、操作时间、操作功能类型等信息。系统管理:该功能模块主要负责对用户信息资料的管理,新用户的注册,对已有用户的账号权限角色修改等等。对于新用户的注册,用户名是作为主键的,唯一的不能重复的,然后密码是默认的。登录系统后,输入原密码还有2次新密码才可以修改密码,同时也可以查询系统中已存在的所有用户名。图4-5系统管理的功能结构4.4数据库设计在项目开发和系统设计中,数据库设计就如同建造万丈高层建筑的基础一样。如果建设不好,在后续的系统维护、变更和功能扩展中,甚至在系统开发过程中,都会造成很大的问题。日常收支管理系统的整个数据存储需要在数据库中实现,包括用户账户信息、人员日常收支信息、详细的月度预算信息、操作日志信息、通讯录信息等。针对这些功能的实现,需要在数据库建立相应的数据表从而实现特定功能的数据的存储,以便能够获取对应接口对数据库进行操作,新增、修改、删除、查找特定的记录,对用户做出合适的响应请求,并返回正确的结果。下面对日常收支管理系统的主要数据库表做一个详细的总体设计:日常收支表:日常收支表的主要功能是实现日常收入支出的流水账务信息的添加、删除、修改,其主要的字段条目为账套、日期、人员、类别、标记、金额(元)和备注等信息。用户可以通过合适的操作对后台数据库表进行适当操作,存储用户的日常收支信息情况。如图4-1所示为日常收支表,包括序号、账套、日期、人员、类别、标记、金额以及备注这几列字段。表4-1日常收支表月预算明细表:月预算明细表的主要功能是实现月预算费用项目的添加、删除、修改,其主要的字段条目为费用项目、类别、人员、预算金额等信息。用户可以通过合适的操作对后台数据库表进行适当操作,存储用户的月预算明细信息情况。如图4-2所示为月预算明细表,包括序号、费用项目、类别、人员、预算金额这几列字段。表4-2月预算明细表操作日志表:如图4-3,该表为操作日志表,主要负责日常收支管理系统中用户操作日志的记录,由于考虑到系统记录数据量会比较多,为了方便用户确认对这些数据量的管理操作记录,那么将这些操作日志记录录入日常收支管理系统是全面综合地审视收支管理情况的重要一步。因此,在该表中设置了日志流水号、操作功能类型、日志描述、操作人员以及操作时间的操作日志信息。除此之外,操作日志信息在日常收支管理系统中只支持查询和浏览,不排除以后操作日志信息会非常的多,如果到了那一刻,用户可以通过数据库来对一些时间久远的操作日志信息进行批量删除,这也在一定程度上保证了操作日志的一致性。表4-3操作日志表用户表:用户表的功能是实现用户账号和用户密码的存储,用于登录时身份验证,并且记录登录时间便于下次登录系统时显示上次登录时间。如图4-4所示,用户表包括主键、用户帐户、用户密码、用户名、状态、角色id字符串等字段。表4-4用户表用户菜单表:用户菜单表主要负责每一个菜单信息的记录,包括菜单编号、菜单名称、菜单URL、菜单序号、父菜单编号等字段信息,用户可以通过给不同的角色分配合适的权限管理合适的菜单。如图4-5所示是用户菜单表。表4-5用户菜单表在数据库主要设计了以上几张表,对不同的表进行操作和管理,添加、删除、修改相应的条目,保护和存储用户的收支管理信息。进而,通过用户的相应查询请求,可以对不同的表进行检索,体现用户在日常生活中的收支状况。

5系统功能实现5.1系统架构实现本课题的日常收支管理系统是基于Spring+SpringMVC+MyBatis框架来开发的,使用Maven来管理项目,因而项目的维护和单元测试更加方便快捷。首先在Eclipse新建Maven项目工程之后,在pom.xml配置日常收支管理系统需要用到的jar包,主要是spring框架需要的jar包、springmvc需要的jar包、mybatis需要的jar包、mysql数据库连接的jar包、日志需要的jar包、json相关处理的jar包等。然后,在web.xml文件中配置字符集编码过滤器、配置Spring(主要是配置监听及引入spring.xml配置文件)、配置SpringMVC(主要是配置前端控制器DispatcherServlet及引入spring-mvc.xml配置文件)以及首页的加载等等。其次,在resources资源目录下新建spring-mvc.xml和spring-mybatis.xml文件。在spring-mvc.xml文件配置springMVC注解自动扫描包、静态资源处理、开启DWR注解以及扫描包、视图拦截器、FreeMarker配置以及视图解析器等等;在spring-mybatis.xml配置Spring注解及注解自动扫描包、MyBatis映射器注解及扫描包、数据库连接和数据源连接池配置、会话工厂类配置、事务配置等等。最后,在resources资源目录下还要新建perties、perties、perties以及logback.xml等文件。在JDBC中。属性文件,主要定义mysql数据库连接的配置信息,包括数据库连接驱动程序、url、数据库用户名和密码、数据库初始化连接号、最大活动连接号和最小最大空闲连接号等;perties文件主要设置了日志的输出级别,输出目的地以及信息输出格式。Logback.xml文件定义了日志输出的有效级别。至此编写完以上的配置文件,SSM框架的整合就基本完成了。接下来可以进行日常收支管理系统代码的开发工作。5.2系统主要功能模块实现系统功能模块的代码实现大体上分为6层结构,以日常收支管理模块的大致结构层如图5-1为例子,包括pojo层、mapp层、service层、handler层、ajax层以及controller层。其中pojo层是数据库表映射的对象类,mapp层是对象的持久化映射层,只需要编写Mapper接口(相当于Dao接口),由MyBatis框架根据接口定义创建接口的动态代理对象,Mapper-*.xml映射文件则定义了结果集和sql语句。service层是业务逻辑层,handler层对service层接口进行调用,对数据进行非空判断处理并返回到controller层,ajax层主要实现了用户与页面之间的交互。图5-1日常收支管理模块的代码结构层5.2.1用户登录模块实现图5-2用户登录功能模块用户登入登出代码实现部分:在进入日常收支管理系统之前,用户必须输入用户账号和密码,点击登录按钮,并成功验证用户身份。只有通过登录界面,才能进入系统主界面。如图5-2所示。否则输入的用户账号和用户密码错误需要重新输入。当用户在登录页面输入用户账户和用户密码并点击登录时,客户端会发送带有用户账户和用户密码的请求参数到DispacherServlet,再由DispacherServlet控制器查询HandlerMapping,找到处理对应请求的Controller,Controller调用业务逻辑处理后返回视图,接着DispacherServlet查询视图解析器,解析找到指定的视图并将结果显示到客户端。5.2.2我的主页模块实现登录系统>我的主页>支出分析:用户登录日常收支管理系统进入我的主页模块,发送支出分析请求,即在下拉框选中需要查询的人员和时间范围,客户端会发送相应的请求参数到后台,由后台调用调用相应的业务逻辑以JSON对象的形式返回所需要的数据到我的主页模块。如图5-3所示。图5-3我的主页功能模块5.2.3内容管理模块实现登录系统>日常收支管理在日常收支管理模块,收支管理页面如图5-4所示。用户录入的日常收支信息都将在这里呈现,以分页的形式,用户可以选择以10条记录为1页或20条记录为1页展现收支数据。同时,在这些记录条数下方该页还会统计所有条数的金额,帮助用户提供直观清晰的数据。图5-4日常收支管理模块登录系统>日常收支管理>新增代码实现部分如图5-5所示:当用户新增日常收支时,即点击“新增”按钮,系统会弹出新增日常收支的详细填写页面,如图5-6所示,用户此时只需填写一条流水账务支出或收入的全部信息,除了备注的字段信息可以为空,其他必须填写,否则提示对应的字段必须填写,导致提交不了,完成信息的填写最后点击“提交”按钮。此时,在日常收支管理页面可以看到已新增的该条流水账务信息。之后,用户须重复此操作来新增其它的流水账务信息。@RequestMapping("/doAdd")publicStringsave(DailyPojodailyPojo,HttpServletRequestrequest,ModelMapmodel){("**dailyController-save**"+dailyPojo);if(isRepSubmit(request)){returngoMain(request,model);}dailyHandler.save(dailyPojo);StringuserCode=this.getUserContext().getUserAccount();logHelper.addOperlog("10206_01","新增序号("+dailyPojo.getId()+")成功!",userCode);addMsg("操作成功!",request);returngoMain(request,model);}图5-5日常收支新增的后台部分代码图5-6新增功能模块登录系统>日常收支管理>修改代码实现部分如图5-7所示:当用户修改日常收支时,即选中特定行之后点击“修改”按钮,系统会弹出特定行的日常收支的账务信息的修改页面,如图5-7所示,用户可以修改自己需要改动的字段信息,确认了信息之后点击“提交”按钮,此时可以看到原来特定行的信息已改动,之后只需重复同样的操作便可以修改其他行的信息。@RequestMapping("/doEdit")publicStringupdate(DailyPojodailyPojo,HttpServletRequestrequest,ModelMapmodel){("**DailyController-update**"+dailyPojo);if(isRepSubmit(request)){returngoMain(request,model);}dailyHandler.update(dailyPojo);StringuserCode=this.getUserContext().getUserAccount();logHelper.addOperlog("10206_02","修改序号("+dailyPojo.getId()+")成功!",userCode);addMsg("操作成功!",request);returngoMain(request,model);}图5-7修改功能模块的后台部分代码图5-8修改功能模块登录系统>日常收支管理>查询当用户查询日常收支信息时,即在查询条件框中填写对应查询条件后点击“查询”按钮,系统会展示指定条件的日常收支的账务信息条目,如图5-9所示,用户可以查询需要查询的字段信息,确认后点击“查询”按钮。此时,他们可以看到所需信息已显示,然后可以通过重复相同的操作来查询所需信息。图5-9查询功能模块

6系统测试软件测试,描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出间的审核或者比较过程。目的是在系统投入生产性运行之前,尽可能多地发现并排除软件中潜藏的错误,从而提高软件测试的质量。6.1测试规划软件测试分为白盒和黑盒两种测试,本课题采用黑盒测试方法来测试系统各个模块的功能是否符合系统的需求设计,能否正常运行以及存在功能性缺陷与否等等。黑盒测试,又称功能测试,是指在不考虑程序的深层结构和内部特性的情况下,测试每一个功能是否能够正确使用。6.2系统功能测试功能测试,也叫黑盒测试,即把系统当作一个黑盒子,并且这个黑盒子不能打开,也就是说只需要根据输入的数据和输出结果来判断系统功能的正确与否,不用关心程序深层结构和内部特性。本系统包括用户登录模块、我的主页模块、内容管理模块、日志查询模块以及系统管理模块,在模块开发完成后,需要对各个模块进行测试,这里给出了主要的功能模块的部分测试用例,其他的就不一一写出来了。系统登录测试:在系统登录页面输入用户名密码,验证用户名和密码的正确性。表6-1系统登录测试测试用例编号输入预期输出实际输出状态1admin123456无错误提示,系统登录成功登录成功,进入系统主页通过2adminadmin错误提示用户或密码错误!通过3Adminadmin123456错误提示用户或密码错误!通过支出分析测试选择下拉框人员,并点击一周内或一月内的按钮,验证图表是否呈现对应日期范围的支出分析以及数据的正确性。表6-1支出分析测试测试用例编号输入预期输出实际输出状态1甲,一周内成功展示上一周的支出数据图形展示上一周支出数据图形通过2丙,一月内成功展示上一月的支出数据图形展示上一月支出数据图形通过日常收支管理测试:表6-2新增/修改/删除/浏览日常收支测试测试用例编号输入预期输出实际输出状态1新增账务信息,必输项信息为空错误提示提示该输入项为必输项通过2新增完整的账务信息新增成功,列表增加一行记录成功新增账务信息通过3删除选中行的账务信息删除成功,列表原选中行记录消失删除账务信息成功通过4点击删除,未选中任何行警告提示提示请先选中一行通过5录入查询条件查询查询信息与录入条件一致列表显示录入条件查询行通过6浏览选中行的账务信息浏览信息与选中行信息一致浏览信息与选中行信息一致通过7未选中行,点击浏览警告提示提示请先选中一行通过8修改选中行账务信息修改信息与选中行信息一致修改账务信息成功通过9未选中行,点击修改警告提示提示请先选中一行通过操作日志测试:表6-3操作日志测试测试用例编号输入预期输出实际输出状态1新增/修改/删除内容管理模块中的任意记录操作日志列表生成对应日志记录操作日志列表生成对应日志记录,信息与操作过程内容一致通过2录入查询条件查询查询信息与录入条件一致列表显示录入条件查询行通过3浏览选中行的日志信息浏览信息与选中行信息一致浏览信息与选中行信息一致通过4未选中行,点击浏览警告提示提示请先选中一行通过按照以上测试用例方法对系统其他功能模块进行测试,此处就不再一一列举。6.3小结本章主要介绍了系统的测试规划以及系统功能的测试,并对系统的功能模块编写了测试用例,通过列举测试用例和执行测试用例的方法详细介绍了系统各个功能模块的具体测试内容以及结果。最后,测试结果表明本系统的功能达到预期目标,发挥预期效果,从而实现系统各个功能。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论