第三章第四章習(xí)題答案_第1頁
第三章第四章習(xí)題答案_第2頁
第三章第四章習(xí)題答案_第3頁
第三章第四章習(xí)題答案_第4頁
第三章第四章習(xí)題答案_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第三章習(xí)題答案一、填空題1.類組員包含兩類組員,一類是代表對(duì)象屬性_數(shù)據(jù)組員_,另一類是實(shí)現(xiàn)對(duì)象行為___組員函數(shù)____。2.C++對(duì)類組員提供了_public(公有類型)、private(私有類型)和protected(保護(hù)類型)三種不一樣訪問權(quán)限。3.C++中,___main___是主函數(shù)名,一個(gè)項(xiàng)目中___一個(gè)___名為main函數(shù),它表示程序執(zhí)行___開始點(diǎn)__。4.在C++中,結(jié)構(gòu)函數(shù)名字必須與____類名___相同,它能夠有任意類型__參數(shù)__,但沒有_返回值類型__,也不能指定為_void_類型。定義對(duì)象時(shí),系統(tǒng)會(huì)_自動(dòng)__調(diào)用結(jié)構(gòu)函數(shù)。5.在C++中,析構(gòu)函數(shù)名字必須由_~__和_類名_組成,它沒有_參數(shù)_,也沒有_返回值_,也不能_被重載_。6.在C++中,函數(shù)參數(shù)傳遞有___三種_方式,即__值傳遞__、_指針傳遞__和_引用傳遞_。7.對(duì)象數(shù)組是指每一數(shù)組元素都是___對(duì)象_數(shù)組。對(duì)象數(shù)組元素不但具備___數(shù)據(jù)組員__,而且具備__組員函數(shù)__。二、判斷正誤1.若沒有明確申明,則類中組員訪問權(quán)限為protected。(X)2.類中任何組員函數(shù)都能夠被定義為內(nèi)聯(lián)函數(shù)。(X)3.結(jié)構(gòu)函數(shù)必須定義,不能默認(rèn)。(X)4.在類中定義函數(shù)默認(rèn)為內(nèi)聯(lián)函數(shù)。(√)5.申明為protected類組員,只能被它所在類及從該類派生子類組員函數(shù)及友元函數(shù)訪問。(√)6.在申明類同時(shí),不能直接定義對(duì)象。(X)7.對(duì)象數(shù)組元素是對(duì)象,但只能有數(shù)據(jù)組員。(X)8.C++語言中,函數(shù)參數(shù)和返回值傳遞方式只有值傳遞和引用傳遞兩種。(X)9.拷貝結(jié)構(gòu)函數(shù)形參只能是本類對(duì)象引用。(√)三、選擇題1.下面關(guān)于重載函數(shù)說法中正確是(D)。A.重載函數(shù)必須具備不一樣返回類型B.重載函數(shù)參數(shù)個(gè)數(shù)必須不一樣C.重載函數(shù)參數(shù)名稱必須不一樣D.重載函數(shù)必須有不一樣參數(shù)列表2.關(guān)于參數(shù)默認(rèn)值描述正確是(D)。A.要設(shè)置參數(shù)默認(rèn)值,就必須全部設(shè)置B.參數(shù)設(shè)置默認(rèn)值后,調(diào)用函數(shù)時(shí)不能再對(duì)參數(shù)賦值C.參數(shù)默認(rèn)值設(shè)置,能夠任意設(shè)置D.參數(shù)默認(rèn)值設(shè)置,只能在函數(shù)申明時(shí)設(shè)置。3.關(guān)于結(jié)構(gòu)函數(shù),下面說法正確是(A)。A.結(jié)構(gòu)函數(shù)沒有返回類型B.結(jié)構(gòu)函數(shù)名字能夠與類名不一樣C.結(jié)構(gòu)函數(shù)不能重載D.結(jié)構(gòu)函數(shù)只能在類外定義4.(D)不是結(jié)構(gòu)函數(shù)特征。A.結(jié)構(gòu)函數(shù)函數(shù)名與類名相同B.結(jié)構(gòu)函數(shù)能夠重載C.結(jié)構(gòu)函數(shù)能夠設(shè)置缺省參數(shù)D.結(jié)構(gòu)函數(shù)必須指定類型說明5.關(guān)于析構(gòu)函數(shù),下面說法正確是(B)。A.析構(gòu)函數(shù)能夠重載B.析構(gòu)函數(shù)不能指定返回類型C.析構(gòu)函數(shù)名字與類名相同D.析構(gòu)函數(shù)能夠定義在私有部分6.通??截惤Y(jié)構(gòu)函數(shù)參數(shù)是(C)A.某個(gè)對(duì)象名B.某個(gè)對(duì)象組員名C.某個(gè)對(duì)象引用名D.某個(gè)對(duì)象指針名7.關(guān)于組員函數(shù)特征,下屬描述中,(A)是錯(cuò)誤。A.組員函數(shù)一定是內(nèi)聯(lián)函數(shù)B.組員函數(shù)能夠重載C.組員函數(shù)能夠設(shè)置參數(shù)缺省值D.組員函數(shù)能夠是靜態(tài)8.Student是已定義一個(gè)類,那么執(zhí)行語句“Studentstu1,stu2(3),*stu3,*stu4;”,調(diào)用了(B)次結(jié)構(gòu)函數(shù)。A.1B.2C.3D.49.“voidpoint(Student&s);”是某類中一個(gè)組員函數(shù)申明,Student&s含義為(B)。A.將s地址賦給變量B.s是類Student對(duì)象引用,用來作為point()形參C.指向類Student指針為sD.&s是類Student對(duì)象,用來作為point()形參四、改錯(cuò)題,請(qǐng)指出下面程序中錯(cuò)誤代碼,并說犯錯(cuò)誤原因和改錯(cuò)方法。1.classDate{private: intyear,month,day;public: Date(inty,intm,intd); voidPrint(Timet);};classTime{private: inthour,minute,second;public: Time(inth,intm,ints); friendvoidDate::Print(Timet);};應(yīng)在classDate語句前面加入語句classTime;表示向前引用。因?yàn)橛言瘮?shù)Print使用了Time類對(duì)象作為參數(shù),而類Time要在類Date后面才進(jìn)行申明。2.#include<iostream>usingnamespacestd;classBase { protected: intx; public: Base(intm){x=m;} };voidmian() { Basea(10); cout<<a.x<<endl; }cout<<a.x<<endl;語句有錯(cuò)。因?yàn)閿?shù)據(jù)組員x是受保護(hù)數(shù)據(jù)組員,所以不能被類Base對(duì)象a訪問。改錯(cuò)方法有兩種(任選一個(gè)):1)去掉cout<<a.x<<endl;語句;2)修改語句protected:為public:。3.#include"stdafx.h"#include"iostream"usingnamespacestd;classClock{ inthour,minute,second;public: voidSetTime(inth=0,intm=0,ints=0); voidShowTime();};intmain(){ Clockclock; cout<<"Firsttimesetandoutput:"<<endl; clock.SetTime(); clock.ShowTime(); cout<<"Secondtimesetandoutput:"<<endl; clock.SetTime(10,10,10); clock.ShowTime();clock.hour=12; return0;}voidClock::SetTime(inth,intm,ints){ hour=h; minute=m; second=s;}voidClock::ShowTime(){ cout<<hour<<":"<<minute<<":"<<second<<endl;}clock.hour=12;語句有錯(cuò)。因?yàn)閿?shù)據(jù)組員hour是私有組員,所以不能被Clock類對(duì)象clock訪問。改過方法:去掉語句clock.hour=12;4.#include"stdafx.h"#include<iostream>usingnamespacestd;classCube{public:Cube(int=10,int,int=10);intvolume();private:intheight;intwidth;intlength;};Cube::Cube(inth,intw,intlen){height=h;width=w;length=len;}intCube::volume(){return(height*width*length);}Cube(int=10,int,int=10);語句有錯(cuò)。因?yàn)閷?duì)一個(gè)函數(shù)參數(shù)設(shè)置默認(rèn)值時(shí),全部給默認(rèn)值參數(shù)都必須在不給默認(rèn)值參數(shù)右面。改錯(cuò)方法有兩種(任選一個(gè)):1)Cube(int=10,int,int=10);改為Cube(int,int,int=10);;2)Cube(int=10,int,int=10);改為Cube(int=10,int=10,int=10);五、寫出下面程序運(yùn)行結(jié)果1.#include"stdafx.h"#include"iostream"usingnamespacestd;classPoint{intx,y;public: Point(intxx=0,intyy=0) { x=xx; y=yy; } Point(Point&p) { x=p.x; y=p.y; cout<<"拷貝結(jié)構(gòu)函數(shù)被調(diào)用"<<endl; } intGetx() {returnx;} intGety() {returny;}};voidfun1(Pointp){ cout<<p.Getx()<<endl;}Pointfun2(){ Pointa(3,4); returna;}intmain(){ Pointa(7,8); cout<<a.Getx()<<endl; Pointb(a); cout<<b.Getx()<<endl; fun1(b); b=fun2(); cout<<b.Getx()<<endl; return0;}運(yùn)行結(jié)果為:7拷貝結(jié)構(gòu)函數(shù)被調(diào)用7拷貝結(jié)構(gòu)函數(shù)被調(diào)用7拷貝結(jié)構(gòu)函數(shù)被調(diào)用32.#include"stdafx.h"#include"iostream"usingnamespacestd;classPoint{intx,y;public: Point(inta,intb) { x=a; y=b; }voidPrint(){ cout<<"("<<x<<","<<y<<")"<<endl;}};intmain(){ Pointa[3]={Point(1,1),Point(2,2),Point(3,3)}; inti; for(i=0;i<3;i++) a[i].Print();return0;}運(yùn)行結(jié)果為:(1,1)(2,2)(3,3)3.#include"stdafx.h"#include"iostream"usingnamespacestd;classCexample{inti;public: Cexample(intn); Cexample(Cexample&b); ~Cexample(); intGet();};intadd(Cexamplea);intmain(){ Cexamplex(12); cout<<x.Get()<<endl; cout<<add(x)<<endl;return0;}Cexample::Cexample(intn){i=n; cout<<"Constructing"<<endl;}Cexample::Cexample(Cexample&b){ i=b.i; cout<<"Copyconstructing"<<endl;}Cexample::~Cexample(){ cout<<"Destructing"<<endl;}intCexample::Get(){ returni;}intadd(Cexamplea){ returna.Get()*a.Get();}運(yùn)行結(jié)果為:Constructing12CopyconstructingDestructing144Destructing六、編程題1.設(shè)計(jì)一個(gè)名為Rectangle矩形類,其屬性為矩形左上角和右下角兩個(gè)點(diǎn)坐標(biāo),能計(jì)算和輸出矩形周長(zhǎng)和面積。#include"stdafx.h"#include"iostream"usingnamespacestd;structPoint{ inta; intb;};classRectangle{PointtopLeft;PointbottomRight;public: Rectangle(Pointa,Pointb); intArea(); intSideLength();};intmain(){ Pointm,n; m.a=3; m.b=4; n.a=12; n.b=10; Rectanglerect(m,n); cout<<"矩形面積為:"<<rect.Area()<<endl; cout<<"矩形周長(zhǎng)為:"<<rect.SideLength()<<endl;return0;}Rectangle::Rectangle(Pointa,Pointb){topLeft=a; bottomRight=b;}intRectangle::Area(){ intx=bottomRight.a-topLeft.a; inty=bottomRight.b-topLeft.b;returnx*y;}intRectangle::SideLength(){ intx=bottomRight.a-topLeft.a; inty=bottomRight.b-topLeft.b;return2*(x+y);}2.申明一個(gè)datatype類,能處理包含字符型、整型和浮點(diǎn)型三種類型數(shù)據(jù),給出其結(jié)構(gòu)函數(shù)。#include"stdafx.h"classdatatype{ charx; inty; doublez;public: datatype(charx1); datatype(inty1); datatype(doublez1);};datatype::datatype(charx1){ x=x1;}datatype::datatype(inty1){ y=y1;}datatype::datatype(doublez1):z(z1){}int_tmain(intargc,_TCHAR*argv[]){ return0;}3.一矩形體育場(chǎng)以下列圖所表示,現(xiàn)在需在其周圍建一矩形過道,并在四面圍安上柵欄。柵欄價(jià)格為50/米,過道造價(jià)為240元/平方米。過道寬為3米,體育場(chǎng)長(zhǎng)寬由鍵盤輸入。請(qǐng)編寫程序計(jì)算并輸出過道和柵欄造價(jià)。#include"stdafx.h"#include"iostream"usingnamespacestd;classRectangle{ doublelength; doublewidth;public: Rectangle(doubleLength=10.,doubleWidth=5.); doubleArea(); doubleSideLength();};intmain(){ inta=50,b=240; doublex,y; cout<<"請(qǐng)輸入矩形長(zhǎng)和寬:"; cin>>x>>y; cout<<endl; Rectanglerect1(x,y),rect2(x+3,y+3); cout<<"柵欄長(zhǎng)度為:"<<rect2.SideLength()<<",造價(jià)為:"<<rect2.SideLength()*a<<endl;doublearea12; area12=rect2.Area()-rect1.Area(); cout<<"過道面積為:"<<area12<<",造價(jià)為:"<<area12*b<<endl; return0;}Rectangle::Rectangle(doubleLength,doubleWidth){ length=Length; width=Width;}doubleRectangle::Area(){ returnlength*width;}doubleRectangle::SideLength(){ return2*(length+width);}4.定義一個(gè)員工類,員工信息由編號(hào)、姓名、性別、年紀(jì)、職務(wù)、職稱、崗位、薪酬等組成,要求利用隊(duì)列實(shí)現(xiàn)員工增加、刪除和輸出等功效。#include"stdafx.h"#include"iomanip"#include"iostream"usingnamespacestd;#defineMAXSIZE5000structEmployees{longno;//編號(hào) charname[10];//姓名 charsex[3];//性別 intage;//年紀(jì) charpositions[20];//職務(wù) charprofessionalTitles[20];//職稱 charjobs[20];//崗位 floatremuneration;//薪酬};classEmployees_c{private: EmployeesEmployees_struct[MAXSIZE]; inttotal;public: Employees_c(); intInsert_seq(inti,Employeesx);//插入第i員工信息 intDelete_seq(inti);//刪除第i個(gè)員工信息 voidPrint_seq();//打印全部員工信息};voidmenu();intmain(){ Employees_cEmployees_Object; intn; boolm=true; while(m) { menu(); cin>>n; switch(n) { case1: { inti; Employeesx; cout<<"請(qǐng)輸入插入位置:"; cin>>i; cout<<"請(qǐng)輸入員工編號(hào)、姓名、性別、年紀(jì)、"<<"職務(wù)、職稱、崗位和薪酬:"<<endl; cin>>x.no>>>>x.sex>>x.age>>x.positions>>fessionalTitles>>>>x.remuneration; Employees_Object.Insert_seq(i,x); cout<<"插入后情況:"<<endl; Employees_Object.Print_seq(); break; } case2: { inti; cout<<"請(qǐng)輸入刪除位置:; cin>>i; Employees_Object.Delete_seq(i); cout<<"刪除后情況:"<<endl; Employees_Object.Print_seq(); break; } case0:m=false; } } return0;}voidmenu(){ cout<<endl; cout<<"1.插入"<<endl; cout<<"2.刪除"<<endl; cout<<"0.退出"<<endl; cout<<endl; cout<<"請(qǐng)選擇:";}Employees_c::Employees_c(){total=0;}intEmployees_c::Insert_seq(inti,Employeesx){ intj; if(total==MAXSIZE) { cout<<"tableisfull"<<endl; return-1; } if(i<1||i>(total+1)) { cout<<"placeiswrong!"<<endl; return0; }for(j=total-1;j>=i-1;j--) { Employees_struct[j+1]=Employees_struct[j]; }Employees_struct[i-1]=x; ++total; return1;}intEmployees_c::Delete_seq(inti){ intj; if(i<1||i>total) { cout<<"thiselementdon'texist!"<<endl; return-1; } for(j=i;j<=total-1;j++) { Employees_struct[j-1]=Employees_struct[j]; } --total; return1;}voidEmployees_c::Print_seq(){ inti; for(i=0;i<=total-1;i++) { cout<<Employees_struct[i].no<<setw(10)<<Employees_struct[i].name<<setw(10)<<Employees_struct[i].sex<<setw(10)<<Employees_struct[i].age <<setw(10)<<Employees_struct[i].positions<<setw(10)<<Employees_struct[i].professionalTitles <<setw(10)<<Employees_struct[i].jobs<<setw(10)<<Employees_struct[i].remuneration<<endl; } cout<<endl;}5.設(shè)計(jì)一個(gè)復(fù)數(shù)類,要求對(duì)其結(jié)構(gòu)函數(shù)進(jìn)行重載。#include"stdafx.h"classComplex{ doublereal,imag;public: Complex(); Complex(doublereal1); Complex(doublereal1,doubleimag1);};Complex::Complex(){ real=0.; imag=0.;}Complex::Complex(doublereal1){ real=real1; imag=0.;}Complex::Complex(doublereal1,doubleimag1){ real=real1; imag=imag1;}

第四章習(xí)題答案一、填空題1.靜態(tài)數(shù)據(jù)組員是一個(gè)_特殊_數(shù)據(jù)組員類型,它定義以關(guān)鍵字_static_開頭。2.靜態(tài)數(shù)據(jù)組員不能在類_結(jié)構(gòu)函數(shù)_中初始化,也不可在類_體內(nèi)_進(jìn)行賦初值,它初始化工作只能在_類外_進(jìn)行,而且在_對(duì)象生成_之前進(jìn)行。3.靜態(tài)組員函數(shù)是_類_一部分,而不是_對(duì)象_一部分。假如要在類外調(diào)用公用靜態(tài)組員函數(shù),要使用_類名和域運(yùn)算符”::”_。4.類友元是一個(gè)定義在_該類_外部或者普通函數(shù)或者另一個(gè)類組員函數(shù)或者另一個(gè)類,但需要在該_類體內(nèi)_進(jìn)行說明,在說明時(shí)前面需加關(guān)鍵字_friend_。5.類友元雖不是該類組員函數(shù),不過能夠訪問該類_私有_組員。當(dāng)友元是一個(gè)函數(shù)時(shí),我們稱該函數(shù)為_友元函數(shù)_;當(dāng)友元是一個(gè)類時(shí),我們稱該類為_友元類_。6.按生存期不一樣,對(duì)象可分為__局部對(duì)象_、_靜態(tài)對(duì)象_、__全局對(duì)象_和_動(dòng)態(tài)對(duì)象_四種。7.常量對(duì)象特點(diǎn)是它數(shù)據(jù)組員_值_在對(duì)象整個(gè)生存期內(nèi)都不能被__修改_。8.const與_指針_配合使用有兩種方式:一個(gè)是用const修飾指針指向變量,稱為_指向常量指針_;另一個(gè)是用const修飾指針,稱為_常量指針_。二、判斷正誤1.類中靜態(tài)數(shù)據(jù)組員能夠采取結(jié)構(gòu)函數(shù)進(jìn)行初始化。(X)2.假如某個(gè)對(duì)象在其生命周期內(nèi)不能被修改,那么將這個(gè)對(duì)象定義為const對(duì)象。(√)3.靜態(tài)數(shù)據(jù)組員初始化在類體外進(jìn)行,而且前面必須加static。(X)4.靜態(tài)組員函數(shù)能夠在類內(nèi)定義,也能夠在類外定義。在類外定義時(shí),和普通組員函數(shù)不一樣是要使用static前綴。(X)5.按生存期不一樣,對(duì)象只可分為局部對(duì)象、靜態(tài)對(duì)象和全局對(duì)象三種。(X)6.常量數(shù)據(jù)組員初始化只能經(jīng)過結(jié)構(gòu)函數(shù)初始化列表進(jìn)行。(√)三、選擇題1.下述靜態(tài)數(shù)據(jù)組員特征中,(D)是錯(cuò)誤。A.說明靜態(tài)數(shù)據(jù)組員時(shí),前面要加修飾符staticB.靜態(tài)數(shù)據(jù)組員要在類體外進(jìn)行初始化C.引用靜態(tài)數(shù)據(jù)組員時(shí),要在靜態(tài)數(shù)據(jù)組員名前加<類名>和作用域運(yùn)算符D.靜態(tài)數(shù)據(jù)組員不是全部對(duì)象所共用2.友元作用是(A)。A.提升程序運(yùn)行效率B.加強(qiáng)類封裝性C.實(shí)現(xiàn)數(shù)據(jù)隱藏性D.增加組員函數(shù)種類3.下面關(guān)于友元函數(shù)描述中,正確說法是(A)。A.友元函數(shù)是獨(dú)立于當(dāng)前類外部函數(shù)B.一個(gè)友元函數(shù)不能同時(shí)定義為多個(gè)類友元函數(shù)C.友元函數(shù)必須在類外部定義D.在外部定義友元函數(shù)時(shí),必須加關(guān)鍵字friend4.關(guān)于靜態(tài)數(shù)據(jù)組員,下面敘述錯(cuò)誤是(A)。A.靜態(tài)數(shù)據(jù)組員在對(duì)象調(diào)用析構(gòu)函數(shù)后,從內(nèi)存中撤消B.即使沒有實(shí)例化類,靜態(tài)數(shù)據(jù)組員也能夠經(jīng)過類名進(jìn)行訪問C.類靜態(tài)數(shù)據(jù)組員為該類全部對(duì)象所共享D.類靜態(tài)數(shù)據(jù)組員需要初始化5.關(guān)于靜態(tài)組員,下面敘述錯(cuò)誤是(B)。A.類外部能夠直接調(diào)用類靜態(tài)數(shù)據(jù)組員和組員函數(shù)B.與通常組員一樣,只有經(jīng)過對(duì)象才能訪問類靜態(tài)組員C.類靜態(tài)數(shù)據(jù)組員不能在結(jié)構(gòu)函數(shù)中初始化D.類通常組員函數(shù)能夠調(diào)用類靜態(tài)組員6.靜態(tài)組員為該類全部(B)共享。A.組員B.對(duì)象C.this指針D.友元7.下面定義中,(B)是非法。A.intI;B.constintI;C.constint*p;D.int*constp=&I四、改錯(cuò)題,請(qǐng)指出下面程序中錯(cuò)誤代碼,并說犯錯(cuò)誤原因和改錯(cuò)方法。1.classBasic{inta;staticb;public:staticvoidOutput(){cout<<a<<endl;cout<<b<<endl;}};staticb;錯(cuò)誤,原因是沒有指定b數(shù)據(jù)類型。應(yīng)改為staticintb;2.#include"stdafx.h"#include<iostream>usingnamespacestd;classP{public:P(inta,intb) {x=a;y=b;}staticvoidf(Pm);private:intx;staticinty;};voidP::f(Pm){cout<<"x="<<m.x<<endl;cout<<"y="<<y<<endl;}intP::y=0;intp::x=1;intp::x=1;錯(cuò)誤。原因是x不是靜態(tài)數(shù)據(jù)組員,不能在類外初始化。改錯(cuò)方法:去掉intp::x=1;3.#include"stdafx.h"#include"iostream"usingnamespacestd;classRectangle{intw,h;public:intgetValue1()const;intgetValue();Rectangle(){}Rectangle(intx,inty);};voidmain(){Rectangleconsta(3,4); cout<<a.getValue()<<endl; cout<<a.getValue1()<<endl;}intRectangle::getValue1()const{returnw*h;}intRectangle::getValue(){returnw+h;}Rectangle::Rectangle(intx,inty){w=x;h=y;}cout<<a.getValue()<<endl;語句錯(cuò)。原因是常量對(duì)象不能調(diào)用非常量組員函數(shù)。改錯(cuò)方法:去掉cout<<a.getValue()<<endl;五、寫出下面程序運(yùn)行結(jié)果1.#include"stdafx.h"#include"iostream"usingnamespacestd;classCount{staticintcount;public: Count() { count++; } staticintGet() { returncount; } ~Count() { count--; }};intCount::count=1000;intmain(){Countd1,d2,d3,d4; cout<<Count::Get()<<endl; return0;}10042.#include"stdafx.h"#include"iostream"usingnamespacestd;classSet{ intelems[100]; intPc;public: Set() { Pc=0; } Set(Set&b); voidEmpty() { Pc=0; } intIsEmpty() { returnPc==0; } intIsMemberOf(intn); intAdd(intn); voidPrint(); friendvoidreverse(Set*m);};intSet::IsMemberOf(intn){ for(inti=0;i<Pc;i++) if(elems[i]==n) return1; return0;}intSet::Add(intn){ if(IsMemberOf(n)) return1; else if(Pc>=100) return0; else { elems[Pc++]=n; return1; }}Set::Set(Set&b){ Pc=b.Pc; for(inti=0;i<Pc;i++) elems[i]=b.elems[i];}voidSet::Print(){cout<<"("; for(inti=0;i<Pc-1;i++) cout<<elems[i]<<","; if(Pc>0) cout<<elems[Pc-1]; cout<<")"<<endl;}voidreverse(Set*m){ intn=m->Pc/2; for(inti=0;i<n;i++) { inttemp; temp=m->elems[i]; m->elems[i]=m->elems[m->Pc-i-1]; m->elems[m->Pc-i-1]=temp; }}intmain(){ SetA; cout<<A.IsEmpty()<<endl; A.Print(); SetB; for(inti=1;i<=8;i++) B.Add(i); B.Print(); cout<<B.IsMemberOf(5)<<endl; B.Empty();for(intj=11;j<20;j++) B.Add(j); SetC(B); C.Print(); reverse(&C); C.Print(); return0;}1()(1,2,3,4,5,6,7,8)1(11,12,13,14,15,16,17,18,19)(19,18,17,16,15,14,13,12,11)六、編程題1.(1)建立一個(gè)類,該類具備const和非const組員函數(shù)。(2)創(chuàng)建這個(gè)類const和非const對(duì)象,并用不一樣類型對(duì)象調(diào)用不一樣類型組員函數(shù)。#include"stdafx.h"#include<iostream>usingnamespacestd;classA{public: voidpoint(); voidoutput()const;};int_tmain(intargc,_TCHAR*argv[]){ Aconsta1; Aa2; a1.output(); a2.output(); a2.point(); return0;}voidA::point(){ cout<<"point"<<endl;}voidA::output()const{ cout<<"output"<<endl;}2.編寫一個(gè)類,統(tǒng)計(jì)現(xiàn)在存在多少個(gè)該類對(duì)象。#include"stdafx.h"#include<iostream>usingnamespacestd;classA{ staticinttotal;public: A() { total++; cout<<"當(dāng)前類對(duì)象總數(shù)為:"<<total<<endl; }~A(){ total--; cout<<"當(dāng)前類對(duì)象總數(shù)為"<<total<<endl;}};voidf(){ Aaa,bb,cc;}intA::total=0;int_tmain(intargc,_TCHAR*argv[]){ Aa1,a2,a3; f(); Ab1,b2,b3; return0;}3.編寫一個(gè)學(xué)生類,學(xué)生信息包含姓名、學(xué)號(hào)、年紀(jì)、性別和成績(jī);統(tǒng)計(jì)學(xué)生總?cè)藬?shù)及總成績(jī),并輸出。#include"stdafx.h"#include<iostream>usingnamespacestd;classStudent{ intno; charname[10]; charsex[3]; intage; doublescore; staticinttotalNumber; staticdoubletotalScore;public: Student(intno_,char*name_,char*sex_,intage_,doublescore_); staticvoidOutput(); voidStudentInformation();};intStudent::totalNumber=0;doubleStudent::totalScore=0;int_tmain(intargc,_TCHAR*argv[]){ Studentstu1(1001,"張三","男",18,97.5); stu1.StudentInformation(); Studentstu2(1002,"李四","女",19,83.); stu2.StudentInformation(); Studentstu3(1003,"王五","男",17,93.); stu3.StudentInformation(); Studentstu4(1004,"郭六","女",20,62.5); stu4.StudentInformation(); Studentstu5(1005,"任七","男",18,77.); stu5.StudentInformation(); Student::Output(); return0;}Student::Student(intno_,char*name_,char*sex_,intage_,doublescore_){ no=no_; strcpy(name,name_); strcpy(sex,sex_); age=age_; score=score_; totalNumber++; totalScore+=score;}voidStudent::StudentInformation(){ cout<<"學(xué)號(hào):"<<no<<""<<"姓名:"<<name<<""<<"性別:"<<sex<<""<<"年紀(jì):"<<age<<""<<"成績(jī):"<<score<<endl;}voidStudent::Output(){ cout<<"學(xué)生總數(shù):"<<totalNumber<<""<<"總成績(jī):"<<totalScore<<""<<"平均成績(jī):"<<totalScore/totalNumber<<endl;}4.編寫一個(gè)學(xué)生類,(1)輸出每個(gè)學(xué)生姓名、學(xué)號(hào)、成績(jī);(2)統(tǒng)計(jì)并輸出學(xué)生總?cè)藬?shù)、總成績(jī)、平均成績(jī)、最高成績(jī)、最低成績(jī)。#include"stdafx.h"#include<iostream>usingnamespacestd;classStudent{ intno; charname[10]; doublescore; staticinttotalNumber; staticdoubletotalScore; staticdoublelowestScore; staticdoublehighestScore

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論