




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘 要学校工资管理系统是针对学校工资管理业务进行计算机处理而开发的应用软件。该系统由系统维护、输入、查询、修改、统计等子模块组成,功能基本涵盖普了学校工资管理业务范围。学校应用本系统后,可以有效的提高工资管理水平。本文从市场调查、需求分析、开发平台选择、系统模块建立、数据库设计、功能模块编程实现及软件测试等方面阐述了本应用系统的设计过程。为便于说明,文中绘制了系统模块图,数据流程图,用例图,类图和部分界面图和主要的源程序代码清单。 关键词:学校工资管理系统维护数据汇总管理系统软件开发VB第一章需求分析1.问题与背景在我国,管理信息系统是计算机应用最广泛的领域之一。随着我国经济建设突飞猛进,管理科学化与管理手段的现代化已经提到非常重要的地位。企、事业单位为了提高自身的管理水平和竞争能力,纷纷投入人力物力,开发适合本单位需求的管理信息系统。中小企业与行政事业单位建立的管理信息系统尤如雨后春笋,一个新的开发和管理信息系统的热潮正在掀起, 为此我计划设计:工资管理系统。它可以大大减少人力,使人们摆脱了原有系统的局限性,只要在电脑上轻轻地点几下就可以完成查询、输入、修改、输出等功能。非计算机专业的人员也可以熟练地进行操作。对于大部分企业来说,员工的工资数据变化都不大。使用手工管理工资时,需要抄写大量重复的数据。使用这种手工方式对工资进行管理有许多不便,因此有必要开发一种工资管理系统以方便地管理员工的工资信息,提高管理的 效率,使企业员工工资实现信息化管理。因此,这个工资管理系统便应运而生了。利用本系统,人们可以方便地查看职工的基本信息和工资情况,也可以组合查询某系、某部、某处的基本信息和工资情况。高效的完成了原来需要很复杂才能完成的手续。这将会给学校的会计人员带来了极大的方便.2.解决方案 根据实际需要,建立一个完善的计算机教工工资管理系统,改变原来落后的管理方式,这个系统已达到减少工作量以及人员的数量,提高工作效率和速度的目的.为实现此目的提出以下目标:1 技术可行性 使用现有的技术来实现这个系统,即通过可视化窗口Visual Basic 6.0来做系统的前台并利用其提供的数据控件来连接到数据库,从而实现整系统的功能。2 经济可行性 该系统的经济效益要远大于它的开发成本。3操作可行性 基本的教工信息的录入、查询、更新、删除;工资信息的设置、查询;专项数据的修改;注册新用户、管理员密码的修改等都能满足用户的需求。第二章 可行性分析2.1 经济可行性分析经济可行性 该系统的经济效益要远大于它的开发成本。主要是对项目的经济效益进行评价,一方面是支出的费用,其中包括设备购置费,软件开发费,管理和维护费,人员工资和培训费等。另一方面是取得的收益中可以用钱来衡量的那部分(收益的另一部分难以用钱来表示)。2.2 技术可行性分析技术上的可行性分析主要分析现有技术条件能否顺利完成开发工作,软硬件配置能否满足开发者需要等,这一特点非常适合计算机的特点,发挥计算机的数据处理速度快,准确率高的优势,现代计算机硬件和软件技术的飞速发展,为系统的建设提供了技术条件。由于对企业工资管理系统这一类的企业财务系统进行开发已有一定的时期,有很多成功的实例,技术基础也已经非常雄厚,因而技术上的准备应该不成问题。2.3 社会可行性分析社会可行性有时也称为操作可行性,主要论证新系统在企业或机构开发和运行的可能性以及运行后可能一起的对企业或机构的影响,即组织内外是否具备接受和使用新系统的条件。在当前信息技术飞速发展的大环境下,计算机技术和软件技术的更新使人们完全有可能也有能力采用这样先进的管理技术。在某种意义上,信息与科技在现代化建设中显现出越来越重要的地位。管理方面的信息化与科学化,已成为现代化生活水平步入高台阶的重要标志。好的管理系统对提高人们的生活效益是极为有益的。2.4管理可行性分析主要是管理人员对开发信息系统是否支持,现有管理制度和方法是否科学,规章制度是否齐全,原始数据是否正确等,教职工工资管理系统比较完善的规章制度和管理方法为系统的建设提供了保障。操作可行性 基本的教工信息的录入、查询、更新、删除;工资信息的设置、查询;专项数据的修改;注册新用户、管理员密码的修改等都能满足用户的需求。 2.4 系统优势1可以方便对教工信息进行录入、查询、修改、删除;2只需一到二名管理员即可操作系统,节省大量人力;3可以迅速查到所需要的教工信息;4可以方便注册新用户和修改密码;5. 可以方便对专项数据进行修改。第三章 详细设计 .系统功能模块:.数据流图:0层DFD一层DFD二层DFD加工1.0二层DFD加工2.0分解二层DFD加工3.0的分解.数据字典:数据项: 数据项名:工号别名:GH简述:所有职工的编号类型:文本取值范围及含义:系部内编号数据项名:姓名别名:XM简述:所有职工的姓名类型:文本数据项名:部门号别名: BM简述:职工所属的部门类型:数字取值范围及含义: 具体的部门名称 数据项名:职位别名:job 简述:职工所在该部门的具体职位类型:数字取值范围及含义: 具体的职位名称 数据存储: 文件名:部门信息表别名: 部门表简述: 存放部门基本信息组成:部门号+部门名+描述信息组织方式:索引文件,以部门号为关键字查询要求: 要求能够立即查询文件名:职位信息表别名: 职称表简述: 存放员工和相应的补贴组成:职位+姓名+补贴组织方式:索引文件,以职位为关键字查询要求: 要求能够立即查询文件名: 奖罚信息表别名: 工资奖罚信息表简述: 存放职工工资奖罚信息组成:工号+姓名+阶级+记录人员+记录时间+记录组织方式:索引文件,以工号为关键字查询要求: 要求能够立即查询数据流: 数据流名:职工基本信息别名: 无简述: 职工的各项属性信息来源: 各系部去向: 加工1.1“职工信息的输入并整理存储”组成: 工号姓名性别所属系部职位数据流名:出勤工资,奖金,扣款清单别名: 无简述: 人事处的对职工出勤信息的整理结果来源: 人事处去向: 加工2.1“职工工资信息生成”组成: 出勤工资+奖金+扣款清单数据流名:职工工资信息别名: 无简述: 生成的职工工资信息来源: 加工2.1去向: 加工2.2“财务处职工工资信息整理发送”组成: 工号+姓名+基本工资+原始奖金+缺勤金+实际工资数据流名:职工工资条别名: 无简述: 针对系部的工资条来源: 加工2.2去向: 各系部组成: 工号+姓名+基本工资+原始奖金+缺勤金+实际工资.类图:.用例图.主要数据表:各部门表:DeptInfo部门编号部门名称描述4财务部5人事部6行政部9系部职位表:DutyType职务职务名称补贴0无01项目经理10002经理20003总经理30004总裁4000512500职工信息表:EmployeeInfo员工编号员工姓名性别身份证籍贯户口所在地婚姻状况出生年月民族政治面貌文化程度所在部门编号固定电话手机 电子邮件现在居住地在职状况职务职称工龄工资级别33钱小二男121990-7-11922145456r女aertgedrtgsertgeetrgergy未婚2005-7-26满族团员大专6tdyiked7334555张三男12夺标已婚1989-1-1汉族44564131136李四女546已婚1989-1-1本科5651011447王五女231离异2010-5-236465712002奖惩信息表:RewardInfo员工编号奖罚类别记录人员记录时间备注5-1收到发货2012-5-281211905-6-5331李四2012-5-2922super1221905-6-513zhang2000-1-1556362005-7-11工资信息表:WageInfo员工编号员工姓名所在部门编号基本工资岗位工资公积金奖金补贴工龄工资职称工资保险费罚金个人所得税应发工资应扣工资实发工资231sad25006001000200030020004243130724240632sdf280060010000560100020003992960699226133钱小二91200600100300200040200200060643409063434456r61200400100030004501000200011506050145046005村5800800003000102000100706.54810806.540036要6000000000000656341200000000000007二7000000000000854jkdsa250060002002000020000525350052529755.主要功能代码及界面:1.)用户登录定义重试次数Public counter As Integer窗体装载事件Private Sub Form_Load() 初始化重试次数 counter = 0End Sub单击确定按钮Private Sub cmdOK_Click() 定义user变量,用于存储用户名 Dim User As String 给user赋值 User = Trim(txtUser.Text) 定义pwd变量,用于存储密码 Dim pwd As String 给密码赋值 pwd = Trim(txtPasswd.Text) 没有输入用户名 If Trim(User) = Then MsgBox 请输入用户名, vbInformation, 信息提示 txtUser.SetFocus Exit Sub End If 判断用户是否存在 If Not objPasswd.IsExistUser(User) Then counter = counter + 1 If counter 3 Then MsgBox 用户名不存在,请重新输入!, vbOKOnly + vbInformation, _ 用户名错误 txtUser.Text = txtPasswd.Text = txtUser.SetFocus Exit Sub Else MsgBox 重试次数已到,不能再输入用户名和密码,即将退出系统!, _ vbOKOnly + vbExclamation, 用户名错误 DBDisconnect End Exit Sub End If End If 判断密码是否正确 objPasswd.GetInfo (User) If objPasswd.Passwd pwd Then counter = counter + 1 If counter 3 Then MsgBox 用户或密码错误,请重新输入!, vbOKOnly + vbInformation, _ 密码错误 txtUser.Text = txtPasswd.Text = txtUser.SetFocus Exit Sub Else MsgBox 重试次数已到,不能再输入用户名和密码,即将退出系统!, _ vbOKOnly + vbExclamation, 密码错误 DBDisconnect End Exit Sub End If End If 登录成功,将当前用户的信息保存在objCurPasswd中 objCurPasswd.User = objPasswd.User objCurPasswd.UserType = objPasswd.UserType 关闭自己 Unload Me frmMain.Show 当重新登录时用到 frmMain.Enabled = TrueEnd Sub单击退出按钮Private Sub cmdExit_Click() DBDisconnect EndEnd Sub.)用户信息窗体装载事件Private Sub Form_Load() 设置ADO控件ADOBC的连接字符串 Dim tmpRecordSource As String 添加状态时的属性设置 Dim SQLStmt As String 所在部门 SQLStmt = SELECT * FROM DeptInfo Addcbo cboDept, SQLStmt, 1 在职状态 SQLStmt = SELECT * FROM MissionType Addcbo cboMissionStatus, SQLStmt, 1 职务 SQLStmt = SELECT * FROM DutyType Addcbo cboDuty, SQLStmt, 1 职称 SQLStmt = SELECT * FROM PostType Addcbo cboPost, SQLStmt, 1 工资级别 SQLStmt = SELECT * FROM LevelType Addcbo cboLevel, SQLStmt, 1End SubPrivate Sub Form_Activate() If Not IsAdd Then cboDept.Text = frmEmpManage.adoEmployeeInfo.Recordset.Fields(2).Value cboMissionStatus.Text = frmEmpManage.adoEmployeeInfo.Recordset.Fields(12).Value cboDuty.Text = frmEmpManage.adoEmployeeInfo.Recordset.Fields(13).Value cboPost.Text = frmEmpManage.adoEmployeeInfo.Recordset.Fields(14).Value cboLevel.Text = frmEmpManage.adoEmployeeInfo.Recordset.Fields(16).Value End IfEnd Sub确定按钮Private Sub cmdOK_Click() If Trim(txtENo.Text) = Then MsgBox 请输入员工编号, vbInformation, 信息提示 Exit Sub ElseIf Not IsNumeric(Trim(txtENo.Text) Then MsgBox 员工编号只能为数字, vbInformation, 信息提示 Exit Sub End If If Trim(txtName) = Then MsgBox 请输入员工姓名, vbInformation, 信息提示 Exit Sub End If If Trim(cboDept.Text) = Then MsgBox 请选择员工所在的部门, vbInformation, 信息提示 Exit Sub End If If Trim(txtIDCard.Text) = Then MsgBox 请输入身份证号, vbInformation, 信息提示 Exit Sub ElseIf Not IsNumeric(Trim(txtIDCard.Text) Then MsgBox 身份证号只能为数字, vbInformation, 信息提示 Exit Sub End If If Trim(cboMissionStatus.Text) = Then MsgBox 请选择在职状态, vbInformation, 信息提示 Exit Sub End If If Trim(cboDuty.Text) = Then MsgBox 请选择职务, vbInformation, 信息提示 Exit Sub End If If Trim(cboPost.Text) = Then MsgBox 请选择职称, vbInformation, 信息提示 Exit Sub End If If Trim(txtServiceLength.Text) = Then MsgBox 请输入工龄, vbInformation, 信息提示 Exit Sub ElseIf Not IsNumeric(Trim(txtServiceLength.Text) Then MsgBox 工龄只能为数字, vbInformation, 信息提示 Exit Sub End If If Trim(cboLevel.Text) = Then MsgBox 请选择工资级别, vbInformation, 信息提示 Exit Sub End If 员工编号是否重复 If IsAdd Then If objEmployeeInfo.IsExistENo(Trim(txtENo.Text) Then MsgBox 此员工编号已经存在,请再选择另一个编号, vbInformation, 员工编号重复 Exit Sub End If End If 往objEmployeeInfo里添加数据 objEmployeeInfo.ENo = Trim(txtENo.Text) objEmployeeInfo.Name = Trim(txtName.Text) objDept.GetInfo Trim(cboDept.Text) objEmployeeInfo.DeptID = objDept.DeptID objEmployeeInfo.Sex = Trim(cboSex.Text) objEmployeeInfo.Folk = Trim(cboFolk.Text) objEmployeeInfo.Marry = Trim(cboMarry.Text) objEmployeeInfo.Education = Trim(cboEducation.Text) objEmployeeInfo.Party = Trim(cboParty.Text) If IsNull(dtpBirthday.Value) Then objEmployeeInfo.Birthday = Now Else objEmployeeInfo.Birthday = dtpBirthday.Value End If objEmployeeInfo.IDCard = Trim(txtIDCard.Text) objEmployeeInfo.Residence = Trim(txtResidence.Text) objEmployeeInfo.NativePlace = Trim(txtNativePlace.Text) objMissionType.GetInfo Trim(cboMissionStatus.Text) objEmployeeInfo.MissionStatus = objMissionType.MissionStatus objDutyType.GetInfo Trim(cboDuty.Text) objEmployeeInfo.Duty = objDutyType.Duty objPostType.GetInfo Trim(cboPost.Text) objEmployeeInfo.Post = objPostType.Post objEmployeeInfo.ServiceLength = Trim(txtServiceLength.Text) objLevelType.GetInfo Trim(cboLevel.Text) objEmployeeInfo.Levels = objLevelType.Levels objEmployeeInfo.Tele = Trim(txtTele.Text) objEmployeeInfo.Mobile = Trim(txtMobile.Text) objEmployeeInfo.Email = Trim(txtEmail.Text) objEmployeeInfo.Address = Trim(txtAddress.Text) If IsAdd Then 员工插入数据 objEmployeeInfo.Insert 向WageInfo表插入数据 objWageInfo.Init objWageInfo.ENo = Trim(txtENo.Text) objWageInfo.Name = Trim(txtName.Text) objWageInfo.DeptID = objDept.DeptID objWageInfo.Insert 向WageProvide表插入数据 objWageProvide.Init objWageProvide.ENo = Trim(txtENo.Text) objWageProvide.Name = Trim(txtName.Text) objWageProvide.DeptID = objWageProvide.DeptID objWageProvide.Insert 全部插入成功 MsgBox 插入成功, vbInformation, 插入成功 将ado控件进行刷新 frmEmpManage.adoEmployeeInfo.Refresh If frmEmpManage.adoDetail.ConnectionString Then frmEmpManage.adoDetail.Refresh End If Unload Me Else 修改员工数据 objEmployeeInfo.Update objEmployeeInfo.ENo MsgBox 修改成功, vbInformation, 修改成功 将ado控件进行刷新 frmEmpManage.adoEmployeeInfo.Refresh If frmEmpManage.adoDetail.ConnectionString Then frmEmpManage.adoDetail.Refresh End If Unload Me End IfEnd Sub取消按钮Private Sub cmdCancel_Click() Unload MeEnd Sub.)工资信息文本内容改变处理函数Private Sub TextChange() txtTotalWage.Text = Trim(Str(Val(txtBasicWage) + Val(txtMissionWage) _ + Val(txtBonus) + Val(txtAllowance) _ + Val(txtSLWage) + Val(txtPostWage) txtTax.Text = Trim(Str(ComputeTax(Val(frmWageEdit.txtTotalWage) _ - Val(frmWageEdit.txtFund) - Val(frmWageEdit.txtInsurance) _ - Val(frmWageEdit.txtFine) txtSubWage.Text = Trim(Str(Val(frmWageEdit.txtFund) + Val(frmWageEdit.txtInsurance) _ + Val(frmWageEdit.txtFine) + Val(frmWageEdit.txtTax) txtWage.Text = Trim(Str(Val(frmWageEdit.txtTotalWage) _ - Val(frmWageEdit.txtSubWage) 工资小于0时的处理 If Val(txtWage.Text) 0 Then txtWage.Text = 0 End IfEnd Sub补贴改变Private Sub txtAllowance_Change() 如果Text控件内容为空,则置为0 If Trim(txtAllowance.Text) = Then txtAllowance.Text = 0 Exit Sub End If If Not IsNumeric(txtAllowance) Then txtAllowance.Text = Left(txtAllowance.Text, Len(txtAllowance.Text) - 1) Exit Sub End If TextChangeEnd Sub基本工资改变Private Sub txtBasicWage_Change() 如果Text控件内容为空,则置为0 If Trim(txtBasicWage.Text) = Then txtBasicWage.Text = 0 Exit Sub End If If Not IsNumeric(txtBasicWage) Then txtBasicWage.Text = Left(txtBasicWage.Text, Len(txtBasicWage.Text) - 1) Exit Sub End If TextChangeEnd Sub奖金改变Private Sub txtBonus_Change() 如果Text控件内容为空,则置为0 If Trim(txtBonus.Text) = Then txtBonus.Text = 0 Exit Sub End If If Not IsNumeric(txtBonus) Then txtBonus.Text = Left(txtBonus.Text, Len(txtBonus.Text) - 1) Exit Sub End If TextChangeEnd Sub罚金改变Private Sub txtFine_Change() 如果Text控件内容为空,则置为0 If Trim(txtFine.Text) = Then txtFine.Text = 0 Exit Sub End If If Not IsNumeric(txtFine) Then txtFine.Text = Left(txtFine.Text, Len(txtFine.Text) - 1) Exit Sub End If TextChangeEnd Sub基金改变Private Sub txtFund_Change() 如果Text控件内容为空,则置为0 If Trim(txtFund.Text) = Then txtFund.Text = 0 Exit Sub End If If Not IsNumeric(txtFund) Then txtFund.Text = Left(txtFund.Text, Len(txtFund.Text) - 1) Exit Sub End If TextChangeEnd Sub保险费改变Private Sub txtInsurance_Change() 如果Text控件内容为空,则置为0 If Trim(txtInsurance.Text) = Then txtInsurance.Text = 0 Exit Sub End If If Not IsNumeric(txtInsurance) Then txtInsurance.Text = Left(txtInsurance.Text, Len(txtInsurance.Text) - 1) Exit Sub End If TextChangeEnd Sub岗位工资改变Private Sub txtMissionWage_Change() 如果Text控件内容为空,则置为0 If Trim(txtMissionWage.Text) = Then txtMissionWage.Text = 0 Exit Sub End If If Not IsNumeric(txtMissionWage) Then txtMissionWage.Text = Left(txtMissionWage.Text, Len(txtMissionWage.Text) - 1) Exit Sub End If TextChangeEnd Sub职务改变Private Sub txtPostWage_Change() 如果Text控件内容为空,则置为0 If Trim(txtPostWage.Text) = Then txtPostWage.Text = 0 Exit Sub End If If Not IsNumeric(txtPostWage) Then txtPostWage.Text = Left(txtPostWage.Text, Len(txtPostWage.Text) - 1) Exit Sub End If TextChangeEnd Sub确定按钮Private Sub cmdOK_Click() objWageInfo.ENo = Trim(txtENo.Text) objWageInfo.Name = Trim(txtName.Text) objDept.GetInfo Trim(txtDept.Text) objWageInfo.DeptID = objDept.DeptID objWageInfo.BasicWage = Trim(Val(txtBasicWage.Text) objWageInfo.MissionWage = Trim(Val(txtMissionWage.Text) objWageInfo.Bonus = Trim(Val(txtBonus.Text) objWageInfo.Allowance = Trim(Val(txtAl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高校科研助力企业创新发展的实践探索
- 教联体在区域教育公平中的作用
- 推动健美操创新未来展望及发展趋势
- 影视产业在区域经济转型中的关键角色
- 游戏开发的技术革命
- 英语写作的艺术与策略
- 语言能力与社会责任感的双向培养
- 提升银行节日营销
- 双十一科技购物全攻略
- 农村建房安全责任协议书范本
- 2024老年公寓租赁合同模板
- 2023-2024学年浙江省宁波市江北区七年级(下)期末数学试卷(含答案)
- 《多联机空调系统工程技术规程》JGJ174-2010
- 人教部编版语文六年级下册1-6单元作文习作范文
- GB/T 44132-2024车用动力电池回收利用通用要求
- 初中英语语法、词汇及固定搭配训练100题-含答案
- 我喜欢的书(教学设计)2023-2024学年综合实践活动五年级下册 教科版
- 公路工程投标方案(技术标)
- GB/T 25390-2024风能发电系统风力发电机组球墨铸铁件
- MOOC 中国传统艺术-篆刻、书法、水墨画体验与欣赏-哈尔滨工业大学 中国大学慕课答案
- 社交焦虑对人际关系的影响
评论
0/150
提交评论