《企业工资管理系统课程设计说明书(29页).doc》由会员分享,可在线阅读,更多相关《企业工资管理系统课程设计说明书(29页).doc(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-企业工资管理系统课程设计说明书-第 26 页湖南人文科技学院计算机系课程设计说明书课程名称:软件工程导论课程代码:408023题 目:企业工资管理系统年级/专业/班:08级计科二班学生姓名:学 号:指导老师:颜富强开题时间:2009年6月5日完成时间:2009年6月29日2009年6月18日课程设计任务书及成绩评定课程名称:软件工程导论完成者:1、设计的目的与要求 1)加强学生的实践能力; 2)理解小型系统开发的基本步骤; 3)本系统的功能包括:档案信息管理模块、工资管理模块、工资统计模块,部门查询,特殊查询,报表查询。2、设计进度及完成情况日 期内 容6.5-6.7项目开发计划书6.8-6
2、.10系统需求说明书6.11-6.13系统设计说明书6.14-6.15项目的形成6.16-6.17测试计划和Bug跟踪列表6.17-6.18项目的递交3、成绩评定设计成绩: (教师填写)指导老师: (签 字)二00九 年 月 目 录目 录1一 项目开发计划书31.1 引言31.2 工资管理系统功能模块描述41.3 实施计划41.4 支持条件5二 可行性分析52.1 可行性研究前提52.2 经济上可行性62.3 技术可行性62.4 开发工具的选择62.5 开发工具概述62.5.1 JSP 概述62.5.2 SQL Server数据库简介7三 需求分析83.1 市场需求分析83.2 系统需求分析8
3、3.2.1 系统目标83.2.2 系统的分析和概要设计93.2.3 系统功能分析103.2.4 系统业务流程图113.3 系统E-R图123.4 数据流图133.5 数据字典15四 系统设计164.1 系统处理流程和数据流程164.2 系统数据库概念结构184.3 系统数据库逻辑结构184.4 系统数据库设计19五 系统测试225.1 部分代码225.1.1 登陆平台225.1.2 工资查询系统245.1.3 工资发放系统265.2测试275.2.1 测试的作用和意义275.2.2 测试方法275.2.3 测试内容285.2.4 测试结果28六 总结29参考文献29附录:编码规范29一 项目开
4、发计划书1.1 引言企业工资管理系统是一个企业单位不可缺少的部分,它的内容对于企业的决策者和管理者来说都至关重要,所以工资管理系统应该能够为用户提供充足的信息和快捷的查询手段。使其公司工资管理初步实行计算机化,让计算机在工资管理中得到初步应用。使工资管理者总是根据准确、及时的工资管理信息来进行决策,实现管理。只有计算机才能将现代化社会中,成倍增长的工资管理信息量,进行及时收集、加工、整理、贮存、检索、传递、反馈给决策者。而一个企业工资管理系统在企业对工资管理已不可或缺。其功能主要有:(1)对输入的工资管理数据,进行数值运算和逻辑运算,求解各种问题。(2)对工资管理信息进行加工来解决各种数据处理
5、问题,为人事决策者在决策时提供依据。(3)对工资管理的各种资料数据进等统计计算,并将处理后的信息存贮起来。当前,不少单位的工资管理部门对于计算机的应用还仅限于简单的单机应用,随着时间的推移、任务的复杂、用户的需求,其应用还会扩大。随着计算机的广泛应用,计算机工资管理信息系统的建立,适应了社会经济发的客观要求,是工资管理现代化的一大进步。今天我们运用计算机进行了工资管理档案管理的初步现代化的开发和使用,它大大提高了工资管理工作者的工作效率,它把工资管理(档案、工资)从繁重的手工操作中解脱出来,用更多精力从事创造性的管理活动;它能使决策、计划和其它管理活动更加科学、精确、灵活。因此,建立计算机工资
6、管理信息系统是一种客观发展必然趋势。尽管在工资管理方面还不可能普遍使用计算机,但从长远来说,工资管理现代化和计算机是不分割的。轻视或者拒绝利用计算机技术,就不可能真正地、全面地实现工资管理现代化。1.2 工资管理系统功能模块描述具体系统功能需求描述(1) 档案信息管理 提供对”人员档案信息”数据输入、查询功能。(2) 工资管理 提供对”职工工资表”数据的输入、查询、统计功能。(3) 工资统计 提供对“职工工资表”数据的月统计,由系统自行生成“职工工资构成情况表”实现该表的查询、打印功能。(4) 部门查询 提供以某一部门为索引的”人员档案信息”查询功能。(5) 特殊查询 提供对日期型字段和合同期
7、限的”人员档案信息”查询功能。(6) 报表查询 提供对工资、职工履历的信息以报表的形式供用户查询、打印,另外用户还可以对这些基本信息进行更新和删除, 1.3 实施计划工作任务的分门与人员分工 组长: 贺泽溪 任务: (1)系统总的开发计划书 (2)每周至少组织小组讨论一次,记录讨论内列出本周开发计划 (3)项目开发进度的管理 (4)团队的组织和协调设计:罗维 马红操 任务:(1)参与小组讨论 (2)进行系统的需求分析和系统设计 (3)完成系统需求说明书和系统设计说明书 (4)编写测试计划,参与系统测试 (5)协助文档人员完成用户相关文档开发:王日春 卢洪波 任务:(1)参与小组讨论 (2)根据
8、设计完成编码,并注释 (3)进行单元测试系统规划阶段: 项标志性事件 开始到完成开发阶段: 目开发计划书的完成 6.5-6.7需求分析阶段: 系统需求说明书完成 6.8-6.10设计阶段: 系统设计说明书 6.11-6.13编码实现: 项目的形成 6.14-6.15测试阶段: 测试计划和Bug跟踪列表 6.16-6.17移交阶段: 项目的递交 6.17-6.181.4 支持条件计算机系统支持操作系统需要 windows 2000以上版本;二 可行性分析2.1 可行性研究前提要求:满足对工资管理的基本要求及功能,并对职工信息收集、处理、保存。目标:实现无纸化办公,节省成本,提高工作效率。条件、假
9、定、限制:当企业工资管理的信息量和复杂程度达到某一限度时,即管理人员的劳动强度超过其承受能力时,就必须采用新的管理手段,如用计算机技术对信息的收集、加工、传递和存贮等,这样,一个工资管理系统就可以对企业职工工资进行高效、合理、恰当地管理。此系统成本低廉,自开发到运行结束至少可运行3年,开发成本不超过600人民币,开发软件到投入使用不超过1个月。2.2 经济上可行性开发成本:600元人民币。效益:大幅度地提高工资管理信息系统的工作质量和效率,让企业掌握整个工资管理系统的全面情况,为管理人员提供了准确的工资管理信息,促进工资管理工作的规范化及各项管理制度与指标体系的建立和健全;提供各种加工处理了的
10、工资管理信息,以满足工资管理的特殊要求,适应新形势对职工队伍提出的新要求。效益/投资比:暂时无法估算。投资回收期:大约3个月。2.3 技术可行性软件需求:操作系统WINDOWS 2000 Advance Server以上。硬件需求:赛扬1.7G CPU、512M内存 80G硬盘的计算机。本系统采用JSP实现,依靠其强大的面向对象系统,与SQL Server2000数据库管理系统相结合,能在1个月内开发出系统。2.4 开发工具的选择eclipse作为前台的开发工具,用SQL Server200作为后台支持数据库,通过JSP的数据库控件来连接SQL Server200中并对其编程来实现各种功能。2
11、.5 开发工具概述2.5.1 JSP 概述JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。 JSP与Java Servlet一样,是在服务器端执行
12、的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。 JSP的1.0规范的最后版本是1999年9月推出的,12月又推出了1.1规范。目前较新的是JSP1.2规范,JSP2.0规范的征求意见稿也已出台。 JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet 是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特
13、网的所有特点。 自JSP推出后,众多大公司都支持JSP技术的服务器,如IBM、Oracle、Bea公司等,所以JSP迅速成为商业应用的服务器端语言。 JSP可用一种简单易懂的等式表示为:HTML+Java=JSP。2.5.2 SQL Server数据库简介SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase、Ashton-Tate等三家公司共同开发的,并于1988年推出了第一个在OS/2版本上运行的SQL Server系统。1992年Sybase和Microsoft这两家公司将SQL Server移植到了Windows
14、 NT操作系统上,后来Microsoft致力于Windows NT平台的SQL Server的开发,而Sybase则专注于SQL Server在UNIX上的应用。 近年来在Microsoft SQL Server的发展历程中不断更新版本,有两个版本具有重要的意义。即是在1996年推出的SQL Server6.5版本和在2000年8月推出的SQL Server2000版本。6.5版本使得SQL Server得到广泛的应用,而2000版本在功能和易用性上有很大的增强,并推出了简体中文版,它包括企业版、标准版、开发版和个人版等4个版本。三 需求分析3.1 市场需求分析工资管理系统是一个企业单位不可缺
15、少的部分,它能为用户提供充足的信息和快捷的查询手段。(1)一个工资管理系统可以高效能、大容量地收集、处理、存贮工资管理信息,大幅度地提高工资管理信息系统的工作质量和效率。(2)能够为企业管理人员及时掌握整个工资管理系统的全面情况,提供系统的准确的工资管理信息,可以促进工资管理工作的规范化及各项管理制度与指标体系的建立和健全。(3)为企业提供各种加工处理了的工资管理信息,以满足工资管理的特殊要求,适应新形势对职工队伍提出的新要求,帮助管理人员选择方案,实现优化决策。虽然当前,不少单位的工资管理部门对于计算机的应用还仅限于简单的单机应用,随着时间的推移、任务的复杂、用户的需求,其应用还会扩大。3.
16、2 系统需求分析3.2.1 系统目标企业工资管理系统可以用于支持企业完成工资管理工作,有如下3个方面的目标。(1)支持企业实现规范化的管理。 (2)支持企业高效率完成人事管理的日常业务,包括新员工加入时人事档案的建立,老员工转出、辞职、退休等。 (3)支持企业进行人事管理及其相关方面的科学决策,如企业领导根据现有的员工合同期限决定是否继续聘用等。3.2.2 系统的分析和概要设计根据实际情况,我们使用原型法(Rapid Prototyping)即以少量代价快速地构造一个可执行的软件系统模型。使用户和开发人员可以较快地确定需求,然后采用循环进化的开发方式,对系统模型作连续的精化,将系统需具备的性质
17、逐渐增加上去,直到所有的性质全部满足。此时模块也发展成为最终产品了。通过对用户需求的分析,我们可以分析出该工资管理系统大致可以分为六个模块:人事档案管理模块、职工工资管理模块、工资统计模块的实现、部门查询模块、特殊查询模块、报表查询模块。现在对这六个模块做具体说明: 人事基本情况管理模块: 输入:职工信息 输出:“人员档案表”功能:对人事基本信息的查询 职工工资管理模块 输入:人员月工资 输出:“职工工资表” 功能:完成员工工资的查询 工资统计模块输出:“职工工资统计表”功能:完成员工工资的统计和打印 部门查询模块输出:以部门为索引的“职工档案信息”功能:完成以部门为索引的“职工档案信息”的统
18、计和查询 特殊查询模块的实现输出:满足查询条件的“职工档案信息”和职工合同的期限功能:完成满足查询条件的“职工档案信息”和职工合同的期限的查询 报表查询模块的实现 输出:员工履历信息和工资信息的基本情况 查询及打印功能功能:完成对员工履历信息和工资信息基本情况的查询及打印3.2.3 系统功能分析本系统是基于JSP和SQL Server数据库建立的B/S结构管理系统,考虑了两种角色:工资管理员和普通员工。他们通过相同的登陆页面,选择不同的登陆方式,各自进入自己的用户界面管理员进入管理页面可以对员工发放工资,可以新添加新的员工,修改自己的密码,以及发布消息:普通用户可以查看自己的工资情况,可以根据
19、需要查询具体每个月,或几个月的工资发放情况,察看最近的动态发布消息,同时也可以修改密码:3.2.4 系统业务流程图普通员工管理员用户登录判断用户管理平台用户平台发放工资发布消息修改密码添加员工察看消息查询工资修改密码注销登录职工编 号民族婚否3.3 系统E-R图籍贯满勤缺勤性别出勤表员工职务员工信息设置m用户1m工资设置报表查询技能工 资实发工资别资1实发工资别资职工编 号m部门设置部门m工资职务基本工 资职工姓 名职务 图3-3 E-R图3.4 数据流图 表6-1 底层数据流图 表6-2 工资管理第一层数据流图 表6-3 工资管理的展开表6-4 本月工资管理的展开3.5 数据字典通过系统需求
20、分析,对企业工资管理系统编制数据字典如下:(1) 数据流定义数据流名称:职工名单数据流编号:F1简述:职工信息数据来源:人事科数据去向:P1.1数据流名称:本月工资数据流编号:F2简述:对职工本月工资进行修改数据来源:劳资科数据去向:P2.1,P2.2(2) 数据存储定义数据流名称:职工发工资数据流编号:P2.2简述:根据工资条形成本月工资表输入数据流:D2-P2.2输出数据流:P2.2-职工处理:查询D1(本月工资表),打印本月职工工资条财务记账后传盘给银行。(3) 处理逻辑定义外部实体名称:人事科数据流编号:S1简述:对职工添加,删除进行管理的部门输出数据流:F1外部实体名称:劳资科数据流
21、编号:S2简述:对职工工资进行管理的部门输出数据流:F2外部实体名称:财务科数据流编号:S3简述:发放工资,及工资记账管理。(4) 外部实体定义数据存储名称:职工信息表数据存储编号:D0简述:职工基本信息数据存储组成:职工编号+姓名+科室号+职称+体制+医保号+公积金号+养老金号+银行账号+有效标志关键字:职工编号相关处理:F1数据存储名称:本月工资表数据存储编号:D1简述:职工本月工资信息数据存储组成:职工号+工资日期+操作员+1薪金科目20+1扣款科目5关键字:职工编号+工资日期相关处理:F2四 系统设计4.1 系统处理流程和数据流程银行帐户性别财务处数据库职工工作部门部门汇总信息姓名职称
22、工作考勤情况后勤部门职工月消费及工资税汇总表水电费个人所得税职工保险住房公积金银行ATM机收费公司税务部门保险公司人事处4.2 系统数据库概念结构发布浏览管理员修改密码工资发放员工查询修改动态消息4.3 系统数据库逻辑结构4.4 系统数据库设计由于考虑到本系统是应用在单机系统上,另外根据人员规模,我们只建立起一个数据库,在此数据库基础上建立起如下表:职工基本信息表employee_information_table职工工资表 employee_salary_table系统信息表 system_table 下面我们详细说明:表3-21 员工基本信息字段名类型长度允许职工编号数值型8No部门字符型
23、6Yes职务字符型8Yes职工姓名字符型8Yes身份证号字符型18Yes性别字符型2Yes出生日期日期型10Yes婚否逻辑型2Yes文化程度字符型8Yes政治面目字符型6Yes毕业学校字符型16Yes联系电话数值型16Yes籍贯字符型10Yes民族字符型10Yes家庭地址字符型30Yes邮政编码数值型6Yes入单位时间日期型10Yes合同期限数值型8Yes职称字符型16Yes评定时间日期型10Yes备注备注型100Yes表3-22 部门查询表字段名类型长度允许职工编号数值型8No职工姓名字符型8Yes职务字符型8Yes实发工资数值型8Yes表3-23 员工工资表字段名类型长度允许职工编号数值型
24、8No职工姓名字符型8Yes年/月日期型10Yes技能工资数值型8Yes工龄工资数值型8Yes岗位工资数值型8Yes职务工资数值型8Yes洗理费数值型8Yes房屋补贴数值型8Yes交通补贴数值型8Yes价格补贴数值型8Yes工会会费数值型8Yes房屋租金数值型8Yes养老保险数值型8Yes建房扣款数值型8Yes实发工资数值型8Yes表3-24 工资统计表字段名类型长度允许部门字符型8Yes人数数值型10Yes工资总和数值型20Yes表3-25 特殊查询表字段名类型长度允许职工编号数值型8No职工姓名字符型8Yes日期日期型8Yes表3-26 报表查询表字段名类型长度允许职工编号数值型8No部门
25、字符型6Yes职务字符型8Yes房屋租金数值型8Yes养老保险数值型8Yes建房扣款数值型8Yes实发工资数值型8Yes日期日期型8Yes五 系统测试5.1 部分代码5.1.1 登陆平台该平台可以实现员工和管理员的登录验证,根据登陆的身份不同进入不同的管理系统如:普通员工进入工资查询系统,管理员则进入工资发放系统。核心代码: String lname = request.getParameter(UserName); String lpassword = request.getParameter(Password); int ltype = Integer.parseInt(request.g
26、etParameter(logintype); if (ltype = 0) if (login.isManager(lname, lpassword, ltype) session.setAttribute(MANAGERID,String.valueOf(login.getMID(); session.setAttribute(MANAGERNAME,lname); session.setAttribute(MANAGERPASSWORD,lpassword); response.sendRedirect(manageMain.jsp); else response.sendRedirec
27、t(error.jsp); else if (ltype = 1) if (login.isUser(lname, lpassword) session.setAttribute(GUESTID,String.valueOf(login.getUID(); session.setAttribute(GUESTNAME,lname); session.setAttribute(GUESTPASSWORD,lpassword); response.sendRedirect(user.jsp); else response.sendRedirect(error.jsp);以及javabean文件的核
28、心部分: public boolean isManager(String manager, String password, int type) this.setMname(manager); this.setMpassword(password); String cstr = select * from manager where managername= + manager + and managerpassword= + password + ; try mcon = this.connection(); mstmt = mcon.createStatement(); mrs = mst
29、mt.executeQuery(cstr); if (mrs.next() setMID(mrs.getInt(MID); return true; else return false; catch (Exception ex) return false; public boolean isUser(String user,String password) this.setUsername(user); this.setUserpassword(password); String ustr = select * from guestuser where username= + user + a
30、nd userpassword= + password + ; try ucon=this.connection(); ustmt=ucon.createStatement(); urs=ustmt.executeQuery(ustr); if(urs.next() setUID(urs.getInt(USERID); return true; else return false; catch(Exception ex) System.out.println(ex.toString(); return false;5.1.2 工资查询系统该子系统实现普通员工对工资的查询以及动态新闻的浏览以及密
31、码修改核心代码: Connection usercon; Statement userstmt; ResultSet userrs; String rsstr= select * from guestuser where username= + uname + and userpassword= + upassword + ; try usercon=datacon.connection(); userstmt=usercon.createStatement(); userrs=userstmt.executeQuery(rsstr); while(userrs.next() userrs.c
32、lose(); userstmt.close(); usercon.close(); catch(Exception ex)修改密码的核心代码:package DataBase;import java.sql.*;public class Changepwd extends DataAction private Connection changepwdcon; private Statement changestmt; public boolean change(String username,String oldpass,String newpass) changepwdcon=this.c
33、onnection(); String changestr = update guestuser set userpassword= + newpass + where username like + username + ; try changestmt = changepwdcon.createStatement(); changestmt.execute(changestr); changestmt.close(); changepwdcon.close(); return true; catch (Exception ex) System.out.println(ex.toString
34、(); return false;5.1.3 工资发放系统该平台下,管理员可以为员工发放每月的工资,同时还可以修改密码以及发布动态的新闻。核心代码: String mdStr=select * from guestuser; try Connection mdcon=managecon.connection(); Statement mdstmt=mdcon.createStatement(); ResultSet mdrs=mdstmt.executeQuery(mdStr); while(mdrs.next() mdrs.close(); mdstmt.close(); mdcon.close(); catch(Exception ex)5.2测试5.2.1 测试的作用和意义系统测试是教师工资管理系统的开发周期中的一个十分重要环节。尽管在系统开发周期的各个阶段均采取了严格的技