销售公司人员管理.doc

上传人:wj 文档编号:2888718 上传时间:2023-05-04 格式:DOC 页数:25 大小:465.50KB
下载 相关 举报
销售公司人员管理.doc_第1页
第1页 / 共25页
销售公司人员管理.doc_第2页
第2页 / 共25页
销售公司人员管理.doc_第3页
第3页 / 共25页
销售公司人员管理.doc_第4页
第4页 / 共25页
销售公司人员管理.doc_第5页
第5页 / 共25页
销售公司人员管理.doc_第6页
第6页 / 共25页
销售公司人员管理.doc_第7页
第7页 / 共25页
销售公司人员管理.doc_第8页
第8页 / 共25页
销售公司人员管理.doc_第9页
第9页 / 共25页
销售公司人员管理.doc_第10页
第10页 / 共25页
销售公司人员管理.doc_第11页
第11页 / 共25页
销售公司人员管理.doc_第12页
第12页 / 共25页
销售公司人员管理.doc_第13页
第13页 / 共25页
销售公司人员管理.doc_第14页
第14页 / 共25页
销售公司人员管理.doc_第15页
第15页 / 共25页
销售公司人员管理.doc_第16页
第16页 / 共25页
销售公司人员管理.doc_第17页
第17页 / 共25页
销售公司人员管理.doc_第18页
第18页 / 共25页
销售公司人员管理.doc_第19页
第19页 / 共25页
销售公司人员管理.doc_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

销售公司人员管理.doc

《销售公司人员管理.doc》由会员分享,可在线阅读,更多相关《销售公司人员管理.doc(25页珍藏版)》请在冰点文库上搜索。

销售公司人员管理.doc

C++大作业报告

班级:

031013

学号:

姓名:

销售公司员工管理

一.题目:

设计一个虚基类Staff(员工),包含编号、姓名和年龄保护数据成员以及相关的成员函数;由Staff派生出销售员类Salesman,包含销售额保护数据成员以及相关的成员函数;再由Staff派生出经理类Manager;然后由Salesman和Manager类派生出销售经理类SalesManager。

设计一个利用文件处理方式实现对公司人员(包括销售员、经理和销售经理)进行管理,具有增加数据、更新数据、查询数据、删除数据以及重组文件的功能。

(删除数据在记录中做删除标志,重组文件指在物理上删除有删除标志的记录。

)另外要求分别统计这三类员工的人数以及所有员工的总数。

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

首先定义一个虚基类Staff类,然后通过虚拟继承生成Salesman类和Manager类,最后由Salesman和Manager派生出销售经理类SalesManager。

这四个类中定义InputFromFile(istream&in)这一输入函数,另外每个类还定义输入信息和输出信息的成员函数,之后定义StaffChart、SalesmanChart、ManagerChart和SalesManagerChart四个类来,为实现增加、更新、查询、删除以及特定类别人员显示,特定类别人员数目显示的功能定义addItem、modifyItem、find、removeItem以及display、findnumber函数。

最后在主函数定义Staff_Chart、Salesman_Chart、Manager_Chart和SalesManager_Chart四个对象,通过循环执行并用switch函数选择功能,然后调用相关的函数来实现各种功能。

三.实验代码:

#include"iostream"

#include"fstream"

usingnamespacestd;

classStaff

{

protected:

charnum[10];

charname[10];

intage;

public:

Staff*Next;

voidset_staff()

{

cout<<"Pleaseenteranumber:

";cin>>num;

cout<<"Pleaseinputthename:

";cin>>name;

cout<<"Pleaseinputtheage:

";cin>>age;

}

voidInputFromFile(istream&in)

{

in>>num>>name>>age;

}

voidshow()

{

cout<<"number:

"<

cout<<"name:

"<

cout<<"age:

"<

}

char*get_num()

{

returnnum;

}

char*get_name()

{

returnname;

}

intget_age()

{

returnage;

}

};

classSalesman:

virtualpublicStaff

{

protected:

intsales;

public:

Salesman*Next;

voidset_salesman()

{

cout<<"Pleaseenteranumber:

";cin>>num;

cout<<"Pleaseinputthename:

";cin>>name;

cout<<"Pleaseinputtheage:

";cin>>age;

cout<<"Pleaseenterthesales:

";cin>>sales;

}

voidInputFromFile(istream&in)

{

in>>num>>name>>age>>sales;

}

voidshow_salesman()

{

cout<<"number:

"<

cout<<"name:

"<

cout<<"age:

"<

cout<<"sales:

"<

}

intget_sales()

{

returnsales;

}

};

classManager:

virtualpublicStaff

{

protected:

charjob[10];

chardept[10];

public:

Manager*Next;

voidset_manager()

{

cout<<"Pleaseenteranumber:

";cin>>num;

cout<<"Pleaseinputthename:

";cin>>name;

cout<<"Pleaseinputtheage:

";cin>>age;

cout<<"Pleaseinputposition:

";cin>>job;

cout<<"PleaseentertheDepartment:

";cin>>dept;

}

voidInputFromFile(istream&in)

{

in>>num>>name>>age>>job>>dept;

}

voidshow_manager()

{

cout<<"number:

"<

cout<<"name:

"<

cout<<"age:

"<

cout<<"position:

"<

cout<<"department:

"<

}

char*get_job()

{

returnjob;

}

char*get_dept()

{

returndept;

}

};

classSalesManager:

publicSalesman,publicManager

{

public:

SalesManager*Next;

voidset_salesmanager()

{

cout<<"Pleaseenteranumber:

";cin>>num;

cout<<"Pleaseinputthename:

";cin>>name;

cout<<"Pleaseinputtheage:

";cin>>age;

cout<<"Pleaseenterthesales:

";cin>>sales;

cout<<"Pleaseinputposition:

";cin>>job;

cout<<"PleaseentertheDepartment:

";cin>>dept;

}

voidInputFromFile(istream&in)

{

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

}

voidshow_salesmanager()

{

cout<<"number:

"<

cout<<"name:

"<

cout<<"age:

"<

cout<<"sales:

"<

cout<<"position:

"<

cout<<"department:

"<

}

};

classStaffChart

{

public:

StaffChart();

~StaffChart();

voidfind();

voidsave();

voidmodifyItem();

voidremoveItem();

intfindnumber();

voiddisplay()

{

Staff*p=Head->Next;

for(p;p!

=End;p=p->Next)

{

p->show();

cout<

}

}

voidaddItem()

{

End->set_staff();

End->Next=newStaff;

End=End->Next;

save();

}

private:

Staff*Head,*End;

ifstreamin;

ofstreamout;

Staff*findItem(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.txt");

while(!

in.eof())

{

End->InputFromFile(in);

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

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<<"Pleaseinputthesearchforemployeenumber:

";cin>>num;

if(p=findItem(num))

p->Next->show();

else

{

cout<<"Notfound!

!

"<

}

}

voidStaffChart:

:

modifyItem()

{

charnum[10];

Staff*p=NULL;

cout<<"Pleaseinputtomodifytheemployeenumber:

";cin>>num;

if(p=findItem(num))

{

p->Next->show();

cout<<"Pleaseinputthenewcontent:

"<

p->Next->set_staff();

}

else

cout<<"Notfound!

!

"<

save();

}

voidStaffChart:

:

removeItem()

{

charnum[10];

Staff*p=NULL,*temp=NULL;

cout<<"Pleasedeleteemployeenumber:

";cin>>num;

if(p=findItem(num))

{

temp=p->Next;

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

deletetemp;

cout<<"Deletedsuccessfully!

!

"<

}

else

cout<<"Notfound!

!

"<

save();

}

voidStaffChart:

:

save()

{

out.open("StaffChart.txt");

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

=End;p=p->Next)

out<get_num()<<""<get_name()<<""<get_age()<

out.close();

}

intStaffChart:

:

findnumber()

{

intn=0;

Staff*p=Head->Next;

while(p!

=NULL)

{n++;

p=p->Next;

}

cout<<"Numberofstaff:

"<

returnn-1;

}

classSalesmanChart

{

public:

SalesmanChart();

~SalesmanChart();

voidfind();

voidsave();

voidmodifyItem();

voidremoveItem();

intfindnumber();

voiddisplay()

{

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

=End;p=p->Next)

p->show_salesman();

}

voidaddItem()

{

End->set_salesman();

End->Next=newSalesman;

End=End->Next;

save();

}

private:

Salesman*Head,*End;

ifstreamin;

ofstreamout;

Salesman*findItem(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.open("SalesmanChart.txt");

while(!

in.eof())

{

End->InputFromFile(in);

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

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<<"Pleaseinputthesearchsalesnumbers:

";cin>>num;

if(p=findItem(num))

p->Next->show_salesman();

else

cout<<"Notfound!

!

"<

}

voidSalesmanChart:

:

modifyItem()

{

charnum[10];

Salesman*p=NULL;

cout<<"Pleaseinputtomodifythesalesnumbers:

";cin>>num;

if(p=findItem(num))

{

p->Next->show_salesman();

cout<<"Pleaseinputthenewcontent:

"<

p->Next->set_salesman();

}

else

cout<<"Notfound!

!

"<

save();

}

voidSalesmanChart:

:

removeItem()

{

charnum[10];

Salesman*p=NULL,*temp=NULL;

cout<<"Pleasedeletesalesnumbers:

";cin>>num;

if(p=findItem(num))

{

temp=p->Next;

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

deletetemp;

cout<<"Deletedsuccessfully!

!

"<

}

else

cout<<"Notfound!

!

"<

save();

}

voidSalesmanChart:

:

save()

{

out.open("SalesmanChart.txt");

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

=End;p=p->Next)

out<get_num()<get_name()<get_age()<get_sales()<

out.close();

}

intSalesmanChart:

:

findnumber()

{

intn=0;

Salesman*p=Head->Next;

while(p!

=NULL)

{n++;

p=p->Next;

}

cout<<"Salesnumbers:

"<

returnn-1;

}

classManagerChart

{

public:

ManagerChart();

~ManagerChart();

voidfind();

voidsave();

voidmodifyItem();

voidremoveItem();

intfindnumber();

voiddisplay()

{

Manager*p=Head->Next;

for(p;p!

=End;p=p->Next)

p->show_manager();

}

voidaddItem()

{

End->set_manager();

End->Next=newManager;

End=End->Next;

save();

}

private:

Manager*Head,*End;

ifstreamin;

ofstreamout;

Manager*findItem(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.open("ManagerChart.txt");

while(!

in.eof())

{

End->InputFromFile(in);

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

break;

End->Next=newManager;

End=End->Next;

}

in.close();

}

ManagerChart:

:

~ManagerChart()

{

for(Manager*temp;Head->Next!

=End;)

{

temp=Head->Next;

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

deletetemp;

}

deleteHead,End;

}

vo

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

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2