




已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
天津農(nóng)學(xué)院計(jì)算機(jī)科學(xué)與信息工程系C+程序設(shè)計(jì)教學(xué)實(shí)習(xí)報(bào)告實(shí)習(xí)名稱(chēng): C+程序設(shè)計(jì) 專(zhuān) 業(yè): 信息管理與信息系統(tǒng) 班 級(jí): 2008級(jí) 2 班 學(xué) 號(hào): 0808044227 姓 名: 李立 指導(dǎo)教師: 趙光煜 成 績(jī): 二00九年 七 月 十 日15 目 錄 1 教學(xué)實(shí)習(xí)的內(nèi)容12 教學(xué)實(shí)習(xí)的目的13 教學(xué)實(shí)習(xí)設(shè)計(jì)介紹14 總結(jié)與體會(huì)141 教學(xué)實(shí)習(xí)的內(nèi)容通過(guò)使用所學(xué)的C+語(yǔ)言的基本詞法和語(yǔ)法規(guī)則(字符集、詞法規(guī)則、程序結(jié)構(gòu)、運(yùn)算符和表達(dá)式、各類(lèi)語(yǔ)句、函數(shù)格式和調(diào)用方式、作用域及存儲(chǔ)類(lèi))以及一些面向?qū)ο蟮某绦蛟O(shè)計(jì)方法(類(lèi)和對(duì)象的概念及定義格式、對(duì)象的賦值和運(yùn)算、繼承性和派生類(lèi)、多態(tài)性和虛函數(shù))等知識(shí),熟練掌握其內(nèi)涵并且達(dá)到自己編譯程序的目的。使用C+開(kāi)發(fā)環(huán)境進(jìn)行C+程序的設(shè)計(jì)、編輯、編譯、調(diào)試、運(yùn)行、測(cè)試,完成實(shí)習(xí)報(bào)告。2 教學(xué)實(shí)習(xí)的目的完成C+程序設(shè)計(jì)課程學(xué)習(xí)后,通過(guò)本次教學(xué)實(shí)習(xí),對(duì)所學(xué)的C+專(zhuān)業(yè)知識(shí)進(jìn)一步消化、理解并且掌握程序設(shè)計(jì)方法,把所學(xué)的C+專(zhuān)業(yè)知識(shí)靈活運(yùn)用到現(xiàn)實(shí)問(wèn)題中,鍛煉和提高綜合運(yùn)用所學(xué)面向?qū)ο蟮某绦蛟O(shè)計(jì)方法和其他的一些知識(shí)結(jié)合起來(lái)解決實(shí)際問(wèn)題的能力。而且,通過(guò)學(xué)習(xí)C+知識(shí)讓我利用另外一種方式去發(fā)現(xiàn)問(wèn)題、分析問(wèn)題和解決問(wèn)題的重要性3 教學(xué)實(shí)習(xí)設(shè)計(jì)介紹 對(duì)整個(gè)系統(tǒng)的設(shè)計(jì)思路是這樣的,首先由員工輸入用戶(hù)信息,包括編號(hào)、姓名和職務(wù);然后,在計(jì)算某為職工的當(dāng)月工資時(shí),系統(tǒng)先從一輸入的職工信息文件中獲取職工的工作類(lèi)型,接著調(diào)用不同的處理程序進(jìn)行計(jì)算;最后將結(jié)果存檔。從用戶(hù)的需求中,可以發(fā)現(xiàn)5種類(lèi)型的職員都可以分別設(shè)計(jì)為一個(gè)類(lèi)。首先,他們都屬于雇員,因此可以設(shè)計(jì)一個(gè)基類(lèi)employee(雇員),然后從中派生出technician(技術(shù)人員)類(lèi)、salesman(銷(xiāo)售人員)類(lèi)、secretary(文秘)類(lèi)。對(duì)于技術(shù)經(jīng)理和銷(xiāo)售經(jīng)理來(lái)說(shuō),他們都屬于經(jīng)理,所以設(shè)計(jì)時(shí)可以從employee類(lèi)中派生出一個(gè)manager(經(jīng)理)類(lèi)作為techmanager(技術(shù)人員)類(lèi)、salesman(銷(xiāo)售人員)類(lèi)、secretary(文秘)類(lèi)的父類(lèi)。而經(jīng)理類(lèi)本身并不對(duì)應(yīng)實(shí)際的工作類(lèi)型,由于技術(shù)經(jīng)理有技術(shù)人員和經(jīng)理的雙重特點(diǎn),因此techmanager類(lèi)同時(shí)繼承technician類(lèi)和manager類(lèi);銷(xiāo)售經(jīng)理有銷(xiāo)售人員和經(jīng)理的雙重特點(diǎn),因此salesmanager類(lèi)同時(shí)繼承salesman類(lèi)和manager類(lèi)。根據(jù)用戶(hù)需求,employee類(lèi)應(yīng)該擁有的屬性有:編號(hào)、姓名、職務(wù)、月份和工資。Employee類(lèi)的服務(wù)可以包括info()、search()、countsalary()、recordinfo()和recordsalary()。其中info()函數(shù)用于接收用戶(hù)輸入的職工信息;search()函數(shù)用來(lái)根據(jù)職工名查找職工信息;countsalary()函數(shù)為工資計(jì)算函數(shù),但在基類(lèi)中為空,原因是各類(lèi)人員的工資計(jì)算方法不同,無(wú)法在基類(lèi)中統(tǒng)一定義,必須在派生類(lèi)中分別定義。Recordinfo()函數(shù)和recordsalary()函數(shù)分別是職工信息和職工工資的記錄函數(shù),分別將信息存入文件info.txt和salary.txt。該系統(tǒng)的源程序如下,salary.h為頭文件,定義了所有的類(lèi),salary.cpp實(shí)現(xiàn)了所有的類(lèi),manager.cpp為主程序,實(shí)現(xiàn)了整個(gè)管理流程。/*/ */ salary.h */ 定義對(duì)所有的類(lèi) */ */*class employeepublic:int number; /編號(hào)char *name; /姓名int status; /職務(wù)代碼,1:技術(shù)經(jīng)理;2:銷(xiāo)售經(jīng)理;3:技術(shù)人員;4:銷(xiāo)售人員5:文秘int month; / 所計(jì)算工資的月份float salary; / 工資額public:void info(); /接受用戶(hù)輸入的職工信息bool search(); /根據(jù)姓名查找職工信息virtual void countSalary()=0; /計(jì)算工資函數(shù),純虛函數(shù)用于被重載int recordInfo(); /記錄職工信息int recordSalary(); /記錄職工工資信息;class technician: virtual public employeeprotected:int workHour; /本月工作小時(shí)數(shù)float hourlySalary; /時(shí)薪public:technician(float x=35); /構(gòu)造函數(shù)void countSalary(); /技術(shù)人員工資計(jì)算函數(shù);/銷(xiāo)售人員類(lèi)class salesman: virtual public employeeprotected:float saleSum; / 本月銷(xiāo)售額double getRate; /提成比率public:salesman(float x=0.05); /構(gòu)造函數(shù)void countSalay(); /銷(xiāo)售人員工資計(jì)算函數(shù);/經(jīng)理類(lèi),不對(duì)應(yīng)實(shí)際職務(wù)class manager:virtual public employeeprotected:float fixedSalary; /經(jīng)理的固定工資public:manager(float x=6000); /構(gòu)造函數(shù)void countSalary();/經(jīng)歷的工資計(jì)算函數(shù),為空;/文秘類(lèi)class secretary: public employeefloat fixedSalary; /文秘的固定工資float bonus; /文秘的獎(jiǎng)金public:secretary(float x=4000); /構(gòu)造函數(shù)void countSalary(); /文秘的工資計(jì)算函數(shù);/技術(shù)經(jīng)理類(lèi)class techmanager: public technician, public managerfloat gradeBonus; /技術(shù)經(jīng)理的業(yè)績(jī)等級(jí)獎(jiǎng)(每級(jí))int grade; /技術(shù)經(jīng)理的業(yè)績(jī)等級(jí)public:techmanager(float x=1000);/構(gòu)造函數(shù)void countSalary();/技術(shù)經(jīng)歷的工資計(jì)算函數(shù);/銷(xiāo)售經(jīng)理類(lèi)class salesmanager: public salesman, public managerpublic:salesmanager(float x=0.02);/構(gòu)造函數(shù)void countSalary();/銷(xiāo)售經(jīng)歷的工資計(jì)算函數(shù);/*/ */ salary.cpp */ 實(shí)現(xiàn)所有的類(lèi) */ */*#include #include#includesalary.husing namespace std;struct infoRecorderint number;char name30;int status; irl; /職工信息結(jié)構(gòu),用于將職工信息寫(xiě)入文件struct salaryRecorderchar name30;int month;float salary; srl; /職工工資信息結(jié)構(gòu),用于將職工信息寫(xiě)入文件void employee:info()char namestr30; /用于臨時(shí)存放職工姓名coutendlnamestr;name=new charstrlen(namestr)+1; /動(dòng)態(tài)申請(qǐng)內(nèi)存空間strcpy(name,namestr); /拷貝職工姓名到namecoutnumber;while(number9999) /檢查員工編號(hào)coutnumber;countstatus;while (status5) /檢查員工職務(wù)代碼coutstatus;bool employee:search()int i:ifstream ifile(info.txt,ios:in|ios:binary); /打開(kāi)員工信息文件info.txtif(! ifile)cerrend員工信息文件讀取錯(cuò)誤!endl;return false;while (! ifile.eof() / 根據(jù)職工名查找職工信息ifile.read( (char *)&irl, sizeof(irl) ); /讀取一條記錄i=strcmp(,name);/比較職工名是否匹配if(i=0) 如果匹配就讀取職工信息number=irl.number;status=irl.status;ifile.close();return true; /查找到職工信息ifile.close();return false; /未查找到職工信息int employee:recordIfo()strcpy(,name);/先將職工信息存入結(jié)構(gòu)inforecorder中irl.status=status;ofstream ofile(info.txt, ios:app|ios:binary);/使用追加方式打開(kāi)員工信息文件info.txtif(! ofile)cerrendl員工信息文件打開(kāi)錯(cuò)誤!endl;return 0;ofile.write( (char *)&irl, sizeof(irl) );/寫(xiě)入一個(gè)記錄ofile.close();return 1;int employee:recordSalary()char ch1;coutendlch1;/獲取用戶(hù)輸入while (ch1 =Y&ch1! =y&ch1! =N&ch1! =n)cinch1;if( ch1=N|ch1n) return 0;/不存檔else /存檔strcpy(,name);/將職工工資信息先存入結(jié)構(gòu)salaryrecorder中coutendlsrl.month; while(sr1.month12)/檢查輸入月份 Coutendlsr1.month; srl.salary=salary; ofstream ofile(salary.txt,ios:app|ios:binary);/打開(kāi)文件salary.txt if(! ofile) cerrendl員工工資文件打開(kāi)錯(cuò)誤!endl; return 0; ofile.write( (char *)&srl,sizeof(srl) );/寫(xiě)入一條記錄ofile.close();return 1;technician:technician(float x)hourlySalary=x;/技術(shù)人員時(shí)薪默認(rèn)為35元void technician:countSalary()cout請(qǐng)輸入技術(shù)員nameworkHour;/輸入工作時(shí)數(shù)salary=workHour*hourlySalary;/工資=工作時(shí)數(shù)*cout技術(shù)員salaryendl;/class salesman/salesman:salesman(float x)getRate=x; / 銷(xiāo)售員提成比率為5%void salesman:countSalary()cout請(qǐng)輸入銷(xiāo)售員namesaleSum; /輸入銷(xiāo)售額salary=saleSum*getRate; /工資=銷(xiāo)售額*提成比率cout銷(xiāo)售員name編號(hào)number本月工資為:salaryendl;/class manager/manager:manager(float x)fixedSalary=x; / 經(jīng)理的固定工資為6000元void manager:countSalary()/class secretary/secretary:secretary(float x)fixedSalary=4000; /文秘的固定工資為4000元void secretary:countSalary()cout請(qǐng)輸入文秘namebonus; /輸入文秘當(dāng)月獎(jiǎng)金salary=fixedSalary+bonus; /工資=固定工資+獎(jiǎng)金coutendl文秘name編號(hào)number本月工資為:salaryendl;/class techmanager/techmanager:teachmanager(float x)gradeBonus=x; /技術(shù)經(jīng)理工作業(yè)績(jī)每等級(jí)的獎(jiǎng)金void techmanager:countSalary()cout請(qǐng)輸入技術(shù)經(jīng)理namegrade; / 輸入工作業(yè)績(jī)等級(jí)while( grade3) /檢查輸入工作業(yè)績(jī)等級(jí)coutendl工作業(yè)績(jī)等級(jí)錯(cuò)誤,工作業(yè)績(jī)等級(jí)必須為1、2、3,請(qǐng)重新輸入:;salary=fixedSalary+grade*gradeBonus; /工資=固定工資+業(yè)績(jī)等級(jí)*每級(jí)獎(jiǎng)金coutendl技術(shù)經(jīng)理name編號(hào)number本月工資為:salaryendl;/class salesmanafer/salesmanager:salesmanager(float x)getRate=x;/銷(xiāo)售經(jīng)理的銷(xiāo)售總額提成比率void salesmanager:countSalary()cout請(qǐng)輸入銷(xiāo)售經(jīng)理namesaleSum;/當(dāng)月銷(xiāo)售總額salary=fixedSalary+saleSum*getRate;/工資=固定工資+當(dāng)月銷(xiāo)售額*提成比率coutendl銷(xiāo)售經(jīng)理name編號(hào)number本月工資為:salaryendl;/*/ */ manager.cpp */ 主程序 * / * /*#include#include#includesalary.husing namespace std;void main()char ch1; /用于臨時(shí)存放姓名char namestr30; /分別定義各個(gè)類(lèi)的實(shí)例technician em, te;salesman sa;secretary se;manager ma;techmanager tm;salesmanager sm; /定義一個(gè)基類(lèi)指針數(shù)組分別指向各個(gè)派生類(lèi)的對(duì)象employee *pem6=&ma,&tm,&sm,&te,&sa,&se;int i;coutendl=; coutendl=職工工資管理系統(tǒng)=; coutendl=;while(true) /設(shè)定循環(huán)操作coutendlch1;while( ch1 =1 & ch1!=2 & ch1!=3 )/檢查用戶(hù)輸入cinch1;if( ch1=1 ) /輸入員工信息(); /接受用戶(hù)輸入員工信息em.recordInfo(); / 記錄員工信息else if( ch1=2 ) /計(jì)算員工工資coutendlnamestr;=new charstrlen(namestr)+1; / 申請(qǐng)內(nèi)存空間存放姓名strcpy(,namestr); / 復(fù)制姓名while( ! em.search() ) /根據(jù)姓名查找員工信息coutendlnamestr; /如輸入員工姓名錯(cuò)誤,則重復(fù)上述步驟=new charstrlen(namestr)+1;strcpy(,namestr);i=em.status; /獲得該名職工的職務(wù)代碼pemi-name=; /將獲得的職工信息輸入到對(duì)應(yīng)的派生類(lèi)對(duì)象pemi-number=em.number;pemi-status=em.status;pemi-countSalary(); / 根據(jù)職務(wù)代碼調(diào)用不同派生類(lèi)的函數(shù)pemi-recordSalary(); /刪除動(dòng)態(tài)申請(qǐng)的空間else break; /如果用戶(hù)選擇3,則退出程序運(yùn)行結(jié)果如下:= 職工工資管理系統(tǒng)=請(qǐng)選擇操作:1.輸入員工信息;2。計(jì)算員工工資;3.退出。請(qǐng)輸入員工姓名:Tom請(qǐng)輸入員工編號(hào):1001請(qǐng)輸入員工職務(wù)代
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 新生兒簡(jiǎn)易胎齡評(píng)估法
- Cephaibol-D-生命科學(xué)試劑-MCE
- 動(dòng)保行業(yè)4月跟蹤報(bào)告:4月圓環(huán)、偽狂、腹瀉等疫苗批簽發(fā)增速突出大環(huán)內(nèi)酯類(lèi)原料藥延續(xù)強(qiáng)勢(shì)表現(xiàn)
- A股市場(chǎng)2025年6月投資策略報(bào)告:震蕩行情靜待增量催化
- 2025年綠色建筑示范項(xiàng)目資金申請(qǐng)與綠色建筑產(chǎn)業(yè)政策優(yōu)化報(bào)告
- 2025年工業(yè)互聯(lián)網(wǎng)平臺(tái)安全多方計(jì)算在智能工廠(chǎng)生產(chǎn)設(shè)備狀態(tài)實(shí)時(shí)監(jiān)控與報(bào)警中的應(yīng)用報(bào)告
- 2025年高端醫(yī)療器械國(guó)產(chǎn)化替代下的產(chǎn)業(yè)政策與環(huán)境適應(yīng)性研究報(bào)告
- 2025年文化與科技融合趨勢(shì)下的數(shù)字文創(chuàng)產(chǎn)業(yè)政策研究報(bào)告
- 數(shù)字化轉(zhuǎn)型背景下的商業(yè)地產(chǎn)項(xiàng)目運(yùn)營(yíng)策略與客戶(hù)體驗(yàn)優(yōu)化報(bào)告
- 2025年潮玩產(chǎn)業(yè)分析:收藏價(jià)值與文化推廣策略研究報(bào)告
- 過(guò)敏性休克應(yīng)急預(yù)案演練記錄表
- 第八章-三相異步電動(dòng)機(jī)的電力拖動(dòng)課件
- 工程施工停止點(diǎn)檢查表
- 《滅火器維修》GA95-2015(全文)
- 高中美術(shù)素描教案(8篇)
- 市政工程監(jiān)理規(guī)劃范本(完整版)
- 國(guó)貿(mào)實(shí)驗(yàn)一進(jìn)出口價(jià)格核算
- 幼兒園中班美術(shù):《美麗的蝴蝶》 PPT課件
- 計(jì)算機(jī)組成原理-唐朔飛(完整版)
- 單片機(jī)芯片8279用法
- 電源安規(guī)設(shè)計(jì)規(guī)范
評(píng)論
0/150
提交評(píng)論