C++程序設(shè)計(jì)課后習(xí)題參考答案_第1頁
C++程序設(shè)計(jì)課后習(xí)題參考答案_第2頁
C++程序設(shè)計(jì)課后習(xí)題參考答案_第3頁
C++程序設(shè)計(jì)課后習(xí)題參考答案_第4頁
C++程序設(shè)計(jì)課后習(xí)題參考答案_第5頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第一章

一、選擇題

1.B;(typedef,typeid,typename,都為保留字);

2.C;(標(biāo)識(shí)符,應(yīng)該以字母或,下劃線開頭);

3.C;(標(biāo)識(shí)符中有的特殊符號(hào),只能有下劃線);

二、填空題

1.cin,cout2.new,a(55);

三、改錯(cuò)題

L沒有定義變量num;

2.*p不能當(dāng)作“左值”。

3.p為常量指針,不能吧p作為“左值”,p=&y,錯(cuò)誤。

四、編程題

1.分別用字符和ASCII碼形式輸出整數(shù)值65和66.

^include<iostream>

usingnamespacestd;

voidmain0

(

chara=,A',b=,B,;

intascii」=53,ascii_2=54;〃ASCH碼中的,5和6

cout〈<”字符輸出:z,?(int)a?w.*?(int)b?endl;

cout?z/ASCII碼輸Hl:z/<<(char)ascii_2<<(char)ascii_l?z/,

cout?(char)asciil?(char)ascii1?endl;

)

2.編寫一個(gè)int型變量分配100個(gè)整形空間的程序。

ttinclude<iostream>

usingnamespacestd;

voidmainO

(

int*p;

p=newint[100];

for(inti=0;i<100;i++)

(

*(p+i)=i;

)

for(i=0;i<100;i++)

(

cout<<*(p+i)?z',"\

)

deletep;

)

3.編寫完整的程序,它讀入15個(gè)float值,用指針把它們存放在一個(gè)存儲(chǔ)快里,然后輸出

這些值和以及最小值。

ttinclude<iostream>

ttinclude<algorithm>〃用于數(shù)組排列的頭文件

usingnamespacestd;

voidmain()

float*p;

p=newfloat[15];

cout<〈〃輸入15個(gè)float類型的值:〃<<endl;

for(inti=0;i<15;i++)

(

cin?*(p+i);

)

for(i=0;i<15;i++)

(

cout<<*(p+i)?z,,z,;

)

sort(p,p+15);

cout<〈〃\n最小的是:〃6*(p)<<endl;

deletep;

)

4.聲明如下數(shù)組:inta[]={1,2,3,4,5,6,7,8);

先查找4的位置,講數(shù)組a復(fù)制給數(shù)組b,然后將數(shù)組a的內(nèi)容反轉(zhuǎn),再查找4的位置,最

后分別輸出數(shù)組a和b的內(nèi)容。

^include<iostream>

^include<algorithm>

ttinclude<functional〉

usingnamespacestd;

voidmain()

(

inta[]={l,2,3,4,5,6,7,8},b[8];

cout<<“數(shù)組a中‘4’的位置是:〃<<find(a,a+8,4)<<6nd1;〃查找4的位置

copy(a,a+8,b);〃將數(shù)組a復(fù)制給數(shù)組b

reverse_copy(b,b+8,a);〃把數(shù)組b,逆向復(fù)制給a,完成a的逆轉(zhuǎn)

cout<〈〃數(shù)組a反轉(zhuǎn)后,‘4’的位置是:〃<<find(a,a+8,4)<<endl;〃在查找4

的位置

cout?〃數(shù)字a的內(nèi)容:”的endl;

for(inti=0;i<8;i++)

cout?,";

cout<〈〃\n數(shù)組b中的內(nèi)容:〃<<endl;

for(i=0;i<8;i++)

cout?,〃;

第二章

一、單項(xiàng)選擇

1.D;2.D;

三、編程題

1.使用多種方法編寫將兩個(gè)字符串連接在一起的程序。

ttinclude<iostream>

ttinclude<string>

usingnamespacestd;

voidmainO

〃使用string類定義字符串,完成字符串連接

stringstr1("C++”),str2(〃程序設(shè)計(jì)〃);

stringstr3;

str3=strl+str2;〃連接方式1

cout<<str3<<endl;

〃使用char數(shù)組定義字符串,完成連接

charcl[]={〃c++〃},c2[]={"program"};

charc3[20];

inti=0,k=0;

for(i=0;i<20;i++)〃初始化c3

c3[i]=\0f;

i=0;

while(cl[i]!='\0')

(

c3[k]=cl[i];

i++;

k++;

)

i=0;

while(c2[i]!='\0')

(

c3[k]=c2[i];

i++;

k++;

)

cout<<c3?endl;

}

2.已知一個(gè)string的對(duì)象str的內(nèi)容為"Wearehere!”,使用多種方法輸出“h”。

^include<iostream>

#include<functional>

#include<algorithm>

^include<string>

usingnamespacestd;

voidmain()

(

stringstrl(,zWearehere!〃);

cout<<strl[7]?endl;〃通過數(shù)組

stringstr2=strl.substr(7,1);〃通過得到子字符串

cout?str2?endl;

char*p=find(strl.begin(),strl.end(),Jh');〃通過find函數(shù)

if(p)

cout<<*p?endl;

第三章

一、填空題

L函數(shù)原型聲明;2.inline3.對(duì)象、對(duì)象指針、引用4.函數(shù)func返回引用

5.int*fun(char,int&);

二、單項(xiàng)選擇題1.A;2.C;3.C;

三、改錯(cuò)題

l.y=x*x-T;錯(cuò)誤,T是類型,不是變量,不能參加運(yùn)算;

2.Tmax(Tx,y)y沒有類型

3.voidchange(string&s)中函數(shù)change的參數(shù)定義成了常量,只能使用參數(shù),而

無權(quán)修改他。所以應(yīng)去掉。

四、編程題

1.編寫一個(gè)求方程ax2+bx+c=0的根的程序,用3個(gè)函數(shù)分別求當(dāng)b2-4ac大于

零、等于零、和小于零時(shí)的方程的根。要求從主函數(shù)輸入a,b,c的值并輸出結(jié)果。

ttinclude<iostream,h>

#include<math,h>

voidequation_l(inta,intb,intc)

doublexl,x2,temp;

temp=b*b-4*a*c;

xl=(-b+sqrt(temp))/(2*a*1.0);

x2=(-b-sqrt(temp))/(2*a*1.0);

cout<<〃兩個(gè)不相等的實(shí)根“<<endl;

cout<<z/xl=〃<<xl<<,z,x2="<<x2?endl;

}

voidequation2(inta,intb,intc)

(

doublexl,x2,temp;

temp=b*b-4*a*c;

xl=(-b+sqrt(temp))/(2*a*1.0);

x2=xl;

cout<<〃兩個(gè)相等的實(shí)根〃<<endl;

cout?z,xl=〃<<x2=x2?endl;

)

voidequation3(inta,intb,intc)

(

doubletemp,reall,real2,imagel,image2;

temp=-(b*b-4*a*c);

reall=-b/(2*a*1.0);

real2=reall;

imagel=sqrt(temp);

image2=-imagel;

cout<<〃兩個(gè)虛根endl;

cout?z,xl=z/?reall?,z+”<<imagel?,zjz,?endl;

cout<<,zx2="z?real2?/z+〃<<image2<<"j〃<<endl;

)

voidmainO

inta,b,c;

doubletemp;

cout<〈〃輸入a,b,c的值”<<endl;

cin>>a>>b>>c;

cout<<〃方程為:〃<<a?,zx*x+z,?b?〃x+〃<<C?z/=0,z?endl;

temp=b*b-4*a*c;

if(temp>0)

equation1(a,b,c);

if(temp==0)

equation_2(a,b,c);

if(temp<0)

equation_3(a,b,c);

}

2.定義函數(shù)up(ch),如字符變量ch是小寫字母就轉(zhuǎn)換成大寫字母并通過up返回,否

則字符ch不改變。要求在短小而完全的程序中顯示這個(gè)程序是怎樣被調(diào)用的。

^include<iostream>

usingnamespacestd;

charup(charc)

(

if(c>=97&&c<=123)

return(c-32);

else

returnc;

)

voidmain()

(

inti;

charc[15]=

{'A','v','e','t','E','T','對(duì),''4','Y','e','i',''9','7};

for(i=0;i<15;i++)

cout<<up(c[i])?z/,

cout<<endl;

)

3.編寫主程序條用帶實(shí)數(shù)r和整數(shù)n兩個(gè)參數(shù)的函數(shù)并輸出r的n次塞。

#include<iostream,h>

ttinclude<math,h>

doublepower(doublea,intb)

(

inti;

doubleresult=1.0;

for(i=0;i<b;i++)

result=result*a;

returnresult;

)

voidmainO

doubler;

intn;

cout<<^r=〃;

cin?r;

cout<<,zn=〃;

cin?n;

cout<<r<<”的"<<n<<"次幕是:〃<<power(r,n)?endl;

)

4.編寫有字符型參數(shù)C和整形參數(shù)N的函數(shù),讓他們顯示出由字符C組成的三角形。其方

式為第1行有1個(gè)字符C,第2行有2個(gè)字符C,等等。

#include<iostream>

usingnamespacestd;

voidprint_triangle(charc,intn)

(

inti,j;

for(i=0;i<n;i++)

(

for(j=0;j<=i;j++)

(

cout?c;

)

cout?endl;

}

)

voidmain()

(

print_triangle(,a',10);

}

5.編寫一個(gè)ieqiu字符串長(zhǎng)度的函數(shù),strlenO,再用strlenO函數(shù)編寫一個(gè)函數(shù)revers

(s)的倒序遞歸程序,使字符串s逆序。

^include<iostream>

ttinclude<string>

usingnamespacestd;

intstrlen(char*str)

(

intlen=0;

while(str[len]!='\0')

(

len++;

)

returnlen;

)

voidrevers(char*b)

(

charc;

intj,len;

len=strlen(b);

j=len/2-l;

while(j>=0)

(

c=*(b+j);

*(b+j)=*(b+len-j-1);

*(b+len-j-l)=c;

J—;

)

b[len]=\Of;

)

voidmain()

(

charstr□二{“1234567890〃};

cout<<str?z,----的長(zhǎng)度:z,?strlen(str)<<endl;

cout<<str?endl;〃倒序前

revers(str);//

cout?str?endl;〃倒序后

)

6.用函數(shù)模板實(shí)現(xiàn)3個(gè)數(shù)值中按最小值到最大值排序的程序。

ttinclude<iostream>

usingnamespacestd;

template

voidsort(Ta,Tb,Tc)

(

Tarray[3],temp;

inti,j;

array[0]=a;

array[1]=b;

array[2]=c;

for(i=0;i<3;i++)

(

for(j=0;j<2;j++)

if(array[j]>array[j+1])

(

temp=array[j];

array[j]=array[j+1];

array[j+1]=temp;

)

)

cout<<array[0]<<array[1]<<array[2]<<endl;

)

voidmain()

sort(5,1,9);

)

7.利用函數(shù)模板設(shè)計(jì)一個(gè)求數(shù)組元素中和的函數(shù),并檢驗(yàn)之。

ttinclude<iostream>

usingnamespacestd;

template

Tsum(Ta[],intn)

(

inti;

Ts=0;

for(i=0;i<n;i++)

s=s+a[i];

returns;

)

voidmain()

(

inta[5]={l,2,3,4,5};

ints=sum(a,5);

cout<<s?endl;

)

8.重載上題中的函數(shù)模板,使他能夠進(jìn)行兩個(gè)數(shù)組的求和。

^include<iostream>

usingnamespacestd;

template

Tsum(Ta[],intn)

(

inti;

Ts=0;

for(i=0;i<n;i++)

s=s+a[i];

returns;

)

template〃重載上面的模板

Tsum(Ta[],intn,Tb[],intm)

(

returnsum(a,n)+sum(b,m);

)

voidmain()

(

inta[5]={l,2,3,4,5};

intb[10]二{1,2,3,4,5,6,7,8,9,10};

intsi=sum(a,5);

ints2=sum(b,10);

ints3=sum(a,5,b,10);

cout<<sl<<endl;

cout<<s2<<endl;

cout<<s3<<endl;

第四章

一、填空題

1.數(shù)據(jù)成員、成員函數(shù);2.類、返回類型、1;3.fun::fun(fun&)、fun::fun(constfun

&);

二、單項(xiàng)選擇題

l.Co2.Co3.沒有答案,應(yīng)該是A:廣A(void沒或A:rA()。4.B。5.Co6.Co7.D

三、改錯(cuò)題

1.returnm;-錯(cuò)誤,沒又定義變量m;"baseO(deletep}p后應(yīng)有一個(gè)〃」

2.A.init(24,56);--錯(cuò)誤,應(yīng)該先定義A對(duì)象:PointA;同時(shí)參數(shù)個(gè)數(shù)不同;

{Setx(a);}無類型,也無返回值。

四、完成程序題

1.

ttinclude<iostream>

usingnamespacestd;

classbase

(

private:

〃私有數(shù)據(jù)成員

inta,b;

public:

voidinit(intx,inty)〃公有函數(shù)

(

a=x;

b=y;

)

voidprint()

(

cout?z,2*z,?a<<〃-z,?b<<〃=z,?(2*a-b)?endl;

)

};

voidmain()

(

basea;

a.init(68,55);

a.print();

)

2.

ttinclude

usingnamespacestd;

classPoint

(

private:

intm,n;

public:

Point(int,int);〃整型變量,為參數(shù)的構(gòu)造函數(shù)

Point(Point&);〃復(fù)制構(gòu)造函數(shù)的原型

print()

cout?,,m=〃<<m?,z,n=〃<<n?endl;

}

);

Point::Point(inta,intb)

(

m=a;

n=b;

)

Point::Point(Point&t)〃復(fù)制構(gòu)造函數(shù)的定義

(

m=t.m;

n=t.n;

)

voidmainO

(

Pointa(10,89);

Pointb(a);

a.print();

b.print();

)

五、程序分析題

L沒有結(jié)果,因?yàn)闆]有main函數(shù)

如果加main函數(shù)

voidmainO

(

baseb(10,20);

)

輸出:

初始化...10,20

Destory...10,20

2.

輸出:

55

六、編程題

1.設(shè)計(jì)一個(gè)點(diǎn)類Point,再設(shè)計(jì)一個(gè)矩形類,矩形類使用Point類的兩個(gè)坐標(biāo)點(diǎn)作為矩

形的對(duì)角頂點(diǎn)。并可以輸出4個(gè)坐標(biāo)值和面積。使用測(cè)試程序驗(yàn)證程序。

ttinclude

usingnamespacestd;

classPoint〃點(diǎn)類

private:

intx,y;〃私有成員變量,坐標(biāo)

public:

Point()〃無參數(shù)的構(gòu)造方法,對(duì)xy初始化

(

x=0;

y=0;

}

Point(inta,intb)〃又參數(shù)的構(gòu)造方法,對(duì)xy賦值

(

x=a;

y=b;

}

voidsetXY(inta,intb)〃設(shè)置坐標(biāo)的函數(shù)

(

x=a;

y=b;

)

intgetXO〃得到x的方法

(

returnx;

}

intgetY()〃得到有的函數(shù)

(

returny;

}

);

classRectangle〃矩形類

(

private:

Pointpointl,point2,point3,point4;〃私有成員變量,

4個(gè)點(diǎn)的對(duì)象

public:

Rectangle。;〃類Point的無參構(gòu)造函數(shù)已經(jīng)對(duì)每個(gè)對(duì)象做

初始化啦,這里不用對(duì)每個(gè)點(diǎn)多初始化了

Rectangle(Pointone,Pointtwo)〃用點(diǎn)對(duì)象做初始化的,

構(gòu)造函數(shù),1和4為對(duì)角頂點(diǎn)

(

pointl=one;

point4=two;

initO;

}

Rectangle(intxl,intyl,intx2,inty2)〃用兩對(duì)坐標(biāo)

做初始化,構(gòu)造函數(shù),1和4為對(duì)角頂點(diǎn)

pointl.setXY(xl,yl);

point4.setXY(x2,y2);

init0;

)

voidinit()〃給另外兩個(gè)點(diǎn)做初始化的函數(shù)

(

point2.setXY(point4.getX(),pointl.getY());

point3,setXY(pointl.getX(),point4.getY());

}

voidprintPoint()〃打印四個(gè)點(diǎn)的函數(shù)

z,

cout<<,zA:r?pointl.getX()?

pointl.getY()<<〃)〃<<endl;

cout<X〃B:c?point2.getX()"<<

point2.getY()<<〃)"<<endl;

z,

cout<<z,C:c?point3.getX()?

point3.getY()<<,")/z<<endl;

,z

cout<<z,D:c?point4.getX()?

point4.getY()<<〃)"<<endl;

)

intgetArea()〃計(jì)算面積的函數(shù)

intheight,width,area;

height=pointl.getY()-point3.getY();

width=pointl.getX()-point2.getX();

area=height*width;

if(area>0)

returnarea;

else

return-area;

}

};

voidmain()

(

Pointpl(-15,56),p2(89,TO);〃定義兩個(gè)點(diǎn)

Rectanglerl(pl,p2);〃用兩個(gè)點(diǎn)做參數(shù),聲明一個(gè)矩形對(duì)象rl

Rectangler2(l,5,5,1);〃用兩隊(duì)左邊,聲明一個(gè)矩形對(duì)象r2

cout<<〃矩形rl的4個(gè)定點(diǎn)坐標(biāo):"<<endl;

rl.printPoint();

cout<<“矩形rl的面積:"<<rl.getAreaO<<endl;

cout?”\n矩形r2的4個(gè)定點(diǎn)坐標(biāo):"<<endl;

r2.printPoint();

cout<<〃矩形r2的面積:〃<<r2.getAreaO?endl;

2.使用內(nèi)聯(lián)函數(shù)設(shè)計(jì)一個(gè)類,用來表示直角坐標(biāo)系中的任意一條直線并輸出它的屬性。

^include<iostream,h>

#include<math,h>

classLine

(

private:

intxl,yl,x2,y2;

public:

LineO;

Line(int=0,int=0,int=0,int=O);

voidprintPoint();

doublegetLengthO;

);

inlineLine::Line(inta,intb,intc,intd)

(

xl=a;

yl=b;

x2=c;

y2二d;

)

inlinevoidLine::printPoint()

(

cout<<z,A:〃<<xl<<”,/z?yl?endl;

cout?,,B:”<<x2?z/,〃<<y2?endl;

}

inlinedoubleLine::getLengthO

(

doublelength;

length=sqrt((x2-x1)*(x2-x1)+(y2-yl)*(y2-yl));

returnlength;

)

voidmainO

(

Lineline(10,80,-10,12);

line.printPoint();

cout<<line.getLengthO<<endl;

)

第五章

一、填空題

1.常成員函數(shù);2.常量成員函數(shù)(const);3.const

二、單項(xiàng)選擇題

1.B;2,A;3.C;4.A;

三、改錯(cuò)題

1.staticintgetn(){returnnumber;}錯(cuò)誤

靜態(tài)成員函數(shù),只允許訪問靜態(tài)成員變量,number不是靜態(tài)成員變量

2.缺少new

voidmainO

(

test*two[2]={newtest(4,5),newtest(6,8)};

for(i=0;i<2;i++)

deletetwo[i];

)

四、完成程序題

^include<iostream>

usingnamespacestd;

classtest

(

intx;

public:

test(inta)

(

x=a;

)

intGetX()

(

returnx;

)

);

voidmainO

(

inti;〃填空一,聲明變量i

test*p,a[2][3]={{1,2,3},{4,5,6});

for(p=&a[0][0],i=0;i<=6;i++,p++)〃填空2,初始化p,i

(

if((p-a[0])%3==0)

cout<<endl;

cout<<p->GetX()

)

)

五、編程題

1.聲明復(fù)數(shù)的類,complex,使用友元函數(shù)add實(shí)現(xiàn)復(fù)數(shù)加法。

ttinclude<iostream>

usingnamespacestd;

classComplex

(

private:

doublereal,image;

public:

Complex(){}

Complex(doublea,doubleb)

real=a;

image=b;

)

voidsetRI(doublea,doubleb)

{

real=a;

image=b;

)

doublegetReal()

(

returnreal;

)

doublegetlmageO

(

returnimage;

)

voidprint()

(

if(image>0)

cout<〈"復(fù)數(shù):〃<<real<<"+〃<<image

<<z/iz/?endl;

if(image<0)

cout<<〃復(fù)數(shù):〃<<real<<〃-〃<<image

<<"i〃<<endl;

)

friendComplexadd(Complex,Complex);〃聲明友元函數(shù)

);

Complexadd(Complexcl,Complexc2)〃定義友元函數(shù)

(

Complexc3;

c3.real=cl.real+c2.real;〃訪問Complex類中的私有成員

c3.image=cl.image+c2.image;

returnc3;

)

voidmainO

(

Complexcl(19,0.864),c2,c3;

c2.setRI(90,125.012);

c3=add(cl,c2);

cout<〈〃復(fù)數(shù)■:〃;cl.print();

cout<〈〃復(fù)數(shù)二:〃;c2.print();

cout<<〃相加后c3.print();

)

2.例子5.8,114頁例子不錯(cuò);

3.編寫一個(gè)程序,該程序建立一個(gè)動(dòng)態(tài)數(shù)組,為動(dòng)態(tài)數(shù)組的元素賦值,顯示動(dòng)態(tài)數(shù)組的值

并刪除動(dòng)態(tài)數(shù)組。

#include<iostream>

usingnamespacestd;

voidmain()

(

inti,n,temp=0;

cout<〈〃輸入數(shù)組大?。骸?;

cin?n;

double*array=newdouble[n];〃用指針,動(dòng)態(tài)申請(qǐng)數(shù)組大小

cout?〃給每個(gè)數(shù)組元素賦值:〃<<endl;

for(i=0;i<n;i++)

(

cout<<,,array[,z?i?,z]=〃;

cin>>temp;

*(array+i)=temp;〃給數(shù)組元素賦值

)

cout<X〃動(dòng)態(tài)數(shù)組個(gè)元素的值如下:〃“endl;

for(i=0;i<n;i++)

(

cout<<,,array[,z?i<<"]=〃<<array[i]?endl;〃打印數(shù)組元素

)

delete[]array;〃釋放內(nèi)存

)

4.定義一個(gè)Dog類,它用靜態(tài)數(shù)據(jù)成員Dogs記錄Dog的個(gè)體數(shù)目,靜態(tài)成員函數(shù)GetDogs

用來存取Dogs。設(shè)計(jì)并測(cè)試這個(gè)類。

#include<iostream>

usingnamespacestd;

classDog

(

private:

staticintdogs;〃靜態(tài)數(shù)據(jù)成員,記錄Dog的個(gè)體數(shù)目

public:

Dog(){}

voidsetDogs(inta)

(

dogs=a;

}

staticintgetDogsO

(

returndogs;

)

);

intDog::dogs=25;〃初始化靜態(tài)數(shù)據(jù)成員

voidmain()

(

cout?〃未定義Dog類對(duì)象之前:x=〃<<Dog::getDogs()?endl;;//x在產(chǎn)

生對(duì)象之前即存在,輸出25

Doga,b;

cout<〈〃a中x:〃<<a.getDogs()<<endl;

cout〈〈”b中x:〃<<b.getDogs()<<endl;

a.setDogs(360);

cout<〈”給對(duì)象a中的x設(shè)置值后:〃endl;

cout<<"a中x:”《a.getDogs()<<endl;

cout<<〃b中x:"<<b.getDogs()<<endl;

)

第六章

一、填空題

L單一繼承;2.privateprotectedpublic

二、單項(xiàng)選擇

l.A;2.A;3.A;4.D;

三、改錯(cuò)題

1.類derived和base中均沒變量b,derived的構(gòu)造函數(shù)中的m(b)錯(cuò)誤;

2.Derived類中重載show。方法

voidShow()

(

Basel::Show();Base2::Show();

}

四、編程題

1.設(shè)計(jì)一個(gè)基類,從基類派生圓柱,設(shè)計(jì)成員函數(shù)輸出它們的面積和體積;

#include<iostream>

usingnamespacestd;

classBasic〃基類

(

protected:

doubler;

public:

Basic(){r=0;}

Basic(doublea):r(a){)

);

classCircular:publicBasic〃從基類派生圓類

(

protected:

doublearea;

public:

Circular(doublea)

(

r=a;

area=area=3.1415926*r*r;

)

doublegetArea()〃返回圓面枳

(

returnarea;

}

);

classColumn:publicCircular〃從圓類派生圓柱類

protected:

doubleh;

doublecubage;

public:

Column(doublea,doubleb):Circular(a)

{

h=b;

cubage=getAreaO*h;

}

doublegetCubage()〃返回圓柱體積函數(shù)

(

returncubage;

voidmainO

(

Circularcircular(45);

Columncolumn(12,10);

cout<〈〃圓的面積:〃<<circular.getAreaO?endl;

cout<<“圓柱的體積:〃<<column.getCubage()<<endl;

)

3,定義一個(gè)線段類作為矩形的基類,基類有起點(diǎn)和終點(diǎn)坐標(biāo),有輸出左邊和長(zhǎng)度以及線段

和x軸的夾角的成員函數(shù)。矩線段對(duì)象的兩個(gè)坐標(biāo)作為自己一條邊的位置,它具有另外一

條邊,能輸出矩形的4個(gè)頂點(diǎn)坐標(biāo)。給出類的定義并用程序驗(yàn)證它們的功能。

ttinclude<iostream>

#include<cmath>

usingnamespacestd;

classPoint〃點(diǎn)類

(

protected:

doublex,y;

public:

Point(){}

Point(doublea,doubleb)

(

x=a;y=b;

)

doublegetXO

(returnx;}

doublegetY()

{returny;}

);

classLine

(

protected:

Pointpl,p2;〃Point對(duì)象做成員

doublelength,angle;

public:

Line(doublea,doubleb,doublec,doubled):pl(a,b),

p2(c,d)〃用兩對(duì)坐標(biāo)初始化線段

(

init();

)

Line(Pointa,Pointb)〃用兩個(gè)點(diǎn)的對(duì)象初始化線段

(

pl=a;p2=b;

init();

)

voidinit()〃計(jì)算線段長(zhǎng)度,以及和x軸的夾角的度數(shù)

{

doublexl=pl.getX(),yl=pl.getY();

doublex2=p2.getX(),y2=p2.getY();

length=sqrt((xl-x2)*(xl-x2)+

(yl-

溫馨提示

  • 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. 人人文庫網(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)論