1、VB课程设计吉林工程技术师范学院VB课程设计设计题目: 企业工资管理系统 专 业: 计算机科学与技术 班 级: 学 号: 学生姓名: 指导教师: 高汝仪 张松岩 2011年6月信息工程学院目 录摘 要 I第一章 系统分析 1第二章 系统实现 5第三章 系统调试 8第四章 使用说明 11总 结 13附 录1、源代码 142、参考资料 25摘 要传统事业单位的工资管理方法以及传统工资管理存在很多的缺陷与弊端。在事业单位以往的工资录入中,计算、合计等需要通过大量的手工完成,数据量多,处理速度慢,而且极易出错,导致工作效率低。为了解决这一矛盾,利用计算机来进行工资的管理,是十分必要的。程序设计重点论述
2、了工资管理信息系统的组成与每个模块的功能。设计工资管理信息系统主要从模块组成、数据连接、功能实现等方面着手。设计过程主要以上面的分析的重点作为依据。首先进行基础数据的采集,然后进行工资的核算等。在朝这个思想靠近的过程中,在许多小的细节上还存在着很多不足。关键词:管理信息系统,模块组成第一章 系统分析1.1、系统概述纵观各企业工资管理软件、一个好的企业工资管理软件,应具有简单友好的操作界面、安全性好的数据库、分级用户权限管理、强大数据导出及备份功能、联机帮肋文档。本系统着重围绕这几点进行开发设计。基于以上众多问题的分析,和企业管理制度的参考。将系统具体分为系统管理、员工信息设定、工资信息管理、工
3、资结算管理、数据库管理、工具箱、帮助七大模块:系统管理分为操作员登录管理,用户管理,锁定操作画面及退出。操作员登录管理记录用户登录的时间,方便管理员查看。在用户暂时离开时可锁定操作画面,防止非法操作。用户管理分为新建普通用户,新建管理员用户,修改密码三部分。1.2系统功能1、 用户和组管理功能2、 数据的添加、删除、修改功能3、 数据统计功能4、 信息保存功能5、 数据导出功能6、 方便的数据库备份功能7、 提供实用的工具箱1.3 数据流程图具有相应权限的用户在正确登陆后,可以打开并添加新员工的个人档案,添加完成后可以使用数据导出功能,导出数据。数据流图如下图1-1所示:1.4模块图如图:图1
4、-2 系统功能模块图第二章 系统的实现2.1 系统安全及权限的实现为了确保系统的安全,对数据库进行加密处理,采用了用户和组管理,并记录用户登录信息。拥有高级权限的用户,可以创建不同的组,并可将全部或部分权限分配给创建用户。为了实现该功能,系统采用了递归方式,使高一级别的用户可以管理低级用户,最高权限属于管理员。具体描述如下:2.2 登录窗口的实现系统登陆时,要求正确输入用户名和密码。成功登陆后显示如图4-2所示工资管理系统主界面。用户名分为管理员用户和普通用户。如图2-1所示: 图2-1 登录窗口2.3 员工基本档案信息的实现员工基本档案信息管理,在窗体中完成员工基本信息的录入工作。根据提示在
5、该窗体中输入相应的信息,最后单击“保存”按钮,进行信息的保存。如图2-2所示图2-2 员工基本档案信息录入窗口2.4工资的结算 在该窗体中输入相应的信息,完成月工资结算、产量汇总、综合处理具体如图2-3所示:图2-3月工资结算、产量汇总、综合处理 第三章 系统调试性能测试与分析这个阶段的关键任务是通过各种类型的测试及相应的调试,使软件达到预定的的要求,根据分工本人负责整个程序运行以及整个程序调试。3.1、测试环境测试环境为:操作系统:Windows2000及以上数据库系统:Access2000。3.2、系统测试需求分析科技成果管理系统作为信息管理系统应用程序,应具有设计文件所规定的功能,各个功
6、能模块都能完成相应的任务,保证用户所输入数据的正确性和安全性。程序设计及相关功能是否符合要求,只有通过严密的测试才能发现问题,尽可能减少错误的发生。所以,必须对系统进行测试,达到纠错改错的目的。测试方法软件测试主要分静态和动态分析方法,动态法有白盒和黑盒法,本系统主要采用黑盒法进行测试对程序功能进行测试。3.3、系统测试策略说明 整个系统界面窗口的测试项目1、 相关输入或输出命令能否正常打开?2、 页面显示是否正常,读数据库时是否出错?3、 业务流程是否合理,是否适合用户操作? 数据项测试项目1. 能否识别输入数据的类型和长度?2. 异常处理能否保证系统在不正确的操作下运行,能否识别非法数据?
7、3. 数据库在大量的数据输入输出时能否正常运行?4. 数据写入数据库时能否写入到对应的字段?3.4、系统测试方案设计功能测试采用黑盒测试法,数据设计如下:测试报告见系统管理模块测试用例:3.1.1设置操作员、密码、权限设计测试用例,如表(表3.1.1):表4.1.1操作员编号操作员姓名操作员类别用户密码01wlz系统管理员wlz02wanglingzhing普通用户wlz3.1.2设置快捷键用户和登陆密码测试用例设计如下表第一次测试用例(设计两组相同数据)第二次测试用例(两次密码输入不同)用户名用户密码确认密码用户名用户密码确认密码11111111111第一次输入与预期结果一致、第二次不一致与
8、预期结果不一致第四章 使用说明VB程序语言具有许多优秀的特性,用其设计应用程序时有两个基本特点:可视化设计和事件驱动编程。1可视化设计同其他的一些可视化程序开发工具一样,VB具有可视化设计的特点,微软的Word在刚刚进入市场时,同WPS竞争的一个重要的功能砝码就是所见即所得的字处理功能,VB在设计应用程序界面时也可以说是所见即所得.在设计时,头脑中所想象的应用程序界面,完全可以通过键盘鼠标以及徒手画出来,而不是编制大量的代码然后再编译生成,如果需要修改,也是利用键盘鼠标和手画,而底层的一些程序代码由VB自动生成或修改。VB为用户提供大量的界面元素(在VB中称为控件对象),这些控件对象对于熟悉W
9、indows应用程序的用户而言是一点也不陌生,如窗体、菜单、命令按钮、工具按钮、检查框等等,用户只需要利用鼠标、键盘把这些控件对象拖动到适当的位置,设置它们的大小、形状、属性等,就可以设计出所需的应用程序界面。2.事件驱动编程Windows操作系统出现以来,图形化的用户界面和多任务多进程的应用程序要求程序设计不能是单一性的,在使用VB设计应用程序时,必须首先确定应用程序如何同用户进行交互.例如发生鼠标单击、键盘输入等事件时,由用户编写的代码控制这些事件的响应,这就是所谓的事件驱动编程。3实现菜单选项菜单是程序最重要的特性之一,大多数程序都依赖一个定义良好的菜单使程序易于使用和维护,Visual
10、 Basic 也提供了强大的创建菜单功能是程序更加标准。本系统使用 Visual Basic 的菜单编辑器建立菜单或者修改已经存在的菜单,您也可以使用Visual Basic 的Application Wizard 来操作。总结此次课程设计,不尽巩固了所学知识, 而且在这基础上也提高了自己,使我明白需求分析、合理设计数据库,编写代码对软件设计的好坏起了非常重要的作用。由于本身能力的局限性,所以做编写的代码,即使经过反复检查也难免出错所以在本阶段力求使用有限的时间找出尽可能多的错误,力求系统尽量正确。附 录:1 源代码实现功能的部分主要代码:Private Sub Comok_Click()On
11、 Error GoTo DealerrorDim strSql As StringDim strMsg As StringOn Error GoTo DealerrorDim objCn As New Connectionstrcn = CS()objCn.ConnectionString = strcnobjCn.OpenSet objRs = New RecordsetSet objRs.ActiveConnection = objCnobjRs.CursorLocation = adUseClientstrSql = SELECT * FROM 系统用户objRs.Open strSql
12、objRs.ActiveConnection = NothingobjCn.CloseSet objCn = NothingIf Logontimes = 3 Then MsgBox 你已经超过最大登陆次数!退出系统, vbOKOnly + vbCritical, 系统登录 EndElse objRs.MoveFirst objRs.Find 用户名= & txtUserName & If objRs.EOF Then MsgBox 用户名错误!, vbOKOnly + vbCritical, 系统登录 txtUserName.SetFocus txtUserName.Text = Else
13、If objRs!口令 txtPassword Then MsgBox 密码错误!请重新输入!, vbOKOnly + vbCritical, 系统登录 txtPassword.SetFocus txtPassword.Text = Else MsgBox 欢迎使用工资管理系统, vbOKCancel + vbOKOnly, 系统登录 strusername = txtUserName userpassword = txtPassword If CmbStatus = Then MsgBox 请选择登陆身份!, vbOKOnly + vbCritical, 系统登录 CmbStatus.Set
14、Focus Else If CmbStatus.ListIndex = 0 And objRs!admin = True Then UserAdmin = 1 End If If CmbStatus.ListIndex = 0 And objRs!admin = False Then X = MsgBox(你不是管理员,将以普通用户登陆, vbOKCancel + vbOKOnly, 系统登录) End If If X = 2 Then txtUserName.SetFocus txtUserName.Text = txtPassword.Text = Else 添加操作员登陆时间 strSq
15、l = insert into t_login (用户,登录时间) values( & txtUserName & , & Now & ) Set objRs = ExecuteSQL(strSql, strMsg) Unload Me MDIForm1.Show End IfEnd If End IfEnd IfEnd IfLogontimes = Logontimes + 1 登陆次数Exit SubDealerror: msg = 程序执行出错,错误信息如下: & vbCrLf & Err.Description ShowError msgEnd SubDim objRs As Reco
16、rdsetDim i As IntegerDim Logontimes As IntegerPrivate Sub Comcancle_Click()n = MsgBox(你选择了退出系统登陆,退出将不能启动管理系统! & vbCrLf & 是否真的退出?, vbYesNo, 系统验证)If n = vbYes ThenUnload MeEnd IfEnd Sub员工月工资结算代码Dim strSql As String Dim strMsg As String Dim rs As ADODB.Recordset Dim dj1 As Integer Dim dj2 As Integer Di
17、m dj3 As Integer 记件统计 strSql = select * from salary where 工号= & gh & Set rs = ExecuteSQL(strSql, strMsg) If rs.EOF = False Then TextNO.Text = rs.Fields(工号).Value TextNAMe.Text = rs.Fields(姓名).Value Combod.Value = rs.Fields(工作日).Value Textlx(0).Text = rs.Fields(产品类型一).Value dj1 = rs.Fields(单价一).Value
18、 dj2 = rs.Fields(单价二).Value dj3 = rs.Fields(单价三).Value Textlx(1).Text = rs.Fields(产品类型二).Value Textlx(2).Text = rs.Fields(产品类型三).Value rs.Close strSql = select sum(数量一) as 数量一,sum(数量二) as 数量二,sum(数量三) as 数量三,sum(每日汇总) as 每日汇总 from salary group by 工号= & gh & Set rs = ExecuteSQL(strSql, strMsg) Textsl
19、(0).Text = rs.Fields(数量一).Value Textsl(1).Text = rs.Fields(数量二).Value Textsl(2).Text = rs.Fields(数量三).Value Textzj(0).Text = Val(Textsl(0).Text) * dj1 Textzj(1).Text = Val(Textsl(1).Text) * dj2 Textzj(2).Text = Val(Textsl(2).Text) * dj3 Txtgj.Text = Val(Textzj(0).Text) + Val(Textzj(1).Text) + Val(Te
20、xtzj(2).Text) 奖金 福利结算 rs.Close strSql = select * from Sar_other where 工号= & TextNO & Set rs = ExecuteSQL(strSql, strMsg) Text(0).Text = rs.Fields(奖金).Value Text(1).Text = rs.Fields(津贴).Value Text(2).Text = rs.Fields(福利).Value Text(3).Text = rs.Fields(其他项目).Value 扣除 rs.Close strSql = select * from ko
21、uchu where 工号= & TextNO & Set rs = ExecuteSQL(strSql, strMsg) Tet(0).Text = rs.Fields(住宿费) Tet(1).Text = rs.Fields(火食费) Tet(2).Text = rs.Fields(公基金) Tet(3).Text = rs.Fields(垃圾处理费) Tet(4).Text = rs.Fields(医疗保险费) Tet(5).Text = rs.Fields(其它) Else MsgBox 数据库还没有此工号的工资记录, vbOKOnly + vbExclamation, 提示 ChkB
22、oxJJ.Value = False ChkBoxCP.Value = False ChkBoxCR.Value = False ChkBoxJS.Value = False Exit Sub End If 记时统计 rs.Close strSql = select sum(加班时间) as 加班总时间,sum(工作小时数) as 工作小时数,sum(记时汇总) as 记时汇总 from timekaoqin group by 工号= & gh & Set rs = ExecuteSQL(strSql, strMsg) Txt(0).Text = rs.Fields(工作小时数).Value
23、Txt(2).Text = rs.Fields(加班总时间).Value Textgj.Text = rs.Fields(记时汇总).Value strSql = select 单价,加班单价 from timekaoqin where 工号= & gh & Set rs = ExecuteSQL(strSql, strMsg) Txt(1).Text = rs.Fields(单价).Value Txt(3).Text = rs.Fields(加班单价).Value Text5.Text = Val(Txtgj.Text) + Val(Textgj.Text) + Val(Text(0).Te
24、xt) _ + Val(Text(1).Text) + Val(Text(2).Text) + Val(Text(3).Text) Text3.Text = Val(Txtgj.Text) - Val(Tet(0).Text) - Val(Tet(1).Text) _ - Val(Tet(2).Text) - Val(Tet(3).Text) - Val(Tet(4).Text) - Val(Tet(5).Text)End Sub2 参考文献1.Visual Basic.NET程序设计北京:清华大学出版社,2008 刘炳文2.Visual Basic.NET程序设计基础教程北京:机械工业出版社,2006汤庸3.Visual Basic.NET全程指南北京:电子工业出版社,2008朱本城,王凤林
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1