预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共13页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

ProblemA:C++习题抽象基类 Description 编写一个程序,声明抽象基类Shape,由它派生出3个派生类:Circle(圆形)、Rectangle(矩形)、Triangle(三角形),用一个函数printArea分别输出以上三者的面积(结果保留两位小数),3个图形的数据在定义对象时给定。 Input 圆的半径矩形的边长三角形的底与高 Output 圆的面积矩形的面积三角形的面积 SampleInput 12.6 4.58.4 4.58.4 SampleOutput areaofcircle=498.76 areaofrectangle=37.80 areaoftriangle=18.90 #include<iostream> #include<iomanip> usingnamespacestd; classShape { public: virtualdoublearea()const=0; }; classCircle:publicShape { public: Circle(doubler):radius(r){} virtualdoublearea()const { return3.14159*radius*radius; }; protected: doubleradius; }; classRectangle:publicShape { public: Rectangle(doublew,doubleh):width(w),height(h){} virtualdoublearea()const { returnwidth*height; } protected: doublewidth,height; }; classTriangle:publicShape { public: Triangle(doublew,doubleh):width(w),height(h){} virtualdoublearea()const { return0.5*width*height; } protected: doublewidth,height; }; voidprintArea(constShape&s) { cout<<s.area()<<endl; } intmain() { floatr,a,b,w,h; cout<<fixed<<setprecision(2); cin>>r; Circlecircle(r); cout<<"areaofcircle="; printArea(circle); cin>>a>>b; Rectanglerectangle(a,b); cout<<"areaofrectangle="; printArea(rectangle); cin>>w>>h; Triangletriangle(w,h); cout<<"areaoftriangle="; printArea(triangle); return0; } ProblemB:C++习题虚函数-计算图形面积 Description 编写一个程序,定义抽象基类Shape,由它派生出5个派生类:Circle(圆形)、Square(正方形)、Rectangle(矩形)、Trapezoid(梯形)、Triangle(三角形)。 用虚函数分别计算几种图形面积,并求它们之和。 要求用基类指针数组,使它每一个元素指向一个派生类对象。 Input 圆的半径 正方形的边长 矩形的边长 梯形的上底和下底,高 三角形的底与高 Output 所有图形面积之和(结果保留两位小数) SampleInput 12.6 3.5 4.58.4 2.04.53.2 4.58.4 SampleOutput totalofallareas=574.11 #include<iostream> #include<iomanip> usingnamespacestd; classShape { public: virtualdoublearea()const=0; }; classCircle:publicShape { public: Circle(doubler):radius(r){} virtualdoublearea()const { return3.14159*radius*radius; }; protected: doubleradius; }; classSquare:publicShape { public: Square(doubles):side(s){} virtualdoublearea()const { returnside*side; } protected: doubleside; }; classRectangle:pu