版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《C++程序設(shè)計(jì)》實(shí)現(xiàn)環(huán)節(jié)考核規(guī)定2.1實(shí)踐環(huán)節(jié)考核大綱一、考核類型 上機(jī)考核二、目的要求 《C++語(yǔ)言程序設(shè)計(jì)》是計(jì)算機(jī)科學(xué)與應(yīng)用專業(yè)、信息管理專業(yè)(本科)的必修課,是培養(yǎng)學(xué)生實(shí)踐動(dòng)手能力的一門重要的專業(yè)課程,是為滿足計(jì)算機(jī)應(yīng)用領(lǐng)域與計(jì)算機(jī)應(yīng)用人才的需要而設(shè)計(jì)的。C++語(yǔ)言是一種面向?qū)ο蟮木幊陶Z(yǔ)言,它集抽象性、封裝性、繼承性和多態(tài)性等面向?qū)ο筇卣饔谝惑w,可以幫助人們開(kāi)發(fā)出具有較高數(shù)據(jù)抽象程度,能夠充分體現(xiàn)信息隱蔽、軟件重用、易修改、易擴(kuò)充等特征的大型軟件。 《C++語(yǔ)言程序設(shè)計(jì)》的實(shí)驗(yàn)采用MicrosoftVisualC++6.0。通過(guò)上機(jī)實(shí)踐,加深對(duì)課程的理解,更好地掌握程序設(shè)計(jì)的基本方法,增強(qiáng)實(shí)踐動(dòng)手能力。三、考核環(huán)境 硬件:586以上的PC系列機(jī),主頻大于166MHz,內(nèi)存大于256MB,硬盤空間大于500MB。 軟件:中文Windows2000/NT/XP操作系統(tǒng),MicrosoftVisualC++6.0。四、考核方法 考生抽取試題后,在45分鐘內(nèi),完成試卷中所要求的全部?jī)?nèi)容,并作必要的記錄??荚嚱Y(jié)束后,考生上交試卷。上機(jī)考核成績(jī)由現(xiàn)場(chǎng)老師初評(píng),經(jīng)考點(diǎn)負(fù)責(zé)人審核簽名,報(bào)主考院校核定。成績(jī)分合格、不合格兩類。五、考核內(nèi)容掌握MicrosoftVisualC++6.0集成開(kāi)發(fā)環(huán)境的使用,新建工程,編輯含有類C++源文件,存取文件,編譯文件,調(diào)試程序和運(yùn)行程序。模板。包括:函數(shù)模板、類模板,練習(xí)編制函數(shù)模板和類模板。熟悉面向?qū)ο缶幊趟枷牒投辔募幊桃?guī)范。掌握公有繼承的賦值兼容性規(guī)則、構(gòu)造函數(shù)、復(fù)制構(gòu)造函數(shù)和析構(gòu)函數(shù)的設(shè)計(jì)方法。練習(xí)各類運(yùn)算符的重載。熟悉使用文件的基本方法。熟悉繼承和包含以及虛函數(shù)的多態(tài)性。六、參考書目 1.劉振安主編,《C++程序設(shè)計(jì)》,機(jī)械工業(yè)出版社2008年 2.雪萬(wàn)鵬譯,《C++程序設(shè)計(jì)教程》,機(jī)械工業(yè)出版社2005年 3.錢能,《C++程序設(shè)計(jì)教程》,清華大學(xué)出版社2006年2.2《C++程序設(shè)計(jì)》上機(jī)考核指導(dǎo) 《C++語(yǔ)言程序設(shè)計(jì)》是一門實(shí)踐性很強(qiáng)的課程,必須通過(guò)反復(fù)上機(jī)練習(xí),深入領(lǐng)悟面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想。通過(guò)實(shí)驗(yàn)教學(xué)加深理解和鞏固課堂和教材所學(xué)的內(nèi)容,提高實(shí)踐動(dòng)手能力。實(shí)驗(yàn)一MicrosoftVisualC++6.0集成開(kāi)發(fā)環(huán)境的使用實(shí)驗(yàn)?zāi)康呐c要求了解并初步掌握MicrosoftVisualC++6.0集成開(kāi)發(fā)環(huán)境的使用。實(shí)驗(yàn)內(nèi)容創(chuàng)建項(xiàng)目(Project)啟動(dòng)VC6.0從主菜單中選擇【文件】|【新建】命令,打開(kāi)【新建】對(duì)話框。單擊【工程】標(biāo)簽,從項(xiàng)目列表中單擊Win32ConsoleApplication選項(xiàng);在【工程】文本框中輸入項(xiàng)目的名字,如“hello”,系統(tǒng)將自動(dòng)為用戶的項(xiàng)目分配一個(gè)默認(rèn)的目錄。如果是VisualC++6.0,系統(tǒng)將顯示一個(gè)詢問(wèn)項(xiàng)目類型的程序向?qū)Вx擇anemptyproject(空項(xiàng)目)選項(xiàng),單擊【完成】按鈕,顯示新建項(xiàng)目信息;單擊【確定】按鈕結(jié)束。添加程序代碼從主菜單中選擇【文件】|【新建】命令,打開(kāi)【新建】對(duì)話框。在【新建】對(duì)話框中打開(kāi)【文件】選項(xiàng)卡,單擊C++SourceFile選擇,建立源文件;選擇“添加工程”復(fù)選框。在右邊的“文件”文本框中為文件指定一個(gè)名字,如“hello”。編輯源文件。在【工作區(qū)】窗口中單擊FileVIEW標(biāo)簽,選擇并打開(kāi)該窗口中SourceFiles下的文件,如hello.app,在打開(kāi)的【文件】窗口中輸入源文件。在項(xiàng)目文件中增加文件。若在已有的項(xiàng)目文件中增加一個(gè)新文件,如C++源文件“*.cpp”或頭文件“*.h”需要執(zhí)行以下操作。打開(kāi)相應(yīng)的項(xiàng)目文件,選擇【新建】|【文件】命令,選擇C++編輯欄Source選擇,可增加C++源文件;或選擇C/C++HeadFile選項(xiàng)增加C/C++頭文件。在【文件】文本框輸入文件名,單擊【確定】按鈕。編譯源文件先激活相應(yīng)的源文件窗口,選擇【編譯】|【編譯】命令或按Ctrl+F7鍵來(lái)編譯源文件,形成目標(biāo)文件(生成.obj文件),若該項(xiàng)目中有多個(gè)源文件,可依次激活并編譯。連接目標(biāo)文件,形成可執(zhí)行文件選擇【編譯】|【連接】命令或快捷鍵F7連接程序,并形成可執(zhí)行文件。此命令也可直接將項(xiàng)目中的所有源文件進(jìn)行編譯并連接形成可執(zhí)行文件,使編譯和連接的過(guò)程結(jié)合在一起。運(yùn)行程序選擇【編譯】|【執(zhí)行】命令或使用快捷鍵Ctrl+F5運(yùn)行該程序,將顯示一個(gè)類似于DOS的窗口,在窗口中第一行輸出程序計(jì)算結(jié)果,第二行輸出“Pressanykeytocontinue”,提示用戶按任意鍵回到開(kāi)發(fā)環(huán)境。程序練習(xí)定義一個(gè)關(guān)于日期的類,然后聲明對(duì)象,判斷該日期是否為閏年并輸出。本題練習(xí)的是定義類和使用類的方法#include<iostream>usingnamespacestd;classTDate{ public: voidSetDate(inty,intm,intd); intisLeapYear(); voidPrint(); private: intyear,month,day;};voidTDate::SetDate(inty,intm,intd){ year=y; month=m; day=d;}intTDate::isLeapYear(){ return(year%4==0&&year%100!=0)||(year%400==0);}voidTDate::Print(){ cout<<year<<"."<<month<<"."<<day<<endl;}voidmain(){ TDatedate1,date2; date1.SetDate(2004,5,4); date2.SetDate(2005,4,9); intleap=date1.isLeapYear(); date1.Print(); if(leap==1) cout<<"是閏年!"<<endl; else cout<<"不是閏年!"<<endl; date2.Print(); leap=date2.isLeapYear(); if(leap==1) cout<<"是閏年!"<<endl; else cout<<"不是閏年!"<<endl;}實(shí)驗(yàn)要求按要求編寫實(shí)驗(yàn)程序,將實(shí)驗(yàn)程序調(diào)試運(yùn)行,寫出程序的運(yùn)行結(jié)果,并提交實(shí)驗(yàn)報(bào)告,寫出調(diào)試運(yùn)行的分析和體會(huì)。實(shí)驗(yàn)二類和對(duì)象的使用實(shí)驗(yàn)?zāi)康暮鸵笫煜ゎ惖亩x格式和類中成員的訪問(wèn)權(quán)限。掌握對(duì)象的定義以及對(duì)象的初始化和賦值的操作。掌握構(gòu)造函數(shù)和析構(gòu)函數(shù)的使用。實(shí)驗(yàn)內(nèi)容編寫一個(gè)程序,定義類CPeople包含個(gè)人信息名稱、年齡、薪水。并在類中定義構(gòu)造函數(shù)、析構(gòu)函數(shù)。題目分析:注意構(gòu)造函數(shù)、析構(gòu)函數(shù)的定義規(guī)則。源程序代碼:#include<iostream>#include<string>usingnamespacestd;//類Cpeople的定義classCPeople{ intm_nAge; floatm_fSalary; char*m_pstrName; public: CPeople();//缺省構(gòu)造函數(shù) CPeople(intage,floatsalary,char*name);//帶參數(shù)的構(gòu)造函數(shù) CPeople(constCPeople&);//拷貝構(gòu)造函數(shù) ~CPeople();//析構(gòu)函數(shù) char*GetName(); floatGetSalary(); voidSetSalary(float); intGetAge(); voidSetAge(intage);};CPeople::CPeople(){ m_nAge=20; m_fSalary=3000.00f; m_pstrName=newchar[20]; strcpy(m_pstrName,"無(wú)名氏");}CPeople::CPeople(intage,floatsalary,char*name){ m_nAge=age; m_fSalary=salary; m_pstrName=newchar[20]; strcpy(m_pstrName,name);}CPeople::CPeople(constCPeople&AnotherPeople){ m_nAge=AnotherPeople.m_nAge; m_fSalary=AnotherPeople.m_fSalary; m_pstrName=newchar[20]; strcpy(m_pstrName,AnotherPeople.m_pstrName);}CPeople::~CPeople(){ if(m_pstrName!=NULL)delete[]m_pstrName;}char*CPeople::GetName(){ returnm_pstrName;}intCPeople::GetAge(){ returnm_nAge;}voidCPeople::SetAge(intage){ if(age<=0) cout<<"設(shè)置的年齡不合法"<<endl; else m_nAge=age;}floatCPeople::GetSalary(){ returnm_fSalary;}voidCPeople::SetSalary(floatnum){ if(num<0) cout<<"設(shè)置的薪水?dāng)?shù)目不合法"<<endl; else m_fSalary=num;}voidmain(){ CPeopleZhangSan(65,2000.00f,"張三"); cout<<"以下為個(gè)人信息:\n姓名,年齡,薪水"<<endl; cout<<"-------------\n"; cout<<ZhangSan.GetName()<<""; cout<<ZhangSan.GetAge()<<""; cout<<ZhangSan.GetSalary()<<endl<<endl; CPeopleA; A.SetAge(34); A.SetSalary(4000.00f); cout<<A.GetName()<<""; cout<<A.GetAge()<<""; cout<<A.GetSalary()<<endl<<endl; CPeopleB(ZhangSan); cout<<B.GetName()<<""; cout<<B.GetAge()<<""; cout<<B.GetSalary()<<endl<<endl;}實(shí)驗(yàn)和要求按要求編寫實(shí)驗(yàn)程序,將實(shí)驗(yàn)程序調(diào)試運(yùn)行,寫出程序的運(yùn)行結(jié)果,并提交實(shí)驗(yàn)報(bào)告,寫出調(diào)試運(yùn)行的分析和體會(huì)。實(shí)驗(yàn)三繼承與派生一、實(shí)驗(yàn)?zāi)康暮鸵螅?)掌握派生類的定義方法和派生類構(gòu)造函數(shù)的定義方法。(2)掌握不同繼承方法的情況下,基類成員函數(shù)在派生類中的訪問(wèn)權(quán)限。(3)了解派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行順序。了解多重繼承的定義方法,多重繼承的構(gòu)造函數(shù)和析構(gòu)函數(shù)的使用。二、實(shí)驗(yàn)內(nèi)容 在類CPeople的基礎(chǔ)上,派生出學(xué)生類CStudent,并實(shí)現(xiàn)對(duì)學(xué)生成績(jī)的統(tǒng)計(jì)和輸出。源程序代碼:#include<iostream>#include<string>#defineMAXNUM10usingnamespacestd;classCPeople{ intm_nAge; public: char*m_pstrName; CPeople(intage,char*name); ~CPeople(); intGetAge(); voidSetAge(intage); voidCopyPeople(CPeople*pAnother);};CPeople::CPeople(intage,char*name){ m_nAge=age; m_pstrName=newchar[20]; strcpy(m_pstrName,name);}CPeople::~CPeople(){ if(m_pstrName!=NULL)delete[]m_pstrName;}intCPeople::GetAge(){ returnm_nAge;}voidCPeople::SetAge(intage){ m_nAge=age;}voidCPeople::CopyPeople(CPeople*pAnother){ m_nAge=pAnother->m_nAge; strcpy(m_pstrName,pAnother->m_pstrName);}classCStudent:publicCPeople{ floatm_ArrayScore[MAXNUM];//用來(lái)存放成績(jī)的數(shù)組 protected: intm_stuNo; //學(xué)號(hào) intm_courseNum; //課程數(shù)目 floatm_aScore; //平均成績(jī) public: CStudent(intage,intNo,intNum,char*pName="noname"):CPeople(age,pName) { m_stuNo=No; m_courseNum=Num; m_aScore=0.0f; //初始化成績(jī)數(shù)組 cout<<"請(qǐng)輸入學(xué)生"<<m_pstrName<<m_courseNum<<"門課的成績(jī):"<<endl; for(inti=0;i<m_courseNum;++i) cin>>m_ArrayScore[i]; } voidCaculateAverageScore() { floatSUM=0.0f; for(inti;i<m_courseNum;++i) { SUM+=m_ArrayScore[i]; } m_aScore=SUM/m_courseNum; } floatGetM_aScore(){returnm_aScore;} friendostream&operator<<(ostream&out,constCStudent&s);};ostream&operator<<(ostream&out,constCStudent&s){ out<<"學(xué)生姓名"<<s.m_pstrName<<",學(xué)號(hào):"<<s.m_stuNo<<",成績(jī)列表:"<<endl; for(inti=0;i<s.m_courseNum;++i) { out<<s.m_ArrayScore[i]<<endl; } out<<"平均成績(jī)="<<s.m_aScore<<endl<<endl; returnout;}voidmain(){ CStudentstu1(16,29,3,"張三"); stu1.CaculateAverageScore(); cout<<stu1;}注意:VC++6.0不支持插入操作符和提取操作符作為友元運(yùn)算符重載,故改造如下:#include<iostream>#include<string>#defineMAXNUM10usingnamespacestd;classCPeople{ intm_nAge; public: char*m_pstrName; CPeople(intage,char*name); ~CPeople(); intGetAge(); voidSetAge(intage); voidCopyPeople(CPeople*pAnother);};CPeople::CPeople(intage,char*name){ m_nAge=age; m_pstrName=newchar[20]; strcpy(m_pstrName,name);}CPeople::~CPeople(){ if(m_pstrName!=NULL)delete[]m_pstrName;}intCPeople::GetAge(){ returnm_nAge;}voidCPeople::SetAge(intage){ m_nAge=age;}voidCPeople::CopyPeople(CPeople*pAnother){ m_nAge=pAnother->m_nAge; strcpy(m_pstrName,pAnother->m_pstrName);}classCStudent:publicCPeople{ floatm_ArrayScore[MAXNUM];//用來(lái)存放成績(jī)的數(shù)組 protected: intm_stuNo; //學(xué)號(hào) intm_courseNum; //課程數(shù)目 floatm_aScore; //平均成績(jī) public: CStudent(intage,intNo,intNum,char*pName="noname"):CPeople(age,pName) { m_stuNo=No; m_courseNum=Num; m_aScore=0.0f; //初始化成績(jī)數(shù)組 cout<<"請(qǐng)輸入學(xué)生"<<m_pstrName<<m_courseNum<<"門課的成績(jī):"<<endl; for(inti=0;i<m_courseNum;i++) cin>>m_ArrayScore[i]; } voidCaculateAverageScore() { floatSUM=0.0f; for(inti=0;i<m_courseNum;i++) { SUM+=m_ArrayScore[i]; } m_aScore=SUM/m_courseNum; } floatGetM_aScore(){returnm_aScore;} ostream&operator<<(ostream&out);};ostream&CStudent::operator<<(ostream&out){ out<<"學(xué)生姓名"<<m_pstrName<<",學(xué)號(hào):"<<m_stuNo<<",成績(jī)列表:"<<endl; for(inti=0;i<m_courseNum;i++) { out<<m_ArrayScore[i]<<endl; } out<<"平均成績(jī)="<<m_aScore<<endl<<endl; returnout;}voidmain(){ CStudentstu1(16,29,3,"張三"); stu1.CaculateAverageScore(); stu1<<cout;}三、實(shí)驗(yàn)和要求按要求編寫實(shí)驗(yàn)程序,將實(shí)驗(yàn)程序調(diào)試運(yùn)行,寫出程序的運(yùn)行結(jié)果,并提交實(shí)驗(yàn)報(bào)告,寫出調(diào)試運(yùn)行的分析和體會(huì)。實(shí)驗(yàn)四模板的使用一、實(shí)驗(yàn)?zāi)康暮鸵?了解函數(shù)模板、類模板的概念,練習(xí)編制函數(shù)模板和類模板。二、實(shí)驗(yàn)內(nèi)容編寫一個(gè)程序,使用類模板對(duì)數(shù)組進(jìn)行排序、查找和求元素和的程序。要求:設(shè)計(jì)一個(gè)類模板template<classT>classArray,用于對(duì)T類型的數(shù)組進(jìn)行排序、查找和求元素和,然后由此產(chǎn)生模板類Array<int>和Array<double>。源程序代碼:#include<iostream>#include<iomanip>usingnamespacestd;template<classT>classArray{ T*set; intn; public: Array(T*data,inti){set=data;n=i;}; ~Array(){}; voidsort();//排序 intseek(Tkey);//查找指定的元素 TSUM();//求和 voiddisp();//顯示所有的元素};template<classT>voidArray<T>::sort(){ inti,j; Ttemp; for(i=1;i<n;i++) for(j=n-1;j>=i;j--) if(set[j-1]>set[j]) { temp=set[j-1];set[j-1]=set[j];set[j]=temp; }}template<classT>intArray<T>::seek(Tkey){ inti; for(i=0;i<n;i++) if(set[i]==key)returni; return-1;}template<classT>TArray<T>::SUM(){ Ts=o; inti; for(i=0;i<n;i++) s+=set[i]; returns;}template<classT>voidArray<T>::disp(){ inti; for(i=0;i<n;i++) cout<<set[i]<<""; cout<<endl;}voidmain(){ inta[]={6,3,8,1,9,4,7,5,2}; doubleb[]={2.3,6.1,1.5,8.4,6.7,3.8}; Array<int>arr1(a,9); Array<double>arr2(b,6); cout<<"arr1"<<endl; cout<<"原序列"; arr1.disp(); cout<<"8在arr1中的位置:"<<arr1.seek(8)<<endl; arr1.sort(); cout<<"排序后:"; arr1.disp(); cout<<"arr2"<<endl; cout<<"原序列"; arr2.disp(); cout<<"8.4在arr2中的位置:"<<arr2.seek(8.4)<<endl; arr2.sort(); cout<<"排序后:"; arr2.disp();}三、實(shí)驗(yàn)和要求按要求編寫實(shí)驗(yàn)程序,將實(shí)驗(yàn)程序調(diào)試運(yùn)行,寫出程序的運(yùn)行結(jié)果,并提交實(shí)驗(yàn)報(bào)告,寫出調(diào)試運(yùn)行的分析和體會(huì)。實(shí)驗(yàn)五使用向量一、實(shí)驗(yàn)?zāi)康暮鸵?練習(xí)使用向量解決實(shí)際問(wèn)題。二、實(shí)驗(yàn)內(nèi)容利用向量編寫程序;出圈游戲。假設(shè)有人為n的一個(gè)小組,他們順時(shí)針?lè)较驀蝗?。一開(kāi)始任選一個(gè)正整數(shù)作為報(bào)數(shù)的上限值m,從第一個(gè)人開(kāi)始按順時(shí)針?lè)较蜃詓tar開(kāi)始順序報(bào)數(shù),報(bào)到m時(shí)停止報(bào)數(shù)并出列。如此下去,直到所有人全部出列為止。要求按他們出列的順序輸出他們的名字。源程序代碼:#include<iostream>#include<string>#include<vector>usingnamespacestd;voidfun(vector<string>&rc,unsigned&rm,unsigned&ri){ vector<string>::iteratorp=rc.begin(); unsignedj=1; //報(bào)數(shù) while(j<=rm) { ri++; if(ri>=rc.size()) //到終點(diǎn),返回到第一個(gè)位置計(jì)數(shù) ri=0; j++; } cout<<rc[ri]<<","; rc.erase(p+ri); //刪除出圈人的記錄 if(ri>=rc.size())ri=0;//到終點(diǎn),返回到第一個(gè)位置計(jì)數(shù)}voidmain(){ unsignedlength=0,m,star,i; cout<<"請(qǐng)輸入人數(shù):"; cin>>length; vector<string>c(length); cout<<"請(qǐng)輸入報(bào)數(shù)上限值m(m<=20)"; cin>>m; while(m>20) { cout<<"報(bào)數(shù)上限值太大,請(qǐng)重新輸入:"; cin>>m; } cout<<"從第幾個(gè)人的位置開(kāi)始報(bào)數(shù)(不能大于"<<c.size()<<"):"; cin>>star; while(star>c.size()) { cout<<"開(kāi)始位置大于人數(shù),重新輸入:"; cin>>star; } cout<<"準(zhǔn)備輸入名字"<<endl; for(i=0;i<c.size();i++) { cout<<"第"<<i+1<<"個(gè)人的名字:"; cin>>c[i]; } i=star-1; //計(jì)數(shù)位置初始值 while(c.size()>1) { fun(c,m,i); } cout<<c[i]<<endl;}三、實(shí)驗(yàn)和要求按要求編寫實(shí)驗(yàn)程序,將實(shí)驗(yàn)程序調(diào)試運(yùn)行,假設(shè)參加游戲的人數(shù)為5人,間隔數(shù)選10,從第三個(gè)人的位置開(kāi)始報(bào)數(shù),5個(gè)人的名字依次為:李紅、王強(qiáng)、李四、王五,寫出程序的運(yùn)行結(jié)果,并提交實(shí)驗(yàn)報(bào)告,寫出調(diào)試運(yùn)行的分析和體會(huì)。實(shí)驗(yàn)六多態(tài)性和虛函數(shù)一、實(shí)驗(yàn)?zāi)康暮鸵?熟悉繼承和包含以及虛函數(shù)的多態(tài)性。二、實(shí)驗(yàn)內(nèi)容 建立工程文件、類在頭文件(employee.h)中聲明、類在源文件(empfun.cpp)實(shí)現(xiàn)、在源文件(sy10_4.cpp)中編寫主程序。程序?qū)崿F(xiàn)的基本功能:小公司人員管理信息。某小公司主要有3類人員:經(jīng)理、兼職技術(shù)人員、兼職銷售員。這些人員分別具有以下屬性。經(jīng)理:姓名、編號(hào)、固定工資、當(dāng)月薪水、計(jì)算月薪、顯示信息;兼職技術(shù)人員:姓名、編號(hào)、工作小時(shí)、每小時(shí)工資額、當(dāng)月薪水、計(jì)算月薪、顯示信息;兼職銷售員:姓名、編號(hào)、銷售額、銷售額提成、當(dāng)月薪水、計(jì)算月薪、顯示信息; 要求: 人員編號(hào)基數(shù)為1000,每輸入一個(gè)人員信息編碼加1;月薪計(jì)算辦法是經(jīng)理固定月薪8000元;兼職技術(shù)人員按100元、小時(shí)領(lǐng)取月薪;兼職銷售員按當(dāng)月銷售額的4%提成。 根據(jù)題目要求,設(shè)計(jì)一個(gè)基數(shù)emplyee,然后派生出technician(兼職技術(shù)人員)類、manager(經(jīng)理)類和salesman(兼職銷售員)類。源程序代碼://employee.h頭文件#include<iostream>#include<string>usingnamespacestd;classemployee//定義職員類{ protected: char*name;//定義姓名 intEmpNo;//個(gè)人編號(hào) doubleSUMPay;//月薪總額 staticintemployeeNo;//本公司職員編號(hào)目前最大值 public: employee(); ~employee(); virtualvoidpay()=0;//計(jì)算月薪函數(shù),解決:虛函數(shù) voiddisplayStatus();//顯示人員信息};classtechnician:publicemployee//兼職技術(shù)人員類(公有派生){ protected: floathourlyRate;//每小時(shí)酬金 intworkHours;//當(dāng)月工作時(shí)數(shù) public: technician(); voidpay();//計(jì)算月薪 voiddisplayStatus();//顯示人員信息};classsalesman:publicemployee//兼職銷售員類(公有派生){ protected: doubleCommRate;//提成百分比 doublesales;//當(dāng)月銷售額 public: salesman(); voidpay();//計(jì)算月薪 voiddisplayStatus();//顯示人員信息};classmanager:virtualpublicemployee//經(jīng)理類(公有派生){ protected: floatmonthlyPay;//固定月薪 public: manager(); voidpay();//計(jì)算月薪 voiddisplayStatus();//顯示人員信息};//empfun.cpp#include<iostream>#include<string>usingnamespacestd;#include"employee.h"intemployee::employeeNo=1000;//員工編號(hào)基數(shù)employee::employee(){ charstr[20]; cout<<"\n輸入雇員姓名"; cin>>str; name=newchar[strlen(str)+1];//動(dòng)態(tài)申請(qǐng) strcpy(name,str); EmpNo=employeeNo++;//新員工編號(hào)自動(dòng)生成 SUMPay=0.0;//月薪總額初始0}employee::~employee(){ delete[]name;//釋放空間}voidemployee::displayStatus(){ cout<<name<<":"<<"編號(hào)"<<EmpNo<<",本月工資"<<SUMPay<<endl;}technician::technician(){ hourlyRate=100;//每小時(shí)酬金100元}voidtechnician::pay(){ cout<<"輸入本月工作時(shí)數(shù):"; cin>>workHours; SUMPay=hourlyRate*workHours;}voidtechnician::displayStatus(){ cout<<"兼職技術(shù)人員:"; employee::displayStatus();}salesman::salesman(){ CommRate=0.04;//提成比例}voidsalesman::pay(){ cout<<"輸入本月銷售額:"; cin>>sales; SUMPay=sales*CommRate;//月薪=銷售提成}voidsalesman::displayStatus(){ cout<<"銷售員:"; employee::displayStatus();}manager::manager(){ monthlyPay=8000;}voidmanager::pay(){ SUMPay=monthlyPay;//月薪總額=固定月薪}voidmanager::displayStatus(){ cout<<"經(jīng)理:"; employee::displayStatus();}//sy10_4.cpp#include<iostream>#include<string>usingnamespacestd;#include"employee.h"voidmain(){ //經(jīng)理 managerm1; m1.pay(); m1.displayStatus(); //兼職技術(shù)人員 techniciant1; t1.pay(); t1.displayStatus(); //兼職銷售員salesmans1; s1.pay(); s1.displayStatus(); cout<<"\n使基類指針指向子類對(duì)象"<<endl; employee*ptr[4]={&m1,&t1,&s1}; for(inti=0;i<3;i++) ptr[i]->displayStatus();}三、實(shí)驗(yàn)和要求按要求編寫實(shí)驗(yàn)程序,將實(shí)驗(yàn)程序調(diào)試運(yùn)行,寫出程序的運(yùn)行結(jié)果,并提交實(shí)驗(yàn)報(bào)告,寫出調(diào)試運(yùn)行的分析和體會(huì)。實(shí)驗(yàn)七缺少一、實(shí)驗(yàn)?zāi)康暮鸵髮?shí)驗(yàn)八文件讀寫一、實(shí)驗(yàn)?zāi)康暮鸵笫煜な褂梦募幕痉椒?。熟悉?biāo)準(zhǔn)流對(duì)象cin和cout的使用方法,掌握系統(tǒng)提供的輸入操作和輸出操作函數(shù)。二、實(shí)驗(yàn)內(nèi)容簡(jiǎn)單通訊錄:編寫一個(gè)簡(jiǎn)單的通訊錄程序,在文件myNote中記錄朋友的姓名、年齡和電話號(hào)碼,允許用戶向其中添加信息,根據(jù)姓名查詢或顯示所有信息。源程序代碼:#include<iostream>#include<s
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年手機(jī)網(wǎng)游行業(yè)市場(chǎng)發(fā)展監(jiān)測(cè)及投資戰(zhàn)略規(guī)劃研究報(bào)告
- 2025年中國(guó)輕型機(jī)械密封行業(yè)市場(chǎng)發(fā)展前景及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 五年級(jí)數(shù)學(xué)(小數(shù)乘除法)計(jì)算題專項(xiàng)練習(xí)及答案
- 2025年鋁壓鑄項(xiàng)目可行性研究報(bào)告
- 2025年中國(guó)抗腫瘤類藥物行業(yè)發(fā)展趨勢(shì)預(yù)測(cè)及投資戰(zhàn)略咨詢報(bào)告
- 戶內(nèi)燃?xì)夤艿雷栽赴惭b協(xié)議書(2篇)
- 房地產(chǎn)信托質(zhì)押合同(2篇)
- 2025年永磁發(fā)電機(jī)項(xiàng)目可行性研究報(bào)告
- 2025年夾紙筆行業(yè)深度研究分析報(bào)告
- 2024年橡膠漆項(xiàng)目調(diào)研分析報(bào)告
- 2024公路瀝青路面結(jié)構(gòu)內(nèi)部狀況三維探地雷達(dá)快速檢測(cè)規(guī)程
- 2024年高考真題-地理(河北卷) 含答案
- 2024風(fēng)力發(fā)電葉片維保作業(yè)技術(shù)規(guī)范
- 《思想道德與法治》課程教學(xué)大綱
- 2024光儲(chǔ)充一體化系統(tǒng)解決方案
- 處理后事授權(quán)委托書
- 食材配送服務(wù)方案投標(biāo)方案(技術(shù)方案)
- 封條(標(biāo)準(zhǔn)A4打印封條)
- 2024年北京控股集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
- 延遲交稿申請(qǐng)英文
- 石油天然氣建設(shè)工程交工技術(shù)文件編制規(guī)范(SYT68822023年)交工技術(shù)文件表格儀表自動(dòng)化安裝工程
評(píng)論
0/150
提交評(píng)論