(c公司人员管理系统)[1].docx

上传人:牧羊曲112 文档编号:1773174 上传时间:2022-12-18 格式:DOCX 页数:39 大小:196.99KB
返回 下载 相关 举报
(c公司人员管理系统)[1].docx_第1页
第1页 / 共39页
(c公司人员管理系统)[1].docx_第2页
第2页 / 共39页
(c公司人员管理系统)[1].docx_第3页
第3页 / 共39页
(c公司人员管理系统)[1].docx_第4页
第4页 / 共39页
(c公司人员管理系统)[1].docx_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《(c公司人员管理系统)[1].docx》由会员分享,可在线阅读,更多相关《(c公司人员管理系统)[1].docx(39页珍藏版)》请在三一办公上搜索。

1、C+面向对象程序设计课 程 设 计 报 告课程名称 C+面向对象程序设计 课题名称 公司人员信息管理系统 专 业 班 级 学 号 姓 名 指导教师 2013年 12 月 25 日(一)、课程设计题目 公司人员信息管理系统(2) 、目的与要求: 1、目的: (1)要求学生达到熟练掌握C+语言的基本知识和技能; (2)基本掌握面向对象程序设计的基本思路和方法; (3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。 2、基本要求: (1)要求利用面向对象的方法以及C+的编程思想来完成系统的设计; (2)要求在设计的过程中,建立清晰的类层次; (3)在系统中至少要定义四个类,每个类中要

2、有各自的属性和方法; (4)在系统的设计中,至少要用到面向对象的一种机制。 3、创新要求: 在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。 (三)、设计方法和基本原理: 1.功能要求 (1)添加功能程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所 要添加的人员类别,要求人员的编号要唯一,如果添加了重复编号的记录时,则提示用户数据添加重复并取消添加。 (2)查询功能可根据编号、姓名等信息对已添加的记录进行查询。如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。 (3)显示功能可显示当前系统中所有记录。 (4)修改功能可根据查询结果对相应的记录进行修改

3、,修改时注意编号的唯一性。 (5)删除功能对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存在。 (6)统计功能能根据多种参数进行人员的统计。例如:统计四类人员数量以及总数,统计男、女员工的数量,统计平均工资、最高工资、最低工资等。 (7)保存功能将当前系统中各类人员记录存入文件中。 (8)读取功能将保存在文件中的人员信息读入到当前系统中,以供用户使用。在完成以上基本功能的基础上,可自行进行扩展或完善。 2、问题的解决方案: 根据系统功能要求

4、,可以将问题解决分为以下步骤:1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;2)分析系统中的各个实体以及它们之间的关系;3)根据问题描述,设计系统的类层次;4)完成类层次中各个类的描述;5)完成类中各个成员函数的定义;6)完成系统的应用模块;7)功能调试;8)完成系统总结报告。目 录1.系统需求分析12.总体设计23.详细设计及实现34.系统调试65.结论86.心得体会97.参考书目10iv1. 系统需求分析 1.1系统设计的目的与意义: 现在的公司越做越大,公司的人员数量越来越多,因此需要一个公司人员管理系统来对公司的人员进行管理。1.2 系统功能需求:本系统有五个类:St

5、uff类、Manager类、Salesman类、SalesManager类、Technicist类,存储基本信息、经理信息、销售人员信息、销售经理信息及技术人员信息。1基础信息的添加功能程序能够任意添加经理信息、销售信息、销售经理信息和技术人员信息。2修改功能对已添加的记录(经理信息、销售信息、销售经理信息和技术人员信息)进行修改。3删除功能对已添加的记录(经理信息、销售信息、销售经理信息和技术人员信息)进行删除。如果当前系统中没有相应的记录,则提示“记录为空!”并返回操作;否则输入要删除的编号对该记录进行删除,如果没有找到,则提示相应的记录不存在。4查询功能可根据职位的编号查询某职位的所有职

6、员信息。可根据职员的编号查询某职员的所有信息。如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。5保存功能将当前系统中各类记录存入文件中。6读取功能将保存在文件中的信息读入到当前系统中,以供用户使用。2. 总体设计2.1 系统功能分析:系统通过调用函数来实现信息录入、信息修改、信息删除、信息查询以及数据保存文件等功能。add()函数用于录入信息;modify()函数用来修改信息;del()函数用来修改信息;look()函数用来搜索职员信息;read()函数用于将文件中的数据读取到内存中;save()函数用于将内存中的信息存入文件内;count用于统计职员总数;show()显示职员

7、信息;主函数main()用于调用这些函数。 2.2系统功能模块划分与设计:系统定义了Stuff类、Manager类、Salesman类、SalseManager类这五个类,定义了add()、modify()、del()、read()、save()、look()、count()、show()、等函数来实现系统所需功能。2.3 系统功能模块图:公司人员信息管理系统 技术人员信息添加 技术人员信息查询 技术人员信息显示 技术人员信息修改 技术人员信息删除 技术人员信息统计 技术人员信息保存 技术人员信息读取技术人员信息管理 销售经理信息添加 销售经理信息查询 销售经理信息显示 销售经理信息修改 销售

8、经理信息删除 销售经理信息统计 销售经理信息保存 销售经理信息读取销售经理信息管理 销售人员信息添加 销售人员信息查询 销售人员信息显示 销售人员信息修改 销售人员信息删除 销售人员信息统计 销售人员信息保存 销售人员信息读取销售人员信息管理 经理信息的添加 经理信息的查询 经理信息的显示 经理信息的修改 经理信息的删除 经理信息的统计 经理信息的保存 经理信息的读取 经理信息管理 2.4 类的设计(1)Stuff类(抽象类)的设计:Stuffvirtual void read()=0;virtual void add()=0; virtual void modify(int)=0;virtu

9、al void del(int)=0;virtual void save()=0;Virtual void look()=0;Virtual void count()=0;Virtual void show()=0;Virtual void Input()=0;Virtual void Output()=0; (2)经理类的设计:Manager float pay; void read(); void add(); void look(); void show(); void modify(int); void del(int); void count(); void save(); void

10、 Input() (3)销售人员类的设计:Salesman float market; float rate; void read(); void add(); void look(); void show(); void modify(int); void del(int); void count(); void save(); void Input() (4)销售经理类的设计: SalesManagerfloat pay1,market1,rate1; void read(); void add(); void look(); void show(); void modify(int);

11、void del(int); void count(); void save(); void Input(); (5)技术人员类的设计:Technicist float hour; void read(); void add(); void look(); void show(); void modify(int); void del(int); void count(); void save(); void Input()Technicistfloat hour;void read();void add();void look();void show();void modify(int);v

12、oid del(int);void count();void save();void Input()Stuffvirtual void read()=0;virtual void add()=0; virtual void modify(int)=0;virtual void del(int)=0;virtual void save()=0;Virtual void look()=0;Virtual void count()=0;Virtual void show()=0;Virtual void Input()=0;Virtual void Output()=0;Managerfloat p

13、ay;void read();void add();void look();void show();Void modify(int);void del(int);void count();void save();void Input();void Input()Salesmanfloat market;float rate;void read();void add();void look();void show();void modify(int);void del(int);void count();void save();void Input()SalesManagerfloat pay1

14、,market1,rate1; void read();void add();void look();void show();void modify(int);void del(int);void count();void save();void Input();Salesmanfloat market;float rate;void read();void add();void look();void show();void modify(int);void del(int);void count();void save();void Input()(6) 各个类的关系描述:Managerf

15、loat pay;void read();void add();void look();void show();Void modify(int);void del(int);void count();void save();void Input();void Input() SalesManagerfloat pay1,market1,rate1; void read();void add();void look();void show();void modify(int);void del(int);void count();void save();void Input();Stuffvir

16、tual void read()=0;virtual void add()=0; virtual void modify(int)=0;virtual void del(int)=0;virtual void save()=0;Virtual void look()=0;Virtual void count()=0;Virtual void show()=0;Virtual void Input()=0;Virtual void Output()=0;3. 详细设计及实现3.1Stuff类(抽象类)的实现class Stuffpublic:virtual void read()=0;virtu

17、al void add()=0;virtual void look()=0;virtual void show()=0;virtual void modify(int)=0;virtual void del(int)=0; virtual void count()=0;virtual void save()=0; virtual void Input()=0; virtual void Output()=0; int number;char name100; char sex10;char department10;char rank10; float monpay;3.2 经理类的实现#in

18、clude Stuff.h class Manager:public Stuff public:void read();void add();void look();void show();void modify(int); void del(int); void count();void save(); void Input() coutnumber;coutname; coutsex; coutdepartment; coutrank;coutpay; monpay=pay;void Output()coutsetw(10)经理信息 setw(10)编号setw(10)姓名setw(10)

19、性别setw(10)所在部门setw(10)级别setw(10)月薪endl;coutsetw(10)经理信息 setw(10)numbersetw(10)namesetw(10)sexsetw(10)departmentsetw(10)ranksetw(10)monpaym1count_Manager.numberm1count_Manager.namem1count_Manager.sexm1count_Manager.departmentm1count_Manager.rankm1count_Manager.monpay;while(!managerfile.eof()managerfi

20、lem1count_Manager.numberm1count_Manager.namem1count_Manager.sexm1count_Manager.departmentm1count_Manager.rankm1count_Manager.monpay; count_Manager+;managerfile.close();void Manager:add()m1count_Manager.number=number; strcpy(m1count_Manager.name,name); strcpy(m1count_Manager.sex,sex); strcpy(m1count_

21、Manager.department,department); strcpy(m1count_Manager.rank,rank); m1count_Manager.monpay=monpay; m1count_Manager.number=number; count_Manager+;void Manager:look() if(count_Manager=0) cout对不起,没有相关记录!endl; return; int choice; cout请选择查找方式:1、编号查找 2、姓名查找 choice; while(choice!=1&choice!=2)coutchoice; swi

22、tch(choice) case 1:coutnumber; for(int i=0;icount_Manager;i+) if(m1i.number=number) m1i.Output();return; cout没有相关人员!endl; break;case 2:coutname;for(int i=0;icount_Manager;i+)if(strcmp(m1i.name,name)=0)m1i.Output(); return;cout没有相关人员!endl;break;default:cout无此选项,请重试!endl;break;void Manager:show() for(

23、int i=0;i=count_Manager-1;i+) m1i.Output(); void Manager:modify(int index) m1index-1.number=number; strcpy(m1index-1.name,name); strcpy(m1index-1.sex,sex);strcpy(m1index-1.department,department);strcpy(m1index-1.rank,rank); m1index-1.monpay=monpay;void Manager:del(int index)for(int i=index;i=count_M

24、anager-1;i+)m1i-1.number=m1i.number;strcpy(m1i-1.name,m1i.name); strcpy(m1i-1.sex,m1i.sex);strcpy(m1i-1.department,m1i.department);strcpy(m1i-1.rank,m1i.rank); m1i-1.monpay=m1i.monpay;count_Manager-; void Manager:count() int sum=0;int male=0,female=0;for(int i=0;icount_Manager;i+)if(!strcmp(m1i.sex,

25、男)male+;if(!strcmp(m1i.sex,女)female+;sum+;cout总的人数是:sumendl;cout男的人数是:maleendl;cout女的人数是:femaleendl;void Manager:save()ofstream managerfile;managerfile.open(经理信息管理.dat);for(int i=0;i=count_Manager-1;i+) managerfilem1i.number m1i.name m1i.sex m1i.department m1i.rank m1i.monpayendl; managerfile.close(

26、);3.3销售人员类的实现#include Stuff.hclass Salesman:public Stuffpublic:void read();void add();void look(); void show();void modify(int); void del(int); void count();void save(); void Input() coutnumber;coutname; coutsex; coutdepartment; coutrank;coutmarketrate; monpay=market*rate;void Output()coutsetw(10)销售

27、人员信息 setw(10)编号setw(10)姓名setw(10)性别setw(10)所在部门setw(10)级别setw(10)月薪endl;coutsetw(10)经理信息 setw(10)numbersetw(10)namesetw(10)sexsetw(10)departmentsetw(10)ranksetw(10)monpays1count_Salesman.numbers1count_Salesman.names1count_Salesman.sexs1count_Salesman.departments1count_Salesman.ranks1count_Salesman.m

28、onpay;while(!Salesmanfile.eof()Salesmanfiles1count_Salesman.numbers1count_Salesman.names1count_Salesman.sexs1count_Salesman.departments1count_Salesman.ranks1count_Salesman.monpay;count_Salesman+;Salesmanfile.close();void Salesman:add()s1count_Salesman.number=number; strcpy(s1count_Salesman.name,name

29、); strcpy(s1count_Salesman.sex,sex);strcpy(s1count_Salesman.department,department);strcpy(s1count_Salesman.rank,rank); s1count_Salesman.monpay=monpay; count_Salesman+;void Salesman:look() if(count_Salesman=0) cout对不起,没有相关记录!endl; return; int choice; cout请选择查找方式:1、编号查找 2、姓名查找 choice; while(choice!=1&

30、choice!=2)coutchoice; switch(choice) case 1:coutnumber; for(int i=0;icount_Salesman;i+) if(s1i.number=number)s1i.Output();return; cout没有相关人员!endl;break;case 2:coutname;for(int i=0;icount_Salesman;i+)if(strcmp(s1i.name,name)=0)s1i.Output(); return;cout没有相关人员!endl;break;default:cout无此选项,请重试!endl;break

31、;void Salesman:show() for(int i=0;i=count_Salesman-1;i+) s1i.Output(); void Salesman:modify(int index) s1index-1.number=number; strcpy(s1index-1.name,name); strcpy(s1index-1.sex,sex);strcpy(s1index-1.department,department);strcpy(s1index-1.rank,rank); s1index-1.monpay=monpay;void Salesman:del(int in

32、dex)for(int i=index;i=count_Salesman-1;i+)s1i-1.number=s1i.number;strcpy(s1i-1.name,s1i.name); strcpy(s1i-1.sex,s1i.sex);strcpy(s1i-1.department,s1i.department);strcpy(s1i-1.rank,s1i.rank); s1i-1.monpay=s1i.monpay;count_Salesman-; void Salesman:count() int sum2=0;int male2=0,female2=0;for(int i=0;ic

33、ount_Salesman;i+)if(!strcmp(s1i.sex,男)male2+;if(!strcmp(s1i.sex,女)female2+; sum2+;cout总的人数是:sum2endl;cout男的人数是:male2endl;cout女的人数是:female2endl;void Salesman:save()ofstream Salesmanfile; Salesmanfile.open(销售人员信息管理.dat);for(int i=0;i=count_Salesman-1;i+) Salesmanfiles1i.number s1i.name s1i.sex s1i.dep

34、artment s1i.rank s1i.monpayendl; Salesmanfile.close();3.4销售经理类的实现Salesmanager.hclass Salesmanager:public Stuff public: float pay1,market1,rate1; void read(); void add(); void look(); void show(); void modify(int); void del(int); void count();void save(); void Input() coutnumber;coutname; coutsex; coutdepartment; coutrank; coutpay1 market1 rate1;monpay=market

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号