• 1017.00 KB
  • 2022-04-22 13:45:22 发布

家庭财务管理系统毕业论文.doc

  • 39页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'家庭财务管理系统毕业论文目录第1章绪论11.4.1B/S模式介绍31.4.2Java技术概述41.4.3JavaBean介绍41.4.4JSP技术介绍41.4.5Hibernate技术介绍51.4.6“容器”Tomcat应用服务器介绍51.4.7Oracle数据库介绍61.4.8开发框架技术MVC71.5系统开发理论介绍71.5.1系统规划阶段81.5.2系统分析阶段81.5.3系统设计阶段81.5.4系统实施阶段91.5.5系统运行和维护阶段91.6运行环境9第2章系统需求分析102.1系统目标102.2系统可行性分析102.2.1技术可行性102.2.2经济可行性102.3系统需求分析方法112.3.1系统需求分析概述112.3.2系统需求分析方法122.4系统功能需求分析12第3章系统总体设计143.1系统设计方法14 3.2系统架构143.3系统功能模块细分163.4系统数据库的设计173.4.1数据库相关理论173.4.1数据库分析183.2数据库概念结构设计183.3数据库逻辑结构设计204.1系统设计方法234.2系统模块设计234.2.1框架文件配置234.2.2系统主界面244.3.1基础数据管理界面264.3.2收支管理界面274.3.3系统管理界面29第五章结论34致谢35参考文献37 第1章绪论1.1课题来源21世纪的中国,随着人们生活水平的提高,个人家庭财富的不断增长,人们迫切的需要进行家庭理财,但是大部分家庭又不知道怎样去理财投资,以保持家庭财富的持续稳定的增长。其实家庭理财规划非但不神秘,而且与每个人和每个人家庭都密切相关,这种个人化的理财服务在20世纪八十年代已经在国际上比较发达的城市拥有成熟的市场。理财师为客户进行的理财,主要是根据客户的资产状况与风险偏好,关注客户的需求与目标,以“帮助客户”为核心理念,采取一整套规范的模式,向客户提供设计生活方方面面的的全面财务建议,并调用储蓄、保险、股票、债券、基金、信托等金融产品,为客户寻找一个最适合的理财组合方式,以确保其资产的保值与增值。家庭理财并不是一个新鲜词,简单地说就是开源节流、管理好家庭的钱财。想想看,您是如何管理好自己的钱财的?您家庭一定有些存款,还有可能买卖股票、债券,还可能给自己和家人买了保险---其实在日常生活中不自觉的运用这各种理财方法。因此开发一个家庭理财管理系统迎合了现代的家庭发展趋势,对居民合理分配家庭财产起到重要意义。一直以来人们使用传统人工的方式文件、纸张记帐管理模式,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难,所以利用计算机实现财务信息的管理的自动化将势在必行。今天我们使用计算机对家庭财务信息进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高家庭财务管理的效率,面对目前的实际状况,迫切需要开发一个新系统来适应这一些工作。1.2系统现状及发展趋势第9页 家庭理财系统,即FamilyConductFinancialTransactionsSystem。它利用计算机应用技术,使家庭理财逐步信息化,从而形成由家庭成员与计算机共同构成服务于家庭的人机信息财务管理系统。家庭理财系统在国内外很多地方使用已经相当的普遍。国外的家庭理财管理系统发展的相对比较成熟,比如他们系统里包含有股票的预测、基金的分析等等。在国内,计算机使用盛行的当今社会,家庭理财管理系统已基本替代了传统的手工记账理财的方法,给消费者带来极大的方便,但由于人们的生活水平越来越高,收支种类越来越多,家庭消费的内容日益丰富等,现行的许多家庭理财管理系统已不能满足大家的需求,许多功能还亟待完善与更新。虽然国内的家庭理财管理系统功能较不完善,但在我国科技迅速发展的今天,其发展前景将十分令人期待,尤其是在近几年,伴随着计算机在社会中的高速普及,家庭理财系统的使用范围逐步扩大,从最早的简单记录家庭、个人财务的收支情况,到现在对财务的收支查询、汇总、报表分析、预测等等。巨大的市场需求也促使了很多公司加大了对家庭理财系统的研究。当今社会人们的生活水平和文化素质普遍提高,随着市场经济的快速发展,观念的不断更新,每个人的理财意识普遍增强,特别是家庭理财意识得到很大发展,人们对家庭各方面消费不仅仅只有进行记录和统计的愿望,各种收入消费途径错综复杂,如何使用户能更加方便的操作成为要求;同时伴随精神和物质生活的提高,人们购置和使用计算机的能力也在增强,网络越来越发达,一种新型网络家庭理财管理系统软件正等待出现。家庭理财管理系统是一个为方便处理家庭财务的一个软件,它的作用是更好的满足理财者对家庭财务管理的需要。目前社会上普遍使用的家庭理财管理系统基本都是单击版的,随着IT技术的进步和计算机网络技术的发展,以及家庭收支范围的扩大,家庭理财管理系统将逐渐从传统的桌面管理向网络集成的方向发展,从局部、静态、事后核算到全局、动态、实时的管理,基于不同软硬件平台、不同网络架构的各级财务管理子系统需要有机地协同工作。因此基于Internet的家庭理财管理系统必然成为未来家庭理财管理系统的发展趋势。1.3系统的开发目的和意义第9页 家庭理财管理系统是为满足当代家庭理财管理的需要而设计开发的一个财务管理系统。它针对家庭理财的需要,开发出一个能实现管理家庭财务收支以及统计分析等功能的实用型软件,能够为每一个家庭的管理者提供充足的信息和快捷的查询手段,大大方便家庭管理者合理科学有效的理财。伴随着信息时代的到来,信息的种类、数量越来越多,容量也越来越大,在竞争越来越激烈的今天,随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。而使用计算机对家庭财务进行管理,已经成为一种趋势,与传统的手工式家庭财务管理相比,利用计算机软件对家庭财务实行管理具有检索迅速、查找方便、可行性高、存储量大、保密性好、寿命长、成本低等优点。家庭理财管理系统正是在这种环境下应运而生,其开发的整体任务是实现家庭财务管理的系统化、规范化、科学化,从而达到有效管理家庭财务的目的。因此,开发这样一个系统在当今社会中是很有必要的。1.4系统开发工具与数据库介绍1.4.1B/S模式介绍伴随着Internet的迅速发展,计算机技术正在由基于C/S(client/Server)模式的应用系统转变为基于B/S模式的应用系统。过去,网络软件的开发都采用C/S(client)模式,在这种模式下,主要的业务逻辑都集中于客户端程序,因此,必然导致以下问题:(1)系统安装、调试、维护和升级困难。由于客户端的硬件配置可能存在差异,软件环能各不相同,因此,在安装时,必须对每一个客户端分别进行配置,同样,在软件升级时也要对客户端分别处理。(2)在整个系统中,业务逻辑和用户界面都集中到了客户端,必然会增加安全隐患。(3)B/S模式带来了巨大的好处:开发成本及维护成本降低。由于B/S架构管理软件只安装在服务器端(Server)上,即应用程序在部署、升级、维护时,只需要在服务器端进行配置就可以了,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。第9页 (4)良好的安全性能,防火墙技术可以保证后台数据库的安全性。所有的配置工作都集中在服务器端且所有客户端请求都是通过DBMS来访问数据库,从而大大减少了数据直接暴露的风险。1.4.2Java技术概述Java技术是Sun公司推出的新的一代面向对象程序设计语言,特别适合于Internet应用程序开发。Java的产生与流行是当今Internet发展的客观要求,Java是一门各方面性能都很好的编程语言,它的基本特点是简单、面向对象、分布式、解释的、健壮的、安全的、结构中立的、可移植的、性能很优异的、多线程的、动态的,特别适合在Internet环境上开发的应用系统。Java技术不仅仅包括Java语言,它还有一系列的与之相应的开发技术,如:JavaBean、Jsp、Hibertate、Struts等等。1.4.3JavaBean介绍用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。最初,JavaBean的目的是为了将可以重复使用的软件代码打包标准。特别是用与帮助厂家开发在综合开发环境(IDE)下使用的java软件部件。这些包括如Grid控件,用户可以将该部件拖放到开发环境中。从此,JavaBean就可以扩展为一个javaweb应用的标准部件,并且JavaBean部件框架已经扩展为企业版的Bean(EJB)。1.4.4JSP技术介绍JSP的全称是JavaServerPages,它是SUN推出的一种动态网页技术标准。它在传统的静态页面文件(*.html,*.htm)中加入JAVA程序片段和JSP标记,就构成了JSP页面。JSP具有以下的优点:(1)将业务层与表示层分离:使用JSP技术,网络开发人员可充分使用HTML来设计页面显示部分(如字体颜色等),并使用JSP指令或者JAVA程序片段来生成网页上的动态内容;(2)能够跨平台:JSP支持绝大部分平台,包括现在非常流行的LINUX系统,应用非常广泛的Apache服务器也提供了支持JSP的服务;第9页 (3)组件的开发和使用很方便:如ASP的组件是由C++,VB等语言开发的,并需要注册才能使用;而JSP的组件是用Java开发的,可以直接使用;(4)一次编写,处处运行:作为JAVA开发平台的一部分,JSP具有JAVA所有优点,包括Writeonce,Runeverywhere.1.4.5Hibernate技术介绍Hibernate是一个免费的开源Java包,它使得与关系数据库打交道变得十分轻松,就像您的数据库中包含每天使用的普通Java对象一样,同时不必考虑如何把它们从神秘的数据库表中取出(或放回到数据库表中)。它解放了您,使您可以专注于应用程序的对象和功能,而不必担心如何保存它们或稍后如何找到它们。 Hibernate不会对您造成妨碍,也不会强迫您修改对象的行为方式。它们不需要实现任何不可思议的接口以便能够持续存在。惟一需要做的就是创建一份XML“映射文档”,告诉Hibernate您希望能够保存在数据库中的类,以及它们如何关联到该数据库中的表和列,然后就可以要求它以对象的形式获取数据,或者把对象保存为数据。与其他解决方案相比,它几乎已经很完美了。运行时,Hibernate读取映射文档,然后动态构建Java类,以便管理数据库与Java之间的转换。在Hibernate中有一个简单而直观的API,用于对数据库所表示的对象执行查询。要修改这些对象,(一般情况下)只需在程序中与它们进行交互,然后告诉Hibernate保存修改即可。类似地,创建新对象也很简单;只需以常规方式创建它们,然后告诉Hibernate有关它们的信息,这样就能在数据库中保存它们。HibernateAPI学习起来很简单,而且它与程序流的交互相当自然。在适当的位置调用它,就可以达成目的。它带来了很多自动化和代码节省方面的好处,所以花一点时间学习它是值得的。而且还可以获得另一个好处,即代码不用关心要使用的数据库种类(否则的话甚至必须知道)。我所在的公司就曾有过在开发过程后期被迫更换数据库厂商的经历。这会造成巨大的灾难,但是借助于Hibernate,只需要简单地修改Hibernate配置文件即可。1.4.6“容器”Tomcat应用服务器介绍第9页 目前支持JSP的应用服务器是较多的,Tomcat是其中较为流行的一个Web服务器,被JavaWorld杂志的编辑选为2001年度最具创新的Java产品,可见其在业界的地位。Tomcat是一个免费的开源的Serlvet容器,在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。编译以后,访问将会很快。Tomcat也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如Apache。我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和Servlet。Tomcat是一个很好的工具,不仅仅因为其免费,功能强大,更因为其开放性,越来越受到人们的重视。1.4.7Oracle数据库介绍Oracle是以高级结构化查询语言(SQL)为基础的大型关系数据库,通俗地讲它是用方便逻辑管理的语言操纵大量有规律数据的集合。是目前最流行的B/S体系结构的数据库之一。ORACLE7.X以来引入了共享SQL和多线索服务器体系结构。这减少了ORACLE的资源占用,并增强了ORACLE的能力,使之在低档软硬件平台上用较少的资源就可以支持更多的用户,而在高档平台上可以支持成百上千个用户。提供了基于角色(ROLE)分工的安全保密管理。在数据库管理功能、完整性检查、安全性、一致性方面都有良好的表现。提供了与第三代高级语言的接口软件PRO*系列,能在C,C++等主语言中嵌入SQL语句及过程化(PL/SQL)语句,对数据库中的数据进行操纵。加上它有许多优秀的前台开发工具如POWERBUILD、SQL*FORMS、VISIABASIC等,可以快速开发生成基于客户端PC平台的应用程序,并具有良好的移植性。提供了新的分布式数据库能力。可通过网络较方便地读写远端数据库里的数据,并有对称复制的技术。ORACLE数据库在物理上是存储于硬盘的各种文件。它是活动的,可扩充的,随着数据的添加和应用程序的增大而变化。第9页 ORACLE数据库在逻辑上是由许多表空间构成。主要分为系统表空间和非系统表空间。非系统表空间内存储着各项应用的数据、索引、程序等相关信息。我们准备上马一个较大的ORACLE应用系统时,应该创建它所独占的表空间,同时定义物理文件的存放路径和所占硬盘的大小。物理上存放于网络的多个ORACLE数据库,逻辑上可以看成一个单个的大数据库。用户可以通过网络对异地数据库中的数据同时进行存取,而服务器之间的协同处理对于工作站用户及应用程序而言是完全透明的:开发人员无需关心网络的连接细节、无需关心数据在网络接点中的具体分布情况、也无需关心服务器之间的协调工作过程。由网络相连的两个ORACLE数据库之间通过数据库链接(DB-LINKS)建立访问机制,相当于一方以另一方的某用户远程登录所做的操作。但ORACLE采用的一些高级管理方法,如同义词(SYNONME)等使我们觉察不到这个过程,似乎远端的数据就在本地。数据库复制技术包括:实时复制、定时复制、储存转发复制。对复制的力度而言,有整个数据库表的复制,表中部分行的复制。在复制的过程中,有自动冲突检测和解决的手段。1.4.8开发框架技术MVC对于框架技术,我们采用Struts+Struts+Hibernate的整合,其实任何一种框架都可以完成我们的项目,但我们选择三种框架的组合是因为三种框架各有好处,我们利用它们的优点,来避免它们的缺点,充分利用Java技术在web的应用。●Struts是应用比较广泛的一种表现层框架Struts是一个为开发基于模型(Model)-视图(View)-控制器(Controller)(MVC)模式的应用架构的开源框架,是利用Servlet,JSP和customtaglibrary构建Web应用的一项非常有用的技术。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速。它使用服务层框架可以将JavaBeans从Jsp/Servlet中分离出来,而使用表现层框架则可以将Jsp中剩余的JavaBeans完全分离,这部分JavaBeans主要负责显示相关信息,一般是通过标签库(Taglib)实现,不同框架有不同自己的标签库,Struts是应用比较广泛的一种表现层框架。1.5系统开发理论介绍软件的生命周期指从提出软件产品开始,直到该软件产品被淘汰的全过程。信息系统在使用过程中随着其生存环境的变化,要不断维护、修改,当它不再适应的时候就要被淘汰,就要有新系统代替老系统,这种周期循环称为信息系统的生命周期。第9页 信息系统的生命周期可以分为系统规划、系统分析、系统设计、系统实施、系统运行和维护等五个阶段。1.5.1系统规划阶段系统规划阶段的任务是对各家庭理财的环境、目标及现行系统的状况进行初步调查,根据家庭理财目标和发展战略,确定信息系统的发展战略,对建设新系统的需求做出分析和预测,同时考虑建设新系统所受的各种约束,研究建设新系统的必要性和可能性。根据需要与可能,给出拟建系统的备选方案。对这些方案进行可行性分析,写出可行性分析报告。可行性分析报告审议通过后,将新系统建设方案及实施计划编写成系统设计任务书。1.5.2系统分析阶段系统分析阶段的任务是根据系统设计任务书所确定的范围,对现行系统进行详细调查,描述现行系统的业务流程,指出现行系统的局限性和不足之处,确定新系统的基本目标和逻辑功能要求,即提出新系统的逻辑模型。这个阶段又称为逻辑设计阶段,他是整个系统建设的关键阶段,也是信息系统建设与一般工程项目的重要区别所在。该阶段的工作成果体现在系统说明书中,这是系统建设的必备文件。它既是给用户看的,也是下一阶段的工作依据。因此,系统说明书既要通俗,又要准确。用户通过说明书可以了解未来系统的功能,判断是不是其所要求的系统。系统说明书一旦讨论通过,就是系统设计的依据,也是将来验收系统的依据。1.5.3系统设计阶段简单地讲,系统分析阶段的任务是回答系统“做什么”的问题,而系统设计阶段要回答的问题是“怎么做”。该阶段的任务是根据系统说明书中规定的功能要求,考虑实际条件,具体设计实现逻辑模型的技术方案,也即设计新系统的物理模型。这个阶段又称为物理设计阶段,可分为总体设计和详细设计两个阶段。这个阶段的技术文档是“系统设计说明书”。1.5.4系统实施阶段第9页 系统实施阶段是将设计的系统付诸实施的阶段。这一阶段的任务包括计算机等设备的购置、安装和调试,程序的编写和调试,人员培训,数据文件转换,系统调试与转换等。这个阶段的特点是几个互相联系、互相制约的任务同时展开,必须精心安排、合理组织。系统实施是按实施计划分阶段完成的,每个阶段应写出实施进度报告。系统测试之后写出系统测试分析报告。1.5.5系统运行和维护阶段系统投入运行后,需要经常进行维护和评价,记录系统运行的情况,根据一定的规格对系统进行必要的修改,评价系统的工作质量和经济效益。1.6运行环境①硬件环境内存:2G,CUP:赛扬2.4G,硬盘:320G。②操作系统MicrosoftWindowsXPProfessionalsp2③软件环境数据库:Oracle10g开发工具:MyEclipse8.5第9页 第2章系统需求分析2.1系统目标本系统要达到的目标有以下几点:◆验证用户和密码的正确性再登入,以及修改密码和退出系统;◆保存每次输入的收支记录,并提供两种查询方式:种类法和编号法;◆整个收支记录库可以导出为文本文件,以便做其它工作;◆能够提供一定的安全机制,提供数据信息授权访问,防止随意删改,同时提供信息备份的服务。2.2系统可行性分析可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。从现在应用的技术方面、管理者和用户的操作方式方面研究智能家庭理财系统的可行性和必要性。智能家庭理财系统的实施,将很大程度上提高现代家庭的理财效率,使得现代家庭能够更加方便的对自己的财务进行个性化的管理。2.2.1技术可行性技术可行性研究的任务,是从总体上鉴别和选择技术系统,是研究现有的技术条件能否顺利完成开发工作,硬、软件配置能否满足开发的需求等等。本系统的开发使用MyEclipse作为系统开发的开发环境,它作为一种现代化的编程语言,提供完善的指令控制语句、类与对象的支持及丰富的数据类型,给开发高性能系统提供了保障,为开发满足客户要求的系统保证了代码的模块化要求,而代码模块化的提高,非常有利于以后对新系统的扩展与修改。综上所述,本系统为一个小型的家庭理财系统,所耗费的资源非常的小,现行的电脑无论是硬件还是软件都能够满足条件,因此,本系统在技术上是可行的。2.2.2经济可行性进行软件开发项目成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发,这些即为经济可行性。如今,随着计算机的大量普及,各种第37页 软件的开发成本越来越低,价格也越来越底。本系统也是这样,开发成本较低,只是需要一台配置一般的计算机,该系统运行时占计算机的资源也不多,但并不会因为开发成本低而造成系统功能性能的下降。相反,随着计算机技术的发展,各种实用软件的性能日渐提高。家庭理财管理系统廉价的开发成本,却能够为居民带来相当大的实惠和方便。主要表现在:(1)本系统是一个拥有多种实用功能的家庭理财管理信息系统,它集成了家庭成员管理、收入管理、支出管理、密码管理等多种功能,具有较强的实用性和方便性。(2)本系统的运行可以大大提高居民管理财务的效率,减少不必要的人力和物力。(3)本系统还具有查询和统计功能,能够查询到用户在一段特定时间内收入和支出的情况,特别是支出情况,有时往往会让用户在月底吓一跳,大大超出预算,还弄不清钱都花到哪里了。有了家庭理财系统,不仅使用户对口袋里钱的去向一目了然,而且可以帮助用户渐渐感悟到一些心得,摸清哪些花费是必要的,哪些“意外开支”是可以避免的,哪笔开支是可继续评估其必要性的。(4)本系统的运行可以大大的提高家庭的工作效率,并可以使敏感文档更加安全。由此可以得出,本系统在经济上是具有可行性的。2.3系统需求分析方法2.3.1系统需求分析概述在软件工程中,需求分析指的是在建立一个新的或改变一个现存的电脑系统时,为描写新系统的目的、范围和定义所要做的所有的工作。需求分析的任务是通过详细调查现实世界要处理的对象,充分了解原系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。它是软件工程中的一个关键过程。在这个过程中,系统分析员和软件工程师必须确定顾客的需要。只有在确定了这些需要后,他们才能够分析和寻求新系统的解决方法。如果在需求分析时分析者们未能正确地认识到顾客的需要的话,那么最后的软件实际上不可能达到顾客的需要,或者软件无法在规定的时间里完工。2.3.2系统需求分析方法第37页 在管理信息系统开发实践中,系统分析人员使用了多种系统分析方法,主要有结构化分析方法(StructuredAnalysis简称SA)、面向数据结构的分析方法以及面向对象的分析方法等。其中,结构化分析方法自从20世纪70年代末提出以后,由于其简单、清晰、易于学习、掌握和使用的特点,成为长期以来被广泛使用的分析方法。结构化系统分析是指用一组标准的准则和工具从事分析工作,即有组织、有计划、有规律地进行分析。它是一种利用系统工程的思想和有关结构的概念、自顶向下划分模块、逐步求精的分析方法。该方法把研究对象看成一个系统,用分解和抽象这两个基本策略来控制系统的复杂性。它有三个要点:(1)分解和抽象;(2)图表描述;(3)模型转换。结构化系统分析常用的工具有:数据流程图(DFD)、数据字典(DD)、数据库存储结构规范化法;数据立即存取图;处理逻辑的表达方法(决策树、判定表、结构式语言)2.4系统功能需求分析家庭理财管理系统是典型的信息管理系统,其开发功能主要包括:通过计算机管理个人财务,实现无纸化理财;通过查询分析,统计出各项数据,分析出生活中的浪费和节约的地方,通过强大的查询和索检高效的索检出数据,提高办事效率。本系统主要有以下功能:◆对家庭成员资料的管理及对使用权限的管理。相关信息存在“家庭成员信息表”中,普通用户可以对自己的密码进行修改,系统管理员在密码修改功能上的基础上可以添加或删除成员;◆对理财项目可以进行编辑。理财项目包括日常收入来源和支出类型,相关信息存在“收入来源表”、“支出类型表”、“活期账户信息表”均可以实现添加、删除、修改功能;◆日常财务管理,包括日常收入和日常支出,即记下日常的收入和日常的支出。相关信息存入“收入信息表”和“支出信息表”中,均可以实现添加、删除、修改功能。◆理财分析,实现分类查询,即按类别查询收支明细,而且可以看到收支的财务分析报告,并可打印;◆数据维护:包括数据库的备份、数据库的导入/出,方便用户保存和早期查询;第37页 第3章系统总体设计3.1系统设计方法系统设计是对整个管理系统功能进行分析,并划分和构建系统功能模块。模块化程序设计就是把一个大程序按一个人能理解的规模进行分解的一种方法。模块化指的是把一个程序按功能分解成若干彼此具有一定独立性同时也具有一定联系的组成部分,这些组成部分称为模块。系统设计是本系统开发的重要阶段,它直接影响到目标系统的质量,是整个开发工作的核心。系统设计阶段的主要任务是:在系统分析提出的逻辑模型的基础上,科学合理地进行物理模型设计。本系统在设计过程中,充分考虑了系统的稳健性、适应性和效率性,符合系统设计的原则。3.2系统架构通过对家庭理财功能的分析,本系统分为系统登录界面、系统主程序界面、导出数据库界面、导入数据库界面、收支项目管理界面、家庭成员管理界面、日常收入管理界面、日常支出管理界面、查询明细界面。系统结构设计图如下:第37页 图3.1系统结构图数据库家庭理财管理系统登录系统主界面家庭成员管理界面收支项目管理界面日常收支管理界面查询明细界面第37页 3.3系统功能模块细分根据上述系统总体架构思想的分析,可将系统分为以下六大部分:◆系统管理模块负责对用户和数据库进行管理◆基础数据管理模块负责对收支项目和家庭成员进行管理◆日常收支管理模块负责对日常收入和日常支出进行管理最后得到如图示系统功能模块图:图3.2系统功能模块图修改密码重新登录角色管理添加、删除、修改日常支出添加、删除、修改日常收入日常收入日常支出添加、删除、修改成员信息添加、删除收支项目收支项目管理成员管理日常收支管理基础数据管理系统管理家庭理财管理系统第37页 3.4系统数据库的设计开发数据库应用系统,大部分可分为数据库的分析、设计和应用程序的分析、设计两部分。后台数据库的合理设计在本系统中占有十分重要的地位,数据库设计的优劣将会直接影响系统的准确性、效率及实现效果,合理的设计能提高数据存储效率,保证数据的完整和一致。3.4.1数据库相关理论在数据库应用系统开发之前,对开发数据库的基本概念应当了解,对数据库的结构、开发数据库应用程序的步骤、开发体系及方法都应当有相当清晰的了解和认识。数据库应用系统开发的目标是建立一个满足用户长期需求的产品。开发的主要过程为:理解用户的需求,然后,把它们转变为有效的数据库设计。把设计转变为实际的数据库,并且这些数据库带有功能完备、高效能的应用。数据库技术在计算机软件领域研究中一直是非常重要的主题,产生于60年代,30多年来数据库技术得到了迅速发展,并已形成较为完整的理论体系和一大批实用系统。数据库数据库由DBMS(数据库管理系统)处理,DBMS则由开发人员和用户通过应用程序直接或间接地使用。它主要包括四个要素:用户数据、元数据、索引和应用元数据。u用户数据目前,大多数主流数据库管理系统把用户数据表示为关系。现在把关系看作数据表。表的列包含域或属性,表的行包含对应业务环境中的实体的记录。并非所有的关系都同样符合要求,有些关系比其它关系更结构化一些。一个用以产生良好结构关系的过程,称作规范化。u元数据第37页 数据库是自描述的,这就意味着它自身包含了它的结构的描述,这种结构的描述称作元数据。因为DBMS产品是用来存储和操纵表的,所以大多数产品把元数据以表的形式存储,有时称作系统表。这些系统表存储了数据库中表的情况,指出每一个表中有多少列,那一列是主关键字,每一列的数据类型的描述,它也存储索引、关键字、规则和数据库结构的其他部分。在表中存储元数据不仅对DBMS是有效的,对用户也是方便的,因为他们可以使用与查询用户数据同样的查询工具来查询元数据。u索引第三种类型的数据改进了数据库的性能和可访问性,这种数据经常称作开销数据,尽管有时也采用其他类型的数据结构,如链表,但它主要还是索引。索引可以用来排序和快速访问数据。u应用元数据存储在数据库中的第四种数据是应用元数据,它用来存储用户窗体、报表、查询和其他形式的查询组件。并非所有的DBMS都支持应用组件,支持组件的DBMS也不一定把全部组件的结构作为应用元数据存储在数据库中。然而,大多数现代的DBMS产品存储这种数据作为数据库的一部分。一般来说,数据库开发人员和用户都不直接访问应用元数据,相反,他们通过DBMS中的工具来处理这些数据。3.4.1数据库分析根据以上分析,设计出下列数据项和数据结构:l成员信息:编号,称呼,姓名,密码,权限;l收入项目信息:编号,收入来源;l支出项目信息:编号,支出类型;l日常收入信息:编号,日期,方式,金额,项目,来源,人员,备注;l日常支出信息:编号,日期,方式,金额,项目,去向,人员,备注;3.2数据库概念结构设计得到上面的数据项和数据结构后,即可设计满足用户需求的各种实体,以及它们之间的关系。根据上述设计规划出以下各个实体及其E-R图:第37页 成员信息编号权限姓名密码称呼图3.3成员信息图收入项目收入来源编号支出项目支出类型编号图3.4收入支出项目图日常收入信息项目备注人员来源编号日期方式金额图3.5日常收入信息图第37页 综合以上E-R模型,得到整个系统的E-R关系图,如下示:支出类型收入项目查询查询日常支出日常收入管理管理用户图3.6E-R关系图3.3数据库逻辑结构设计系统模型的逻辑结构设计的任务是把概念结构设计好的基本的E-R图转换为支持关系模型的DBMS相符合的逻辑结构。家庭理财管理系统数据库各表具体定义如下:表3.1用户信息表字段名类型大小是否为空主键编号int4Y是密码int4Y否表3.2成员信息表字段名类型大小是否为空主键姓名nvarchar50Y否第37页 称呼nvarchar50Y否密码int8Y否权限int2Y否编号int4N是表3.3收入项目信息表字段名类型大小是否为空主键编号int10N是收入来源nvarchar50Y否表3.4支出项目信息表字段名类型大小是否为空主键编号int10N是支出类型nvarchar50Y否表3.5收入信息表字段名类型大小是否为空主键日期nvarchar50Y否方式nvarchar50Y否金额money8Y否项目nvarchar50Y否来源nvarchar50Y否人员nvarchar50Y否备注ntext16Y否keyint4N是表3.6支出信息表字段名类型大小是否为空主键日期nvarchar50Y否第37页 方式nvarchar50Y否金额money8Y否项目nvarchar50Y否去向nvarchar50Y否人员nvarchar50Y否备注ntext16Y否keyint4N是第37页 第4章系统设计和实现4.1系统设计方法系统设计是对整个管理系统功能进行分析,并划分和构建系统功能模块。模块化程序设计就是把一个大程序按一个人能理解的规模进行分解的一种方法。模块化指的是把一个程序按功能分解成若干彼此具有一定独立性同时也具有一定联系的组成部分,这些组成部分称为模块。系统设计是本系统开发的重要阶段,它直接影响到目标系统的质量,是整个开发工作的核心。系统设计阶段的主要任务是:在系统分析提出的逻辑模型的基础上,科学合理地进行物理模型设计。本系统在设计过程中,充分考虑了系统的稳健性、适应性和效率性,符合系统设计的原则。4.2系统模块设计4.2.1框架文件配置Spring+hibernate的配置第37页 Sprint+Struts的配置(在web.xml中添加如下配置)4.2.2系统主界面第37页 用户进入系统时要输入正确的用户名和密码,系统从数据库用户表中检索是否有相对应的数据信息,若输入正确则进入主界面,否则提示错误,需重新输入。选择取消退出登陆系统。若连续三次输入的用户名和密码都无法与数据库中的数据匹配,则强制推出系统。模块流程图如图4.1所示:退出失败3次进入系统用户登录开始图4.1登录模块流程图登陆窗体如图4.2所示:图4.2登录窗体第37页 输入正确的用户名和密码登录,进入系统主界面,如下图示:图4.3系统主界面4.3.1基础数据管理界面收支项目管理界面,如图所示:第37页 图4.4成员管理界面,如图所示:图4.54.3.2收支管理界面第37页 日常收入界面:如图所示图4.6日常支出界面:如图所示第37页 图4.74.3.3系统管理界面角色管理界面,如图所示:图4.8分页代码://会话判断UserInfouser=(UserInfo)request.get(SysConstants.KEY_USER_INFO);if(user==null){respond.setErrorMsg("登录超时,请重新登录!");return;}UserAppSettingssettings=(UserAppSettings)request.get(SysConstants.USER_APP_SETTINGS);if(settings==null){//防止session过期得到空值settings=newUserAppSettings();第37页 }//分页设置StringpageNum=(String)request.get("pageNum");intnumberPerPage=settings.getPrePageNum();intcurrentPage;if(pageNum==null){currentPage=1;}else{currentPage=Integer.parseInt(pageNum);}PageBeanpageBean=null;pageBean=outputDao.getAllOutPutInfo();if(pageBean!=null){outputList=pageBean.getDispList();}intcurr=pageBean.getCurrentPage();intnextPage=pageBean.getCurrentPage()+1;intpreviousPage=pageBean.getCurrentPage()-1;inttotalPages=pageBean.getTotalPages();response.add("nextPage",nextPage);response.add("previousPage",previousPage);response.add("totalPages",totalPages);response.add("pageBean",pageBean);dao类publicPageBeangetAllOutPutInfo(){第37页 PageBeanpageBean=null;StringlistHql="fromOutputwhere1=1andautoSaveStatus=1";ListdiaryList=newArrayList();InttotalCount=this.queryTotalCount();ListoutputList=this.queryForList(listHql,null);if(outputList!=null&&outputList.size()>0){outputList.add(outputList.get(0));}else{outputList.add(newDiaryTable(date));}}pageBean=newPageBean(totalCount,numberPerPage,currentPage);pageBean.setDispList(diaryList);returnpageBean;}//查找条数publicintqueryTotalCount(Messagemsg){inttotalCount=0;Sessionsession=gs.getSession();Transactionta=null;try{ta=session.beginTransaction();Stringsqlstr="selectcount(*)fromOutputwheremsg=?";Queryquery=session.createQuery(sqlstr);第37页 query.setEntity(0,msg);totalCount=Integer.parseInt(query.uniqueResult().toString());ta.commit();}catch(Exceptione){ta.rollback();thrownewMyException("查找所有条数失败",e);}finally{session.close();}returntotalCount;}页面显示代码:/manage/queryOutput.do?pageNum=1"onclick="">第一页 /manage/queryOutput.do?pageNum="onclick="">上一页  第页/共页  "name="pageBean"property="currentPage">/manage/queryOutput.do?pageNum="onclick="">下一页 /manage/queryOutput.do?pageNum="onclick="">最后一页    第37页 第五章结论经过两个多月的努力,我们完成了毕业设计——家庭财务管理系统。以前我们只知道学习书本的知识,以及一些基本电脑知识,而没有注重开发一些应用性软件。并不知道自己处于什么样的水平阶段,通过这次毕业设计我们发现在工具和语言使用方面我们还存在诸多不便,另外,由于我们从没有开发过类似软件的经验,以及时间的仓促,还有在技术与设计上的不足,该软件还存在着一些技术和功能划分上的不足和缺憾。本系统的扩展性很强,可根据不同用户的需要,增加其他的功能模块,当然由于技术和语言使用方面存在一些不足,所以本管理系统在功能完善上有待进一步的划分和制作。首先,由于数据库原理的某些方面的细节掌握不够扎实,导致设计过程中的很多变动。其次,对于本次设计,由于时间、自身开发水平及其它原因,对于图形间的比较,没有能够实现,这是自己的一大遗憾。通过这段时间的毕业设计,学到了很多东西,不仅把以前所学的很多知识充分利用上了,还要我学会使用了编程语言和数据库开发技术,初步了解了JSP强大的动态交互网络编程开发能力,对JSP网页设计软件有了更为深刻的了解和熟练的应用,我体会到了软件开发不仅是编程,它需要方方面面的考虑,同时也必须具备比较全面的知识。就像我们生活中的第一件事都需要有始有终,认真对待。我们在虚心听取和接受老师和同学们的意见和建议的同时,会更加努力将其加以完善,并且提高自身知识水平。这并不是毕业设计的结束,更不是人生在学习生涯中的结束,而是新环境、新学习、新挑战的开始。有这样我们才能学无止境,以求得更大的发展。对于我们年轻人来说,我相信:挑战越多,机会越多。我们会打足精神,努力开创新的成绩,勇敢的面对以后发生的一切,更好的提高自己,以便能够更好为社会服务,为人民服务,近而体现自己在社会发展中的价值。第37页 致谢在老师的大力支持和精心指导下,经过与同学的共同努力,经过两个月的时间顺利完成了本次毕业设计。在这次毕业设计的过程中我们收益非浅,我深深的体会到了如何把自己所学过的专业知识与实际应用结合起来,懂得如何灵活运用自己所掌握的理论知识,通过本次毕业设计使自己的知识得以巩固和扩展。本次毕业设计也使我对数据库的应用有了更好的掌握,虽然只是一个小的应用软件,但在这次实践中,特别是在收集资料,分析资料过程中第一次运用了软件工程的理论,掌握了一些分析问题、解决问题的能力,在这过程中也参考了别人的一些数据库作品及思路,并应用到自己的设计中。当然,在这次做这和软件的过程中也收到了一些挫折,在功能模块的需求分析的过程中,有很多问题没有考虑彻底,在编写和修改代码的过程中遇到了很多困难,在老师和同学的帮助下,均一一克服了这些困难。但这给了我编写软件的经验和教训,同时也培养了我细心,耐心等性格,树立了一种良好科学的态度。通过这次毕业设计使我自己的动手能力得以增强。在专业知识方面,我们学到了很多新的东西,特别在JSP、及Oracle等方面,有了很大的提高。我们体会到了软件开发不仅仅是编程,它需要方方面面的考虑,同时也必须具备比较全面的知识。就像我们生活中的每一件事都需要有始有终,认真对待。首先我要感谢我的指导老师,因为他在我做毕业设计的过程当中,负责任的指导和建议使我受益非浅,他每时每刻的督促使我不敢有丝毫的怠慢,他一直给予我悉心的教导和莫大的支持,无论在学习上还是在精神上都给予了帮助,这些帮助和鼓舞对我而言是一笔财富,它一直鞭策着我认真的完成毕业设计,而且也让我在面对人生的设计舞台时同样充满了信心。在这几个月的设计时间里,老师对我所犯的错误也给予了恰当的教导和包容,让我能够及时认识到自己的错误并力争改过。在此,我向老师致以深深的谢意!第37页 在这里我除了要感谢我的课题指导老师老师,其次,我要感谢我的专业课老师,是她在这三年的光阴里一直在引领着我们认真的学习,给我们指引人生正确的方向,也在一直努力为我们创造良好的学习环境和班级氛围,在毕业设计的最后阶段也一直给予我们鼓舞和帮助,在此对老师表达真挚的感谢,感谢他在这不长也不短的三年里为我们所做的努力。计算机系全体老师——再次,我要感谢我们计算机系的全体老师,因为是他们在平日的教学当中给予了我们专业的指导,也灌输了我们认真的学习态度,这些都与最后的毕业设计成果有着直接的关系,在此,想他们道一声:辛苦了!通过本次毕业设计对我以后的工作和学习有很大的帮助和指导。同时我们也认识到本身还存在很多不足的地方,还需要不断的努力来充实自己完善自己,只有这样我们才能学无止境,以便得到更大的发展。最后我再次感谢老师的帮助,在此,我们向他们说声“谢谢”,对指导老师的认真负责的指导致以衷心的感谢。第37页 参考文献[1]周佩德.《数据库原理及应用》.电子工业出版社[2]王要武,管理系统,电子工业出版社,2003[3]周之英缟著,现代软件工程,科学出版社,2003[4]李红等编著,管理信息系统开发与应用,电子工业出版社,2003[5]施霞萍等编著.Java程序设计教程第2版.北京:机械工业出版社,2006[6][美]HerbertSchidt著.Java参考大全.鄢爱兰.鹿江春译.北京:清华大学出版社,2006[7]宛延闿等编著.实用Java程序设计教程.北京:机械工业出版社,2006[8]陈国君等编著.Java2程序设计基础.北京:清华大学出版社,2006[9]郑莉.王行言.马素霞编著.Java语言程序设计.北京:清华大学出版社,2006[10]丁振凡主编.Java语言实用教程.北京:北京邮电大学出版社,2005[11]朱喜福等编.Java程序设计.北京:人民邮电出版社,2005第37页 第37页'