


下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C+大作業(yè)報(bào)告班級(jí): 031013學(xué)號(hào):姓名:銷售公司員工管理一題目:設(shè)計(jì)一個(gè)虛基類 Staff (員工),包含編號(hào)、姓名和年齡保護(hù)數(shù)據(jù)成員以及相關(guān)的成員函 數(shù);由Staff派生出銷售員類 Salesman,包含銷售額保護(hù)數(shù)據(jù)成員以及相關(guān)的成員函數(shù);再 由Staff派生出經(jīng)理類Manager;然后由 Salesman和 Manager類派生出銷售經(jīng)理類SalesManager。設(shè)計(jì)一個(gè)利用文件處理方式實(shí)現(xiàn)對(duì)公司人員 (包括銷售員、 經(jīng)理和銷售經(jīng)理) 進(jìn)行管理, 具有增加數(shù)據(jù)、更新數(shù)據(jù)、查詢數(shù)據(jù)、刪除數(shù)據(jù)以及重組文件的功能。(刪除數(shù)據(jù)在記錄中做刪除標(biāo)志,重組文件指在物理上刪除有刪除標(biāo)志的記錄。
2、)另外要求分別統(tǒng)計(jì)這三類員工 的人數(shù)以及所有員工的總數(shù)。二 分析,流程及編程思想:首先定義一個(gè)虛基類 Staff類,然后通過(guò)虛擬繼承生成Salesman類和Manager類,最后由Salesman和Manager派生出銷售經(jīng)理類 SalesManager。這四個(gè)類中定義 InputFrom &n) 這一輸入函數(shù),另外每個(gè)類還定義輸入信息和輸出信息的成員函數(shù),之后定義 StaffChart、SalesmanChart、 ManagerChart 和 SalesManagerChart 四個(gè)類來(lái),為實(shí)現(xiàn)增加、更新、查詢、 刪除以及特定類別人員顯示, 特定類別人員數(shù)目顯示的功能定義addItem、
3、modifyItem 、 find 、removeItem 以及 display、 findnumber 函數(shù)。 最后在主函數(shù)定義 Staff_Chart、 Salesman_Chart、 Manager_Chart 和 SalesManager_Chart 四個(gè)對(duì)象,通過(guò)循環(huán)執(zhí)行并用 switch 函數(shù)選擇功能, 然后調(diào)用相關(guān)的函數(shù)來(lái)實(shí)現(xiàn)各種功能。三 實(shí)驗(yàn)代碼:#includeiostream #includefstream using namespace std;class Staffprotected:char num10;char name10;int age;public:Staff
4、 * Next;void set_staff()coutnum;coutname; coutage;void InputFrom &in)innumnameage;void show()coutnumber:numendl; coutname:nameendl; coutage : ageendl;char *get_num()return num;char *get_name()return name;int get_age()return age;class Salesman:virtual public Staffprotected:int sales;public:Salesman *
5、 Next;void set_salesman()coutnum; coutname; coutage; coutsales;void InputFrom &in)innumnameagesales;void show_salesman()coutnumber : numendl; coutname : nameendl; coutage : ageendl; coutsales: salesendl;int get_sales()return sales;class Manager:virtual public Staffprotected:char job10;char dept10;pu
6、blic:Manager * Next;void set_manager()coutnum; coutname; coutage; coutjob; coutdept;void InputFrom &in) innumnameagejobdept;void show_manager()coutnumber : numendl; coutname : nameendl; coutage : ageendl; coutposition : jobendl; coutdepartment : deptendl;char *get_job()return job;char *get_dept()ret
7、urn dept;class SalesManager:public Salesman,public Managerpublic:SalesManager * Next;void set_salesmanager()coutnum; coutname; coutage; coutsales; coutjob; coutdept;void InputFrom &in) innumnameagesalesjobdept;void show_salesmanager()coutnumber : numendl; coutname : nameendl; coutage : ageendl; cout
8、sales: salesendl; coutposition : jobendl; coutdepartment : deptNext; for(p;p!=End;p=p-Next) p-show(); coutset_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-Nex
9、t-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-InputFrom); if(End-get_num()0=0) break;End-Next=new Staff; End=End-Next; in.close();StaffChart:StaffChart() for(Staff * temp;Head-Next!=End;
10、) temp=Head-Next; Head-Next=Head-Next-Next;delete temp;delete Head,End;void StaffChart:find()char num10;Staff * p=NULL;cinnum;cinnum;coutNext-show();else coutNot found!endlendl;void StaffChart:modifyItem()char num10;Staff * p=NULL;coutNext-show(); coutPlease input the new content : Next-set_staff();
11、else coutNot found!endlendl;save();void StaffChart:removeItem()char num10;Staff *p=NULL,*temp=NULL;coutnum; if(p=findItem(num) temp=p-Next; p-Next=p-Next-Next; delete temp;coutDeleted successfully!endlendl;elsecoutNot found!endlNext;p!=End;p=p-Next)outget_num() get_name() get_age()Next; while(p!=NUL
12、L) n+; p=p-Next;coutNumber of staff:n-1Next;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(!strc
13、mp(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-InputFrom); if(End-get_num()0=0) break;End-Next=new Salesman; End=End-Next; in.close();SalesmanChart:SalesmanChart() fo
14、r(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;coutnum; if(p=findItem(num)p-Next-show_salesman();else coutNot found!endlendl;void SalesmanChart:modifyItem()char num10;Salesman * p=NULL;cou
15、tnum; if(p=findItem(num) p-Next-show_salesman(); coutPlease input the new content : Next-set_salesman();else coutNot found!endlendl;save();void SalesmanChart:removeItem()char num10;Salesman *p=NULL,*temp=NULL;coutnum; if(p=findItem(num) temp=p-Next; p-Next=p-Next-Next; delete temp;coutDeleted succes
16、sfully!endlendl;elsecoutNot found!endlNext;p!=End;p=p-Next) outget_num()get_name()get_age()get_sales()Next;while(p!=NULL) n+;p=p-Next;coutSales numbers:n-1Next; 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,*
17、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-InputFrom);
18、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 num10;Manager * p=NULL;coutnum; if(p=findItem(num)p-Next-show_man
19、ager();else coutNot found!endlendl;void ManagerChart:modifyItem()char num10;Manager * p=NULL;coutnum; if(p=findItem(num) p-Next-show_manager(); coutPlease input the new content : Next-set_manager();else coutNot found!endlendl;save();void ManagerChart:removeItem()/ 刪除條目char num10;Manager *p=NULL,*tem
20、p=NULL;coutnum; if(p=findItem(num) temp=p-Next; p-Next=p-Next-Next; delete temp;coutDeleted successfully!endlendl;else coutNot found!endlNext;p!=End;p=p-Next)outget_num()get_name()get_age()get_job()get_dept()Next;while(p!=NULL) n+;p=p-Next;coutManager number:n-1Next;for(;p!=End;p=p-Next)p-show_sales
21、manager();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;SalesManag
22、erChart:SalesManagerChart()Head=new SalesManager;Head-Next=new SalesManager;End=Head-Next;in.open(SalesManagerChart.txt);while(!in.eof()End-InputFrom);if(End-get_num()0=0)break;End-Next=new SalesManager;End=End-Next;in.close();SalesManagerChart:SalesManagerChart()for(SalesManager * temp;Head-Next!=E
23、nd;)temp=Head-Next;Head-Next=Head-Next-Next;delete temp;delete Head,End;void SalesManagerChart:find()char num10;SalesManager * p=NULL;coutnum; if(p=findItem(num)p-Next-show_salesmanager();else coutNot found!endlendl;void SalesManagerChart:modifyItem()char num10;SalesManager * p=NULL;coutnum; if(p=fi
24、ndItem(num) p-Next-show_salesmanager(); coutPlease input the new content : Next-set_salesmanager();else coutNot found!endlendl;save();void SalesManagerChart:removeItem()char num10;SalesManager *p=NULL,*temp=NULL;coutnum; if(p=findItem(num) temp=p-Next; p-Next=p-Next-Next; delete temp;coutDeleted suc
25、cessfully!endlendl;else coutNot found!endlNext;p!=End;p=p-Next)outget_num()get_name()get_age()get_sales()get_job()g et_dept()Next;while(p!=NULL) n+; p=p-Next;coutSales Manager for the number:n-1endl;return n-1;int main()int x,y,z;StaffChart Staff_Chart;SalesmanChart Salesman_Chart;ManagerChart Manag
26、er_Chart;SalesManagerChart SalesManager_Chart;bool quit=false;while(!quit)coutSelect function : 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. exitx;switch(x)case 1:coutSelection for increased types: n
27、1. employee t2. Sales t3.Managert4.Sales Managery;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 :coutInput error, program termination ! endl;exit(-1); break;case 2:coutSelect Up
28、date type: n1. employee t2. Sales t3.Manager t4.Sales Managery; 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 :coutInput error, program termination ! endl;exit(-1);
29、 break;case 3:coutChoose a query type: n1. employee t2. Sales t3.Manager t4.Sales Managery;switch(y)case 1:Staff_Chart.find();break;case 2:Salesman_Chart.find();break;case 3:Manager_Chart.find();break;case 4:SalesManager_Chart.find();break;default :coutInput error, program termination ! endl;exit(-1
30、); break;case 4:coutSelect Delete type : n1. employee t2. Sales t3.Manager t4.Sales Managery; 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;default :coutInput error, progra
31、m termination ! endl;exit(-1); break;case 5:coutList of personnel selection type: n1. employee t2. Sales t3.Manager t4.Sales Managery;switch(y)case 1:Staff_Chart.display();break;case 2:Salesman_Chart.display();break;case 3:Manager_Chart.display();break;case 4:SalesManager_Chart.display();break;defau
32、lt :coutInput error, program termination ! endl;exit(-1); break;case 6:coutSelect view the number of types of staff : n1. employee t2. Sales t3.Manager t4.Sales Managert5.All personnel of the total number ofy; switch(y) case 1:Staff_Chart.findnumber();break;case 2:Salesman_Chart.findnumber();break;c
33、ase 3:Manager_Chart.findnumber();break; case 4:SalesManager_Chart.findnumber();break;case 5:z=Staff_Chart.findnumber()+Salesman_Chart.findnumber()+Manager_Chart.findnumber()+Sale sManager_Chart.findnumber();coutAll personnel a total : zendl; break;default :coutInput error, program termination ! endl
34、;exit(-1); break;case 7: quit=true;break; default : coutInput error, program termination ! c par I inic n t售 卻a nunber ; 2 the name: h the Ag*e a: 42 posit Ion: 經(jīng)理 the Departmen:卡肖售2fdata4. dele te data 5 . f ot*the hlimber of3friers;& input positiontPl&a&e enter the Depai*tncnt 銷售部 Function :dat a4
35、.de lathe nunbe r- o F11, the inci?easer ot d占七占 2 - uf)dat:e data 3 .query pec iFic cAtearies of personnel6 sliow7* axLt3-Manager4 - Sal&s HanagfdPleasePic a. eF LetiL-eH I卩Ez S 1 lr U- L-3 .quei*y data 4. de le6 . liou t he number aF1 Please inpuit the i*euis ion maneF ID: 1 nuinbei; 1haine: alaje
36、: 5iBposlcion;經(jīng)理Id&partciient ;十肖崔三pinput vh new content;nt&r ft numberi 1input the name: a input the age: Siinput position: 召王里2enter the Departnent:銷售邯 function ;11.the increase of data 2_ update data pec if Ijc categories of personnel 卩.exitXL? a pg it ion:經(jīng)理department - 銷售部Plfeasft inpud: the ne
37、w contentPlease enter 住 numbes?: 1.Pleas:& Please PleastPlease Select梢售部input the name: a input the age t 51 input positinn: enter the Department: Funct 3.on :3-query data 4 - dele 需- sliou t he ri u.nhe v- o f4 .Sales Heui也g詢:L the increase oF data 2- update data p*c if Lc catererof personnel7. exa
38、_tChoos:& a qwery type =:L tntplQee 2 Sales33Please input theRanker ID; 1nunher1: 1 nan&: aage: 51posit Urn:經(jīng)王學(xué)depart merit :銷售部Select function si . the inciease of data 2- Uficlate data 3 .quei*y data 4. dele pec if ic catEgorles of personnel6 - sliou the n umber- a F?, exit4-=C:UsersI zx Dm Ho pl
39、未恭名 1, exedata 4de 1 the nunbep of4.ales rtanayedata 4. de 1 t he numbe r o fList oF peirsonnel se lection type ;1 * enploee3 - Sales3 Manaei*nunbei-: 3s25 理銷皆部ne;售部ajje: 9position; ISdepaitmen t -numhei*- 1nane ; az; Siposit Lon:盤士里2ideprtnent:銷售部nunher ; 2netne : hajje: 42position: 經(jīng)理 亠department:于住悝部Select Function :1. the increase oF data 2- Ujpdate data 3 .query pec if IjC cate9oi?ies of personnel6 . sliou7 exitPl&a&e input the deletion nanager ID: 1 DL&td aueeessfully*Select Function1 * the increase oF data 2 - ujpdate dat
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 政府購(gòu)買外包協(xié)議書
- 露營(yíng)酒館轉(zhuǎn)讓協(xié)議書
- 員工受傷公司協(xié)議書
- 裝修公司傭金協(xié)議書
- 退休員工續(xù)約協(xié)議書
- 準(zhǔn)時(shí)接送放學(xué)協(xié)議書
- 藝人捐贈(zèng)器官協(xié)議書
- 破產(chǎn)債權(quán)抵償協(xié)議書
- 建筑鋼板租借協(xié)議書
- 買房補(bǔ)貼協(xié)議書模板
- 2025陜西核工業(yè)工程勘察院有限公司招聘(21人)筆試參考題庫(kù)附帶答案詳解
- 2025年山東、湖北部分重點(diǎn)中學(xué)高中畢業(yè)班第二次模擬考試數(shù)學(xué)試題含解析
- 2025年超高功率大噸位電弧爐項(xiàng)目發(fā)展計(jì)劃
- DB32T 5076-2025 奶牛規(guī)?;B(yǎng)殖設(shè)施設(shè)備配置技術(shù)規(guī)范
- 2024年四川省高等職業(yè)教育單獨(dú)考試招生文化素質(zhì)考試中職英語(yǔ)試卷
- 人教A版必修第二冊(cè)高一(下)數(shù)學(xué)6.3.2-6.3.3平面向量正交分解及坐標(biāo)表示【課件】
- 高速公路修補(bǔ)合同協(xié)議
- 航空業(yè)勞動(dòng)力安全保障措施
- 2025年內(nèi)科主治醫(yī)師考試消化內(nèi)科
- GB/T 18912-2024光伏組件鹽霧腐蝕試驗(yàn)
- 對(duì)外投資合作國(guó)別(地區(qū))指南 -墨西哥-20250102-00593
評(píng)論
0/150
提交評(píng)論