您现在的位置:首页 > >

职工工资管理系统实习报告

发布时间:

C++实习报告

项目名称:职工工资管理系统 项目组名:职工工资管理系统项目组 项目成员: 完成日期:2011 年 10 月 23 日 班级名称:信息系统与信息管理

概要设计
1 引言 1.1 编写目的
设计一个职工工资管理系统,能够方便的对职工及工资情况进行管理,统 计每个部门的员工,整个公司的员工工资,员工信息等,包括工资,奖金,纳税 等等。 并能够修改员工的各种信息,在需要的时候可以方便的排序。采用菜单交互 方式,设计一个界面友好,操作简单方便的软件系统。

1.2 背景说明
待开发软件系统的名称:职工工资信息管理系统 项目任务提出者:C++培训老师 开发者: 用户:西北大学校教务处 运行环境:WINDOWS 98,WINDOWS 2000/xp,

1.3 定义 1.4 参考资料
软件工程 C++ 数据结构 {列出有关的参考资料,如: a. 本项目的经核准的计划任务书或合同、上级机关的批文; b. 属于本项目的其它已发表的文件; c. 本文件中各处引用的文件、资料、包括所要用到的软件开发标准。

列出这些文件资料的标题、文件编号、发表日期和出版单位,说明能够得到这些文件 资料的来源。}

2 总体设计 2.1 需求规定
主要输入项目: 员工基本信息、工资的基本信息、工资的扣除费 登录的用户名和密码 主要输出项目:员工基本信息、工资的基本信息、工资的扣除费用信息

2.2 运行环境
硬件要求:CPU 主频 1.5G 以上, 内存 256Mb 以上,硬盘 10G 以上 软件要求:Windows 2000/XP

2.3 基本设计概念和处理流程
? 基本设计概念:系统以菜单方式工作(文本菜单) 输入数据,输出数据用文件保存 ? 处理流程: ? 所用到的关键类及它们之间的关系如下表:

User property: userName,passWord, userType method: changePwd(String) lookup()

Employee property: salaryId,IDCard,name,sex,age,w Age,department,pos,posId,homeTel, mobilePhone method: getInfo();getSalaryTable(); changeHomeTel(); changeMobilePhone ()

SalaryManager method: Stat() Sort() editEmployInfo(SalaryTable ) save()

SystemManager Method: createUser(string,string,string) editSalaryTable(SalaryTable) creatEmpyInfo() deleteUser() deleteEmpyInfo()

SalaryInfo Property: positionId,position, baseSalary,bSalary,subsidy

Combination SalaryTable property: salaryId,name,allSalary,Deduct ed,tax,prize method: save() caluteSalary() Deducted property: salaryId,waterFee, electricFee,cleanFee,T VFee

2.4 结构

系统初始化

系统管理员添加各 类员工信息

用户登陆

普通员工

工资管理员

系统管理员

更 改 密 码

查 询 自 己 信 息

查 询 所 有 员 工 资 息

更 改 员 工 信 息

拥 有 工 资 管 理 所 有 权 利

创 建 员 工 删 除 员 工

修 改 员 工 的 工 资 体 系 和 大 小

{用一览表及框图的形式说明本系统的系统元素(各层模块、子程序、公用程序等)的划 分, 扼要说明每个系统元素的标识符和功能, 分层次地给出元素之间的控制与被控制关系。 }

Sahnchu

2.5 功能需求与程序的关系
{本条用一张如下的矩阵图说明各项功能需求的实现同各块程序的分配关系。} 程序 1 功能需求 1 功能需求 2 ... ... 功能需求 n 程序 2 ... ... 程序 m

? ?

?

?

3 接口设计 3.1 用户接口
DOS 下用户界面操作。 {说明将向用户提供的命令和它们的语法结构,以及软件的回答信息。}

3.2 外部接口
磁盘的文件读写。 {说明本系统同外界的所有接口的安排包括软件与硬件之间的接口、 本系统与各支持软件 之间的接口关系。}

3.3 内部接口
各层次类与函数直接的调用。 {说明本系统之内的各个系统元素之间的接口的安排。}

4 运行设计 4.1 运行模块组合
{说明对本系统施加不同的外界运行控制时所引起的各种不同的运行模块组合, 说明每种 运行所历经的内部模块和支持软件。}

4.2 运行控制
{说明每一种外界的运行控制的方式方法和操作步骤。}

4.3 运行时间
{说明每种运行模块组合将占用各种资源的时间。}

5 系统数据结构设计
类名:User 属性: userName 用户名 passWord 登陆密码 userType 用户类型 方法: changePwd(String) 更改密码 lookup() 查询信息 类名:SalaryManager 基类: User 方法: Stat() 统计 Sort() 排序 editEmployInfo(SalaryTable ) 编辑员工信息 save() 保存 类名: Employee 基类: User 属性: salaryId, 工资卡号 IDCarad, 身份证号 name,姓名 sex,性别 age 年龄 ,wAge 工龄 ,department 部门, pos 职位, posId 职位号, homeTel 家庭电话, mobilePhone 手机 方法: getInfo(); 返回信息 getSalaryTable(); 返回薪水表 changeHomeTel(); 更改家庭电话号码 changeMobilePhone () 更改手机号码 类名:SystemManager 方法: createUser(string,string,string) 创建员工 editSalaryTable(SalaryTable) 编辑员工表 creatEmpyInfo() 创建员工信息

类名:SalaryInfo 属性: positionId, position, baseSalary, bSalary, subsidy 类名 SalaryTable 属性: salaryId, name, allSalary, Deducted, tax, prize 方法: save() caluteSalary()

类名:Deducted 属性:salaryId, waterFee, electricFee, cleanFee, TVFee

详细设计
1.1 编写目的
设计一个职工工资管理系统,能够方便的对职工及工资情况进行管理,统计 每个部门的员工,整个公司的员工工资,员工信息等,包括工资,奖金,纳税等 等。 并能够修改员工的各种信息,在需要的时候可以方便的排序。采用菜单交互 方式,设计一个界面友好,操作简单方便的软件系统。 1.2 背景 待开发软件系统的名称:职工工资信息管理系统 项目任务提出者:C++培训老师 开发者:孙承碧 刘士福 张辉 用户:西北大学校教务处 运行环境:WINDOWS 98,WINDOWS 2000/xp,

1.3 定义
主要类:Employee, User , SalaryManager, SystemManager

1.4 参考资料
1《C++程序设计教程》 《c++ STL 程序员编程指南》等。

2

程序系统结构

User property: userName,passWord, userType method: changePwd(String) lookup()

Employee property: salaryId,IDCard,name,sex,age,w Age,department,pos,posId,homeTel, mobilePhone method: getInfo();getSalaryTable(); changeHomeTel(); changeMobilePhone ()

SalaryManager method: Stat() Sort() editEmployInfo(SalaryTable ) save()

SystemManager Method: createUser(string,string,string) editSalaryTable(SalaryTable) creatEmpyInfo() deleteUser() deleteEmpyInfo()

SalaryInfo Property: positionId,position, baseSalary,bSalary,subsidy

Combination SalaryTable property: salaryId,name,allSalary,Deduct ed,tax,prize method: save() caluteSalary() Deducted property: salaryId,waterFee, electricFee,cleanFee,T VFee

3 程序设计说明
3.1 程序描述
按照实习老师要求, 进行程序设计。 应用 C++语言编写, 完成员工工资管理。 用类的继承,封装和多态思想构造整个框架

3.2 功能
1 基本功能和要求 (1) 系统必须是菜单操作方法, 进入功能必须打开菜单, 并且每个菜单都有相应的帮助, 菜单之间能够灵活的切换。 用户分三种权限:一般的员工用户,员工工资管理员,系统管理员。 (2) 根据登陆方式,选择相应的操作方式; 如果是一般的员工用户(默认权限为 r 即只读) ,就只能按照各种方式查看数据, 并且只能查看自己的信息和工资情况,并且可以网上修改自己的信息等等功能; 如果是员工工资管理员,除了可以查看数据外还能编辑员工基本信息数据。 如果是系统管理员,他可以拥有员工工资管理员的所有功能,并且可以创建用户, 并且可以修改员工的工资体系和大小。 (3) 能够对员工基本信息、工资的基本信息、工资的扣除费用信息进行统计,统计的结 果能够以表格的形式来表示。 (4) 员工基本信息、工资的基本信息、工资的扣除费用信息存储在相应的文件中。数据 的组织形式要求必须使用链表或者二叉树来实现。 (5) 登录的用户名和密码应该存储在单独的文件中,最好做一定的加密算法。 (6) 系统要求界面友好,易操作。 2 统计功能 (1)统计每个部门的员工工资、整个公司的员工工资、员工的信息等。 (2)统计全公司总金额、每个部门的员工工资、扣税信息、工资的扣除信息、奖金、 特别奖金等等。 (3)统计全公司工资最高的人员前 10 名,并对它们进行排序。 (4)按部门统计工资最高的人员前 10 名,并对它们进行排序。 (5)统计扣除工资最多的 10 个人。 (6)工资信息其它方面的统计。 (7) 按照技术职称统计工资信息。 (8) 按照工龄职称统计工资信息。 3 查找功能 (1) 可以根据员工的姓名查找。 (2) 可以根据工资卡号查找。 (3) 可以根据身份证号查找。 (4) 可以根据部门查找。 (5) 可以根据技术职称查找。

(6) 可以根据员工的姓名来查找员工的信息,以及员工的工资组成和细节。 (7) 可以根据员工的身份证来查找员工的信息,以及员工的工资组成和细节。 (8) 可以根据员工的部门来查找员工的信息,以及员工的工资组成和细节。 4 排序功能 (1) 可以根据员工的基本工资排序。 (2) 可以根据员工的职务工资排序。 (3) 可以根据员工的扣除工资排序。 (4) 可以根据员工的交税信息排序。 (5) 可以根据员工的扣除工资信息排序。 (6) 可以根据员工的姓名排序。 (7) 可以根据员工的职务排序。 5 系统的操作 (1) 有文件的保存和另存为 (2) 有文件的打开和载入 (3) 系统在退出时,要有相应的提示

3.3 性能
要求性能基本稳定,可完成相应的功能要求,有部分的容错处理,良好的用 户交互设计。

3.4 输人项
用户信息:用户名,用户类型,用户密码 职工基本信息:如工资卡号、身份证号、姓名、性别、年龄、工龄、部门、技术职称、技术 职称编号、家庭电话号码、手机号码等。 工资基础信息:技术职称编号、技术职称、基本工资、职务工资、各种补助等。 费用扣除信息:工资卡号、水费、电费、清洁费(5 元/月) 、闭路电视费(10 元/月)等。 工资单数据:工资卡号、姓名、应发工资、水费、电费、清洁费、闭路电视费、税金、实发 工资、特别奖励。 其中包括 string 类型,int 类型,double 型,char []型。

3.5 输出项
输出各种运行结果,以及磁盘中文件的保存。

3.6 算法
登录进度条算法,包括密码*号回显算法,选择排序算法,循环查找算法,循环遍历链 表及向量算法,文件读写算法等。

3.7 流程逻辑
系统初始化 系统管理员添加各 类员工信息

用户登陆

普通员工

工资管理员

系统管理员

修 改 自 己 密 码

查 询 自 己 信 息

查 询 所 有 员 工 资 息

更 改 员 工 信 息

拥 有 工 资 管 理 所 有 权 利

创 建 员 工

修 改 员 工 的 工 资 体 系 和 大 小

程序定义类及方法如下:
类名:User 属性: userName 用户名 passWord 登陆密码 userType 用户类型 方法: changePwd(String) 更改密码 lookup() 查询信息 类名:SalaryManager 基类: User 方法: Stat() 统计 Sort() 排序

editEmployInfo(SalaryTable ) 编辑员工信息 save() 保存 类名: Employee 基类: User 属性: salaryId, 工资卡号 IDCarad, 身份证号 name,姓名 sex,性别 age 年龄 ,wAge 工龄 ,department 部门, pos 职位, posId 职位号, homeTel 家庭电话, mobilePhone 手机 方法: getInfo(); 返回信息 getSalaryTable(); 返回薪水表 changeHomeTel(); 更改家庭电话号码 changeMobilePhone () 更改手机号码 类名:SystemManager 方法: createUser(string,string,string) 创建员工 editSalaryTable(SalaryTable) 编辑员工表 creatEmpyInfo() 创建员工信息 类名:SalaryInfo 属性: positionId, position, baseSalary, bSalary, subsidy 类名 SalaryTable 属性: salaryId, name, allSalary, Deducted, tax, prize

方法: save() caluteSalary()

类名:Deducted 属性:salaryId, waterFee, electricFee, cleanFee, TVFee class InforNode { public: Employee employee; Deducted deducted; 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 存储分配
考虑链表,向量,数组,字符串,双精度浮点的内存存储,以及外部磁盘文 件的存储!

3.10 注释设计
需要注意一下几点:

a. 加在模块首部的注释; b.加在各分枝点处的注释; c. 对各变量的功能、范围、缺省条件等所加的注释; d.对使用的逻辑所加的注释等等。

3.11 限制条件
本程序运行中很少有所受到的限制条件。

3.12 测试计划
包括对测试的技术要求、输入数据、预期结果、进度安排、人员职责、设备条件驱动程 序及桩模块等的规定。

总结报告
1、项目分析.............................................................................................19 1.1 项目实现的功能点 .....................................................................19 1.2 项目采用的技术路线,支持软件 .............................................21 1.3 系统整体框架图 .........................................................................21 2 概要设计................................................................................................22 2.1 项目包含模块 .............................................................................22 2.2 项目包含类 .................................................................................23 2.3 项目包含结构体 .........................................................................24 3.详细设计.............................................................................................28 3.1 实现算法 ......................................................................................28 3.2 主要函数及作用 ..........................................................................28 4.测试分析.............................................................................................29 4.1 黑盒测试 .....................................................................................29 4.1.1 目的 .....................................................................................29 4.1.2 测试项 .................................................................................29 4.1.5 测试依据 .............................................................................29 4.1.6 测试环境配置 .....................................................................30 4.2 测试步骤 ......................................................................................30 4.3 问题及解决方案 ..........................................................................31 4.4 白盒测试 ......................................................................................33 4.4.1 目的 .....................................................................................33

4.4.2 测试项 .................................................................................33 4.4.3 测试依据 ............................................ 错误!未定义书签。 4.4.5 通过的准则 .........................................................................34 4.4.6 测试环境配置 .................................... 错误!未定义书签。 4.5 配置好测试环境 ......................................... 错误!未定义书签。 4.6 静态测试,走查代码 ..................................................................34 4.7 动态测试 ......................................................................................34 4.8 确定问题属性 ..............................................................................35 5.系统仿真.............................................................................................35

1、项目分析
1.1 项目实现的功能点
(1) 系统必须是菜单操作方法,进入功能必须打开菜单,并且每 个菜单都有相应的帮助,菜单之间能够灵活的切换。 用户分三种权限:一般的员工用户,员工工资管理员,系统管理 员。 (2) 根据登陆方式,选择相应的操作方式; a)如果是一般的员工用户(默认权限为 r 即只读) ,就只能 按照各种方式查看数据, 并且只能查看自己的信息和工资情况, 并 且可以网上修改自己的信息等等功能; b) 如果是员工工资管理员, 除了可以查看数据外还能编辑员 工基本信息数据。 C)如果是系统管理员,他可以拥有员工工资管理员的所有 功能,并且可以创建用户,并且可以修改员工的工资体系和大小 系统初始化系统管理员(用户名:root,密码:123456) 。 (3)能够对员工基本信息、工资的基本信息、工资的扣除费用 信息进行统计。 (4)员工基本信息、工资的基本信息、工资的扣除费用信息存 储在相应的文件中。一切操作依赖与链表与向量。 (5)登录的用户名和密码应该存储在单独的文件中,暂时无加 密算法。

(6)统计功能: A)统计所有公司员工信息。 B)统计各部门员工信息。 C)统计所有员工工资 TOP10 D)统计所有员工扣除费用 TOP10。 E)统计各职务工资信息。 (7)查找功能 A). 按员工姓名查找 B) 按工资卡号查找 C) 按身份证号查找 D) 按公司部门查找 E) 按技术职称查找 (8)排序功能 A) 可以根据员工的实得工资排序。 B) 可以根据员工的职务工资排序。 C) 可以根据员工的扣除工资排序。 D) 可以根据员工的交税信息排序。 E) 可以根据员工的姓名排序。 F) 可以根据员工的职务排序。 (8)系统的操作 A) 系统在退出时自动保存、登录时自动读取磁盘文件。 B) 有文件的打开和载入

C) 系统在退出时,询问是否退出并保存 (9) 系统界面友好,易操作。

1.2 项目采用的技术路线,支持软件
采用 Dos 操作界面、菜单方式 Microsoft Visual C++ 6.0 软件开发 Windows XP 操作系统

1.3 系统整体框架图
系统初始化 系统管理员添加各 类员工信息

用户登陆

普通员工

工资管理员

系统管理员

更 改 密 码

查 询 自 己 信 息

查 询 所 有 员 工 资 息

编 辑 员 工 基 本 信 息

更 改 员 工 密 码

拥 有 工 资 管 理 所 有 权 利

创 建 员 工 员 工

修 改 员 工 的 工 资 体 系 和 大 小

Sahnchu

2 概要设计
2.1 项目包含模块 菜单模块:主要有登录主界面,登录界面,普通员工界面,工资管理 员登录界面、系统管理员登录界面.通过用户的不同选择 进行交互.

功能:实现不同级菜单之间的显示和相互之间的界面切换功能. 用户模块: 功能: 集合了用户创建, 查询用户信息, 修改用户信息等功能。 密码模块 : 功能:集合了密码输入保护,密码检验等功能. 查找模块 功能:集合了按照可以根据员工的姓名查找、根据工资卡号查 找、根据身份证号查找、根据部门查找、根据技术职称 查找等一系列的查找贡功能。 排序模块: 功能:集合了根据员工的基本工资排序、根据员工的职务工资 排序、根据员工的扣除工资排序、根据员工的交税信息 排序、根据员工的姓名排序、根据员工的职务排序等一 系列的排序功能。 统计模块 功能: 集合了统计所有公司员工信息、 统计各部门员工信息、

统计所有员工工资 TOP10、统计所有员工扣除费用 TOP10、统计各职务工资信息等一系列的排序功能 编辑模块 功能: 的编辑。 添加删除用户模块 功能:实现普通用户和工资管理的添加。 实现员工信息的编辑、账单编辑、工资编辑、各种费用

2.2项目包含类
User 用户类:

void setPassWord(char * ); //设置密码 void setUserName(string); //设置用户名 void setUserType(int); // 设置用户类型 void changePwd(char *); //更该密码 void lookup() ; //查看信息

SystemManager 系统管理员类 :

//创建一个用户 User createUser(User &user);

SalaryManager 工资管理员类:

void setSalaryID(string); void setIDCard(string ); void setName(string ); void setSex(string ); void setAge(int ); void setWAge(int ); void setDepartMent(string); void setPos(string ); void setPosID(string ); void setHomTel(string ); void setMobilePhone(string); string getSalaryID(); string getIDCard(); string getName(); string getSex(); int getAge(); int getWAge(); string getDepartment(); string getPos(); string getPosID(); string getHomTel(); string getMobilePhone(); void lookup(); //信息查询

Deducted 费用扣除类 :
double getSumFee() ; //计算所有费用并返回 void lookup(); //查看信息

SalaryInfo

薪水信息类

void setpositionID(string); //设置技术职称编号 void setPosition(string ); //设置技术职称名 void setBaseSalary(double ); //设置基本工资 void setPostionSalary(double ); //设置职务工资 void setSubsidy(double );//设置各种补助 string getPositionID()const; string getPosition()const; double getBaseSalary()const; double getPostionSalary()const; double getSubsidy() const; void lookup(); //查看

2.3 项目包含结构体 用户信息:
User

c string userName; //用户名 char passWord[20]; //用户密码 int userType; // 用户类型 0 系统管理员 1 普通职工 2 工资管理员

普通员工信息:
Employee
string salaryId; //工资卡号 5 位 string IDCard; //身份证号 string name; //姓名 string sex; //性别 int age; //年龄 int wAge; //工龄 string department; //部门 string pos; //技术职称、 string posID; //技术职称编号 用 4 位表示 前面 2 位表示部门编号 后 2 位 职位 string homeTel; //家庭电话号码、 string mobilePhone; //手机号码

工资管理员信息:
SalaryManager
string salaryId; //工资卡号 5 位 string IDCard; //身份证号 string name; //姓名 string sex; //性别 int age; //年龄 int wAge; //工龄 string department; //部门 string pos; //技术职称、 string posID; //技术职称编号 用 4 位表示 前面 2 位表示部门编号 后 2 位 职位 string homeTel; //家庭电话号码、 string mobilePhone; //手机号码

账单信息: Debuted

string salaryId; //工资卡号 5 位,waterFee, double electricFee; //电费 double cleanFee; //清洁费 double waterFee; //水费 double TVFee; //电视费

薪水信息:
SalaryInfo
string positionId; //技术职称编号 技术职称编号 用 4 位表示 前面 2 位 表示部门编号 后 2 位 职位 string position; //技术职称名 double baseSalary; //基本工资 double postionSalary; //职务工资 double subsidy; //各种补助

薪水表信息:
Salary
string salaryId; //工资卡号 5 位 string name; //员工姓名 double sendSalary; //应发工资 double getSalary; //实发工资 Deducted d; //账单 是另一个类的实例 SalaryInfo s; double tax; //当前税金 double prize; //特别奖励

文件的组织结构:
说明: 将数据转化为二进制存入文件中, 读出时再自动将二进制转化 为正常数据.

3.详细设计
3.1 实现算法 选择排序算法时间,空间复杂度: 最坏情况是待排序记录关键字的逆序排列,此时每一趟选择排序 需进行 i 次比较,3i 次移动。经过 n-1 趟选择排序后,总的比较次数 为: ? n(n-1)/2 ,总的移动次数为次 2n(n-1)/2,因此该算法的时间
i ?1 n ?1

复杂度为 O(n 2 ) ,空间复杂度为 O(1)。另外,选择排序法是一种效率 较高的排序方法。

3.2 主要函数及作用 关于文件读取: void readInfo() //进入系统时从各文件中读入数据到全局链表中 void saveInfo() //退出系统前保存当前链表到文件

关于用户: void initInfo( InforNode * aNewEmployee ) //初始新用户信息 void creatNewUser()//创建新用户及其信息

关于登录: string emplogin()//用于普通员工登录 string salalogin() //用于工资管理员登录

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. 测试工具:Microsoft visual studio 6.0 2. 软件环境:操作系统 window-xp 3. 资源文件: 职工工资管理系统 V1.0 测试版

4.2 测试步骤

登陆功能 :

良好

文件操作功能: 良好 普通员工查询个人信息功能: 良好 普通员工修改个人密码功能: 有待改善 工资管理员统计员工信息:良好 工资管理员查找员工信息:良好 工资管理员对员工信息进行排序:良好 工资管理员对员工信息进行编辑:密码修改功能需要升级 系统管理员统计员工信息:良好 系统管理员查找员工信息:良好 系统管理员对员工信息进行排序:良好 系统管理员对员工信息进行编辑:密码修改功能需要升级 系统管理员创建用户功能: 良好 系统管理员更新工资体系功能:良好 各级之间返回调用功能:良好 退出并保存功能:良好

4.3 问题及解决方案
问题 1: 密码没有进行加密存储,导致安全性能下降! 解决方法:

采用一定的加密算法, 用加密过的信息来存储文件, 读取时解密即可!

问题 2: 各项信息的输入没有长度和类型限制, 以至于在不知情的情况下无法 输入正确的信息长度和类型。 解决方法: 对信息输入部分做一定的限制并加以异常和容错处理, 提示用户用什 么样的输入增加程序的健壮性。

问题 3: 比较字符串属性值时,大多数采用的是 “==” ,这会导致一些不必要 的逻辑错误 。 解决方法: 使用字符型比较函数 strcmp(str1,str2)若相等,则值为 0。

问题 4: 修改密码功能不够完善,用户只需输入一次即可更改,安全性差。 解决方法: 对该方法进行升级,作出更有效的密码更改体系。

4.4 白盒测试 4.4.1 目的
本方案主要实施产品程序代码的白盒测试。 使界面符合设计规范, 适用于用户;保证程序创建的类与接口的完整与正确,以及程序模块 单独正常运行。保证局部模块功能完备性,运行正确性与稳定性。

4.4.2 测试项
所要测试的类。如: Class user, class Employee,class SalaryManager
,class

SystemManager . 所要测试的结构 Class InfoNode //节点信息 { Employee employee; Deducted deducted; //员工基本信息 //各种扣除费用信息

SalaryInfo salaryinfo; //工资信息 Salary salary; } 所要测试的函数 Void readInfo (),void saveInfo (),void initInfo () , void creatNewUser() , int statInfo() , int managerSearch() , int //工资体系

managerSort(),int smEdit()等等

4.4.3 通过的准则
1. 界面测试通过的标准: 界面的样式、大小、整体布局的设置; 各种标签控件的使用及主题描述以及事件源控件的使用。 2. 程序代码通过的标准: 创建的类、接口、方法、属性应与详细设计保持一致; 程序的各种命名、注释、代码行的格式等应符合命名标准和编 码规范; 程序模块能独立稳定运行。

4.6 静态测试,走查代码
没有太大问题。

4.7 动态测试
? 界面初始化状态良好; ? 界面控件功能测试良好; ? 业务功能测试良好; ? 数据传递和接收一致,数据计算或处理后状态正确; ? 组合模块整体运行稳定,未出现死机;

4.8 确定问题属性
分为四类:错误、缺陷、失效、故障

5.系统仿真

程序启动界面………

主界面,不同用户通过 1-5 号键选择进入界面。 1,3,4 号键对应相应的操作,简单提示。 5 号键推出系统。输入错误会有自动提示。

选择 2 号键,进入选择用户登录主界面 。

选择 1 号键,提示输入某员工用户名及密码。

登录后界面,可通过选择 1-4 来进行操作。 选择 1,可查看自己的所有信息 选择 2,可修改自己的密码。

返回后进入工资管理员界面,可进行所以员工信息查询及信息编辑。

选择 1 号键,可以进入对员工信息进行统计,查找,排序功能选择界面。

选择 1,进入统计界面,可选择 1-5 进行各项统计,6 键返回。

返回后选择 2 进入查找界面, 选择 1-5 进行各项查找, 键返回。 6

返回后选择 3 进入排序界面,选择 1-6 对进行排序,7 键返回。

返回工资管理员主界面,选择 2 进入编辑界面,通过选择 1-2 可 以编辑员工基本信息并修改密码。

返回主登录界面选择 3 进入系统管理员主界面, 初始管理员用户 名为:root,密码为:123456。可选择 1-4 进行各项操作。 选择 1,2 的功能与工资管理员的功能相同!选择 3 可创建一个 新用户的所有信息。

选择 4 号,进入工资体系更新界面,输入某员工卡号后可对其工 资体系及各类费用进行更改。
下面以管理员页面为例演示使用方法: 先登录系统管理员界面:

选择 1 进行信息查询:

选择 1 进行统计:

选择 2,统计各部门信息:

返回进入查找主界面:

选择 2,按工资卡号查找:

输入正确的卡号后可显示该员工信息。 返回进入排序主界面:

选择 3,按扣除工资排序:

将所有信息按照扣除工资由多到少显示。 返回系统管理员主界面后,选择 3 进入创建用户界面:

返回后选择 4 进入工资体系修改界面:输入相应的卡号可对 其进行工资体系更新:

选择 1 修改卡号为 2005001 的员工工资体系:

返回后选择 2,可对卡号为 2005001 的员工扣除费用进行更改:

返回主界面退出会自动提示保存:

退出后可在相应的编译文件夹中查看到一下 5 个文件:

以上是简单的以系统管理员身份进行操作的截图,仅供参考!



热文推荐
猜你喜欢
友情链接: 简历 面试求职范文 职业规划 自我管理 社交礼仪 76242百科