下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、销售公司人员管理C+大作业报告班级:031013 学号:姓名:销售公司员工管理一. 题目:设计一个虚基类Staff (员工),包含编号、 姓名和年龄保护数据成员以及相关的成员函数; 由Staff派生出销售员类Salesman,包含销售额 保护数据成员以及相关的成员函数;再由Staff派生出经理类 Manager;然后由Salesman和 Manager类派生出销售经理类SalesManager。设计一个利用文件处理方式实现对公司人 员(包括销售员、经理和销售经理)进行管理, 具有增加数据、更新数据、查询数据、删除数据 以及重组文件的功能。(删除数据在记录中做删 除标志,重组文件指在物理上删除有
2、删除标志的 记录。)另外要求分别统计这三类员工的人数以 及所有员工的总数。二. 分析,流程及编程思想:首先定义一个虚基类Staff类,然后通过虚 拟继承生成Salesman类和Manager类,最后由 Salesman和 Manager 派生出销售经理类 SalesManager 。 这四个类中定义 lnputFromFile(istream &in)这一输入函数,另外 每个类还定义输入信息和输出信息的成员函数 , 之后定义 StaffChart、SalesmanChart、 ManagerChart 和 SalesManagerChart 四个类 来,为实现增加、更新、查询、删除以及
3、特定类 别人员显示,特定类别人员数目显示的功能定义 addItem、modifyitem、find、removeitem 以及 display、findnumber函数。最后在主函数定义 Staff_Chart、Salesman_Chart、Manager_Chart 和SalesManager_Chart四个对象,通过循环执 行并用switch函数选择功能,然后调用相关的 函数来实现各种功能。三. 实验代码:#in clude"iostream"#in clude"fstream" using n amespace std; class Staff p
4、rotected:char num10;char n ame10;int age;public:Staff * Next;void set_staff()cout«"Pleaseen teran umber:"c in>>num;coutvv' "Pleasein putthen ame:"c in>>n ame;cout<<"Please in put the age:"c in> >age;void In putFromFile(istream &in)in
5、»num»n ame>>age;void show()cout«" number:"v <n um<<e ndl;cout«" name:"< <n ame<<e ndl;cout<<"age : "<<age<<endl;char *get_ num()return num;char *get_ name()return n ame;int get_age()return age;class Salesm
6、an:virtual public Staffprotected:int sales;public:Salesma n * Nex t;void set_salesma n()nu mbern amecout«"Pleaseen tera"c in>>n um;coutvv' "Pleasein putthe"c in>>n ame;cout«"Please in put the age : "c in> >age; coutvv""Please en
7、ter the sales: "cin>>sales;void InputFromFile(istream &in)in»num»n ame>>age>>sales;void show_salesma n()cout<<"number : "<<num<<endl;cout<<"name : "<<name<<endl; cout<<"age : "<<age<
8、<endl;cout<<"sales : "<<sales<<endl;int get_sales()return sales;class Man ager:virtual public Staffprotected:char job10;char dept10;public:Man ager * Next;void set_ma nager()cout«"Pleaseen teranu mber"c in>>n um;cout<<"Pleasein putthen a
9、me"c in>>n ame;cout<<"Please in put the age : "c in> >age; coutvv" "Please in put positi on : "c in> >job; coutvv'"Please enter the Department "c in> >dep t;void InputFromFile(istream &in)in»num»n ame>>age&
10、#187;job»dept;void show_ma nager()cout«"number : "<<num<<endl;cout«"name : "<<name<<endl; cout«"age : "<<age<<endl;cout«"position : "<<job<<endl; cout«"department : "<&l
11、t;dept<<endl;char *get_job()return job;char *get_dept()return dept;class SalesManager:public Salesman,public Man agerpublic:SalesMa nager * Next;void set_salesma nager()cout«"Pleaseen ter anu mber"c in>>n um;coutvv' "Pleasein put then ame :"c in>>n ame;
12、cout<<"Please in put the age : "c in> >age; coutvv""Please enter the sales: "cin>>sales; coutvv' 'Please in put positi on : "ci n> >job; coutvv''Please enter the Department : "c in> >dep t;void InputFromFile(istream &am
13、p;in)in»num»n ame>>age»sales>>job»dept;void show_salesma nager()cout«"number : "<<num<<endl;cout«"name : "<<name<<endl;cout<<"age : "<<age<<endl;cout«"sales : "<<sal
14、es<<endl; cout«"position : "<<job<<endl; cout«"department : "<<dept<<endl;class StaffChartpublic:StaffChart();StaffChart();void fin d();void save();void modifyltem();void removeltem();int findn umber();void display()Staff *p=Head->Next;f
15、or(p;p!=E nd;p=p->Next)p->show();cout«e ndl;void addltem()En d->set_staff();En d->Next=new Staff;En d=E nd->Nex t;save();private:Staff * Head,* End;ifstream in;ofstream ou t;Staff * fin dltem(char * num)for(Staffp=Head;p->Next!=E nd;p=p->Next) if(!strcmp(p->Next->get_
16、 nu m() ,nu m) return p;return NULL;StaffChart:StaffChart()Head=new Staff;Head->Next=new Staff;En d=Head->Nex t;in.o pe n("StaffChart.txt"); while(!i n. eof()En d->I nputFromFile(i n);if(En d->get_num()0='0') break;En d->Next=new Staff;En d=E nd->Nex t;in .close()
17、;StaffChart:StaffChart()for(Staff * temp;Head->Next!=E nd;)temp=Head->Nex t;Head->Next=Head->Next->Nex t;delete temp;delete Head,E nd;void StaffChart:fi nd()char num10;Staff * p=NULL;cout«"Please in put the search for employee number : "cin>>num;if(p=fi ndltem( nu
18、m)p->Next->show();elsecout<<"Not foun d!"<<e ndl<<e ndl;void StaffChart:modifyltem()char num10;Staff * p=NULL;cout<<" "Please in put to modify the employee number : "cin>>num;if(p=fi ndltem( num)p->Next->show();cout«"Please
19、 in put the new content : "<<e ndl;p->Next->set_staff();elsecout<<"Not foun d!"<<e ndl«e ndl;save();void StaffChart:removeltem()char num10;Staff *p=NULL,*temp=NULL;cout«"Pleasedeleteemployeen umber:"c in>>num;if(p=fi ndltem( num)temp=p
20、->Nex t;p->Next=p->Next->Nex t;delete temp;cout«"Deletedsuccessfully!"«e ndl«e ndl;elsecout<<"Not foun d!"<<e ndl«e ndl;save();void StaffChart:save()out.ope n("StaffChart.txt");for(Staff*p=Head->Nex t; p!=E nd;p=p->Next)
21、 out«p->get_ nu m()<<""vvp->get_ name()<<" "<<p->get_age()<<e ndl;out.close();int StaffChart:fi ndnu mber()int n=0;Staff *p=Head->Next; while(p!=NULL)n+;p=p->Nex t;cout«"Number of staff:"< <n-1<<e ndl; return
22、n-1;class Salesma nChartpublic:Salesma nChart();Salesma nChart();void fin d();void save();void modifyltem();void removeltem();int findn umber();void display()for(Salesma n*p=Head->Nex t; p!=E nd;p=p->Next) p->show_salesma n();void addItem()En d->set_salesma n();En d->Next=new Salesma
23、n;En d=E nd->Nex t;save();private:Salesma n * Head,* End; ifstream in;ofstream ou t;Salesma n * fin dltem(char * num)for(Salesma np=Head;p->Next!=E nd;p=p->Next) if(!strcmp(p->Next->get_ nu m() ,nu m) return p;return NULL;Salesma nChart:Salesma nChart()Head=new Salesma n;Head->Next
24、=new Salesma n;En d=Head->Nex t;in.o pe n("Salesma nChart.txt");while(!i n. eof()En d->I nputFromFile(i n);if(En d->get_num()0='0')break;En d->Next=new Salesma n;En d=E nd->Nex t;in .close();Salesma nCha rt:Salesma nChart()for(Salesma n * temp;Head->Next!=E nd;) t
25、emp=Head->Nex t; Head->Next=Head->Next->Nex t; delete temp;delete Head,E nd;void Salesma nChart:fi nd()char num10;salesSalesma n * p=NULL;cout«"Pleasein putthe searchnumbers : "cin>>num;if(p=fi ndltem( num) p->Next->show_salesma n();elsecout«"Not foun
26、 d!"<<e ndl«e ndl;void Salesma nChart:modifyltem()char num10;the salescontent :Salesma n * p=NULL;cout<<"Please in put to modify numbers : "cin>>num;if(p=fi ndltem( num)p->Next->show_salesma n(); coutvv'卩lease in put the new "<<e ndl;p->N
27、ext->set_salesma n();elsecout<<"Not foun d!"<<e ndl«e ndl; save();void Salesma nChart:removeltem()char num10;Salesma n *p=NULL,*temp=NULL;cout<<" "Pleasedelete sales nu mbers"c in>>n um;if(p=fi ndltem( num)temp=p->Nex t; p->Next=p->Ne
28、xt->Nex t; delete temp;cout<<"Deletedsuccessfully!"v<e ndl«e ndl;elsecout<<"Not foun d!"<<e ndl«e ndl;save(); void Salesma nCha 比:save()out.ope n("Salesma nChart.txt");for(Salesma np=Head->Nex t; p!=E nd;p=p->Next)out«p->g
29、et_ num()«p->get_ name()«p->get _age()vvp->get_sales()v<e ndl;out.close();int Salesma nChart:fi ndnu mber()int n=0;Salesma n *p=Head->Nex t;while(p!=NULL)n+;p=p->Nex t;cout<<"Sales n umbers:"v <n-1<<e ndl;return n-1;class Man agerChartpublic:Man a
30、gerChart();Ma nagerChart();void fin d();void save();void modifyltem();void removeItem();int findn umber();void display。Man ager *p=Head->Nex t; for(p;p!=E nd;p=p->Next) p->show_ma nager();void addItem()En d->set_ma nager();En d->Next=new Man ager;En d=E nd->Nex t;save();private:Man
31、 ager * Head,* End;ifstream in;ofstream ou t;Man ager * fin dltem(char * n um)for(Ma nagerp=Head;p->Next!=E nd;p=p->Next) if(!strcmp(p->Next->get_ nu m() ,nu m) return p;return NULL;Man agerChart:Ma nagerChart()Head=new Man ager;Head->Next=new Man ager;En d=Head->Nex t;in.o pe n(&q
32、uot;Ma nagerChart.txt");while(!i n. eof()En d->l nputFromFile(i n); if(En d->get_num()O='O') break;En d->Next=new Man ager;En d=E nd->Nex t;in .close();Man agerChart:Ma nagerChart()for(Ma nager * temp;Head->Next!=E nd;) temp=Head->Nex t; Head->Next=Head->Next->
33、;Nex t; delete temp;delete Head,End;void Man agerChart:fi nd()char num10;Man ager * p=NULL;cout«"Please in put the search man ager ID : "c in>>n um;if(p=fi ndltem( num) p->Next->show_ma nager();elsecout<<"Not foun d!"<<e ndl«e ndl;void Man agerCh
34、art:modifyltem()char num10;Man ager * p=NULL;cout<<"Please in put the revision manager ID : "cin>>num;if(p=fi ndltem( num)p->Next->show_ma nager(); cout<<"Please in put the new content :"<<e ndl;p->Next->set_ma nager();elsecout«"Not f
35、oun d!"<<e ndl«e ndl;save();voidMan agerChart:removeltem()删除条目char num10;Manager *p=NULL,*temp=NULL;cout<<"Please in put the deleti on man ager ID : "cin>>num;if(p=fi ndltem( num)temp=p->Nex t;p->Next=p->Next->Nex t;delete temp;cout«"Delete
36、dsuccessfully!"«e ndl«e ndl; elsecout«"Not foun d!"«e ndl«e ndl;save();voidMan agerChart:save()保存out.ope n("Ma nagerChart.txt");for(Ma nagerp=Head->Nex t; p!=E nd;p=p->Next)out«p->get_ num()«p->get_ name()«p->get_age()vv
37、p->getob()vvp->get_dept()v<e ndl; out.close();intMan agerChart:fi ndnu mber()查看人数int n=0;Man ager *p=Head->Nex t; while(p!=NULL)n+;p=p->Nex t;cout<v"Ma nager nu mber:"< <n-1<<e ndl; return n-1;class SalesMa nagerChartpublic:SalesMa nagerChart();SalesMa nagerCh
38、art();void fin d();void save();void modifyltem();void removeltem();int findn umber();void display()SalesMa nager *p=Head->Nex t;for(;p!=E nd;p=p->Next) p->show_salesma nager();void addItem()En d->set_salesma nager();En d->Next=new SalesMa nager;En d=E nd->Nex t;save();private:Sales
39、Ma nager * Head,* End;ifstream in;ofstream ou t;SalesMa nager * fin dItem(char * num)for(SalesMa nager p=Head;p->Next!=E nd;p=p->Next) if(!strcmp(p->Next->get_ nu m() ,nu m) return p;return NULL;SalesMa nagerChart:SalesMa nagerChart()Head=new SalesMa nager;Head->Next=new SalesMa nager
40、;En d=Head->Nex t;in. ope n("SalesMa nagerChart.txt");while(!i n. eof()En d->I nputFromFile(i n);if(En d->get_num()0='0')break;En d->Next=new SalesMa nager;En d=E nd->Nex t;in .close();SalesMa nagerChart:SalesMa nagerChart()for(SalesMa nager * temp;Head->Next!=E n
41、d;)temp=Head->Nex t;Head->Next=Head->Next->Nex t;delete temp;delete Head,E nd;void SalesMa nagerChart:fi nd()char num10;SalesMa nager * p=NULL;cout<<" "Please in put the search sales man ager ID : "cin>>num;if(p=fi ndltem( num)p->Next->show_salesma nager(
42、);elsecout<<"Not foun d!"<<e ndl«e ndl; void SalesMa nagerChart:modifyltem() char num10;SalesMa nager * p=NULL;cout<<" "Please in put to modify the nu mber of Sales Manager: "cin>>num;if(p=fi ndltem( num)p->Next->show_salesma nager(); cout&
43、lt;<"Please in put the new content : "<<e ndl;p->Next->set_salesma nager();elsecout<<"Not foun d!"<<e ndl«e ndl;save();void SalesMa nagerChart:removeltem()char num10;SalesMa nager *p=NULL,*temp=NULL;cout<<"Please delete sales manager ID
44、: "c in>>n um;if(p=fi ndltem( num)temp=p->Nex t;p->Next=p->Next->Nex t;delete temp;cout«"Deletedsuccessfully!"«e ndl«e ndl;elsecout<<"Not foun d!"<<e ndl«e ndl;save();void SalesMa nagerChart:save()out.ope n("SalesMa nage
45、rChart.txt");for(SalesMa nagerp=Head->Nex t; p!=E nd;p=p->Next)out«p->get_ num()«p->get_ name()«p->get _age()vvp->get_sales()vvp->getob()vvp->get_ dept()<<e ndl;out.close();int SalesMa nagerChart:fi ndnu mber() int n=0;SalesMa nager *p=Head->Nex t
46、; while(p!=NULL)n+;p=p->Nex t;for thecout«"SalesMan agern umber:"v <n-1<<e ndl;return n-1; int mai n()int x,y,乙StaffChart Staff_Chart;Salesma nChart Salesma n_Chart;Man agerChartMan ager_Chart;SalesMa nagerChart SalesMa nager_Chart;bool quit=false;while(!quit)cout«&qu
47、ot;Select fun cti on : n l.the in crease ofdata t2. update data t3.query datat4.delete data t5. for specific categories of pers onnel t6. show the n umber of employees t7. exit"<<e ndl;cin> >x;switch(x)case 1:cout<<"Selecti on for in creased types: n1. employee t2. Sales
48、t3.Managert4.Sale?Man ager"<<e ndl;cin>>y;switch(y) case 1:Staff_Chart.addltem();break;case2:Salesma n_ Chart.addItem();break;case 3:Ma nager_Chart.addltem();break;case4:SalesMa nager_Chart.addItem();break;default :coutvv" In puterror, programterm in ati on ! "<<e nd
49、l;exit(-1);break;case 2:cout<<"Select Update type:n1.employee t2. Sales t3.Manager t4.Sale? Man ager"<<e ndl;cin>>y;switch(y)case 1:Staff_Chart.modifyltem();break;case2:Salesma n_ Chart.modifyItem();break;case3:Ma nager_Chart.modifyltem();break;case4:SalesMa nager_Chart.m
50、odifyltem();break;default :coutvv" in puterror, program termination ! "<<endl;exit(-1); break;case 3:cout«"Choose a query type: n1. employee t2. Sales t3.Manager t4.Sale? Man ager"<<e ndl;cin>>y;switch(y)case 1:Staff_Chart.fi nd();break;case 2:Salesma n_ Ch
51、art.fi nd();break;case 3:Ma nager_Chart.fi nd();break;case4:SalesMa nager_Chart.fi nd();break;default :coutvv" In puterror, programtermination ! "<<endl;exit(-1);break;case 4:cout<<"Select Delete type : n1. employeet2. Sales t3.Ma nager t4.SalesMan ager"«e ndl; c
52、in>>y;switch(y) case 1:Staff_Chart.removeltem();break;case2:Salesma n_Chart.removeltem();break;case3:Ma nager_Chart.removeltem();break;case4:SalesMa nager_Chart.removeltem();break; default :coutvv" In puterror, programterm in ati on ! "<<e ndl;exit(-1);break;case 5:cout«&q
53、uot;List of personnel selection type : n1. employee t2. Sales t3.Manager t4.Sale Man ager"<<e ndl;cin>>y;switch(y)case 1:Staff_Chart.display();break;case 2:Salesma n_ Chart.display();break;case 3:Ma nager_Chart.display();break;case4:SalesMa nager_Chart.display();break;default :coutv
54、v" In puterror, programterm in ati on ! "<<e ndl;exit(-1);break;case 6:cout<<"Select view the number of types of staff : n1. employee t2. Sale; t3.Manager t4.Sales Managert5.AII personne of the total nu mber of"<<e ndl;cin>>y; switch(y)case1:Staff_Chart.fi
55、 ndn umber();break;case2:Salesma n_ Chart.fi ndnu mber();break;case3:Ma nager_Chart.fi ndn umber();break;case4:SalesMa nager_Chart.fi ndnu mber();break;case5:z=Staff_Chart.fi ndnu mber()+Salesma n_ Chart findnu mber()+Ma nager_Chart.fi ndn umber()+S alesMa nager_Chart.fi ndn umber();cout«"
56、AII personnel a total :"vvzvve ndl;break;default :coutvv" In put error, program term in ati on ! "<<e ndl;exit(-1);break;case 7:quit=true;break;default :coutvv" in puterror, programterm in ati on ! "<<e ndl;exit(-1);return 0;四运行结果:(由于四个类的实现过程基本相同,所以在此只用Salesman做演
57、示)1.程序运行在工作空间中生成 4个txt文件:ManagerChart. txt2013/1/7 17)5S 衬 uwM?门gurChmrttxt2013/1/7 17rV5义專久栏_ Sale5manCharttxt;D13/l/7 17M文本如StaffCh art, txt2013/1/7 17r04文本文档1K&1 K&1KB1 KB2添加两个manager:showSales Hanajjerdata 4.delete ddiLta tlie number of emp丄o号e启畧data 4.delete data iblie n timJbe i* ofSel
58、ection f tL. emplayeeinput inw t Input enter1 fanet ion 半:a nunber: 1t. he n ame s a七hu:91posit ion :经理the Depai'tmenit-祐售部ientei' input inpu.七 input entep fun:ct lavi - ln=c±-«ti<fcse uf dettefc 2. update ddLLd c categories of personvie丄Eielect function :I .the iricreaise o£ dsita 2. update data 3.Query pec if 1c catreigioifeie of pep? onnel& * chaw
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广东惠州市博罗县园区投资发展有限公司招聘5人笔试历年常考点试题专练附带答案详解
- 2025年福建泉州市供销社资产运营管理中心招聘4人笔试历年常考点试题专练附带答案详解2套试卷
- 2025山东滨州市博兴县城建集团有限公司招聘4人笔试参考题库附带答案详解
- 2025四川宜宾宜源置业有限公司招聘项目管理及技术人员2人笔试参考题库附带答案详解
- 2025内蒙古能源集团有限公司市场化选聘部分所属公司经理层成员4人笔试参考题库附带答案详解
- 危重孕产妇评审制度
- 施工安全责任制度完整范本说明
- 社会组织重大活动报告制度
- 直销公司的奖金制度
- 电费回收制度
- 智能网联汽车感知技术与应用 课件 任务3.1 视觉感知技术应用
- 9.个体工商户登记(备案)申请书
- (正式版)DB51∕T 3342-2025 《炉灶用合成液体燃料经营管理规范》
- 江南大学《食品科学与工程》考研真题及答案解析
- 工程咨询行业发展规划方案范文
- 2025年汉语桥的考试题目及答案
- 《TCSUS69-2024智慧水务技术标准》
- 1.1中国的疆域课件-八年级地理上学期湘教版-1
- 收费站消防安全线上培训课件
- 【语文】贵州省贵阳市实验小学小学二年级上册期末试卷
- 妇科单孔腹腔镜手术专家共识(2025版)解读 4
评论
0/150
提交评论