ImageVerifierCode 换一换
格式:DOC , 页数:36 ,大小:480KB ,
资源ID:9163635      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-9163635.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C++课设---公司员工管理系统.doc)为本站会员(hwpkd79526)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

C++课设---公司员工管理系统.doc

1、数学与计算机学院课程设计说明书课 程 名 称: 面向对象程序设计- 课程设计课 程 代 码: 8404101 题 目: 公司员工管理系统 年级/专业/班: 2009 级软件工程四班 学 生 姓 名: 学 号: 开 始 时 间: 2011 年 6 月 13 日完 成 时 间: 2011 年 6 月 26 日课程设计成绩:学习态度及平时成绩(30)技术水平与实际能力(20) 创新(5) 说明书撰写质量(45)总 分(100)指导教师签名: 年 月 日公公公公公公公公 面向对象程序设计课程设计任务书学院名称: 数学与计算机学院 专业: 软件工程 年级: 2009级 一、设计题目 公司员工管理系统二、

2、主要内容设计公司员工管理系统,具有插入、删除、显示、修改和查询员工信息的功能。三、具体要求(1) 采用双链表结构,用类和对象完成系统设计,设计一个employee类,包含职工号、姓名、性别、部门、职务、工资明细,具有员工信息的插入、删除、显示、修改和查询功能;(2)可通过员工姓名和所在部门进行查询;(3)显示功能中:对链表提供逐屏显示选择而且可以由用户确定每屏显示的数目。课程设计说明采用运算符重载的方式进行文件存取,这样保存、查询、修改都很方便。四、主要技术路线提示首先根据要解决的问题分析设计类图,抽象出各个类的数据成员和函数成员,然后进行详细编码,在主函数中创建类的对象,调用适当的成员函数或

3、全局函数实现相应的功能。最后要对软件进行测试。五、进度安排共计两周时间,20个机时,建议进度安排如下:1. 选题和需求分析 1学时2. 查阅资料(图书、期刊资料或上网查阅相关资料) 2学时3. 构造框架(系统总体设计、类层次关系图) 3学时4. 编程上机,调试 10学时5. 现场验收合格(根据程序提问) 1学时6. 书写课程设计报告 3学时当然,仅靠课内时间是不够的,希望同学们课外多花时间编程学习。公公公公公公公公 六、完成后应上交的材料设计结束后,每位同学必须上交如下材料:1. 课程设计报告打印稿一份;2. 课程设计报告电子文档及课程设计的程序源代码 刻盘3. 答辩时的提问及答案记录一份。七

4、、推荐参考资料1郑莉等 编著. C+程序设计语言(第三版).清华大学出版社,2005.06北京2. 陈清华 朱红主编. Visual C+课程设计案例精选与编程指导.东南大学出版社,2003.06,南京3. 刘振安等编著. C+程序设计课程设计.机械工业出版社,2004.08,北京4. 朱立华等编著. 面向对象程设计及C+.人民邮电出版社,2008.02,北京指导教师 签名日期 年 月 日系 主 任 审核日期 年 月 日公公公公公公公公 目 录1 引 言 .11.1 问题的体出 .11.2 国内外研究的现状 .11.3 任务与分析 .22 需求分析 .22.1 功能分析 .22.1.1 插入功

5、能 22.1.2 删除功能 22.1.3 显示功能 22.1.4 修改功能 22.1.5 查询功能 32.2 需求分析规格说明书 .33 程序运行平台 .34 总体设计 .34.1 结构框图 .34.2 程序中类的说明 .44.3 抽象数据定义 .44.4 功能模块划分 .45 详细设计 .55.1 数据类型定义 .55.2 主要模块设计 .65.2.1 模块1 插入模块设计 .65.2.2 模块2 删除模块设计 .65.2.3 模块3 显示模块设计 .75.2.4 模块4 修改模块设计 .85.2.5 模块5 查询模块设计 .96 系统测试 .106.1 测试用例 .106.2 测试结果 .

6、117 总 结 .15参 考 文 献 .16公公公公公公公公 摘 要 在 当 今 社 会 ,互 联 网 空 间 的 发 展 ,给 人 们 的 工 作 和 生 活 带 来 了 极 大 的 便 利和 高 效 ,信 息 化 ,电 子 化 已 经 成 为 节 约 运 营 成 本 ,提 高 工 作 效 率 的 首 选 。当 前大 量 企 业 的 员 工 管 理 尚 处 于 手 工 作 业 阶 段 ,不 但 效 率 低 下 ,还 常 常 因 为 管 理 的不 慎 而 出 现 纰 漏 。因 此 部 分 企 业 需 求 ,设 计 员 工 信 息 管 理 系 统 ,以 帮 助 企 业 达到 员 工 管 理 办

7、公 自 动 化 、节 约 管 理 成 本 、提 高 企 业 工 作 效 率 的 目 的 。员 工 信 息 管 理 系 统 主 要 对 员 工 的 信 息 以 及 跟 人 事 相 关 的 工 作 流 程 进 行 集中 管 理 。使 用 C+编 写 操 作 程 序 ,完 成 数 据 输 入 、修 改 、存 储 、调 用 查 询 等 功 能。 员 工 信 息 管 理 系 统 是 事 业 单 位 科 学 、全 面 、高 效 进 行 人 事 管 理 的 系 统 ,参考 大 量 中 国 人 力 资 源 管 理 理 论 ,根 植 于 国 内 管 理 的 实 际 情 况 ,实 用 而 科 学 。内容 包 括

8、机 构 的 建 立 和 维 护 ,人 员 信 息 的 录 入 和 输 出 ,工 资 的 调 整 和 输 出 等 功 能。在 操 作 上 集 输 入 、维 护 、查 询 、统 计 、输 出 等 处 理 为 一 体 ,简 便 灵 活 ,自 动 化功 能 强 大 。分析了当前的形 势,利用 C+面向对象程序 设计语言采用双链的数据结构编程实现了该公司员工管理系统,该系统具有人员信息的添加、删除、 查找、修改和显示等功能。关键词:公司员工管理系统;计算机; 输入;修改;查询;管理 ;双链公公公公公公公公 公公公公公公公公 11 引 言1.1 问题的体出在现代化的企业管理中,人事管理系统有着十分重要的作

9、用,然而,用大型软件系统来于小型的企事业单位,不啻于“杀鸡用牛刀”,因此小型的的软件对于这种单位自然有十分重要作用。某小型企业出于这种目的制作了这个员工管理系统。1.2 国内外研究的现状目前,在国内,人事信息管理系统从科学的人事信息管理角度出发,从企业的人事信息的规划开始,一般包括了员工基础信息,培训信息,技能信息,绩效评定,调动信息,往往经历,工资管理等,并以一种共享的、兼容的、相通的、便于访问和查询的方式存储到共通的数据库中,从而形成一个统一管理企业的人事信息的平台,及时且全面的收集员工的调动信息可加强信息分析系统的灵活性,减少人事信息的管理系统的复杂性和重复性,是人事管理人员的工作负担大

10、大减轻,将更多的精力投入到企业人事的规划,统筹,及一些更具战略意义的工作中,提高了整个人事管理及企业运营的效率。从全局来看,人事信息管理系统会将每个企业员工从招聘到离职期间的所有历史信息全部记录下来,其中包括了员工在职期间的调动信息,绩效评定和工资信息等等。当今计算机的高速发展,使人事信息管理模式在软硬件的先进技术下不断发展,促使了人事信息管理系统的诞生,将其与企业自身管理模式相结合,通过共享的数据库共享,员工可自主的处理数据,达到共享服务的目的,有效降低企业的管理成本,提高其运营效率,简化操作管理工序。整个人事信息管理系统着重于组织结构和企业员工信息两大部分,能够让企业管理的部门快速了解及操

11、作信息,便于及时规划及运作,形成一个有效管理的运作体系,其中包括了企业组织到员工,再到劳动和薪酬等等各个部分,能迅速且只管的反映人事信息的情况,为企业的人事管理的决策层提供有效及时的技术支持。公公公公公公公公 21.3 任务与分析采用双链的数据结构设计公司员工管理系统,该系统实现对公司人员按姓名或者编号显示、查找、增加、删除和保存各类人员信息的操作。使用高效的,快捷的,方便的职工信息管理。能按姓名或者编号显示、查找、增加、删除和保存各类人员的信息。2 需求分析2.1 功能分析 插入功能:DLink InsertNode(DLink Head) 显示功能:void Print( ) 删除功能:v

12、oid Delete() 修改功能:void Amend( ) 查询功能:void Query( )2.1.1 插入功能函数原型:DLink InsertNode(DLink Head)说 明:添加一个职员的基本信息,包括职工号,姓名,性别,所在部门,职务,薪水。2.1.2 删除功能函数原型:void Delete()说 明:能够对一个职员的信息进行删除,按职工号+姓名进行删除。2.1.3 显示功能函数原型:void Print( )说 明:输出显示满足条件的或者全部的职工信息,包括职工号,姓名,性别,所在部门,职务,工资明细等。2.1.4 修改功能公公公公公公公公 3函数原型:void Am

13、end( )说 明:对满足条件的职员的信息进行修改,可以修改职工所在部门、职务、工资。2.1.5 查询功能函数原型:void Query( )说 明:根据你键入的职员姓名,显示其详细信息!2.2 需求分析规格说明书这是一个简单的、小型的公司员工信息管理系统,它可以实现职工信息的录入,删除,查询,以及对已有信息的修改等功能;该系统使用了文件操作来保存数据,可以将数据永久性的保存在计算机上。3 程序运行平台程序运行的平台是基于Windows操作系统的VC+6.0,该程序在此平台上测试通过,能正常运行。4 总体设计4.1 结构框图公公公公公公公公 4公司员工管理系统插入信息显示信息查询信息删除信息修

14、改信息图 1 CEMS 结构框图4.2 程序中类的说明职工类说明:class employeeprivate:Node data; / 结构体类型的数据成员public:friend ostream /友元重载输入流运算符employee(); / 构造函数DLink CreateLink(); / 创建链表DLink InsertNode(DLink Head); / 插入一个结点;4.3 抽象数据定义ADT CEMS数据对象:职工信息;基本操作:DLink InsertNode(DLink Head);-插入职工信息void Print()-显示职工信息void Delete()-删除职工

15、信息void Amend()-修改职工信息void Query()-查询职工信息void SetWage(DLink p)-设置明细工资ADT;公公公公公公公公 54.4 功能模块划分公司员工管理系统M 1 、 插入模块M 2 、 显示模块M 5 、 查询模块M 3 、 删除模块M 4 、 修改模块图 2 CEMS 功能模块划分图5 详细设计5.1 数据类型定义/ 工资明细结构体typedef struct WAGE float Base_Wage; / 基本工资 float Merit_Wage; / 绩效工资float Sum_Wage; / 总工资WAGE; / 包括职工姓名、职工号的工

16、资记录typedef struct Emplo_Wage char id10; / 职工编号char name10; / 职工姓名WAGE data; / 工资Emplo_Wage; typedef struct Node char E_id10; /职工号char E_name10; /姓名char E_sex3; /性别char E_dep20; /部门char E_job20; /职务float E_wage; /工资struct Node *prior; /前驱指针struct Node *next; /后继指针Node,*DLink;公公公公公公公公 6/ 工资大于1000的员工,超

17、过部门需要按税率交税float Tax_Rate1=0.05f; / 3000 以下float Tax_Rate2=0.1f; / 3000-8000float Tax_Rate3=0.15f; / 8000 以上void SetWage(DLink p);/ 职工类class employee Node data; / 结构体类型的数据成员public:friend ostream /友元重载输入流运算符employee(); / 构造函数DLink CreateLink(); / 创建链表DLink InsertNode(DLink Head); / 插入一个结点;5.2 主要模块设计5.

18、2.1 模块1 插入模块设计模块算法:通过前插法插入结点/插入结点DLink employee:InsertNode(DLink Head)DLink p;ofstream file(“EmployeeInfo.txt“,ios:app); / 打开文件if(!file) cout:n“;coutp-E_id;while(strcmp(p-E_id,“00“) /循环输入,以“00”结束输入 cinp;p-prior=Head;p-next=Head-next;if(Head-next!=NULL) /如果不是空链Head-next-prior=p;Head-next=p;file.write

19、(char *)p,NUM);p=new Node;cout:n“;公公公公公公公公 7coutp-E_id;file.close(); /关闭文件printf(“录入完毕.n“);return Head;5.2.2 模块2 删除模块设计模块算法:/删除函数void Delete()char id10; /存放输入的职工号char name10; /存放输入的职工姓名int count1=0,count2=0; /count1-总的记录数,count2-删除记录以后的总记录数DLink p;p=new Node;ifstream file(“EmployeeInfo.txt“);if(!fil

20、e) coutid;coutname;while(!file.eof()file.read(char *)p,NUM);count1+;if(file.fail()break;if(strcmp(p-E_name,name)|strcmp(p-E_id,id)newfile.write(char *)p,NUM);count2+;file.close(); /关闭文件newfile.close(); /关闭文件remove(“EmployeeInfo.txt“); / 删除原来的EmployeeInfo.txt公公公公公公公公 8rename(“NewEmployeeInfo.txt“,“Em

21、ployeeInfo.txt“); / 重命名if(count1=count2)printf(“没有这个记录!n“);elseprintf(“删除成功!n“);5.2.3 模块3 显示模块设计模块算法:/输出void Print()int n,count=0; /n输入的每屏显示的记录数,count计数DLink p;ifstream file(“EmployeeInfo.txt“); / 打开文件if(!file) coutn;system(“cls“); /清屏Print_Format(); /输出字段名while(!file.eof()file.read(char *)p,NUM);if

22、(file.fail()break;if(n=count) /控制每一屏显示的记录条数 system(“pause“); /暂停system(“cls“); /清屏count=0; /计数器清零Print_Format(); coutid;while(!file.eof() file.read(char *)p,NUM);if(file.fail()break;if(!strcmp(p-E_id,id)break;if(file.eof() printf(“没有这个职工号!n“);return; coutn;if(n=0) / 修改所在部门、职务、工资 coutp-E_dep;coutp-E_

23、job;SetWage(p);else if(n=1) / 修改所在部门 coutp-E_dep;else if(n=2) / 修改职务 coutp-E_job;else if(n=3) / 修改工资 SetWage(p);else公公公公公公公公 10printf(“输入错误!n“);file.seekp(-1*NUM,ios:cur); /写指针回跳一条记录,以更新记录file.write(char *)p,NUM); /写入更新后的记录if(n=0|n=1|n=2|n=3)printf(“修改成功 !n“); /操作提示file.close(); /关闭文件5.2.5 模块5 查询模块设

24、计模块算法:/查询函数void Query() char Query_Value20; /存放输入的需要查询的姓名或部门名称int flag=0,n; /是否查询到的标志DLink p;p=new Node;ifstream file(“EmployeeInfo.txt“); /打开文件if(!file) coutn;if(n=1) coutQuery_Value;else if(n=2) coutQuery_Value;else coutE_name,Query_Value) Print_Format(); coutE_dep,Query_Value)公公公公公公公公 11 Print_Fo

25、rmat(); cout /文件操作头文件#include /包含system() 等函数的头文件#include /字符串处理头文件#include /输入输出流重载需要的头文件#include / 工资明细结构体typedef struct WAGEfloat Base_Wage; / 基本工资 float Merit_Wage; / 绩效工资float Sum_Wage; / 总工资WAGE; / 包括职工姓名、职工号的工资记录typedef struct Emplo_Wagechar id10; / 职工编号char name10; / 职工姓名WAGE data; / 工资Emplo

26、_Wage; typedef struct Nodechar E_id10; /职工号char E_name10; /姓名char E_sex3; /性别char E_dep20; /部门char E_job20; /职务float E_wage; /工资struct Node *prior; /前驱指针struct Node *next; /后继指针Node,*DLink;/ 工资大于1000的员工,超过部门需要按税率交税float Tax_Rate1=0.05f; / 3000 以下float Tax_Rate2=0.1f; / 3000-8000公公公公公公公公 19float Tax_

27、Rate3=0.15f; / 8000 以上void SetWage(DLink p);/ 职工类class employeeprivate:Node data; / 结构体类型的数据成员public:friend ostream /友元重载输入流运算符employee(); / 构造函数DLink CreateLink(); / 创建链表DLink InsertNode(DLink Head); / 插入一个结点;/ 全局常量,一个结点的大小const int NUM=sizeof(Node);/ 重载输出流运算符ostream coutp-E_sex;coutp-E_dep;coutp-E

28、_job;SetWage(p); /输入工资coutprior=NULL;Head-next=NULL;return Head;/插入结点DLink employee:InsertNode(DLink Head)DLink p;ofstream file(“EmployeeInfo.txt“,ios:app); / 打开文件if(!file) cout:n“;coutp-E_id;while(strcmp(p-E_id,“00“) /循环输入,以 “00”结束输入cinp;p-prior=Head;公公公公公公公公 21p-next=Head-next;if(Head-next!=NULL)

29、/如果不是空链Head-next-prior=p;Head-next=p;file.write(char *)p,NUM);p=new Node;cout:n“;coutp-E_id;file.close(); /关闭文件printf(“录入完毕.n“);return Head;/输出格式void Print_Format()cout:“;cinTax_Rate1;while(Tax_Rate11|Tax_Rate1 :“;cinTax_Rate2;while(Tax_Rate21|Tax_Rate2:“;cinTax_Rate3;while(Tax_Rate31|Tax_Rate3s-dat

30、a.Base_Wage; / 设置基本工资couts-data.Merit_Wage; / 设置绩效工资sum=s-data.Base_Wage + s-data.Merit_Wage;if(sumdata.Sum_Wage=sum;else if(sumdata.Sum_Wage=(sum-1000) * (1-Tax_Rate1)+1000;else if(sumdata.Sum_Wage=(sum-3000) * (1-Tax_Rate2)+3000;elses-data.Sum_Wage=(sum-8000) * (1-Tax_Rate3)+8000;p-E_wage=s-data.S

31、um_Wage; / 总工资strcpy(s-id , p-E_id);strcpy(s-name , p-E_name);file.write(char *)s,sizeof(Emplo_Wage); / 写入文件file.close();/输出void Print()int n,count=0; /n输入的每屏显示的记录数, count计数DLink p;ifstream file(“EmployeeInfo.txt“); / 打开文件if(!file) coutn;system(“cls“); /清屏Print_Format(); /输出字段名while(!file.eof()file.

32、read(char *)p,NUM);if(file.fail()break;if(n=count) /控制每一屏显示的记录条数system(“pause“); /暂停system(“cls“); /清屏count=0; /计数器清零Print_Format(); coutid;while(!file.eof()file.read(char *)p,NUM);if(file.fail()break;if(!strcmp(p-E_id,id)break;if(file.eof()公公公公公公公公 24 printf(“没有这个职工号!n“);return; coutn;if(n=0) / 修改所

33、在部门、职务、工资coutp-E_dep;coutp-E_job;SetWage(p);else if(n=1) / 修改所在部门coutp-E_dep;else if(n=2) / 修改职务coutp-E_job;else if(n=3) / 修改工资SetWage(p);elseprintf(“输入错误!n“);file.seekp(-1*NUM,ios:cur); /写指针回跳一条记录,以更新记录file.write(char *)p,NUM); /写入更新后的记录if(n=0|n=1|n=2|n=3)printf(“修改成功!n“); /操作提示file.close(); /关闭文件/查询函数void Query()char Query_Value20; /存放输入的需要查询的姓名或部门名称int flag=0,n; /是否查询到的标志

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报