




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
重庆科技学院 面向对象程序设计 课程设计报告 学 院:_电气与信息工程学院_ 专业班级: 计科 1103 学生姓名: 兰倩 学 号: 2011442001 设计地点(单位)_计算机自主学习中心 _ _ 设计题目:_公司员工信息管理系统设计_ 完成日期: 2013 年 1 月 18 日 指导教师评语: _ _ _ _ _ _ _ 成绩(五级记分制):_ _ 指导教师(签字):_ _ 1 重庆科技学院 课程设计任务书 设计题目:公司员工信息管理系统设计 学生姓名 兰倩 课程名称 面向对象程序设计 专业班级 计科 1103 地 点 I304/I306 起止时间 2013 年 1 月 7 日1 月 18 日 设 计 内 容 及 要 求 1)问题描述 某公司需要存储雇员的编号、姓名、性别、所在部门,级别,并进行工资的计 算。其中,雇员分为经理、技术人员、销售人员和销售经理。 设计一程序能够对公司人员进行管理,应用到继承、抽象类、虚函数、虚基类、 多态和文件的输入/输出等内容。 2)功能要求 (1)添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供 用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记 录时,则提示数据添加重复并取消添加。 (2)查询功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未 找到,给出相应的提示信息,如果找到,则显示相应的记录信息; (3)显示功能:可显示当前系统中所有记录,每条记录占据一行。 (4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的 唯一性。 (5)删除功能:主要实现对已添加的人员记录进行删除。如果当前系统中没 有相应的人员记录,则提示“记录为空!”并返回操作;否则,输入要删除的人员 的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则 提示相应的记录不存。 (6)统计功能:能根据多种参数进行人员的统计。例如,统计四类人员数量 以及总数, 或者统计男、女员工的数量等信息。 3)问题的解决方案 根据系统功能要求,可以将问题解决分为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计; (2)分析系统中的各个实体及它们之间的关系; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述; (5)完成类中各个成员函数的定义; (6)完成系统的应用模块; (7)功能调试; (8)完成系统总结报告。 根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写 课程设计报告。 2 设 计 参 数 (1)系统分析、设计正确。 (2)结果以图表方式显示。 (3)界面简洁、美观。 (4)报告格式规范。 进 度 要 求 周一:明确设计任务,学习相关基础知识 周二:熟悉各知识点,进行基础练习 周三:根据题目要求,进行设计和实现 周四:根据题目要求,进行设计和实现 周五:程序测试 参 考 资 料 1Richard Johnsonbaugh. Martin Kalin.面向对象程序设计C+语言描述. 机械工业出版社.2009 年 2钱能.+语言程序设计教程.清华大学出版社.2005 年 其 它 说 明 .本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一 份由负责教师留用。.若填写内容较多可另纸附后。 3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。 教研室主任: 指导教师:裴仰军/伍建全/焦晓军/陈应祖 2013 年 1月 1日 3 摘要 本程序是能够对公司人员进行管理,而公司需要存储的是雇员的编号、姓名、性 别、所在部门、级别,并进行对工资的计算。其中,雇员分为经理、技术人员、销售 人员和销售经理。而日常生活中的人员管理有添加、查询、显示、编辑、删除和统计 等基本功能。该程序也同样拥有这些功能。在程序运行开始,系统将首先进行的是从 文件中读取数据,而只要管理人员正确的结束程序时,系统将自动保存所修改的数据。 在系统运行中,必须按照提示进行操作,否则系统报错,而往往操作人员只有 6 次机 会,若连续 6 次操作失败,该界面将自动退出,若该页面为主页面,则退出该系统。 关键字:公司 管理 雇员 数据 4 目录 摘要.3 第一章 软件需求分析说明书.5 第二章 系统分析与设计.6 2.1 软件界面设计.6 2.2 软件的数据(结构)设计.10 2.2.1 基类的私有成员.10 2.2.2 公司对各派生类的管理中的私有成员10 2.2.3 主要函数10 2.3 软件的算法设计.11 第三章 软件的实现.15 3.1 添加功能模块.15 3.2 查询功能模块.16 3.3 编辑功能模块.16 3.4 删除功能模块.17 3.5 统计功能模块.19 第四章 软件测试.21 4.1 void Add();/添加功能 21 4.2 void Find(); /查询人员 .21 4.3 void Print();/显示 21 4.4 void Rewrite(); /修改人员 .22 4.5 void Delete(); /删除人员 .22 4.6 void Sum(); /统计 .22 第五章 软件使用说明书.23 致谢.25 参考文献.26 5 第一章 软件需求分析说明书 本产品共包含七大功能:添加功能、查询功能、显示功能、编辑功能、删除功 能、统计功能和退出系统。 “添加”中有经理、技术人员、销售人员和销售经理四个类别可供用户选择,而 其判定是否可供添加的依据是编号,在添加的人员类别中要求员工的编号要唯一。若 输入的编号已存在,系统将给予提示并提示是否继续;而当用户成功添加时,系统也 会给予是否继续的提示,若继续,则重复上次操作,否则再按任意键返回主界面。在 用户操作过程中,若用户输入错误,系统报错并给予是否继续的提示。 “查询”中有编号、姓名、性别、级别四个判断依据。其中级别有四个判断依据, 1 指经理,2 指技术人员,3 指销售人员,4 指销售经理,当用户选择要查询的类别时, 系统会显示相关的全部信息,若系统中不存在此信息,系统将会提示记录为空。在查 询完成后,系统会给予是否继续的提示,若继续则重复操作,否则回到主界面。 “显示”是显示当前系统中所有记录,每条记录占一行。若系统中不存在任何记 录,系统将显示记录为空,并按任意键回到主界面。 “编辑”中有编号和姓名两个判断依据,用户可任意选择进行编辑,其中编号和 性别是固定不变的,不能更改。在正确编辑或系统不存在用户所要编辑的信息时,系 统会给予是否继续的提示,若继续则重复操作,否则按任意键回到主界面。 “删除”中有编号、姓名、级别和所有记录四个判定依据,用户选择任意选项将 自动删除所选删除的记录,若该系统数据为空,系统将显示记录为空,并按任意键回 到主界面。 “统计”中有总数、男员工、女员工、经理、技术人员、销售人员和销售经理七 个选项可供用户选择,而用户选择任意选项,系统将显示该类员工的人数,并提示是 否继续,若继续则重复操作,否则按任意键回到主界面。 “退出系统”是系统结束的标志,而当用户选择该选项时,系统将保存所修改的 数据。 6 第二章 系统分析与设计 2.1 软件界面设计 运行程序则出现 图 2.1 制作人显示 按任意键到主菜单 图 2.2 主菜单 在主菜单中输入相应的序号在进入对应的界面,若输入非主菜单中的序号,系统 会报错并要求重新输入,而用户只要 6 次机会。 在图 2.2 中输入 1,则 7 图 2.3 添加功能 添加功能的依据有经理、技术人员、销售人员和销售经理。在输入 1 后,则添加 的类别属于经理类,若输入 2 则添加的类别属于技术人员类,若输入 3 则添加的类别 属于销售人员类,若输入 4 则添加的类别属于销售经理类,否则系统报错,而用户只 要 6 次机会,若 6 次都失败,则退出该界面,按任意键回到主菜单。在添加过程中, 必须满足编号的唯一性,若输入的编号存在,系统给出提示,若不存在,则继续输入 操作。在完成操作后,系统会给出是否继续的的提示,若输入 y 或 Y,则重复操作, 若输入 n 或 N,则再按任意键回到主菜单,如图 2.3 所示。 在图 2.2 中输入 2,则 图 2.4 查询功能 查询功能中有编号、姓名、性别和级别 3 个依据,输入 1,系统将提示输入编号; 输入 2,系统将提示输入姓名;输入 3 则男和女 2 中判定依据,再其中输入 1,则显示 所有男员工的信息,若输入 2 则显示所有女员工的信息;输入 4 则又 14 个级别可供 选择,其中 1 指经理,2 指技术人员,3 指销售人员,4 指销售经理,选择相应数字, 则系统将显示相应的所有信息。在系统操作中,若要查询对象不存在,系统将给予提 示,并显示是否继续查询。而若完成一次操作后,系统也将提示是否继续查询,若继 续,则重复操作,否则按任意键回到这菜单,如图 2.4 所示。 在图 2.2 中输入 3,则 8 图 2.5 显示功能 显示功能是显示当前记录的所有信息,若系统中不存在任何记录,则系统会显示 记录为空。在显示功能中按任意键则回到主菜单。如图 2.5 所示。 在图 2.2 中输入 4,则 图 2.6 编辑功能 编辑功能中有编号和姓名 2 个判定依据,输入 1,则系统会要求输入需要编辑的编 号,若该编号不存在,系统会给予提示,并显示是否继续;若系统中存在该编号,则 系统会显示编号下的所有信息,并提示编辑,当编辑完成,系统会提示是否继续。若 输入 2,系统会要求输入需要编辑的姓名,其相关规定同编号选项类似。如图 2.6 所示。 在图 2.2 中输入 5,则 9 图 2.7 删除功能 删除功能有编号、姓名、级别和所有记录 4 个判定依据。输入 1,则系统会提示 输入要删除的编号,并提示是否继续;若输入 2,则系统会提示输入要删除的姓名,这 指代删除系统中首次出现的该姓名;若输入 3,怎系统会提示输入级别,而级别有 4 个 部分组成,分别是 1 经理,2 技术人员,3 销售人员,4 销售经理,输入其代表的数字, 便可删除相应的类别;若输入 4,则系统将删除所有记录。如图 2.7 所示。 在图 2.2 中输入 6,则 图 2.8 统计功能 统计功能中有总数、男员工、女员工、经理、技术人员、销售人员、销售经理 7 个判定依据。输入 1,系统将显示总人数,并显示是否继续;若输入 2,系统将显示男 员工的人数并显示是否继续,其它 5 个类别也类似,如图 2.8 所示。 在图 2.2 中输入 0,则 10 图 2.9 退出系统 当进入退出系统时,代表该程序结束,并且在之前的操作过程中对系统数据的修 改也会自动保存在文件中,如图 2.9 所示。 2.2 软件的数据(结构)设计 2.2.1 基类的私有成员 string 类型的 number 表示编号 string 类型的 name 表示姓名 string 类型的 sex 表示性别 string 类型的 department 表示所在部门 int 类型的 sort 表示级别 double 类型的 wages 工资 2.2.2 公司对各派生类的管理中的私有成员 vectorM;/经理 vectorT;/技术人员 vectorS;/销售人员 vectorL;/销售经理 2.2.3 主要函数 void Add(); /增加人员 void Find(); /查询人员 int Findid(string num);/查找编号 int Findname(string nam_e);/查找姓名 int Findsex(string se);/查找性别 int Findsort(int /查找级别 void Print();/显示 void Rewrite(); /修改人员 11 void Delete(); /删除人员 void Sum(); /统计 void Read();/读文件 void Write();/写文件 2.3 软件的算法设计 主 菜 单 1、添加功能 2、查询功能 3、显示功 能 4、编辑功能 5、删除功能 6、统计功能 0、退出系统 6 5 0 5 4 5 3 2 1 请选 择 (06 ) 图 2.10 主菜单流程图 12 添 加 功 能 1、经理 2、技术人 员 3、销售人员 4、销售经理 请输 入雇 员的 信息: 该编 号已 存在 是 否 继 续 ( y/ n ) Y 添 加 功 能 n 主 菜 单 图 2.11 添加功能流程图 13 查 询 功 能 1 编号 2 姓名 3 性别 4 级别 请输 入编 号 该编号 不存在 请输入 姓名 1 男 2 女 请输入你 要查询的 级别 (14) 该姓 名不 存在 记录 为空 是 否 继 续 n 主 菜单 Y 查 询 功 能 图 2.12 查询功能流程图 编 辑 功 能 1 、 编 号 2 、 姓 名 请输 入编 号: 请输 入姓 名 该编号 不存在 该姓名 不存在 是 否 继 续 ( y/ n ) Y 编 辑功 能 N 主 菜单 图 2.13 编辑功能 14 删 除 功 能 1、编号 2、姓名 3、级别 4、所有记 录 请输入编号: 请输入姓名: 请输入级别 (14): 删 除 成 功 是否 继续 (y/ n) Y 删 除 功 能 主 菜 单 图 2.13 删除功能 统 计 功 能 1、总数 2、男员工 3、女员工 4、经理 5、技术人 员 6、销售人 员 7、销售经 理 *人数为: 是 否 继 续 ( y/ n ) Y 添 加功 能 N 主 菜单 图 2.14 统计功能 15 第三章 软件的实现 3.1 添加功能模块 添加功能模块中有经理、技术人员、销售人员和销售经理 4 个选项。选择选项后 要判断要添加的信息中的编号是否存在,若输入的编号存在,提示该编号已存在,若 不存在,则执行下步操作。在添加时,要对类别进行判定,并将添加的信息压入该类 别的向量的末尾。完成操作后,将判断是否继续,若继续则执行递归。 其伪代码如下: void company:Add() /定义数据类型 a: coutnum;cin.clear(); /判断编号是否存在 /在输入的编号不存在的情况下编辑信息 if(sor=x) /判断添加的信息的类别并加入该类别的向量中 cin.clear(); if(judge()/判定是否继续 Add();/继续则重复操作 16 3.2 查询功能模块 查询功能模块中有编号、姓名、性别和级别 4 个选项,其中首先调用的是 choice(int a,int b),它的作用是判断输入的必须是数字,且大于等于 b,小于等于 a 的, 在下步操作中再判定输入的值并调用相关函数,以达到查询的目的。 其伪代码如下: void company:Find() /定义数据类型 cout“nntt 查询功能 nn“; cout“t1、编号 2、姓名nn“; cout“t3、性别 4、级别nn“; cout“请选择(14):“; x=choice(4,1); /判定输入的 x 必须是 14 中的数字 if(x=1) if(Findid(num) Find();/查找编号,若 Findid(num)返回值为 1,则继续查找,否则 结束查找。 else return; if(x=2) if(Findname(nam) Find(); else return; /查找姓名,若 Findname(nam)返回值为 1,则继续查找,否则结束查找。 if(x=3) if(Findsex(se) Find(); else return; /查找性别,若 Findsex(se)返回值为 1,则继续查找,否则结束查找。 if(x=4) if(Findsort(sor) Find(); else return; /查找级别,若 Findsort(sor)返回值为 1,则继续查找,否则结束查找。 3.3 编辑功能模块 编辑功能模块包含有编号和姓名 2 个选择,它的函数制作的思路是判定该编号或 17 姓名是否存在,在存在的情况下判定它存在的类别,找到所处的类别并把它的编号和 性别记录下来,并删除该编号或姓名下的相关信息,然后添加除编号和性别以外的信 息,根据添加的信息判定添加的类别,然后将添加的信息压入该类别的向量中,从而 达到编辑的目的。 其伪代码如下: void company:Rewrite() /定义数据类型 cout“nntt 编辑功能 nn“; cout“t1、编号 2、姓名nn“; cout“请选择序号(1/2):“; x=choice(2,1); if(!x) return; if() /判断 x 的值 cin.clear(); for(i=0;iM.size();i+) /删除该编号或该姓名下的全部信息 if(t=0) /该编号或姓名不存在 else /该编号或姓名存在,并编辑 /判定编辑的类别并压入相关类别的向量中 cin.clear(); if(judge() Rewrite();/判断是否继续 3.4 删除功能模块 删除功能模块中首先判断的是记录是否为空,若为空则停止操作,否则继续下步 操作。选择要删除的类别的序号则可删除对应的记录,若删除成功,系统会有所提示; 若删除的信息不存在,系统会显示该信息不存在。 其伪代码如下: void company:Delete() 定义数据类型 if(M.empty() return ;/判断记录是否为空,若为空,则停止操作,否则执行下面操作 cout“nntt 删除功能 nn“; 18 cout“t1、编号 2、姓名nn“; cout“t3、级别 4、所有记录nn“; cout“请选择序号(14):“; x=choice(4,1); if(!x) return ; if(x=1|x=2) 输入要删除的编号或姓名 for(i=0;iM.size();i+) if(Mi.getnumber()=num|Mi.getname()=nam) m=1;M.erase( for(i=0;iT.size();i+) if(Ti.getnumber()=num|Ti.getname()=nam) m=1; T.erase( for(i=0;iS.size();i+) if(Si.getnumber()=num|Si.getname()=nam) m=1;S.erase( for(i=0;iL.size();i+) if(Li.getnumber()=num|Li.getname()=nam) m=1;L.erase( /删除该编号或姓名下的全部信息 if(x=3) cout“请输入级别(14):“; t=choice(4,1); if(!t) return;/若为 0 则停止操作 if(t=1) m=1;M.clear();/若选择经理类,则删除所有经理类的信息 if(t=2) m=1;T.clear();/若选择技术人员类,则删除所有经理类的信息 if(t=3) m=1;S.clear();/若选择销售人员类,则删除所有经理类的信息 if(t=4) m=1;L.clear();/若选择销售经理类,则删除所有经理类的信息 if(x=4) 19 M.clear();T.clear();S.clear();L.clear();m=1;/删除所有记录 if(m=0) cout“该信息不存在!n“; else cout“删除成功n“; cin.clear(); if(judge() Delete();/判断是否继续 3.5 统计功能模块 统计功能模块中包含总数、男员工、女员工、经理、技术人员、销售人员和销售 经理 7 个选择,主要运用了函数自带的 size()函数来获取人数,其中的男、女员工是通 过 sum 来计数的。 其伪代码如下: void company:Sum() 定义数据类型 cout“nntt 统计功能 nn“; cout“t1、总数 2、男员工nn“; cout“t3、女员工 4、经理nn“; cout“t5、技术人员 6、销售人员nn“; cout“t7、销售经理 nn“; cout“请选择序号(17):“; x=choice(7,1); if(!x) return; if(x=1) cout“n 总人数为: “M.size()+T.size()+S.size()+L.size()endl; else if(x=2|x=3) for(i=0;iM.size();i+) if(Mi.getsex()=“男“) sum+; for(i=0;iT.size();i+) if(Ti.getsex()=“男“) sum+; for(i=0;iS.size();i+) if(Si.getsex()=“男“) sum+; 20 for(i=0;iL.size();i+) if(Li.getsex()=“男“) sum+; if(x=2) cout“n 男员工人数为: “sumendl; else cout“n 女员工人数为: “M.size()+T.size()+S.size()+L.size()-sumendl; else if(x=4) cout“n 经理人数为: “M.size()endl; else if(x=5) cout“n 技术人员人数: “T.size()endl; else if(x=6) cout“n 销售人员人数: “S.size()endl; else cout“n 销售经理人数: “L.size()endl; if(judge() Sum(); 21 第四章 软件测试 4.1 void Add();/添加功能 用例:input:1 output:请输入雇员的信息: 编号: input:1001 output:姓名 input:ttt output:性别 input:女 output:部门 input:财务部门 output:工资 input:4444 output:是否继续(y/n): 用例:input:1 output:请输入雇员的信息: 编号: input:1001 output:该编号已存在 是否继续(y/n): 4.2 void Find(); /查询人员 用例:input:4 output:请输入你要查询的级别(14): input:1 output: 是否继续(y/n): 用例:input:1 output:请输入编号 input:1999 output:该编号不存在 是否继续(y/n): 4.3 void Print();/显示 如图 2.5 所示 22 4.4 void Rewrite(); /修改人员 用例:input:1 output:请输入编号: input:1003 output:该编号步存在 是否继续(y/n): 用例:input:1001 output: 请编辑: 姓名: input: tt output:所在部门: input:财务部门 output:级别: input:3 output:工资 input:5555 output:是否继续(y/n): 4.5 void Delete(); /删除人员 用例:input:2 output:请输入要删除的姓名: input:aaa output:该信息不存在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 车辆收费员职业健康与安全保障合同
- 工业园区厂房租赁标准合同样本
- 设计安装调试协议书范本
- 同居赠与协议书范本大全
- 矿山开采权转让与采石场资产合作合同
- 采购人员廉洁自律与消费者权益保护协议
- 车辆质押贷款合同范本库
- 厂房租赁合同争议解决协议书
- 电子商务代理业务全程服务合同范本
- 台风损毁钢构修复工艺
- (XX)XX县2021年度变更调查技术设计书
- 地震的应急逃生知识
- 药品配送服务应急预案
- 03 配电类“两种人”安规综合能力测试题库
- 广东省广州市花都区2022-2023学年三年级下学期语文期末试卷
- 人工智能伦理导论- 课件 第3、4章 人工智能伦理、人工智能风险
- 工业管道技术交底
- 危化品安全管理培训模板如何正确穿戴和使用防护装备
- 基于单片机的多路数据采集系统设计(附源程序及原理图)
- 《跨部门沟通与协调》课件
- 2023年哈密市伊吾县社区工作者招聘考试真题
评论
0/150
提交评论