财务知识家庭财政收支系统最全版.docx
《财务知识家庭财政收支系统最全版.docx》由会员分享,可在线阅读,更多相关《财务知识家庭财政收支系统最全版.docx(16页珍藏版)》请在冰豆网上搜索。
财务知识家庭财政收支系统最全版
(财务知识)家庭财政收支系统
壹、设计目的
随着社会经济的发展,人们生活水平的提高,经济收入的提高,利用计算机对家庭的收支管理势在必行!
过去,人们的收入仍没有达到要用计算机来计算,可是今非夕比,不可能就单单靠壹个头脑或壹支笔就能够实现对家庭收支的管理
在这个高度发达的社会,家庭财政收支管理系统的建立,实现了家庭财务的信息化管理,能够为整个家庭带来很大的经济效益。
科学、高明的理财手段能够给壹个家庭带来丰厚的回报。
而现代社会能够提供给家庭的理财项目也是五花八门,如果没有壹个功能强大的理财软件来管理这些信息,光靠手写脑记是远远不能满足要求的,所以在家庭管理信息系统中开发家庭财务模块也是势在必行的
本系统是针对个人家庭用户为主进行开发的,所以考虑最多的就是在保障安全的前提下,最大限度的满足个人用户的使用需求。
开发的系统不但能够实现从微观角度的数据录入、删除、查找等基本功能,而且从宏观角度对于整个财务状况进行分析。
家庭管理信息系统的家庭管理能够对收支信息进行统计。
家庭财政收支管理系统能够实现对用户的管理,实现了添加、修改、删除用户,设置用户权限,是否启用。
家庭财政收支管理系统中能够实现对个人信息的管理,能够修改登录用户的个人信息,修改密码。
二、设计任务
可行性分析
技术可行性分析
家庭财政收支管理系统的发展虽然仍处于初级阶段,可是它的发展的前途是无限光明的。
它的开发平台有很多,能够采用各种技术来开发,本系统的实现是采用VB开发语言,数据库采用Access。
经济可行性分析
家庭对信息化的要求目前仍不是很高,但这终究是壹种趋势,从目前的技术发展分析,从目前的技术发展分析,采用vb作为开发平台是较为理想的平台,且且有不少关于管理信息系统的成功的案例,而且开发的成本较低,因此采用此平台在实际开发中具有很高的可行性。
因此开发家庭财政收支管理系统在经济上也是可行的。
操作可行性分析
目前家用电脑的操作系统大多数为Windows,故本系统在操作上是可行的。
开发工具:
1.设计语言VB:
VisualBasic6.0是壹种32位的系统开发的开发环境,是壹种现代化的编程语言,提供了完善的指令控制语句、类和对象的支持及丰富的数据类型,能方便编程人员设计出高内聚,低耦合的程序出来。
2.Access数据库:
壹种有结构的数据集合,是不同于壹般数据文件的壹串文字或数字流,数据中的对象能够是文字,图像,声音,关系式数据库由壹系列表组成,表又由壹系列行和列组成,每壹行是壹个记录,每壹列是壹个字段,每个字段有壹个字段名,字段名在壹个表中不能重复。
它由六种对象组成:
表,查询,窗体,报表,宏,模块。
表(Table)——是数据库的基本对象,是创建其他5种对象的基础。
表由记录组成,记录由字段组成,表用来存贮数据库的数据,故又称数据表。
查询(Query)——查询能够按索引快速查找到需要的记录,按要求筛选记录且能连接若干个表的字段组成新表。
窗体(Form)——窗体提供了壹种方便的浏览、输入及更改数据的窗口。
仍能够创建子窗体显示相关联的表的内容。
窗体也称表单。
报表(Report)——报表的功能是将数据库中的数据分类汇总,然后打印出来,以便分析。
宏(Macro)——宏相当于DOS中的批处理,用来自动执行壹系列操作。
模块(Module)——模块的功能和宏类似,但它定义的操作比宏更精细和复杂,用户能够根据自己的需要编写程序。
模块使用VisualBasic编程。
数据库需求分析
在需求分析中,首先要理解需求。
理解需求是在问题及其最终解决方案之间架设桥梁的第壹步。
开发者只有和客户沟通充分理解了需求之后才能开始设计系统,否则,对需求定义的任何改进,在设计上都必须进行大量的返工。
需求分析是从客户的需求中提取出软件系统能够帮助用户解决的业务问题,通过对用户业务问题的分析,规划出系统的功能模块。
1.收支记录表信息,包括的数据项有:
自动编号,收支分类(如收入类型有:
工资、补贴、股票收入等,反映经济来源的详细情况。
如支出类型有:
电话费、伙食、购物、水电费等,详细反映资金的花费去向,花费时间,发生金额等。
)
姓名,日期,金额,备注,创建人用户名,创建日期。
2.用户表信息,包括的数据项有:
自动编号,称呼,姓名,出生日期,创建日期,备注(用户管理:
即使用者资料管理,主要功能为登录系统用户名和密码的修改,用户基本资料的设置。
)
3.对于银行账务的统计,包括存款、提款、贷款和银行账户信息。
4.在汇总的方面能够进行功能更加强大的设计,比如说对于总财产的统计功能,以及按照时间进行查询。
5.在程序中能够自动修改界面的显示和输入的显示。
6.查询功数能:
该功能根据标签当有显示的是收支明细仍是转账明细判断查询功能。
查询条件可根据收入/支出、收支类型、转入/转出、发生金额、发生日期、录入日期查询。
查询结果显示在标签的相应数据表格中,以便对其进行操作维护。
其中发生日期和录入日期以及发生金额可根据区间查询。
三、设计内容
系统概要设计:
通过之上的分析,家庭财政收支管理系统的架构也就壹目了然,如图则为系统的结构层次图,通过该图我们能够清楚的见到系统各个模块及其相互之间的关系。
系统结构层次图:
具体功能模块如下:
用户信息模块——(基本信息+增加用户)
登录模块——(正常登录+登录错误处理)
借款模块——(借入款+结出款)
存取款模块——(定期存款+活期存款)
收入模块——(具体的收支情况,包括时间,地点,金额,人员,来源,方式)
支出模块——(具体的收支情况,包括时间,地点,金额,人员,用途,方式)
查询模块——(能够以多种方式查询具体的收/支情况)
其他模块——(密码的修改)
汇总模块——(饼图的形象化体现,)
数据流程图
通过该图能够了解系统的整个运行的过程。
ER图
该ER图实体类型为:
家庭成员(称呼,姓名,生日,格言)
收支记录(日期,方式,金额,项目,来源,人员,备注)
借/出款人(姓名,电话,住址)
数据库结构设计
要将上述的数据库概念结构转化为Access数据库系统所支持的实际数据模型,即数据库的逻辑结构。
家庭财政收支管理系统数据库中的各个表的设计结构如所示。
(1)表1是用来说明本系统的用户和密码的存储情况,,用户不能为空
字段名称
数据类型
长度
是否为空
用户
文本
可变长
否
密码
文本
可变长
是
表1用户密码
(2)表2是用户信息图,用来说明本系统用户信息情况。
字段名称
数据类型
长度
是否为空
称呼
文本
可变长
否
姓名
文本
可变长
否
生日
文本
可变长
否
格言
文本
可变长
否
表2收支信息
(3)表3是用来说明存储款信息。
字段名称
数据类型
长度
是否为空
开户日期
文本
可变长
是
银行名称
文本
可变长
否
银行地址
文本
可变长
后
款额
货币
可变长
否
开户人
文本
可变长
是
得款人
文本
可变长
否
已取
文本
可变长
否
表3存取款信息
(4)表4是说明用户信息
字段名称
数据类型
长度
是否为空
称呼
文本
可变长
是
姓名
文本
可变长
否
生日
文本
可变长
是
格言
文本
可变长
是
表4用户信息
(5)表5是说明系统借仍款的基本信息
字段名称
数据类型
长度
是否为空
得款人
文本
可变长
否
金额
货币
可变长
否
出借人
文本
可变长
否
日期
文本
可变长
否
借款原因
文本
可变长
否
以仍
文本
可变长
否
表5借仍款信息
四、测试和评价
家庭财政收支管理系统的实现
用户能够在其输入用户名,密码即可登入系统到该系统。
家庭财政收支管理系统的家庭管理是对家庭中所有信息的统计。
(1)在进入系统之前,必须要有符合本系统的用户以及每个用户对应的密码。
如果没输入用户名,点击登入将会提示请输入用户名。
如果用户名错误和用户的密码不符合也将会有错误提示。
具体界面如图所示。
用户名和初始密码都是vb,当用户连续输入错误三次的时候,系统将关闭。
登录界面
(2)用户和密码正确后,将进入系统的主界面。
在这个界面里将实现本系统所有的功能,用户壹见便会使用,如图所示
本系统的主界面
(3)进入主界面以后,点击菜单中基础数据管理中的家庭成员管理,会出现如图所示能够对家庭成员进行管理。
家庭成员信息
(4)点击基础数据库管理中的项目的管理,出现如图所示,即可对支入支出项目进行管理,可对其进行添加,删除操作。
(5)点击菜单栏中的借仍钱管理能够对借仍钱进行管理,如图所示,可对其进行添加,删除操作
。
借入借出款模块
(6)这里提供了添加资金收入的类型,分为现金和信用卡俩种,仍有日期、金额、方式和备注等,方便用户详细记录资金的收入情况。
添加完以后,就会在查询记录里面找到用户想要找的收入记录。
日常收入支出模块
(7)点击菜单中的银行存储管理,能够见到活期账户,定期存储俩种类型的存储方式,能够对银行账户进行管理,当中有账户信息,取款记录,可对其进行操作哦。
存取款信息
(8)通过这个模块用户能够轻松查询到自己想要的信息。
查询的方式有四种,分别是按日期,按方式,按金额,按项目。
查询模块
(9)点击菜单栏中的理财分析中理财报告,能够见到当月收入支出情况,通过运用饼图查见当月的具体收支情况。
汇总模块
五、结论
整个应用程序调试通过,编译生成可执行文件了。
VisualBasic壹般生成的是单个的可执行文件,能够使用任何壹种在Windows下执行常规可执行文件的方法来执行它。
可执行文件的运用不再需要工程文件和各个模块文件,可是需要有VisualBasic运行时动态链接库(.dll)的支持。
壹台安装了VisualBasic的计算机中会有所需的动态链接库文件。
如果要在没有安装过VisualBasic的计算机上运行,最好使用VisualBasic的安装盘生成程序来制作安装盘。
在这次毕业设计过程中我查找了大量的资料,同时对自己的专业知识进行了融汇贯通,使自己的实践能力有了很大的提高,这对以后的工作做了准备。
由于时间比较仓促,再加上本人的能力有限,目前的好管家家庭管理信息系统只能对家庭的图书和家庭的收支进行基本管理。
故系统的功能仍比较单壹。
如果能对其进行扩充,加上各个方面的功能实现,使家庭的各个事务都能够使用自动化和无纸化的方式进行信息管理,这样才能够更好的使用于各个家庭中。
随着科技的发展,经过扩展后的家庭管理信息系统能够通过各种方式服务于各个家庭。
相信这只是壹个开始,我以后肯定会努力做出更好的作品来。
六、致谢
本次的设计彭三城老师的精心指导下,终于如期完成。
在整个设计过程和撰写设计说明书的过程中,彭三城老师定时定点对我的进度进行了了解且尽力帮助我们决问题,且严格督促我们完成任务,任何人不得例外。
在这种高压下,我们最终完成了任务。
附录
源代码清单:
主界面代码
PrivateSubmnu_bg_yue_Click()
frm_list.Show0,frm_main'参数,让frm_main为主窗体打开多个子窗体
EndSub
PrivateSubmnu_cx_shouru_Click()
frm_query.Show0,frm_main
EndSub
PrivateSubmnu_bz_zt_Click()
EndSub
PrivateSubmnu_cx_Click()
frm_query.Show0,frm_main
EndSub
PrivateSubmnu_rcgl_dq_Click()
frm_fix.Show0,frm_main
EndSub
PrivateSubmnu_rcgl_hq_Click()
frm_live.Show0,frm_main
EndSub
PrivateSubmnu_rcgl_jc_Click()
frm_borrowgo.Show0,frm_main
EndSub
PrivateSubmnu_rcgl_jr_Click()
frm_borrowin.Show0,frm_main
EndSub
PrivateSubmnu_rcgl_sr_Click()
frm_intake.Show0,frm_main
EndSub
PrivateSubmnu_rcgl_zc_Click()
frm_expend.Show0,frm_main
EndSub
PrivateSubmnu_xt_shz_Click()
frm_login.Show
UnloadMe
EndSub
PrivateSubmnu_xt_xg_Click()
frm_password.Show0,frm_main
EndSub
PrivateSubmnu_xt_xu_Click()
frm_project.Show0,frm_main
EndSub
PrivateSubmnu_xy_family_Click()
frm_family.Show0,frm_main
EndSub
PrivateSubmnuexit_Click()
UnloadMe
EndSub
PrivateSubmnuinput_Click()
CallFileIn
EndSub
PrivateSubmnuout_Click()
CallFileGo
EndSub
PrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLib.Button)
SelectCaseButton.Index
Case1
Callmnu_xt_xu_Click
Case2
Callmnu_xy_family_Click
Case3
Callmnu_xt_xg_Click
Case5
CallFileGo
Case6
CallFileIn
Case8
Callmnu_rcgl_sr_Click
Case9
Callmnu_rcgl_zc_Click
Case10
Callmnu_rcgl_hq_Click
Case11
mnu_bg_yue_Click
Case13
Callmnu_cx_Click
Case15
UnloadMe
EndSelect
EndSub
PrivateFunctionFileGo()
OnErrorGoTo1
DimA,BAsString
CommonDialog1.ShowSave
A=CommonDialog1.FileName
B=App.Path&"\"&"database\MoneyMIS.mdb"
Setfs=CreateObject("Scripting.FileSystemObject")
fs.CopyFileB,A
MsgBox"数据库导出成功!
",vbOKOnly+64,"成功"
ExitFunction
1:
MsgBox"数据库导出失败!
",vbOKOnly+64,"失败"
EndFunction
PrivateFunctionFileIn()
OnErrorGoTo1
DimA,B,C,DAsString
C=MsgBox("是否真的导入数据库,导入新数据库后,将覆盖原来的所有录?
",vbYesNo+48+256,"警告")
IfC=vbYesThen
CommonDialog1.ShowOpen
A=CommonDialog1.FileName
B=App.Path&"\"&"database\MoneyMIS.mdb"
'D=CurDir()&"\"&"MoneyMIS.mdb"
SetFs1=CreateObject("Sfcripting.FileSystemObject")
'Fs1.DeleteFileD,True
Fs1.CopyFileA,B
MsgBox"数据库导入成功!
",vbOKOnly+64,"成功"
Else
MsgBox"数据库导入失败!
",vbOKOnly+64,"失败"
EndIf
ExitFunction
1:
MsgBox"数据库导入失败!
",vbOKOnly+64,"失败"
EndFunction
家庭成员信息模块
DimMydbAsNewADODB.Recordset
DimMydb1AsNewADODB.Recordset
DimCount1AsNewADODB.Recordset
DimStr_textAsString
PrivateSubcmd_add_Click()
OnErrorResumeNext
DimA,B
B=1
SetCount1=ExeCutesql("select*from成员",Str_text)
Count1.MoveLast
B=Count1.Fields(4)+1
A=MsgBox("是否添加前记录?
",vbYesNo+32,"修改记录")
IfA=vbYesThen
ExeCutesql"insertinto成员values('"&Text1.Text&"','"&Text2.Text&"','"&Format(DTPicker1.Value,"yyyy-mm-dd")&"','"&Text3.Text&"',"&B&")",Str_text
CallDb
Mydb.MoveLast
MsgBox"数据已经保存!
",vbOKOnly+64,"成功"
EndIf
EndSub
PrivateSubcmd_close_Click()
UnloadMe
EndSub
PrivateSubcmd_del_Click()
OnErrorResumeNext
DimA
A=MsgBox("是否删除当前记录",vbYesNo+32+256,"删除记录")
IfA=vbYesThen
ExeCutesql"DELETEfrom成员wherekey="&txt_key.Text&"",Str_text
'Mydb.Requery
'IfMydb.EOFThenMydb.MoveLast
'CallDb
SetMydb=ExeCutesql("select*from成员",Str_text)
SetMSHFlexGrid1.DataSource=Mydb
EndIf
EndSub
PrivateSubcmd_edit_Click()
OnErrorResumeNext
DimA
A=MsgBox("是否修改前记录?
",vbYesNo+32,"修改记录")
IfA=vbYesThen
ExeCutesql"Update成员set称呼='"&Text1.Text&"',姓名='"&Text2.Text_
&"',生日='"&DTPicker1.Value&"',格言='"&Text3.Text&"'wherekey="&txt_key.Text&"",Str_text
MsgBox"数据已经修改成功!
",vbOKOnly+64,"成功"
CallDb
EndIf
EndSub
PrivateSubForm_Load()
CallDb
DTPicker1.Value=Date
EndSub
PrivateFunctionDb()
SetMydb=ExeCutesql("select*from成员",Str_text)
SetMSHFlexGrid1.DataSource=Mydb
EndFunction
PrivateSubMSHFlexGrid1_Click()
OnErrorResumeNext
Text1.Text=MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row,1)
Text2.Text=MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row,2)
DTPicker1.Value=MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row,3)
Text3.Text=MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row,4)
txt_key.Text=MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row,5)
EndSub