


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
《面向?qū)ο蟪绦蛟O(shè)計》綜合復習題集一、程序填充已知一個類的定義如下:#include<iostream.h>classAA{intintn;public:voidSetA(intaa[],intnn);//用數(shù)組aa初始化數(shù)據(jù)成員a,//用nn初始化數(shù)據(jù)成員nintMaxA();//從數(shù)組a中前n個元素中查找最大值voidSortA();//采用選擇排序的方法對數(shù)組a中前n個元素//進行從小到大排序voidPrintA();//依次輸出數(shù)組a中的前n個元素,//最后輸出一個換行};使用該類的主函數(shù)如下:voidmain(){inta[10]={23,78,46,55,62,76,90,25,38,42}; AAx ;x.SetA(a,8);int m _m=x.MaxA() ;x.PrintA();cout<<m<<endl;}90(1) (2) (3)classAchar*a;public:A(){a=NULL;} aA(char*aa){a=_newchar[strlen(aa)];strcpy(a,aa);//用aa所指字符串初始化a所指向的動態(tài)存儲空間}~A(){delete[]a;}//定義析構(gòu)函數(shù),刪除a所指向的動態(tài)存儲空間};(1) (2) (3)33.classA{inta,b;public:A(intaa=0,intbb=0){a=aa;b=bb;}//分別用aa和bb對應初始化a和b};main(){Ax(5),y(x);//定義類A的對象x并用5初始化,同時定義y并用x初始化A*p=&x;//定義p指針,使之指向?qū)ο髕}(1) (2) (3)classA{inta,b;public: (1) A_(intaa=0,intbb=0)定義構(gòu)造函數(shù),使參數(shù)aa和bb的默認值為A=aa;b=bb; 在函數(shù)體中用aa初始化a,用bb初始化b};main(){A*p1,*p2; (2)p1=newA(); ;p1 (3)_p2=newA(4,5) ;p2ab45}(1) (2) (3)#include<iostream.h>#include<stdlib.h>classA{int*a;intn;intMaxLen;public:A():a(0),n(0),MaxLen(0){}A(int*aa,intnn,intMM){n=nn;MaxLen=MM;if(n>MaxLen) (1)_a=newint[MaxLen] ;a指向長度為MaxLenfor(inti=0;i<n;i++)a[i]=aa[i];}~A(){delete[]a;}intGetValue(inti) (2) a[i]的值};voidmain(){intb[10]={1,2,3,4,5,6,7,8,9,10};Ar(b,10,10);inti,s=0;for(i=0;i<10;i++); (3) ra//元素值依次累加到s中cout<<"s="<<s<<endl;}(1) (2) (3)#include<iostream.h>#include<stdlib.h>classA{int*a;intn;intMaxLen;public:A():a(0),n(0),MaxLen(0){}A(int*aa,intnn,intMM){n=nn;MaxLen=MM;if(n>MaxLen)exit(1);a=newint[MaxLen]; (1) ;iaa//傳送給a數(shù)組的對應元素中}~A();intGetValue(inti){returna[i];}//函數(shù)體返回a[i]的值}; (2)
//析構(gòu)函數(shù)的類外定義voidmain(){intb[10]={1,2,3,4,5,6,7,8,9,10};Ar(b,10,10);inti,s=0; (3) ;ir對象的a//每個元素值依次累加到s中cout<<"s="<<s<<endl;}(1) (2) (3)classGoods{private:chargd_name[20]; 商品名稱intweight; 商品重量staticinttotalweight; 同類商品總重public:Goods(char*str,intw){ strcpy(gd_name,str);weight=w;totalweight+=weight;}~Goods(){totalweight-=weight;}char*GetN(){ (1) ;}intGetW(){returnweight;} (2)
GetTotal_Weight(){//定義靜態(tài)成員函數(shù)返回總重量 (3) ;}}(1) (2) (3)7.classPoint{private:intx,public:Point(){x=y=0;}Point(intx0,inty0)intGetX(){returnx;}intGetY(){returny;}voidPrint(){cout<<"Point("<<x<<","<<y<<")"<<endl;} (1) ;友元函數(shù)聲明 (2) ;友元函數(shù)聲明};Pointoperator+(Point&pt,intdd)//加號操作符重載函數(shù),實現(xiàn)Point類對象與整數(shù)加法{Pointtemp=pt;temp.x+=dd;temp.y+=dd;returntemp;}Pointoperator+(Point&pt1,Point&pt2)//加號操作符重載函數(shù),實現(xiàn)兩個Point類對象的加法{Pointtemp=pt1;temp.x+=pt2.x; (3) ;return}(1) (2) (3)Derived類是由直接基類Base1和Base2類包含有兩個間接基類BaseBase,在初始化函數(shù)Init中,需要把x1x2于基類Base1xBase2xclassBaseBase{protected:intx;public:BaseBase(){x=1;}};classBase1:publicBaseBase{public:Base1(){}};classBase2:publicBaseBase{public:Base2(){}};classDerived: (1) {public:Derived(){}voidInit(intx1,intx2){ (2) ; (3) ;}voidoutput(){cout<<Base1::x<<''<<Base2::x<<endl;}};(1) (2) (3)在下面一段類定義中,Derived類公有繼承了基類Base容給出了功能。classBase{private:intmem1,mem2; public:Base(intm1,intm2){mem1=m1;mem2=m2;}voidoutput(){cout<<mem1<<''<<mem2<<'';}//...};classDerived:publicBase{private:intmem3; public://m1m2分別初始化mem1和mem2m3初始化mem3Derived(intm1,intm2,intm3);//輸出mem1,mem2和mem3數(shù)據(jù)成員的值voidoutput(){ (1) ;cout<<mem3<<endl;}//...};Derived::Derived(intm1,intm2,intm3): (2) { (3) (1) (2) (3)在下面一段類的定義中,需要填充的函數(shù)由注釋內(nèi)容給出了功能。classPoint//定義坐標點類{public:intx,y; Point(){x=0;y=0;}Point(intx0,inty0){x=x0;intX(){returnx;}intY(){returny;}voidPrintP(){cout<<"Point:("<<x<<","<<y<<")"<<endl;}};classLine:publicPoint 利用坐標點類定義直線類{private:classPointpt1,pt2; public:Line(Pointpts,Pointpte);doubleDx(){returnpt2.x-pt1.x;}doubleDy(){returnpt2.y-pt1.y;}doubleLength(){returnsqrt( (1) );};voidPrintL();//輸出直線的兩個端點和直線長度};Line::Line(Pointpts,Pointpte) (2) voidLine::PrintL(){cout<<"1st";pt1.PrintP();cout<<"2nd";pt2.PrintP();cout<<"TheLengthofLine:"<< (3) <<endl;}(1) (2) (3)類,摩托車類的基類為自行車類和機動車類,類之間均為公有繼承。classvehicle//車輛類{private:intMaxSpeed;最大車intWeight; 車重public:vehicle(){MaxSpeed=0;Weight=0;};virtualvoidRun(){cout<<"Avehicleisrunning!"<<endl;}};classbicycle: (1) {
//自行車類private:intHeight;//車高public:bicycle(){};voidRun(){cout<<"Abicycleisrunning!"<<endl;}};classmotorcar: (2) {
//機動車類private:intSeatNum;public:motorcar(){};voidRun(){cout<<"Amotorcarisrunning!"<<endl;}};classmotorcycle: (3) {
//摩托車類public:motorcycle(){};voidRun(){cout<<"Amotorcycleisrunning!"<<endl;}};(1) (2) (3)二、讀程序?qū)懗鲞\行結(jié)果1./*************test.h***********************/#include<iostream.h>classPoint{public:voidInitP(floatx0=0,floaty0=0){X=x0;Y=y0;}voidMove(floatxf,floatyf){X+=xf;Y+=yf;}floatGetX(){returnX;}float{returnY;}private:floatX,Y;};classRectangle:publicPoint{public:voidInitR(floatx,floaty,floatw,floath){InitP(x,y);W=w;H=h;}voidZoomR(floatk){W*=k,H*=k;}floatGetH(){returnH;}floatGetW(){returnW;}private:floatW,H;};//**************************test.cpp************************//#include"test.h"voidmain(){Rectanglerect;rect.InitR(10,20,30,40);cout<<rect.GetX()<<","<<rect.GetY()<<","<<rect.GetW()<<","<<rect.GetH()<<endl;rect.Move(5,6);cout<<rect.GetX()<<","<<rect.GetY()<<","<<rect.GetW()<<","<<rect.GetH()<<endl;rect.ZoomR(7);cout<<rect.GetX()<<","<<rect.GetY()<<","<<rect.GetW()<<","<<rect.GetH()<<endl;}2.//*********************test.h********************//#include<iostream.h>classBase{public:virtualvoidSet(intb){x=b;}virtualintGet(){returnprivate:intx;};classDerived:publicBase{public:voidSet(intd){y=d;}intGet(){returny;}private:inty;};//**************************test.cpp************************//#include"test.h"voidmain(){BaseB_obj;DerivedD_obj;Base*p=&B_obj;p->Set(100);cout<<"B_objx="<<p->Get()<<endl;p=&D_obj;p->Set(200);cout<<"D_objy="<<p->Get()<<endl;p->Base::Set(300);cout<<"B_objx="<<p->Base::Get()<<endl;p->Set(p->Get()+200);cout<<"D_objy="<<p->Get()<<endl;}40.#include<iostream.h>classPoint{intx,y;public:Point(intx1=0,inty1=0):x(x1),y(y1){//X=x1;//Y=y1;cout<<"Point:"<<x<<''<<y<<'\n';}~Point(){cout<<"Pointdestructor!\n";}};classCircle{Pointcenter; //圓心位intradius; 半徑public:Circle(intcx,intcy,intr):center(cx,cy),radius(r)cout<<"Circleradius:"<<radius<<'\n';}~Circle(){cout<<"Circledestructor!\n";}};voidmain(){Circlec(3,4,5);}3.#include<iostream.h>#include<string.h>classPoint{intx,y;public:Point(intx1=0,inty1=0):x(x1),y(y1){cout<<"Point:"<<x<<''<<y<<'\n';}~Point(){cout<<"Pointdes!\n";}};classText{chartext[100];public:Text(char*str){strcpy(text,str);cout<<"Text}~Text(){cout<<"Textdes!\n";}};classCircleWithText:publicPoint,publicText{public:CircleWithText(intcx,intcy,char*msg):Point(cx,cy),Text(msg){cout<<"PointwithTextcon!\n";}~CircleWithText(){cout<<"PointwithTextdes\n";}};voidmain(){CircleWithTextcm(3,4,"hello");CircleWithText}4.#include<iostream.h>classDate{public:voidOutdate(inty,intm,intd){Year=y;Month=m;Day=d;}voidPrintDate(){cout<<Year<<"/"<<Month<<"/"<<Day<<endl;}Date(){Outdate(2000,1,1);}Date(inty,intm,intd){Outdate(y,m,d);}protected:intYear,Month,Day;};classTime{public:voidSetTime(inth,intm,ints){Houre=h;Minutes=m;Seconds=s;}voidPrintTime(){cout<<Houre<<":"<<Minutes<<":"<<Seconds<<endl;}Time(){SetTime(0,0,0);}Time(inth,intm,ints){SetTime(h,m,s);}protected:intHoure,Minutes,Seconds;};classDate_Time:publicDate,publicTime{public:Date_Time():Date(),Time(){};Date_Time(inty,intmo,intd,inth,intmi,ints):Date(y,mo,d),Time(h,mi,s){}voidPrintDate_Time(){PrintDate();PrintTime();}};voidmain(){Date_Timedt_a,dt_b(2002,10,1,6,0,0);dt_a.PrintDate_Time();dt_b.SetTime(23,59,59);dt_b.PrintDate_Time();dt_a.Outdate(2002,12,31);dt_a.PrintDate_Time();}5.#include<iostream.h>classDate{public:Date(inty=2001,intm=1,intd=1){Year=y;Month=m;Day=d;}voidPrintDate(){cout<<Year<<"/"<<Month<<"/"<<Day<<endl;}protected:intYear,Month,Day;};classTime{public:Time(inth=5,intm=30,ints=0){Houre=h;Minutes=m;Seconds=s;}voidPrintTime(){cout<<Houre<<":"<<Minutes<<":"<<Seconds<<endl;}protected:intHoure,Minutes,Seconds;};classDate_Time:publicDate,publicTime{public:Date_Time(){};Date_Time(inty,intmo,intd,inth=0,intmi=0,ints=0):Date(y,mo,d),Time(h,mi,s){}voidPrintDate_Time(){PrintDate();PrintTime();}};voidmain(){Date_Timea,b(2002,10,1,6,20,0),c(2003,3,8,6,7);a.PrintDate_Time();b.PrintDate_Time();c.PrintDate_Time();}三、程序改錯是鏈表結(jié)點的結(jié)構(gòu),appendToListlistxstructNODE{intdata;NODE*next;};NODE*appendToList(NODE*list,intx){ //1NODE*p=newNODE();int; //2p->data=x; //3行p->next=NULL; //4if(list==NULL)returnp; //5NODE*p1=list; //6while(p1->next!=NULL)p1=p1->next; //7行,鏈表非空先找到表尾p1=p; //8行讓原表尾指針指向新添加結(jié)點returnlist;}錯誤行的行號。分別改正和 。是鏈表結(jié)點的結(jié)構(gòu),addToList一個值為x的新結(jié)點添加到以pliststructNODE{intdata;NODE*next;};NODE*adndToList(NODE*plist,intx){ //1NODE*p; //2*p=newNODE; //3p->data=x; //4p->next=NULL; //5plist=p; //6returnp; //7}錯誤行的行號。分別改正和 。出錯誤語句行的行號并改正錯誤行。#include<iostream.h>classFranction{//定義分數(shù)類intnume;//定義分子intdeno;public://把*this化簡為最簡分數(shù),具體定義在另外文件中實現(xiàn)voidFranSimp();//返回兩個分數(shù)*this和x之和,具體定義在另外文件中實現(xiàn)FranctionFranAdd(constFranction&x);01voidInitFranction(){nume=0;deno=1;}置分數(shù)的分子和分母分別ndvoidInitFranction(intn,intd){nume=n;deno=d;}//輸出一個分數(shù)voidFranOutput(){cout<<nume<<'/'<<deno<<endl;}};voidmain()//1{//2Franctiona,b,c;//3a.InitFranction(6,15);//4b.InitFranction(1);//5c.InitFranction();//6c=FranAdd(a,b);//7cout<<c.nume<<’/’<<c.deno<<endl;//8}//9錯誤行的行號和 。分別改正、 和 。出錯誤語句行的行號并改正。#include<iostream.h>classFranction{//定義分數(shù)類intnume;//定義分子intdeno;public://把*this化簡為最簡分數(shù),具體定義在另外文件中實現(xiàn)voidFranSimp();//返回兩個分數(shù)*this和x之和,具體定義在另外文件中實現(xiàn)FranctionFranAdd(constFranction&x);01voidInitFranction(){nume=0;deno=1;}置分數(shù)的分子和分母分別ndvoidInitFranction(intn,intd){nume=n;deno=d;}//輸出一個分數(shù)voidFranOutput(){cout<<nume<<'/'<<deno<<endl;}};voidmain()//1{//2Franction*a=newFranction;//3Franction*b=newFranction;//4a->InitFranction(6,15);//5b.InitFranction(3,4);//6Franctionc;//7c.InitFranction();//8c=a.FranAdd(b);//9cout<<c.FranOutput()<<endl;//10}//11錯誤行的行號和 。分別改正、 和 。下面是一個類的定義,存在著3classCE{ //1private: //2inta,b; //3intGetMin(){return(a<b?a:b);} //4public //5intc; //6voidSetValue(intx1,intx2,intx3){ //7a=x1;b=x2;c=x3; //8行}; //9intGetMin(); //10}; //11intCE::GetMin(){ //12intd=getmin(); //13return(d<c?d:c); //14} //16錯誤行的行號和 。分別改正、 和 。下面程序段第4-10行中存在著三條語句的語法錯誤,請指出錯誤語句的行號并改正。classA{ //1inta,b; //2constintc; //3public //4A():c(0);a(0);b(0){} //5A(intaa,intbb)c(aa+bb);{a=aa;b=bb;} //6}; //7Aa,b(1,2); //8A*x=&a,&y=b; //9A*z=newA,w[10]; //10錯誤行的行號和 。分別改正、 。Public:A():c(0),a(0),b(0){}A(intaa,intbb):c(aa+bb){a=aa;b=bb;}下面程序段第4-9行中存在著三條語句錯誤,請指出錯誤語句的行號并說明原因classA{ //1行inta,b; //2constintc; //3public: //4A(){a=b=c=0;} //5A(intaa,intbb):c(aa+bb){a=aa;b=bb;} //6}; //7Aa,b(1,2,3); //8Ax(2,3),y(4); //9錯誤行的行號和 。錯誤原因分別、 和 。下面程序段第10-17行中存在著三條語句錯誤請指出錯誤語句的行號并說明原因classA{ //1行inta; //2public: //3A(intaa=0):a(aa){} //4}; //5classB{ //6inta,b; //7constintc; //8Ad; //9public: //10B():c(0){a=b=0;} //11B(intaa,intbb):d(aa+bb){ //12a=aa;b=bb;c=aa-bb; //13} //14} //15Ba,b(1,2); //16Bx=a,y(b),z(1,2,3),; //17錯誤行的行號和 。錯誤原因分別。d=800,f=64-23請指出錯誤語句的行號并改正。#include<iostream.h>classA{inta[10];intpublic://1//2//3A(intaa[],intnn):n(nn){//4for(inti=0;i<n;i++)aa[i]=a[i];//5}//6intGet(inti){returna[i];}//7intSumA(intn);//8};//9intA::SumA(intn){//10ints=0;//11for(intj=0;j<n;j++)s+=a[j];//12returns;//13}//14voidmain(){//15inta[]={2,5,8,10,15,20};//16Ax(a,6);//17intd=1; //18for(inti=0;i<4;i++)d*=x.a[i]; //19intf=SumA(6); //20cout<<"d="<<d<<’,’; //21cout<<"f="<<f<<endl; //22行} //23錯誤行的行號和 。51920分別改正、 和 。下面是分數(shù)類fract41/28,請指出錯誤所在行的行號并給出改正意見。classfract{intden; 分intnum; 分public:fract(intd=0,intn=1):den(d),num(n){}friendfract&operator+=(fract,fract&);//1//2voidshow(){cout<<den<<'/'<<num;}//3};//4friendfract&operator+=(fractf1,fractf2)//5{//7f1.den=f1.den*f2.num+f1.num*f2.den;//8f1.num*=f2.num;//9returnf1;//10}voidmain(){fractfr(3,4);fr+=fract(5,7);fr.show();}錯誤行的行號。分別改正八、程序設(shè)計根據(jù)下面類中Compare函數(shù)成員的原型和注釋寫出它的類外定義。classAA{int*a;intn;intMS;public:voidInitAA(intaa[],intnn,intms){if(nn>ms){cout<<"Error!"<<endl;exit(1);}MS=ms;n=nn;a=newint[MS];for(inti=0;i<MS;i++)a[i]=aa[i];}intCompare(AAb);//比較*this與b的大小,若兩者中//的n值相同,并且數(shù)組中前n個元素值對應//相同,則認為兩者相等返回1,否則返回0。};根據(jù)下面類中構(gòu)造函數(shù)的原型和注釋寫出它的類外定義。classArray{int*a;指向動態(tài)分配的整型數(shù)組空intn; 記錄數(shù)組長度public:Array(intaa[],intnn);//構(gòu)造函數(shù),利用aa數(shù)組長度nn初始化n,//利用aa數(shù)組初始化a所指向的數(shù)組空間Array(Array&aa); 拷貝構(gòu)造函數(shù)Array&Give(Array&aa);實現(xiàn)aa賦值*this的功能并返A(chǔ)rrayUion(Array&aa); 實*this和aa中的數(shù)組合并的//功能,把合并結(jié)果存入臨時對象并返回intLenth(){returnn;}//返回數(shù)組長度voidPrint(){ for(inti=0;i<n;i++)cout<<a[i]<<'';cout<<endl;}};根據(jù)下面類中拷貝構(gòu)造函數(shù)的原型寫出它的類外定義。classArray{int*a;指向動態(tài)分配的整型數(shù)組空intn; 記錄數(shù)組長度public:Array(intaa[],intnn);//構(gòu)造函數(shù),利用aa數(shù)組長度nn初始化n,//利用aa數(shù)組初始化a所指向的數(shù)組空間Array(Array&aa);//拷貝構(gòu)造函數(shù)Array&Give(Array&aa);實現(xiàn)aa賦值*this的功能并返A(chǔ)rrayUion(Array&aa); 實*this和aa中的數(shù)組合并的//功能,把合并結(jié)果存入臨時對象并返回intLenth(){returnn;}//返回數(shù)組長度voidPrint(){ for(inti=0;i<n;i++)cout<<a[i]<
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 全款轉(zhuǎn)讓房產(chǎn)合同范本
- 加班法務合同范本
- 公司入股合同范本文檔
- 仔豬購銷糾紛合同范本
- 包裝插畫合同范本
- 農(nóng)村協(xié)議買房合同范本
- 2024年金山區(qū)衛(wèi)生健康事業(yè)單位招聘衛(wèi)生專業(yè)技術(shù)人員考試真題
- 2024年南丹縣丹融文化傳媒有限公司招聘筆試真題
- 農(nóng)村修水渠合同范本
- 2024年阜陽市皖西北(阜南)糧食產(chǎn)業(yè)園有限公司招聘考試真題
- 2024年江蘇航空職業(yè)技術(shù)學院高職單招(英語/數(shù)學/語文)筆試歷年參考題庫含答案解析
- 幼兒羽毛球培訓課件
- 紅色旅游線路
- 膝骨關(guān)節(jié)炎中醫(yī)診療指南
- 胰性腦病和wernicke腦病
- 大國工匠課件
- 遼寧省冷鏈物流行業(yè)報告
- 清潔氫能生產(chǎn)與輸儲技術(shù)創(chuàng)新
- 產(chǎn)品標準化大綱(課件)
- 貸款的培訓課件
- 《雷達干擾技術(shù)概述》課件
評論
0/150
提交評論