收藏 分销(赏)

销售公司人员管理.doc

上传人:w****g 文档编号:3770945 上传时间:2024-07-17 格式:DOC 页数:25 大小:458.04KB 下载积分:10 金币
下载 相关 举报
销售公司人员管理.doc_第1页
第1页 / 共25页
销售公司人员管理.doc_第2页
第2页 / 共25页


点击查看更多>>
资源描述
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" using namespace std; class Staff { protected: char num[10]; char name[10]; int age; public: Staff * Next; void set_staff() { cout<<"Please enter a number:";cin>>num; cout<<"Please input the name:";cin>>name; cout<<"Please input the age:";cin>>age; } void InputFromFile(istream &in) { in>>num>>name>>age; } void show() { cout<<"number:"<<num<<endl; cout<<"name:"<<name<<endl; cout<<"age:"<<age<<endl; } char *get_num() { return num; } char *get_name() { return name; } int get_age() { return age; } }; class Salesman:virtual public Staff { protected: int sales; public: Salesman * Next; void set_salesman() { cout<<"Please enter a number:";cin>>num; cout<<"Please input the name:";cin>>name; cout<<"Please input the age:";cin>>age; cout<<"Please enter the sales:";cin>>sales; } void InputFromFile(istream &in) { in>>num>>name>>age>>sales; } void show_salesman() { cout<<"number:"<<num<<endl; cout<<"name:"<<name<<endl; cout<<"age:"<<age<<endl; cout<<"sales:"<<sales<<endl; } int get_sales() { return sales; } }; class Manager:virtual public Staff { protected: char job[10]; char dept[10]; public: Manager * Next; void set_manager() { cout<<"Please enter a number:";cin>>num; cout<<"Please input the name:";cin>>name; cout<<"Please input the age:";cin>>age; cout<<"Please input position:";cin>>job; cout<<"Please enter the Department:";cin>>dept; } void InputFromFile(istream &in) { in>>num>>name>>age>>job>>dept; } void show_manager() { cout<<"number:"<<num<<endl; cout<<"name:"<<name<<endl; cout<<"age:"<<age<<endl; cout<<"position:"<<job<<endl; cout<<"department:"<<dept<<endl; } char *get_job() { return job; } char *get_dept() { return dept; } }; class SalesManager:public Salesman,public Manager { public: SalesManager * Next; void set_salesmanager() { cout<<"Please enter a number:";cin>>num; cout<<"Please input the name:";cin>>name; cout<<"Please input the age:";cin>>age; cout<<"Please enter the sales:";cin>>sales; cout<<"Please input position:";cin>>job; cout<<"Please enter the Department:";cin>>dept; } void InputFromFile(istream &in) { in>>num>>name>>age>>sales>>job>>dept; } void show_salesmanager() { cout<<"number:"<<num<<endl; cout<<"name:"<<name<<endl; cout<<"age:"<<age<<endl; cout<<"sales:"<<sales<<endl; cout<<"position:"<<job<<endl; cout<<"department:"<<dept<<endl; } }; class StaffChart { public: StaffChart(); ~StaffChart(); void find(); void save(); void modifyItem(); void removeItem(); int findnumber(); void display() { Staff *p=Head->Next; for(p;p!=End;p=p->Next) { p->show(); cout<<endl; } } void addItem() { End->set_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->Next->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->InputFromFile(in); if(End->get_num()[0]=='\0') break; End->Next=new Staff; End=End->Next; } in.close(); } StaffChart::~StaffChart() { for(Staff * temp;Head->Next!=End;) { temp=Head->Next; Head->Next=Head->Next->Next; delete temp; } delete Head,End; } void StaffChart::find() { char num[10]; Staff * p=NULL; cout<<"Please input the search for employee number:";cin>>num; if(p=findItem(num)) p->Next->show(); else { cout<<"Not found!!"<<endl<<endl; } } void StaffChart::modifyItem() { char num[10]; Staff * p=NULL; cout<<"Please input to modify the employee number:";cin>>num; if(p=findItem(num)) { p->Next->show(); cout<<"Please input the new content:"<<endl; p->Next->set_staff(); } else cout<<"Not found!!"<<endl<<endl; save(); } void StaffChart::removeItem() { char num[10]; Staff *p=NULL,*temp=NULL; cout<<"Please delete employee number:";cin>>num; if(p=findItem(num)) { temp=p->Next; p->Next=p->Next->Next; delete temp; cout<<"Deleted successfully!!"<<endl<<endl; } else cout<<"Not found!!"<<endl<<endl; save(); } void StaffChart::save() { out.open("StaffChart.txt"); for(Staff * p=Head->Next;p!=End;p=p->Next) out<<p->get_num()<<" "<<p->get_name()<<" "<<p->get_age()<<endl; out.close(); } int StaffChart::findnumber() { int n=0; Staff *p=Head->Next; while(p!=NULL) { n++; p=p->Next; } cout<<"Number of staff:"<<n-1<<endl; return n-1; } class SalesmanChart { public: SalesmanChart(); ~SalesmanChart(); void find(); void save(); void modifyItem(); void removeItem(); int findnumber(); void display() { for(Salesman *p=Head->Next;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(!strcmp(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->InputFromFile(in); if(End->get_num()[0]=='\0') break; End->Next=new Salesman; End=End->Next; } in.close(); } SalesmanChart::~SalesmanChart() { for(Salesman * temp;Head->Next!=End;) { temp=Head->Next; Head->Next=Head->Next->Next; delete temp; } delete Head,End; } void SalesmanChart::find() { char num[10]; Salesman * p=NULL; cout<<"Please input the search sales numbers:";cin>>num; if(p=findItem(num)) p->Next->show_salesman(); else cout<<"Not found!!"<<endl<<endl; } void SalesmanChart::modifyItem() { char num[10]; Salesman * p=NULL; cout<<"Please input to modify the sales numbers:";cin>>num; if(p=findItem(num)) { p->Next->show_salesman(); cout<<"Please input the new content:"<<endl; p->Next->set_salesman(); } else cout<<"Not found!!"<<endl<<endl; save(); } void SalesmanChart::removeItem() { char num[10]; Salesman *p=NULL,*temp=NULL; cout<<"Please delete sales numbers:";cin>>num; if(p=findItem(num)) { temp=p->Next; p->Next=p->Next->Next; delete temp; cout<<"Deleted successfully!!"<<endl<<endl; } else cout<<"Not found!!"<<endl<<endl; save(); } void SalesmanChart::save() { out.open("SalesmanChart.txt"); for(Salesman * p=Head->Next;p!=End;p=p->Next) out<<p->get_num()<<p->get_name()<<p->get_age()<<p->get_sales()<<endl; out.close(); } int SalesmanChart::findnumber() { int n=0; Salesman *p=Head->Next; while(p!=NULL) { n++; p=p->Next; } cout<<"Sales numbers:"<<n-1<<endl; return n-1; } class ManagerChart { public: ManagerChart(); ~ManagerChart(); void find(); void save(); void modifyItem(); void removeItem(); int findnumber(); void display() { Manager *p=Head->Next; 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,* 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->InputFromFile(in); 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 num[10]; Manager * p=NULL; cout<<"Please input the search manager ID:";cin>>num; if(p=findItem(num)) p->Next->show_manager(); else cout<<"Not found!!"<<endl<<endl; } void ManagerChart::modifyItem() { char num[10]; Manager * p=NULL; cout<<"Please input the revision manager ID:";cin>>num; if(p=findItem(num)) { p->Next->show_manager(); cout<<"Please input the new content:"<<endl; p->Next->set_manager(); } else cout<<"Not found!!"<<endl<<endl; save(); } void ManagerChart::removeItem() //删除条目 { char num[10]; Manager *p=NULL,*temp=NULL; cout<<"Please input the deletion manager ID:";cin>>num; if(p=findItem(num)) { temp=p->Next; p->Next=p->Next->Next; delete temp; cout<<"Deleted successfully!!"<<endl<<endl; } else cout<<"Not found!!"<<endl<<endl; save(); } void ManagerChart::save() //保存 { out.open("ManagerChart.txt"); for(Manager * p=Head->Next;p!=End;p=p->Next) out<<p->get_num()<<p->get_name()<<p->get_age()<<p->get_job()<<p->get_dept()<<endl; out.close(); } int ManagerChart::findnumber() //查看人数 { int n=0; Manager *p=Head->Next; while(p!=NULL) { n++; p=p->Next; } cout<<"Manager number:"<<n-1<<endl; return n-1; } class SalesManagerChart { public: SalesManagerChart(); ~SalesManagerChart(); void find(); void save(); void modifyItem(); void removeItem(); int findnumber(); void display() { SalesManager *p=Head->Next; for(;p!=End;p=p->Next) p->show_salesmanager(); } 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; } }; SalesManagerChart::SalesManagerChart() { Head=new SalesManager; Head->Next=new SalesManager; End=Head->Next; in.open("SalesManagerChart.txt"); while(!in.eof()) { End->InputFromFile(in); if(End->get_num()[0]=='\0') break; End->Next=new SalesManager; End=End->Next; } in.close(); } SalesManagerChart::~SalesManagerChart() { for(SalesManager * temp;Head->Next!=End;) { temp=Head->Next; Head->Next=Head->Next->Next; delete temp; } delete Head,End; } void SalesManagerChart::find() { char num[10]; SalesManager * p=NULL; cout<<"Please input the search sales manager ID:";cin>>num; if(p=findItem(num)) p->Next->show_salesmanager(); else cout<<"Not found!!"<<endl<<endl; } void SalesManagerChart::modifyItem() { char num[10]; SalesManager * p=NULL; cout<<"Please input to modify the number of Sales Manager:";cin>>num; if(p=findItem(num)) { p->Next->show_salesmanager(); cout<<"Please input the new content:"<<endl; p->Next->set_salesmanager(); } else cout<<"Not found!!"<<endl<<endl; save(); } void SalesManagerChart::removeItem() { char num[10]; SalesManager *p=NULL,*temp=NULL; cout<<"Please delete sales manager ID:";cin>>num; if(p=findItem(num)) { temp=p->Next; p->Next=p->Next->Next; delete temp; cout<<"Deleted successfully!!"<<endl<<endl; } else cout<<"Not found!!"<<endl<<endl; save(); } void SalesManagerChart::save() { out.open("SalesManagerChart.txt"); for(SalesManager * p=Head->Next;p!=End;p=p->Next) out<<p->get_num()<<p->get_name()<<p->get_age()<<p->get_sales()<<p->get_job()<<p->get_dept()<<endl; out.close(); } int SalesManagerChart::findnumber() { int n=0; SalesManager *p=Head->Next; while(p!=NULL) { n++; p=p->Next; } cout<<"Sales Manager for the number:"<<n-1<<endl; return n-1; } int main() { int x,y,z; StaffChart Staff_Chart; SalesmanChart Salesman_Chart; ManagerChart Manager_Chart; SalesManagerChart SalesManager_Chart; bool quit=false; while(!quit) { cout<<"Select function : \n1.the increase of data \t2. update data \t3.query data\t4.delete data \t5. for specific categories of personnel \t6. show the number of employees \t7. exit"<<endl; cin>>x; switch(x) { case 1: cout<<"Selection for increased types: \n1. employee \t2. Sales \t3.Manager \t4.Sales Manager"<<endl; cin>>y; 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 :cou
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服