销售公司人员管理.doc

上传人:b****2 文档编号:1562071 上传时间:2022-10-23 格式: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

《销售公司人员管理.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!

!

"<

}

}

voidS

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

当前位置:首页 > 职业教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1