1、 家庭理财管理系统的开发 76 2020年5月29日 文档仅供参考 引 言 现代家庭与传统家庭在理财方面出现了许多不同,两相比较,现代家庭理财难度更大,其中还潜藏了多种理财危机。其一是收入虽增,支出更大。其二是投资虽广,风险也高。传统家庭理财方式多半以储蓄为主,财富累积速度虽慢,但风险也低,至少不会把本金赔掉。而现在投资理财工具多样化,但若未具备专业知识而盲目理财,其结果不但白忙一场,还可能因此赔掉老本。其三是子女虽少,花费更多。现代家庭普遍响应计划生育,只有一个孩子,但由于父母十分重视孩子的养育,花在生活上、学习教育上的费用比以前多得多。其四
2、是借钱虽易,利息巨增。 中国居民的储蓄存款超过十万亿人民币。特别是像北京、上海、深圳等发达城市,居民的可支配收入正在逐步达到中等发达国家水平。家庭如何管理财产,如何安排理财投资成为了一个很现实的问题。 家庭理财系统以家庭理财的概念、理论、本质为基础,剖析了家庭的经济结构,并对理财市场和理财产品进行了分析,在此基础上提出了家庭理财的模式及如何进行家庭理财规划。 家庭理财系统应是现代家庭管理收入和支出的不可缺少的一个信息管理系统,它应该能为理财者提供简单、方便、实用和全面的理财服务。 随着信息技术的提高,计算机强大的功能已被我们所见识,信息化在社会生活中已无处不在。 作为计算机应用的一部分
3、使用计算机对家庭财务进行管理,具有着手工管理所无法比拟的优点,如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高家庭财务管理的效率,也是家庭理财的科学化、正规化管理,与先进科学技术接轨的重要条件。 1绪论 1.1 研究背景 随着社会经济的发展,一方面人们生活水平和收入均越来越高,另一方面物价飞涨却给人们带来了不小的压力。怎样让手头的财富保值甚至增值已逐渐进入了广大普通家庭。<中国统计年鉴>的资料表明,近 来,中国物价上涨率平均达到了6.5%,这一数字意味着,如果不用于投资理财,我们手头的现金每年就会减少6.5%。从20世纪90年代国内第一
4、家银行推出个人理财产品,到当前几乎所有的银行都拥有了个人理财部,有些甚至引进了更高层次的贵宾理财。这就要求有更好的家庭理财软件。 而现代家庭和个人的理财观念也有所增强,生活节奏的加快,和信息化的快速发展,人们已不满足于手写脑记的记账方式。再者,计算机已在家庭中得到了普及,人们的生活已越来越依赖于计算机了。在这样的大环境下,一个操作简单,使用方便,界面大方,环境要求不高的家庭理财系统已迫切成为社会的需要。 家庭理财是随着个人理财而发展起来的,而个人理财在西方国家已经有近百年的研究历程,中国金融机构参与的个人理财发展才区区十年,真正意义上的家庭理财甚至能够说是刚刚起步。而且就当前的经济与社会现
5、状和压力来看,社会对家庭理财系统的需求是供不应求的。 十几年来,计算机硬件和软件技术高速发展,为家庭理财管理提供了前所未有的高效手段。家庭理财管理将由传统的手写脑记逐渐转向经过计算机对财务进行管理。虽然中国家庭理财在这方面作了大量的工作,先后在财务,物资,人力资源等管理部门引进或者开发了一些系统,提高了工作效率和管理水平。可是总体看来,中国家庭理财的信息化管理依然处于家庭理财基础业务运行层面的局部。国外的软件技术比较先进,信息化管理水平也比较高,在家庭理财的管理方面很早就引进了计算机软件进行,使得管理起来方便,出错率小,很大程度上避免了家庭理财的流失。 1.2 课题目标 现代家庭的理财观
6、念进一步提高,理财手段变得更加丰富。随着电脑的普及和信息化的发展,人们应用电脑进行理财的观念增强,故开发一个家庭理财软件已经成为社会和家庭的需求。本系统把家庭理财的各种常见手段(如家庭日常收支管理、银行账户往来管理、财务统计等)借助计算机得以实现。使其对家庭的收支活动等能更好地进行管理,也使得理财变得方便,灵活,全面,使其能满足普通家庭的一般财务记录、管理和统计功能。 2 系统分析 2.1 需求分析 2.1.1 功能需求分析 本系统需实现四大功能,分别是:系统管理,基本信息管理,日常财务管理,数据统计管理。 其中系统管理包括:系统用户管理,用户密码修改,家庭成员管理,退出。
7、 基本信息管理包括:银行信息管理,银行账户管理,收入类型管理,支出类型管理。 日常财务管理包括:日常收支管理,银行往来管理。 数据统计管理包括:日常收支统计,银行交易统计,资产统计。 而每一个单元模块又都能实现相应的查询、添加、修改、删除功能。 本系统中,根据用户所拥有的不同权限行使不同的功能。有下列2种用户类型: (l) Admin系统管理员:能够修改自己的密码;能够查看并添加、修改、删除其它用户信息;能够进行系统所有功能的操作。 (2) 普通用户:除了不能查看、添加、修改、删除其它用户信息外,普通用户能够进行系统其它所有功能的操作,包括修改自己的密码。 2.1.2 性
8、能需求分析 (1)易用性需求 系统采用窗体显示模式,逻辑清晰,功能全面,简单易用,系统界面尽量符合用户实际操作的要求。数据输入可直接在数据输入框中输入。在一些固定的选项处,系统利用组合框提供可供选项的项目,从而提高输入的速度和准确性,易用性。 (2)安全性需求 该系统涉及到一个家庭的财务信息,安全性比较重要,系统应有密码设置,防止家庭财务信息外泄或不想被人知道的信息外露。可在每次进入系统前要求输入用户名和密码。当用户错误输入三次则强制退出。 另外,系统用户分为两种,系统管理员和普通用户。系统管理员能够进行系统的全部功能操作,普通用户不能操作某些功能,如系统用户管理。这样进一步提高了系
9、统的安全性。 2.2可行性研究 2.2.1 经济和市场可行性分析 随着经济的快速发展,人们的理财意识普遍提高。一方面,人们对家庭和个人的各方面收入和消费有想要进行统计和分析的愿望,以便更方便地进行理财管理和分析计划,对财产做出合理分配。另一方面,各种理财方式层出不穷,如何把这些理财方式统一起来对人们的理财做出贡献,已成为现代家庭和个人的迫切需求。在物质基础上,计算机的应用开始普及,人们购置计算机和使用计算机的能力增强,人均计算机拥有量将快速提高。这些条件说明人们有购买一个家庭理财软件的需求。在一个可接受的价格范围内,人们将购买这种软件,因此具有市场潜力。经过以上分析,开发一个通用型家庭理
10、财软件具有在经济和市场上的可行性。 2.2.2 技术可行性分析 一个通用型家庭理财软件,能够在项目规模适合大多数家庭的基础上进行开发。 (1)操作系统:Windows XP 现今,人们一般使用的操作系统有Linux操作系统和Windows操作系统。Linux操作系统虽也为图形化界面,但其普及程度远不如Windows操作系统。而且Linux操作系统不能很好的与众多软件兼容,应用起来存在困难,而 Windows操作系统使用方便,可与多种软件兼容。Windows XP是Windows系列里广泛普遍使用的操作系统之一。经过以上比较,决定使用 Windows XP操作系统。 (2)系统开发工具
11、VB6.0 因为本系统是针对家庭应用的,不会牵涉到过多跨平台的情况,而且要求界面简单大方,因此选择了一个图形界面较丰富,成本较低的开发工具VB6.0。 (3)后台数据库:Access 考虑到系统本身的实际应用情况,本人选取Access作为后台数据库。第一,本系统是针对家庭个人用户使用,因此数据量不大。第二,家庭理财管理系统是一款针对家庭的应用软件,而很少有家庭电脑上愿意安装既昂贵又耗内外存空间资源的Oracle 和 SQL Server等商用数据库软件。而Access作为Microsoft Office的一个小小的组件,对于家庭定位的软件是再好不过的了。 家庭理财系统在上述的应用
12、环境中,系统的实现在技术上具有可行性。 2.3 系统详细分析 系统详细分析是在现有资料的基础上深入地调查研究,进行功能分析,最终确定系统的逻辑功能结构。系统分析能够采用业务流程图和数据流程图的方式来表示系统分析的结果[1]。 2.3.1 系统业务流程图 家庭理财管理系统的用户信息业务流程图如图2.1所示。 系统 管理员 用户信息 系统用户管理 用户 新密码 用户密码修改 系统用户信息 图2.1 用户信息业务流程图 家庭理财管理系统的业务流程图如图2.2所示。 银行账户 日常收支信息 日常收支统计 日常收支统计表 银行
13、信息 银行账户管理 家庭成员 收入类型 支出类型 用户 银行信息 银行信息管理 家庭成员信息 家庭成员管理 收入类型信息 支出类型信息 收入类型管理 支出类型管理 日常收支管理 日常明细 用户 银行往来管理 银行往来 银行交易统计 银行交易统计表 资产统计 资产统计表 图2.2 家庭理财管理系统业务流程图 2.3.2 系统数据流图 数据流图是组织中信息运动的抽象,是管理信息系统逻辑模型的主要形式。这个模型不涉及硬件、软件、数据结构与文件组织,它与系统的物理描述无关,只是用一
14、种图形及与此相关的注释来表示系统的逻辑功能。图形描述简明,清晰,不涉及技术细节,所描述的内容是面向用户的。因此数据流图是系统分析人员与用户进行交流的有效手段,也是系统设计的主要依据之一【2】。 数据流图是在对业务流程图进行分析的基础上,从系统的科学性、管理的合理性、实际运行的可行性角度出发,将信息处理功能和彼此之间的联系自顶向下、逐层分解,从逻辑上精确的描述新系统具有的数据加工功能、数据输入、数据输出、数据存储及数据来源和去向。数据流图具有抽象性和概括性两种特性[2] 。 2.3.2.1 系统关联图 关联图给出系统的一个总概念,明确了外部项和整个系统的界面。 家庭理财管理系统的数据来源
15、是用户,去处是用户。用户向系统输入基本信息、日常财务信息、成员用户信息,经过系统的处理,得到财务数据统计。由此,得到系统的关联图。 此系统的关联图如图2.3 所示。 用户 F3成员、用户信息务 家庭理财 管理系统 F1基本信息 F2日常财务 F6数据统计报表 用户 图2.3 家庭理财管理系统关联图 2.3.2.2 系统顶层图 根据需求定义,此系统必须具备系统管理、基本信息管理、日常财务管理、数据统计四个功能。如系统顶层图2.4所示。 D3 P2 系统管理 用户 D2 成员信息 日常财务 用户 P4 数据统计 F4理财统计 F2成员
16、信息 P1 基本信息 管理 P3 日常财务 管理 D1 基本数据 F1基本信息 F3日常财务流 图2.4 家庭理财管理系统顶层图 2.3.2.3 第一层数据流图 F4 资产统计报告 F2.3家庭成员 用户信息核对 F1.2支出类型 D2.2 家庭成员 用户 P1.2 支出类型 管理 D2.1 用户信息 P4.3 资产统计 P4.2 银行交易 统计 银行交易统计 D4.2 用户 F2.1用户信息 F2.2新密码 P2.3 成员管理 P5 登陆管理 登陆反馈 F1.1 收入类型 P1.1 收入类型 管理
17、 D1.1 收支类型 P1.3 银行信息 管理 D1.2 银行信息 F1.3 银行基本信息 P1.4 银行账户 管理 P3.2 银行往来 管理 D3.2 银行交易 D1.3 银行账户 P3.1 日常收支 管理 D3.1 日常收支 P4.1 日常收支 统计 P2.1 系统用户 D4.1 收支统计 修改密码 P2.2 第一层数据流图应给出系统的所有具体功能,应对顶层图中每个处理模块分层扩展描述,最后得出的便是系统的逻辑模型。根据顶层图和系统的功能模块图,得到如下系统一层数据流图。家庭理财管理系统的第一层数据流图如图2.5所示。
18、图2.5 家庭理财管理系统第一层数据流图 2.4 数据字典 数据字典 DD (Data Dictionary)的作用是对数据流图上每个成分以定义和说明。也就是说,数据流图上所有成分的定义和文字集合是数据字典。数据流图只能结合系统逻辑功能的一个总框架而缺乏详细的具体的内容,数据字典经过对数据流、数据元素、数据结构的描述,对数据流图的各种成分的注解、说明作用,给这些成分赋以实际的内容[5]。 2.4.1 数据存储条目举例 表2-1 家庭成员的数据存储 修改记录: 编写 审核 肖亚梅 肖亚梅 日期 日期 .4.30 .4.30 简要说明:家庭成员信息将被日常收
19、支,银行账户,银行往来,统计等功能模块调用。 数据存储 系统名:家庭理财管理系统 条目名:家庭成员 编号:1 别名:成员 记录数:约20 记录组成: 项名:MemId MemName Sex Birth Mobile Job 近似 长度:2 10 2 50 12 50 (字节) 存储组织:每个成员一条记录 主关键字:MemId 2.4.2 数据流条目举例 数据流 数据流名称:银行基本信息
20、 别名:F1.3 简述:系统用户向系统录入的银行基本信息 来源:系统用户 去向:银行基本信息库 组成:BankId+BankName+BankShort+BankPlace 编写:肖亚梅 日期: -5-1 审核:肖亚梅 日期: -5-1 表2-2 银行基本信息的数据流 数据流 数据流名称:资产统计报告 别名:F4 简述:依据家庭成员的日常收支明细和银行往来、银行账户信息生成的资产统计报告。用户能够利用它查看家庭的资产状况。 来源:资产统计管理 去向:用户 组成:银行总存款+收入总额+支出总额 编写:肖亚梅
21、 日期: -5-1 审核:肖亚梅 日期: -5-1 表2-3 资产统计报告的数据流 表2-4 用户信息的数据流 数据流 数据流名称:用户信息 别名:F2.1 简述:系统登陆用户的基本信息 来源:系统管理员 去向:用户信息库 组成:UserName+UserPwd 编写:肖亚梅 日期: -5-1 审核:肖亚梅 日期: -5-1 数据元素 条目名:家庭成员 别名:Member 名称:成员编号 别名:MemId 类型:字符串 长度:50 名称:员工姓名 别名
22、MemName 类型:字符串 长度:50 名称:性别 别名: Sex 类型:字符串 长度:2 名称:生日 别名: Birth 类型:日期 名称:电话 别名: Mobile 类型: 字符串 长度:12 名称:公司 别名:Job 类型: 字符串 长度:50 编写:肖亚梅 日期: -5-1 审核:肖亚梅 日期: -5-1 2.4.3 数据元素条目举例 表2-5 家庭成员的数据元素 外部项 系统名:家庭理财管理系统
23、 编号:W1 条目名:用户 别名:Users 输入数据流:系统用户编辑 输出数据流:无 组成结构: 名称:用户姓名 别名:UserName 类型:字符串 长度:50 名称:用户密码 别名:UserPwd 类型:字符串 长度:50 简要说明: 本系统的用户分为两类:系统管理员和普通用户 数据库自带两个用户:Admin和User。Admin为系统管理员,能够管理其它用户的信息。User和其它添加的用户属于普通用户,不能查看和修改其它用户的信息。 编写:肖亚梅 日期:
24、 -5-1 审核:肖亚梅 日期: -5-1 2.4.4 外部项条目举例 表2-6 用户的外部项 2.4.5 加工条目举例 表2-7 收入类型的加工 加工 系统名:家庭理财管理系统 编号:P1.1 条目名:收入类型管理 别名:无 输入:收入类型编辑 输出:收入类型库 加工逻辑: 1. 接收收入类型编辑的数据流信息(收入类型名称) 2. 系统自动编号Id 3. 在数据库的收支类型表(Type)里以编
25、号为主键,存入类型名称 4. 填入收支类型表里的Flag值为0 简要说明: 收入类型存储于收支类型表里,并以字段Flag的值加以收入支出的区别,值为0是收入。收入类型是收入日常管理的基础。 编写:肖亚梅 日期: -5-1 审核:肖亚梅 日期: -5-1 3 系统设计 3.1 实施方案设计 本系统针对家庭或个人用户,考虑到开发成本和使用方便性和安全性的问题,因此,该系统设计成基于C/S结构的单用户运行系统。综合考虑以上问题,本系统的配置方案如下: 1. 分布方案 本系统采用客户机/服务器的运行方式,数据集中存储在服务器上。
26、 2. 相关软硬件环境 硬件环境:中央处理器: Inter Atom 1.6GHZ或更高; 内存: 256MB或更高; 磁盘空间 40GB或更高。 软件环境:操作系统:Microsoft Windows XP/ 开发工具:VB6.0 数据库 :Access 3.2 Visual Basic编程环境简介 Visual Basic ,可视化BASIC语言,其简称VB。VB保留了BASIC语言简单易用的特点,可是又扩充了可视化设计的工具,使用它能够轻松设计出界面美观、使用方便和功能强大的应用程序【1】。 3.2.1 Visual Basic功能和特点 VB具有以下基本功能
27、和特点。 (1)面向对象 它把数据和处理这些数据的子程序封装在一起,作为一个整体对象进行处理【1】。 (2)事件驱动 当某个对象发生某个事件后,就会驱动系统去执行预先编写好的、与这一事件相对应的一段程序【1】。 (3)数据库 VB提供了较好的数据库接口,能够访问包括Access、Excel等在内的多种数据库。另外,也能够经过它的ODBC功能实现对后台大型网络数据库的操作【1】。 (4)帮助 经过帮助系统,人们能够系统地学习和使用VB的强有力助手。 3.2.2 Visual Basic访问数据库 VB访问数据库一般有三种途径:第一,经过数据控件访问;第二,经过VB提供的数据
28、库对象访问;第三,经过ODBC接口访问ODBC API函数。 在该系统中,我选择用ADO对象来实现VB对数据库的访问。Microsoft在Visual Basic 6.0以后的版本都集成了ADO。ADO数据对象(Active Data Objects)实际是一种提供访问各种数据类型的链接机制。 3.3 总体设计 3.3.1 总体设计的主要任务 (1) 经过在软件需求分析时撑握的文档,制定最佳方案,用系统流程图,组成系统物理元素清单,系统的进度计划,供日后详细设计时使用。 (2) 确定模块结构,划分功能模块,将软件功能需求分配给所划分的最小单元模块(如食品消费模块、着装消费模块、行车消
29、费模块,家居消费模块等)。确定模块间的联系,确定数据结构、文件结构、数据库模式[5]。 3.3.2 系统功能设计 系统功能模块图如图3.1所示。 系统用户管理 用户密码修改 家庭理财管理系统 家庭成员管理 基本信息管理 银行信息管理 银行账户管理 系统管理 退出 资产统计 数据统计管理 日常收支统计 银行交易统计 收入类型管理 日常财务管理 日常收支理管 银行往来管理 收入类型管理 支出类型管理 日常收支管理 银行往来管理 银行账户管理 日常收支统计 银 交易统计 支出类型管理 图3.1 系统功能模块图 3.4 详细设计 3.4
30、1 详细设计的任务 确定应该怎样具体实现所定义的家庭理财系统。经过此阶段,得出系统的精确描述,使得编码阶段能够直接用VB语言把这个描述翻译成程序。 详细设计是要设计出家庭理财系统程序的”蓝图”,之后开发工程师将根据这个蓝图写出实际的家庭理财系统程序代码,因此,详细设计的结果基本上决定了最终的程序代码的质量。 3.4.2 输入—处理—输出设计 本文采取IPO图(输入—处理—输出图)来描述系统输入/输出过程。IPO图是一张图形化的表格,描述分层图中每一个模块的输入/输出关系、处理内容、本模块的内容数据和模块间的调用关系,是系统设计的重要成果[4]。 日常收支统计的IPO图如图3.2所示
31、 输入:(由日常收支管理模块调用) 增加日常收支 修改日常收支 删除日常收支 处理: 如增加日常收支,则调用增加统计记录模块; 如修改日常收支,则调用修改统计记录模块; 如删除日常收支,则调用删除统计记录模块; 否则,按无效数据处理。 局部数据元素: 系统名: 家庭理财管理系统 制图者:肖亚梅 模块名:日常收支统计 日期: -5-1 上层调用模块: 日常收支管理 IPO图 可调用的下层模块: 增加统计记录 减少统计记录 修改统计记录 输出:
32、由日常收支管理模块接收) 修改后的日常收支数据 无效修改数据 备注: 图3.2 日常收支统计IPO图 财务信息管理的IPO图如图3.3所示。 输入: 日常收支 银行往来 处理: 如修改日常收支,则调用日常收支管理模块; 如修改银行往来,则调用银行往来管理模块; 否则,按无效数据处理。 否则,按无效数据处理。 局部数据元素: 系统名: 家庭理财管理系统 制图者:肖亚梅 模块名:财务信息管理 日期: -5-1 上层
33、调用模块: 无 IPO图 可调用的下层模块: 日常收支管理 银行往来管理 输出:(由财务管理模块接收) 修改后的财务信息数据 无效修改数据 3.3 财务信息管理的IPO图 基本信息管理模块的IPO图如下图3.4所示。 输入:银行信息 银行账户 收入类型 支出类型 处理: 如修改银行信息,则调用银行信息管理模块; 如修改账户信息,则调用银行账户管理模块; 如修改收入类型,则调用收入类型模块; 如修改支出类型,则调用支出类型模块;否则为无效数据处理 否则,按无效数据处理。 局部数据元素:
34、 系统名: 家庭理财管理系统 制图者:肖亚梅 模块名:基本信息管理 日期: -5-1 上层调用模块: 无 IPO图 可调用的下层模块: 银行信息管理 银行账户管理 收入类型管理 支出类型管理 输出:(由基本管理模块接收) 修改后的基本信息数据 无效修改数据 备注: 图3.4 基本信息管理IPO图 数据统计管理模块的IPO图如图3.5所示。 输入:银行信息 日常收支数据 银行交易数据 资产数据 处理:如修改
35、日常收支数据,则调用日常收支统计管理模块; 如修改银行交易数据,则调用银行交易统计模块; 如修改资产数据,则调用资产统计模块; 否则,按无效数据处理。 否则,按无效数据处理。 局部数据元素: 系统名: 家庭理财管理系统 制图者:肖亚梅 模块名:数据统计管理 日期: -5-1 上层调用模块: 无 IPO图 可调用的下层模块: 日常收支统计 银行交易统计 资产统计 输出:(由数据统计管理模块接收) 修改后的数据统计信息 无效修改数据 备注: 图
36、3.5 数据统计IPO图 系统管理模块的IPO图如图3.6所示。 输入: 用户信息 用户新密码 家庭成员信息 处理:如修改用户信息,则调用用户信息管理模块; 如修改用户密码,则调用用户密码修改模块; 如修改家庭成员信息,则调用家庭成员管理模块; 否则,按无效数据处理。 否则,按无效数据处理。 局部数据元素: 系统名: 家庭理财管理系统 制图者:肖亚梅 模块名:系统管理 日期: -5-1 上层调用模块: 无 IPO图 可调用的
37、下层模块: 系统用户管理 用户密码修改 家庭成员管理 输出:(由系统管理模块接收) 修改后的系统信息 无效修改数据 备注: 图3.6 系统管理IPO图 3.5 数据库设计 本系统数据库中包含7个表,即收支类型表Types、银行信息表Banks、成员信息表Members、日常收支信息表InOutList、银行交易信息表BankOper、银行帐号信息表Amount和用户信息表Users。下面分别介绍这些表的结构。 3.5.1 概念结构设计 概念结构设计方法有4种:自顶向下、自底向上、逐步扩张、混合策略。本系统的概念结构设计
38、采用自底向上的策略。 Types TypeIdU TypeName Flag 1. 收支类型表Types包括三个字段:收支类型TypeId、收支名称TypeName、标识Flag。其中,Flag值为0表示收入,值为1表示支出。收支类型Types的实体图如图3.7所示。 图3.7 收支类型的实体图 BankName Banks Bshort Place BankId 2、银行信息Banks表包括4个字段:银行编号BankId、银行名称BankName、简称Bshort、地址Place。银行信息Banks的实体图如图3.8所示。 图3.8 银行信息的实体图 3、
39、家庭成员信息Members表有6个子段:成员编号MemId、成员姓名MemName、性别Sex、生日Birth、工作Job、电话Mobile。成员信息Members的实体图如图3.9所示。 Members Memld MemName Sex Birth Mobile Job 图3.9 家庭成员的实体图 InOutList Id TypeId UseDate Ano UseSum MemId Memos Flag 4、日常收支信息InOutList的实体图如图3.10所示。 图3.10 日常收支的实体图 BankOper Memos F
40、lag Id BId MemId Interest OperDate Ano OperSum Smonth 5、银行交易信息表BankOper的实体图如图3.11所示。 图3.11 银行交易的实体图 Account AccountNo Atype Memos Asum Flag OpenDae MemId BId 6、银行帐号信息表Account的实体图如图3.12所示。 图3.12 银行账户实体图 7、用户信息表Users的实体图如图3.13所示。 Users UserName UserPwd 图3.13 用户实体
41、图 8、系统E-R图如图3.14所示。 1 Banks 属于 n 办理 BankOper 1 操纵 n n 使用 1 n InOutList Types 属于 1 n Account 操作 1 Members 操纵 1 n n 1 n 图3.14 家庭理财管理系统E-R图 3.5.2 逻辑结构设计 关系的逻辑结构一般用关系模式来表示。关系模式是由概念模型转换而来的,即由E-R图转换而来的。此系统的E-R图转换为关系模式如下所示。 Types(TypeId,TypeName,Flag);
42、 InOutList(Id, TypeId, UseDate, Ano, UseSum, MemId, Memos, Flag); Account(AccountNo, AType, Bid, MemId, OpenDate, Flag, ASum, Memos); Banks(BankId, BankName,Bshort, Place); BankOper(Id, Bid, MemId,OperDate, Ano, OperSum, Smonth,Iterect); Members(MemId, MemName, Sex,Birth,Mobile ,Job); 3.5.3
43、物理结构设计 1. 收支类型表Types 表Types用来保存收入类型信息和支出类型信息,结构如表3-1 所示。 表3-1 表Types的结构 编号 字段名称 数据结构 说明 1 Typeld 自动编号 记录编号,主键 2 TypeName 文本,长度50 信息名称 3 Flag 数字/字节 类型标记。0表示收入类型;1表示支出类型 2. 银行信息表Banks 表Banks用来保存银行信息,结构如表3-2 所示。 表3-2 表Banks的结构 编号 字段名称 数据结构 说明 1 Bankld 自动编号 银行编号,主键 2 Ba
44、nkName 文本,长度100 银行名称 3 Bshort 文本,长度50 简称 4 Place 文本,长度200 地点 3. 成员信息表Members 表Members用来保存成员信息,结构如表3-3所示。 表3-3 表Members的结构 编号 字段名称 数据结构 说明 1 Memld 自动编号 记录编号,主键 2 MemName 文本,长度50 姓名 3 Sex 文本,长度10 性别 4 Birth 文本,长度50 生日 5 Mobile 文本,长度50 手术 6 Job 文本,长度100 工作单位
45、 4. 日常收支信息表InOutList 表InOutList用来保存日常收支信息,结构如表3-4所示。 表3-4 表InOutList的结构 编号 字段名称 数据结构 `说明 1 Id 自动编号 记录编号,主键 2 Typeld 数字/长整型 收支类型编号 3 UseDate 日期/时间 收支日期 4 Ano 文本,长度50 帐号 5 UseSum 单精度型 收支金额 6 Memld 数字/长整型 成员编号 7 Memos 文本,长度200 备注信息 8 Flag 数字/字节 类型,0表示收入,1表示支出 5
46、 银行交易信息表BankOper 表BankOper用来保存银行交易信息,结构如表3-5所示。 表3-5 表BankOper的结构 编号 字段名称 数据结构 说明 1 Id 自动编号 记录编号,主键 2 Bld 数字/长整型 银行编号 3 Memld 数字/长整型 成员编号 4 OperDate 日期/时间 交易日期 5 Ano 文本,长度50 帐号 6 OperSum 数字/单精度型 交易金额 7 Smonth 数字/整型 定期存款月份 8 Interest 数字/单精度型 利息 9 Memos 文本,长度1
47、00 备注信息 10 Flag 数字/字节 交易类型,0表示存款,1表示取款,2表示清户 6. 银行帐号信息表Account 表Account用来保存银行帐号信息,结构如表3-6所示。 表3-6 表Account的结构 编号 字段名称 数据结构 说明 1 AccountNo 文本,长度50 记录编号,主键 2 Atype 文本,长度50 帐户类型。包括储蓄、工资、负债和信用卡 3 Bid 数字/长整型 银行编号 4 Memld 数字/长整型 成员编号 5 OpenDate 文本,长度50 开户日期 6 Flag 数字/字
48、节 存款类型,0表示活期,1表示定期 7 Asum 数字/单精度型 帐户金额 8 Memos 文本,长度200 备注信息 7. 用户信息表Users 表Users用来保存系统用户信息,结构如表3-7所示。 表3-7 表Users的结构 编号 字段名称 数据结构 说明 1 UserName 文本,长度50 用户名,主键 2 UserPwd 文本,长度50 密码 8. 表关系 在表的结构表中定义每个表的主键,为了规定各表之间的关系,还需要定义一组关系,如表3-8 所示。 3-8 表关系 主键表 主键字段 相关表 外键字段 Ty
49、pes Typeld InOutList Typeld Members Memld InOutList Memld Account AccountNo InOutList Ano Banks Bankld Account Bid Members Memld Account Memld Banks Bankld BankOper Bid Members Memld BankOper Memld Account AccountNo BankOper Ano 3.6 编码设计 编码是指给各类信息指用一些固定的便于计算机和人识别的符
50、号,如用户编号,收入类型编号等。编码能够根据系统的不同设定不同的编码方式,主要是适合系统,方便识别。本系统的各类编码均采用自动编码方式。 4 系统实施 系统实施是系统开发的最后阶段,主要工作包括:硬件准备、软件准备、数据准备以及编写程序代码。编写程序代码的依据是详细设计阶段得到的模块以及模块的IPO图。本系统采用Visual Basic 6.0和Access 来实现系统的功能。 4.1 系统登录窗体和主界面实现 当系统运行时,首先打开登录窗体,只有有权限的用户才能进入系统。登录成功后,将显示系统主界面。 4.1.1 登录窗体实现 登录窗体的名称为FrmLogin,它的界面布局如






