1、软件工程课程设计报告题目:工资管理系统设计与实现班级: 教师: 学号: 姓名: 大学计算机科学与技术学院年 月课程设计任务书姓 名 学 号 班 级 课程名称 软件工程导论 课程性质 专业基础课设计时间 2009 年 9 月 20 日 2009 年 11 月 12 日设计名称 工资管理系统设计与实现姓名 学号 在本项目中的分工代码实现文档编写项目组成员设计要求使用传统软件工程方法对工资管理系统进行分析和设计,本程序是建立在 Windows 操作系统上,以 VB 为开发软件的应用程序,主要功能包括:人事信息的录入,修改,删除和查询操作:工资的核算查询;用户信息的管理等。计划与进度9 日 20 日至
2、 9 月 30 日学习项目开发的背景目标10 日 1 日至 10 月 7 日可行性研究10 日 8 日至 10 月 13 日系统分析(包括需求分析,数据流图,数据字典等)10 日 14 日至 10 月 24 日系统设计(包括功能设计,数据库设计及数据库的实现)10 月 25 日至 11 月 2 日系统实现11 月 3 日至 11 月 12 日软件测试及资料整理指导教师意见目录内容概要第一章 引 言1.1 项目开发背景1.2 项目开发的目标及意义1.3 系统的开发方法第二章 可行性研究2.1 系统流程图2.2 完成新系统的可行性第三章 系统分析3.1 系统的设计思想3.2 需求分析3.3 系统的
3、运行环境和开发平台3.4 数据流图3.5 数据字典第四章 系统设计4.1 功能模块设计4.2 系统总体功能模块4.3 数据库设计4.4 数据库结构的实现第五章 工资管理系统功能实现5.1 开发环境简介5.2 系统界面的设计5.3 员工基本信息管理功能设计5.4 工资管理功能设计第六章 软件测试第七章 用户操作手册 第八章 总结8.1 参考文献8.2 设计体会与建议内容摘要工资管理系统是使用 Visual Basic 6.0 开发的一个数据库管理系统。在此主要讲述了使用 SQL Server 2000 和 Visual Basic 6.0 完成工资管理系统基本功能的过程。开发这个系统的步骤主要有
4、系统分析、系统设计、系统实现和系统维护。在系统的设计中,详细的展现了系统的各个模块、所需的数据库表及表字段菜单的设计等。在系统的实现中,给出了实现表单中相应的功能控件的事件、代码及菜单实现的方法。本系统具有数据输入,数据存储,信息计算修改删除等功能,本系统也提供了友好的人际对话界面。第一章 引 言1.1 项目开发背景众所周知当今时代的世界经济正从工业经济向知识经济转变,而知识经济的两个重要特征就是信息化合全球化。要实现信息化和全球化就必须依靠完善的网络和数据库机制。处于现在这样一个飞速发展的信息时代,在各行各业中都离不开信息处理,这正是计算机被广泛应用于管理信息系统的环境,使用计算机进行信息控
5、制不仅提高了工作效率,而且大大的提高了其安全性。尤其是对于复杂的信息管理,计算机能够充分发挥其优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发时系统管理的前提。因此,对于企业或是事业单位来说开发一套工资管理系统是很必要的。虽然企业事业单位的管理已经进入信息化管理,但对于不同的单位所需要的功能是不一样的,这样通用的软件使用效率不高,还会造成人力,财力的浪费,这样就不能满足所有单位和部门的需求。所以必须做好客户的需求分析工作,设计符合用户要求的系统。1.2 系统开发的目标及意义企业和事业单位工资管理系统唯有采用自动化,高效率,人性化的管理,才能满足服务员工的需求。工资管理系统的主
6、要目标在于加强服务而不在于精简人力。所以系统要能提供更自动化的服务,期望以最快的速度将人事工资信息做最适当的运用。主要目标有:以自动化、系统化、高效管理代替分散重复操作;提高单位效益和现代化信息管理水平;提高员工的自律性,促进员工人才的成长和流动;减轻人事工资管理员的负担,节省人力物力的开支等。引进以计算机信息管理技术和网络通讯技术,是加快人事工资管理信息服务进程的重要手段。新的管理系统的使用会给人事管理体系发生变化。这促进了工资数据管理方式和理念的转变,提高了企业单位的现代化和信息化水平,为企业带来更多的效益。1.3 系统的开发方法本系统采用 Visual Basic 6.0 可视化开发工具
7、开发,采用 ADO 对象数据技术来提高系统的安全性和稳定性。工资管理系统可为企业和事业单位使用,属于 C/S 结构的数据库系统,固定后台数据库采用 SQL Server 2000。第二章 可行性研究2.1 系统流程图员工录入人事信息管理部门录入员工出勤工资核算工资管理基本工资出勤信息基本信息工资报表图 2.1 系统流程图 2.2 完成新系统的可行性工资管理系统吸取通用系统的优点的基础上,根据具体企业单位所要求的功能进行设计。添加业务管理模块,在业务管理模块中添加管理员工的业务档案,当用户的业务工种等发生变化时只需修改业务档案表记录即可。通用型工资管理的技术比较成熟,所以可以学习技术并添加一些企
8、业需要的功能,这样就能完成此系统以满足客户的需求。第三章 系统分析3.1 系统的设计思想工资管理系统是企业和事业单位常见的计算机信息管理系统。它的主要任务是对各种工资信息进行日常的管理,如工资信息的输入、查询、修改、增加、删除,迅速准确地完成各种工资信息的统计计算和汇总,快速打印出报表。在建立与实现工资管理系统时,应进行功能划分,能够由数据库管理系统完成的功能应尽可能由数据库管理系统完成,这样才能够充分发挥数据库管理系统高效、完全、可靠、便捷的性能,减少编程人员的工作量。3.2 需求分析工资管理系统是针对企事业单位的大量业务处理工作用计算机进行全面现代化管理主要包括信息输入功能,信息修改删除功
9、能,信息的查询以及工资的计算管理等。1.信息输入功能1)输入职工的基本信息。包括:Eno(员工编号)、Ename(员工姓名)、Epart(所属部门)、Eduty(职务)、Esex(性别)、Eedu(学历)、Eaddr(住址)、Ebir(出生年月)、Etel(电话号码)等。2)输入工资的信息。包括:(基本工资)、(岗位工资)、(住房补贴)、(津贴)、(工会会费)、(水电费)、(住房公积金)、(养老保险)、(奖惩)。3)输入员工的部门信息。包括:Bno(部门编号)、Bname(部门名称)、Bzg(部门总管)、Bmount(部门人数)等。2.数据修改和删除功能1)修改和删除员工的基本信息。当单位人员
10、的信息发生变化,如职称的改变,工作部门变动,或调离本单位等,系统应能修改员工的信息或将其从员工信息表中删除。2)修改和删除员工的工资信息。员工升职加薪、工资普调是企业中常见的事情,这就需要系统能方便对员工工资进行个别及批量的修改;如员工调离本单位,就应当从员工信息表中删除这个员工信息,将其工资信息表中相应的数据删除。3)修改和删除部门信息。当撤消一个部门时,文学艺术在能从部门信息表中将其删除。而当一个部门的名称发生改变时,系统中所有该项部门的名称应一致的改变。3.查询和统计功能1)能够查询指定员工的基本信息。2)能够查询指定某个部门或全部部门的基本信息。3)查询某个员工的工资信息。4)统计、汇
11、总指定年份企业各部门或某个部门每个月或全年工资总额,汇总各部门的人数或本单位的总人数。5)工资表月工资记录的生成功能。生成当月所有员工或某个部门的工资记录,同时能进行员工工资的计算,即计算应发金额、应扣金额及实发金额。3.3 系统的运行环境和开发平台本系统使用 Visual Basic 进行软件开发,SQL Server 2000 进行数据库开发。VB 是微软公司开发的最为流行的软件之一,也是社会上使用较多的开发工具之一。VB 是一个完全可视化,面向对象的开发工具,因此此系统具有兼容性较好,安全性强,通用性好等优点。3.4 数据流图在对企业和事业单位工资管理过程进行分析后,根据系统功能的描述,
12、得到工资管理系统的数据流图如下:1. 顶层数据流图与 0 层数据流图图 3.1 顶层数据流图图 3.2 0 层数据流图2.人事管理模块、工资管理模块查询模块分层数据流图部门表员工编号 员工与考勤数据工资数据考勤表 工资表图 3.3 员工信息查询与录入考勤表员工名称 考勤数据 工资信息工资表图 3.4 工资核算备份员工名备份工资表 备份数据工资表 工资备份表图 3.5 工资备份1.1 查 询 部 门及 员 工 信 息1.2 工 资录 入2.1 查 询考 勤 内 容2.2 计 算 工资3.1 查 询工 资 数 据3.2 数据 备 份工资表 考勤表员工信息查询要求 查询规则 查询结果员工表图 3.6
13、 员工信息查询35 数据字典数据字典是系统中各类数据描述的集合简要说明工资管理系统的数据字典。1).名字:职工编号,部门编号别名:职工号,部门号描述:职工号唯一地标识数据库中职工信息相关表中的一个特定员工的关键域;部门号唯一地标识部门信息表中的一个特定部门的关键域位置:员工信息表考勤表工资表2).名字:职工信息报表别名:职工信息描述:用户指定条件下的员工基本信息情况查询结果的信息表定义:职工信息表=职工号+职工姓名+性别+出生年月+职务+学历+电话号码+住址+所属部门+身份证号位置:输出到打印机3).名字:考勤信息报表别名:考勤信息描述:用户指定条件下的员工考勤信息查询结果的信息表定义:员工考
14、勤信息查询报表=考勤编号+员工号+员工姓名+加班天数+出差天数+旷工天数+迟到次数+考勤日期位置:输出到打印机4).名字:工资报表别名:工资信息描述:记录工资的组成部分以及员工的工资情况的信息定义:工资信息报表=职务+基本工资+每日工资+加班系数+出差天数+旷工标准+迟到标准+奖金位置:输出到打印机 4.1 要 求加 工4.2 查询 处 理第四章 系统设计4.1 系统功能设计软件所实现的功能强弱是衡量一个软件最根本的标准。经过系统的可行性研究,需求分析后,得出中小型企业的工资信息管理系统的功能分层图如下:工资管理系统2.1添加人事信息2.2修改人事信息2.4查询人事信息3.1设置工资3.3查询
15、职务基本工资3.2计算工资2.0 人事管理功能3.0 工资管理功能1.0 系统登录4.0 系统管理功能4.1 管理用户2.3删除人事信息4.1.1 添加用户4.1.2 修改用户密码图 4.1 工资管理系统层次图4.2 系统总体功能模块此工资管理系统分为五个模块,具体如下:1.人事基本信息管理模块:员工信息录入修改删除及查询。2.部门管理模块。3.考勤管理模块。4.工资计算及管理模块。4.3 数据库设计4.3.1 概念结构设计1.根据如上的信息可得到实体之间的关系 E-R 图如下:图 4.2 E-R 图2.概念结构模型图 4.3 概念模型 CDM4.3.2 逻辑结构设计将 E-R 图转换成如下关
16、系模式:员工表(员工号,员工名,职务,部门号,性别,出生年月,学历,电话,住址,身份证号)部门表(部门号,部门名,部门总管,部门人数,)考勤表(考勤编号,员工号,迟到次数,旷工次数,出差天数,加班次数,考勤日期)工资表(职务,员工号,基本工资,奖金,出差标准,加班标准,迟到系数,旷工次数)依据上面的关系模式,设计数据表如下:1. 用户表 :用于进入系统的权限设置等。表 1 用户信息表 Users列名 数据类型 长度 属性 描述userID char 5 主键 用户编号username varchar 10 不允许空 用户名password varchar 15 不允许空 密码mark varc
17、har 20 备注2.职工表:职工的基本信息。表 2 职工信息表 Employee列名 数据类型 长度 属性 描述Eno char 6 主键 职工编号Ename varchar 15 不允许为空 职工姓名Esex varchar 10 性别Ebirth Datetime 出生年月Eduty varchar 20 外键 职务Eedu varchar 20 学历Etel varchar 15 电话号码Eaddr varchar 20 住址Bno varchar 20 外键 部门编号IDidentify varchar 20 身份证号3.部门表:部门基本信息。表 3 部门信息表 Department
18、列名 数据类型 长度 属性 描述Bno char 5 主键 部门号Bname varchar 10 不允许空 部门名Bzg varchar 10 部门总管Bmount int 4 部门人数4.工资表:工资的基本组成信息。表 4 工资设置表 WageConfig列名 数据类型 长度 属性 描述Duty Varchar 20 主键 职务BaseWage Money 8 基本工资DayWage Money 8 每日工资QvertinmeJob Float 8 加班系数EvectionStandard Money 出差标准AbsenStandard Money 8 旷工标准LateStandard M
19、oney 8 迟到标准Bonus money 8 奖金5.考勤表:记录员工的到职情况。表 5 考勤统计表 CheckStat列名 数据类型 长度 属性 描述CheckID Int 主键 考勤编号Eno Char 6 外键 员工号Ename char 15 不允许空 员工姓名OvertimeDay Varchar 加班天数EvectionDay Smallint 出差天数AbsentDay Smallint 旷工天数LateDay Smallint 迟到次数CheckDate smalldatetime 考勤日期6.工资表:记录保存计算出来的工资。表 6 工资表 Wage列名 数据类型 长度 属
20、性 描述WageID int 主键 编号EmployeeID char 6 不允许空 员工编号EmployeeName varchar 15 不允许空 员工姓名WageName datetime 不允许空 工作日期BaseWage money 不允许空 基本工资OvertimeWage money 不允许空 加班工资EvectionWage money 不允许空 出差补助AbsentWage money 不允许空 旷工减薪LateWage money 不允许空 迟到减薪EtcWage money 不允许空 其他补助BonusWage money 不允许空 奖金TotalWage money 不
21、允许空 总工资4.3.3 物理结构模型图 4.4 物理结构模型 PDM4.4 数据库结构的实现1、数据库的创建T-SQL 语句:Create database 工资管理on(name=Wages_data,filename=E:MSSQLDataWages_data.mdf,size=10mb,maxsize=100mb,filegrowth=5%)log on(name=Wages_log,filename=E:MSSQLDataWages_log.ldf,size=5mb,maxsize=30mb,filegrowth=2mb)2、数据表的创建(可同时在创建时定义相关的约束)T-SQL 语
22、句:1) Users 表:Create table Users( UID int not null defaultPrimary Key,Uname char(8) not null default, UPassword char( 16) default,URight char(20) default,) 2)Employee 表:create table Employee(EmployeeID char(8) not null defaultPrimary Key,EmployeeName char(8) not null default,Sex char(2) default,Birth
23、day smalldatetime default,Education char(8) default,Duty char(20) not null References WageConfig(Duty) ON UPDATE CASCADE ON DELETE CASCADE,DepartmentID char(20) not null,IdentityID char(20) not null,Telephone char(15) not null,Address char(40) not null,Remark varchar(100) default)3)WageConfig 表:Crea
24、te table WageConfig(Duty char(20) not null defaultPrimary Key,BaseWage money not null,DayWage money not null,OvertimeJob float(8) not null,EvectionStandard money not null,AbsentStandard money not null,LateStandard money not null,EtcStandard money not null,Bonus money not null)4)CheckStat 表:create ta
25、ble CheckStat(CheckID int IDENTITY(1,1) Primary Key,EmployeeID char(8) not null References Employee(EmployeeID) ON UPDATE CASCADE ON DELETE CASCADE,EmployeeName varchar(15) default,Overtimeday smallint default,Evectionday smallint default,Absentday smallint default,Lateday smallint default,CheckDate
26、 smalldatetime default)5)Wage 表:create table Wage(WageID int IDENTITY(1,1) Primary Key,EmployeeID char(8) not null References Employee(EmployeeID) ON UPDATE CASCADE ON DELETE CASCADE,EmployeeName varchar(15) default,WageDate smalldatetime default,BaseWage money default 0,OvertimeWage money default 0
27、,EvectionWage money default 0,AbsentWage money default 0,LateWage money default 0,EtcWage money default 0,BonusWage money default 0,TotalWage money default 0,)6)DepartmentID 表:Create table DepartmentID(DepartmentID int not null defaultPrimary Key,Departmentname char(16) not null default, Departmentm
28、anage char( 8) default,Departmentnumber int default,)3.向表中插入基本信息1)插入用户基本信息insert into Usersselect01,1,1,系统管理员union select 02,yy,1234,人事管理union select 03,ll,1234,工资管理union select 04,lxj,1234,人事管理union select 05,ws,1234,工资管理union select 06,mq,1234,系统管理员2)插入职工基本信息insert into Employee(EmployeeID,Employe
29、eName,Sex,Birthday,Education,Duty,DepartmentID,IdentityID,Telephone,Address,Remark)select0101,时妍妍 ,女,1988-08-15,总管,策划部,15862110365,淮安,union select 0401,梁丽,女,1989-01-08,总管,财务部,15862110353,淮安,union select 0301,潘娟,女,1988-01-25,工人,生产部,15862110371,徐州,union select 0402,许洁,女,1990-01-27,工人,财务部,15862110365,河
30、南,union select 0501,王涛,1987-10-13,工人,销售部,15862110001,福建,union select 0201,徐杰,1984-07-09,研究生,技术人员,研发部,15862110002,无锡,union select 0701,张凯,1985-04-12,总管,后勤部,15862110003,浙江,union select 0601,李璐,女,1986-05-16,大专,总管, 宣传部 ,15862110004,苏州,union select 0302,石磊,1985-02-07,工人,生产部,15862110005,扬州,union select 03
31、03,吴华,1986-06-24,工人,生产部,15862110006,山东,union select 0304,唐建青,1989-11-10,总管,生产部,15862110007,扬州,union select 0502,李云,女,1988-03-17,工人,销售部,158621100008,镇江,union select 0202,王兆坤,1986-04-30,总管,研发部,15862110009,无锡,union select 0305,梁玉冲,1990-09-04,工人,生产部,15862110010,无锡,union select 0503,金坛,1989-12-15,总管,销售部,
32、15862110011,上海,union select 0403,夏平,1986-01-13,大专,工人,财务部 ,15862110012,四川,union select 0602,邵建波,1984-03-17,工人,宣传部,15862110013,徐州,union select 0603,李书生,1987-11-22,工人,宣传部,15862110014,南通,union select 0102,陆林,1980-08-21,博士,工人,策划部 ,15862110015,河北,union select 0702,黄婷,女,1981-05-16,工人,后勤部,15862110016,安徽,uni
33、on select 0203,周宇,1982-07-19,研究生,技术人员,研发部,15862110017,浙江,union select 0703,李晓梅,女 ,1982-04-03,工人,后勤部 ,15862110018,宿迁,第五章 工资管理系统功能实现5.1 开发环境简介Visual Basic 是一个可视化、面向对象的、采用事件驱动的结构化高级程序设计语言,它具有强大的数据库操作功能,提供了数据管理器(Data Manager)、数据控件(data Control)以及 ADO(Activex 数据对象)等工具,利用它能够建立多种类型的数据库并可以管理维护和使用这些数据。5.2 系统
34、界面的设计图 5.1 系统界面系统主界面主要有系统菜单和运行界面。给界面提供了系统设置,人事管理,工资管理和帮助等功能,下面又分多个子功能。5.3 员工基本信息管理功能设计(代码)添加操作:Dim EmployeeID, Employeename, Sex, birthday, Education, Duty, DepartmentName, IdentityID, Telephone, Address As StringEmployeeID = Text1.TextEmployeename = Text2.TextEducation = Text3.TextDuty = Text8.Text
35、DepartmentName = Text4.TextSex = Combo1.TextIdentityID = Text5.TextTelephone = Text6.TextAddress = Text7.TextIf Trim(EmployeeID) = “ Or Trim(Employeename) = “ Or Trim(DepartmentName) = “ ThenMsgBox “员工基本信息不能为空,请填写!“Exit SubEnd IfmyCon.Open “Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Securi
36、ty Info=False;Initial Catalog=工资管理 ;Data Source=HP-PC;“myRs.Open “select * from Employee where EmployeeID=“ Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=工资管理 ;Data Source=HP-PC;“myRs.Open “select * from employee where EmployeeID=“ Integrated Security=SSPI;Persist Security Inf
37、o=False;Initial Catalog=工资管理 ;Data Source=HP-PC;“myRs.Open “select * from employee where EmployeeID=“ & Text1.Text & “, myCon, 3, 2myRs!Employeename = Text2.TextmyRs.UpdatemyRs.ClosemyCon.CloseMsgBox “您确定要修改吗? “, vbYesNo, “提示“jbxx.Adodc1.Refreshjbxx.DataGrid1.RefreshText1.Text = “Text2.Text = “Text3
38、.Text = “Text4.Text = “Combo1.Text = “Text5.Text = “Text6.Text = “Text7.Text = “Text8.Text = “5.4 工资管理功能设计员工信息查询:Option ExplicitPrivate Sub cmdExit_Click()Unload MeEnd SubPrivate Sub cmdQuery_Click()Dim sql As String按编号查询If chkNumber.Value = True ThenIf cboNumber.Text = “ ThenMsgBox “请选择员工编号!“, vbEx
39、clamationcboNumber.SetFocusExit SubElseIf IsNumeric(cboNumber.Text) = False ThenMsgBox “员工编号是数字量!“, vbExclamationcboNumber.SetFocusExit SubElsesql = “select * from Wage where EmployeeID=“ & _cboNumber.Text & “Adodc1.RecordSource = sqlAdodc1.RefreshEnd IfEnd If按姓名查询If chkName.Value = True ThenIf cboN
40、ame.Text = “ ThenMsgBox “请选择员工姓名!“, vbExclamationcboName.SetFocusExit SubElsesql = “select * from Wage where EmployeeName=“ & _cboName.Text & “Adodc1.RecordSource = sqlAdodc1.RefreshEnd IfEnd If全部查询If chkAll.Value = True Thensql = “select * from Wage“Adodc1.RecordSource = sqlAdodc1.RefreshEnd IfEnd
41、SubPrivate Sub Form_Load()Dim sql As StringDim rs As New ADODB.RecordsetChangeFormPos MDIForm1, Me填充员工编号下拉框sql = “select EmployeeID from Wage“Set rs = ExeSQL(sql)If rs.EOF = False ThenDo Until rs.EOF = TruecboNumber.AddItem rs!EmployeeIDrs.MoveNextLoopEnd If填充员工姓名下拉框sql = “select EmployeeName from W
42、age“Set rs = ExeSQL(sql)If rs.EOF = False ThenDo Until rs.EOF = TruecboName.AddItem rs!Employeenamers.MoveNextLoopEnd IfEnd Sub第六章 用户操作手册此系统是企业和事业单位进行工资基本信息管理的软件。1. 系统登陆用户输入用户名和密码后可以登录。图 6.1 登陆界面2. 系统主界面此处可以进行系统设置,人事管理和工资管理等功能。图 6.2 系统主界面3. 用户管理主要有查看用户,修改密码,增加和删除用户等操作。输入提示的内容,点击确定则完成相应的操作,下图可实现添加用户功
43、能。4. 人事信息管理下图实现人事管理功能,输入信息或选定进行添加,修改和删除操作。图 6.3 人事信息管理5. 工资管理输入基本的信息组成部分可进行工资计算,并实现工资查询。图 6.4 设置工资第七章 软件测试报告登陆界面测试:输入为空或密码错误时有相应的提示。(如图 7.1 和 7.2)图 7.1 提示未输入同户名图 7.2 提示密错误用户管理功能测试:用户管理时修改添加等输入不正确情况。(图 7.3 和图7.4)图 7.3 密码不输入提示图 7.4 资料填写不完整提示人事管理功能测试:对职工信息操作时的提示。(图 7.5 到图 7.6)图 7.5 添加用户操作时空输入图 7.6 删除操作时提示工资管理功能测试:计算工资和查询工资。(图 7.7 到图 7.8)图 7.7 计算工资