销售公司人员管理_第1页
销售公司人员管理_第2页
销售公司人员管理_第3页
销售公司人员管理_第4页
销售公司人员管理_第5页
已阅读5页,还剩20页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

C++大作业报告

班级:031013

学号:

姓名:

销售公司员工管理

题目:

设计一个虚基类Sta〒(员工),包含编号、姓名和在龄保护数据成员以及相关的成员函

数;由Staff派生出销售员类Salesman,包含销售额保护数据成员以及相关的成员函数;再

由Staff派生出经理类Manager;然后由Salesman和Manager类派生出销售经理类

SalesManager0

设计一个利用文件处理方式实现对公司人员(包括销售员、经理和销售经理)进行管理,

具有增加数据、更新数据、杳询数据、删除数据以及重组文件的功能。(删除数据在记录中

做删除标志,重组文件指在物理上删除有删除标志的记录。)此外要求分别统计这三类员工

的人数以及所有员工的总数。

二.分析二流程及编程思想:

首先定义•个虚基类Staff类,然后通过虚拟继承生成Salesman类和Manager类,最后

由Salesman和Manager派生出销售经理类SalesManager。这四个类中定义

InputFromFilefistream&in)这一输入函数,此外每一个类还定义输入信息和输出信息的成员

函数,之后定义StaffChart.SalesmanChart.ManagerChart和SalesManagerChart四个类来,

为实现增加、更新、瓷询、删除以及特定类别人员显示,特定类别人员数目显示的功能定

义addItemmodifyitem、find、removeitem以及display^findnumber函数。最后在主函数

定义Staff_Chart.Salesman_ChartxManagejChart和SalesManagejChart四个对象,通过

循环执行并用switch函数选择功能,然后调用相关的函数来实现各种功能。

三.实验代码:

#include"iostream"

#include"fstreamH

usingnamespacestd;

classStaff

(

protected:

charnum[10];

charname[10];

intage;

public:

Staff*Next;

voidset_staff()

(

cout«"Pleaseerteranumber:";cin»num;

cout«"Pleaseinputthename:";cin»name;

cout«"Pleaseinputtheage:";cin»age;

)

voidlnputFromFile(is1ream&in)

(

in»num»name»age;

)

voidshow()

cuul«"riufiiber;"«riufii«endl;

cout«"name:"«name«endl;

cout«"age:"«age«endl;

)

char*get_num()

{

returnnum;

)

char*geLname()

(

returnname;

)

intget_age()

(

returnage;

)

);

classSalesmanvirtualpublicStaff

(

protected:

intsales;

public:

Salesman*Next;

voidset_salesman()

{

cout«"Pleaseenteranumber:";cin»num;

cout«"Pleaseinputthename:,,;cin»name;

cout«"Pleaseinputtheage:";cin»age;

cout«HPleaseenterthesales:";cin»sales;

)

voidlnputFromFile(istream&in)

(

in»num»name»age»sales;

)

voidshowsalesman()

(

cout«"number:,,«num«endl;

cout«"name:H«name«endl;

cout«"age:"«age«endl;

cout«"sales:"«sales«endl;

)

intget_sales()

returnsales;

)

);

classManager:virtualpublicStaff

(

protected:

charjob[10];

chardept[W];

public:

Manager*Next;

voidset_manager()

(

cout^Pleaseenteranumber:";cin»num;

cout^Pleaseinputthename:";cin»name;

cout«Tleaseinputtheage:";cin»age;

cout«"Pleaseinoutposition:u;cin»job;

cout«"PleaseentertheDepartment:";cin»dept;

)

voidlnputFromFile(istream&in)

{

in»num»name»age»job»dept;

)

voidshow_manager()

(

cout«"number:"«num«endl;

coutvv"name:"«name«endl;

cout«"age:"«age«endl;

cout«"position:"«job«endl;

cout«"department:"«dept«endl;

)

char*getjob()

{

returnjob;

)

char*get_dept()

(

returndept;

}

);

classSalesManagerpublicSalesmanpublicManager

public:

SalesManager*Next;

voidset_salesmanager()

(

cout«"Pleaseenteranumber:,';cin»num;

cout«"Pleaseinputthename:,,;cin»name;

cout«"Pleaseinputtheage:";cin»age;

cout«Tleaseenterthesales:,,;cin»sales;

cout«"Pleaseinoutposition:,,;cin»job;

cout«"PleaseentertheDepartment:";cin»dep1;

)

voidlnputFromFile(istream&in)

{

in»num»name»age»sales»job»dept;

)

voidshow_salesmanager()

(

cout«"number:"«num«endl;

cout«'*name:"«name«endl;

cout«"age:"«age«endl;

cout«"sales:"«sales«endl;

cout«"position:"«job«endl;

cout«"department:M«dept«endl;

)

);

classStaffChart

(

public:

StaffChart();

~StaffChart();

voidfind();

voidsave();

voidmodifyltem();

voidremoveltem();

intfindnumber();

voiddisplay()

(

Staff*p=Head->Next;

for(p;p!=End;p=p->Next)

p->show();

cout«endl;

}

)

voidaddltem()

{

End->set_staff();

End->Next=newStaff;

End=End->Next;

save();

)

private:

Staff*Head,*End;

ifstreamin;

ofstreamout;

Staff*findltem(char*num)

(

for(Staff*p=Head;p->Next!=End;p=p->Next)

if(!strcmp(p->Next->get_num(),num))

returnp;

returnNULL;

)

);

StaffChart::StaffChart()

(

Head=newStaff;

Head->Next=newStaff;

End=Head->Next;

in.open("StaffChart.txr);

while(!in.eof())

(

End->lnputFromFile(in);

if(End->get_num()[O]==^')

break;

End->Next=newStaff;

End=End->Next;

)

in.close();

)

StaffChart:>StaffChart()

(

for(Staff*temp;Head->Next!=End;)

temp=Head->Next;

Head->Next=Head->Next->Next;

deletetemp,

)

deleteHead,End;

)

voidStaffChart::find()

(

charnum[10];

Staff*p=NULL;

cout«"Pleaseinputthesearchtoremployeenumber:";cm»num;

if(p=findltem(num))

p->Next->show();

else

(

cout«MNotfound!!"«endl«endl;

)

)

voidStaffChart::modifyltem()

(

charnum[10];

Staff*p=NULL;

cout«Tleaseinputtomodifytheemployeenumber:";cin»num;

if(p=findltem(num))

(

p->Next->show();

cout«"Pleaseinputthenewcontent:"«endl;

p->Next->set_staff();

)

else

cout«"Notfound!!"«endl«endl;

save();

)

voidStaffChart::removeltem()

(

charnum[10];

Staff*p=NULL,*temp=NULL;

cout«"Pleasedeleteemployeenumber:";cin»num;

if(p=findltem(num))

(

temp=p->Next;

p->Next=p->Next->Next;

deletetemp;

cout«"Deletedsuccessfully!!"«endl«endl,

)

else

cout«"Notfound!!"«endl«endl;

save();

)

voidStaffChart::save()

(

out.openCStaffChart.txt");

for(Staff*p=Head->Next;p!=End;p=p->Next)

ou^p^geLnumO^'"«p->get_name()«""«p->get_age()«endl;

out.close();

)

intStaffChart::findnumberO

(

intn=0;

Staff*p=Head->Next;

while(p!=NULL)

{n++;

p=p->Next;

)

cout«"Numberofstaff:"vvn-Ivvendl;

returnn-1;

)

classSalesmanchart

(

public:

SalesmanChartQ;

-SalesmanChart();

voidfind();

voidsave();

voidmodifyltemO;

voidremoveltem();

intfindnumber();

voiddisplay()

(

for(Salesman*p=Head->Next;p!=End;p=p->Next)

p->show_salesman();

)

voidaddltem()

End->set_salesman();

End->Next=newSalesman;

End=End->Next;

save();

)

private:

Salesman*Head,*End;

ifstreamin;

ofstreamout;

Salesman*findltem(char*num)

{

for(Salesman*p=Head;p->Next!=End;p=p->Next)

if(!strcmp(p->Next->get_num(),num))

returnp;

returnNULL;

)

);

SalesmanChart::SalesmanChart()

(

Head=newSalesman;

Head->Next=newSalesman;

End=Head->Next;

in.openfSalesmanChart.txt");

while(!in.eof())

(

End->lnputFromFile(in);

if(End->get_num()[O]==^')

break;

End->Next=newSalesman;

End=End->Next;

)

in.close();

)

SalesmanChart:>SalesmanChart()

(

for(Salesman*temp;Head->Next!=End;)

temp=Head->Next;

Head->Next=Head->Next->Next;

deletetemp;

)

deleteHead,End;

)

voidSalesmanChart::find()

{

charnum[10];

Salesman*p=NULL;

cout«"Pleaseinputthssearchsalesnumbers:";cin»num;

if(p=findltem(num))

p->Next->show_salesman();

else

cout«"Notfound!!"«endl«endl;

)

voidSalesmanChart::modifyltem()

{

charnum[10];

Salesman*p=NULL;

cout«"Pleaseinputtomodifythesalesnumbers:";cin»num;

if(p=findltem(num))

(

p->Next->show_salesman();

cout«"Pleaseinputthenewcontent:"«endl;

p->Next->set_salesman();

)

else

cout«MNotfound!!"«endl«endl;

save();

}

voidSalesmanChart::removeltem()

(

charnum[10];

Salesman*p=NULL,*temp=NULL;

cout«"Pleasedeletesalesnumbers:";cin»num;

if(p=findltem(num))

(

temp=p->Next;

p->Next=p->Next->Next;

deletetemp;

cout«"Deletedsuccessfully!!"«endl«endl;

)

else

cuul«"Nolfuurid!!"«endl«endl;

save();

)

voidSalesmanChart::save()

{

out.openCSalesmanCnart.txt");

for(Salesman*p=Head->Next;p!=End;p=p->Next)

out«p->geLnum()«p->get_name()«p->getace()«p->get_sales()«endl;

out.close();

)

intSalesmanChart::findnumber()

(

intn=0;

Salesman*p=Head->Next;

while(p!=NULL)

{n++;

p=p->Next;

}

cout«"Salesnumbers:"«n-1«endl;

returnn-1;

)

classManagerChart

(

public:

ManagerChartQ;

-ManagerChart();

voidfind();

voidsave();

voidmodifyltem();

voidremoveltem();

intfindnumber();

voiddisplay()

(

Manager*p=Head->Next;

for(p;p!=End;p=p->Next)

p->show_manager();

)

voidaddltem()

End->set_manager();

End->Next=newManager;

End=End->Next;

save();

)

private:

Manager*Head,*End;

ifstreamin;

ofstreamout;

Manager*findltem(char*num)

(

for(Manager*p=Head;p->Next!=End;p=p->Next)

if(!strcmp(p->Next->get_num(),num))

returnp;

returnNULL;

)

);

ManagerChart::ManagerChart()

(

Head=newManager;

Head->Next=newManager;

End=Head->Next;

in.openCManagerChart.txt");

while(!in.eof())

(

End->lnputFromFile(in);

if(End->get_num()[0]==,\0,)

break;

End->Next=newManager;

End=End->Next;

)

in.close();

)

ManagerChart::~ManagerChart()

(

for(Manager*temp;H9ad->Next!=End;)

(

temp=Head->Next;

Head->Next=Head->Next->Next;

deletetemp;

)

deleteHead,End;

)

voidManagerChart::find()

(

charnum[10];

Manager*p=NULL;

cout«"PleaseinputthesearchmanagerID:";cin»num;

if(p=findltem(num))

p->Next->show_manager();

else

cout«**Notfound!!"«endl«endl;

)

voidManagerChart::modifyltem()

(

charnum[10];

Manager*p=NULL;

cout«TleaseinputtherevisionmanagerID:,,;cin»num;

if(p=findltem(num))

f

p->Next->show_manager();

cout«"Pleaseinputthenewcontent:"«endl;

p->Next->set_manager();

)

else

cout«"Notfound!!"«endl«endl;

save();

)

voidManagerChart::removeltem()〃删除条目

(

charnum[10];

Manager*p=NULL,*temp=NULL;

cout«"PleaseinputthedeletionmanagerID:";cin»num;

if(p=findltem(num))

(

temp=p->Next;

p->Next=p->Next->Next;

deletetemp;

cout«"Deletedsuccessfully!!"«endl«endl;

)

else

cout«"Notfound!!"«endl«endl;

save();

)

voidManagerChart::save()〃保存

(

out.openCManagerChart.txt");

for(Manager*p=Head->Next;p!=End;p=p->Next)

out«p->get_num()«p->geLname()«p->get_age()«p->getjob()«p->geLdept()«endl;

out.close();

)

intManagerChart::findnumber()〃查看人数

(

intn=0;

Manager*p=Head->Next;

while(p!=NULL)

{n++;

p=p->Next;

}

cout«"Managernumber:"«n-1«endl;

returnn-1;

)

classSalesManagerChart

(

public:

SalesManagerChartf);

-SalesManagerChart(;;

voidfind();

voidsave();

voidmodifyltem();

voidremoveltem();

intfindnumber();

voiddisplayf)

(

SalesManager*p=Head->Next;

for(;p!=End;p=p->NAxt)

p->show_salesmanager();

)

voidaddltem()

{

End->set_salesmanager();

End->Next=newSalesManager;

End=End->Next;

save();

)

private:

SalesManager*Head*End;

ifstreamin;

ofstreamout;

SalesManager*findltem(char*num)

(

for(SalesManager*p=Head;p->Next!=End;p=p->Next)

if(!strcmp(p->Next->get_num(),num))

returnp;

returnNULL;

)

);

SalesManagerChart::SalesManagerChart()

(

Head=newSalesManager;

Head->Next=newSalesManager;

End=Head->Next;

in.openCSalesManagerChart.txt");

while(!in.eof())

(

End->lnputFromFile(in);

if(End->get_num()[0]=='\0')

break;

End->Next=newSalesManager;

End=End->Next:

)

in.close();

}

SalesManagerChart:^SalesManagerChart()

(

for(SalesManager*temp;Head->Next!=End;)

(

tftmp=HAad->NRxt;

Head->Next=Head->Next->Next;

deletetemp;

)

deleteHead,End;

)

voidSalesManagerChart::find()

charnum[10],

SalesManager*p=NULL;

cout«"PleaseinputthssearchsalesmanagerID:H;cin»num;

if(p=findltem(num))

p->Next->show_salesmanager();

else

cout«"Notfound!r'«endl«endl;

)

voidSalesManagerChart::modityltem()

(

charnum[10];

SalesManager*p=NULL;

cout«"PleaseinputtomodifythenumberofSalesManager:n;cin»num;

if(p=findltem(num))

(

p->Next->show_salesmanager();

cout«"Pleaseinputthenewcontent:"«endl;

p->Next->set_salesmanager();

)

else

cout«"Notfound!!"«endl«endl;

save();

)

voidSalesManagerChart::removeltem()

(

charnum[10];

SalesManager*p=NULL,*temp=NULL;

cout«"PleasedeletesalesmanagerID:";cin»num;

if(p=findltem(num))

(

temp=p->Next;

p->Next=p->Next->Next;

deletetemp;

cout«"Deletedsuccessfully!!"«endl«endl;

}

else

cout«MNotfound!!"«endl«endl;

save();

)

voidSalesManagerChart::save()

out.open("SalesManagerChart.txt,');

for(SalesManager*p=Head->Next;p!=End;p=p->Next)

out«p->get_num()«o->get_name()«p->get_age()«p->get_sales()«p->getjob()«p->g

et_dept()«endl;

out.close();

)

intSalesManagerChart:^indnumber()

(

intn=O;

SalesManager*p=Head->Next;

while(p!=NULL)

{n++;

p=p->Next;

)

cout«0SalesManagerforthenumber:"«n-1«endl;

returnn-1;

)

intmain()

(

intx,y,z;

StaffChartStaff_Char1;

SalesmanChartSalesmanChart;

ManagerChartManager_Chart;

SalesManagerChartSalesManager_Chart;

boolquit=false;

while(iquit)

(

cout«"Selectfunction:\n1.theincreaseofdata\t2.updatedata\t3.querydata\t4.delete

data\t5.forspecificcategoriesofpersonnel\t6.showthenumberofemployees\t7.exit"«endl;

cin»x;

switch(x)

(

easel:

cout^'Selectionforincreasedtypes:\n1.employee\t2.Sales\t3.Manager

\t4.SalesManager"«endl;

cin»y;

switch(y)

(

case1:Staff_Chart.addltem();break;

case2:Salesman_Chart.addltem();break;

case3:Mancger_Chart.addltem();break;

case4:SalesManager_Chart.addltem();break;

default:cout«"lnputerror,programtermination!!"«endl;exit(-1);

}

break;

case2:

cout«"SelectUpdatetype:\n1.employee\t2.Sales\t3.Manager\t4.Sales

Manager"«endl;

cin»y;

switch(y)

(

case1:Staff_Chart.modifyltem();break;

case2:Salesman_Chart.modifyltem();break;

case3:Manager_Chart.modifyltem();break;

case4:SalesManager_Chart.mcxiifyltem();break;

default:cout«"lnputerror,programtermination!!"«endl;exit(-1);

}

break;

case3:

cout«"Chooseaquerytype:\n1.employee\t2.Sales\t3.Manager\t4.Sales

Manager"«endl;

cin»y;

switch(y)

(

case1:Staff_Chart.find();break;

case2:Salesman_Chart.find();break;

case3:Manager_Chart.find();break;

case4:SalesManager_Chart.find();break;

default:cout«"lnputerror,programtermination!!"«endl;exit(-1);;

)

break;

case4:

cout«"SelectDeletetype:\n1.employee\t2.Sales\t3.Manager\t4.Sales

Manager"«endl;

cin»y;

switch(y)

(

case1:Staff_Chart.removeltem();break;

case2:Salesman_Chart.removeltem();break;

case3:Manager_Chart.removeltem();break;

case4:SalesManager_Chart.removeltem();break;

default:cout«"lnputerror,programtermination!!"«endl;exit(-1);

}

break;

case5:

cout«"Listofpersonnelselectiontype:\n1.employee\t2.Sales\t3.Manager

\t4.SalesManager"«endl;

cin»y;

switch(y)

(

case1:Staff_Chart.display();break;

case2:Salesman_Chart.display();break;

case3:Manager_Chart.display();break;

case4:SalesManager_Chart.display();break;

default:cout«"lnputerror,programtermination!!"«endl;exit(-1);

}

break;

case6:

cout«"Selectviewthenumberoftypesofstaff:\n1.employee\t2.Sales

\t3.Manager\t4.SalesManager\t5.AIIpersonnelofthetotalnumberof'vvendl;

cin»y;

switch(y)

(

case1:Staff_Chart.findnumber();break;

case2:SalesmanChart.findnumber();break;

case3:Manager_Chart.findnumber();break;

case4:SalesManager_Chart.findnumber();break;

case

5:z=Staff_Chart.findnumber()+Salesman_Chart.findnumber[)+Manager_Chart.findnumber()+Sale

sManager_Chart.findnumber();

cout«"AIIpersonnelatotal:"«z«endl;

break;

default:cout«"lnputerror,programtermination!!"«endl;exit(-1);

)

break;

case7:

quit=true;break;

default:

cout«"lnputerror,programtermination!!”«endl;exit(-1);

}

)

return0;

)

四.运行结果:(由于四个类的实现过程基本相同,所以在此只用Salesman做演示)

1.程序运行在工作空间中生成4个txt文件:

ManagcrChortbd2013/1/717Q51KB

SalesManagerCharttxt2013/1/717Q51KB

SalesmanCharttxt2013/1/717X)41KB

StaffChart.txt2013/1/717:04文本文档1KB

2.添力口两个manager:

3.修改其中一个manager

■'C:\UsersVzx\Desldop\未命名l.exe

Pleaseinputposition:彳里

PleaseentertheDepartnenttJ肖售部

KeLeetFunction,

.theincreaseofdata2.updatedata3.querydata4.dele

pecifxccatec^aeiesoFpersonne16.showthenunbei*of

7.exit

SelectUpdatetype:

1.employee2.Sales3.Manager4.SalesHanage

Pleaseinputthet*euislonraanagerID;1

nureber;1

eg—

position:^x,

departnent:自售部

Pleaseinputthenewcontent:

Plecseenteranumber:1

Pleaseinputthename:a

Pleaseinputtheage:51

Pleaseinputposition:经理2

PleaseentertheDepartnent:千自售部

SeLcctfunction:

1.theincreaseofdata2.updatedata3.querydata

pecificcategoriesofpersonnel6.showthenunberof

7.exit

4.查找一个manager:

■1C:\UsersVzx\Deslrtop\耒命名l.exe

nosition:官理

nep^rtnent:销售部

Pleaseinputthenewcontent:

Pleaseenteranumbefs1

Pleaseinputthename:a

PleaseinputtheagesSI

Pleaseinputpositions经理2

PleaseentertheDepartment:箱管郃

Selectfunction-

3

1..theIncreaseoFdata2-updatedata6■querydata4.de1

pec£f1ccategoriesofpersonne1•showthenunberof

7.exit

Chooseaquerytype:

1.enplo^ce2.Sales3.Manager4.SalesMinage

3

PleaseinputthesearchnanagerI

温馨提示

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

评论

0/150

提交评论