资源描述
精品文档就在这里
-------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有--------------
--------------------------------------------------------------------------------------------------------------------------------------------
目 录
第一章 绪 论 2
1.1课题简介 2
1.2开发的意义 2
第二章 开发环境及实现技术 3
2.1开发环境 3
2.2开发工具简介 3
第三章 系统设计 5
3.1概要设计 5
3.1.1概要设计阶段的主要任务 5
3.1.2概要设计的过程 5
3.1.3概要设计的原则 5
3.1.4系统功能分析 5
3.2详细设计 6
3.2.1详细设计的任务 6
3.2.2详细设计的方法 7
第四章 数据库设计 9
4.1数据库Access简介 9
4.2数据库需求分析 10
4.3表的详细结构说明 11
4.4测试用例 14
第五章 详细设计 16
5.1系统登录模块的设计与实现 16
5.2主界面的设计与实现 20
5.3工资管理设计与实现 22
5.4固定资产管理的设计与实现 27
5.5流动资产管理的设计与实现 31
5.6用户管理的设计与实现 32
第六章 系统使用说明 44
6.1使用说明 44
6.2运行环境 44
结束语 52
致 谢 52
参考文献 53
第一章 绪 论
1.1课题简介
财务管理系统是每一个单位管理财务收入和支出的不可缺少的一个管理信息系统,它的内容对企业财务计划,财务控制,财务监督,财务运用等方面都起着巨大的作用。如何发挥财务管理的作用关系到一个企业的命脉.ﻫ
财务管理的工作对象是资金运动,只要有资金运动就离不开财务管理。ﻫ 一个企业 的生产经营活动无外乎供、产、销三个环节,这个过程始终贯穿着资金运动,只是在各个环 节上资金的表现形态不同罢了。在供应阶段资金由货币形态转变为材料形态,生产阶段由材 料形态变为产品形态,在销售阶段由产品形态又回到货币形态。从这里可以看出,财务管理 贯穿于企业的各项工作之中,财务工作与其它管理工作是密不可分的.〖BP)〗从企业目前 的实际工 作来看,普遍存在两个误区:一种认为财务管理就是管钱,只要管住钱就可万事大吉,重资 金,轻核算。上面谈到,资金在生产经营过程中分别有着不同的表现形式,“钱”只是这个 过程的起点和终点,大量的管理工作都蕴含在过程之中.因此,只有加强内部核算,才能真 正做到节支降耗,否则,“钱”是管不住的.另一种认为财务管理就是管财务部门,把财务 部门与其他管理部门割裂开来,财务管理的触角不能延伸到各项管理工作之中.财务管理就 成为无本之木,其作用得不到发挥,形成经营和生产“两张皮”.
因此,开发这样一套管理软件成为很有必要的事情,对于我们即将计算机专业毕业的学员来说,也是一次将计算机应用于现实管理的一次很有意义的实践活动。
1.2开发的意义
计算机已经成为我们学习和工作的得力助手,使用其可方便的管理企事业财务
今天,计算机正在各行各业发挥着巨大的作用,它以其快速准确性弥补人类的先天不足,能够让计算机参与人们日常的财务管理事业,是一种时代发展的必然要求,也是一个社会国家进步的体现。况且现在建行已经建起了个人网上银行,本系统为个人理财系统的到来做了先期工作,比如计算机的财务管理模式的建立.
ﻬ第二章 开发环境及实现技术
2.1开发环境
硬件系统
硬件平台
CPU
Intel P4 1。5G
主板
Intel 850芯片组的GA—8TX—C
内存
2×128M的三星Rambus内存
硬盘
Seagate Barracuda 7200。7 80G
显卡
Unika 小妖G9800
显示器
美格770PF,17寸纯平显示器
软件环境
操作系统
Microsoft WindowsXP简体中文专业版+SP1
办公软件
Microsoft Office 2003
显卡驱动
nVIDIA ForceWare驱动56.72版For Win2000/XP
软件系统:
Visual basic 6.0中文版、Access数据库。
2.2开发工具简介
Visual Basic 6。0的特点
Visual Basic 6。0是Micrsoft公司出品的开发工具,Visual Basic是一种可视化的,面向对象的Windows开发语言,它具有易用,通用和开发效率高的特点。随着微软对它不断地改进以及计算机本身性能的提高,使得Visual Basic越来越适合一般的应用程序开发。正如Bill Gate所说,世界上绝大多数的Windows应用程序是用Visual Basic编写的.在众多的开发工具中,我们为什么要选择Visual Basic6。0呢?因为VB具有众多其它开发工具所没有的优点!具体介绍如下:
u 开发的高效
u 语言的高效
u 编译的高效
u 执行的高效
u 维护的高效
基于以上理由,我们毫不忧郁的选择了VB6。0做为我们的开发工具!!
微软公司的Visual basic6。0连接数据库的主要方式以下几种方式:一是:用data控件进行数据库链接 ,二是利用adodc(ADO Data Control)进行数据库链接 。三是: 利用DataEnvironment进行数据库链接.四是利用ADO(ActiveX Data Objects)进行编程
三种数据库访问对象,是Microsoft数据库访问技术的一个主要发展方向,ADO将OLE DB封装在一个数据对象中,使得VB程序中以方便地实现对数据库的访问.
ﻬ第三章 系统设计
3.1概要设计
3.1.1概要设计阶段的主要任务
①系统分析员审理客户的需求状况并依据用户需求撰写需求分析报告以及软件描述工具.选择分解功能与划分模块的设计原则,例如模块划分独立性原则,信息隐蔽原则等。
3.1.2概要设计的过程
在概要设计阶段应着重解决实现需求分析的程序模块设计问题。这包括考虑如何把被开发的软件系统划分成若干个模块,并决定各模块的接口,即模块间的相互关系,以及模块之间的传递的信息.
1. 管理员选项模块(增加管理员,修改管理员密码,注销管理员,退出系统)
2. 工资管理模块(增加考勤记录,修改考勤记录,查询考勤记录,计算工资,
增加工资记录,查询工资记录,修改工资记录,删除工资记录)
3. 固定资产模块(增加固定资产记录,修改固定资产记录,查询固定资产记录,删除固定资产记录)
4. 流动资产模块(增加报销记录,查询报销记录,导出报销记录)
主界面
管理员选项
工资管理
固定资产管理
禁用快捷键
流动资产管理
登录
根据以上分析,该系统考虑将整个系统分解成如图3—1模块结构图:
3.1.3 概要设计的原则
并且在系统的开发过程中,我尽量注意模块的高内聚、低耦合,使得系统的整体性能提高,并且也有利于投入使用后的系统维护。
3.1.4系统功能分析
本财务管理系统主要针对企事业单位的财务管理提供方便.1管理员模块功能:
提供对管理员的密码,权限,增删设置。2 固定资产模块管理:提供对固定资产记录的增删管理.3流动资产管理:提供对流动资产,报销管理。
3.2详细设计
3.2.1详细设计的任务
详细设计必须是无歧义地描述过程地细节,详细设计主要决定每个模块内部的具体算法。
3.2.2详细设计的方法
修改已建的数据库
数据库的修改分为:添加、编辑和删除记录。这三种操作均可由Visual Basic 创建的程序来完成,下面的章节将详细描述实现的具体方法.
实现数据库之间的联系
数据库之间的关系指明两个库之间共享一个共同的关键字值。一个连接是指一种虚拟的表,这种表是在当用户要求从相互关联的各个不同的表中获取信息时建立的,关键字段用于在相互连接的不同表中查找匹配的记录.一个更高级的连接形式称为自连接。这种连接是指一个表被连接到它自己的一个字段,或在不同的纪录中由重复数据的组合字段。数据库中有三种不同类型的关键字:主关键字、组合关键字和外关键字。在表中使用的关键字类型用于描述库表示什么以及在数据库中如何与其它的库建立关系.
第 四 章 数据库的设计
4.1 数据库Access简介
使用 Microsoft Access,可以在单一的数据库文件中管理所有的信息.在这个文件中,用户可以将自己的数据分别保存在各自独立的存储空间中,这些空间称作表;可以使用联机窗体来查看、添加及更新表中的数据;使用查询来查找并检索所要的数据;也可以使用报表以特定的版面布置来分析及打印数据.
如果要保存数据,请为每一种类型的信息创建一个表.如果要从查询、窗体或报表中的多个表中将数据合并在一起,就要定义各个表之间的关系.ﻫ 如果要搜索并检索符合指定条件的数据,包括来自多个表中的数据,就要创建查询.查询的同时也可以更新或删除多条记录,并对数据执行内嵌或自定义的计算.ﻫ 如果要简单地直接在某个表中查看、输入及更改数据,请创建一个窗体.在打开一个窗体时,Microsoft Access 将从一个或多个表中检索数据,并使用用户在“窗体向导”选择的版面布局或所创建的版面布局,将窗体显示在屏幕上.
如果要分析数据或将数据以特定的方式打印出来,请创建一个报表。例如,可以打印一份将数据分组并计算数据总和的报表,也可以打印另一份带有各种数据格式的打印邮件标签的报表。
4.2数据库需求分析
本系统使用的是ODBC数据源,使用程序前,在【控制面板】-【管理工具】-【数据源(ODBC)】中添加本程序目录下的finance。mdb文件作为Microsoft Access数据源,用户数据源名称必须命名为:Finance
4.3表的详细结构说明
员工职务表的详细信息:
员工工资结算表的详细结构说明:
固定资产管理项目表的详细结构为:
报销类型表的详细结构为:
管理员登陆表的详细结构为:
员工工作状态表
员工工作状态表详细设计:
4.4测试用例
Y
N
开始
输入登录密码
是否正确
主界面
第五章 详细设计
5。1系统登录模块的设计与实现
登陆界面:
登陆界面源代码分析:
Private Sub Command1_Click()
Dim sql As String
Dim rs As New ADODB。Recordset
If User.Text = "” Then ’保证用户名和密码都填写
MsgBox ”用户名不能为空!”, vbCritical
User。SetFocus
Exit Sub
End If
If Pass.Text = ”” Then
MsgBox ”密码不能为空!", vbCritical
Pass。SetFocus
Exit Sub
End If
If DbHandle。DbConnection Then
sql = ”TBL_ADMIN” ’用SQL语句判断是否是合法管理员
rs。CursorType = adOpenDynamic
rs。LockType = adLockOptimistic
rs.Filter = ”ADMIN_ID='” & User。Text & ”' AND ADMIN_PASSWORD=’" & Pass。Text & ”’”
rs.Open sql, DbFinance
If DbHandle。resultcount(rs) <〉 1 Then ’不存在管理员记录提示错误信息并且退出系统
MsgBox ”用户名或密码错误!”, vbExclamation
rs。Close
Set rs = Nothing
DbHandle。DbClose
End
End If
DbHandle。DbClose
MainForm.Show '登陆成功显示主窗体
Unload Me
Else
MsgBox ”数据库错误!", vbExclamation
DbHandle。DbClose
End
End If
End Sub
主界面
界面包括的控件有标签、文本框、命令按控件的属性设置界面:
主界面源代码分析:
Option Explicit
Private Sub AdminOption_Click()
sb1。Panels(1).Text = ”管理员选项" ’鼠标在”管理员选项"菜单使状态条的提示文字显示
End Sub
Private Sub Check1_Click()
If Check1。Value Then ’启用或者禁止快捷按钮所在的Frame
Frame1.Enabled = False
Frame2.Enabled = False
Frame3.Enabled = False
Frame4。Enabled = False
Else
Frame1。Enabled = True
Frame2。Enabled = True
Frame3。Enabled = True
Frame4。Enabled = True
End If
End Sub
Private Sub Command1_Click()
AddAdmin。Show 1 ’显示增加管理员窗体
End Sub
Private Sub Command10_Click()
FixPay.Show 1 ’显示增加修改月工资窗体
End Sub
Private Sub Command11_Click()
DelPay。Show 1 ’显示删除月工资窗体
End Sub
Private Sub Command12_Click()
QueryPay.Show 1 ’显示查询月工资窗体
End Sub
Private Sub Command13_Click()
AddFixed。Show 1 ’显示增加固定资产窗体
End Sub
Private Sub Command14_Click()
fixFixed。Show 1 ’显示修改固定资产窗体
End Sub
Private Sub Command15_Click()
QueryFixed。Show 1 ’显示查询固定资产窗体
End Sub
Private Sub Command16_Click()
DelFixed.Show 1 ’显示删除固定资产窗体
End Sub
Private Sub Command17_Click()
AddCur。Show 1 '显示增加报销记录窗体
End Sub
Private Sub Command18_Click()
QueryCur.Show 1 '显示查询报销记录窗体
End Sub
Private Sub Command19_Click()
ExportCur。Show 1 ’显示导出报销记录窗体
End Sub
Private Sub Command2_Click()
AdminPass。Show 1 ’显示修改管理员密码窗体
End Sub
Private Sub Command3_Click()
Me.Hide
AdminLogin。User.Text = ”” ’登录窗体信息清空
AdminLogin。Pass.Text = ””
AdminLogin。Show ’显示注销(登录)窗体
End Sub
Private Sub Command4_Click()
End ’退出管理系统
End Sub
Private Sub Command5_Click()
WorkEvent.Show 1 '显示添加考勤记录窗体
End Sub
Private Sub Command6_Click()
ChangeEvent.Show 1 '显示修改考勤记录窗体
End Sub
Private Sub Command7_Click()
QueryEvent。Show 1 '显示查询考勤记录窗体
End Sub
Private Sub Command8_Click()
CalcPay。Show 1 '显示计算工资窗体
End Sub
Private Sub Command9_Click()
AddPay。Show 1 '显示增加月工资记录窗体
End Sub
Private Sub CurAsset_Click()
sb1。Panels(1).Text = ”流动资产管理" '鼠标在"流动资产管理”菜单使状态条的提示文字显示
End Sub
Private Sub FixedAsset_Click()
sb1。Panels(1)。Text = ”固定资产管理” ’显示增加管理员窗体
End Sub
Private Sub Form_Load()
Me。Left = (Screen。Width - Me.ScaleWidth) / 2 ’初始化窗体居中显示
Me。Top = (Screen。Height — Me。ScaleHeight) / 2
Me。Height = 8010
Me。Width = 9945
End Sub
Private Sub Form_Unload(Cancel As Integer)
On Error Resume Next '当主窗体关闭时关闭数据库连接
DbHandle。DbClose
End
End Sub
Private Sub menu_AddAdmin_Click()
AddAdmin.Show 1 ’显示增加管理员窗体
End Sub
Private Sub menu_AddCur_Click()
AddCur。Show 1 ’显示增加报销记录窗体
End Sub
Private Sub menu_AddEvent_Click()
WorkEvent。Show 1 ’显示增加考勤记录窗体
End Sub
Private Sub menu_AddFixed_Click()
AddFixed。Show 1 ’显示修改考勤记录窗体
End Sub
Private Sub menu_AddPay_Click()
AddPay.Show 1 ’显示增加月工资窗体
End Sub
Private Sub menu_AdminPass_Click()
AdminPass.Show 1 ’显示修改管理员密码窗体
End Sub
Private Sub menu_CalcPay_Click()
CalcPay。Show 1 '显示计算工资窗体
End Sub
Private Sub menu_ChangeEvent_Click()
ChangeEvent.Show 1 ’显示修改考勤记录窗体
End Sub
Private Sub menu_ChangeFixed_Click()
fixFixed.Show 1 '显示修改固定资产窗体
End Sub
Private Sub menu_ChangePay_Click()
FixPay。Show 1 '显示修改月工资窗体
End Sub
Private Sub menu_DelFixed_Click()
DelFixed。Show 1 ’显示删除固定资产窗体
End Sub
Private Sub menu_DelPay_Click()
DelPay。Show 1 ’显示删除月工资窗体
End Sub
Private Sub menu_Exit_Click()
End ’退出管理系统
End Sub
Private Sub menu_ExportCur_Click()
ExportCur。Show 1 '显示导出报销记录窗体
End Sub
Private Sub menu_Logout_Click()
Me.Hide
AdminLogin.User。Text = ”" ’登录窗体信息清空
AdminLogin。Pass。Text = "”
AdminLogin。Show '显示注销(登录)窗体
End Sub
Private Sub menu_MonthBln_Click()
MonthBln.Show 1 ’显示月底结算窗体
End Sub
Private Sub menu_QueryCur_Click()
QueryCur。Show 1 ’显示查询报销记录窗体
End Sub
Private Sub menu_QueryEvent_Click()
QueryEvent.Show 1 ’显示查询考勤记录窗体
End Sub
Private Sub menu_QueryFixed_Click()
QueryFixed。Show 1 '显示查询固定资产窗体
End Sub
Private Sub menu_QueryPay_Click()
QueryPay。Show 1 ’显示查询月工资窗体
End Sub
Private Sub PayMan_Click()
sb1。Panels(1).Text = ”工资管理” '鼠标在”工资管理"菜单使状态条的提示文字显示
End Sub
5.3 工资管理的设计与实现
工资管理界面:
工资计算代码:
Private Sub Command1_Click()
Dim i As Long
Dim USER_ID As String
Dim USER_NAME As String
Dim USER_PART As String
Dim USER_ROLE As String
Dim MONEY As String
CommDlg。Flags = cdlOFNOverwritePrompt ’设置保存对话框有覆盖提示
CommDlg。Filter = ”文本文件|*.txt" '设置保存对话框的显示文件类型
CommDlg。ShowSave '显示保存对话框
If CommDlg.FileName <〉 "” Then '如果用户点确定按钮就写导出文件
Open CommDlg。FileName For Output As #1
Print #1, ”员工ID号”; Tab; ”员工姓名”; Tab; "所属部门”; Tab; "职位名称"; Tab; "本月工资"
For i = 1 To MSFlexGrid1.Rows — 1 ’从MSFlexGrid1中循环把记录信息写进文件中
MSFlexGrid1.Row = i
MSFlexGrid1。Col = 0
USER_ID = MSFlexGrid1。Text
MSFlexGrid1.Row = i
MSFlexGrid1。Col = 1
USER_NAME = MSFlexGrid1.Text
MSFlexGrid1.Row = i
MSFlexGrid1。Col = 2
USER_PART = MSFlexGrid1.Text
MSFlexGrid1。Row = i
MSFlexGrid1。Col = 3
USER_ROLE = MSFlexGrid1。Text
MSFlexGrid1。Row = i
MSFlexGrid1.Col = 4
MONEY = MSFlexGrid1.Text
Print #1, USER_ID; Tab; USER_NAME; Tab; USER_PART; Tab; USER_ROLE; Tab; MONEY
Next i
Close #1 ’关闭文件
End If
End Sub
Private Sub Command2_Click()
Unload Me '返回主窗体
End Sub
Private Sub Form_Load()
Dim sql As String
Dim rs As New ADODB。Recordset
Dim work As New ADODB.Recordset ’考勤记录结果集
Dim i As Integer ’循环变量
Dim userid As String
Dim MONEY As Long
Dim temp As Long '考勤影响到的工资
Dim resultcount As Long '返回记录数
Me。Left = (Screen。Width — Me.ScaleWidth) / 2 ’窗体居中显示
Me.Top = (Screen。Height — Me.ScaleHeight) / 2
If DbHandle.DbConnection Then ’选定用户表中所有记录以及关联的角色和部门记录
sql = ”SELECT USER_ID,USER_NAME,PART_NAME,ROLE_NAME,ROLE_MONEY FROM TBL_USER,TBL_ROLE,TBL_PART WHERE USER_PART=PART_ID AND USER_ROLE=ROLE_ID”
rs.CursorType = adOpenDynamic
rs.LockType = adLockOptimistic
rs。Open sql, DbFinance
resultcount = DbHandle.resultcount(rs)
Cls '设置电子表格的列头
MSFlexGrid1。Cols = 5
MSFlexGrid1.Rows = resultcount + 1
MSFlexGrid1.Row = 0
MSFlexGrid1.Col = 0
MSFlexGrid1.Text = "员工ID号”
MSFlexGrid1.Col = 1
MSFlexGrid1。Text = "员工姓名”
MSFlexGrid1。Col = 2
MSFlexGrid1。Text = ”所属部门”
MSFlexGrid1。Col = 3
MSFlexGrid1。Text = "职位名称"
MSFlexGrid1。Col = 4
MSFlexGrid1。Text = ”本月工资”
For i = 0 To 4
MSFlexGrid1。ColWidth(i) = MSFlexGrid1。Width / 5 — 5 '平均分配每个列的宽
Next i
For i = 1 To resultcount '循环将职工信息和基本工资放入电子表格
userid = rs(”USER_ID”)
MSFlexGrid1。Row = i
MSFlexGrid1.Col = 0
MSFlexGrid1.Text = userid
MSFlexGrid1。Col = 1
MSFlexGrid1.Text = rs(”USER_NAME”)
MSFlexGrid1.Col = 2
MSFlexGrid1。Text = rs("PART_NAME")
MSFlexGrid1.Col = 3
MSFlexGrid1。Text = rs("ROLE_NAME”)
MONEY = rs("ROLE_MONEY”)
MSFlexGrid1。Col = 4
MSFlexGrid1。Text = Str(MONEY)
rs.MoveNext
Next i
rs。Close
Set rs = Nothing
For i = 1 To resultcount ’通过考勤表计算考勤信息影响的工资
MSFlexGrid1。Row = i
MSFlexGrid1。Col = 0
userid = MSFlexGrid1.Text
MSFlexGrid1。Col = 4
MONEY = Val(MSFlexGrid1。Text)
sql = ”SELECT WORK_TIME,TYPE_MARK,TYPE_ID FROM TBL_WORK,TBL_TYPE WHERE WORK_TYPE=TYPE_ID AND WORK_ID='” & userid & "'”
work。CursorType = adOpenDynamic
work.LockType = adLockOptimistic
work。Open sql, DbFinance '选取每一行职工ID的本月考勤信息
Do While work。EOF = False
Select Case work("TYPE_ID") ’通过考勤类别计算考勤时间和工资关系
Case 1
temp = work("WORK_TIME”) * 1
Case 2
temp = work(”WORK_TIME") * 2
Case 3
temp = work("WORK_TIME") * 10
Case 4
temp = work(”WORK_TIME”) * 20
End Select
If work(”TYPE_MARK") Then ’当考勤类别是加班出差等要向基本工资中加工资
MONEY = MONEY + temp
Else
MONEY = MONEY — temp ’当考勤类别是迟到早退等要向基本工资中减工资
End If
work。MoveNext
Loop
MSFlexGrid1。Text = Str(MONEY) '重新设置每个人的月工资
work。Close
Next i
DbHandle.DbClose
Else ’打开数据库失败错误退出
MsgBox ”数据库错误!”, vbExclamation
DbHandle。DbClose
End
End If
End Sub
5。4 固定资产管理的设计与实现
添加固定资产代码:
Private Sub Command1_Click()
Dim sql As String
Dim rs As New ADODB。Recordset
If Text1.Text = ”” Then ’判
展开阅读全文