电子设计报告个人财务管理系统.docx
《电子设计报告个人财务管理系统.docx》由会员分享,可在线阅读,更多相关《电子设计报告个人财务管理系统.docx(29页珍藏版)》请在冰豆网上搜索。
电子设计报告个人财务管理系统
电子综合设计实验报告
题目
个人账户管理系统
学生姓名
程双佳
学号
100910056
系部
计算机与信息工程系
专业班级
电信1002班
指导教师
苏岱安
职称
副教授
2013
年
11
月
电子综合设计实验报告评审表
姓名
程双佳
专业班级
电信1002班
学号
100910056
题目:
个人账户管理系统
评
审
意
见
成绩
程双佳
签名:
评审时间:
2013年11月26日
内容摘要
对于生活在经济光速发展时代的人们,收支日趋多元化使得传统的理财方式早已无法满足人们的需求,人们开始追求一种高效安全的理财工具。
随着信息大爆炸时代的到来,越来越多的资金管理软件成为人们生活理财中的重要助手。
本文所介绍的PFMS软件也由此应运而生。
本系统实现了对个人财务进行系统化的管理,使我们的理财更加方便和理性化,提升了我们的理财效率和生活质量。
本文共分四部分。
首先从业务需求、技术原理上分析系统设计的可行性,进而挖掘出微型的个人理财系统相较于其他大型银行管理系统、金融管理系统的区别,以及自身独到优势。
其次,本文介绍基于JAVASwing、JDBC等技术开发的集用户管理和数据传输于一体的PC应用程序的构成与工作原理,给出系统的需求分析和数字字典,探讨系统的核心开发技术。
再次,本文针对系统的关键研究技术之一——C/S开发模式,重点讨论了本文所介绍的理财系统前台客户端带给用户的独特操作体验,以及GUI设计的特色之处。
最后,总结本文的创新与不足,介绍项目研究的后续工作,对C/S开发模式和当前十分流行的B/S开发模式做出比较后的感受,以及对基于JAVA技术开发的PC应用程序发展前景的展望。
在附录中,本文还将给出一些重要的程序源代码,供参考之用。
关键词
理财系统;用户界面;C/S结构;MVC设计模式;JAVA开发语言;SQL
1.3国内外研究现状简介.................................................................................................
1.4研究方法.....................................................................................................................
4.3数据库表之间的联系..............................................................................................23
4.4系统核心功能模块设计...........................................................................................25
7.谢辞.............................................................................................................16
MVC设计模式与C/S结构程序的开发
1.绪论
对于软件开发人员来说,数据库的出现使得软件开发逐步趋向于将数据显示和业务逻辑进行分离处理,因此产生了经典的数据——业务分离的设计模式——MVC设计模式。
而站在用户的立场,他们更乐意接受简单清晰的操作界面,而不关心操作所对应的内部数据是如何处理的,因此客户端与服务端分离的C/S结构便大行其道。
本文主要介绍基于MVC设计模式和C/S结构的个人理财系统的开发背景、意义以及前景展望。
1.1项目研究的意义
一个有经济头脑的人,在日常生活和投资中,都会对自己的支出和开销做到心里有数,以便于制定出自己的一套理财计划,达到合理的经济统筹,有理财习惯的人可以从以往的统计中看到自己主要消费方向,看出自己的消费是否合理,由此制定出一套合理的经济计划方案,从而可以不断的长进自己的经济头脑,对自己的财富积累、合理投资有着不可或缺的帮助。
近年来,随着我国经济不断地持续高速发展,人们的收入已不再如以前一样单纯来自于职业岗位收入。
日趋多元化的收入使得人们的私人经济账目随之混杂,传统的纸笔简单记录生活收支的理财方式早已无法满足人们的生活需求。
与此同时,IT技术的高速发展也使得理财软件走出了会计所、银行、金融系统等专业理财场所,逐步走进人们的生活当中,成为人们改善生活环境的重要工具。
1.2个人理财系统的研究现状与发展方向
进行个人理财的统计,首先,如果每天手工纸笔统计的话,用于统计的账本和记录册会越来越多,不利用保管,容易造成丢失;其次,随着纪录的增多,如果要查找以前的记录,会变的越来越困难。
个人理财系统即为实现电子化理财,针对于传统理财的繁琐和缺乏安全性来改善理财方式。
因此,个人理财系统的研究点即在实现方便快捷、安全即时的数字化理财,其发展方向则在于可移动性——不依赖于硬件设施的地点、即时性——随时随地可以登录个人理财系统、安全性——不会泄漏个人账户信息。
1.3国内外研究现状简介
从查阅资料来看,在一些比较发达国家,人们在生活中对个人财务有着很严谨的规划。
他们将个人财务管理视作如同吃饭睡觉一样,是日常生活必须的一项活动。
因此在国外,个人理财软件相对来说比较普遍,软件系统的开发也比较完善。
国内关于理财系统的软件,主要偏重于办公和财会软件,而针对个人理财和家庭理财方面的则比较少。
从个体来讲,将理财软件拿到生活中应用,可以大大提高经济生活的效率;从市场层面来看,个人理财软件在国内的不流行,同时也制造了该软件行业的一个潜在市场,这样一来,个人理财类型的软件或者管理系统的开发就变得十分必要了。
1.4研究方法
本文所介绍的,就是一个基于C/S结构的个人理财系统,凭借设计的软件系统,通过数据库的连接和访问,进行相关数据的统计和查询,还可以通过相应的计算功能,完成一些经济方面的实用计算。
本系统的特点是:
通过系统的数据录入,可以将数据保存在相应的数据库里面,而数据库的设计方式,使录入的数据更加有效、合理。
对数据的统计有比较完善的设计,对各种输入错误的情况有着比较合理的考虑,通过代码提示用户输入完整,合理的数据,以便于查找、统计。
在记录中有计算统计功能,避免用户手动计算出错;有相关的用户登陆,密码检测,密码修改以及用户数据备份和还原的功能,保护用户数据的安全性。
本文将介绍基于C/S结构的个人理财系统的设计和应拥有MVC设计模式的开发实现。
因此将详细说明开发结构原理,以及贯穿项目始终的Swing、JDBC和SQL技术。
2相关理论基础
本文主要介绍在实际开发过程中,系统所必需的一些技术支持,以及相关设计技术的理论介绍。
2.1C/S结构模式
C/S(Client/Server,客户机/服务器)模式又称C/S结构,是软件系统系结构的一种。
C/S模式简单地讲就是基于企业内部网络的应用系统。
与B/S(Browser/Server,浏览器/服务器)模式相比,C/S模式的应用系统最大的好处是不依赖企业外网环境,即无论企业是否能够上网,都不影响应用。
交互性强是C/S结构固有的一个优点。
在C/S中,客户端有一套完整的应用程序,在出错提示、在线帮助等方面都有强大的功能,并且可以在子程序间自由切换。
C/S模式同时提供了更安全的存取模式。
由于C/S是配对的点对点的结构模式,采用适用于局域网、安全性比较好的网络协议(例如:
NT的NetBEUI协议),安全性可以得到较好的保证。
此外,采用C/S模式将降低网络通信量。
这是因为C/S只有两层结构,网络通信量只包括Client与Server之间的通信量。
这样一来,使得C/S处理大量信息的能力为B/S所无法比拟。
而逻辑结构在速度上的优越性也让C/S更利于处理大量的数据。
2.2MVC设计模式
MVC设计模式,全名是ModelViewController,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,它强制性的使应用程序的输入、处理和输出分开,是一种用于组织代码用一种业务逻辑和数据显示分离的方法。
这个方法的假设前提是如果业务逻辑被聚集到一个部件里面,而且界面和用户围绕数据的交互能被改进和个性化定制而不需要重新编写业务逻辑。
MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
模型-视图-控制器(MVC)是XeroxPARC在二十世纪八十年代为编程语言Smalltalk-80发明的一种软件设计模式,已被广泛使用。
后来被推荐为Oracle旗下Sun公司JavaEE平台的设计模式,并且受到越来越多的使用ColdFusion和PHP的开发者的欢迎。
模型-视图-控制器模式是一个有用的工具箱,它有很多好处,但也有一些缺点。
MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。
比如一批统计数据可以分别用柱状图、饼图来表示。
C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。
2.3JDBC技术介绍
JDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯JavaAPI编写数据库应用程序,同时,JDBC也是个商标名。
有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。
换言之,有了JDBCAPI,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBCAPI写一个程序就够了,它可向相应数据库发送SQL调用。
同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。
Java数据库连接体系结构是用于Java应用程序连接数据库的标准方法。
JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。
作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。
JDBC使用已有的SQL标准并支持与其它数据库连接标准,如ODBC之间的桥接。
JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。
Java具有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰出语言。
所需要的只是Java应用程序与各种不同数据库之间进行对话的方法。
而JDBC正是作为此种用途的机制。
JDBC扩展了Java的功能。
例如,用Java和JDBCAPI可以发布含有applet的网页,而该applet使用的信息可能来自远程数据库。
企业也可以用JDBC通过Intranet将所有职员连到一个或多个内部数据库中(即使这些职员所用的计算机有Windows、Macintosh和UNIX等各种不同的操作系统)。
随着越来越多的程序员开始使用Java编程语言,对从Java中便捷地访问数据库的要求也在日益增加。
2.4结构化查询语句——SQL介绍
结构化查询语言(StructuredQueryLanguage)简称SQL,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。
它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的结构化查询语言作为数据输入与管理的接口。
结构化查询语言语句可以嵌套,这使他具有极大的灵活性和强大的功能。
结构化查询语言包含6个部分:
一:
数据查询语言(DQL:
DataQueryLanguage):
其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。
保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDERBY,GROUPBY和HAⅥNG。
这些DQL保留字常与其他类型的SQL语句一起使用。
二:
数据操作语言(DML:
DataManipulationLanguage):
其语句包括动词INSERT,UPDATE和DELETE。
它们分别用于添加,修改和删除表中的行。
也称为动作查询语言。
三:
事务处理语言(TPL):
它的语句能确保被DML语句影响的表的所有行及时得以更新。
TPL语句包括BEGINTRANSACTION,COMMIT和ROLLBACK。
四:
数据控制语言(DCL):
它的语句通过GRANT或REVOKE获得许可,确定单个用户和用户组对数据库对象的访问。
某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。
五:
数据定义语言(DDL):
其语句包括动词CREATE和DROP。
在数据库中创建新表或删除表(CREATTABLE或DROPTABLE);为表加入索引等。
DDL包括许多与人数据库目录中获得数据有关的保留字。
它也是动作查询的一部分。
六:
指针控制语言(CCL):
它的语句,如DECLARECURSOR,FETCHINTO和UPDATEWHERECURRENT用于对一个或多个表单独行的操作。
2.5Swing工具包
Swing用户界面是一个用于开发Java应用程序的用户界面的开发工具包。
它以抽象的窗口工具包(AWT)为基础,使跨平台应用程序可以使用任何可插拔的外观风格。
Swing开发人员只用很少的Swing代码就可以利用Swing丰富、灵活的功能和模块化组建来设计优雅、美观的用户界面。
总体来说,Swing是JAVA开发语言中GUI图形用户接口包的名称。
利用Swing创建用户图形界面一般有以下步骤:
导入Swing包、选择界面风格、设置顶层容器、设置按钮和标签、将组件放到容器上、为组件增加边框、处理事件辅助技术支持
3.用户需求分析
通过用户对于个人理财软件的功能需求分析,初步设计软件应当具备的功能模块,并基于此对软件的总体框架进行设计,这个过程称为用户需求分析过程。
本文主要介绍个人理财系统的主要功能模块,模块设计宏观图如下图3。
图3系统总体模块设计
3.1银行卡管理功能模块
该模块用于实现用户的银行卡账户管理。
用户可以通过该功能添加、删除、修改或者查询自己的每一个银行卡账户信息,包括开户银行、开户时间、开户地点以及对该账户的操作记录等。
3.2银行卡存取款功能模块
该模块用于实现用户对某一个选定的银行卡账户进行款项的增加和删除。
在该功能下,不能对选定银行卡以外的其他账户信息做修改,只能更改本银行卡存款信息。
3.3银行卡转账功能模块
该模块用于实现不同银行卡之间的款项转移功能,即将一个银行卡中的款项转移到另外一张银行卡中,对参与转账的银行卡数据都将产生影响。
3.4银行流水账功能模块
该模块主要用于记录用户所有已存在的银行账户中与账户金额变动有关的全部即时操作信息,包括变动金额数目、操作时间、涉及账户名称等。
用户无法对该模块中的信息进行修改,只能作为操作记录去查阅。
对于拥有软件系统管理员权限的用户,可以执行记录清除的操作,以删除选定条款的记录或者清空全部记录。
3.5添加收支功能模块
用户根据自己的实际情况或者财政计划添加经济收入或者支出款项,所添加的款项需对应用户名下的一个明确银行卡账户。
用户也可以对已存在的收支项目进行修改或删除操作,该模块的操作将影响到与收支项对应的银行卡账户金额。
3.6收支报表功能模块
该模块主要用于记录用户所有的收入和支出项目信息,包括收支项所影响的银行卡账户、收支金额、资金变动时间以及该收支项的创建时间、创建者等信息。
所有相关信息以报表形式显示在用户界面上,用户还可以将该报表以表格文件形式导出到个人电脑中。
3.7数据备份/还原功能模块
该模块用于对已登录的用户数据进行备份或者还原。
进行备份操作时,用户的所有账户信息、收支日志、转账记录、用户信息等都将被写入存档文件,并由用户制定本地地址进行保存。
执行还原操作时需选定对应的已保存过的备份文档。
3.8系统初始化功能模块
该功能用于将软件系统还原至出厂状态,执行操作后所有用户信息将被清空,软件处于初始化状态,用户需要重新注册个人信息后方能使用。
此外,初始化操作执行之后,用户的界面和风格的个性化设置也将被重置为系统初始状态,系统也将自动退出并跳回用户登录/注册界面
3.9用户管理功能模块
该模块主要用于用户的注册和注销,以及用户信息的修改、查看、删除等操作。
对于不同权限的用户,在该模块中享有的操作权限也不相同。
普通用户只能修改与自身相关的信息,对于其他用户信息只能查看到用户名和注册日期。
而系统管理员权限的用户则可以对所有在该软件中注册过的用户信息进行修改和删除,并能查看看到所有用户的全部详细信息。
4系统功能结构设计和实现
本文主要介绍系统的总体设计流程图,数据库设计,图标设计,系统功能实现以及和界面介绍等相关的内容。
4.1系统设计结构示例图
系统功能模块设计结构如下图4—1所示:
图4-1系统总体结构
4.2数据库表设计
根据需求分析,本系统所设计的数据库表共有9个,详细信息如下表4—2所示:
银行卡信息表
PFMS_CARD
银行卡流水账表
PFMS_CARD_BLOTTER
银行卡存取记录表
PFMS_IO
转账记录表
PFMS_CARD_TRAN
收入项目表
PFMS_INCOME
收入业务表
PFMS_INCOME_BIZ
支出项目表
PFMS_OUTLAY
支出业务表
PFMS_OUTLAY_BIZ
用户信息表
PFMS_USER
表4-2系统数据库表统计表
下面给出各个表的详细用例信息:
银行卡信息表(PFMS_CARD):
该表用于存储用户对银行卡进行操作的详细信息,包括操作的时间和操作的具体数据对象等。
字段名
字段说明
数据类型
字段约束
备注
PC_ID
银行卡编号
NUMBER
主键
自增
PC_SN
银行名缩写
VARCHAR2(20)
PC_TN
银行全称
VARCHAR2(20)
PC_ADDR
银行地址
VARCHAR2(20)
PC_TEL
银行电话
NUMBER
PC_MONEY
卡上余额
NUMBER(10,2)
PC_USERID
用户编号
NUMBER
表4-2-1银行卡信息表
银行卡流水账表(PFMS_CARD_BLOTTER):
该表用于存储用户对银行卡进行操作的相关信息,并记录下操作者的用户名。
字段名
字段说明
数据类型
字段约束
备注
PCB_ID
银行卡编号
INTEGER
主键
自增
BANK_NAME
银行名称
VARCHAR2(20)
MONEY
收支余额
NUMBER
B_DATE
操作日期
DATE
TYPE
操作类型
VARCHAR2(20)
USER_NAME
用户编号
VARCHAR2(20)
表4-2-2银行卡流水账表
银行卡存取表(PFMS_CARD_IO):
该表用于存储对某个账户进行金额存取操作的相关信息。
字段名
字段说明
数据类型
字段约束
备注
PCIO_ID
存取项目ID
NUMBER
主键
PCIO_SN
存取银行卡简称
VARCHAR2(20)
PCIO_TYPE
存取项目类型
VARCHAR2(20)
PCIO_MONEY
存取金额
NUMBER(10,2)
PCIO_DATE
存取项目时间
DATE
PCIO_USERID
存取用户ID
INTEGER
PCIO_COMMENT
备注
NVARCHAR(200)
表4-2-3银行卡转账信息表
银行卡转账表(PFMS_CARD_TRAN):
用于记录银行卡直接的转账信息,包括参与转账的银行卡信息以及进行转账操作的用户信息。
字段名
字段说明
数据类型
字段约束
备注
PCT_ID
转账业务ID
NUMBER
主键
PCT_INCARDID
转入银行卡号
INTEGER
PCT_OUTCARDID
转出银行卡号
INTEGER
PCT_MONEY
转账金额
NUMBER(10,2)
PCT_DATE
转账时间
DATE
PCT_COMMENT
备注
VARCHAR2(200)
PCT_USERID
用户ID
INTEGER
表4-2-4银行卡转账信息表
收入项目表(PFMS_INCOME):
用于存储收入项目以及收入用户信息
字段名
字段说明
数据类型
字段约束
备注
PI_ID
收入项目ID
NUMBER
主键
PI_NAME
收入项目名
VARCHAR2(20)
PI_USERID
收入用户ID
INTEGER
表4-2-5收入项目表
收入业务表(PFMS_IN_BIZ)
用于存储收入项目的详细内容以及备注信息
字段名
字段说明
数据类型
字段约束
备注
PIB_ID
收入项目ID
NUMBER
主键
PIB_NAME
收入项目名称
VARCHAR2(20)
PIB_MONEY
收入金额
NUMBER(10,2)
PIB_TYPE
收入类型
VARCHAR2(20)
PIB_DATE
收入项目时间
DATE
PIB_COMMENT
备注
VARCHAR2(200)
PIB_USERID
用户ID
INTEGER
表4-2-6收入业务表
支出项目表(PFMS_OUTLAY):
用于存储支出项目及对应的用户信息
字段名
字段说明
数据类型
字段约束
备注
PO_ID
支出项目ID
NUMBER
主键
PO_NAME
支出项目名称
VARCHAR2(20)
PO_USERID
用户ID
NUMBER
表4-2-7