1、职工工资管理系统实习报告C+实习报告项目名称:职工工资管理系统项目组名:职工工资管理系统项目组项目成员:完成日期:2011年10月23日班级名称:信息系统与信息管理概要设计1引言1.1编写目的 设计一个职工工资管理系统,能够方便的对职工及工资情况进行管理,统计每个部门的员工,整个公司的员工工资,员工信息等,包括工资,奖金,纳税等等。并能够修改员工的各种信息,在需要的时候可以方便的排序。采用菜单交互方式,设计一个界面友好,操作简单方便的软件系统。1.2背景说明 待开发软件系统的名称:职工工资信息管理系统 项目任务提出者:C+培训老师开发者: 用户:西北大学校教务处 运行环境:WINDOWS 98
2、,WINDOWS 2000/xp,1.3定义1.4参考资料软件工程C+数据结构列出有关的参考资料,如:a本项目的经核准的计划任务书或合同、上级机关的批文;b属于本项目的其它已发表的文件;c本文件中各处引用的文件、资料、包括所要用到的软件开发标准。列出这些文件资料的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。2 总体设计2.1需求规定主要输入项目:员工基本信息、工资的基本信息、工资的扣除费登录的用户名和密码主要输出项目:员工基本信息、工资的基本信息、工资的扣除费用信息2.2运行环境硬件要求:CPU主频1.5G以上, 内存256Mb以上,硬盘10G以上软件要求:Window
3、s 2000/XP 2.3基本设计概念和处理流程v基本设计概念:系统以菜单方式工作(文本菜单) 输入数据,输出数据用文件保存v处理流程:v所用到的关键类及它们之间的关系如下表:2.4 结构 用一览表及框图的形式说明本系统的系统元素(各层模块、子程序、公用程序等)的划分,扼要说明每个系统元素的标识符和功能,分层次地给出元素之间的控制与被控制关系。2.5功能需求与程序的关系 本条用一张如下的矩阵图说明各项功能需求的实现同各块程序的分配关系。程序1程序2. .程序m 功能需求1功能需求2. .功能需求n3接口设计 3.1 用户接口DOS下用户界面操作。 说明将向用户提供的命令和它们的语法结构,以及软
4、件的回答信息。3.2 外部接口 磁盘的文件读写。 说明本系统同外界的所有接口的安排包括软件与硬件之间的接口、本系统与各支持软件之间的接口关系。3.3 内部接口 各层次类与函数直接的调用。 说明本系统之内的各个系统元素之间的接口的安排。4 运行设计4.1 运行模块组合 说明对本系统施加不同的外界运行控制时所引起的各种不同的运行模块组合,说明每种运行所历经的内部模块和支持软件。4.2 运行控制 说明每一种外界的运行控制的方式方法和操作步骤。4.3 运行时间 说明每种运行模块组合将占用各种资源的时间。5 系统数据结构设计类名:User属性:userName 用户名passWord 登陆密码 user
5、Type 用户类型方法: changePwd(String) 更改密码lookup() 查询信息类名:SalaryManager 基类: User 方法:Stat() 统计 Sort() 排序 editEmployInfo(SalaryTable ) 编辑员工信息 save() 保存类名: Employee 基类: User 属性:salaryId, 工资卡号IDCarad, 身份证号name,姓名sex,性别age年龄,wAge工龄,department部门,pos 职位,posId 职位号,homeTel家庭电话,mobilePhone 手机方法: getInfo(); 返回信息getSa
6、laryTable(); 返回薪水表 changeHomeTel(); 更改家庭电话号码changeMobilePhone () 更改手机号码类名:SystemManager方法:createUser(string,string,string) 创建员工editSalaryTable(SalaryTable) 编辑员工表creatEmpyInfo() 创建员工信息类名:SalaryInfo属性: positionId,position,baseSalary,bSalary,subsidy类名 SalaryTable属性: salaryId,name,allSalary,Deducted,tax
7、,prize方法:save()caluteSalary()类名:Deducted属性:salaryId,waterFee,electricFee,cleanFee,TVFee 详细设计1.1编写目的设计一个职工工资管理系统,能够方便的对职工及工资情况进行管理,统计每个部门的员工,整个公司的员工工资,员工信息等,包括工资,奖金,纳税等等。并能够修改员工的各种信息,在需要的时候可以方便的排序。采用菜单交互方式,设计一个界面友好,操作简单方便的软件系统。1.2背景待开发软件系统的名称:职工工资信息管理系统 项目任务提出者:C+培训老师开发者:孙承碧 刘士福 张辉 用户:西北大学校教务处 运行环境:W
8、INDOWS 98,WINDOWS 2000/xp,1.3定义主要类:Employee, User , SalaryManager, SystemManager1.4参考资料 1C+程序设计教程 c+ STL 程序员编程指南等。2 程序系统结构3程序设计说明3.1程序描述按照实习老师要求,进行程序设计。应用C+语言编写,完成员工工资管理。用类的继承,封装和多态思想构造整个框架3.2功能1基本功能和要求(1) 系统必须是菜单操作方法,进入功能必须打开菜单,并且每个菜单都有相应的帮助,菜单之间能够灵活的切换。用户分三种权限:一般的员工用户,员工工资管理员,系统管理员。(2) 根据登陆方式,选择相应
9、的操作方式;如果是一般的员工用户(默认权限为r即只读),就只能按照各种方式查看数据,并且只能查看自己的信息和工资情况,并且可以网上修改自己的信息等等功能;如果是员工工资管理员,除了可以查看数据外还能编辑员工基本信息数据。如果是系统管理员,他可以拥有员工工资管理员的所有功能,并且可以创建用户,并且可以修改员工的工资体系和大小。(3) 能够对员工基本信息、工资的基本信息、工资的扣除费用信息进行统计,统计的结果能够以表格的形式来表示。(4) 员工基本信息、工资的基本信息、工资的扣除费用信息存储在相应的文件中。数据的组织形式要求必须使用链表或者二叉树来实现。(5) 登录的用户名和密码应该存储在单独的文
10、件中,最好做一定的加密算法。(6) 系统要求界面友好,易操作。2 统计功能(1)统计每个部门的员工工资、整个公司的员工工资、员工的信息等。(2)统计全公司总金额、每个部门的员工工资、扣税信息、工资的扣除信息、奖金、特别奖金等等。(3)统计全公司工资最高的人员前10名,并对它们进行排序。(4)按部门统计工资最高的人员前10名,并对它们进行排序。(5)统计扣除工资最多的10个人。(6)工资信息其它方面的统计。(7) 按照技术职称统计工资信息。(8) 按照工龄职称统计工资信息。3 查找功能(1) 可以根据员工的姓名查找。(2) 可以根据工资卡号查找。(3) 可以根据身份证号查找。(4) 可以根据部门
11、查找。(5) 可以根据技术职称查找。(6) 可以根据员工的姓名来查找员工的信息,以及员工的工资组成和细节。(7) 可以根据员工的身份证来查找员工的信息,以及员工的工资组成和细节。(8) 可以根据员工的部门来查找员工的信息,以及员工的工资组成和细节。4 排序功能(1) 可以根据员工的基本工资排序。(2) 可以根据员工的职务工资排序。(3) 可以根据员工的扣除工资排序。(4) 可以根据员工的交税信息排序。(5) 可以根据员工的扣除工资信息排序。(6) 可以根据员工的姓名排序。(7) 可以根据员工的职务排序。5 系统的操作(1) 有文件的保存和另存为(2) 有文件的打开和载入(3) 系统在退出时,要
12、有相应的提示3.3性能要求性能基本稳定,可完成相应的功能要求,有部分的容错处理,良好的用户交互设计。3.4输人项用户信息:用户名,用户类型,用户密码职工基本信息:如工资卡号、身份证号、姓名、性别、年龄、工龄、部门、技术职称、技术职称编号、家庭电话号码、手机号码等。工资基础信息:技术职称编号、技术职称、基本工资、职务工资、各种补助等。费用扣除信息:工资卡号、水费、电费、清洁费(5元/月)、闭路电视费(10元/月)等。工资单数据:工资卡号、姓名、应发工资、水费、电费、清洁费、闭路电视费、税金、实发工资、特别奖励。其中包括 string类型,int类型,double型,char 型。3.5输出项输出
13、各种运行结果,以及磁盘中文件的保存。3.6算法 登录进度条算法,包括密码*号回显算法,选择排序算法,循环查找算法,循环遍历链表及向量算法,文件读写算法等。3.7流程逻辑程序定义类及方法如下:类名:User属性:userName 用户名passWord 登陆密码 userType 用户类型方法: changePwd(String) 更改密码lookup() 查询信息类名:SalaryManager 基类: User 方法:Stat() 统计 Sort() 排序 editEmployInfo(SalaryTable ) 编辑员工信息 save() 保存类名: Employee 基类: User 属
14、性:salaryId, 工资卡号IDCarad, 身份证号name,姓名sex,性别age年龄,wAge工龄,department部门,pos 职位,posId 职位号,homeTel家庭电话,mobilePhone 手机方法: getInfo(); 返回信息getSalaryTable(); 返回薪水表 changeHomeTel(); 更改家庭电话号码changeMobilePhone () 更改手机号码类名:SystemManager方法:createUser(string,string,string) 创建员工editSalaryTable(SalaryTable) 编辑员工表crea
15、tEmpyInfo() 创建员工信息类名:SalaryInfo属性: positionId,position,baseSalary,bSalary,subsidy类名 SalaryTable属性: salaryId,name,allSalary,Deducted,tax,prize方法:save()caluteSalary()类名:Deducted属性:salaryId,waterFee,electricFee,cleanFee,TVFeeclass InforNodepublic: Employee employee; /员工基本信息 Deducted deducted; /各种扣除费用信息
16、 SalaryInfo salaryinfo; /工资信息 Salary salary; /工资体系 InforNode(); InforNode();void initEmployee( InforNode *);void initDeducted( InforNode *);void initSalaryInfo( InforNode *);void initSalary( InforNode *);void readInfo()/文件读void saveInfo()/文件写3. 8接口各个层次界面进入以及返回,设计应该详细直观,按照3.7流程逻辑严格设计。3.9存储分配考虑链表,向量,数
17、组,字符串,双精度浮点的内存存储,以及外部磁盘文件的存储!3.10注释设计需要注意一下几点:a加在模块首部的注释;b加在各分枝点处的注释;c对各变量的功能、范围、缺省条件等所加的注释;d对使用的逻辑所加的注释等等。3.11限制条件本程序运行中很少有所受到的限制条件。3.12测试计划包括对测试的技术要求、输入数据、预期结果、进度安排、人员职责、设备条件驱动程序及桩模块等的规定。总结报告1、项目分析1.1项目实现的功能点(1) 系统必须是菜单操作方法,进入功能必须打开菜单,并且每个菜单都有相应的帮助,菜单之间能够灵活的切换。用户分三种权限:一般的员工用户,员工工资管理员,系统管理员。(2) 根据登
18、陆方式,选择相应的操作方式;a)如果是一般的员工用户(默认权限为r即只读),就只能按照各种方式查看数据,并且只能查看自己的信息和工资情况,并且可以网上修改自己的信息等等功能;b)如果是员工工资管理员,除了可以查看数据外还能编辑员工基本信息数据。C)如果是系统管理员,他可以拥有员工工资管理员的所有功能,并且可以创建用户,并且可以修改员工的工资体系和大小 系统初始化系统管理员(用户名:root,密码:)。(3)能够对员工基本信息、工资的基本信息、工资的扣除费用信息进行统计。(4)员工基本信息、工资的基本信息、工资的扣除费用信息存储在相应的文件中。一切操作依赖与链表与向量。 (5)登录的用户名和密码
19、应该存储在单独的文件中,暂时无加密算法。(6)统计功能:A)统计所有公司员工信息。B)统计各部门员工信息。C)统计所有员工工资TOP10D)统计所有员工扣除费用TOP10。E)统计各职务工资信息。 (7)查找功能A). 按员工姓名查找 B) 按工资卡号查找 C) 按身份证号查找 D) 按公司部门查找 E) 按技术职称查找 (8)排序功能A) 可以根据员工的实得工资排序。B) 可以根据员工的职务工资排序。C) 可以根据员工的扣除工资排序。D) 可以根据员工的交税信息排序。E) 可以根据员工的姓名排序。F) 可以根据员工的职务排序。(8)系统的操作A) 系统在退出时自动保存、登录时自动读取磁盘文件
20、。B) 有文件的打开和载入C) 系统在退出时,询问是否退出并保存(9) 系统界面友好,易操作。1.2项目采用的技术路线,支持软件采用Dos操作界面、菜单方式Microsoft Visual C+ 6.0软件开发Windows XP 操作系统1.3系统整体框架图2概要设计2.1项目包含模块菜单模块:主要有登录主界面,登录界面,普通员工界面,工资管理员登录界面、系统管理员登录界面.通过用户的不同选择进行交互.功能:实现不同级菜单之间的显示和相互之间的界面切换功能.用户模块:功能:集合了用户创建,查询用户信息,修改用户信息等功能。密码模块 :功能:集合了密码输入保护,密码检验等功能.查找模块功能:集
21、合了按照可以根据员工的姓名查找、根据工资卡号查找、根据身份证号查找、根据部门查找、根据技术职称查找等一系列的查找贡功能。排序模块:功能:集合了根据员工的基本工资排序、根据员工的职务工资排序、根据员工的扣除工资排序、根据员工的交税信息排序、根据员工的姓名排序、根据员工的职务排序等一系列的排序功能。统计模块功能:集合了统计所有公司员工信息、统计各部门员工信息、统计所有员工工资TOP10、统计所有员工扣除费用TOP10、统计各职务工资信息等一系列的排序功能编辑模块功能:实现员工信息的编辑、账单编辑、工资编辑、各种费用的编辑。添加删除用户模块功能:实现普通用户和工资管理的添加。2.2项目包含类ser用
22、户类: SystemManager系统管理员类 :SalaryManager工资管理员类:Deducted费用扣除类 : SalaryInfo薪水信息类2.3项目包含结构体用户信息: User 普通员工信息:Employee 工资管理员信息:SalaryManager账单信息:Debuted薪水信息:SalaryInfo薪水表信息:Salary文件的组织结构:说明:将数据转化为二进制存入文件中,读出时再自动将二进制转化为正常数据.3详细设计3.1实现算法选择排序算法时间,空间复杂度:最坏情况是待排序记录关键字的逆序排列,此时每一趟选择排序需进行i次比较,3i次移动。经过n-1趟选择排序后,总的
23、比较次数为:n(n-1)/2 ,总的移动次数为次2n(n-1)/2,因此该算法的时间复杂度为,空间复杂度为O(1)。另外,选择排序法是一种效率较高的排序方法。3.2主要函数及作用关于文件读取:void readInfo() /进入系统时从各文件中读入数据到全局链表中void saveInfo() /退出系统前保存当前链表到文件关于用户:void initInfo( InforNode * aNewEmployee ) /初始新用户信息void creatNewUser()/创建新用户及其信息关于登录: string emplogin()/用于普通员工登录string salalogin() /
24、用于工资管理员登录 int syslogin()/用于系统管理员登录关于功能: int statInfo()/统计员工信息 Int managerSearch() /管理员查找 Int managerSort()/ 管理员排序 Int smCheck()/管理员查看 Int smEdit()/管理员编辑 4测试分析4.1 黑盒测试4.1.1目的本方案主要实施产品程序代码的黑盒测试。保证软件的功能能正常进行,保证用户可以安全、快捷进行操作。4.1.2测试项软件的各部分的功能4.1.5测试依据工资体系表:扣除费用表:用户登录表工资信息表:员工基本信息表:4.1.6测试环境配置1测试工具:Micro
25、soft visual studio 6.02软件环境:操作系统window-xp3资源文件: 职工工资管理系统V1.0测试版4.2测试步骤登陆功能 : 良好文件操作功能: 良好普通员工查询个人信息功能: 良好普通员工修改个人密码功能: 有待改善工资管理员统计员工信息:良好工资管理员查找员工信息:良好工资管理员对员工信息进行排序:良好工资管理员对员工信息进行编辑:密码修改功能需要升级系统管理员统计员工信息:良好系统管理员查找员工信息:良好系统管理员对员工信息进行排序:良好系统管理员对员工信息进行编辑:密码修改功能需要升级系统管理员创建用户功能: 良好 系统管理员更新工资体系功能:良好各级之间返
26、回调用功能:良好退出并保存功能:良好4.3问题及解决方案问题1:密码没有进行加密存储,导致安全性能下降!解决方法:采用一定的加密算法,用加密过的信息来存储文件,读取时解密即可!问题2:各项信息的输入没有长度和类型限制,以至于在不知情的情况下无法输入正确的信息长度和类型。解决方法:对信息输入部分做一定的限制并加以异常和容错处理,提示用户用什么样的输入增加程序的健壮性。问题3:比较字符串属性值时,大多数采用的是 “=”,这会导致一些不必要的逻辑错误 。解决方法:使用字符型比较函数strcmp(str1,str2)若相等,则值为0。问题4:修改密码功能不够完善,用户只需输入一次即可更改,安全性差。解
27、决方法:对该方法进行升级,作出更有效的密码更改体系。4.4白盒测试4.4.1目的本方案主要实施产品程序代码的白盒测试。使界面符合设计规范,适用于用户;保证程序创建的类与接口的完整与正确,以及程序模块单独正常运行。保证局部模块功能完备性,运行正确性与稳定性。4.4.2测试项所要测试的类。如:Class user, class Employee,class SalaryManager ,class SystemManager . 所要测试的结构Class InfoNode /节点信息Employee employee; /员工基本信息 Deducted deducted; /各种扣除费用信息 Sa
28、laryInfo salaryinfo; /工资信息 Salary salary; /工资体系所要测试的函数Void readInfo (),void saveInfo (),void initInfo (),void creatNewUser(),int statInfo(),int managerSearch(),int managerSort(),int smEdit()等等4.4.3通过的准则1. 界面测试通过的标准:界面的样式、大小、整体布局的设置;各种标签控件的使用及主题描述以及事件源控件的使用。2. 程序代码通过的标准:创建的类、接口、方法、属性应与详细设计保持一致;程序的各种命
29、名、注释、代码行的格式等应符合命名标准和编码规范;程序模块能独立稳定运行。4.6静态测试,走查代码没有太大问题。4.7动态测试界面初始化状态良好;界面控件功能测试良好;业务功能测试良好;数据传递和接收一致,数据计算或处理后状态正确;组合模块整体运行稳定,未出现死机;4.8确定问题属性分为四类:错误、缺陷、失效、故障 5系统仿真程序启动界面主界面,不同用户通过1-5号键选择进入界面。1,3,4号键对应相应的操作,简单提示。5号键推出系统。输入错误会有自动提示。 选择2号键,进入选择用户登录主界面 。 选择1号键,提示输入某员工用户名及密码。登录后界面,可通过选择1-4来进行操作。选择1,可查看自己的所有信息选择2,可修改自己的密码。返回后进入工资管理员界面,可进行所以员工信息查询及信
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1