毕业设计论文应用3张文鹏.docx

上传人:b****7 文档编号:8692436 上传时间:2023-02-01 格式:DOCX 页数:25 大小:408.93KB
下载 相关 举报
毕业设计论文应用3张文鹏.docx_第1页
第1页 / 共25页
毕业设计论文应用3张文鹏.docx_第2页
第2页 / 共25页
毕业设计论文应用3张文鹏.docx_第3页
第3页 / 共25页
毕业设计论文应用3张文鹏.docx_第4页
第4页 / 共25页
毕业设计论文应用3张文鹏.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

毕业设计论文应用3张文鹏.docx

《毕业设计论文应用3张文鹏.docx》由会员分享,可在线阅读,更多相关《毕业设计论文应用3张文鹏.docx(25页珍藏版)》请在冰豆网上搜索。

毕业设计论文应用3张文鹏.docx

毕业设计论文应用3张文鹏

 

山东省劳动职业技术学院

 

题目家庭理财管理系统

院系信息技术与艺术设计

班级应用3班

姓名张文鹏

指导老师王芬

 

2010年11月25日

摘要

家庭理财管理是家庭管理的一个重要内容。

随着家庭人员收入数量的增加,家庭人员的工资管理工作也变得越来越复杂。

工资管理既涉及到家庭成员开销及帐户管理,同时也是家庭财务管理的重要组成部分。

工资管理需要和家庭成员相联系,同时也统计每年的开支和收入等来生成家庭内每个人员的基本工资、津贴、医疗保险、保险费、实际发放工资及银行贷款和存储等。

资金是组成家庭活动来源和生活保障的主要元素,资金的流动影响到人们生活质量的运作,家庭成员的工资是家庭资金管理的一个重要的组成部分,方便进一步对自己和家人的了解,提高生活水平、改善生活质量。

家庭工资管理系统使用电脑安全保存、快速计算、全面统计,实现工资管理的系统化、规范化、自动化。

工资管理系统是典型的信息管理系统(MIS),前台程序开发工具采用VB6.0,后台数据库采用Access数据库。

VB6.0是一种面向对象的开发工具,具有组件丰富、语言简单、功能强大的优点。

Access数据库具有与VB无缝连接、操作简单、易于使用的优点。

运行结果表明,本家庭工资管理系统极大提高了工作效率,节省了人力和物力,最终满足家庭财务管理、家庭成员的需要,同时也成为现代化家庭管理的标志。

关键词:

工资管理、信息管理、数据查询、数据库、VB6.0

作者:

张文鹏

指导老师:

王芬

前言

VisualBasic是Microsoft公司的重点产品,它具有其它数据库开发工具无法比拟的优势,而且简单易学。

本论文是以实例方式讨论VB开发数据库运行软件的思想和方法。

第一章介绍VB开发基础;第二章介绍家庭理财管理信息表的建立;其中包括用户信息表、家庭成员信息表、收入信息表、支出信息表、活期帐户信息表、活期存取信息表、定期存款信息表、借入借出信息表。

第三章介绍家庭理财管理模块的创建;包括系统管理、基础数据管理、日常收支管理、银行储蓄管理、借还钱管理、理财分析等六个模块的设计。

第四章介绍模块与表功能的实现;包括后台具备数据输入、批量数据导入、修改、删除、查询、权限设置与管理等功能。

第五章介绍菜单的设计以及数据库与VB的链接技术及运用。

本论文中对家庭理财管理信息系统的创建工具技巧如下:

Ø公共模块的设计

ØACCESS数据库设计方法

ØVB菜单设计方法

ØADO控件设计方法

ØDataGrid控件设计方法

Ø统一的数据编辑方法

ØVB报表设计方法

Ø图像数据的存储方法

Ø事件编辑技术

 

第1章VB数据库开发基础

VB提供了功能强大的数据库管理功能,能够方便、灵活地完成数据库应用中涉及的查询、修改数据库以及打印等各种操作。

本章主要介绍以access为平台的VB数据库系统开发相关知识,为后面几章的数据库应用系统设计打下基础。

1.1数据访问对象模型

ODBC数据库是开放式数据库,包括ODBC标准的客户/服务器数据库,如MicrosoftServer、Oracle、Sybase等,VB可以使用支持ODBC标准的数据库。

1.2ODBC

●ODBC是开放式数据库链接,它能提供访问数据库的单一接口。

●ODBC使客户应用程序的开发可以独立于后端服务器。

●ODBC由如图1.1几部分组成。

图1.1ODBC的组成

1.3创建数据源

在建立好数据源并在当前服务器上安装相应的ODBC驱动程序,就可以建立应用程序需要的数据源了。

创建一个ODBC数据源:

1.在控制面板中,建立数据源界面。

2.双击“ODBCDateSource”进入ODBC数据源管理器。

图1.2ODBC数据源管理器

图1.3创建新数据源

 

图1.4创建Access数据源

1.4ADODate数据库

ADODate控件它与VB固有的Date控件相似。

使用ADODate控件,可以利用ADO快速建立数据绑定控件和数据提供者之间的连接。

设置ADO数据控件的连接字符串(ConnectionString)属性来创建到数据源的连接。

这个属性给出了将要访问的数据库的位置和类型。

在ADO数据控件的属性窗口中单击ConnectionString属性旁的浏览按钮就可以设置这个属性。

Ø使用数据连接文件

这个选项指定一个连接到数据源的自定义的连接字符串,单击旁边的“浏览”按钮可以选择一个连接文件。

Ø使用ODBC数据源名称

这个选项允许使用一个系统定义好的数据源名称(DSN)来作为连接字符串。

可以在组合框中的数据源列表中进行选择,使用旁边的“添加”按钮可以添加或修改DSN。

Ø使用连接字符串

这个选项定义一个到数据源的连接字符串。

单击“生成”按钮弹出“数据连接属性”对话框,在这个对话框中可以指定提供者的名称、连接以及其它的要求信息。

单击浏览按钮调出属性页窗口,设置连接字符串属性。

ADODate控件的功能:

✧连接本地数据库。

✧打开指定的数据库表,或定义基于SQL查询,存储过程数据库表中的视图记录集合。

✧添加新记录或显示在绑定的控件中数据库来更新数据库。

1.4.1ADOData控件的属性

ADOData控件的属性如下:

✓Align属性

✓BOFAction和EOFAction属性

✓ConnectionString属性

✓RecordSource属性

1.4.2ADOData控件的方法

方法UpdateControls方法(ADO数据控件),Refresh方法,SetFocus方法,Drag方法,Move方法,ZOrder方法,ShowWhatsThis方法。

  事件EndOfRecordSet(ConnectionEvent)方法(ADO),FetchComplet(RecordsetEvent)方法(ADO),FetchProgress(RecordsetEvent)方法(ADO),WillChangeField和FieldChangeComplete(ConnectionEvent)方法(ADO),WillChangeRecord和RecordChangeComplete(ConnectionEvent)方法(ADO),WillMove和MoveComplete(ConnectionEvent)方法(ADO)。

1.4.3ADOData控件的事件

ADOData控件的事件:

✧WillMove和MoveComplete事件

✧WillChangeField和FieldChangeComplete事件

✧WillChangeRecord和RecordChangeComplete事件

1.5DataCombo控件

DataCombo控件是以一个下拉列表框的形式提供给用户。

它可以和一个具体的数据库中的表、表中的某些项或一段SQL语句相联系,从而在下拉列表框中显示出具体的数据。

Windows窗体ComboBox控件用于在下拉组合框中显示数据。

默认情况下,ComboBox控件分两个部分显示:

顶部是一个允许用户键入列表项的文本框。

第二部分是一个列表框,它显示一个项列表,用户可从中选择一项。

有关组合框的其他样式的更多信息,请参见何时使用Windows窗体ComboBox而非ListBox。

SelectedIndex属性返回一个整数值,该值与选择的列表项相对应。

通过在代码中更改SelectedIndex值,可以编程方式更改选择项;列表中的相应项将出现在组合框的文本框部分。

如果未选择任何项,则SelectedIndex值为-1。

如果选择列表中的第一项,则SelectedIndex值为0。

SelectedItem属性与SelectedIndex类似,但它返回项本身,通常是一个字符串值。

Count属性反映列表的项数,由于SelectedIndex是从零开始的,所以Count属性的值通常比SelectedIndex的最大可能值大一。

若要在ComboBox控件中添加或删除项,请使用Add、Insert、Clear或Remove方法。

或者,可以在设计器中使用Items属性向列表添加项。

1.5.1DataCombo控件的属性

DataCombo控件的属性如下:

◆DateSource属性

◆DateField属性

◆RowSource属性

◆ListField属性

其操作步骤如下:

1)在家庭理财管理信息系统中添加一个窗体Form1.

2)在该窗体中添加一个ADO控件Adodc1,其属性设置如下:

ConnectionString=”Stud”

RecordSource=”Select*fromstudent”

UserName=”sa”

DTPicker1.Value=MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row,1)

Combo1.Text=MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row,2)

1.5.2DataCombo控件的方法

DataCombo控件的常用方法为Refresh方法,该方法用于刷新DataCombo控件的数据源。

ComboBox控件使用dataProvider定义下拉列表的值。

dataProvider的类型可以是Array、XML或者是ICollectionView。

这里monthCombo的dataProvider是一个包含十二个月份的Array。

我们看到,monthCombo的TextInput区域和下拉列表中都显示的是Array中每个Object的label字段的值。

1.5.3ataCombo控件的事件

DataCombo控件的事件如下:

1)LostFocus事件

2)Click事件

 

第2章数据库的设计

2.1概述

数据库设计(DatabaseDesign)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求。

这篇专题主要针对数据库的设计原则与开发技巧进行了扼要的总结。

2.1.1系统功能

系统功能如下:

1)家庭成员可以根据帐户信息来进行取款记录

2)对定期存储、取款、日常收支等功能进行理财分析并用图标表示

3)对家庭工资还可以进行定期查询、删除、更新等操作功能

2.1.2设计技巧

设计技巧如下:

1)公共模块

2)VB菜单设计方法

3)统一的数据编辑设计方法

4)图像数据的存取方法

5)事件编程技术

6)数据库基础知识

2.2系统结构

本系统对应的工程,它包含的所有文件及结构如下:

 

图2.1系统结构组成

图2.2家庭理财管理系统.vbp工程

2.3数据表的设计

数据库表设计原则:

1)不应该针对整个系统进行数据库设计,而应该根据系统架构中的组件划分,针对每个组件所处理的业务进行组件单元的数据库设计;不同组件间所对应的数据库表之间的关联应尽可能减少,如果不同组件间的表需要外键关联也尽量不要创建外键关联,而只是记录关联表的一个主键,确保组件对应的表之间的独立性,为系统或表结构的重构提供可能性。

2)采用领域模型驱动的方式和自顶向下的思路进行数据库设计,首先分析系统业务,根据职责定义对象。

对象要符合封装的特性,确保与职责相关的数据项被定义在一个对象之内,这些数据项能够完整描述该职责,不会出现职责描述缺失。

并且一个对象有且只有一项职责,如果一个对象要负责两个或两个以上的职责,应进行分拆。

3)根据建立的领域模型进行数据库表的映射,此时应参考数据库设计第二范式:

一个表中的所有非关键字属性都依赖于整个关键字。

关键字可以是一个属性,也可以是多个属性的集合,不论那种方式,都应确保关键字能够保证唯一性。

在确定关键字时,应保证关键字不会参与业务且不会出现更新异常,这时,最优解决方案为采用一个自增数值型属性或一个随机字符串作为表的关键字。

4)由于第一点所述的领域模型驱动的方式设计数据库表结构,领域模型中的每一个对象只有一项职责,所以对象中的数据项不存在传递依赖,所以,这种思路的数据库表结构设计从一开始即满足第三范式:

一个表应满足第二范式,且属性间不存在传递依赖。

5)同样,由于对象职责的单一性以及对象之间的关系反映的是业务逻辑之间的关系,所以在领域模型中的对象存在主对象和从对象之分,从对象是从1-N或N-N的角度进一步主对象的业务逻辑,所以从对象及对象关系映射为的表及表关联关系不存在删除和插入异常。

6)在映射后得出的数据库表结构中,应再根据第四范式进行进一步修改,确保不存在多值依赖。

这时,应根据反向工程的思路反馈给领域模型。

如果表结构中存在多值依赖,则证明领域模型中的对象具有至少两个以上的职责,应根据第一条进行设计修正。

第四范式:

一个表如果满足BCNF,不应存在多值依赖。

7)在经过分析后确认所有的表都满足二、三、四范式的情况下,表和表之间的关联尽量采用弱关联以便于对表字段和表结构的调整和重构。

并且,我认为数据库中的表是用来持久化一个对象实例在特定时间及特定条件下的状态的,只是一个存储介质,所以,表和表之间也不应用强关联来表述业务(数据间的一致性),这一职责应由系统的逻辑层来保证,这种方式也确保了系统对于不正确数据(脏数据)的兼容性。

当然,从整个系统的角度来说我们还是要尽最大努力确保系统不会产生脏数据,单从另一个角度来说,脏数据的产生在一定程度上也是不可避免的,我们也要保证系统对这种情况的容错性。

这是一个折中的方案。

8)应针对所有表的主键和外键建立索引,有针对性的(针对一些大数据量和常用检索方式)建立组合属性的索引,提高检索效率。

虽然建立索引会消耗部分系统资源,但比较起在检索时搜索整张表中的数据尤其时表中的数据量较大时所带来的性能影响,以及无索引时的排序操作所带来的性能影响,这种方式仍然是值得提倡的。

9)尽量少采用存储过程,目前已经有很多技术可以替代存储过程的功能如“对象/关系映射”等,将数据一致性的保证放在数据库中,无论对于版本控制、开发和部署、以及数据库的迁移都会带来很大的影响。

但不可否认,存储过程具有性能上的优势,所以,当系统可使用的硬件不会得到提升而性能又是非常重要的质量属性时,可经过平衡考虑选用存储过程。

10)当处理表间的关联约束所付出的代价(常常是使用性上的代价)超过了保证不会出现修改、删除、更改异常所付出的代价,并且数据冗余也不是主要的问题时,表设计可以不符合四个范式。

四个范式确保了不会出现异常,但也可能由此导致过于纯洁的设计,使得表结构难于使用,所以在设计时需要进行综合判断,但首先确保符合四个范式,然后再进行精化修正是刚刚进入数据库设计领域时可以采用的最好办法。

11)设计出的表要具有较好的使用性,主要体现在查询时是否需要关联多张表且还需使用复杂的SQL技巧。

12)设计出的表要尽可能减少数据冗余,确保数据的准确性,有效的控制冗余有助于提高数据库的性能。

在系统中设计了数据库KSD,其中包含如下数据表:

例如:

活期存取表,包括账号、日期、姓名等。

图2.3活期存取表

2.3.1用户及家庭成员信息表的建立

利用Access基础知识,对表建立,例如:

数据类型、字段名称。

图2.4家庭成员表的建立

 

第3章家庭管理系统

3.1系统实现

本章介绍家庭管理系统组成部分的实现方法。

对于窗体、给出执行功能、设计界面、主要对象和方法。

以及公共模块和系统的最终运行。

本工程中引用了一些ActiveX控件等,在设计时选择“工程”菜单中“引用”选项,从引用列表中选择如下选项:

图3.1引用——家庭管理信息系统.vbp工程

再选择“工程”菜单中的“部件”选项,从控件列表中选中如下选项:

图3.2部件

若找不到,则单击“浏览”按钮,出现“添加ActiveX控件”对话框,选择Windows\System文件夹中的MsComctl.ocx文件即可。

3.1.1公共模块

本工程中包含一个公共模块即Module1.Bas模块,其中包含一些全局变量和过程(被本工程中的一些窗体所调用),代码如下:

PublicStr_pathasString

PublicCnameAsString'登陆时传用户名

PublicCdate1AsString'传日期(收入情况列表)

PublicCdate2AsString'传日期

PublicAAAsBoolean'判断是否选择月份

PublicFunctionexesql(ByValsqlAsString)AsADODB.Recordset’用于执行用户给定的SELECT语句,返回对应的记录集:

DimStokens()AsString'数组'

OnErrorGoToexecutesql_error

Stokens=Split(Sql)'将sql语句按关键字保存在数组中

SetCnn=NewADODB.Connection

Cnn.OpenConnectstring

IfInStr("INSERT,DELETE,UPDATE",UCase$(Stokens(0)))Then

Cnn.ExecuteSql

Msgstring=Stokens(0)&"查询成功"

Else

SetRst=NewADODB.Recordset

Rst.OpenTrim$(Sql),Cnn,adOpenKeyset,adLockOptimistic'重服务器中提取符合要求的记录集

SetExeCutesql=Rst

Msgstring="查询到"&Rst.RecordCount&"条记录"

EndIf

executesql_exit:

SetRst=Nothing'释放记录集

SetCnn=Nothing'释放连接语句

ExitFunction

executesql_error:

Msgstring="查询错误:

"&Err.Description

Resumeexecutesql_exit

EndFunction

3.1.2登陆界面

首先,客户先进入登陆界面,输入用户名和密码。

输入期限最多三次。

若输入错误或密码记错,会有信息框提示;若不是本人,可以先注册然后登陆;同时也可以修改密码等。

图3.3登陆界面

3.1.3窗体

窗体用于接受用户名/口令输入,不断是否为合法。

如果是合法用户,释放该窗体并启动main窗体;否则释放该窗体不启动main窗体。

Main窗体是一个多文档窗体,该窗体中包含对象和功能如图所示。

该窗体上设计了六个菜单及其子菜单如图所示。

从工具栏中截取了十一个彩色图标,它代表着窗体的各个功能,它包括:

项目管理、添加家庭成员、修改密码、数据的保存系统、日常收入和支出、活期存款、理财汇报、查询、退出功能。

下面分节详细介绍。

图3.4家庭理财管理信息系统——多文档窗体

3.1.4定期存款

图3.5定期存款

3.1.5日常收支

图3.6日常支出

图3.7日常收入

3.1.6查询

图3.8查询

3.1.7活期存取

图3.9活期存款——取款记录

图3.10活期存款——帐户信息

3.1.8借还帐户

图3.11借入款

图3.12借出款

3.1.9银行储蓄

图3.13银行储蓄——项目管理

3.1.10分析

图3.14理财报告

第4章模块与表功能的实现

4.1操作查询的实现

操作查询分为选择查询、更新查询、生成表查询、删除查询,本论文中涉及到一线数据库的操作查询。

例如:

删除、选择、添加、修改等。

在Access中也介绍了兑现关于查询,比如添加新老客户,添加家庭成员,必须涉及到Access的操作。

在项目管理中,我们对收支项目的统计,进行每月的操作。

添加或删除记录,对管理家庭经济由很大帮助,同时也便于管理。

就好比会计,经济管理中的经济利润和会计利润的区别。

更加大了精确性和效率性。

4.2数据的输入与导入

在登陆系统界面时,点击菜单系统设置时,会出现数据的导入和导出。

点击导出数据会激发mnuout_Click()事件;

同样点击导入数据会激发mnuinput_Click()事件。

例如:

设计代码如下:

PrivateFunctionFileGo()

OnErrorGoTo1

DimA,BasString

CommonDialog1.ShowSave

A=CommonDialog1.FileName

B=App.Path&"\"&"database\MoneyMIS.mdb"

Setfess=CreateObject("Scripting.FileSystemObject")

Fs.CopyFileB,A

Skybox"数据库导出成功!

",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

 

第5章菜单设计与访问VB数据库

5.1概述

VisualBasic提供了设计菜单的工具,但是这个工具不在工具箱中。

在设计菜单的时候,需要在主窗口栏中选择“工具”菜单项,从其下拉菜单中选择“菜单编辑器”窗口,如图,利用这个“菜单编辑器”能够对所要设计的菜单的每一项的属性进

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1