1、家庭财务管理系统论文计算机系本科毕业(设计)论文课题名称家庭财务管理系统的设计与实现专 业计 算 机 科 学 与 技 术姓 名学 号指导教师二零壹零年六月家庭财务管理系统的设计与实现摘 要:经济全球化和居民生活需求的变化以及计算机技术不断发展的今天,人们生活水平越来越高,财务管理也变得越来越重要,理财直接影响着人们的生活。本研究课题的主要目的是提供财务数据统一管理和做出合理的财务决策,其界面友好,操作简单,除具备基本的财务信息管理外,还提供了数据统计,数据查询,图表自动统计等功能。系统以饼图形式说明收入、支出、节余三者之间的相互关系,为家庭财产的有效管理和合理分配提供帮助。关键词:家庭 财务管
2、理 VB A ccessAbstract:With the economic globalization and the change of the demand of residentsliving today as well as the continuous development of computer technology, the peoples living standard is getting higher and higher, the financial control becomes more and more important, and managing finan
3、ces directly influence peoples life. The main purpose of this research is to provide a system which support the universal administration of financial data and help make the reasonable financial decision, whose contact surface is friendly and operation is simple. Besides the basic finance information
4、 management, the system also has the function of data statistics, data inquiry and automatic graph statistics. The system explains the reciprocity among income, disbursement and surplus in cake diagram form, providing the help to family assets effective management and the rational distribution.Key w
5、ords: family financial management VBA ccess1引 言1.1选题意义及背景随着计算机技术的飞速发展,计算机在日常管理中应用迅速得到了普及,利用计算机进行家庭日常财务的管理无疑是一条行之有效且高效的办法。本课题是基于家庭理财的现状,模拟家庭对财务方面进行管理,开发一个家庭财务管理系统,使之具有实用价值。通过家庭财务管理系统,使家庭财务方面管理的工作系统化、规范化、自动化,从而达到提高家庭财务管理效率的目的,有效地记录和管理家庭的的收支情况,成为家庭财务管理的好帮手。家庭财务管理系统是一个家庭未来不可缺少的部分,它的内容对于家庭管理者来说都至关重要,它可以大
6、大地节省我们的时间。在此基础上设计出来的家庭财务管理系统可以满足家庭,个人从事财务管理方面的需要。1.2 开发环境简介1.2.1Visual Basic6.0VB是面向对象的程序设计语言,它采用事件驱动进行编写。传统编程使用的是面向过程、按顺序进行的机制,这种编程方式的缺点是写程序的人总是要关心什么时候发生什么事情。而在事件驱动编程中,程序员只要编写响应用户动作的程序,如选择命令、移动鼠标等,而不必考虑按精确次序执行的每个步骤。1.2.2 AccessAccess是一个可视化工具,是风格和Windows完全一样,用户想要生成对象并应用,只要使用鼠标进行拖放即可,非常直观方便。系统还提供了表生成
7、器、查询生成器、报表设计器以及数据库向导、表向导、查询向导、窗体向导、报表向导等工具,使得操作简便,轻易使用和把握。2系统分析2.1 需求分析 1用户需求分析:通过调查,要求系统需要有以下功能:(1)由于操作人员的计算机知识普遍较差,那么就要求有良好的人机界面。(2)方便的数据查询,支持多条件查询关生成相应的统计图。(3)家庭成员信息的基本录入管理。(4)家庭成员的银行卡管理。(5)家庭日常的收入和支出管理。2系统功能分析: 系统作为普通家庭使用的家庭财务管理系统,主要包括系统设置、日常管理、查询、每月明细四大模块。(1)系统设置;主要是对家庭成员的录入、删除、修改,对密码的修改,支出项目和收
8、入项目的管理,更改用户的功能。(2)日常管理:对家庭日常收入支出、借入借出、定活期存款进行管理。(3)查询:按不同的方式分别进行查询,结果一致。可以按日期、方式、金额、数目分别进行查询。(4)理材报告:查询每月节余并生成相应的统计图,统计图可以按人员进行统计也可以按收入来源进行统计。通过对系统的用户需求和功能的分析得到系统的顶级DFD,如图2.1所示。图2.1 系统顶级DFD图2.2可行性分析经济可行性:家庭财务管理系统的开发、运行、维护费用包括:购买和安装设备的费用、人员费用、消耗品费用,但这些费用相对而言是比较低的。另外,本系统开发成本低,仅需要一台电脑,一个人,花费一个月的时间足能完成该
9、系统的开发。开发任何一个基于计算机的系统,都会受到时间和资源上的限制。因此,在接受任何一个项目开发任务之前,必须根据客户可能提供的时间和资源条件进行可行性分析,以减少项目开发风险,避免人力、物力和财力的浪费。技术可行性:从目前IT业界比较流行的数据库开发、管理软件来看,对于比较简单的中小型数据库,VB和Access的结合无疑是在实际应用中较为成功的一种解决方案。为用户提供了业界软件开发一直坚持的非常友好、操作简单的用户界面、完善强大的数据库操作功能和简洁明了的数据库窗口,所以技术实行起来会相对容易。3系统设计3.1系统功能模块设计 家庭财务管理系主要完成对日常收入和支出、查询、修改、删除等,系
10、统设置包括项目管理、添加成员、修改密码、更改用户、数据备份和退出系统。日常管理包括日常收入、日常支出、活期账户、定期储蓄、借入款项、借出款项。查询主要是对日常收入和日常支出进行不同方式的查询。理材报告根据每月节余生成统计图。具体的功能模块图如图3.1所示:3.1图 系统功能模块图3.2数据库设计3.2.1系统的设计目标1系统运行稳定,安全可靠。2界面设计美观,人机交互界面友好。3采用多种方式查询数据。4信息查询灵活、方便、快捷、准确,数据存储安全可靠。5具有统计图表分析功能。 3.2.2数据库概念结构设计 根据数据项和数据结构设计出系统的ER图如下所示;3.2图 系统设计ER图活期存款表包括账
11、号、存取、日期、数目、姓名和余额字段,设计的ER图如下所示: 图3.3 活期存款RR图收入表包括日期、方式、金额、项目、来源和人员,设计的ER图如下所示: 图3.4 收入表ER图借入表得款人、金额、出借人、日期和出借原因,设计的ER图如下所示:图3.5 借入表ER图成员信息表包括称呼、姓名、生日和格言,设计的ER图如下所示:图3.6 成员信息ER图3.2.3数据库的逻辑结构设计将上面的数据库概念结构模型转化为Access数据库系统所支持的实际数据模型,也就是数据库的逻辑结构模型。家庭财务管理系统中包括多个表,这里只列举其中的3个表,分别是:日常收入表、借出表、活期存取表。收入表:存放家庭成员的
12、收入信息,包括名称、数据类型、长度、允许为空、索引,表的数据字段和属性如下图所示:图3.7 收入表名称数据类型长度允许为空索引日期文本50是无方式文本50是无金额文本50是无项目文本50是无来源文本50是无人员文本50是无备注备注是无Key自动编号否有借出表:主要记录家庭借出款项,包括名称、数据类型、长度、允许为空、索引,表的数据字段和属性如下图所示:表3.8 借出表名称数据类型长度允许为空索引得款人文本50是无金额货币自动无出借人文本50是无日期文本50是无出借原因文本50是无已还文本50是无活期存取表:家庭的存款方式,主要记录家庭取款的信息,包括名称、数据类型、长度、允许为空、索引,表的数
13、据字段和属性如下图所示:表3.9 活期存取表名称数据类型长度允许为空索引账号文本50是无存取文本50是无数目货币自动是无日期文本50是无姓名文本50是无余额货币自动是无Key自动编号4否有4系统实现4.1数据库连接实现系统用VB和Access 的连接,用ADO编程模型连接数据库,具体语句如下:Public Str_path As StringPublic Cname As String 登陆时传用户名Public Cdate1 As String 传日期(收入情况列表)Public Cdate2 As String 传日期Public aa As Boolean 判断是否选择月份ADO编程模型
14、连接数据库Public Function Connectstring() As StringDim Str_path As StringStr_path = CurDir() & & MISER.MDBConnectstring = Provider=Microsoft.Jet.OLEDB.4.0;Data Source= & Str_path & ;Persist Security Info=FalseEnd FunctionADO编程模型连接数据库Public Function ExeCutesql(ByVal Sql As String, Msgstring As String) As
15、ADODB.RecordsetDim Cnn As ADODB.ConnectionDim Rst As ADODB.RecordsetDim Stokens() As String 数组 On Error GoTo executesql_error Stokens = Split(Sql) 将sql语句按关键字保存在数组中 Set Cnn = New ADODB.Connection Cnn.Open Connectstring If InStr(INSERT,DELETE,UPDATE, UCase$(Stokens(0) Then Cnn.Execute Sql Msgstring =
16、Stokens(0) & 查询成功 Else Set Rst = New ADODB.Recordset Rst.Open Trim$(Sql), Cnn, adOpenKeyset, adLockOptimistic 重服务器中提取符合要求的记录集 Set ExeCutesql = Rst Msgstring = 查询到 & Rst.RecordCount & 条记录 End Ifexecutesql_exit: Set Rst = Nothing 释放记录集 Set Cnn = Nothing 释放连接语句 Exit Functionexecutesql_error: Msgstring
17、= 查询错误: & Err.Description Resume executesql_exitEnd Function4.2系统的登录模块实现 对用户输入的用户名和密码进行验证,正确则进入系统,否则显示相应的提示信息,若用户名或密码连续输入三次后出现错误,则退出系统。系统的登录界面如图4.1所示:4.1图 系统登录登录界面实现所需的代码如下所示:If Str_name = 1 And Str_password = 2 Then frm_main.Show Unload Me Else Set Mydb = ExeCutesql(select user from user1 where use
18、r= & Str_name & , Str_text) If Mydb.EOF Then MsgBox 你输入的用户名不存在,请重新输入!, vbOKOnly + 32, 注意 L = L + 1 txt_name.SetFocus If L = 5 Then MsgBox 你已经多次输入错误的用户名,请查证后重新登陆!, vbOKOnly + 48, 注意 End If End If End If 4.3查询模块功能的实现 查询是系统最基本的功能,用户可以随时对家庭的收入和支出进行查询,根据不同的方式查询显示的结果相同。查询设计如图4.2所示: 44 4.2图 系统查询模块实现代码如下所示:
19、Private Function Mode1()Set Mydb1 = ExeCutesql(select * from 支出 where 方式= & Combo3.Text & , Str_text)Set MSHFlexGrid2.DataSource = Mydb1End FunctionPrivate Function Money1() On Error Resume Next Dim B B = CInt(txt_money1.Text) Set Mydb11 = ExeCutesql(select * from 支出 where 金额= & B & , Str_text) Set
20、MSHFlexGrid2.DataSource = Mydb11End FunctionPrivate Function Project1() Set Mydb12 = ExeCutesql(select * from 支出 where 项目= & Combo4.Text & , Str_text) Set MSHFlexGrid2.DataSource = Mydb12End Function4.4理材模块功能的实现 开发系统的目的只要是对财务进行管理,理材就是重要的一部分。它是在查询的基础上进行进一步的分析显示,并根据查询结果生成相应的统计图。理材设计如图4.3所示: 图4.3 理材实现图
21、理材模块所需代码如下:Private Sub Form_Load() Dim A, B, C, D As Integer Command4.Enabled = False Command2.Enabled = False Set Mydb1 = ExeCutesql(select sum(金额) from 收入, ) A = Mydb1.Fields(0) Set Mydb = ExeCutesql(select 项目,sum(金额) as 金额,str(cint(sum(金额)/ & A & *100) & % as 百分比 from 收入 group by 项目 , Str_text) S
22、et MSHFlexGrid1.DataSource = Mydb Set Mydb4 = ExeCutesql(select sum(金额) from 支出, ) B = Mydb4.Fields(0) Set Mydb3 = ExeCutesql(select 项目,sum(金额) as 金额,str(cint(sum(金额)/ & B & *100) & % as 百分比 from 支出 group by 项目 , Str_text) Set MSHFlexGrid2.DataSource = Mydb3Label1.Caption = Year(Now) & 年 & Month(Now
23、) & 月 & : Label6.Caption = A & 元 Label7.Caption = B & 元 MSChart1.RowCount = 1 MSChart2.RowCount = 1 MSChart1.RowLabel = 收入情况 MSChart2.RowLabel = 支出情况 C = Mydb.RecordCount D = Mydb3.RecordCount If C 0 Then MSChart1.ColumnCount = C MSChart1.ColumnLabel = Mydb.Fields(0) End If If D 0 Then MSChart2.Colu
24、mnCount = D MSChart2.ColumnLabel = Mydb3.Fields(0) End IfEnd Sub4.5定期储蓄模块功能的实现 用户对储蓄的存款方式包括活期和定期两种,活期储蓄模块和定期类似,定期储蓄模块实现如下所示:图4.4定期储蓄模块所需的代码如下所示:Private Sub cmd_add_Click()On Error Resume Next Dim A, B B = 1 Set Count1 = ExeCutesql(select key from 定期存款 , Str_text) Count1.MoveLast B = Count1.Fields(0)
25、 + 1 A = MsgBox(是否添加前记录?, vbYesNo + 32, 修改记录) If A = vbYes Then ExeCutesql insert into 定期存款 values( & Format(DTPicker1.Value, yyyy-mm-dd) & , & txt_name.Text _& , & txt_address.Text & , & txt_size.Text & , & txt_money.Text & , & txt_time.Text & , & Combo1.Text & , & Check1.Value & , & B & ), Str_tex
26、t Call Bangding End IfEnd SubPrivate Sub cmd_del_Click() On Error Resume Next Dim A A = MsgBox(是否删除当前记录?, vbYesNo + 32 + 256, 添加记录) If A = vbYes Then ExeCutesql DELETE from 定期存款 where key= & txt_key.Text & , Str_text Call Bangding End IfEnd SubPrivate Sub cmd_edit_Click() On Error Resume Next Dim A
27、A = MsgBox(是否修改前记录?, vbYesNo + 32, 添加记录) If A = vbYes Then ExeCutesql Update 定期存款 Set 日期 = & DTPicker1.Value & ,银行名称= & txt_name.Text _& ,银行地址= & txt_address.Text & , 银行账号= & txt_size.Text & ,金额= & txt_money.Text _& ,期限= & txt_time.Text & ,存款人= & Combo1.Text & ,取否= & Check1.Value & Where key = & txt
28、_key.Text & , Str_textMydb.Requery Call Bangding MsgBox 数据修改成功!, vbOKOnly + 64, 成功 End IfEnd Sub5系统测试5.1 测试内容及步骤 系统测试是为了发现程序中的错误。系统测试的过程亦是程序运行的过程。系统测试主要是测试功能是否完全实现。实现测试的步骤如下:1 在登录界面输入相应的用户名和密码,如果输入错误就进不入系统,若输入次数超过三次,系统关闭,输入成功,则进入系统。2 测试查询收入支出模块时,要分别按照不同的方式进行查询,若一个方式都不点的话,则无法进行查询,显示不出查询结果。3 测试生成统计图模块
29、功能时,每月明细界面正常显示的话可以点击饼图出现统计图的界面,然后分别进行按人员统计和按项目统计,分别显示出正确的结果,则说明测试成功。 图5.1 饼图测试结果显示图5.2测试结果在进行调试完后,系统能够实现简单的收入支出,查询,存取,自动生成统计图等功能,测试结果如下:图5.2 测试结果测试模块测试内容测试结果用户登录用户名和密码是否正确正确则进入下一模块,错误则退出查询收入支出按方式进行操作不同方式查询结果相同生成统计图统计图显示是否正确正确显示统计图内容结束语开发本系统经历了从系统问题的提出系统可行性分析系统数据库的设计总体的功能模块设计详细设计最后到程序的实现,就是以这样的一个思路完成的整个系统的开发。通过这次毕业设计,使我感到高科技、新知识的力量。这次毕业设计过程中,得到了学校的大力支持,给我提供了舒适的工作学习环境,也得到了广大老师、教授的精心指导,在此表示衷心的感谢! 由于本人第一次完整的设计程序,加之水平有限,设计中难免有不当之处,还请各位老师给予批评和指正。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1