收藏 分销(赏)

基于Asp的人事工资管理系统.doc

上传人:精*** 文档编号:4655306 上传时间:2024-10-08 格式:DOC 页数:42 大小:293KB 下载积分:14 金币
下载 相关 举报
基于Asp的人事工资管理系统.doc_第1页
第1页 / 共42页
基于Asp的人事工资管理系统.doc_第2页
第2页 / 共42页


点击查看更多>>
资源描述
基于Asp的人事工资管理系统 35 资料内容仅供参考,如有不当或者侵权,请联系本人改正或者删除。 编号: 山 西 信 息 职 业 技 术 学 院 毕 业 设 计 毕业设计题目: 基于的ASP人事工资管理系统 系 别: 信息管理系 专 业: 软件技术 班 级: 软件0901 学生姓名: 李晓芳 指导教师: 刘磊 2月28日 摘要 人事工资管理系统是企业内部用以管理人事档案和工资等信息的实用性软件。用它代替企业传统的手工管理方式, 大大提高了工作效率和安全性, 提高了信息处理的速度和准确性, 节省了工作人员的时间和精力, 使企业人事管理和工资管理系统化、 科学化、 规范化和自动化。是现代企业必不可少的管理工具。 本系统采用ASP语言和Access数据库开发而成, 包括职工管理、 档案管理、 考勤管理、 工资管理等模块, 并将工资计算与考勤、 奖惩相关联, 生成较合理的薪酬管理体制, 以产生有效的激励机制。同时系统设置了一些必要的辅助功能, 比如对员工合同到期提醒和生日提醒等功能, 有助于巩固企业与员工的心理契约, 促进员工积极向上, 向公司靠拢。系统能够实现数据的录入、 插入、 删除、 查询、 统计、 更新等功能, 能满足企业职工管理方面的基本要求。 关键词: ASP; Access; 数据库; 人事; 工资 A Management System of Personnel and Payroll Abstract The management system of personnel and payroll is practicable information software used for managing personnel records and payroll in enterprises. The use of the software instead the management way of the handicraft may increase the work efficiency and safety, increase the speed and accuracy of information treatment, save the time and amount of labor, and make the management of personnel and payroll systematical, scientific, standardized, and automatic in enterprises. It is the absolutely necessarily management tool for modern enterprises. The software system was developed using ASP language and Access data, including the management modules of personnel, records, attendance, and payroll. The payroll is related with attendance, incentive, and punishment to generate a comparatively reasonable salary management system for efficient incentive to personnel. Some necessary auxiliary functions, such as the reminding of deadline of contract and birthday of personnel, are set in the software system. It may facilitate the psychological contract between enterprises and personnel encourage personnel to actively devote even more of their efforts in support to enterprises. The software system may realize logging data, inserting data, deleting data, inquiry, counting data, replacing data, and may satisfy the basic requirements in personnel management in enterprises. Key words: ASP; Access; data base; personnel; Salary 目 录 1 引言 1 1.1 系统开发背景 1 1.2 系统研究意义 1 1.3 系统研究方法 1 2 系统需求分析 1 2.1可行性分析 1 2.1.1可行性分析 2 2.1.2 经济可行性 2 2.1.3 操作可行性 2 2.2 系统目标 2 2.3 系统功能需求分析 2 3 数据库设计 3 3.1 数据库表简介 3 3.2 数据库结构设计 3 3.3 数据库连接文件 6 4 系统功能模块详细设计及实现 6 4.1 模块设计 6 4.2 功能模块的说明 7 4.3 系统界面的设计 8 4.3.1 系统登录界面的设计 8 4.3.2 系统主界面的设计 9 4.3.3 系统各模块界面的设计 9 5 系统评价 16 5.1 系统的特点 16 5.2 系统的缺点 17 5.3 将来可能提出的要求 17 结 论 17 参考文献 18 致 谢 19 声 明 20 1 引言 1.1 系统开发背景 随着科学技术的发展和整个社会的进步, 计算机技术也得到了很大的提高, 特别是微型计算机的大范围普及, 使计算机的应用逐渐由科学计算、 实时控制等方面向非数值处理的各个领域中渗透并发挥着越来越重要的作用。特别是以微型计算机为处理核心, 以数据库管理系统为开发环境的管理系统在办公室自动化以及商业信息管理等方面的应用, 日益受到人们的关注。 1.2 系统研究意义 人事工资管理是企业内部很重要的一个管理事项, 其管理方式和工具对企业的决策者和管理者来说至关重要。但一直以来大多数企业内部人事和工资的管理基本上都是传统的手工操作, 这种人工管理的方式效率低, 保密性差, 而且很难满足及时记录、 随时查询的需要, 为信息的管理者带来诸多不便。利用计算机进行信息控制和数据处理, 不但从整体上大大提高了工作效率和安全性,而且具有存储量大,寿命长,成本低等优点,这些更是手工管理所无法比拟的。用计算机支持完成人事管理的日常事务, 能够使人事管理自动化和科学化, 提高了信息处理的速度和准确性; 工资管理更是一项琐碎、 复杂而又十分细致的工作, 如果实行手工操作, 会浪费工作人员很多时间和精力, 且失误在所难免, 而使用计算机进行工资计算和发放, 不但能够保证工资核算准确无误, 而且能对相关信息进行统计, 使工资与考勤、 奖惩等事项合理挂钩,使企业内部管理体制更加科学有效。总之,为了很好的实现数据的录入、 插入、 删除、 查询、 统计、 更新等功能,以达到使企业人事工资信息管理科学化、 系统化、 规范化和自动化的目的,建立人事工资管理系统是十分必要的。 1.3 系统研究方法 根据系统服务对象的实际情况和对管理员工信息和管理员工薪资的具体需求, 我利用ASP和Access数据库,结合数据库原理及应用,软件工程开发方法,在经过深入地学习之后,开发了此人事工资管理系统。以下将具体介绍整个开发过程中所涉及的问题及解决方法。 2 系统需求分析 2.1可行性分析 2.1.1可行性分析 本系统使用ASP(Active Server Pages)作为开发工具。ASP采用面向对象的编程方法---把程序和数据封装起来作为一个对象,并为每个对象赋予相应的属性, 在ASP脚本中能够方便地引用系统组件和ASP内置组件, 还能够经过第三方组件来扩充功能; 而且用ASP编写的页面非常小巧; 灵活; 实用无需编译; 能够方便的进行人机交互。同时又能够用非常简单的语句实现对数据库的操作。由于ASP程序的短小精干, 对于繁忙的网络系统不会造成很大的压力。 系统采用Access作为后台数据库开发工具。Access作为Microsoft Office套件中的数据库管理软件, 其图形化界面使数据库管理更加简洁、 灵活, 同时又具有丰富的编程接口以及强大的报表功能, 能够为我们从事程序开发提供了很多方便。 2.1.2 经济可行性 随着科学技术的发展和人们生活水平的不断提高, 计算机的价格也已经越来越能被很多人所接受。不论是在企业还是家庭, 计算机的使用已经成为普遍现象。因此从用户经济方面考虑, 本系统的开发不会有很大的困难和风险。且系统本身成本较低, 不需要很多的开发费用和以后的维护费用。 2.1.3 操作可行性 由于本系统管理的对象比较单一,都是企业员工,且每个数据库内容具有较强的关联性,设计的过程不是特别复杂,因此,比较适合于采用数据库管理。且因为本系统所耗费的资源非常小,企业一般使用的微机无论在软件上还是硬件上都能够满足运行要求。 2.2 系统目标 一个基于网络的人事工资管理系统, 能在网络环境下实现数据的录入、 插入、 删除、 查询、 统计、 更新等功能。将工资管理作为一个独立的模块与人事管理相联系, 同时关联员工的考勤和奖惩等管理, 来生成每个员工的基本工资、 津贴、 实际发放工资等等, 能够实现人事信息和工资管理的科学化、 系统化、 规范化和自动化。 2.3 系统功能需求分析 人事工资管理系统是为服务于企业内部人事和工资信息的管理而开发, 主要用于企业使用电脑掌握和记录员工档案、 快速计算和记录工资发放、 全面统计员工考勤和奖惩、 培训等事项, 要求系统界面美观大方, 数据的修改和删除简单方便, 数据具有可靠性和稳定性。具体应达到以下目的: ( 1) 科学管理员工档案, 优化分类, 全面反映员工情况。 ( 2) 管理考勤信息, 保证工作秩序。 ( 3) 记录薪资发放信息, 保证有效的激励机制。 ( 4) 管理员工奖惩信息, 促进员工积极向上。 3 数据库设计 3.1 数据库表简介 本系统采用Access进行数据库的设计。根据系统功能需求及功能模块的划分要求, 创立一个数据库文件worker.MDB。在此数据库中建立整个数据表: 职工信息表( worker) : 存放企业人员姓名、 编号、 所在部门等基本信息。 管理员信息表( user) : 存放操作员用户名、 密码、 权限等基本信息。 部门信息表( dept) : 存放部门名称、 部门编号等信息。 考勤记录表( rool) : 存放每位员工每月早退、 迟到、 请假、 加班等的日期和时间。 考勤统计表( roolstat) : 存放每位员工一个月的上班天数、 加班时间等。 事项记录表( others) : 存放员工奖惩记录、 培训记录、 调动记录等重要事项记录, 包括员工及记录事项、 日期和说明。 工资数据管理表( paymana) : 存放员工基本工资、 津贴、 工资计算使用公式等工资数据。 工资发放记录表( pay) : 存放员工每月发放的基本工资、 津贴、 加班费、 应发工资、 实发工资等工资数额。 3.2 数据库结构设计 对用来进行数据存取的所有8个表的数据项和数据结构见表1到表8所示: 表1 职工信息表(worker) 字段名称 数据类型 说明 id 自动编号 自动编号 name 文本 姓名 card_no 文本 编号 cardno 文本 身份证号 sex 文本 性别 birthday 日期/时间 出生日期 add 文本 籍贯 wh 文本 文化程度 zc 文本 职称 zw 文本 职务 jc 文本 进厂日期 hth 文本 合同号 htq 文本 合同期 htdq 日期/时间 合同到期日 sj 文本 手机号 mail 文本 Email byxx 文本 毕业学校 part_id 数字 所在部门编号 zy 文本 专业 表2 管理员信息表( user) 字段名称 数据类型 说明 user_id 自动编号 自动编号 username 文本 用户别名 password 文本 用户密码 turename 文本 真实姓名 leader 数字 管理档案权限 manager 数字 管理考勤记录权限 login_time 日期/时间 登录时间 表3 部门信息表( dept) 字段名称 数据类型 说明 uses_id 自动编号 编号 uses_name 文本 部门名称 memo 文本 备注 表4 考勤记录表( rool) 字段名称 数据类型 说明 id 文本 自动编号 wid 文本 员工号 sx 文本 上午或下午 ctime 数字 迟到或早退时间 jtime 数字 加班时间 kq 文本 是否缺勤 date 数字 日 km 数字 月 ky 数字 年 表5 考勤统计表( roolstat) 字段名称 数据类型 说明 id 自动编号 自动编号 wid 数字 员工编号 month 数字 月份 kyear 数字 年份 cd 数字 迟到次数 sj 数字 事假次数 bj 数字 病假次数 kg 数字 缺勤次数 jb 数字 加班次数 ctime 数字 迟到时间累计 jtime 数字 加班时间累计 ztime 数字 早退时间累计 cdd 文本 迟到日 zdd 文本 早退日 sdd 文本 事假日 jbb 文本 加班日 kdd 文本 缺勤日 bdd 文本 病假日 表6 工资数据管理表( paymana) 字段名称 数据类型 说明 id 自动编号 自动编号 wid 数字 员工编号 jg 货币 基本工资 jt 货币 津贴或奖金 gs 数字 工资计算公式 bz 文本 备注 表7 工资发放记录表( pay) 字段名称 数据类型 说明 id 自动编号 自动编号 wid 数字 员工编号 month 数字 月 gy 数字 年 jg 货币 基本工资 jt 货币 津贴或奖金 jb 货币 加班费 qq 货币 缺勤扣除 yf 货币 应发工资 ss 货币 税收扣除 qk 货币 其它扣除 sf 货币 实际发放 yn 日期/时间 发放日期 表8 事项记录表( others) 字段名称 数据类型 说明 id 自动编号 自动编号 wid 数字 员工编号 sx 文本 事项名称 jl 文本 事项记录 sl 数字 天数 Rq 日期/时间 日期 bz 文本 备注 3.3 数据库连接文件 由于系统在整个运行过程中都是与数据库worker.Mdb相联系的。因此为了方便使用在各个程序中通用的数据库连接的变量, 专门设计了数据库连接文件。它的作用是打开数据库,用于连接到指定的数据库文件,该文件将被其它各页的代码文件用包含文件的方法所调用。文件代码如下: Set conn = Server.CreateObject("ADODB.Connection") ’创立一个数据库连接 conn.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & DefaultDir &server.mappath("worker.mdb")&";" ’设置数据源来源 Set rs = Server.CreateObject("ADODB.Recordset") Set rs1 = Server.CreateObject("ADODB.Recordset") Set rs2 = Server.CreateObject("ADODB.Recordset") Set rs3 = Server.CreateObject("ADODB.Recordset") 4 系统功能模块详细设计及实现 4.1 模块设计 人事工资管理系统共包括以下七个功能模块: 职工管理模块、 考勤管理模块、 档案管理模块、 工资管理模块、 事项记录模块、 其它事记模块、 系统管理模块。其中每个模块又分为若干个小功能模块。其系统功能模块详细关系如图1所示: 图1 系统模块结构图 4.2 功能模块的说明 人事工资管理系统的七个功能模块的详细介绍如下: 1.职工管理模块: 实现用户自由的信息录入。结合人事变动完成本单位各类人员变动事宜, 实时记录人员进入单位后的所有变化信息。实现对员工信息灵活的查询功能。 2.考勤管理模块: 将考勤数据按月输入到系统中, 系统将记录所有请假、 矿工、 迟到、 早退等数据, 并进行自动统计和汇总。 3.档案管理模块: 提供全部人员记录, 用以记录和查看人员相关信息。 4.工资管理模块: 实现对基本工资的管理, 每月能够计算和修改工资数据, 记录工资发放日期。 5.事项记录模块: 根据单位情况设立培训、 奖惩等事项记录。 6.其它事记模块: 用于企业内部记录单位的基本信息和员工生日等, 促进员工团结一致、 积极向上。 7.系统管理模块: 主要包括用户登陆和安全退出系统。提供有效的用户认证安全机制。 4.3 系统界面的设计 4.3.1 系统登录界面的设计 系统登录界面是系统管理模块中重要的一部分。它是进入人事工资管理系统后显示的默认页面,也是在使用过程中需要重新登录时返回的页面。该页的主要作用是提供填写用户名和密码的表单,即描述了一个FORM。该页面主要是为了进行密码验证而设置。其界面如图2所示: 图2 系统登录页面 打开人事工资管理系统后, 系统提示输入用户名和密码进行登录, 用户填写完并提交表单后,系统对数据库进行检索, 以验证输入的用户名和密码是否正确。如有误, 将发出警告信息, 如数据库中有对应记录, 则表示用户合法。其主要验证代码如下: dim user,password,selstorage ’声明变量 user=request("username") ’获取在登录界面中输入的用户名,并保存在变量user中 password=request("password") sql="select * from user where username='"&user&"' and password='"&password&"'" ’数据库查询语句 rs.open sql,conn,3,2 ’执行数据库查询操作 if rs.eof and rs.bof then ’如果该记录为空 response.write"<SCRIPT language=JavaScript>alert('错误的用户名或密码, 请重新输入! ');" ’显示警告信息 response.write"javascript:history.go(-1)</SCRIPT>" ’返回上一页 else ’如当前记录不是数据集rs的最后一条或第一条记录 ’以下是记录用户是否登录、 登录时间以及登录IP地址 rs("isonline")=True rs("login_time")=now() rs("ip")=Request.ServerVariables("REMOTE_HOST") rs.update ’执行操作 session("userlogin")="true" ’将会话级变量userlogin设置为真 session("storage")=selstorage session("username")=user ’将用户名保存在会话级变量中 ’以下是从数据集rs的当前记录中取得并保存在cookies中 response.cookies("guestok")="true" response.cookies("leader")=rs("leader") response.cookies("adminok")=rs("manager") response.redirect "main.asp" rs.close ’关闭连接 end if 4.3.2 系统主界面的设计 经过用户验证后, 进入人事工资管理系统的主页面。系统的主页面是由一个”T”字形结构的框架页面构成, 它将该页面分成顶部系统名称显示页面、 下面左侧菜单页面和右面主显示页面。 其中菜单页是该页面的主题部分, 实现了菜单的分类分级显示, 主菜单项从上往下排成一列,平时子菜单是隐藏的,单击某一主菜单项时将展开它的所有子菜单项, 同时其它主菜单项的子菜单项将紧缩回去。其界面如图3 所示: 图3 菜单界面 关于实现上述菜单功能,是经过分配显示空间的办法来解决的。初始时,给每个主菜单都初始化一个有限的紧缩空间,当点击某一主菜单项时,它的显示空间将被放大或缩小。在菜单展开和收缩的过程中都是用菜单的高度来判断。由于本页面代码较长,函数太多,在此将不再详细介绍。 4.3.3 系统各模块界面的设计 由于系统模块较多,下面将只介绍部分模块的详细设计: ( 一) 职工管理模块: 本模块根据搜索内容和方式分为按部门查看员工和离职员工查看两部分。其中按部门查看员工的界面如图4所示: 图4 据部门查看员工页面 搜索员工时, 首先要获得表单提交的参数, 建立与数据库的连接, 读取符合搜索条件的记录。其关键代码如下: if not isempty(request("page")) then ’假如page不为空 pagecount=cint(request("page")) ’提交page else ’当page为空 pagecount=1 ’当前页指定为第一页 end if if t3=0 then sql="select * from worker where name like '%"&t1&"%' and card_no like '%"&t2&"%'" ’查询数据库 else sql="select * from worker where name like '%"&t1&"%' and card_no like '%"&t2&"%' and part= "&t3&"" end if rs.open sql,conn,1,1 ’执行操作 该页所显示的记录数目是经过分页显示来实现的。每一页显示的记录数即人员个数用PageSize来表示, 而当前记录所在的页号则由AbsolutePage来确定。实现分页功能的代码如下: if rs.eof then ’如果当前记录是数据集的最后一条记录 response.write"<SCRIPT language=JavaScript>alert('对不起, 没有符合搜索条件的记录! ');" ’显示警告 response.write"javascript:history.go(-1);</SCRIPT>" response.end ’停止处理脚本并返回当前结果 end if rs.pagesize=10 ’设置每页显示记录条数为10条 if pagecount>rs.pagecount or pagecount<=0 then ’如果请求的页数大于总页数或小于等于0 pagecount=1 ’页码号变量设为1 end if rs.AbsolutePage=pagecount ’定位到结果集pagecount指定的页 离职员工页面的显示与按部门搜索员工页面相似, 其特点是在读取数据库中的记录时, 读取字段OUTONE值为1的记录, 表明该员工已经离职。其它代码和界面显示不再详细介绍。 ( 二) 档案管理模块: 该模块包括新增员工档案的建立、 已有员工档案资料的修改、 及员工辞退信息的记录。下面着重介绍档案的建立: 员工档案的建立包括档案信息输入和档案保存。 新增员工页面如图5所示: 图5 新增员工页面 该页面主要是输入人员姓名编号所在部门等基本信息, 以表单的形式提交由信息记录的代码文件进行处理。保存信息记录的关键代码如下: Set rs = Server.CreateObject("ADODB.Recordset") ’创立数据集的实例 sql="select * from worker" ’从worker表中查找所有记录 rs.open sql,conn,3,2 name=trim(request.FORM("name")) ’去掉字符串前后的空格 memo=trim(request.FORM("memo")) if len(memo)<1 then ’对备注的字符串长度的限制, 如果字符串长度小于1 memo=" "’ end if … rs.addnew ’往职工信息表中添加一组新的记录 ’下面是将具体的职工信息添加到职工信息表的对应字段中 rs("name")=name rs("memo")=memo rs("card_no") =card_no rs("cardno") =cardno … birthday=trim(request.FORM("birthday")) if len(birthday)>6 then rs("birthday")=birthday end if rs.update ’执行更改操作, 将添加的数据保存到数据库中 rs.close ’关闭连接 ( 三) 工资管理模块: 工资管理模块包括员工工资的计算、 工资按月统计和发放领取情况。员工工资计算页面如图6所示: 图6 工资计算页面 计算工资前必先从下拉菜单中选择员工并指定月份, 同时具备该员工的基本工资数据, 还必须有该员工本月的考勤记录和统计, 方可进行计算。ShowWorker是自定义函数, 用来实现对下拉列表中员工的选择。其主要代码如下: sql1="select * from worker" ’查询数据库 rs1.open sql1,conn,1,1 ’执行查询操作 ntotal=rs.recordcount ’将所有记录集数赋给变量ntotal if not rs1.eof then ’如果符合查询条件的记录存在 rs1.movefirst ’使当前记录成为记录集的第一条记录 do while not rs1.eof response.write"<option"&sel&"value='"+CStr(rs1("id"))+"'>"+rs1("name")+"</option>"+chr(13)+chr(10) ’输出指定内容 rs1.movenext ’使当前记录成为记录集的下一条记录 loop else ’如果没有符合查询条件的记录 response.write "<option value='0'>没有可选择的员工</option>"+chr(13)+chr(10) ’显示警告 end if rs1.close ’关闭连接 此模块是和考勤模块相关联的, 其中”本月出勤”和”本月加班”都是从考勤统计表中读取数据, 而基准工资是经过下面的公式来计算: jzgz=(rs3("sb")-rs3("kg")+rs3("jtime")/8)*jbgz/30 以下是实现加班补贴和应发工资的相关代码: Set rs2 = Server.CreateObject("ADODB.Recordset") sql2="select * from roolstat where month="&kmonth&" and kyear="&kyear&" and wid="&rs("id")&" and jtime>4" rs2.open sql2,conn,1,2 jbbt=rs2.recordcount*5 ’计算加班补贴 rs2.close yfgz=jbbt+jzgz ’应发工资等于加班补贴和基准工资之和 员工工资统计页面主要用于显示所有员工某一月的工资数额, 其页面显示如图7所示: 图7 工资统计页面 由于该文件比较大, 为了更有效的传送文件, 将输出页面设置为缓冲。即将Response对象的属性Buffer设置为Ture来实现。页面默认的日期是当前年, 和上一月。经过将表示年的变量yy和表示月的变量mm分别赋值为year( date( ) ) 和month( date( ) ) -1来实现。如图所示, 当输入所需的日期信息, 并按确认按扭后, 将建立与数据库的连接, 读取信息, 查询结果将在右边”职务”、 ”工资”等下面显示。实现数据库查询的代码片段如下: Set rs1 = Server.CreateObject("ADODB.Recordset") ’创立数据库记录集对象rs1 sql1="select * from pay where wid="&rs("id")&" and month="&mm&" and gy="&yy&"" ’根据所需员工号、 月、 年字段来检索工资发放记录表 rs1.open sql1,conn,1,2 ’执行数据库查询操作 if not rs1.eof then ’如果当前记录不是记录集的最后一条记录 rs1.movelast ’使当前记录成为记录集的最后一条记录 do while not rs1.Bof ’如果当前记录不是记录集的第一条记录 ’下面将具体从数据库中查询相应字段显示在页面相应位置的代码省略 工资领取页面用于记录员工领取工资的日期记录, 单击该页面的领取项, 便将当前时间写入数据表的对应记录号中。其页面如图8所示: 图8 工资领取页面 其代码如下: Set rs = Server.CreateObject("ADODB.Recordset") ’创立数据库记录集对象 sql="select * from pay where id="&request("id") rs.open sql,conn,3,2 ’用记录集对象打开SQL语句 rs("fdate")=date() rs.update ’执行更新操作 rs.close
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服