家庭财政收支系统随着社会经济发展,人们生活水平提高,经济收入提高,利用计算机对家庭收支管理势在必行!过去,人们收入还没有达到要用计算机来计算,但是今非夕比,不可能就单单靠一个头脑或一支笔就可以实现对家庭收支管理在这个高度发达社会,家庭财政收支管理系统建立,实现了家庭财务信息化管理,可以为整个家庭带来很大经济效益。
科学、高明理财手段可以给一个家庭带来丰厚回报。
而现代社会可以提供给家庭理财项目也是五花八门,如果没有一个功能强大理财软件来管理这些信息,光靠手写脑记是远远不能满足要求,所以在家庭管理信息系统中开发家庭财务模块也是势在必行本系统是针对个人家庭用户为主进行开发,所以考虑最多就是在保障安全前提下,最大限度满足个人用户使用需求。
开发系统不但可以实现从微观角度数据录入、删除、查找等基本功能,而且从宏观角度对于整个财务状况进行分析。
家庭管理信息系统家庭管理可以对收支信息进行统计。
家庭财政收支管理系统可以实现对用户管理,实现了添加、修改、删除用户,设置用户权限,是否启用。
家庭财政收支管理系统中可以实现对个人信息管理,可以修改登录用户个人信息,修改密码。
二、设计任务可行性分析技术可行性分析家庭财政收支管理系统发展虽然还处于初级阶段,但是它发展前途是无限光明。
它开发平台有很多,可以采用各种技术来开发,本系统实现是采用VB开发语言,数据库采用Access。
经济可行性分析家庭对信息化要求目前还不是很高,但这终究是一种趋势,从目前技术发展分析,从目前技术发展分析,采用vb作为开发平台是较为理想平台,并且有不少关于管理信息系统成功案例,而且开发成本较低,因此采用此平台在实际开发中具有很高可行性。
因此开发家庭财政收支管理系统在经济上也是可行。
操作可行性分析目前家用电脑操作系统大多数为Windows,故本系统在操作上是可行。
开发工具:1.设计语言VB:Visual Basic 6.0 是一种32位系统开发开发环境,是一种现代化编程语言,提供了完善指令控制语句、类与对象支持及丰富数据类型,能方便编程人员设计出高内聚,低耦合程序出来。
2.Access数据库:一种有结构数据集合,是不同于一般数据文件一串文字或数字流,数据中对象可以是文字,图像,声音,关系式数据库由一系列表组成,表又由一系列行和列组成,每一行是一个记录,每一列是一个字段,每个字段有一个字段名,字段名在一个表中不能重复。
它由六种对象组成:表,查询,窗体,报表,宏,模块。
表(Table) ——是数据库基本对象,是创建其他5种对象基础。
表由记录组成,记录由字段组成,表用来存贮数据库数据,故又称数据表。
查询(Query)——查询可以按索引快速查找到需要记录,按要求筛选记录并能连接若干个表字段组成新表。
窗体(Form)——窗体提供了一种方便浏览、输入及更改数据窗口。
还可以创建子窗体显示相关联表内容。
窗体也称表单。
报表(Report)——报表功能是将数据库中数据分类汇总,然后打印出来,以便分析。
宏(Macro)——宏相当于DOS中批处理,用来自动执行一系列操作。
模块(Module)——模块功能与宏类似,但它定义操作比宏更精细和复杂,用户可以根据自己需要编写程序。
模块使用Visual Basic编程。
数据库需求分析在需求分析中,首先要理解需求。
理解需求是在问题及其最终解决方案之间架设桥梁第一步。
开发者只有和客户沟通充分理解了需求之后才能开始设计系统,否则,对需求定义任何改进,在设计上都必须进行大量返工。
需求分析是从客户需求中提取出软件系统能够帮助用户解决业务问题,通过对用户业务问题分析,规划出系统功能模块。
1.收支记录表信息,包括数据项有:自动编号,收支分类(如收入类型有:工资、补贴、股票收入等,反映经济来源详细情况。
如支出类型有:电话费、伙食、购物、水电费等,详细反映资金花费去向,花费时间,发生金额等。
)姓名,日期,金额,备注,创建人用户名,创建日期。
2.用户表信息,包括数据项有:自动编号,称呼,姓名,出生日期,创建日期,备注(用户管理:即使用者资料管理,主要功能为登录系统用户名和密码修改,用户基本资料设置。
)3.对于银行账务统计,包括存款、提款、贷款和银行账户信息。
4.在汇总方面可以进行功能更加强大设计,比如说对于总财产统计功能,以及按照时间进行查询。
5.在程序中能够自动修改界面显示和输入显示。
6.查询功数能:该功能根据标签当有显示是收支明细还是转账明细判断查询功能。
查询条件可根据收入/支出、收支类型、转入/转出、发生金额、发生日期、录入日期查询。
查询结果显示在标签相应数据表格中,以便对其进行操作维护。
其中发生日期和录入日期以及发生金额可根据区间查询。
三、设计内容系统概要设计:通过以上分析,家庭财政收支管理系统架构也就一目了然,如图则为系统结构层次图,通过该图我们可以清楚看到系统各个模块及其相互之间关系。
系统结构层次图:具体功能模块如下:用户信息模块——(基本信息+增加用户)登录模块——(正常登录+登录错误处理)借款模块——(借入款+结出款)存取款模块——(定期存款+活期存款)收入模块——(具体收支情况,包括时间,地点,金额,人员,来源,方式)支出模块——(具体收支情况,包括时间,地点,金额,人员,用途,方式)查询模块——(可以以多种方式查询具体收/支情况)其他模块——(密码修改)汇总模块——(饼图形象化体现,)数据流程图通过该图可以了解系统整个运行过程。
ER图该ER图实体类型为:家庭成员(称呼,姓名,生日,格言)收支记录(日期,方式,金额,项目,来源,人员,备注)借/出款人(姓名,电话,住址)数据库结构设计要将上述数据库概念结构转化为Access 数据库系统所支持实际数据模型,即数据库逻辑结构。
家庭财政收支管理系统数据库中各个表设计结构如所示。
字段名称数据类型长度是否为空用户文本可变长否密码文本可变长是表1 用户密码(2)表2是用户信息图,用来说明本系统用户信息情况。
字段名称数据类型长度是否为空称呼文本可变长否姓名文本可变长否生日文本可变长否格言文本可变长否表2 收支信息(3)表3是用来说明存储款信息。
表3 存取款信息(4)表4是说明用户信息表4 用户信息(5)表5是说明系统借还款基本信息表5 借还款信息四、测试与评价家庭财政收支管理系统实现用户可以在其输入用户名,密码即可登入系统到该系统。
家庭财政收支管理系统家庭管理是对家庭中所有信息统计。
(1) 在进入系统之前,必须要有符合本系统用户以及每个用户对应密码。
如果没输入用户名,点击登入将会提示请输入用户名。
如果用户名错误和用户密码不符合也将会有错误提示。
具体界面如图所示。
用户名和初始密码都是vb,当用户连续输入错误三次时候,系统将关闭。
登录界面(2) 用户和密码正确后,将进入系统主界面。
在这个界面里将实现本系统所有功能,用户一看便会使用,如图所示本系统主界面(3) 进入主界面以后,点击菜单中基础数据管理中家庭成员管理,会出现如图所示可以对家庭成员进行管理。
家庭成员信息(4)点击基础数据库管理中项目管理,出现如图所示,即可对支入支出项目进行管理,可对其进行添加,删除操作。
(5)点击菜单栏中借还钱管理可以对借还钱进行管理,如图所示,可对其进行添加,删除操作。
借入借出款模块(6) 这里提供了添加资金收入类型,分为现金和信用卡两种,还有日期、金额、方式和备注等,方便用户详细记录资金收入情况。
添加完以后,就会在查询记录里面找到用户想要找收入记录。
日常收入支出模块(7)点击菜单中银行存储管理,可以看到活期账户,定期存储两种类型存储方式,可以对银行账户进行管理,当中有账户信息,取款记录,可对其进行操作哦。
存取款信息(8)通过这个模块用户可以轻松查询到自己想要信息。
查询方式有四种,分别是按日期,按方式,按金额,按项目。
查询模块(9)点击菜单栏中理财分析中理财报告,可以看到当月收入支出情况,通过运用饼图查看当月具体收支情况。
汇总模块五、结论整个应用程序调试通过,编译生成可执行文件了。
Visual Basic一般生成是单个可执行文件,可以使用任何一种在Windows下执行常规可执行文件方法来执行它。
可执行文件运用不再需要工程文件与各个模块文件,但是需要有Visual Basic运行时动态链接库(.dll)支持。
一台安装了Visua l Basic计算机中会有所需动态链接库文件。
如果要在没有安装过Visual Ba sic计算机上运行,最好使用Visual Basic安装盘生成程序来制作安装盘。
在这次毕业设计过程中我查找了大量资料,同时对自己专业知识进行了融汇贯通,使自己实践能力有了很大提高,这对以后工作做了准备。
由于时间比较仓促,再加上本人能力有限,目前好管家家庭管理信息系统只能对家庭图书和家庭收支进行基本管理。
故系统功能还比较单一。
如果能对其进行扩充,加上各个方面功能实现,使家庭各个事务都可以使用自动化和无纸化方式进行信息管理,这样才可以更好使用于各个家庭中。
随着科技发展,经过扩展后家庭管理信息系统可以通过各种方式服务于各个家庭。
相信这只是一个开始,我以后肯定会努力做出更好作品来。
六、致谢本次设计彭三城老师精心指导下,终于如期完成。
在整个设计过程和撰写设计说明书过程中,彭三城老师定时定点对我进度进行了了解并尽力帮助我们决问题,并严格督促我们完成任务,任何人不得例外。
在这种高压下,我们最终完成了任务。
附录源代码清单:主界面代码Private Sub mnu_bg_yue_Click()frm_list.Show 0, frm_main '参数,让frm_main为主窗体打开多个子窗体End SubPrivate Sub mnu_cx_shouru_Click()frm_query.Show 0, frm_mainEnd SubPrivate Sub mnu_bz_zt_Click()End SubPrivate Sub mnu_cx_Click()frm_query.Show 0, frm_mainEnd SubPrivate Sub mnu_rcgl_dq_Click()frm_fix.Show 0, frm_mainEnd SubPrivate Sub mnu_rcgl_hq_Click()frm_live.Show 0, frm_mainEnd SubPrivate Sub mnu_rcgl_jc_Click()frm_borrowgo.Show 0, frm_mainEnd SubPrivate Sub mnu_rcgl_jr_Click()frm_borrowin.Show 0, frm_mainEnd SubPrivate Sub mnu_rcgl_sr_Click()frm_intake.Show 0, frm_mainEnd SubPrivate Sub mnu_rcgl_zc_Click()frm_expend.Show 0, frm_mainEnd SubPrivate Sub mnu_xt_shz_Click()frm_login.ShowUnload MeEnd SubPrivate Sub mnu_xt_xg_Click()frm_password.Show 0, frm_mainEnd SubPrivate Sub mnu_xt_xu_Click()frm_project.Show 0, frm_mainEnd SubPrivate Sub mnu_xy_family_Click()frm_family.Show 0, frm_mainEnd SubPrivate Sub mnuexit_Click()Unload MeEnd SubPrivate Sub mnuinput_Click()Call FileInEnd SubPrivate Sub mnuout_Click()Call FileGoEnd SubPrivate Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Butt on)Select Case Button.IndexCase 1Call mnu_xt_xu_ClickCase 2Call mnu_xy_family_ClickCase 3Call mnu_xt_xg_ClickCase 5Call FileGoCase 6Call FileInCase 8Call mnu_rcgl_sr_ClickCase 9Call mnu_rcgl_zc_ClickCase 10Call mnu_rcgl_hq_ClickCase 11mnu_bg_yue_ClickCase 13Call mnu_cx_ClickCase 15Unload MeEnd SelectEnd SubPrivate Function FileGo()On Error GoTo 1Dim A, B As StringCommonDialog1.ShowSaveA = CommonDialog1.FileNameB = App.Path & "\" & "database\MoneyMIS.mdb"Set fs = CreateObject("Scripting.FileSystemObject")fs.CopyFile B, AMsgBox "数据库导出成功!", vbOKOnly + 64, "成功"Exit Function1:MsgBox "数据库导出失败!", vbOKOnly + 64, "失败"End FunctionPrivate Function FileIn()On Error GoTo 1Dim A, B, C, D As StringC = MsgBox("是否真导入数据库,导入新数据库后,将覆盖原来所有录?", vbYesNo + 48 + 256, "警告")If C = vbYes ThenCommonDialog1.ShowOpenA = CommonDialog1.FileNameB = App.Path & "\" & "database\MoneyMIS.mdb"'D = CurDir() & "\" & "MoneyMIS.mdb"Set Fs1 = CreateObject("Sfcripting.FileSystemObject")'Fs1.DeleteFile D, TrueFs1.CopyFile A, BMsgBox "数据库导入成功!", vbOKOnly + 64, "成功"ElseMsgBox "数据库导入失败!", vbOKOnly + 64, "失败"End IfExit Function1:MsgBox "数据库导入失败!", vbOKOnly + 64, "失败"End Function家庭成员信息模块Dim Mydb As New ADODB.RecordsetDim Mydb1 As New ADODB.RecordsetDim Count1 As New ADODB.RecordsetDim Str_text As StringPrivate Sub cmd_add_Click()On Error Resume NextDim A, BB = 1Set Count1 = ExeCutesql("select * from 成员", Str_tex t)Count1.MoveLastB = Count1.Fields(4) + 1A = MsgBox("是否添加前记录?", vbYesNo + 32, "修改记录")If A = vbYes ThenExeCutesql "insert into 成员values('" & Text1.Text & "','" & Text2.Text & "','" & Format(DTPicker1.Value, "yyyy-mm-dd") & "','" & Text3.Text & "'," & B & ") ", Str_textCall DbMydb.MoveLastMsgBox "数据已经保存!", vbOKOnly + 64, "成功"End IfEnd SubPrivate Sub cmd_close_Click()Unload MeEnd SubPrivate Sub cmd_del_Click()On Error Resume NextDim AA = MsgBox("是否删除当前记录", vbYesNo + 32 + 25 6, "删除记录")If A = vbYes ThenExeCutesql "DELETE from 成员where key=" & tx t_key.Text & "", Str_text'Mydb.Requery'If Mydb.EOF Then Mydb.MoveLast'Call DbSet Mydb = ExeCutesql("select * from 成员", Str_te xt)Set MSHFlexGrid1.DataSource = MydbEnd IfEnd SubPrivate Sub cmd_edit_Click()On Error Resume NextDim AA = MsgBox("是否修改前记录?", vbYesNo + 32, "修改记录")If A = vbYes ThenExeCutesql "Update 成员set 称呼='" & Text1.Text & "',姓名='" & Text2.Text _& "',生日='" & DTPicker1.Value & "',格言='" & Te xt3.Text & "'where key=" & txt_key.Text & "", Str_textMsgBox "数据已经修改成功!", vbOKOnly + 64, "成功"Call DbEnd IfEnd SubPrivate Sub Form_Load()Call DbDTPicker1.Value = DateEnd SubPrivate Function Db()Set Mydb = ExeCutesql("select * from 成员", Str_text)Set MSHFlexGrid1.DataSource = MydbEnd FunctionPrivate Sub MSHFlexGrid1_Click()On Error Resume NextText1.Text = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 1)Text2.Text = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.R ow, 2)DTPicker1.Value = MSHFlexGrid1.TextMatrix(MSHFlex Grid1.Row, 3)Text3.Text = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.R ow, 4)txt_key.Text = MSHFlexGrid1.TextMatrix(MSHFlexGrid1. Row, 5)End Sub。