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

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

《(c公司人员管理系统).docx》由会员分享,可在线阅读,更多相关《(c公司人员管理系统).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.参考书目10iii1. 系统需求分析 1.1系统设计的目的与意义: 现在的公司越做越大,公司的人员数量越来越多,因此需要一个公司人员管理系统来对公司的人员进行管理。1.2 系统功能需求:本系统有五个类:S

5、tuff类、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;virt

9、ual 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(); voi

10、d 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);

12、void 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

13、pay;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 pay

14、1,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) 各个类的关系描述:Manager

15、float 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();Stuffvi

16、rtual 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;virt

17、ual 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 经理类的实现#i

18、nclude 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()managerf

20、ilem1count_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; sw

22、itch(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_

24、Manager-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.

28、monpay;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,nam

29、e); 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;brea

31、k;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 i

32、ndex)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;i

33、count_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.de

34、partment 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=marke

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号