综合应用软件课程设计报告
题 目: 家庭理财系统
系 部 名 称 :
专 业 名 称 :
班
学
级 :
号 :
学 生 姓 名 :
指 导 教 师 :
时
间 :
一、 课程设计目的
家庭理财系统可以有效地记录和管理家庭的收支,合理规划和支配家庭资金,
是家庭理财的好帮手。它利用计算机技术技术,使家庭理财逐步信息化,从而形
成由家庭成员与计算机共同构成服务于家庭的人机信息财务管理系统。随着计算
机发展,家庭理财系统已经成为很多家庭财务管理的一个重要途径。计算机的最
大优点在于利用它能够高效准确地进行财务信息管理。使用计算机进行信息财务
管理,不仅提高了工作效率,而且大大的提高了其安全性。
二、课程设计内容
设计一个家庭理财管理系统,对家庭的各项经济活动。要基本的查询,输入,
插入,删除信息的功能,所建立的数据库能与程序成功链接,设计出人性化较好
的界面,用户能清楚地知道各部分的功能。
要求:
多窗体界面 20 个以上
数据库中建表 7—12 个
使用菜单、数组(非控件数组)、文件操作、图形操作等知识点;
三、软硬件环境及系统所采用的体系结构
该家庭理财系统是在 windows XP 下完成的,采用 Visual Basic 做为开发工
具,后台数据库可为 SQL Server 2000。
系统采用 c/s(客户/服务器)结构。
四、系统需求分析
系统开发的总体任务是实现各种信息的系统化、规范化和自动化。
家庭理财系统包括基本信息管理,理财管理和数据管理,具体功能如下:
● 基本信息的添加,修改,删除和查询。基本信息包括银行信息,收入类型和
支出分类等内容,此功能为理财管理和数据统计模块提供依据。
● 理财信息的添加,修改,删除和查询。理财信息包括日常收支,银行交易和
银行账户等内容。
● 数据统计模块包括日常收支,银行交易统计和家庭职场统计等功能。
五、系统设计
系统体系结构设计
根据用户需求分析中总结的用户需求设计系统的体系结构,系统的功能模块
如下图所示:
家庭理财管理系统
家
庭
理
财
管
理
数
据
统
计
管
理
系
统
用
户
管
理
支
出
类
型
管
理
日
常
收
支
管
理
银
行
来
往
管
理
银
行
账
户
管
理
日
常
超
值
管
理
银
行
交
易
统
计
家
庭
资
产
统
计
家
庭
成
员
管
理
用
户
信
息
管
理
修
改
自
身
密
码
基
本
信
息
管
理
收
入
类
型
管
理
银
行
系
统
管
理
本系统中,用户管理模块比较简单在系统初始化时有两个默认的用户,系统
管理员为 admin,普通用户为 user,有程序设计院手动添加到数据库中,默认的
密码为 111111。Admin 用户可以创建用户,修改用户信息以及删除用户,普通用
户只能修改自己的用户名和密码。
确定进入系统,可根据用户权限进行操作。
如果需要对普通用户进行管理,则用 admin 用户登录;否则建议是哟个 user
用户登录。如果要创建别的用户,何以在用户管理模块中创建和管理。在创建用
户时,需要输入要创建的用户的户名和密码。Admin 用户还可以修改和删除其他
的普通用户。
在理财模块中可以 日常的收支信息,银行交易信息和银行账户信息进行修
改,添加,删除和查看等操作,日常收支信息包括收支类型,收支日期,账号,
收支金额,备注等内容。在添加日常收支信息时,需要选择收支类型,家庭成员
和账号信息。家庭成员包括在系统用户管理模块。银行交易信息包括银行名称,
交易类型,交易日期,银行账户,交易金额等内容。在添加银行交易信息时,需
要选择银行名称,账号和操作信息。银行账号信息包括账号名称,账户类型,存
款类型,开户银行,开户日期,开户金额,开户人等信息。在添加银行信息时 ,
需要选择账户类型,开户银行和开户等信息。
在数据统计模块中,可以对日常收支,银行交易和家提供职场等信息进行统
计。日常收支信息包括收支分类和手指金额等信息;银行交易信息包括银行账号,
交易金额和说得利息等信息。家庭资产统计包括银行总存款,现金总额,收入总
额和支出总额等信息。
数据设计 E-R 图
生日
性别
姓名
用户
开
户
手机
工 作
单位
银行
账
号
开户人
银行
金额
利
息
开
户
日
期
日
期
类
型
账
户
收支记录
收 支
总额
收支
类型
收
支
存取
在工程中,需要为每一个表创建一个类模块,将对此表的所有数据库操作封装到
类里,类的成员变量与对应的表中的字段名相同。
在这个工程中,各个类的函数说代表的基本含义相似,操作也相似,具体执
行的数据就不同了。
大致每个类中的函数如下:
(1) init 函数 初始化成员变量
(2) delete 函数,删除指定的基本信息记录。
(3) getinfo 读取指定的基本信息记录。
(4) in_db 判断指定的基本信息名称是否已经在数据库当中
(5) insert 插入新的基本记录
(6) updata 修改指定的基本信息记录
六、系统的实施
本系统的流程图如下所示:
开始
重试
否
用户登陆
成功
读 取 用 户 类
失败
是
失 败 超 过
三次
退出系统
用户管理模块
家庭理财管理模
管理自己的用户信息
基本信息管理
○1 管理自己的用户信息
○2 管理普通用户的信息
理财系统管理
数据统计管理
使用 vb 做出各个菜单的界面,并添加完整的程序,是只正常的运行。
登录窗体的属性:
对象名
Lable
Lable2
txtuser
txtpwd
Cmd_ok
Cmd_cancle
变量声明
属性值
属性
caption 用户名
Caption 密码
Text
空
Text
空
Password *
Caption 确定
caption 取消
登录窗体的申明如下:
Public passwordkey as string
Public namekey as string
Public try_times as integer
Namekey 用于保存用户名。Passwordkey 用于保存密码, try_times 用于记录尝
试登录的次数。
Cmd_ok_Click 过程
用户单击“确定”按钮触发 Cmd_ok_Click 事件,进行身份验证,策划那个徐运
行如下:
1 判断是否输入用户名和密码,如果没有输入,则返回提示用户输入。
2 将输入的用户名和密码复制到变量 namekey 和 passwordkey 中,便于处理。
3 调用 myusers.in_db()函数,判断当前变量是否存在,如不存在,则返回,要求
用户重新输入,同时将计数变量 try_times 加 1.
4 如果 try_times 大于三次,则退出系统
5 如果通过密码验证,则将当前用户的 ixnxi 保存到 curuser 中,一遍以后的操作
中使用。
6 关闭登录窗体。
设计主界面
主窗体是工程的启动对象,在系统菜单中选择“工程”/“属性”,打开属性窗口
的设置启动对象,选择“工具”菜单项的“菜单编辑器”对菜单内容进行编辑。
设计过程中主要用到的技术:
(1)使用的数据库设计是 SQL Server 2000+ODBC+ADO 控制,
'连接本地数据库,获得连接 ODBC 的相关数据
sqlstr = "Provider = Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data
App.Path & "\mdb\local.mdb;Mode=ReadWrite|Share Deny None;Persist
Source =" & _
Security Info=False"
LocalCnn.Open sqlstr
'获得数据
With ini
.Open "select * from 初始化", LocalCnn, adOpenStatic, adLockReadOnly,
MyDSN = .Fields("DSN").Value
UID = .Fields("UID").Value
PWD = .Fields("PWD").Value
.Close
'所连接的 ODBC 对象
'用户名
'用户密码
End With
LocalCnn.Close
'连接 ODBC
sqlstr = "DSN=" & Trim(MyDSN) & ";UID=" & Trim(UID) & ";PWD=" &
'关闭本地连接
-1
Trim(PWD) & ";"
RemoteCnn.Open sqlstr
On Error GoTo 0
Exit Sub
Err:
MsgBox "打开数据库错误!"
(2)不同级别的用户拥有不同的权限
用户的权限控制
If PowerType = 1 Then
Me.SSTab1.TabVisible(1) = False End IfEnd Su
(3)使用了 SSTab、ADO、DataGrid、DTPicker 等高级控件
。
'填充人员框
rsdb.Open "select * from Family", RemoteCnn, adOpenStatic, adLockReadOnly, -1
If rsdb.RecordCount > 0 Then
If Not rsdb.BOF Then rsdb.MoveFirst
For i = 1 To rsdb.RecordCount
Me.Combo3.AddItem rsdb.Fields("FamilyName").Value
Me.Combo7.AddItem rsdb.Fields("FamilyName").Value
If Not rsdb.EOF Then rsdb.MoveNext
Next i
显示当前年月
Me.Label1.Caption = Year(Now) & "年" & Month(Now) & "月"
Me.Label2.Caption = Year(Now) & "年" & Month(Now) & "月"
'设定时间范围
data1 = Year(Now) & "-" & Month(Now)
data_begin = DateValue(data1 & "-1")
data_begin1 = DateValue(data1 & "-1")
data1 = Year(Now) & "-" & Month(Now) + 1
If Val(Month(Now)) = 12 Then
data1 = Year(Now) + 1 & "-1"
End If
data_end = DateValue(data1 & "-1")
data_end1 = DateValue(data1 & "-1")
(4)实现了 ODBC+ADO 控制。如下: