




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、 C+大作業(yè)報告 班級:031013 學號:姓名:銷售公司員工管理一題目:設計一個虛基類Staff(員工),包含編號、姓名和年齡保護數(shù)據(jù)成員以及相關的成員函數(shù);由Staff派生出銷售員類Salesman,包含銷售額保護數(shù)據(jù)成員以及相關的成員函數(shù);再由Staff派生出經(jīng)理類Manager;然后由Salesman和Manager類派生出銷售經(jīng)理類SalesManager。設計一個利用文件處理方式實現(xiàn)對公司人員(包括銷售員、經(jīng)理和銷售經(jīng)理)進行管理,具有增加數(shù)據(jù)、更新數(shù)據(jù)、查詢數(shù)據(jù)、刪除數(shù)據(jù)以及重組文件的功能。(刪除數(shù)據(jù)在記錄中做刪除標志,重組文件指在物理上刪除有刪除標志的記錄。)另外要求分別統(tǒng)計這
2、三類員工的人數(shù)以及所有員工的總數(shù)。二 分析,流程及編程思想:首先定義一個虛基類Staff類,然后通過虛擬繼承生成Salesman類和Manager類,最后由Salesman和Manager派生出銷售經(jīng)理類SalesManager。這四個類中定義InputFromFile(istream &in)這一輸入函數(shù),另外每個類還定義輸入信息和輸出信息的成員函數(shù),之后定義StaffChart、SalesmanChart、ManagerChart和SalesManagerChart四個類來,為實現(xiàn)增加、更新、查詢、刪除以及特定類別人員顯示,特定類別人員數(shù)目顯示的功能定義addItem、modify
3、Item、find、removeItem以及display、findnumber函數(shù)。最后在主函數(shù)定義Staff_Chart、Salesman_Chart、Manager_Chart和SalesManager_Chart四個對象,通過循環(huán)執(zhí)行并用switch函數(shù)選擇功能,然后調(diào)用相關的函數(shù)來實現(xiàn)各種功能。三 實驗代碼:#include"iostream"#include"fstream"using namespace std;class Staff protected:char num10;char name10;int age;public:Staff
4、 * 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<&l
5、t;"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 Staffprotected:int sales;public:Salesman
6、* 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
7、&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 g
8、et_sales()return sales;class Manager:virtual public Staffprotected:char job10;char dept10;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:"ci
9、n>>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&l
10、t;<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 SalesM
11、anager:public Salesman,public Managerpublic: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
12、 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&
13、lt;<"number:"<<num<<endl;cout<<"name:"<<name<<endl;cout<<"age:"<<age<<endl;cout<<"sales:"<<sales<<endl;cout<<"position:"<<job<<endl;cout<<"department:&q
14、uot;<<dept<<endl;class StaffChartpublic: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->Nex
15、t=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-
16、>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
17、 temp;delete Head,End;void StaffChart:find() char num10;Staff * p=NULL;cout<<"Please input the search for employee number:"cin>>num;if(p=findItem(num)p->Next->show();elsecout<<"Not found!"<<endl<<endl;void StaffChart:modifyItem() char num10;Sta
18、ff * 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();elsecout<<"Not found!"<<endl<<endl;save();voi
19、d StaffChart:removeItem() char num10;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;elsecout<<"
20、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
21、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 SalesmanChartpublic:SalesmanChart();SalesmanChart();void find(); void save(); void modifyItem(); void removeItem(); int findnum
22、ber(); 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->Ne
23、xt!=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-
24、>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 num10;Salesman * p=NULL;cout<<"Please input the search
25、 sales numbers:"cin>>num;if(p=findItem(num)p->Next->show_salesman();elsecout<<"Not found!"<<endl<<endl;void SalesmanChart:modifyItem() char num10;Salesman * p=NULL;cout<<"Please input to modify the sales numbers:"cin>>num;if(p=findIt
26、em(num)p->Next->show_salesman();cout<<"Please input the new content:"<<endl;p->Next->set_salesman();elsecout<<"Not found!"<<endl<<endl;save();void SalesmanChart:removeItem() char num10;Salesman *p=NULL,*temp=NULL;cout<<"Please
27、delete sales numbers:"cin>>num;if(p=findItem(num)temp=p->Next;p->Next=p->Next->Next;delete temp;cout<<"Deleted successfully!"<<endl<<endl;elsecout<<"Not found!"<<endl<<endl;save();void SalesmanChart:save() out.open("
28、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; c
29、out<<"Sales numbers:"<<n-1<<endl; return n-1; class ManagerChartpublic: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();vo
30、id 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:Manag
31、erChart() 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->N
32、ext!=End;)temp=Head->Next;Head->Next=Head->Next->Next;delete temp;delete Head,End;void ManagerChart:find() char num10;Manager * p=NULL;cout<<"Please input the search manager ID:"cin>>num;if(p=findItem(num)p->Next->show_manager();elsecout<<"Not found
33、!"<<endl<<endl;void ManagerChart:modifyItem() char num10;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_
34、manager();elsecout<<"Not found!"<<endl<<endl;save();void ManagerChart:removeItem() /刪除條目char num10;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;delet
35、e temp;cout<<"Deleted successfully!"<<endl<<endl;elsecout<<"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-
36、>get_name()<<p->get_age()<<p->get_job()<<p->get_dept()<<endl;out.close();int ManagerChart:findnumber() /查看人數(shù) int n=0; Manager *p=Head->Next; while(p!=NULL) n+; p=p->Next; cout<<"Manager number:"<<n-1<<endl; return n-1; class Sales
37、ManagerChartpublic: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 Sale
38、sManager;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 SalesMa
39、nager;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;H
40、ead->Next!=End;)temp=Head->Next;Head->Next=Head->Next->Next;delete temp;delete Head,End;void SalesManagerChart:find() char num10;SalesManager * p=NULL;cout<<"Please input the search sales manager ID:"cin>>num;if(p=findItem(num)p->Next->show_salesmanager();e
41、lsecout<<"Not found!"<<endl<<endl;void SalesManagerChart:modifyItem() char num10;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 i
42、nput the new content:"<<endl;p->Next->set_salesmanager();elsecout<<"Not found!"<<endl<<endl;save();void SalesManagerChart:removeItem() char num10;SalesManager *p=NULL,*temp=NULL;cout<<"Please delete sales manager ID:"cin>>num;if(p=fi
43、ndItem(num)temp=p->Next;p->Next=p->Next->Next;delete temp;cout<<"Deleted successfully!"<<endl<<endl;elsecout<<"Not found!"<<endl<<endl;save();void SalesManagerChart:save() out.open("SalesManagerChart.txt");for(SalesManager
44、 * 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
45、+; 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 func
46、tion : n1.the increase of data t2. update data t3.query datat4.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 Man
47、ager"<<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 :cout<<"Input error, program termination!"<<endl;exit(-1);break;case 2:co
48、ut<<"Select Update type: n1. employee t2. Sales t3.Manager t4.Sales Manager"<<endl;cin>>y;switch(y)case 1:Staff_Chart.modifyItem();break;case 2:Salesman_Chart.modifyItem();break;case 3:Manager_Chart.modifyItem();break;case 4:SalesManager_Chart.modifyItem();break;default :
49、cout<<"Input error, program termination!"<<endl;exit(-1);break;case 3:cout<<"Choose a query type: n1. employee t2. Sales t3.Manager t4.Sales Manager"<<endl;cin>>y;switch(y)case 1:Staff_Chart.find();break;case 2:Salesman_Chart.find();break;case 3:Mana
50、ger_Chart.find();break;case 4:SalesManager_Chart.find();break;default :cout<<"Input error, program termination!"<<endl;exit(-1);break;case 4:cout<<"Select Delete type:n1. employee t2. Sales t3.Manager t4.Sales Manager"<<endl;cin>>y;switch(y)case 1:Staff_Chart.removeItem();break;case 2:Salesman_Chart.removeItem();break;case 3:Manager_Chart.removeItem();break;case 4:SalesManager_Chart.removeItem();break;de
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 孤獨癥兒童教育康復中的協(xié)同創(chuàng)新與實踐
- 醫(yī)學專業(yè)臨床醫(yī)學技能測試卷
- 農(nóng)村綜合治理服務保障協(xié)議
- 關于環(huán)保的演講演講稿作文(4篇)
- 物理基礎知識檢測題
- 酒店賬單支付協(xié)議
- 全球科研發(fā)展現(xiàn)狀及趨勢分析
- 高校聲樂課堂教學創(chuàng)新發(fā)展的策略及實施路徑
- 2025年心理咨詢師資格考試試題及答案
- 2025年文化理論與批評能力測評考試試卷及答案
- GB/T 24328.4-2009衛(wèi)生紙及其制品第4部分:濕抗張強度的測定
- GB/T 10816-1989紫砂陶器
- 主動脈夾層版本課件
- 房地產(chǎn)估價報告:商業(yè)房地產(chǎn)租賃價格估價
- 牡丹的藥用價值課件
- kW殼管式干式蒸發(fā)器設計
- 最新藥店員工手冊
- 系列螺桿冷水機組操作培訓
- 催化劑對異氰酸酯反應活性的影響
- 國家開放大學《C語言程序設計》綜合測試題參考答案
- 老年人生活自理能力評估表
評論
0/150
提交評論