家庭收支管理系统的设计与实现 毕业论文.docx
- 文档编号:28693119
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:26
- 大小:33.41KB
家庭收支管理系统的设计与实现 毕业论文.docx
《家庭收支管理系统的设计与实现 毕业论文.docx》由会员分享,可在线阅读,更多相关《家庭收支管理系统的设计与实现 毕业论文.docx(26页珍藏版)》请在冰豆网上搜索。
家庭收支管理系统的设计与实现毕业论文
【标题】家庭收支管理系统的设计与实现
【作者】邓茂良
【关键词】家庭收支 Mysql数据库 管理系统 Java网络版
【指导老师】陈华潘小琴
【专业】计算机科学与技术
【正文】
1 前言
随着IT等技术的进步和计算机网络技术的发展,家庭收支管理系统也逐渐从传统的桌面管理向网络集成的方向发展。
桌面家庭收支管理系统比基于Internet的管理系统的局限性大,桌面管理的系统毕竟只有在固定的计算机上才能实现管理,而且也缺少交互性。
基于Internet的家庭收支管理系统则可以在其他计算机上进行管理。
因此,基于Internet的家庭收支管理系统是未来家庭收支管理系统的发展趋势。
1.1课题研究的背景
从古代原始的帐本管理家庭收支到现在使用计算机进行科学的管理,质的飞跃是我们能看到的。
随着经济的发展,作为社会组成单位的家庭将拥有更多支配的财产。
但因住房、医疗、教育制度的改革,住房支出、生老病死、子女教育消费已成为工薪阶层必须考虑的事。
家庭理财应未雨绸缪,对以后的收入支出进行预测,以避免财务危机的发生。
如何省心和合理地安排这些五花八门的收入、消费、储蓄和投资,所以,设计一个家庭收支管理系统是很有意义的。
1.2课题研究的现状
消费水平大大提高,现代家庭消费水平在总体上处于温饱与小康的过渡阶段。
具体言之,农民的消费水平处于由温饱初级阶段到高级阶段的发展过程中,部分农村已进入小康; 而城镇居民家庭处于由温饱高级阶段向小康初级阶段的过渡时期。
从总体上看,20世纪90年代中国居民消费总规模以6%的年增长速度扩大,消费总额占国民收入的59%。
消费结构发生变化。
我国居民家庭的消费序列近年来发生了变化,由过去的吃、穿两大支柱变为吃、穿、用、住全方位化。
追求吃、穿、用、住的高层次,正成为大众的普遍消费心理。
许多家庭为子女的智力开发不惜财力闲暇消费、旅游消费已受到越来越多家庭的青睐。
随着家庭小康化程度的提高,享受与发展逐步成为家庭消费所追求的主要目标。
消费选择的自主性大大提高,个性化特征越来越明显。
在传统体制下,我国消费品市场长期短缺,家庭消费选择的余地小,消费内容单一。
随着我国市场经济的发展,消费品的数量和品种日益增多,使得家庭消费的内容日益丰富,自主性得到空前提高,人们日益追求在消费中体现出不同的特点。
1.3课题研究的目的和意义
开发本系统的总体任务是实现家庭财务管理的系统化和自动化,帮助家庭财务管理人员更好更高效地完成家庭财务管理工作。
我国居民的储蓄存款超过十万亿人民币。
特别是像上海、深圳等发达城市,居民的可支配收入正在逐步达到中等发达国家水平,许多居民除了购房、购车外有大量的金融资产,如何分配、管理金融资产是居民最大的需求。
大多数个人对金融方面的需求从储蓄、保管金融资产向金融资产的保值、增值转变。
有些人盲目投资于股市而导致大量损失,还有许多人把大部分资产存在银行做定期储蓄;最多的是介于二者之间,不知如何分配其金融资产。
家庭如何管理金融资产呢?
如何安排自己的富余的现金流,如何筹集自己所需的资金,成为了一个现实的问题。
这就要求我们能够更好的家庭理财。
2需求分析与可行性研究
2.1用户需求背景
现在人们已经不习惯像原来一样用纸和笔进行家庭收支的记录,这样浪费时间,查询起来也比较麻烦,时间长了人们也对这样的方式厌倦了。
所以一个系统而有条理的收支管理系统,是人们所想尝试的。
一个好的收支管理系统不仅仅只是为了记录家庭收支,而且还是为了用户操作的方便。
一个美观友好的用户界面可以增加用户对该系统的信心。
首先就应该满足用户的这个最基本的需求。
网络最大的优势就是具有交互性,所以在记录帐目的时候,用户往往希望能与其他用户进行信息的交流与分享。
2.2用户需求分析
现在越来越多的用户使用Internet这个庞大的资源,许多工作都可以在网上进行操作。
比如说网上购物,网上消费等。
但是,用户还渴望需求在网络上使用网络帐本对自己家庭的财务进行管理。
现在网上这样的网络帐本并不普及,或许也不好使用。
正是用户有了这个需求所以就诞生了家庭收支管理系统。
2.3系统分析
1.范围说明
家庭收支管理系统可以为注册用户进行家庭收支的详情进行保存,以及查询。
管理员进行首页信息的发布。
用户可以进行家庭成员,帐户,收支分类进行添加、删除、修改、查询。
对记录的帐单进行添加、删除、修改、查询,并支持多种方式查询,日期、帐户、家庭成员、金额类型、等,方便用户进行帐单信息的管理,并支持PDF、EXCEL格式导出,柱状图、饼状图的显示。
为方便用户进行交流,用户还可以进行好友的添加、删除、查询,可以与好友进行消息的发送与接受。
帐单按时添加,新闻的发布与回复。
2.主要功能
管理员可以对首页进行信息发布。
未注册的用户可以进行注册,成为用户。
用户以及管理员可以对相应资料进行修改。
用户固定添加收支。
用户对家庭成员、帐户、收支类型、帐单等进行操作。
好友模块:
可以对其他用户进行添加好友、发送信息等操作。
帐单报表导出、图表显示导出。
新闻的发布与删除。
3.性能问题
帐单查询速度,帐单导出速度
2.3.1系统调查分析
使用单机版的家庭收支管理系统,有的用户觉得使用起来非常方便。
但是单机版的家庭收支管理系统缺少的是网络的互动性。
网络版的家庭收支管理系统不仅具有和其他用户交流的一个平台,而且数据还可以进行永久的保存,不会担心某天因为特殊情况而变故了。
2.3.2系统可行性研究
家庭收支管理系统从单机版的变为网络版的,这是一个质的飞跃。
无论怎样,实现的方式大同小异。
用最小的代价在尽可能段的时间内解决存在的问题。
从以下几点对系统的技术可行性、经济可行性两方面进行研究:
1.设计家庭收支管理系统的目的是代替人们记帐的习惯,大大提高工作效率。
2.只要有网络的地方就能进行家庭收支管理。
不需要安装,只要能上Internet。
3.系统使用Java语言为主,MyEclipse为开发环境,搭配WSH进行系统的构建,完全面向对象进行系统的设计,支持丰富的数据类型,系统主要以面向接口进行编程,使系统低耦合,方便系统的日后维护,以及新功能的添加。
4.本系统对计算机配置的要求不高,在Jdk5以上环境下运行,平台是Windows或Linux。
硬件资源:
局域网络或Internet及奔腾Ⅱ以上CPU,128M以上内存的pc机为服务器。
软件资源:
Linux或Unix或Windows操作系统的操作环境,Mysql数据库,Webwork,Spring,Hibernate,Jasperreport所需要的Jar包。
3系统设计
3.1功能模块
图3-1 体系结构
3.2数据库概念结构设计
图3-2ER图
表3-1 用户表
数据项名类型长度说明
用户编号(Uid)BIGINT主键
用户名(Username)varchar20不为空
密码(password)varchar20不为空
邮箱(Email)varchar50不为空 唯一
性别(Sex)varchar2不为空
生日(Birthday)Date不为空
注册时间(Regtime)Date不为空
来自(Position)varchar20不为空
Ut_id(Ut_id)BIGINT不为空 外键
表3-2 用户类别表
数据项名类型长度说明
Utid(Utid)BIGINT主键
Name(Name)varchar20不为空
表3-3 帐户表
数据项名类型长度说明
帐户编号(Aid)BIGINT主键
帐户名(Name)varchar200不为空
金额类型(Moneytype)varchar50不为空
余额(Balance)Double
备注(Remark)varchar200
U_id(U_id)BIGINT外键
表3-4 家庭成员表
数据项名类型长度说明
成员编号(Fid)BIGINT主键
成员名(Name)varchar20不为空
生日(Birthday)Date
U_id(U_id)BIGINT外键
表3-5 收支大类表
数据项名类型长度说明
大类编号(Piid)BIGINT主键
大类名(Typename)varchar100不为空
收支类型(Iore)int不为空1为收入2为支出
Uid(Uid)BIGINT
表3-6 收支细类表
数据项名类型长度说明
细类编号(Piid)BIGINT主键
细类名(Typename)varchar100不为空
收支类型(Iore)int不为空1为收入2为支出
Uid(Uid)BIGINT用户id
Pi_id(Pi_id)BIGINT大类id 外键
表3-7 来自表
数据项名类型长度说明
编号(Pid)BIGINT主键
地名(Pname)varchar30不为空
表3-8 金额类型表
数据项名类型长度说明
编号(Mid)BIGINT主键
名字(name)varchar30不为空
表3-9 好友表
数据项名类型长度说明
编号(Fid)BIGINT主键
备注(Remark)varchar200不为空
U_id(U_id)BIGINT外键
好友名(Uname)varchar20
表3-10 发送请求表
数据项名类型长度说明
编号(FWid)BIGINT主键
用户名(Uname)varchar20不为空
好友名(Fname)varchar20
时间(Time)Datetime
表3-11 接受消息表
数据项名类型长度说明
编号(Rid)BIGINT主键
内容(Text)varchar1200不为空
时间(Time)Datetime
Tag(Tag)int1未读2读了
好友(F_id)BIGINT40外键
用户(U_id)BIGINT外键
标题(Title)varchar
表3-12 帐单表
数据项名类型长度说明
编号(Bid)BIGINT主键
时间(Time)Date不为空
大类(Ietype)varchar50不为空
细类(Ietypetree)varchar501未读2读了
金额(Cash)Double
备注(Remark)varchar300
支出或收入(Iore)int1收入2支出
A_id(A_id)BIGINT外键
F_id(F_id)BIGINT外键
U_id(U_id)BIGINT外键
表3-13 自动帐单表
数据项名类型长度说明
编号(Bid)BIGINT主键
时间(Time)Date不为空
大类(Ietype)varchar50不为空
细类(Ietypetree)varchar501未读2读了
金额(Cash)Double
备注(Remark)varchar300
支出或收入(Iore)int1收入2支出
A_id(A_id)BIGINT外键
F_id(F_id)BIGINT外键
U_id(U_id)BIGINT外键
自动添加时间(AutoTime)int间隔时间天数
表3-14 新闻表
数据项名类型长度说明
编号(Bid)BIGINT主键
标题(Title)varchar200不为空
内容(Text)varchar2000不为空
时间(Time)Datetime
U_id(U_id)BIGINT外键
表3-15 新闻回复表
数据项名类型长度说明
编号(Nrid)BIGINT主键
内容(Title)varchar2000不为空
时间(Time)Datetime不为空
U_id(U_id)BIGINT外键
N_id(N_id)BIGINT外键
表3-16 新闻禁言表
数据项名类型长度说明
编号(Nfid)BIGINT主键
U_id(U_id)BIGINT外键
表3-17 禁ID表
数据项名类型长度说明
编号(Ifid)BIGINT主键
U_id(U_id)BIGINT外键
1、数据字典:
1.数据存储定义
数据存储名称:
User
数据结构:
Uid+Username+Password+Email+Sex+Birthday+Regtime+Position
+Ut_id
说明:
Uid用户ID为系统increment自动增长。
数据存储名称:
Usertypea
数据结构:
Ut_id+Name
说明:
由此判断用户为普通用户还是管理员。
数据存储名称:
Family
数据结构:
Fid+Name+Birthday+U_id
说明:
用户添加自己的家庭成员。
数据存储名称:
Account
数据结构:
Aid+Name+Moneytype+Balance+Remark+U_id
说明:
用户添加自己的帐户信息。
数据存储名称:
Moneytype
数据结构:
Mid+Name
说明:
根据Moneytype的金额类型,用户添加自己的帐户信息
数据存储名称:
Pietype
数据结构:
Piid+Typename+Iore+Uid
说明:
用户添加收支类型大,在帐单中显示输出。
数据存储名称:
Pietypetree
数据结构:
Ptid+Typename+Iore+Uid+Pi_id
说明:
用户添加收支类型细类,在帐单中显示输出。
数据存储名称:
Friends
数据结构:
Fid+Remark+Uname+U_id
说明:
用户添加好友,查询好友,并能删除,发送,接受信息。
数据存储名称:
Recievemsg
数据结构:
Rid+Text+Time+Tag+F_id+U_id+title
说明:
用户发送一条消息包括标题,内容,时间,给谁等。
接受的用户可以查看消息。
数据存储名称:
Bill
数据结构:
Bid+Time+Ietype+Ietree+Cash+Remark+Iore+A_id+F_id+U_id
说明:
用户或管理员添加帐单
数据存储名称:
Autobill
数据结构:
Bid+Time+Ietype+Ietree+Cash+Remark+Iore+A_id+F_id+U_id
说明:
用户或管理员添加帐单
数据存储名称:
News
数据结构:
Bid+Time+Ietype+Ietree+Cash+Remark+Iore+A_id+F_id+U_id
说明:
管理员发布新闻
2.功能描述:
A.功能划分
注册用户
用户管理员登陆
管理员新闻发布
个人信息修改
家庭成员
帐户信息
自动添加帐单
收支分类
帐单信息
查看用户
好友
报表图表导出
B.功能描述
注册用户:
未注册用户输入正确的资料可以进行注册。
用户管理员登陆:
用户,管理员输入正确的用户名和密码可以登陆,进行相关操作。
管理员新闻发布:
管理员可以进行首页新闻的发布以及删除新闻。
个人信息修改:
管理员和用户可以对自己部分资料进行修改,修改资料需要原密码的验证进行修改。
家庭成员:
用户或管理员可以对自己的家庭成员进行增删改查操作。
帐户信息:
用户或管理员可以对自己的帐户进行增删改查操作。
自动添加帐单:
用户或管理员可以对需要进行固定收支的帐单进行按时添加,方便用户。
收支分类:
如果用户或管理员对系统存在的收支分类不满意,可以自己进行自定义,添加收支分类。
帐单信息:
用户或管理员可以对自己家庭的收支添加帐单信息,方便统计,以及知道资金的流向,并且 可以对帐单进行增删改查。
查看用户:
用户或管理员可以对其他用户进行部分资料的查看,并且可以对未添加好友的用户进行添加 好友。
好友:
用户或管理员可以对自己的好友进行信息的查询,可以对好友进行删除,以及可以与好友发送消 息,方便交流。
报表图表导出:
为方便用户更好的了解自己的帐单,可以根据各种查询帐单结果的情况进行报表,图表 的导出,方便日后工作。
4系统的详细设计与实现
4.1开发环境介绍
当J2EE轻量级开发,为了保持良好的兼容性,JDK版本一般在1.5以上。
IDE为MyEclipse,开源项目为WebWork,Spring,Hibernate。
结合JSP,以及HTML等进行系统的开发以。
运行的服务器一般小型为Tomcat,数据库为Mysql,都是开源项目。
4.1.1WebWork开源Web框架
WebWork 是由OpenSymphony组织开发的,致力于组件化和代码重用的拉出式MVC模式J2EEWeb框架。
WebWork目前最新版本是2.1,现在的WebWork2.x前身是RickardOberg开发的WebWork,但现在WebWork已经被拆分成了Xwork1和WebWork2两个项目。
Xwork简洁、灵活功能强大,它是一个标准的Command模式实现,并且完全从web层脱离出来。
Xwork提供了很多核心功能:
前端拦截机(interceptor),运行时表单属性验证,类型转换,强大的表达式语言(OGNL –theObjectGraphNotationLanguage),IoC(InversionofControl倒置控制)容器等。
WebWork2建立在Xwork之上,处理HTTP的响应和请求。
WebWork2使用ServletDispatcher将HTTP请求的变成Action(业务层Action类),session(会话)application(应用程序)范围的映射,request请求参数映射。
WebWork2支持多视图表示,视图部分可以使用JSP,Velocity,FreeMarker,JasperReports,XML等。
在WebWork2.2中添加了对AJAX的支持,这支持是构建在DWR与Dojo这两个框架的基础之上。
4.1.2SpringJ2EE框架
Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。
Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。
Spring的架构基础是基于使用JavaBean属性的InversionofControl容器。
然而,这仅仅是完整图景中的一部分:
Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。
Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。
Spring的数据访问架构还集成了Hibernate和其他O/Rmapping解决方案。
Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者JDBC事务提供一个一致的编程模型。
Spring提供了一个用标准Java语言编写的AOP框架,它给POJOs提供了声明式的事务管理和其他企业事务--如果你需要--还能实现你自己的aspects。
这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务。
Spring还提供了可以和IoC容器集成的强大而灵活的MVCWeb框架。
4.1.3Hibernate 持久层框架
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
Eclipse平台下的Hibernate辅助开发工具。
4.1.4Jsp 动态网页
JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。
用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。
网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。
JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。
插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
4.1.5TomcatWeb服务器
Tomcat是Apache 软件基金会(ApacheSoftwareFoundation)的Jakarta 项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。
由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat5 支持最新的Servlet2.4 和JSP2.0 规范。
因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
4.1.6JDKJavaDevelopmentKit
JDK 是整个Java的核心,包括了Java运行环境(JavaRuntimeEnvironment),一堆Java工具和Java基础的类库(rt.jar)。
不论什么Java应用服务器实质都是内置了某个版本的JDK。
因此掌握JDK是学好Java的第一步。
最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。
其中IBM的JDK包含的JVM(JavaVirtualMachine)运行效率要比SunJDK包含的JVM高出许多。
而专门运行在x86平台的Jrocket在服务端运行效率也要比SunJDK好很多。
但不管怎么说,我们还是需要先把SunJDK掌握好。
4.2数据库简介
4.2.1MySQL简介
1.使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。
2.支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统。
3.为多种编程语言提供了API。
这些编程语言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。
4.支持多线程,充分利用CPU资源。
5.优化的SQL查询算法,有效地提高查询速度。
6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 家庭收支管理系统的设计与实现 毕业论文 家庭 收支 管理 系统 设计 实现