数据库原理课程设计工资管理系统

上传人:仙*** 文档编号:28353568 上传时间:2021-08-26 格式:DOC 页数:61 大小:1.38MB
返回 下载 相关 举报
数据库原理课程设计工资管理系统_第1页
第1页 / 共61页
数据库原理课程设计工资管理系统_第2页
第2页 / 共61页
数据库原理课程设计工资管理系统_第3页
第3页 / 共61页
点击查看更多>>
资源描述
南昌工程学院数据库原理课程设计任务书学院:信息工程学院 专业:09计算机应用技术 姓名: XXX 学号: XXXXXXXX 姓名: XXX 学号: XXXXXXXX 姓名: XXX 学号: XXXXXXXX 计算机工程教研室谭德坤 编2011年 12月摘 要对企业而言,人力资源是企业最宝贵的资源,也是企业的“生命线”。而工资管理又是人力资源管理的重中之重。实行电子化的工资管理,可以让人力资源管理人员从繁重琐碎的案头工作解脱出来,去完成更重要的工作。本文介绍毕业设计课题的选题背景和意义,相关的研究和开发的比较和综述,研究开发的过程,以及设计思路和实现细节的考虑,最后给出了作者在毕业设计过程的体会。工资管理系统是为了提高企业工资管理、简化工资核算流程的一个系统。其囊括了企业对员工的资料管理的基本操作功能。如:员工入库保存、查询、修改、删除、考勤、工资核算及打印等功能。该系统能记录和管理员工从入厂以来的所有的工资信息及个人基本信息,能大大减轻会计部门的管理工作,方便、快捷、安全的完成企业员工工资管理工作。在方便企业管理的同时,为了保证管理信息的准确性、实时性、决策性,鉴于该系统是服务于管理工作的,因此本系统在使用权限上作了特别的限制及规定,使用权主要由超级管理员指定执行。基于系统开发的过程是根据实际工作需要而结合软件工程的基本开发步骤设计开发的。论文在论述时严格按照开发流程,以有详有略,层次分明、重点突出的原则,从问题定义、需求分析、总体设计、详细设计到编码、测试的顺序进行分析论述的,给系统一个清晰、全面地说明。有利于系统将来的扩充及完善。关键词:工资管理、数据流图、数据字典、E-R图、功能图、程序流程图目 录1、 引言32、 系统分析42.1可行性分析42.2需求分析42.3结构化分析83、 总体设计13 3.1概念结构设计133.2逻辑结构设计14 3.3概要设计15四、数据库逻辑设计17五、功能模块的创建205.1登陆窗口类-CLoginDlg205.2主窗口类- CSalaryDlg225.3查看工资窗口类-CPreviewDlg255.4薪资计算公式窗口类-CFormulaDlg27六、 用户使用说明29七、 程序编码35 八、 软件测试567.1软件测试的作用和意义567.2测试方法56 7.3测试内容567.4测试结果58 九、 课程总结58参考文献59 一、引言随着计算机技术的飞速发展,计算机在企业管理中的应用越来越普及,利用计算机实现企业工资的管理显得越来越重要。对于大中型企业来说,利用计算机支持企业高效率完成劳动人事管理的日常事务,是适应现代企业制度要求、推动企业劳动人事管理走向科学化、规范化的必要条件;而工资管理是一项琐碎、复杂而又十分细致的工作,工资计算、发放、核算的工作量很大,一般不允许出错,如果实行手工操作,每月发放工资须手工填制大量的表格,这就会耗费工作人员大量的时间和精力,计算机进行工资发放工作,不仅能够保证工资核算准确无误、快速输出,而且还可以利用计算机对有关工资的各种信息进行统计,服务于财务部门其他方面的核算和财务处理,同时计算机具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事工资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。企业的工资管理是公司管理的一个重要内容。随着当今企业人员数量增加,企业的工资计算也变得越来越复杂。如果能够实现工资管理的自动化,无疑是给企业管理部门带来很大的方便。资金是企业生存的主要元素。资金的流动影响到企业的整体运作,企业员工的工资是企业资金管理的一个重要的组成部分,因为企业每个月都要涉及发放企业员工工资的问题。企业员工的人数越多,工资的统计工作就越多,工资的发放困难就越大。最初的工资统计和发放都是使用人工方式处理,工作的时候,出现错误的机率也随之升高。工资管理系统就是使用电脑代替大量的人工统计和计算,完成众多工资信息的处理,同时使用电脑还可以安全地保存大量的工资记录。企业工资管理系统,为个人提供工资查询服务,为企业提供工资计算,工资统计等服务。传统的纸张材料的数据信息管理已经不适合现代企业公司的发展了,实现工资管理的系统化、规范化、自动化,将成为现在公司管理工资的首选。本系统实现的工资管理系统基本上能够满足现代化企业工资管理的需求。工资管理系统有着许多手工管理所无法比拟的优点:检索迅速、查找方便、可靠性高、存储量高、保密性好、寿命长、成本低等.这些优点能够极大的提高工资管理的效率。二、系统分析 2.1 可行性分析2.1.1目标方案可行性1) 计算机设备处理繁杂的工资增减问题,大幅度减少人力、物力,极大地提高企业的管理水平和管理效率。2) 管理水平和管理效率的提高能直接产生经济效益。3) 高效率的管理形成了良好的经营氛围,为企业打造优良形象,提高企业竞争力。4) 本系统安全保密性可靠,实施独立的局域网络,人员进入系统需要登录,需输入账户和密码。5) 本系统的管理,可以根据市场需要进行调整,实用性强2.1.2技术可行性(1) 工作人员一般都要求掌握计算机技术,会使用各种管理软件。(2) 在新系统投入使用时,需对员工进行少量的培训,熟悉系统的功能和使 用方法使系统能够顺利运行。 2.1.3经济可行性 (1) 企业有能力承担系统开发费用。 (2) 新系统将为企业带来经济效益。管理系统是一个信息化、智能化和先进理理念的集合体。而管理是一个动态过程,在其运行过程中要采取多项措施。其最主要的表现就是减少了企业管理费用和人力开支。 2.1.4操作可行性 (1) 本系统采用基于Windows的图形用户界面,而该系统是大家熟悉的操作系统,对于那有一般的计算机知识的人员就可以轻松上手。(2) 整个工资管理系统采用较友好的交互界面,简单明了,操作方便,不需要 对数据库进行深入的了解。2.2需求分析 通过在各业务领域内每个重要方面的调查,我们对人事工资管理系统进行了以下需求分析。a.企业工资系统目标采用企业现有的软硬件及科学的管理系统开发方案,建立企业人事工资管理系统,实现企业人事工资管理的计算机自动化。企业工资管理系统的主要任务是用计算机对各种工资信息进行日常的管理,如查询、修改、增加、删除以及存储等,迅速准确地完成各种工资信息的统计计算和汇总工作,快速打印出工资报表,针对系统服务对象的具体要求,设计了企业工资管理系统。企业工资管理系统主要有以下几大功能:(1)对单位人员的变动进行处理。一个单位的职工不会是一成不变的,总是在不断的变化,有调出、有调入、也有职工在本单位内部调动。因此,设计系统考虑到了这些情况。(2)对职工的工资进行计算、修改。对各职工的工资进行计算,即计算应发金额、应扣金额及实发金额等。(3)查询统计功能。单项查询,比如查看某个职工的工资情况,查看某各职工的基本信息等;多项查询,比如年度历史发放工资记录表,月工资总额表等。(4)报表打印功能。每月发放工资时,要求能够打印本月的工资表以及工资统计表。(5)系统维护功能。进行数据库的备份,恢复以及定期对特定的存储文件进行刷新。(6)企业考勤管理。通过输入每名职工的考勤信息提供出工资决算的依据,并且可打印出职工考勤记录表。b.应用现状调查目前,企业内部人事基本信息管理、考勤管理及工资管理基本处于纯手工处理阶段,工作效率很低,并且不能及时满足要求。另外,手工管理还存在着许多弊端,由于不可避免的人为因素,极易造成数据的遗漏、误报。C.总体业务流程调查维护员工基本信息维护员工工资信息数据统计处理数据,制作报表结束开始 管理者业务:普通员工业务:查询本人基本情况进行权限范围内的修改领取工资获得工资单,本人信息等报表结束开始d.信息系统业务流程分析:招收新员工:新员工人事部报到Employmee-Code员工人事变动人事部管理部提供员工信息Employmee-Code奖惩决策过程制定奖惩标准工作表现管理部管理者员工决定奖惩金额Salary-RP奖惩报表员工考勤过程考勤评定员工业务部Kaoqin日常工作考勤报表工资统计过程制定管理者Salary-RPKaoqin工资报表(工资单)Salary-OvertimeSalarySalary-History统计工资财务部管理者 下面以工资处理业务流程为例进行业务具体说明:管理部收集员工在日常工作中的表现,根据管理者制定的企业奖惩标准计算出每名员工应该奖发或扣罚的工资数额,制定出奖罚报表并将奖罚信息写入奖罚数据库以供财务部查询;业务部通过日常考勤收集员工的工作时间、加班时间、旷工及迟到天数,一方面将考勤信息写入考勤数据库供财务部查询,另一方面将的到的员工加班时间和管理者提供的员工技术等级结合得出员工加班工资数据库;财务部在综合上述各方面的信息后,依据管理者提供的工资计算标准对员工的工资进行计算并得到员工工资单,将所得信息写入员工历史工资记录表。2. 3 结构化分析 结构化分析方法简称SA方法,是一种面向数据流的需求分析方法,它的基本思想是自顶向下逐层分解,分解和抽象是人们控制问题复杂性的两种基本手段。结构化分析方法的基本结果由以下几个部分组成,一套分层的数据流图,一本数据字典,一组加工逻辑说明,补充材料。 结构化体现在将软件系统抽象为一系列的逻辑加工单元,各单元之间以数据流发生关联。2.3.1数据流图 数据流图(Data Function Diagram),又名数据功能图表,简称DFD,就是采用图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。 由于用户群体中的各个用户往往会从不同的角度、在不同的抽象级别上阐述他们对问题的理解和对目标软件的需求,因此我们以数据流程图的方式来进行满足用户需求的系统建模。具体数据流图如下:系统顶层图人事管理子系统职员考勤子系统业绩考评子系统工资处理子系统2.3.2数据字典数据项的设计详见数据库物理结构。数据流的设计:编号数据流名称简述数据流来源数据流去向数据流组成流通量高峰流量F01人员花名册部门的员工花名 册负责人事的管理人员负责工资统计的系统管理人员部门号+员工ID+姓名+职务+技术级别1份/月1份/月编号数据流名称简述数据流来源数据流去向数据流组成流通量高峰流量F02员工月工资员工月工资负责工资统计的管理人员负责人事的管理人员部门号+员工ID+姓名+月份+总工资1份/月1份/月编号数据流名称简述数据流来源数据流去向数据流组成流通量高峰流量F03决策企业管理者制定的决策企业管理者业务部奖惩金额+奖惩原因1份/月1份/月编号数据流名称简述数据流来源数据流去向数据流组成流通量高峰流量F04奖惩信息对员工的业务部各单位负责工资统计的系统管理人员奖惩金额+奖惩原因不确定不确定编号数据流名称简述数据流来源数据流去向数据流组成流通量高峰流量F05考勤表员工考勤信息表管理部负责工资处理的系统管理员ID+姓名+工作状态+加班时间1份/天2份/天编号数据流名称简述数据流来源数据流去向数据流组成流通量高峰流量F06全局工资单企业全部员工工资单负责工资统计的管理人员企业管理者部门号+ID+月份+员工总工资3份/月6份/月数据存储的设计:数据存储编号数据存储名称简述数据存储组成关键字相关联的处理DS01雇员信息企业员工基本信息职员编号+ 性别+职员姓名职务+部门+出生年月+政治面貌+文化程度+毕业学校+毕业时间+籍贯 家庭住址+工作时间 技术等级+签订合同时间+合同期限+备注+月份+月工资记录职员编号更新雇员记录数据存储编号数据存储名称简述数据存储组成关键字相关联的处理DS02考勤文件员工考勤信息记录员工编号+加班时间+每天工作状况员工编号每日考勤,统计考勤信息数据存储编号数据存储名称简述数据存储组成关键字相关联的处理DS03奖惩记录员工业绩奖惩记录员工编号+月份+奖惩金额+奖惩原因员工编号记录奖惩信息,提取奖惩信息数据存储编号数据存储名称简述数据存储组成关键字相关联的处理DS04工资单各部门员工工资单部门号+员工编号+月份+工资部门号+员工编号计算工资,汇总统计数据存储编号数据存储名称简述数据存储组成关键字相关联的处理DS05统计序列各部门统计工资员工序列部门号+员工编号各部门编组,计算工资3、 总体设计这一阶段的的任务是设计出组成工资管理系统的所有程序结构和数据库文件(软件系统结构设计)。并采用面向数据流的设计方法将系统按功能划分模块、确定每个模块的功能、模块间的调用关系、模块间的接口以及评价模块结构质量。在设计数据结构和数据库时主要采用逐步细化的方法,根据需求分析阶段对系统数据的组成、操作约束和数据间的关系描述、确定数据结构特性。 总体设计阶段步骤及要求:(1)系统模块设计:系统的模块化形式在前面的内容中已经有了较详细的描述,根据以管理员为核心的使用模式。(2)系统控制结构:对系统的控制主要体现在对信息流的把握上,即对参与处理各种信息流模块进行分析、解耦和协调,从中找出相互之间的逻辑关系,以便采取不同的控制对策。3.1 概念结构设计 在需求分析阶段所得到的应用需求应该首先抽象为信息世界的结构,才能更好地、更准确地用某一DBMS实现这些需求。在概念结构设计阶段,首先需要了解概念结构设计的方法和步骤。(1)概念结构设计的方法:本系统采用自底向上的概念结构设计方法。即首先定义各局部应用的概念结构,然后将它们集成起来得到全局概念模式。(2)概念结构设计的步骤: a、抽象数据并设计局部视图。就是对需求分析阶段收集到的数据按照E-R模型的要求进行分类、组织,标识实体的键,确定实体之间的联系类型,设计出E-R图的框架。 b、丰富E-R,为其添上属性,得到全局的概念结构。3.1.1 E-R图:E-R图也即实体-联系图(Entity Relationship Diagram),提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。E-R方法是“实体-联系方法”(Entity-Relationship Approach)的简称,它是描述现实世界概念结构模型的有效方法,构成E-R图的基本要素是实体型、属性和联系。下面是该系统的E-R图:IIMMMM员工职工编号籍贯婚否性别民族职位员工信息设置用户查询报表部门实发工资职务职工姓名职工编号出勤表缺勤满勤工资设置部门设置工资实发工资技能工资职务基本工资 3.2 逻辑结构设计 逻辑结构设计阶段的任务是将概念结构设计阶段所得到的概念模型转换为具体DBMS所能支持的数据模型(即逻辑结构),并对其进行优化。逻辑结构设计一般分为三步进行: 1. 从E-R图向关系模式转化,数据库的逻辑设计主要是将概念模型转换成一般的关系模式,也就是将E-R图中的实体、实体的属性和实体之间的联系转化为关系模式。2. 数据模型的优化,进一步提高数据库应用系统的性能,适当修改数据模型的结构,提高查询的速度。 3. 关系视图设计,是用户可直接访问的数据模式。同一系统中,不同用户可有不同的关系视图。将数据库的概念模型转换为关系模型,实体转换成的关系模式有:员工:(工号,姓名,性别,年龄,籍贯,身份证号,婚姻状况,学历,部 门名称,工种,工龄,职务等级) 部门:(部门编号,部门名称,部门负责人,部门人数)获得:(工号,姓名)工资:(工号,工资年月,岗位工资,岗位补贴,出勤天数,加班工时,加 班工资,加班天数,加班类别,病假扣除,事假扣除,其它扣除,应 发工资,实发工资) 因为,员工与工资是1:N的关系,所以各关系模式为:员工:(工号,姓名,性别,年龄,籍贯,身份证号,婚姻状况,学历,部 门名称,工种,工龄,职务等级) 部门:(部门名称,部门负责人,部门人数)工资:(工号,工资年月,岗位工资,岗位补贴,出勤天数,加班工时,加 班工资,加班天数,加班类别,病假扣除,事假扣除,其它扣除,应 发工资,实发工资)关系规范式:工资管理系统1NF 每个属性均不可再分3. 3 概要设计 概要设计的主要任务是把需求分析得到的DFD转换为软件结构和数据结构。设计软件结构的具体任务是:将一个复杂系统按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等。数据结构设计包括数据特征的描述、确定数据的结构特性、以及数据库的设计。 经过对相关单位进行系统初步调查,确定各单位主要信息需求,形成系统总体结构方案,了解到以下信息:a.企业的组织结构调查:由于调查所限,我们拟对具备下面这样一个组织结构图的企业进行系统分析。b.企业的业务初步调查: 不同层次的单位或组织使用这个系统平台的目的不一样,如希望得到管理信息或业务信息或决策信息等 各类单位需要系统依据权限提供各种不同的报表 新增、删除、修改、查询雇员记录人事基本管理模块 c.对所有信息需求进行分析,得到如下的系统总体结构方案,即功能图:制定花名册雇员统计,打印报表计算雇员应得工资工资处理模块打印雇员工资单公司总工资统计新增历史工资记录设置管理权限系统维护模块公司人事管理系统数据库的备份,恢复数据库数据的定期更新,删除数据库操作日志雇员考勤模块记录雇员工作时记录雇员加班时记录雇员请假时记录雇员违规情况和相应罚款金额雇员登录经过一系列的分析和设计,可以得到工资管理模型的程序流程图,具体如下: 用户管理者判断用户用户登录管理平台发放工资发布消息修改密码添加员工注销登录查看消息查询工资修改密码用户平台四、数据库逻辑设计4.1数据库设计本系统采用SQL 2000作为数据库。根据上面的分析,本系统主要需要6张表,如表2.1所示,各表的设置如表2.2-2.7所示。 表2.1 系统中所用到表及用途表名用途PersonInfo员工信息表Department部门信息表AttendanceState员工出勤信息表Salary基本工资表Salary_other其他工资表-津贴奖金等couter计算辅助表1. 员工信息表(PersonInfo)表2.2 PersonInfo表名称数据结构作用IDInt员工ID号NameChar(10)姓名PasswardChar(10)登陆密码AuthorityChar(10)权限(管理员为2,普通员工为1)DepartmentIDInt所在部门IDStateChar(10)状态2. 部门信息表(Department)表2.3 Department表名称数据结构作用IDInt部门号NameChar(10)部门名称3. 员工出勤信息表(AttendanceState)表2.4 AttendanceState表名称数据类型作用personIDInt员工IDWorkHourInt本月工作小时数OverhourInt加班小时数YearMouthChar月日期EvectionDaysInt出差天数LateTimesInt迟到天数EarlyTimesInt早退天数AbsentTimesInt请假天数4. 基本工资信息表(Salary)表2.5 Salary表名称数据类型作用IDIntID号PersonIDInt员工ID号SalaryValueFloat基本工资数YearMonthChar年月BasicFloat津贴基数BonusFloat奖金AddDetailChar增加工资详细信息AddTotalFloat增加工资额SubDetailChar扣除工资详细信息SubTotalFloat扣除工资额TotalFloat实际发放工资5. 津贴奖金(Salary_other)表2.6 Salary_other表名称数据类型作用IDIntID号NameChar项目名称TypeInt类型:固定津贴,月度奖金,月度津贴,月度扣发PersonIDInt员工ID号MoneyFloat金额RemarkChar备注YearMonthlChar年月6. 计算辅助表(counter)表2.7 counter表名称数据类型作用IDCharID号CounterIntCounter值五、 功能模块的创建 首先需要建立一个MFC项目,命名为Salary. 项目建立以后,根据需求可以知道,系统需要创建4个主要窗口,因此也就至少需要4个窗口继承类,分别为登陆窗口类-CLoginDlg、主窗口类-CSalaryDlg、查看工资窗口类-CPreviewDlg和薪资计算公式窗口类-CFormulaDlg。由于密码存放到数据库中,为了保护管理员密码在数据库中不是明码显示可以用密码类CCrypt做一下处理,存入数据库。5.1登陆窗口类-CLoginDlg 登陆窗口主要负责连接后台数据库,以及登陆系统。此类的定义如下: #if !defined(AFX_LOGINDLG_H_386DDC27_AFDF_11D6_8649_0088CC174723_INCLUDED_)#define AFX_LOGINDLG_H_386DDC27_AFDF_11D6_8649_0088CC174723_INCLUDED_#if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000/ LoginDlg.h : header file/ CLoginDlg dialogclass CLoginDlg : public CDialogprivate:CFont m_font;/ Constructionpublic:CLoginDlg(CWnd* pParent = NULL); / standard constructor/ Dialog Data/AFX_DATA(CLoginDlg)enum IDD = IDD_DLG_LOGIN ;CStringm_sDSN;CStringm_sUserName;CStringm_sPassward;/AFX_DATA/ Overrides/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CLoginDlg)protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:/ Generated message map functions/AFX_MSG(CLoginDlg)virtual BOOL OnInitDialog();virtual void OnOK();afx_msg void OnChangeEdtUser();/AFX_MSGDECLARE_MESSAGE_MAP();/AFX_INSERT_LOCATION/ Microsoft Visual C+ will insert additional declarations immediately before the previous line.#endif / !defined(AFX_LOGINDLG_H_386DDC27_AFDF_11D6_8649_0088CC174723_INCLUDED_)5.2主窗口类- CSalaryDlg 主窗口类主要是负责对员工基本工资、本月津贴福利等输入与管理,以及提供和主菜单连接功能的设置,例如登陆连接、帮助窗口等。其类的定义如下: / SalaryDlg.h : header file/AFX_INCLUDES()#include datagrid.h/AFX_INCLUDES#if !defined(AFX_SALARYDLG_H_393241C7_AFD8_11D6_8649_0088CC174723_INCLUDED_)#define AFX_SALARYDLG_H_393241C7_AFD8_11D6_8649_0088CC174723_INCLUDED_#if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000/ CSalaryDlg dialogclass CSalaryDlg : public CDialog/ Constructionpublic:void OnAboutDlg();_RecordsetPtr m_pCurDGrs; / 指向右键弹出菜单时的DG相关的Recordset对象void RightClick(CDataGrid& DG, _RecordsetPtr pDGrs, short Button, long X, long Y);HACCEL m_hAccTable;void UpdateDG(_RecordsetPtr pDGrs, CDataGrid& cDG, int index);void AddRecord(CString strPersonID);/ 与几个DataGrid相关的Recordset对象_RecordsetPtr m_pDG1rs,m_pDG2rs,m_pDG3rs,m_pDG4rs,m_pDG5rs;CStatusBar m_wndStatusBar;CSalaryDlg(CWnd* pParent = NULL);/ standard constructor/ Dialog Data/AFX_DATA(CSalaryDlg)enum IDD = IDD_SALARY_DIALOG ;CStringm_strDepartID;CDataGridm_cDG1;CStringm_strDepartName;CStringm_strPersonID;CStringm_strPersonName;floatm_fBasicSalary;CStringm_strYearMonth;CDataGridm_cDG2;CDataGridm_cDG3;CDataGridm_cDG4;CDataGridm_cDG5;BOOLm_bFixed;CStringm_strItemName;floatm_fMoney;CStringm_strDesription;/AFX_DATA/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CSalaryDlg)public:virtual BOOL PreTranslateMessage(MSG* pMsg);protected:virtual void DoDataExchange(CDataExchange* pDX);/ DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:HICON m_hIcon;/ Generated message map functions/AFX_MSG(CSalaryDlg)virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();afx_msg void OnSystemConnect();afx_msg void OnSystemDisconnect();afx_msg void OnChangeEdtDepartid();afx_msg void OnDestroy();afx_msg void OnDblClickDatagrid1();afx_msg void OnChangeEdtPersonid();afx_msg void OnBtnChangesalary();afx_msg void OnBtnAddPerson();afx_msg void OnBtnAddList();afx_msg void OnConfigFormula();afx_msg void OnSystemExit();afx_msg void OnCalculateStat();afx_msg void OnMenuSelect(UINT nItemID, UINT nFlags, HMENU hSysMenu);afx_msg void OnMouseDownDatagrid2(short Button, short Shift, long X, long Y);afx_msg void OnMouseDownDatagrid3(short Button, short Shift, long X, long Y);afx_msg void OnMouseDownDatagrid4(short Button, short Shift, long X, long Y);afx_msg void OnMouseDownDatagrid5(short Button, short Shift, long X, long Y);afx_msg void OnDeleteRecord();afx_msg void OnPreviewView();DECLARE_EVENTSINK_MAP()/AFX_MSGDECLARE_MESSAGE_MAP();/AFX_INSERT_LOCATION/ Microsoft Visual C+ will insert additional declarations immediately before the previous line.#endif / !defined(AFX_SALARYDLG_H_393241C7_AFD8_11D6_8649_0088CC174723_INCLUDED_)5.3查看工资窗口类-CPreviewDlg CPreviewDlg类主要是负责查看所有员工本月实际发放工资的金额。CPreviewDlg代码及其解释如下:/AFX_INCLUDES()#include datagrid.h/AFX_INCLUDES#if !defined(AFX_PREVIEWDLG_H_79F367A2_B642_11D6_8649_0088CC174723_INCLUDED_)#define AFX_PREVIEWDLG_H_79F367A2_B642_11D6_8649_0088CC174723_INCLUDED_#if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000/ PreviewDlg.h : header file/ CPreviewDlg dialogclass CPreviewDlg : public CDialog/ Constructionpublic:CString m_strYearMonth;CPreviewDlg(CWnd* pParent = NULL); / standard constructor/ Dialog Data/AFX_DATA(CPreviewDlg)enum IDD = IDD_DLG_PREVIEW ;CDataGridm_cDG;/AFX_DATA/ Overrides/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CPreviewDlg)protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:/ Generated message map functions/AFX_MSG(CPreviewDlg)virtual BOOL OnInitDialog();/AFX_MSGDECLARE_MESSAGE_MAP();/AFX_INSERT_LOCATION/ Microsoft Visual C+ will insert additional declarations immediately before the previous line.#endif / !defined(AFX_PREVIEWDLG_H_79F367A2_B642_11D6_8649_0088CC174723_INCLUDED_)5.4薪资计算公式窗口类-CFormulaDlg CFormulaDlg类主要负责薪资计算公式的调整、保存、以及恢复这3个功能,以便计算员工本月工资使用,详细定义代码如下: #if !defined(AFX_FORMULADLG_H_780CCF87_B16F_11D6_8649_0088CC174723_INCLUDED_)#define AFX_FORMULADLG_H_780CCF87_B16F_11D6_8649_0088CC174723_INCLUDED_#if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000/ FormulaDlg.h : header file/ CFormulaDlg dialogclass CFormulaDlg : public CDialog/ Constructionpublic:CFormulaDlg(CWnd* pParent = NULL); / standard constructor/ Dialog Data/AFX_DATA(CFormulaDlg)enum IDD = IDD_DLG_FORMULA ;intm_nOvertime;intm_nErrand;intm_nLate;intm_nAbsent;/AFX_DATA/ Overrides/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CFormulaDlg)protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:/ Generated message map functions/AFX_MSG(CFormulaDlg)afx_msg void OnBtnReset();virtual BOOL OnInitDialog();afx_msg void OnBtnSave();/AFX_MSGDECLARE_MESSAGE_MAP();/AFX_INSERT_LOCATION/ Microsoft Visual C+ will insert additional declarations immediately before the previous line.#endif / !defined(AFX_FORMULADLG_H_780CCF87_B16F_11D6_8649_0088CC174723_INCLUDED_)六、 用户使用说明 本系统主要用户为系统管理员。系统管理员可以为员工输入基本工资、修改工资的计算方式、通过本月考勤情况计算出员工本月工资等所有功能。进入系统,选择“系统”菜单,可以看到系统下有三个菜单,如图4.1所示。在此菜单下可以进行登录系统、断开连接、退出系统。图4.1 系统菜单单击“连接”菜单,就会进入系统登录窗口,如图4.2所示。在这个窗口中需要输入管理员帐号和密码,并且选择ODBC数据源。 图4.2 登录窗口2登录后就可以看到系统的主要功能,如图4.3所示。在这个主输入部门号会自动列出次部门名称及部门员工。可以修改员工基本工资以及为员工添加固定津贴、月度福利、月度奖金及本月扣发工资等。图4.3 主界面在系统主菜单中单击“设置”菜单,可以看到设置工资计算方式的功能,如图4.4所示。在此菜单下可以进行工资计算公式的设置。图4.4 设置菜单 单击“调整工资计算公式”菜单,就可以进入工资计算公式调整窗口,如图4.5所示,可以调整工资的公式,同时可以进行保存设置和恢复默认值。图4.5 工资计算公式调整窗口 在系统主菜单中,单击“计算”菜单,可以看到子菜单中含有计算员工实发工资的功能,如图4.6所示。在此菜单下可以自动计算员工本月应发多少工资。图4.6 计算菜单在系统主菜单中,单击“查看”菜单,可以看到子菜单中含有查看本月员工工资的功能,如图4.7所示。在此菜单下可以看到员工本月应发多少工资。图4.7 查看菜单 单击“查看员工本月工资”菜单,就可以进入查看工资信息窗口,在这里就可以看到所有员工本月的应发工资信息。七、 程序编码部分源代码如下:/ SalaryDlg.cpp : implementation file/#include stdafx.h#include Salary.h#include SalaryDlg.h#include LoginDlg.h#include FormulaDlg.h#include PreviewDlg.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endifextern _ConnectionPtr pTheConn;/ CAboutDlg dialog used for App Aboutclass CAboutDlg : public CDialogpublic:CAboutDlg();/ Dialog Data/AFX_DATA(CAboutDlg)enum IDD = IDD_ABOUTBOX ;/AFX_DATA/ ClassWi
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!