銷售公司人員管理_第1頁
銷售公司人員管理_第2頁
銷售公司人員管理_第3頁
免費(fèi)預(yù)覽已結(jié)束,剩余22頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、C+大作業(yè)報(bào)告班級: 031013學(xué)號:姓名:銷售公司員工管理一題目:設(shè)計(jì)一個(gè)虛基類 Staff (員工),包含編號、姓名和年齡保護(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)對公司人員 (包括銷售員、 經(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類,然后通過虛擬繼承生成Salesman類和Manager類,最后由Salesman和Manager派生出銷售經(jīng)理類 SalesManager。這四個(gè)類中定義 InputFrom &n) 這一輸入函數(shù),另外每個(gè)類還定義輸入信息和輸出信息的成員函數(shù),之后定義 StaffChart、SalesmanChart、 ManagerChart 和 SalesManagerChart 四個(gè)類來,為實(shí)現(xiàn)增加、更新、查詢、 刪除以及特定類別人員顯示, 特定類別人員數(shù)目顯示的功能定義addItem、

3、modifyItem 、 find 、removeItem 以及 display、 findnumber 函數(shù)。 最后在主函數(shù)定義 Staff_Chart、 Salesman_Chart、 Manager_Chart 和 SalesManager_Chart 四個(gè)對象,通過循環(huán)執(zhí)行并用 switch 函數(shù)選擇功能, 然后調(diào)用相關(guān)的函數(shù)來實(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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論