(此文档为word格式,下载后您可任意编辑修改!)重庆科技学院《面向对象程序设计》课程设计报告学院:_电气与信息工程学院_ 专业班级:计科1103 学生姓名:兰倩学号:设计地点(单位)________计算机自主学习中心 ________ __设计题目:___公司员工信息管理系统设计___________________完成日期: 2013 年1月18日指导教师评语: ______________________ _________________ __________________________________________________________________________________ __________________________________________________________________________________ _____________________________________ __________ _成绩(五级记分制):______ __________指导教师(签字):________ ________重庆科技学院课程设计任务书设计题目:公司员工信息管理系统设计2013年1月1日摘要本程序是能够对公司人员进行管理,而公司需要存储的是雇员的编号、姓名、性别、所在部门、级别,并进行对工资的计算。
其中,雇员分为经理、技术人员、销售人员和销售经理。
而日常生活中的人员管理有添加、查询、显示、编辑、删除和统计等基本功能。
该程序也同样拥有这些功能。
在程序运行开始,系统将首先进行的是从文件中读取数据,而只要管理人员正确的结束程序时,系统将自动保存所修改的数据。
在系统运行中,必须按照提示进行操作,否则系统报错,而往往操作人员只有6次机会,若连续6次操作失败,该界面将自动退出,若该页面为主页面,则退出该系统。
关键字:公司管理雇员数据目录摘要 (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)第一章软件需求分析说明书本产品共包含七大功能:添加功能、查询功能、显示功能、编辑功能、删除功能、统计功能和退出系统。
“添加”中有经理、技术人员、销售人员和销售经理四个类别可供用户选择,而其判定是否可供添加的依据是编号,在添加的人员类别中要求员工的编号要唯一。
若输入的编号已存在,系统将给予提示并提示是否继续;而当用户成功添加时,系统也会给予是否继续的提示,若继续,则重复上次操作,否则再按任意键返回主界面。
在用户操作过程中,若用户输入错误,系统报错并给予是否继续的提示。
“查询”中有编号、姓名、性别、级别四个判断依据。
其中级别有四个判断依据,1指经理,2指技术人员,3指销售人员,4指销售经理,当用户选择要查询的类别时,系统会显示相关的全部信息,若系统中不存在此信息,系统将会提示记录为空。
在查询完成后,系统会给予是否继续的提示,若继续则重复操作,否则回到主界面。
“显示”是显示当前系统中所有记录,每条记录占一行。
若系统中不存在任何记录,系统将显示记录为空,并按任意键回到主界面。
“编辑”中有编号和姓名两个判断依据,用户可任意选择进行编辑,其中编号和性别是固定不变的,不能更改。
在正确编辑或系统不存在用户所要编辑的信息时,系统会给予是否继续的提示,若继续则重复操作,否则按任意键回到主界面。
“删除”中有编号、姓名、级别和所有记录四个判定依据,用户选择任意选项将自动删除所选删除的记录,若该系统数据为空,系统将显示记录为空,并按任意键回到主界面。
“统计”中有总数、男员工、女员工、经理、技术人员、销售人员和销售经理七个选项可供用户选择,而用户选择任意选项,系统将显示该类员工的人数,并提示是否继续,若继续则重复操作,否则按任意键回到主界面。
“退出系统”是系统结束的标志,而当用户选择该选项时,系统将保存所修改的数据。
第二章系统分析与设计2.1 软件界面设计运行程序则出现图2.1 制作人显示按任意键到主菜单图2.2 主菜单在主菜单中输入相应的序号在进入对应的界面,若输入非主菜单中的序号,系统会报错并要求重新输入,而用户只要6次机会。
在图2.2中输入1,则图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则又1^4个级别可供选择,其中1指经理,2指技术人员,3指销售人员,4指销售经理,选择相应数字,则系统将显示相应的所有信息。
在系统操作中,若要查询对象不存在,系统将给予提示,并显示是否继续查询。
而若完成一次操作后,系统也将提示是否继续查询,若继续,则重复操作,否则按任意键回到这菜单,如图2.4所示。
在图2.2中输入3,则显示功能是显示当前记录的所有信息,若系统中不存在任何记录,则系统会显示记录为空。
在显示功能中按任意键则回到主菜单。
如图2.5所示。
在图2.2中输入4,则图2.6 编辑功能编辑功能中有编号和姓名2个判定依据,输入1,则系统会要求输入需要编辑的编号,若该编号不存在,系统会给予提示,并显示是否继续;若系统中存在该编号,则系统会显示编号下的所有信息,并提示编辑,当编辑完成,系统会提示是否继续。
若输入2,系统会要求输入需要编辑的姓名,其相关规定同编号选项类似。
如图2.6所示。
在图2.2中输入5,则图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,则图2.9 退出系统当进入退出系统时,代表该程序结束,并且在之前的操作过程中对系统数据的修改也会自动保存在文件中,如图2.9所示。
2.2 软件的数据(结构)设计2.2.1 基类的私有成员①string类型的number表示编号②string类型的name表示姓名③string类型的sex表示性别④string类型的department表示所在部门⑤int类型的sort表示级别⑥double 类型的wages工资2.2.2公司对各派生类的管理中的私有成员vector<manage>M;经理vector<technology>T;技术人员vector<seller>S;销售人员vector<leader>L;销售经理2.2.3主要函数void Add(); 增加人员void Find(); 查询人员int Findid(string num);查找编号int Findname(string nam_e);查找姓名int Findsex(string se);查找性别int Findsort(int &sor);查找级别void Print();显示void Rewrite(); 修改人员void Delete(); 删除人员void Sum(); 统计void Read();读文件void Write();写文件2.3 软件的算法设计图2.10 主菜单流程图图2.11 添加功能流程图图2.12 查询功能流程图图2.13 编辑功能图2.13 删除功能图2.14 统计功能第三章软件的实现3.1 添加功能模块添加功能模块中有经理、技术人员、销售人员和销售经理4个选项。
选择选项后要判断要添加的信息中的编号是否存在,若输入的编号存在,提示该编号已存在,若不存在,则执行下步操作。
在添加时,要对类别进行判定,并将添加的信息压入该类别的向量的末尾。
完成操作后,将判断是否继续,若继续则执行递归。
其伪代码如下:void company::Add(){……定义数据类型cout<<"\n\n\t添加功能\n";cout<<"1、经理2、技术人员\n\n";cout<<"3、销售人员4、销售经理\n\n";cout<<"请选择(1^4):";sor=choice(4,1);判定输入的sor必须是1^4中的数字if(!sor)return;cout<<"请输入雇员的信息:\n";cout<<"编号:";fflush(stdin);cin>>num;cin.clear();……判断编号是否存在……在输入的编号不存在的情况下编辑信息if(sor==x){……判断添加的信息的类别并加入该类别的向量中}cin.clear();if(judge())判定是否继续Add();继续则重复操作}3.2 查询功能模块查询功能模块中有编号、姓名、性别和级别4个选项,其中首先调用的是choice(int a,int b),它的作用是判断输入的必须是数字,且大于等于b,小于等于a的,在下步操作中再判定输入的值并调用相关函数,以达到查询的目的。