




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上數(shù)學(xué)與計(jì)算機(jī)學(xué)院 C+ 實(shí)驗(yàn)報(bào)告年級 09數(shù)計(jì) 學(xué)號 姓名 劉寶 成績 專業(yè) 數(shù)電 實(shí)驗(yàn)地點(diǎn) 主樓401 指導(dǎo)教師 翟俊海 實(shí)驗(yàn)項(xiàng)目 職工信息表 實(shí)驗(yàn)日期 11年1月1日 一、實(shí)驗(yàn)?zāi)康耐ㄟ^編寫一個(gè)處理職工信息的程序,加強(qiáng)對繼承與派生,運(yùn)算符重載等概念的理解,提升實(shí)際操作能力。二、實(shí)驗(yàn)問題描述設(shè)計(jì)要求:設(shè)計(jì)要求實(shí)現(xiàn)如下功能:(1)建立職工信息數(shù)據(jù),包括職工編號、姓名、性別、工資、出生時(shí)間、部門、參加工作時(shí)間和年齡(必須計(jì)算得到)。(2)使用繼承的方法構(gòu)造至少3個(gè)類,(即雇員類基類,教師類和工人類派生類)類中使用相應(yīng)的對象放置10個(gè)職工信息。(3)編寫同名display(
2、)成員函數(shù),用來輸出數(shù)組的內(nèi)容。(4)按不同類別輸出職工信息,比如按系輸出教師信息。(5)要求對“”和“”運(yùn)算符進(jìn)行重載??紤]到輸人職工編號時(shí),也會因不小心引人空格,而且名字中也需要有空格,所以重載“運(yùn)算符時(shí),需要滿足這個(gè)要求。(6)抽取并計(jì)算職工的平均年齡。(7)檢索(查找)指定信息。(如按姓名檢索、按年齡檢索)(8)參考界面如下:1增加一位職工(教師、工人)記錄2顯示全部職工(教師、學(xué)生)記錄3計(jì)算職工(教師、學(xué)生)的平均年齡4刪除一個(gè)職工(教師、學(xué)生)記錄5按系輸出教師信息6按姓名檢索(教師、學(xué)生)職工7結(jié)束程序運(yùn)行三、實(shí)驗(yàn)步驟1、實(shí)驗(yàn)問題分析(一) 時(shí)間類。class Timepubl
3、ic:void display();void set();void age();int getage();private:int year;int month;int day;(二) 職工類(單個(gè)職工)。class Laborpublic:void creat();void display();/protected:string num;string name;string sex;float wage;Time birthday;string workp;Time workt;int age;(三) 雇員類(是一個(gè)集合類,包含多個(gè)人員(對象數(shù)組)以及對多個(gè)人員的操作(如添加、刪除、查詢等,是
4、對對象數(shù)組操作的成員函數(shù),應(yīng)設(shè)定為虛函數(shù)),雇員類可考慮設(shè)為抽象基類 。class Employeepublic:void virtual set()num=0; /將num設(shè)置為0void virtual addin(); /增加一個(gè)雇員void virtual display(); / /顯示所有雇員void virtual dele(); /刪除一個(gè)雇員void virtual search(); /查詢雇員void virtual show(); /按工作部門顯示雇員信息void virtual averageage(); /計(jì)算雇員平均年齡protected:int num; /標(biāo)記
5、員工個(gè)數(shù)Labor L10; /;(四) 教師類(雇員類的派生類),對基類的虛函數(shù)重新定義,實(shí)現(xiàn)相應(yīng)功能。class Teacher:virtual public Employeepublic:void set()num=0; /將num設(shè)置為0void addin(); /增加教師void display(); /顯示所有教師信息void dele(); /刪除教師void search(); /查詢教師信息void show(); /按系顯示教師信息void averageage(); /計(jì)算教師平均年齡void SET(); /讀入文件中的信息;(五) 工人類(雇員類的派生類),對基類的
6、虛函數(shù)重新定義,實(shí)現(xiàn)相應(yīng)功能。class Worker:virtual public Employeepublic:void set()num=0; /將num設(shè)置為0void addin(); /增加工人void display(); /顯示所有工人信息void dele(); /刪除工人void search(); /查詢工人信息void show(); /按部門顯示工人信息void averageage(); /計(jì)算工人平均年齡void SET(); /讀入文件中的信息;(六) 對>>進(jìn)行運(yùn)算符重載,使之能接收空格。istream&operator>>(i
7、stream&ip,string&s)char a12;gets(a);s=a;return ip;四、 實(shí)驗(yàn)結(jié)果(程序)及分析1、實(shí)驗(yàn)主要模塊代碼(一) 函數(shù)功能: Time 類和對Time 類的操作class Timepublic:void display(); /顯示年月日void set(); /設(shè)置void age(); /顯示年齡int getage(); /計(jì)算時(shí)間差/private:int year;int month;int day;void Time:display() /顯示年月日cout<<year<<"-"&
8、lt;<month<<"-"<<day;void Time:set() /設(shè)置年月日 cout<<"-年:"cin>>year; cout<<"-月:"cin>>month; cout<<"-日:"cin>>day;void Time:age() /顯示時(shí)間差cout<<2010-year;int Time:getage() /得到時(shí)間差 return (2010-year);(二) 函數(shù)功能: 一個(gè)雇
9、員信息的建立和顯示class Laborpublic:void creat(); /輸入相關(guān)信息void display(); /顯示相關(guān)信息/protected:string num;string name;string sex;float wage;Time birthday;string workp;Time workt;int age;void Labor:creat() /輸入信息cout<<"請按照提示操作,請輸入"<<endl;cout<<"工 號:"cin>>num;cout<<
10、"姓 名:"cin>>name;cout<<"性 別:"cin>>sex;cout<<"工作部門:"cin>>workp;cout<<"工 資:"cin>>wage;cout<<"出生日期:"cout<<endl;birthday.set();cout<<"工作時(shí)間:"cout<<endl;workt.set();getchar();void L
11、abor:display() /顯示信息cout<<"工 號:"<<num<<endl;cout<<"姓 名:"<<name<<endl;cout<<"性 別:"<<sex<<endl;cout<<"工作部門:"<<workp<<endl;cout<<"月 工 資:"<<wage<<" 元"<
12、<endl;cout<<"出生日期:"birthday.display();cout<<endl;cout<<"工作時(shí)間:"workt.display();cout<<endl;cout<<"年 齡:"birthday.age();cout<<endl;cout<<endl;(三) 函數(shù)功能: 對多個(gè)雇員的操作class Employee/雇員類public:void virtual set()num=0; /設(shè)0void virtual add
13、in(); /增加雇員void virtual display(); /顯示雇員void virtual dele(); /刪除雇員void virtual search(); /查詢雇員void virtual show(); /按部門顯示雇員void virtual averageage(); /計(jì)算平均年齡protected:int num;Labor L10;void Employee:addin() /增加一個(gè)員工信息if(num>=10)cout<<"已滿"<<endl;elsecout<<"請輸入相關(guān)信息&q
14、uot;<<endl;L+num.creat();void Employee:display() /顯示所有職工信息if(num<=0)cout<<"無信息,無法顯示"<<endl; else for(int i=1;i<=num;i+) Li.display();void Employee:dele() /按工號刪除信息if(num<=0)cout<<"無信息,無法刪除"<<endl;elsestring n; cout<<"請輸入要刪除的員工工號&qu
15、ot;<<endl; cin>>n;for(int i=1;i<=num;i+)if(Li.num=n) for(int k=i;k<num;k+) Lk=Lk+1; num-; if(i>num)cout<<"無此工號的員工!"<<endl;void Employee:search() /按姓名查詢信息if(num<=0)cout<<"無信息,無法查詢"<<endl;elsestring nam; cout<<"請輸入要查詢的員工姓名&
16、quot;<<endl; cin>>nam;for(int i=1;i<=num;i+)if(L=nam)cout<<"查詢到此員工的信息"<<endl; Li.display();if(i>num)cout<<"無此姓名的員工!"<<endl;void Employee:show() /按部門顯示信息 if(num<=0)cout<<"無信息,無法顯示"<<endl;elsestring wp; cout&l
17、t;<"請輸入工作部門"<<endl; cin>>wp;cout<<"在此工作部門工作的員工信息如下"<<endl;int b=0;for(int i=1;i<=num;i+)if(Li.workp=wp)b=1; Li.display();if(b=0)cout<<"無在此部門工作的員工!"<<endl; void Employee:averageage() /計(jì)算平均年齡if(num<1)cout<<"無信息無法計(jì)算平均
18、年齡"<<endl;elseint all=0,i;float av; for(i=1;i<=num;i+) all=all+Li.birthday.getage(); av=(all/num); cout<<"平均年齡為"<<av<<"歲"<<endl; (四) 函數(shù)功能: 對教師類的操作class Teacher:virtual public Employeepublic:void set()num=0;void addin();void display();void del
19、e();void search();void show();void averageage();void SET();void Teacher: SET()set(); ifstream ss("d:/1.txt"); for(int j=1;j<4;j+) num+; ss>>Lnum.num; ss>>L; ss>>Lnum.sex; ss>>Lnum.workp; ss>>Lnum.wage; ss>>Lnum.birthday.year; ss>>Lnum.bi
20、rthday.month; ss>>Lnum.birthday.day; ss>>Lnum.workt.year; ss>>Lnum.workt.month; ss>>Lnum.workt.day; void Teacher :addin()if(num>=10)cout<<"教師信息存儲已滿"<<endl;elsecout<<"請輸入相關(guān)教師信息"<<endl;/getchar();L+num.creat();void Teacher:display(
21、) /顯示所有職工信息if(num<=0)cout<<"無教師信息,無法顯示"<<endl; elsecout<<"教師信息如下:"<<endl; for(int i=1;i<=num;i+) Li.display();void Teacher:dele() /按工號刪除信息if(num<=0)cout<<"無教師信息,無法刪除"<<endl;elsestring n; cout<<"請輸入要刪除教師的工號"<
22、;<endl;getchar(); cin>>n;int b=0;for(int i=1;i<=num;i+)if(Li.num=n) b=1; cout<<"刪除的教師信息是:"<<endl; Li.display(); for(int k=i;k<num;k+) Lk=Lk+1; num-; if(b=0)cout<<"無此工號的教師!"<<endl;void Teacher:search() /按姓名查詢信息if(num<=0)cout<<"無
23、教師信息,無法查詢"<<endl;elsestring nam; cout<<"請輸入要查詢的教師姓名"<<endl;getchar(); cin>>nam;int b=0;for(int i=1;i<=num;i+)if(L=nam)b=1;cout<<"查詢到此教師的信息"<<endl; Li.display();if(b=0)cout<<"無此姓名的教師!"<<endl;void Teacher:show(
24、) /按部門顯示信息 if(num<=0)cout<<"無教師信息,無法顯示"<<endl;elsestring wp; cout<<"請輸入教師工作部門"<<endl;getchar(); cin>>wp;cout<<"在此工作部門工作的教師信息如下"<<endl;int b=0;for(int i=1;i<=num;i+)if(Li.workp=wp)b=1; Li.display();if(b=0)cout<<"
25、無在此部門工作的教師!"<<endl; void Teacher:averageage() /計(jì)算平均年齡if(num<1)cout<<"無信息,無法計(jì)算平均年齡"<<endl;elseint all=0,i;float av; for(i=1;i<=num;i+) all=all+Li.birthday.getage(); av=(all/num); cout<<"教師的平均年齡為"<<av<<"歲"<<endl; (五) 函數(shù)
26、功能: 對工人類的操作class Worker:virtual public Employeepublic:void set()num=0;void addin();void display();void dele();void search();void show();void averageage();void SET();void Worker: SET()set(); ifstream ss("d:/2.txt"); for(int j=1;j<4;j+) num+; ss>>Lnum.num; ss>>L; ss>
27、;>Lnum.sex; ss>>Lnum.workp; ss>>Lnum.wage; ss>>Lnum.birthday.year; ss>>Lnum.birthday.month; ss>>Lnum.birthday.day; ss>>Lnum.workt.year; ss>>Lnum.workt.month; ss>>Lnum.workt.day; void Worker:addin()if(num>=10)cout<<"工人信息存儲已滿"<&l
28、t;endl;elsecout<<"請輸入相關(guān)工人信息"<<endl;L+num.creat();void Worker:display() /顯示所有職工信息if(num<=0)cout<<"無工人信息,無法顯示"<<endl; elsecout<<"工人信息如下:"<<endl; for(int i=1;i<=num;i+) Li.display();void Worker:dele() /按工號刪除信息if(num<=0)cout<&
29、lt;"無工人信息,無法刪除"<<endl;elsestring n; cout<<"請輸入要刪除工人的工號"<<endl;getchar(); cin>>n;for(int i=1;i<=num;i+)if(Li.num=n) cout<<"刪除的工人的信息是:"<<endl; Li.display(); for(int k=i;k<num;k+) Lk=Lk+1; num-; if(i=(num+1)cout<<"無此工號的工
30、人!"<<endl;void Worker:search() /按姓名查詢信息if(num<=0)cout<<"無工人信息,無法查詢"<<endl;elsestring nam; cout<<"請輸入要查詢的工人姓名"<<endl;getchar(); cin>>nam;int b=0;for(int i=1;i<=num;i+)if(L=nam)b=1;cout<<"查詢到此工人的信息"<<endl; L
31、i.display();if(b=0)cout<<"無此姓名的工人!"<<endl;void Worker:show() /按部門顯示信息 if(num<=0)cout<<"無工人信息,無法顯示"<<endl;elsestring wp; cout<<"請輸入工人工作部門"<<endl;getchar(); cin>>wp;cout<<"在此工作部門工作的工人信息如下"<<endl;int b=0;fo
32、r(int i=1;i<=num;i+)if(Li.workp=wp)b=1; Li.display();if(b=0)cout<<"無在此部門工作的工人!"<<endl; void Worker:averageage() /計(jì)算平均年齡if(num<1)cout<<"無信息,無法計(jì)算平均年齡"<<endl;elseint all=0,i;float av; for(i=1;i<=num;i+) all=all+Li.birthday.getage(); av=(all/num); cou
33、t<<"工人的平均年齡為"<<av<<"歲"<<endl; (六) 函數(shù)功能: 歡迎界面void welcome()cout<<" *"<<endl;cout<<" -"<<endl;cout<<" 歡迎來到河北大學(xué)職工信息系統(tǒng)"<<endl;cout<<endl;cout<<" 1-增加一位職工信息"<<endl;cou
34、t<<" 2-顯示全部職工信息"<<endl;cout<<" 3-計(jì)算職工平均年齡"<<endl;cout<<" 4-刪除一個(gè)職工信息"<<endl;cout<<" 5-按部門輸出職工信息"<<endl;cout<<" 6-按姓名查詢職工信息"<<endl;cout<<" 7-退出"<<endl;cout<<endl;co
35、ut<<" *請選擇按鍵*"<<endl;2、實(shí)驗(yàn)代碼 #include<iostream>#include<string>#include<fstream>using namespace std;istream&operator>>(istream&ip,string&s)char a12;gets(a);s=a;return ip;class Timepublic:void display();void set();void age();int getage();/priva
36、te:int year;int month;int day;void Time:display()cout<<year<<"-"<<month<<"-"<<day;void Time:set() cout<<"-年:"cin>>year; cout<<"-月:"cin>>month; cout<<"-日:"cin>>day;void Time:age()cout&l
37、t;<2010-year;int Time:getage() return (2010-year);class Laborpublic:void creat();void display();/protected:string num;string name;string sex;float wage;Time birthday;string workp;Time workt;int age;void Labor:creat()cout<<"請按照提示操作,請輸入"<<endl;cout<<"工 號:"cin&g
38、t;>num;cout<<"姓 名:"cin>>name;cout<<"性 別:"cin>>sex;cout<<"工作部門:"cin>>workp;cout<<"工 資:"cin>>wage;cout<<"出生日期:"cout<<endl;birthday.set();cout<<"工作時(shí)間:"cout<<endl;workt.
39、set();getchar();void Labor:display()cout<<"工 號:"<<num<<endl;cout<<"姓 名:"<<name<<endl;cout<<"性 別:"<<sex<<endl;cout<<"工作部門:"<<workp<<endl;cout<<"月 工 資:"<<wage<<&q
40、uot; 元"<<endl;cout<<"出生日期:"birthday.display();cout<<endl;cout<<"工作時(shí)間:"workt.display();cout<<endl;cout<<"年 齡:"birthday.age();cout<<endl;cout<<endl;class Employee/: protected Laborpublic:void virtual set()num=0;void vir
41、tual addin();void virtual display();void virtual dele();void virtual search();void virtual show();void virtual averageage();protected:int num;Labor L10;void Employee:addin() /增加一個(gè)員工信息if(num>=10)cout<<"已滿"<<endl;elsecout<<"請輸入相關(guān)信息"<<endl;L+num.creat();vo
42、id Employee:display() /顯示所有職工信息if(num<=0)cout<<"無信息,無法顯示"<<endl; else for(int i=1;i<=num;i+) Li.display();void Employee:dele() /按工號刪除信息if(num<=0)cout<<"無信息,無法刪除"<<endl;elsestring n; cout<<"請輸入要刪除的員工工號"<<endl; cin>>n;for
43、(int i=1;i<=num;i+)if(Li.num=n) for(int k=i;k<num;k+) Lk=Lk+1; num-; if(i>num)cout<<"無此工號的員工!"<<endl;void Employee:search() /按姓名查詢信息if(num<=0)cout<<"無信息,無法查詢"<<endl;elsestring nam; cout<<"請輸入要查詢的員工姓名"<<endl; cin>>nam
44、;for(int i=1;i<=num;i+)if(L=nam)cout<<"查詢到此員工的信息"<<endl; Li.display();if(i>num)cout<<"無此姓名的員工!"<<endl;void Employee:show() /按部門顯示信息 if(num<=0)cout<<"無信息,無法顯示"<<endl;elsestring wp; cout<<"請輸入工作部門"<<
45、endl; cin>>wp;cout<<"在此工作部門工作的員工信息如下"<<endl;int b=0;for(int i=1;i<=num;i+)if(Li.workp=wp)b=1; Li.display();if(b=0)cout<<"無在此部門工作的員工!"<<endl; void Employee:averageage() /計(jì)算平均年齡if(num<1)cout<<"無信息無法計(jì)算平均年齡"<<endl;elseint all=
46、0,i;float av; for(i=1;i<=num;i+) all=all+Li.birthday.getage(); av=(all/num); cout<<"平均年齡為"<<av<<"歲"<<endl; class Teacher:virtual public Employeepublic:void set()num=0;void addin();void display();void dele();void search();void show();void averageage();vo
47、id SET();void Teacher: SET()set(); ifstream ss("d:/1.txt"); for(int j=1;j<4;j+) num+; ss>>Lnum.num; ss>>L; ss>>Lnum.sex; ss>>Lnum.workp; ss>>Lnum.wage; ss>>Lnum.birthday.year; ss>>Lnum.birthday.month; ss>>Lnum.birthday.day; ss>&
48、gt;Lnum.workt.year; ss>>Lnum.workt.month; ss>>Lnum.workt.day; void Teacher :addin()if(num>=10)cout<<"教師信息存儲已滿"<<endl;elsecout<<"請輸入相關(guān)教師信息"<<endl;/getchar();L+num.creat();void Teacher:display() /顯示所有職工信息if(num<=0)cout<<"無教師信息,無法
49、顯示"<<endl; elsecout<<"教師信息如下:"<<endl; for(int i=1;i<=num;i+) Li.display();void Teacher:dele() /按工號刪除信息if(num<=0)cout<<"無教師信息,無法刪除"<<endl;elsestring n; cout<<"請輸入要刪除教師的工號"<<endl;getchar(); cin>>n;int b=0;for(int
50、i=1;i<=num;i+)if(Li.num=n) b=1; cout<<"刪除的教師信息是:"<<endl; Li.display(); for(int k=i;k<num;k+) Lk=Lk+1; num-; if(b=0)cout<<"無此工號的教師!"<<endl;void Teacher:search() /按姓名查詢信息if(num<=0)cout<<"無教師信息,無法查詢"<<endl;elsestring nam; cout&l
51、t;<"請輸入要查詢的教師姓名"<<endl;getchar(); cin>>nam;int b=0;for(int i=1;i<=num;i+)if(L=nam)b=1;cout<<"查詢到此教師的信息"<<endl; Li.display();if(b=0)cout<<"無此姓名的教師!"<<endl;void Teacher:show() /按部門顯示信息 if(num<=0)cout<<"無教師信息,無法
52、顯示"<<endl;elsestring wp; cout<<"請輸入教師工作部門"<<endl;getchar(); cin>>wp;cout<<"在此工作部門工作的教師信息如下"<<endl;int b=0;for(int i=1;i<=num;i+)if(Li.workp=wp)b=1; Li.display();if(b=0)cout<<"無在此部門工作的教師!"<<endl; void Teacher:averageage() /計(jì)算平均年齡if(num<1)cout<<"無信息,無法計(jì)算平均年齡"<<endl;elseint all=0,i;float av; for(i=1;i<=num;i+) all=all+Li.birthday.getage(
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 制造業(yè)承攬加工合同范本解析
- 銷售合同范本:房地產(chǎn)買賣合同
- 房地產(chǎn)項(xiàng)目材料供應(yīng)合同
- 幼兒園教師招聘合同范本
- 公務(wù)用建筑設(shè)施維修保養(yǎng)合同樣本
- Module 3 Leisure time Unit 6 Healthy diet Reading 教學(xué)設(shè)計(jì) 2024-2025學(xué)年滬教牛津版英語九年級上冊
- 短期租賃合同簡易范本
- 天津市大學(xué)生實(shí)習(xí)勞動合同范本
- 企業(yè)保密及競業(yè)限制合同范本
- 6梯形的面積 教學(xué)設(shè)計(jì)-2024-2025學(xué)年人教版數(shù)學(xué)五年級上冊
- 粵港澳宜居城市建設(shè)協(xié)同發(fā)展策略
- 動物防疫服務(wù)投標(biāo)方案(技術(shù)方案)
- 2024年新課標(biāo)全國Ⅰ卷語文高考真題試卷(含答案)
- 2022-2023學(xué)年廣州市六年級下學(xué)期數(shù)學(xué)期末考試試卷及答案解析
- 2024中國AI應(yīng)用開發(fā)者生態(tài)調(diào)研報(bào)告-易觀分析
- -中國傳統(tǒng)節(jié)日之春節(jié)習(xí)俗介紹主題班會14
- 2024年遼寧醫(yī)藥職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫含答案
- 2024上海市長寧區(qū)高三二模作文“成長的必經(jīng)之路:責(zé)任與選擇”審題立意及范文
- 諾如病毒應(yīng)急演練匯報(bào)
- 醫(yī)院檢驗(yàn)科實(shí)驗(yàn)室生物安全程序文件SOP
- 生物質(zhì)顆粒廠建設(shè)項(xiàng)目可行性研究報(bào)告
評論
0/150
提交評論