销售公司人员管理_第1页
销售公司人员管理_第2页
销售公司人员管理_第3页
免费预览已结束,剩余22页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C+大作业报告班级: 031013学号:姓名:销售公司员工管理一题目:设计一个虚基类 Staff (员工),包含编号、姓名和年龄保护数据成员以及相关的成员函 数;由Staff派生出销售员类 Salesman,包含销售额保护数据成员以及相关的成员函数;再 由Staff派生出经理类Manager;然后由 Salesman和 Manager类派生出销售经理类SalesManager。设计一个利用文件处理方式实现对公司人员 (包括销售员、 经理和销售经理) 进行管理, 具有增加数据、更新数据、查询数据、删除数据以及重组文件的功能。(删除数据在记录中做删除标志,重组文件指在物理上删除有删除标志的记录。

2、)另外要求分别统计这三类员工 的人数以及所有员工的总数。二 分析,流程及编程思想:首先定义一个虚基类 Staff类,然后通过虚拟继承生成Salesman类和Manager类,最后由Salesman和Manager派生出销售经理类 SalesManager。这四个类中定义 InputFrom &n) 这一输入函数,另外每个类还定义输入信息和输出信息的成员函数,之后定义 StaffChart、SalesmanChart、 ManagerChart 和 SalesManagerChart 四个类来,为实现增加、更新、查询、 删除以及特定类别人员显示, 特定类别人员数目显示的功能定义addItem、

3、modifyItem 、 find 、removeItem 以及 display、 findnumber 函数。 最后在主函数定义 Staff_Chart、 Salesman_Chart、 Manager_Chart 和 SalesManager_Chart 四个对象,通过循环执行并用 switch 函数选择功能, 然后调用相关的函数来实现各种功能。三 实验代码:#includeiostream #includefstream using namespace std;class Staffprotected:char num10;char name10;int age;public:Staff

4、 * Next;void set_staff()coutnum;coutname; coutage;void InputFrom &in)innumnameage;void show()coutnumber:numendl; coutname:nameendl; coutage : ageendl;char *get_num()return num;char *get_name()return name;int get_age()return age;class Salesman:virtual public Staffprotected:int sales;public:Salesman *

5、 Next;void set_salesman()coutnum; coutname; coutage; coutsales;void InputFrom &in)innumnameagesales;void show_salesman()coutnumber : numendl; coutname : nameendl; coutage : ageendl; coutsales: salesendl;int get_sales()return sales;class Manager:virtual public Staffprotected:char job10;char dept10;pu

6、blic:Manager * Next;void set_manager()coutnum; coutname; coutage; coutjob; coutdept;void InputFrom &in) innumnameagejobdept;void show_manager()coutnumber : numendl; coutname : nameendl; coutage : ageendl; coutposition : jobendl; coutdepartment : deptendl;char *get_job()return job;char *get_dept()ret

7、urn dept;class SalesManager:public Salesman,public Managerpublic:SalesManager * Next;void set_salesmanager()coutnum; coutname; coutage; coutsales; coutjob; coutdept;void InputFrom &in) innumnameagesalesjobdept;void show_salesmanager()coutnumber : numendl; coutname : nameendl; coutage : ageendl; cout

8、sales: salesendl; coutposition : jobendl; coutdepartment : deptNext; for(p;p!=End;p=p-Next) p-show(); coutset_staff(); End-Next=new Staff;End=End-Next; save(); private:Staff * Head,* End; ifstream in; ofstream out;Staff * findItem(char * num) for(Staff * p=Head;p-Next!=End;p=p-Next) if(!strcmp(p-Nex

9、t-get_num() ,num) return p;return NULL; ;StaffChart:StaffChart()Head=new Staff; Head-Next=new Staff; End=Head-Next;in.open(StaffChart.txt); while(!in.eof() End-InputFrom); if(End-get_num()0=0) break;End-Next=new Staff; End=End-Next; in.close();StaffChart:StaffChart() for(Staff * temp;Head-Next!=End;

10、) temp=Head-Next; Head-Next=Head-Next-Next;delete temp;delete Head,End;void StaffChart:find()char num10;Staff * p=NULL;cinnum;cinnum;coutNext-show();else coutNot found!endlendl;void StaffChart:modifyItem()char num10;Staff * p=NULL;coutNext-show(); coutPlease input the new content : Next-set_staff();

11、else coutNot found!endlendl;save();void StaffChart:removeItem()char num10;Staff *p=NULL,*temp=NULL;coutnum; if(p=findItem(num) temp=p-Next; p-Next=p-Next-Next; delete temp;coutDeleted successfully!endlendl;elsecoutNot found!endlNext;p!=End;p=p-Next)outget_num() get_name() get_age()Next; while(p!=NUL

12、L) n+; p=p-Next;coutNumber of staff:n-1Next;p!=End;p=p-Next) p-show_salesman();void addItem() End-set_salesman(); End-Next=new Salesman; End=End-Next; save(); private:Salesman * Head,* End; ifstream in; ofstream out;Salesman * findItem(char * num) for(Salesman * p=Head;p-Next!=End;p=p-Next) if(!strc

13、mp(p-Next-get_num() ,num) return p;return NULL;SalesmanChart:SalesmanChart()Head=new Salesman; Head-Next=new Salesman; End=Head-Next;in.open(SalesmanChart.txt); while(!in.eof() End-InputFrom); if(End-get_num()0=0) break;End-Next=new Salesman; End=End-Next; in.close();SalesmanChart:SalesmanChart() fo

14、r(Salesman * temp;Head-Next!=End;) temp=Head-Next; Head-Next=Head-Next-Next; delete temp;delete Head,End;void SalesmanChart:find()char num10;Salesman * p=NULL;coutnum; if(p=findItem(num)p-Next-show_salesman();else coutNot found!endlendl;void SalesmanChart:modifyItem()char num10;Salesman * p=NULL;cou

15、tnum; if(p=findItem(num) p-Next-show_salesman(); coutPlease input the new content : Next-set_salesman();else coutNot found!endlendl;save();void SalesmanChart:removeItem()char num10;Salesman *p=NULL,*temp=NULL;coutnum; if(p=findItem(num) temp=p-Next; p-Next=p-Next-Next; delete temp;coutDeleted succes

16、sfully!endlendl;elsecoutNot found!endlNext;p!=End;p=p-Next) outget_num()get_name()get_age()get_sales()Next;while(p!=NULL) n+;p=p-Next;coutSales numbers:n-1Next; for(p;p!=End;p=p-Next) p-show_manager();void addItem()End-set_manager();End-Next=new Manager;End=End-Next; save();private:Manager * Head,*

17、End; ifstream in;ofstream out;Manager * findItem(char * num) for(Manager * p=Head;p-Next!=End;p=p-Next) if(!strcmp(p-Next-get_num() ,num) return p;return NULL;ManagerChart:ManagerChart()Head=new Manager; Head-Next=new Manager; End=Head-Next; in.open(ManagerChart.txt); while(!in.eof()End-InputFrom);

18、if(End-get_num()0=0) break;End-Next=new Manager; End=End-Next;in.close();ManagerChart:ManagerChart()for(Manager * temp;Head-Next!=End;) temp=Head-Next; Head-Next=Head-Next-Next; delete temp;delete Head,End;void ManagerChart:find()char num10;Manager * p=NULL;coutnum; if(p=findItem(num)p-Next-show_man

19、ager();else coutNot found!endlendl;void ManagerChart:modifyItem()char num10;Manager * p=NULL;coutnum; if(p=findItem(num) p-Next-show_manager(); coutPlease input the new content : Next-set_manager();else coutNot found!endlendl;save();void ManagerChart:removeItem()/ 删除条目char num10;Manager *p=NULL,*tem

20、p=NULL;coutnum; if(p=findItem(num) temp=p-Next; p-Next=p-Next-Next; delete temp;coutDeleted successfully!endlendl;else coutNot found!endlNext;p!=End;p=p-Next)outget_num()get_name()get_age()get_job()get_dept()Next;while(p!=NULL) n+;p=p-Next;coutManager number:n-1Next;for(;p!=End;p=p-Next)p-show_sales

21、manager();void addItem()End-set_salesmanager();End-Next=new SalesManager;End=End-Next;save();private:SalesManager * Head,* End;ifstream in;ofstream out;SalesManager * findItem(char * num)for(SalesManager * p=Head;p-Next!=End;p=p-Next) if(!strcmp(p-Next-get_num() ,num) return p;return NULL;SalesManag

22、erChart:SalesManagerChart()Head=new SalesManager;Head-Next=new SalesManager;End=Head-Next;in.open(SalesManagerChart.txt);while(!in.eof()End-InputFrom);if(End-get_num()0=0)break;End-Next=new SalesManager;End=End-Next;in.close();SalesManagerChart:SalesManagerChart()for(SalesManager * temp;Head-Next!=E

23、nd;)temp=Head-Next;Head-Next=Head-Next-Next;delete temp;delete Head,End;void SalesManagerChart:find()char num10;SalesManager * p=NULL;coutnum; if(p=findItem(num)p-Next-show_salesmanager();else coutNot found!endlendl;void SalesManagerChart:modifyItem()char num10;SalesManager * p=NULL;coutnum; if(p=fi

24、ndItem(num) p-Next-show_salesmanager(); coutPlease input the new content : Next-set_salesmanager();else coutNot found!endlendl;save();void SalesManagerChart:removeItem()char num10;SalesManager *p=NULL,*temp=NULL;coutnum; if(p=findItem(num) temp=p-Next; p-Next=p-Next-Next; delete temp;coutDeleted suc

25、cessfully!endlendl;else coutNot found!endlNext;p!=End;p=p-Next)outget_num()get_name()get_age()get_sales()get_job()g et_dept()Next;while(p!=NULL) n+; p=p-Next;coutSales Manager for the number:n-1endl;return n-1;int main()int x,y,z;StaffChart Staff_Chart;SalesmanChart Salesman_Chart;ManagerChart Manag

26、er_Chart;SalesManagerChart SalesManager_Chart;bool quit=false;while(!quit)coutSelect function : n1.the increase of data t2. update data t3.query datat4.delete data t5. for specific categories of personnel t6. show the number of employees t7. exitx;switch(x)case 1:coutSelection for increased types: n

27、1. employee t2. Sales t3.Managert4.Sales Managery;switch(y)case 1:Staff_Chart.addItem();break;case 2:Salesman_Chart.addItem();break;case 3:Manager_Chart.addItem();break;case 4:SalesManager_Chart.addItem();break;default :coutInput error, program termination ! endl;exit(-1); break;case 2:coutSelect Up

28、date type: n1. employee t2. Sales t3.Manager t4.Sales Managery; switch(y) case 1:Staff_Chart.modifyItem();break;case 2:Salesman_Chart.modifyItem();break;case 3:Manager_Chart.modifyItem();break;case 4:SalesManager_Chart.modifyItem();break;default :coutInput error, program termination ! endl;exit(-1);

29、 break;case 3:coutChoose a query type: n1. employee t2. Sales t3.Manager t4.Sales Managery;switch(y)case 1:Staff_Chart.find();break;case 2:Salesman_Chart.find();break;case 3:Manager_Chart.find();break;case 4:SalesManager_Chart.find();break;default :coutInput error, program termination ! endl;exit(-1

30、); break;case 4:coutSelect Delete type : n1. employee t2. Sales t3.Manager t4.Sales Managery; switch(y) case 1:Staff_Chart.removeItem();break;case 2:Salesman_Chart.removeItem();break;case 3:Manager_Chart.removeItem();break;case 4:SalesManager_Chart.removeItem();break;default :coutInput error, progra

31、m termination ! endl;exit(-1); break;case 5:coutList of personnel selection type: n1. employee t2. Sales t3.Manager t4.Sales Managery;switch(y)case 1:Staff_Chart.display();break;case 2:Salesman_Chart.display();break;case 3:Manager_Chart.display();break;case 4:SalesManager_Chart.display();break;defau

32、lt :coutInput error, program termination ! endl;exit(-1); break;case 6:coutSelect view the number of types of staff : n1. employee t2. Sales t3.Manager t4.Sales Managert5.All personnel of the total number ofy; switch(y) case 1:Staff_Chart.findnumber();break;case 2:Salesman_Chart.findnumber();break;c

33、ase 3:Manager_Chart.findnumber();break; case 4:SalesManager_Chart.findnumber();break;case 5:z=Staff_Chart.findnumber()+Salesman_Chart.findnumber()+Manager_Chart.findnumber()+Sale sManager_Chart.findnumber();coutAll personnel a total : zendl; break;default :coutInput error, program termination ! endl

34、;exit(-1); break;case 7: quit=true;break; default : coutInput error, program termination ! c par I inic n t售 却a nunber ; 2 the name: h the Ag*e a: 42 posit Ion: 经理 the Departmen:卡肖售2fdata4. dele te data 5 . f ot*the hlimber of3friers;& input positiontPl&a&e enter the Depai*tncnt 销售部 Function :dat a4

35、.de lathe nunbe r- o F11, the inci?easer ot d占七占 2 - uf)dat:e data 3 .query pec iFic cAtearies of personnel6 sliow7* axLt3-Manager4 - Sal&s HanagfdPleasePic a. eF LetiL-eH I卩Ez S 1 lr U- L-3 .quei*y data 4. de le6 . liou t he number aF1 Please inpuit the i*euis ion maneF ID: 1 nuinbei; 1haine: alaje

36、: 5iBposlcion;经理Id&partciient ;十肖崔三pinput vh new content;nt&r ft numberi 1input the name: a input the age: Siinput position: 召王里2enter the Departnent:销售邯 function ;11.the increase of data 2_ update data pec if Ijc categories of personnel 卩.exitXL? a pg it ion:经理department - 销售部Plfeasft inpud: the ne

37、w contentPlease enter 住 numbes?: 1.Pleas:& Please PleastPlease Select梢售部input the name: a input the age t 51 input positinn: enter the Department: Funct 3.on :3-query data 4 - dele 需- sliou t he ri u.nhe v- o f4 .Sales Heui也g询:L the increase oF data 2- update data p*c if Lc catererof personnel7. exa

38、_tChoos:& a qwery type =:L tntplQee 2 Sales33Please input theRanker ID; 1nunher1: 1 nan&: aage: 51posit Urn:经王学depart merit :销售部Select function si . the inciease of data 2- Uficlate data 3 .quei*y data 4. dele pec if ic catEgorles of personnel6 - sliou the n umber- a F?, exit4-=C:UsersI zx Dm Ho pl

39、未恭名 1, exedata 4de 1 the nunbep of4.ales rtanayedata 4. de 1 t he numbe r o fList oF peirsonnel se lection type ;1 * enploee3 - Sales3 Manaei*nunbei-: 3s25 理销皆部ne;售部ajje: 9position; ISdepaitmen t -numhei*- 1nane ; az; Siposit Lon:盘士里2ideprtnent:销售部nunher ; 2netne : hajje: 42position: 经理 亠department:于住悝部Select Function :1. the increase oF data 2- Ujpdate data 3 .query pec if IjC cate9oi?ies of personnel6 . sliou7 exitPl&a&e input the deletion nanager ID: 1 DL&td aueeessfully*Select Function1 * the increase oF data 2 - ujpdate dat

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论