《家庭财务管理系统(39页).doc》由会员分享,可在线阅读,更多相关《家庭财务管理系统(39页).doc(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-南京信息职业技术学院毕业设计论文作者 学号 系部 专业 题目 家庭财务管理系统实现 指导教师 评阅教师 完成时间: 2010 年 月 日毕业设计(论文)中文摘要(题目):家庭财务管理系统实现摘要 :为了适应全球经济的蓬勃发展所带来的金融理财领域的巨大变革和创新,尤其是对现代家庭与个人传统的理财观念有着较大的革新。因此,提出了给人们提供一种能充分利用计算机优势,快捷、方便、高效、易操作的管理系统来管理家庭财务的收支。然后按照家庭成员对自身财产的管理要求,根据相关的管理经验,以记录信息、提示信息,提供良好的操作平台为根本目的,并将收入管理、支出管理、借贷管理、银行账户管理等方面有机的组成一个整体
2、。本论文主要介绍了家庭财务管理系统的开发过程和所涉及到的问题及解决方法。利用C#语言在Microsoft Visual Studio 2005平台下开发而成,整个系统是一个单机的系统,操作员可以记录家庭收入,支出等,通过各种方式可以查询。最后经过测试,系统能正常运行,功能完善,性能较高。总得来说这个系统的开发是比较成功的。关键词:家庭财务管理系统; C#;Microsoft Visual Studio 2005毕业设计(论文)外文摘要Title : Family Financial Management System ImplementationAbstract: In order to ad
3、apt to global economic boom brings the huge financial field, especially the reform and innovation of modern families and individuals traditional financial management concept has great innovations. Therefore, puts forward provide people with a can make full use of computer advantage, quick, convenien
4、t, efficient and easy operation management system to manage family financial receipts and expenditures. Then according to the family members of their own property management requirements, according to relevant management experience to record information, tip information, provide good operation platf
5、orm for fundamental purpose, and will income management, expenditure management, debt management, bank account management etc organic an integral unit. This paper mainly introduced family financial management system development process and involved problems and solutions. Using c # language in Micro
6、soft Visual Studio lans into 2005, the whole system development is a single system, the operator can record family income, spending, through various ways can query. Finally after testing, the system can run normally, perfect function, performance is higher. Overall this system development is relativ
7、ely successful.keywords: Family Financial Management System;C #;Microsoft Visual Studio 2005-第 33 页-目 录1 绪论11.1课题背景及选题意义11.2课题简介11.3本课题要达到的设计目标11.4本论文任务概述21.5本论文章节安排22 系统需求分析32.1系统功能模块设计32.2建立E-R图42.3数据流图72.4系统业务流程图93 系统设计与实现103.1开发环境103.2数据库设计103.3系统结构设计133.4系统实现134 功能测试304.1调试分析304.2实例测试314.3用户手则3
8、1结论33致谢33参考文献341 绪论1.1课题背景及选题意义近几年来,随着我国城乡居民收入的增加和生活水平的提高,家庭理财已成为人们居家过日子的重要内容。社会学家细心的观察到,时下家庭的财务管理比之计划经济年代,开始发生微妙的变化。现在的城乡家庭生活发生了明显的变化,人们的收入逐渐拉开档次,消费水平也高了。大多数家庭关注的是提高生活质量,一方面精打细算,量入为出,把钱用在刀刃上;另一方面保证适当的娱乐活动、社会交际、智力开发等方面的开支。为此,不少家庭就有中长期财务预算,有基本建设规划。总的说来,家庭财务必须以量入为出为原则,以财产保值增值为目标,处理好积累和消费的关系。因此,开发一个家庭财
9、务管理系统具有很强的实用性,能够达到对家庭财务合理有效的管理。1.2 课题简介家庭财务管理系统是每一个家庭管理家庭财务收入和支出的不可缺少的一个管理信息系统,它的内容对于家庭的管理者来说是至关重要的,所以家庭财务管理系统应该能够为每一个家庭的管理者提供充足的信息和快捷的查询手段,大大的方便家庭的管理者的合理理财。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已被人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对家庭财务进行管理,具有手工管理所无法比拟的优点,如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些
10、优点能够极大地提高家庭财务管理的效率,也是家庭理财的科学化、正规化管理,与先进科学技术接轨的重要条件。1.3 本课题要达到的设计目标家庭财务管理系统的用户使用本系统进行管理,能够感到方便,系统操作简单,功能基本符合其管理要求,方便的对日常收入、日常支出、现金的借入及借出进行管理,了解家庭当下的财力状况等。同时本系统还要求查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大的提高管理操作的效率,节省了很大一部分时间,可以让用户做更多别的有意义的事情。1.4 本论文任务概述这个毕业设计的最终目标是设计、实现一个功能完善的家庭财务管理系统。这个系统是用C#语言开发。我负责整个系
11、统的架构设计、编码、测试等。这篇论文我主要先对课题做简要的介绍,然后介绍了开发本系统所用到的新技术,接着对整个系统进行系统需求分析设计、系统设计与实现、功能测试。1.5 本论文章节安排第一章:绪论,第二章:系统需求分析,第三章:系统设计与实现,第四章:功能测试。最后对本论文进行小结,主要描述了在做本系统的过程中遇到的问题及解决方法以及在本系统中我学到了一些知识,以及对给与我帮助的人表示致谢。2 系统需求分析2.1系统功能模块设计家庭财务管理系统由登录管理、基本数据管理、出入账管理、理财管理、借贷管理和财务详情等模块组成。具体如下:1登录管理模块设计(1)验证用户登陆:验证即将登陆系统用户的用户
12、名和密码正确性。(2)密码修改:实现用户密码的修改。(3)重新登录:更换用户重新登录。(4)退出:注销退出当前用户登录。2基本数据管理模块设计(1)家庭成员管理:实现家庭成员的添加、删除、修改。(2)收支项目管理:实现收支项目的添加、删除、修改。3出入账管理设计(1)入账:实现日常收入的添加、删除、修改。(2)开销:实现日常支出的添加、删除、修改。4理财管理模块设计(1)活期账户:对银行活期账户进行管理,实现添加、删除、修改的功能。(2)定期账户:对银行定期账户进行管理,实现添加、删除、修改的功能。5借贷管理模块设计(1)借出款:记录家庭成员各项借出款情况。(2)借入款:记录家庭成员各项借入款
13、情况。6财务详情模块设计(1)明细查询:按类别查询收支明细。(2)财务报告:生成财务分析报告。家庭财务管理系统的系统功能结构图如图2- 1所示:图2- 1系统功能结构图2.2建立E-R图以下是各个实体的E-R图家庭成员信息实体称呼姓名用户名密码生日图2- 2家庭成员信息实体E-R图项目编号收入项目收入项目信息实体图2- 3收入项目信息实体E-R图项目编号支出项目支出项目信息实体图2- 4支出项目信息实体E-R图图2- 5收入信息实体E-R图图2- 6支出信息实体E-R图图2- 7借入款信息实体E-R图图2- 8借出款信息实体E-R图图2- 9活期账户信息实体E-R图图2- 10活期存取信息实体
14、E-R图图2- 11定期账户信息实体E-R图综合以上E-R图模型,得出如图2-12所示的整个系统E-R关系图:收入项目信息实体支出项目信息实体收入信息实体支出信息实体用户信息实体借入款信息实体借出款信息实体查询查询管理管理管理管理管理管理活期账户信息实体管理活期存取款信息实体定期账户信息实体图2- 12整个系统E-R关系图2.3数据流图1数据流第一层图用户添加收入信息添加支出信息删除信息查询信息收支信息数据库图2- 13收支管理模块 本流程图解释了用户对收支信息数据库的操作过程,包括用户添加收支信息到数据库;从收支信息数据库中调出收支资料进行修改或删除;对收支信息数据进行查询操作。用户收入信息
15、支出信息收入表支出表图2- 14日常操作 此流程图解释了用户的日常操作过程,包括支出信息和收入信息的过程,在此过程中都要对财务信息数据库进行操作,并要求系统对此信息做好记录。2 数据流第二层图继续细化,得到各个模块的数据流第二层图。下图表示的是收支管理模块的几个子模块的数据流第二层图。只是数据流的组成有所差异(名字、项目、数值),在此不再赘述。所有模块的数据流第二层图中包括了详细的数据流组成要素以及具体流向等,具有很好的自明性,在此不再进行解释和说明。收入信息表添加收入信息修改收入信息家庭成员信息表添加成员信息修改成员信息对收入信息表进行操作 第二层图对成员信息表进行操作 第二层图 图2- 1
16、5第二次数据流图3系统总数据流图本系统数据流图概括如下,整个系统包括了登陆管理、基本数据管理、出入账管理、理财管理、借贷管理和财务详情共六个加工部分,每个部分包含了各个业务部门以及与之相关的外部项、数据库之间的业务数据来源和去处。用户输入密码密码验证FY1.登录管理模块 5.借贷管理模块2基本数据管理模块 6.财务分析模块3.出入账管理模块4.理财管理模块选择相应得功能完成操作退出系统 图2- 16 系统总数据流图2.4系统业务流程图 在大多数家庭里,收入和支出的流程大体是这样的,具体收入到支出,收入又去银行储蓄,银行储蓄又分为定期储蓄和活期储蓄,收入还可以再借出,但是相对于借款一般就不会进行
17、储蓄和外借了。所以,流程图可以为: 图2- 17系统业务流程图3 系统设计与实现3.1开发环境硬件配置:机器:戴尔CPU: Core 2 T5550 1.8GHz内存:DDR2 2G硬盘:160G操作系统:Microsoft Windows XP 开发工具:Microsoft Visual Studio 2005 数据库:Access 2003开发语言:C#3.2数据库设计本系统采用Access数据库。针对家庭用户,管理日常收支Access数据库完全可以满足其需求,使得家庭成员操作更加便捷。表3- 1 家庭成员信息表(family)的数据结构表3- 2 收入项目信息表(inItem)的数据结构
18、表3- 3 支出项目信息表(OutItem)的数据结构表3- 4 收入信息表(inInfo)的数据结构表3- 5 支出信息表(outInfo)的数据结构表3- 6 活期账户信息表(liveAccount)的数据结构表3- 7 活期存取信息表(liveInfo)的数据结构表3- 8 定期账户信息表(fixAccount)的数据结构表3- 9 借出信息表(lend)的数据结构表3- 10 借入信息表(borrow)的数据结构3.3系统结构设计1将全局E-R转换成逻辑结构家庭成员表(role(主键),Name,uName,PWD,birthday)收入项目表(inItem(主键),inID)支出项目
19、表(outItem(主键),outID)收入信息表(inInfoID(主键),inDate,inType,inMoney,inItem,infrom,role,inRemark)支出信息表(outInfoID(主键),outdate,outType,outMoney,outItem,outTo,role,outRemark)活期账户表(liveID(主键),liveName,liveAddress,liveDate,liveMoney,role)活期存款表(infoID(主键),liveID,info,infoMoney,infoDate,leave,role)定期账户表(fixID(主键),
20、fixName,fixAddress,fixDate,fixMoney,role,limit,take)借出款信息表(lendID(主键),toName,role,lendDate,lendMoney,lendReason,lend)借入款信息表(borrowID(),fromName,role,borrowDate,borrowMoney,borrowReason,borrow)2使用C/S模式 C/S 模式的优点 1.由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度快。 2.操作界面漂亮、形式多样,可以充分满足客户自身的个性化要求。 3.C/S结构的管理信息系统具有较强的事务处
21、理能力,能实现复杂的业务流程。采用C/S结构时,客户端和服务器端都能够处理任务,这虽然对客户机的要求较高,但因此可以减轻服务器的压力。本系统的使用方向是面向家庭,直接是客户端操作,因此使用C/S模式更加便捷,也减少了系统的冗余。3.4系统实现1数据库连接数据库文件放置的目录是d:我的文档桌面家财务管理系统FamilyWealthMSFamilyWealthMSdatabase FamilyWealthMS.mdb。在程序中专门设计了连接字符串模块databasedbConnection.cs。代码如下所示。public static string connection get return D
22、ata Source=d:我的文档桌面家庭财务管理系统FamilyWealthMSFamilyWealthMSdatabaseFamilyWealthMS.mdb;Jet OLEDB:Engine Type=5;Provider=Microsoft.Jet.OLEDB.4.0; 2登录界面运行程序,出现登录界面,如图3-1所示,选择用户名,输入正确用户密码,即可登录到系统主界面。图3- 1登录界面确定功能:其算法如下:1.键盘输入用户名和密码,点击“确定”;2.连接数据库,创建cmd命令,执行sql语句,搜索该用户;3.读取数据库family表中的记录,若无此用户则显示“无此用户,请重试”,并
23、关闭数据源,返回初始状态;4.若密码输入错误,则显示“密码错误,请重试” 并关闭数据源,返回初始状态;5.若用户名和密码输入正确,窗体系统菜单将通过for循环显示主菜单中的6个管理模式,关闭数据源,登录界面关闭,显示为主菜单。关键代码如下:try string sql = select uName,PWD from family where uName= + boName.Text + ; if (oleConnection1 = null) oleConnection1 = MainForm.getConnection(); OleDbCommand cmd = oleConnection1
24、.CreateCommand(); cmd.CommandText = sql; OleDbDataReader dr = cmd.ExecuteReader(); if (!dr.Read() MessageBox.Show(无此用户,请重试!, 提示); dr.Close(); cmd.Dispose(); return; else if (!dr.GetString(1).Equals(this.password.Text.ToString() MessageBox.Show(n密码错误,请重试!, 提示); dr.Close(); cmd.Dispose(); return; Menu
25、Strip mainmenu = (MainForm)(this.MdiParent).getMainMenu(); for (int i = 0; i 6; i+) mainmenu.Itemsi.Visible = true; StatusStrip statusBar = (MainForm)(this.MdiParent).getStatusBar(); statusBar.Items0.Text = 当前登录用户; statusBar.Items1.Text= boName.Text.Trim(); statusBar.Items2.Text = DateTime.Now.ToStr
26、ing(); statusBar.Items3.Text = 欢迎使用家庭财务管理系统; dr.Close(); cmd.Dispose(); this.Close(); 3系统主界面用户登录成功后所显示界面,分为以下六种功能:【登录管理】、【基本数据管理】、【出入账管理】、【理财管理】、【借贷管理】以及【财务详情】,如图3- 2所示。图3- 2系统主界面系统管理功能:在系统主界面中添加mainMenu1控件,在其属性Items项中添如6个menuItem,将menuItem1设为系统管理。具体属性如图3- 3所示。图3- 3系统管理属性4登录管理模块在主界面中选择【登录管理】|【修改密码】命
27、令菜单,即可进入修改密码界面,如图3- 4所示。图3- 4修改密码确定功能:单击【确定】按钮,如果密码正确并且新密码与确认密码相同,则修改成功,否则修改失败。其算法如下:1.键盘输入密码,新密码以及确认密码,点击“确定”;2.如有未填写的,则提示“请输入完整信息”;3.连接数据库,创建cmd命令,执行sql语句,搜索该用户所有信息;4.若两次密码不相同,则警告“两次密码输入不一致!” 并释放所占资源;5.若用户名和两次密码输入正确,执行sql更新语句更新family表中的密码,返回所受影响的行数,提示“密码锁修改成功”,并关闭当前窗体。6.若原密码输入错误,则提示“原密码错误”,并释放资源对象
28、cmd。关键代码如下:if (textName.Text.Trim() = | textPWD.Text.Trim() = | textPWDNew.Text.Trim() = | textPWDNew2.Text.Trim() = ) MessageBox.Show(请填写完整信息!, 提示); else if (oleConnection1 = null) oleConnection1 = MainForm.getConnection(); OleDbCommand cmd = oleConnection1.CreateCommand(); string sql = select * fr
29、om family where uName= + textName.Text.Trim() + and PWD= + textPWD.Text.Trim() + ; cmd.CommandText = sql; if (null != cmd.ExecuteScalar() if (textPWDNew.Text.Trim() != textPWDNew2.Text.Trim() MessageBox.Show(两次密码输入不一致!, 警告); else sql = update family set PWD= + textPWDNew.Text.Trim() + where uName= +
30、 textName.Text.Trim() + ; cmd.CommandText = sql; cmd.ExecuteNonQuery(); MessageBox.Show(密码修改成功!, 提示); this.Close(); else MessageBox.Show(原密码错误!, 提示); cmd.Dispose(); 5基本数据管理模块在主界面中选择【基本数据管理】|【家庭成员管理】命令菜单,即可进入家庭成员管理界面,如图3- 5所示。用户可以在这里添加、修改和删除家庭成员。输入需要添加的内容,其中带*号的内容为必填项,单击【确定】按钮则添加成功;选择一条数据信息后,单击【修改】按钮
31、,同时【添加】、【删除】和【退出】3个按钮变为不可见状态,然后输入要修改的内容,再单击【修改】按钮,就修改成功。图3- 5家庭成员管理界面记录显示功能: string strSql; DataSet ds; string dataName = dataName; private void Family_Load(object sender, EventArgs e) strSql = select Name as 姓名,role as 称呼,birthday as 生日,uName as 用户名,PWD as 密码 from family; ds = MainForm.FillDataGrid
32、(strSql, dataName, dataGrid1); dataGrid1.CaptionText = 共有 + ds.TablesdataName.Rows.Count + 条记录; this.btModify2.Visible = false; this.btCancel.Visible = false; 添加功能:其算法如下:1.键盘输入姓名,称呼,用户名,密码以及生日,点击“添加”;2.如必填的有未填写的,使用if语句进行判断,则提示“请输入完整信息”;3.通过主界面getConnection()函数连接数据库,创建cmd命令,执行sql语句,将所添加信息插入family表中;4
33、.返回表中所受影响的行数,提示“添加成功”并将所添加内容填充到主界面的DataGrid控件中;5.当程序执行期间发生错误,显示该错误,最后释放资源对象cmd。关键代码如下:if (textName.Text.Trim() = | textUser.Text.Trim() = | textPWD.Text.Trim() = | textRole.Text.Trim() = ) MessageBox.Show(请填写完整信息, 提示); else if (oleConnection1 = null) oleConnection1 = MainForm.getConnection(); string
34、 sql = insert into family values ( + textName.Text.Trim() + , + textUser.Text.Trim() + , + textPWD.Text.Trim() + , + + textRole.Text.Trim() + , + dateTimePicker1.Text.Trim() + ); OleDbCommand cmd = new OleDbCommand(, oleConnection1); cmd.CommandText = sql; try cmd.ExecuteNonQuery(); MessageBox.Show(
35、添加成功, 提示); MainForm.FillDataGrid(strSql, dataName, dataGrid1); catch (System.Exception E) Console.WriteLine(E.ToString(); finally cmd.Dispose(); 选择【成员及收支管理】|【收支项目管理】命令菜单,即可进入收支项目管理界面,此界面分为两个部分:收入项目管理和支出项目管理,分别如图3- 6所示和图3- 7所示。用户可以在这里添加、修改和删除收支项目。输入需要添加的内容,单击【确定】按钮则添加成功;选择一条数据信息后,单击【修改】按钮,同时【添加】、【删除】
36、和【退出】3个按钮变为不可见状态,然后输入要修改的内容,单击【修改】按钮,就修改成功。图3- 6收入项目界面修改功能:其算法如下:1.键盘输入所需修改的想,点击“修改”;2.如必填的有未填写的,使用if语句进行判断,则提示“请输入完整信息”;3.通过主界面getConnection()函数连接数据库,创建cmd命令,执行sql语句,将所更新信息更新至inInfo表中;4.返回表中所受影响的行数,提示“添加成功”并将所添加内容填充到主界面的DataGrid控件中;5.当程序执行期间发生错误,显示该错误,最后释放资源对象cmd。图3- 7支出项目界面删除功能:其算法如下:1选定所需删除的记录,点击
37、“删除”;2.使用if语句进行判断是否已经选定;3.通过主界面getConnection()函数连接数据库,创建cmd命令,执行sql语句,删除outInfo表中记录;4.返回表中所受影响的行数,提示“删除成功”并将所删除以后内容填充到主界面的DataGrid控件中;5.当程序执行期间发生错误,显示该错误,最后释放资源对象cmd。6出入账管理模块在主界面中选择【出入账管理】|【入账】命令菜单,即可进入日常收入管理界面,如图3- 8所示。用户可以在这里添加、修改和删除日常收入。输入需要添加的内容,其中带*号的内容为必填项,单击【确定】按钮则添加成功;选择一条数据信息后,单击【修改】按钮,同时【添
38、加】、【删除】和【退出】3个按钮变为不可见状态,然后输入要修改的内容,再单击【修改】按钮,就修改成功。图3- 8入账界面添加dateTimePicker控件,用于选择日期。添加3个ComboBox控件,用于选择方式、项目和人员三项内容。添加,删除,修改功能参照【基本数据管理模块】中的实现方式。7理财管理模块在主界面中选择【理财管理】|【活期账户】命令菜单,即可进入活期账户管理界面,此界面分为两个部分:活期账户和存取款记录,分别如图3- 9和图3- 10所示。在活期账户界面中,用户可以添加、修改和删除账户信息。输入需要添加的内容,其中带*号的内容为必填项,单击【确定】按钮则添加成功;选择一条数据信息后,单击【修改】按钮,同时【添加】、【删除】和【退出】3个按钮变为不可见状态,然后输入要修改的内容,再单击【修改】按钮,就修改成功。在存取款记录界面中,用户可以添加、修改和删除存取款记录。用户选择一个银行账户后,与该账户相关的存取款记录都会显示在此界面上。单击【存款】或【取款】按钮后,旁边的GroupBok控件变为可见状态。输入需要添加的内容,其中带*号的内容为必填项,单击【存款】按钮则存款成功,选