个人理财分析系统设计与实现本科毕业论文_第1页
个人理财分析系统设计与实现本科毕业论文_第2页
个人理财分析系统设计与实现本科毕业论文_第3页
个人理财分析系统设计与实现本科毕业论文_第4页
个人理财分析系统设计与实现本科毕业论文_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

某某某某大学毕业论文毕业论文个人理财分析系统设计与实现PersonalWealthManagementSystemDesignandImplementation某某某某大学毕业论文摘要PAGEIV摘要本文设计的个人理财软件是一款通过对个人(家庭)收支、资产及负债信息进行管理,提供财务分析报表的数据库访问软件。设计按照“面向对象软件工程”的要求进行,采用PowerDesigner对系统进行分析和设计,用Visualbasic进行系统实现。使用FlexCell、DTPicker、Listbar等高级控件。创建通用数据访问模块OperatDataBase.bas。此模块规范ADO数据访问流程,只需修改连接字符串即可实现对多种不同数据库系统的访问。通过对计算账户余额算法的研究,我掌握了利用SQL语句进行数据库访问的技巧。本论文实现的个人理财软件可完成收支记账管理、资产、负债管理、数据导出、多账簿多用户操作及各种财务报表的自动生成。在各种常用Windows操作系统下都可以正常工作,达到了预期的设计目标。关键字:数据库,ADO,VisualBasic,理财某某某某大学毕业论文AbstractPersonalWealthManagementSystemDesignandImplementationAbstractThisdesignisapersonalwealthmanagementsoftwarethroughmanagetheinformationofafamily’sincomeandexpenditure,assetsandliabilitiestoprovidefinancialanalysisstatementsanddatabaseaccesssoftware.Designedinaccordancewiththe"object-orientedsoftwareengineering"requirements,usesPowerDesignertocarryontheanalysisandthedesignthesystem,thesystemExecutionisthroughVisualbasic.UseFlexCell,DTPicker,ListbarandotherHigh-levelcontrolssoftware.Thenfoundsthegeneraldataaccessingmodule:OperatDataBase.bas.ThismoduleStandardtheProcessofADOdataaccess,onlyamodificationoftheconnectioncharacterstringthentorealizeavisitofmanykindsofdifferentdatabasessystem.Bycalculatingaccountbalancesalgorithmresearch,IhavegraspedtheskillofusingtheSQLsentencetovisitdatabase.Inthispaper,personalwealthmanagementsoftwaretoachievecompleterevenueexpenditureaccountmanagement,asset-liabilitymanagement,dataderived,andmulti-accountsbooksofoperationandtheautomaticgenerationoffinancialstatements.ItcanworkcommonlyundereachkindofWindowsoperatingsystemsoitcanachievetheanticipateddesign.Keyword:Database,ADO,VisualBasic,Personalfinancing某某某某大学毕业论文目录目录TOC\o"1-3"\u摘要 IAbstract II目录 III第一章绪论 11.1什么是个人(家庭)理财 11.2个人理财分析中最重要的四份财务报表 11.3常见个人理财软件分析 2第二章系统功能介绍 32.1系统简介 32.2系统主要功能 32.3系统特点 42.4系统运行界面 4第三章系统设计 73.1系统需求分析 73.2系统性能要求 73.3硬件配置要求 73.4软件开发所需软件配置要求 83.5系统结构设计图 93.6数据库分析设计 93.6.1系统E-R图 113.6.2数据字典 123.6.3创建表关系 143.6.4创建查询 15第四章系统实现 184.1系统主界面 184.1.1创建工程项目 184.1.2创建系统主窗体 194.1.3主窗口菜单 214.2公用模块 234.2.1OperatDataBase.bas 234.2.2PublicVar.bas 234.3ADO数据访问技术 244.3.1从MicrosoftVisualBasic引用ADO的步骤 244.3.2在VisualBasic中创建ADO对象 254.4FlexCell表格控件 254.5账套管理 284.5.1选用账套 294.5.2新建账套 294.5.3删除账套 304.6日常收支流水账 314.6.1信息流览页面 314.6.2收支记录管理界面 334.7年度收支统计表 354.8对计算账户余额算法的研究 364.8.1用数据指针对数据集进行处理 364.8.2用SQL函数对数据集进行处理 374.8.3算法比较 384.9对程序错误的处理 404.9.1使用OnErrorResumeNext错误处理程序 404.9.2使用OnErrorGoTo错误处理程序 414.9.3创建统一的错误处理程序块 41第五章系统发布 43总结 47致谢 48参考文献 49某某某某大学毕业论文第一章绪论第51页共49页第一章绪论1.1什么是个人(家庭)理财人的衣、食、住、行离不开钱,我们每天都在自觉或不自觉地运用和处理着钱财,这就是个人(家庭)理财。如果,对个人理财下个确切的定义:个人理财就是对个人(家庭)的财务进行科学的、有计划的、系统的全方位管理,以实现个人财产的合理安排、消费和使用,有效地增值和保值。简单地讲个人理财就是管理好自己的钱财。有人说:花一分时间去赚钱,但要花两分时间去理财。其实这句话中无非包含两层意思:第一,理财重要;第二,理财困难。而我设计这个个人理财分析软件的目标也就是要帮助我们把这件重要的事做好。1.2个人理财分析中最重要的四份财务报表现代人的投资面越来越广,收入也五花八门。通过制作家庭财务报表可以对自己的财务状况一目了然,也对我们普通家庭合理安排收支非常有帮助。我们日常生活中最为观注的主要有以下几方面的报表:1.年度收支统计表:以年为单位按月统计日常普通收支项目的收支金额及其他活动的收、支详情,以便我们从微观到宏观地了解资金来源和支出在各时期的分布情况。2.资金流量表:按账户或收支项目统计指定时间范围内的现金流入、流出等各类消费收支的详细情况。3.资产负债表:用于计算用户所拥有的总资产、债务及净资产额,了解家庭真实情况。通过这些报表我们可以了解到:日常的收支情况,现在总体的资产、债务情况,让我们对自己的财务状况做到心中有数;净资产的统计,可知道我们是否迈上了正常的理财之路。1.3常见个人理财软件分析目前常见的个人理财软件从功能上可以分为两类:1.功能单一型软件:此类软件功能较少,一般为记生活收支流水账软件。软件设计的根本目的是利用计算机记账方式代替原始手工记账方式。它的优点是操作简单,容易上手。主要缺点是此类软件无法提供真正意义上的理财分析报表,只能算是记账软件算不上理财分析软件。2.功能复杂型软件:此类软件为了全面、完整地解决个人理财分析问题,便利功能繁多、操作复杂。它的优点是能够提供完整的理财分析报表。缺点是由于操作界面专业导致用户不易上手使用,感觉操作复杂繁琐,且往往此类软件本身就价格不菲。一款既操作简单,又能够提供准确、实用家庭财务分析报表的软件必将受到广大个人(家庭)理财者的青睐。某某某某大学毕业论文第二章系统功能介绍第二章系统功能介绍2.1系统简介个人理财分析软件是一套即操作简单又能够提供专业理财报表的个人(家庭)理财分析工具软件,适合中国现代家庭。它能全面管理所有资产与负债,跟踪家庭经济状况的变化,为用户合理配置家庭资产、达到保值增值的目的、以及最终实现财富的最大化提供帮助。2.2系统主要功能1.多账套多用户:可管理多套账簿。每套账簿是一个独立的数据库文件,账簿之间互不影响;软件可供多用户使用而互不干扰,适应家庭中的每个成员的不同需求。2.收支记账:收支记账是把日常收入、支出等所有与财务活动相关的事件准确、及时地记入账簿。收支记账是整个软件中最常用的功能,也是最重要的功能,它是家庭理财分析软件的基础。3.资产管理:资产管理界面可以显示家庭贵重物品详细资料,同时提供资产现目前的现值情况。4.债务管理:债务管理界面显示了所有债务信息,包括债务的详细资料以及对债务进行新建、删除、修改等。5.导出:将账簿中的财务数据导出成MicrosoftOfficeExcel格式文件。6.理财宝典:理财宝典是家庭/个人理财的知识读本。讲述了投资理财的基本概念、原则、步骤,介绍了现行国内主要的投资理财品种,如储蓄、贷款、保险、股票、基金、外汇、债券、房地产、收藏等项目。通过此理财宝典的学习,可充分掌握投资理财的基本概念与技能,为您家庭财富保值、增值等提供宝贵的知识。2.3系统特点1.让用户开支井井有条,心中一本明白账。2.债务借贷功能,谁欠你,你欠谁,一目了然,保障用户具有良好的信用。3.注意高消费项目:可以轻松发现高消费项目。适当控制它们,将是我们减少开支的重要手段。4.频繁消费项目:也许这些项目每次消费金额不算高,但考虑其频繁的消费次数后,其累计金额也是较为可观的,发现这类项目用户应放在力争减少每次消费额,日积月累就能为用户节省一大笔开销。5.通过软件生成的多种统计报表,让用户清楚的了解自已账户余额、资产、债务项目,收支情况,当我们聚积了财富的时候,用户可以通过这些统计报表享受成功感。2.4系统运行界面图2-1欢迎界面图2-2收支流水账图2-3资产负债表图2-4关于界面某某某某大学毕业论文第三章系统设计某某某某大学毕业论文第三章系统设计第三章系统设计3.1系统需求分析需求分析要弄清用户对开发的应用系统的确切要求。要设计一个有效的管理信息系统,必须用系统工程的观点来考虑问题。在系统分析阶段,设计者要收集和分析数据管理中信息的内容和用户对处理的要求。能够记录日常生活流水账。能够对收支项目及账户进行编辑管理。实现负债、资产管理。对表格中的数据可以按多种条件进行排序。可以根据数据库中相关记录生成各种统计报表支持多账套。可以将数据导出到其它通用软件中。3.2系统性能要求系统安全、可靠;功能齐全;操作方便、界面友好;易于维护和扩充。3.3硬件配置要求奔Ш以上的CPU主频500以上128MB以上的内存彩色显示器(800*600)8M以上显存10G以上硬盘空间鼠标器3.4软件开发所需软件配置要求WINDOWSXPSP2操作系统MicrosoftVisualBasic6.0(SP6)简体中文版FlexCell表格控件(版本:5.6.3)MicrosoftOfficeAccess20033.5系统结构设计图图3-13.6数据库分析设计Access是微软公司推出的基于Windows的桌面关系数据库管理系统(RDBMS),是Office系列应用软件之一。它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。Access是一种关系型数据库管理系统。图3-2根据系统需要分析,系统需要建立6个表,其用途说明如表3-1所示:表3-1数据表及其用途ID数据表名称数据表用途1流水账保存日常生活流水账信息2收支项目保存收支项目信息3账户保存账户信息4负债保存负债项目信息5还债流水账保存还债记录信息6资产保存资产购入价格及现值信息3.6.1系统E-R图系统E-R图是一种信息模型图,体现了系统实体之间的关系。通过系统需要分析,得到了系统的分解功能以及数据流程。根据这些实体和实体之间的关系,可以得到系统E-R图,如图3-3所示.图3-3系统E-R图3.6.2数据字典表3-2到表3-7给出了6个数据表(流水账、收支项目、账户、负债、还债流水账、资产)的具体描述,包括字段名称、数据类型和主键/外键设置信息。主键(PrimaryKey)也称为主关键字,是表中惟一能标识一条记录的字段,可以是一个字段或多个字段的组合。定义主键时,先要指定作为主键的一个或多个字段,如果只选择一个字段,可单击字段所在行的选定按钮,若需要选择多个字段作为主键,可先按下Ctrl键,再依次单击这些字段所有行的选定按钮。指定字段后,可在鼠标右键菜单中选择“主键”命令,或直接单击工具栏上的“主键”按钮,即可把该字段设为表的主键。如果主键在设置后发现不适用或不正确,可以通过“主键”按钮取消原有的主键。数据表之间的关联是由键值匹配来确定的。如果表中的一个字段是另一个表的主键字段,那么这个字段在本表中被称为外键(ForeignKey)。1流水账表3-2流水账编号字段名称数据类型主键/外键1编号COUNTERPK2账户编号INTEGERFK3项目编号INTEGERFK4交易日期DATETIME5资金CURRENCY6说明VARCHAR(100)2收支项目表3-3收支项目编号字段名称数据类型主键/外键1项目编号COUNTERPK2项目名称VARCHAR(20)3类型BOOLEAN4说明VARCHAR(50)3账户表3-4账户编号字段名称数据类型主键/外键1账户编号COUNTERPK2账户名称VARCHAR(100)3开户金额CURRENCY4账户余额CURRENCY5说明VARCHAR(100)4负债表3-5负债编号字段名称数据类型主键/外键1负债编号COUNTERPK2负债名称VARCHAR(100)3负债日期DATETIME4账户编号INTEGERFK5债务金额CURRENCY6尝还金额CURRENCY7尝还余额CURRENCY8说明VARCHAR(100)5还债流水账表3-6还债流水账编号字段名称数据类型主键/外键1编号COUNTERPK2负债编号INTEGERFK3账户编号INTEGERFK4还债日期DATETIME5还债金额CURRENCY6说明VARCHAR(100)6资产表3-7资产编号字段名称数据类型主键/外键1资产编号COUNTERPK2资产名称VARCHAR(100)3购入价值CURRENCY4现值CURRENCY5说明VARCHAR(100)3.6.3创建表关系所谓的关系,指的是两个表中都有一个相同的数据类型、大小的字段,利用这个字段建立两个表之间的关系。通过这种表之间的关联性,可以将数据库中的多个表联结成一个有机的整体。关系的主要作用是使多个表中的字段协调一致,以便快速地提取信息。如果两个表使用了共同的字段,就应该为这两个表建立一个关系,通过表间关系就可以指出一个表中的数据与另一个表中数据的相关方式。常见表关系类型如下:一对一:一个表中的每个记录只与第二个表中的一个记录匹配。一对多:一个表中的每个记录与第二个表中的一个或多个记录匹配,但第二个表中的每个记录只能与第一个表中的一个记录匹配。多对一:一个表的多个记录与第二个表中的一个记录匹配。多对多:一个表中的每个记录与第二个表中的多个记录匹配,反之亦然。通过MicrosoftOfficeAccess可以得到数据库表关系图,如图3-4所示。所有主表和外键表之间的关系具有如下特征:对Insert和Update具有强制性。级联删除相关的记录。图3-4数据库表关系3.6.4创建查询使用查询可以按照不同的方式查看、更改和分析数据。也可以用查询作为窗体、报表和数据访问页的记录源。使用SQL语句创建的查询。可以用结构化查询语言(SQL)来查询、更新和管理Access这样的关系数据库。在查询“设计”视图中创建查询时,Access将在后台构造等效的SQL语句。实际上,在查询“设计”视图的属性表中,大多数查询属性在SQL视图中都有等效的可用子句和选项。如果需要,可以在SQL视图中查看和编辑SQL语句。但是,在对SQL视图中的查询做更改之后,查询可能无法以以前在“设计”视图中所显示的方式进行显示。有一些SQL查询,称为“SQL特定查询”,无法在设计网格中进行创建。对于传递查询、数据定义查询和联合查询,必须直接在SQL视图中创建SQL语句。对于子查询,可以在查询设计网格的“字段”行或“条件”行输入SQL语句。1负债查询全SELECT负债.负债编号,负债.负债名称,负债.账户编号,负债.债务金额,负债.尝还金额,负债.尝还余额,负债.说明,账户.账户名称,负债.负债日期FROM账户INNERJOIN负债ON账户.账户编号=负债.账户编号;2还债流水账查询全SELECT还债流水账.负债编号,还债流水账.账户编号,还债流水账.还债日期,还债流水账.还债金额,还债流水账.说明,账户.账户名称,负债.负债名称,还债流水账.编号,账户.开户金额,负债.负债日期,负债.债务金额,负债.尝还金额FROM账户INNERJOIN(负债INNERJOIN还债流水账ON负债.负债编号=还债流水账.负债编号)ON账户.账户编号=还债流水账.账户编号;3流水账查询全SELECT流水账.编号,流水账.交易日期,流水账.账户编号,流水账.项目编号,流水账.资金,流水账.说明,收支项目.项目名称,收支项目.类型,账户.账户名称FROM账户INNERJOIN(收支项目INNERJOIN流水账ON收支项目.项目编号=流水账.项目编号)ON账户.账户编号=流水账.账户编号;某某某某大学毕业论文第四章系统实现第四章系统实现4.1系统主界面通过数据库分析设计,已经完成了所有的后台工作,现在需要通过VisualBasic来编写程序。VisualBasic是一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发Windows环境下的各类应用程序。Visual意即可视的、可见的,指的是开发像windows操作系统的图形用户界面(GraphicUserInterface,GUI)的方法,它不需要编写大量代码去描述界面元素的外观和位置,只要把预先建立好的对象拖放到屏幕上相应的位置即可。Basic指的是Beginnersallpurposesymbolicinstructioncode初始者通用符号指令代码语言。VisualBasic简单易学、效率高,且功能强大可以与Windowsr专业开发工具SDK相媲美。在VisualBasic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的广泛应用程序接口(API)函数,以用动态链接库(DLL)、对象的链接与世隔嵌入(OLE)、开放式数据连接(ODBC)等技术,可以高效、快速地开发Windows环境下功能强大、图形界面丰富的应用软件系统。随着版本的提高,VisualBasic的功能也越来越强。5.0版以后,VisualBasic推出了中文版,与前个版本相比,其功能有了很大提升。4.1.1创建工程项目为了实现应用程序,首先要建立一个工程。工程是用来构建应用程序的文件的集合,通常包含如下文件:工程文件(.vbp)窗体文体(.frm)窗体的二进制数据文件(.frx)类模块文件(.cls)标准模块文件(.bas)一个或多个包含ActiveX控件的文件(.ocx)单个资源文件(.res)启动VisualBasic6.0后,单击[文件]→[新建工程]命令,在如图4-1所示对话框中选择[VB企业版控件]选项,然后单击[确定]按钮。VisualBasic将自动创建一个“工程1”工程项目,包含一个窗体文件夹和一个Form1窗体。在项目的[属性]面板中将工程的“Name”属性改为“MMM”,将Form1的“Caption”属性改为“ManageMoneyMattersV1.0”图4-1VB[新建工程]对话框4.1.2创建系统主窗体在创建工程项目,已经创建了一个“Form1”窗体文件,将它直接作为主窗体文件。系统主窗体的界面如图4-2所示。在窗体上添加一个WB_listbar控件,用于调用系统各个功能模块。其主要控件的属性如表4-1所示。图4-2系统主界面表4-1主窗体属性设置控件属性属性值Form1(Form)BorderStyleCaptionMaxButtonMinButtonStartUpPosition1'FixedSingleManageMoneyMatters0'False0'False2'屏幕中心WB_listbar1(WB_listbar)MenuCaption1MenuItemCaption11MenuItemCaption12MenuItemCaption13MenuItemCaption14MenuItemCaption15MenuItemCaption16MenuCaption2MenuItemCaption21MenuItemCaption22MenuItemCaption23MenuItemCaption24MenuCaption3MenuItemCaption31MenuCaption4MenuCaption5MenuItemCaption51MenuCaption6MenuItemCaption61MenuItemCaption62MenuItemCaption63"理财信息管理""收支流水账""账户一览""收支项目""资产""负债""还债流水账""统计报表""年度收支统计表""按账户现金流量表""按项目现金流量表""资产负债表""理财知识""访问理财知道网""备用功能""系统设置""账套管理""关于""访问作者主页""关于""退出系统"StatusBar1(StatusBar)AlignSimpleTextTabIndex2'AlignBottom"个人理财软件"14.1.3主窗口菜单右击WB_listbar1控件,选择弹出式菜单中的[属性]命令,将出现如图4-3所示的菜单编辑对话框。图4-3菜单编辑对话框对菜单项操作的代码如程序4-1所示PrivateSubWB_listbar1_MenuItemClick(MenuNumberAsLong,MenuItemAsLong)SelectCaseMenuNumberCase1SelectCaseMenuItemCase1F11load'调用出支流水账管理模块 ……Case6 ……Case3UnloadMe'结束程序运行EndSub程序4-1菜单控制代码4.2公用模块在VisualBasic中,可以使用公用模块来存放整个项目所需要的公用函数和全局变量等。通过公用函数和变量可以极大地提高代码的利用率。在项目资源管理器中为项目添加一个模块,并将其保存为OperatDataBase.bas。4.2.1OperatDataBase.basOperatDataBase.bas公用模块主要是用来对数据库进行ADO操作的,包括以下5个函数:GetConnStr()AsString函数,返回连接字符串,用来设置数据库连接字符串。OpenConn(ByRefConnAsADODB.Connection)AsBoolean函数,返回布尔值,用来打开数据库连接。ExecuteSQL(ByValSQLAsString,ByRefmsgAsString)函数,用来执行SQL语句。SelectSQL(ByValSQLAsString,ByRefmsgAsString)AsADODB.Recordset函数,返回Recordset,用来执行查询语句。BatchSelectSQL(ByValSQLAsString,ByRefmsgAsString)AsADODB.Recordset函数,返回Recordset,用来执行批处理操作。4.2.2PublicVar.bas为了实现全局变量,别外创建一个全局变量模块PublicVar.bas,主要有如下内容:ConnectionString 用来保存数据库连接字符串temP 用来保存暂时传值变量temp1 用来保存全局临时变量1temp2 用来保存全局临时变量2t编号 用来保存流水账编号4.3ADO数据访问技术ADO(ActiveXDataObjects,ActiveX数据对象)是一个用于存取数据源的COM组件。它提供了编程语言和统一数据访问方式OLEDB的一个中间层。允许开发人员编写访问数据的代码而不用关心数据库是如何实现的,而只用关心到数据库的连接。是一个用于存取数据源的COM组件。它提供了编程语言和统一数据访问方式OLEDB的一个中间层。允许开发人员编写访问数据的代码而不用关心数据库是如何实现的,而只用关心到数据库的连接。ADO被设计来继承微软早期的数据访问对象层,包括RDO(RemoteDataObjects)和DAO(DataAccessObjects)。图4-4ADO类模型4.3.1从MicrosoftVisualBasic引用ADO的步骤在VisualBasic中,从“工程”菜单中选择“引用”。从列表中选择“MicrosoftActiveXDataObjectsx.xLibrary”。请验证至少还选择了下列库:VisualBasicforApplicationsVisualBasicruntimeobjectsandproceduresVisualBasicobjectsandproceduresOLEAutomation单击“确定”。图4-54.3.2在VisualBasic中创建ADO对象在Dim中使用New关键字,可以只用一个步骤就完成ADO对象的声明和实例化:DimconnAsNewADODB.Connection或者,也可用两个步骤来完成Dim语句声明和对象实例化:DimconnAsADODB.ConnectionSetconn=NewADODB.Connection4.4FlexCell表格控件FlexCell是一款灵活、易用的表格和报表控件,因本系统中多处应用此控件,在此对其功能进行简单介绍。FlexCell提供了6种单元格类型和6种图表类型,提供了合并单元格、虚表、打印和打印预览等功能,支持剪贴板操作、XML文件的导入和导出,不需要Excel运行库支持就可以导出为ExcelWorkBook。软件包中附带报表设计器,只需很少的代码就可以制作出图文并茂的报表和程序界面。图4-6图4-7主要特点:功能全面:FlexCell提供了非常全面的功能,例如:打开/保存文件、不需要Excel运行库的支持直接导出Excel、导出CSV、导出HTML、导出/导入XML、打印、打印预览、冻结行列、排序、添加Chart、合并单元格、虚表模式、OwnerDraw模式。表格设计器:FlexCell表格设计器是一个独立的工具,开发人员可以使用它来制作表格模板,然后将表格保存为.cel文件,也可以导出成XML文件,然后可以在程序运行时使用OpenFile方法或LoadFromXML方法加载表格模板。这样做可以极大地减少编程人员的工作量,使用少量代码即可设计出复杂的表格。打印方便:FlexCell提供了方便的打印和预览功能,您可以通过PageSetup对象修改页面设置,例如:纸张大小、纸张方向、设置打印范围、单色打印、页边距、页眉和页脚、可以在每一页都重复打印的标题行和标题列。您还可以添加不会显示在Grid中的分页符和报表标题。对象模型:精心设计的对象模型,可以使程序的条理更加清晰。FlexCell提供了10个类:Cell、Chart、Column、ComboBox、Image、PageBreak、PageSetup、Range、ReportTitle、Selection。单元格类型:FlexCell提供了6种单元格类型:TextBox、ComboBox、CheckBox、Calendar、Button、HyperLink。单元格属性:FlexCell提供了丰富的单元格属性,例如:Alignment、BackColor、Border、CellType、Font、ForeColor、Locked、Mask、Printable、Tag、Text、WrapText。单元格Mask:FlexCell提供了多种Mask,如Letter、Upper、Lower、Numeric、Value等,能够自动控制用户输入,减少输入错误。内置Chart:FlexCell提供了6种类型的图表:柱状图、折线图、饼图、3D柱状图、3D折线图、3D饼图。合并单元格:FlexCell提供了灵活方便的合并单元格功能,操作方式和Excel很相似。支持剪贴板操作:FlexCell支持剪贴板操作,可以自由复制、剪切、粘贴单元格内容和格式,可以和Excel、Notepad等软件互相复制、粘贴文本。4.5账套管理用于新建账套或打开、删除已存在的账套文件。单击菜单“系统设置账套管理”进入,如图4-8所示:图4-8账套管理界面表4-2控件属性设置控件属性属性值ListView1(ListView)AllowColumnreorderCheckboxesArrangeFalseFalse1'lvwAutoLeftImageList1(ImageList)ImageHeightImageWidthUseMaskColor3232TrueFile1(FileListBox)ArchiveCausesValidationPatternReadOnlyTrueTrue*.mdbTrue4.5.1选用账套位于个人理财分析助手软件安装目录文件夹中的所有账套均会在账套管理界面中显示出来,选择要使用的账套后点击[选用账套]即可打开使用。程序序代码如程序4-2所示:'选用账套PrivateSubCommand26_Click()IfFile1.ListCount<>0Then'如果已从账套列表中选择了一个账套则将账套信息写入注册表''将账套信息写入注册表中SaveSettingApp.EXEName,"SETUP","ConnectionString",ListView1.SelectedItemMsgBox"已启用"&ListView1.SelectedItem&"账套"UnvisibleEndIfEndSub程序4-2选用账套程序代码4.5.2新建账套一个账套就是一个独立的数据库文件,根据不同用户的需求,建立一个或多个账套。在“新建账套”后的输入框里自定义一个名称,如:温馨小家2007,按“确定”按钮后系统自动进入该账套。新建账簿存放的路径为软件安装目录文件夹中,文件名为“温馨小家2004.mdb”。程序序代码如程序4-3所示:'新建账套PrivateSubCommand24_Click()DimaAsStringOnErrorGoToErrorHandler'输入一个账套名称a=InputBox("请输入新账套名称:","新建账套")IfTrim(a)=""OrIsNull(a)Then'如果账套名称不为空则创建此账套MsgBox"新建账套未成功!"Else'通过文件复制,用账套模版创建新账套FileCopyApp.Path&"\mmm.emp",App.Path&"\"&a&".mdb"MsgBox"新建账套成功!"F51load'选用刚新建的账套为当前使用账套Command26_ClickEndIfExitSubErrorHandler:'如出现错误,显示错误信息Screen.MousePointer=0MsgBoxErr.Description,vbExclamation,"Error"Err.ClearEndSub程序4-3新建账套程序代码4.5.3删除账套本界面上会列出软件安装目录文件夹中的所有账套,点击要删除的账套,按[删除]按钮并确认即可。当删除成功后系统自动选用账套列表中第一个账套为当前使用账套。程序序代码如程序4-4所示:'删除账套PrivateSubCommand25_Click()DimN1AsIntegerOnErrorGoToErrorHandlerIfListView1.ListItems.Count>0Then'如果账套列表中不为空则可进行账套删除处理N1=MsgBox("确认是否真的要删除"&ListView1.SelectedItem&"账套?",vbOKCancel,"删除确认")IfN1=1Then'物理删除软件安装目录下的账套文件KillApp.Path&"\"&ListView1.SelectedItemMsgBox"账套删除成功!"'涮新账套列表F51load'选用账套列表中第一个账套为当前使用账套Command26_ClickElseMsgBox"账套删除操作已经取消!"EndIfElseMsgBox"无法删除账套!"EndIf'涮新账套列表F51loadEndSub程序4-4删除账套程序代码4.6日常收支流水账收支流水账是对现金、活期存款、信用卡等账户的记账,把日常收支记录下来。在[理财信息管理]菜单下,点击[收支流水账]即可进入。4.6.1信息流览页面显示每天的收支记录信息,可实现按任异字段排序。支持收支流水账记录导出。界面所图4-9所示图4-9收支流水账界面代码见程序4-5:'显示收支流水账FunctionF11load()Frame1.Visible=TrueGrid1.OpenFile(App.Path&"\收支流水账表.CEL")Grid1.SelectionMode=cellSelectionByRow'按行选择'从数据库中读取数据并显示到Grid中CallReadData("SELECT交易日期,账户名称,项目名称,编号ASID,资金,类型,说明FROM流水账查询全ORDERBY交易日期,编号",Grid1)'计算收/支总额IfGrid1.Rows>2ThenFori=1ToGrid1.Rows-1a=a+Grid1.Cell(i,5).TextNexti'将收入总款信息显示在状态栏中Label6.Caption=aa=0Fori=1ToGrid1.Rows-1a=a+Grid1.Cell(i,4).TextNexti'将支出总款信息显示在状态栏中Label7.Caption=a'将收支节余信息显示在状态栏中Label8.Caption=Label6.Caption--(Label7.Caption)EndIfEndFunction程序4-5显示收支流水账代码4.6.2收支记录管理界面用来对收支信息进行新增、修改、删除处理。点击[新添收支]或在流览界面上点击收支记录,即可进入收支记录管理界面。界面所图4-10所示:图4-10收支记录管理界面表4-3控件属性设置控件属性属性值DTPicker1(DTPicker)MaxDateMinDateFormat9999-12-311601-01dtpShortDateGrid1(Grid)AllowUserResizingAllowUserSortFixedRowColStyTrueFalse1Fixed3DText1(Text)AlignmentMaxLengthMultiLine1RightJustify0False核心代码见程序4-6:PrivateSubForm_Load()'设置Grid的各种属性,设置各个列的格式Ift编号=0Then '数据单元清空初始化Else'从数据库中读取数据'从记录集中取得数据,并填充Setrs=NothingEndIfEndSub''函数:ReadData()'返回值:True--操作成功'False--失败'PrivateFunctionReadData(ByValstrsqlAsString,ByRefgGridAsGrid)AsBooleanEndFunction''函数:SaveData()'返回值:True--操作成功'False--失败'PublicFunctionSaveData()AsBooleanEndFunction程序4-6收支记录管理模块核心代码4.7年度收支统计表按月统计日常收支项目的收入、支出详情,以便我们从微观到宏观地了解资金来源和支出在各时期的分布情况。点击菜单[统计报表][年度收支统计表]进入。界面所图4-11所示:图4-11年度收支统计表算法见程序4-7:'///////年度统计Grid3.OpenFile(App.Path&"\年度收支统计表.CEL")i支出=0strsql="SELECT项目编号,项目名称FROM收支项目WHERE类型=TRUEORDERBY项目编号"Setrs项目=SelectSQL(strsql,msg)Screen.MousePointer=11'处理收入''计算收入全年''''处理借代收入''''计算借代收入的全年值'''计算收入小计'''处理支出''计算支出全年''处理还债支出''计算还债支出全年值''计算支出小计''计算合计EndSub程序4-7年度收支统计表描述算法4.8对计算账户余额算法的研究算法(Algorithm)是解题的步骤,可以把算法定义成解一确定类问题的任意一种特殊的方法。在计算机科学中,算法要用计算机算法语言描述,算法代表用计算机解一类问题的精确、有效的方法。算法+数据结构=程序,求解一个给定的可计算或可解的问题,不同的人可以编写出不同的程序,来解决同一个问题,这里存在两个问题:一是与计算方法密切相关的算法问题;二是程序设计的技术问题。算法和程序之间存在密切的关系。本程序通过对收支流水账、负债及还债流水账记录信息的计算可以求得账户余额。使用不通的算法虽然可以得到相同的结果,但是处理速度及对数据库的访问次数上却有很大区别。我在开发过程中尝试了两种不同的计算方法。4.8.1用数据指针对数据集进行处理应用数据指针rs.MoveNext对数据集中的记录逐一进行求和处理。源程序如图4-12所示:图4-12处理账户余额(算法1)4.8.2用SQL函数对数据集进行处理常见的SQL数值函数有COUNT(计数)、MIN(求最小值)、MAX(求最大值)、AVG(求平均值)和SUM(求总和)。本软件中应用到SUM(求总和)函数对收支流水账、负债及还债流水账记录信息进行计算求得账户余额。代码见图4-13所示:图4-13处理账户余额(算法2)4.8.3算法比较将两种算法分别在Pentium4(P4)和Pentium3(P3)计算机上进行了算法测试。在每台计算机上分别访问空数据库,1千条记录数据库和1万条记录数据库,求得访问时间平均值。结果见表4-4及图4-14表4-4算法测试结果空数据库1千条记录1万条记录P42.4GHzP3633MHzP42.4GHzP3633MHzP42.4GHzP3633MHz算法10.22s0.28s7.33s45.50s59.6s372.39s算法20.05s0.07s0.28s1.33s0.30s1.42s图4-14算法执行时间比较算法1执行时间随数据量增加而成线性增加。算法2执行时间受数据量大小影响很小。算法1执行时间受计算机CPU处理速度限制,CPU数据处理速度快,算法1执行速度相对较快。算法2执行时间受CPU处理速度影响很小。算法1访问数据库次数=数据库记录条件;算法2访问数据库次数=4所以,用SQL函数对数据集进行处理(算法2)计算方法具有处理速度快,对计算机配置要求低,访问数据库次数固定等特点。具有很高的实际应用价值。4.9对程序错误的处理计划工作做得再周密,也无法避免代码出现错误。应该尽量避免错误。实际上可能出现的程序错误数量是很大的,但是它们基本上可能分为两种类型:一种是编译错误,另一种是运行期错误。编译错误是指使用VisualBasic的编译器无法对代码进行编译的错误。运行期错误是在程序运行时产生的,通常是试图对变量执行无效操作而产生的结果。图4-15错误提示4.9.1使用OnErrorResumeNext错误处理程序对错误进行处理的最简单的方法是使用OnErrorResumeNext语句。OnErrorResumeNext语句规定,代码中的错误将完全被忽略,存在错误的代码行被跳过,然后继续执行下一个语句。使用OnErrorResumeNext语句捕获预料之中的错误。4.9.2使用OnErrorGoTo错误处理程序当一个过程中出现了意料之外的错误时,该过程就会产生许多问题。如果忽略该错误,就会对用户产生严重的影响,比如数据没有保存或者保存不正确。许多情况下,当出现代码错误时,必须执行某些操作,将代码的执行转移到OnErrorGoTo语句中指定的错误处理程序。使用OnErrorGoTo语句捕获意料之外的错误。4.9.3创建统一的错误处理程序块高质量的错误处理程序块可以提高程序的安全、稳定性,并且可以提高对软件的开发效率。使用错误处理程序时,很重要的一个问题是要使用统一的错误处理程序块。本程序中基本错误处理程序块如程序5.7.3-1所示:OnErrorGoToErrorHandler…….ExitSubErrorHandler:'如出现错误,显示错误信息Screen.MousePointer=0MsgBoxErr.Description,vbExclamation,"Error"Err.ClearEndSub程序4-8基本错误处理程序块带数据库操作的错误处理程序块如程序5.7.3-2所示:OnErrorGoToErrorHandler…….ExitSubFinally_Exit:'程序结束的时候进行数据库对象销毁工作…….ExitFunctionErrorHandle:'如果SQL语句执行出错,则提示出错信息并转到Finally_Exitmsgstring="查询错误:"&_Err.DescriptionMsgBoxmsgstringResumeFinally_ExitEndFunction程序4-9带数据库操作的错误处理程序块某某某某大学毕业论文第五章系统发布第五章系统发布使用[应用程序安装向导]进行打包和发布。[应用程序安装向导]又叫做[打包和展开向导],是随VB一起发布的一个实用工具软件。它主要完成以下几方面的任务:自动搜索指定工程所依赖的所有文件。允许用户添加工程中附加的文件。自动压缩所有需要安装的文件。为用户建立一个安装程序和一个用户卸载的程序。提供程序发布功能。在“开始”菜单中选择“程序>Visualbasic6.0>Package&Deployment向导”选项,运行“打包和展开向导”。在VisualBasic6.0的开发环境中,先用“外接程序管理器”将外接程序“打包和展开向导”装入开发环境中,然后在菜单栏上选择“外接程序>打包和展开向导”选项,启动打包和展开向导。启动“打包和展开”向导后,进入“打包和展开向导”主窗口。该窗口包括打包、展开和管理脚本3个功能选项按钮。打包:将激活的工程捆绑起来进行打包发布。展开:将工程的打包文件发送到诸如INTERNET服务器的位置。管理脚本:可以对“打包脚本”和“展开脚本”进行重命名,复制和删除等管理。“打包和展开”向导的操作:打包和展开向导提示输入工程信息,并允许选择要加入安装程序的选项,应用程序分布的形式,是否需要“打包和展开”向导编译应用程序等。屏幕出现可选择信息时,同时提供使用说明,此时必须输入信息才能进行下一步操作。操作时将给出提示说明。在“打包和展开向导”主对话框的“激活的工程”框中选择或输入要发行的工程文件名,并选择其中的“打包”按钮,向导创建一个名为SETUP.EXE的主安装程序,并生成应用程序的可执行文件。完成主安装文件和可执行文件的创建后,弹出“打包脚本”对话框选择“标准安装软件包”后,单击“下一步”按钮,弹出“包类型”对话框可以选择标准打包或相关文件方式打包,单击“下一步”按钮,弹出“打包文件夹”对话框,从中选择存放创建安装程序部件的文件夹,单击“下一步”按钮,弹出“包含文件”对话框从中选择或添加打包中包含的文件。单击“下一步”按钮,弹出“压缩文件选项”对话框从中选择发行方式。可以选择单个的压缩文件或多个压缩文件两种方式发行应用程序。单击“下一步”按钮,弹出“安装标题”对话框输入应用程序安装时显示的标题。单击“下一步”按钮,弹出“启动菜单项”对话框确定安装进程要创建的启动菜单群组和项目。单击“下一步”按钮,弹出“安装位置”对话框确定每个文件的安装位置后,单击“下一步”按钮,弹出“共享文件”对话框选择作为共享文件的文件。单击“下一步”按钮,弹出“已完成”对话框。运行安装程序因发行方式的不同而异,总的原则是在第一张安装盘中可以找到SETUP.EXE文件,运行该文件即可安装应用程序。某某某某大学毕业论文总结总结本次设计严格按照“面向对象软件工程”的要求进行,采用PowerDesigner对系统进行分析和设计,采用Visualbasic进行系统实现。在系统开发中使用了大量的高级控件,如FlexCell、DTPicker、Frame、PictureBox、WB_listbar等。大量地使用了insert、update、select、between等诸多SQL语句。由于系统是不允许崩溃的,所以我在程序设计中充分重视错误保护工作。论文中详细介绍了OnErrorGoto在错误保护中的应用方法。创建了通用数据访问模块OperatDataBase.bas。通过此模块只需修改数据库连接字符串,即可实现对多种数据库系统的访问。通过对计算账户余额的算法研究,对两种算法性能的比较。使我掌握了利用SQL函数进行数据库访问的技巧。某某某某大学毕业论文致谢致谢本次毕业设计是在XXX老师的精心指导和帮助下完成的。在这4个多月的设计期间,X老师花费了大量的心血。我不仅领会到了面向对象软件工程的精髓所在,而且学会了Visualbasic、PowerDesigner、Visio、Access数据库开发等软件工具的使用方法。从刚开始面对需求分析无从下手,到现在可以较好地完成这个项目,这期间的一点一滴都离不开X老师的悉心指导。在此,谨向X三年来,我所学的许多科学基础知识和专业知识及实践经验,都离不开各位优秀教师对我的关心和帮助。今天,我如期完成了专升本的学业,我深深地感谢某某某某大学所有老师们对我的教诲,我将永远铭记在心。某某某某大学毕业论文参考文献参考文献[1]易福华,VisualBasic典型系统实战与解析,电子工业出版社[2]Petkovic,SQLSERVER2000循序渐进教程,北京希望电子出版社[3]刘瑞新,VisualBasic管理信息系统开发毕业设计指导及实例,机械工业出版社[4]谭浩强,VisualBasic程序设计(第二版),清华大学出版社[5]陈宝贤,数据库应用与程序设计教程,人民邮电出版社[6]王晟,VisualBasic数据库开发经典安全解析,清华大学出版社[7]微软公司,Microsoft®ActiveX®DataObjects(ADO)中文帮助,微软公司[8]周之英,现代软件工程,科学出版社[9]张红军、王红,VisualBasic6.0中文版高级应用与开发指南,人民邮电出版社[10]林立军、程斌、翁迪恩,VisualBasic6.0数据库开发指南,西安电子科技大学出版社[11]JeffreyP.McManus,VisualBasic6.0数据库存访问技术,西安电子科技大学出版社[12]MicrostftMSDN,MicrostftDevelopers'NetWorkMicrostft[13]伍俊良,VB课程设计与系统开发案例,清华大学出版社[14]庞一鸣,VB问答式教程,清华大学出版社[15]孙涌,现代软件工程,北京希望电子出版社基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论