1、C+复习题练习1、 编写一个类LEI,打印其私有成员变量a的值,并测试该类。#includeusing namespace std;class LEIpublic: LEI(int i)a=i; void get() coutaendl; private: int a;void main() LEI A(10); A.get();2、 用面向对象的方法完成对三个数从大到小的排序并输出,并测试该类。#includeusing namespace std;class Sortpublic: Sort(); Sort(int i,int j,int k) a=i;b=j;c=k; void max(
2、int a,int b,int c) if(a=b&b=c) coutabcc&cb) coutacbc&ca) coutbcaa&ac) coutbaca&ab) coutcabendl; else coutcbaendl; private: int a,b,c;void main() Sort B; B.max(3,4,5);3、 定义类lei,完成一个整形数的输入和输出,并测试该类。#includeusing namespace std;class IOpublic: IO(); void input() cina; void output() coutaendl; private: i
3、nt a;void main() IO A; A.input(); A.output();4、 用面向对象的方法,完成圆类的定义#includeusing namespace std;class Circlepublic: Circle(double i) r=i; void Printf() cout3.14*r*rendl; private: double r; ; /下面为数据测试,本题不需要 void main() Circle B(4.0); B.Printf(); 5、 从键盘上输入一个3*3的整数矩阵,求其各行的平均值并输出,输出时保留位小数。#include#include/小
4、数定义文件using namespace std;int main() int a33, i, j; double ave, b3; for(i=0; i3; +i) for(j=0; jaij; ave=(ai0+ai1+ai2)/3.0; bi=ave; for(i=0; i3; i+) coutsetprecision(3)fixedbiendl; return 0;6、 编一个程序计算球体、正方体和圆柱体的体积。要求:(1)抽象出一个公共基类Cube为抽象类,在其中定义一个公共的数据成员radius,此数值可以作为球体的半径和圆柱体底面圆半径;定义对radius进行读写的设置函数和获取
5、函数,再定义求体积的纯虚函数volume和显示半径的虚函数print;(2)由Cube派生出球体类Sphere,其中有求体积的实际定义;(3)从Cube派生出square类,新定义length,并可以对其进行读写,再定义volume和print函数;(3)在测试程序中分别创建一个Sphere类、square和一个Cylinder类的对象,通过调用相关成员函数显示其数据成员和体积信息。#includeusing namespace std;class Cubepublic: Cube(); Cube(double i) r=i; cout半径为:rendl; private: double r;
6、class Sphere:public Cubepublic: Sphere(); Sphere(double i):Cube(i)r=i; void volume()cout球体的体积为:(4*3.14*r*r*r)/3.0endl;private: double r;class square:public Cubepublic: square(); square(double i):Cube(i) length=i; void volume() V=length*length*length; void printf() cout正方体的体积为:Vendl;private: double l
7、ength,V;class Cylinder:public Cubepublic: Cylinder(double i):Cube(i) r=i; void volume() V2=3.14*r*r*r; void printf() cout圆柱体的体积为:V2endl;private: double r,V2;void main() Sphere A(3.4); A.volume(); square B(3.4); B.volume(); B.printf(); Cylinder C(3.4); C.volume(); C.printf();7、 用面向对象方法从键盘输入12个数存入二维数组
8、a34中,编写程序求出最大元素的值及它所在的行号和列号。#includeusing namespace std;int main() int a34, i, j,max,b,c; for(i=0;i3;+i) for(j=0;jaij; if(i=0&j=0) max=a00; if(aijmax) max=aij; b=i+1; c=j+1; cout最大数为:max 行数为:b 列数为:cendl; return 0;8、 用面向对象的方法设计求圆的面积、周长。要求:、写出类Circle(圆)的定义,成员函数setRadius设置半径、getArea求面积以及getPerimeter求周长
9、;、在主函数中,从键盘输入半径,输出其面积和周长。#includeusing namespace std;class Circlepublic: Circle(); void setRadius() cinr; void getArea() cout圆的面积是:3.14*r*rendl; void getPerimeter() cout圆的周长是:2*3.14*rendl; private: double r;void main() Circle A; A.setRadius(); A.getArea(); A.getPerimeter();9、 编写一个求方程ax2 + bx + c = 0
10、的根 的程序,用3个函数分别求当b2-4ac大于零、等于零、和小于零时的方程的根。要求从主函数输入a,b,c的值并输出结果。#include#includeusing namespace std;void X(double i,double j,double k) cout方程的根是:(-j+sqrt(j*j-4*i*k)/(2*i)和(-j-sqrt(j*j-4*i*k)/(2*i)endl;void X1(double i,double j,double k) cout方程的根是:-j/(2*i)endl;void X2(double i,double j,double k) cout方程
11、无解!endl;void main() double a,b,c; coutabc; if(b*b-4*a*c0) X(a,b,c); else if(b*b-4*a*c=0) X1(a,b,c); else X2(a,b,c);10、 定义一个复数类Complex,形式如下:RealPart(实部)+ImgPart(虚部)*i 。定义含两个参数的构造函数、一个Show( ) 函数(用以输出Real, ImgPart的值),另外作为成员函数重载的运算符”+”和“-”(功能是将此类二个对象相加、减)。#includeusing namespace std;class Complexpublic:
12、 Complex()RealPart=0;ImgPart=0; Complex(double a,double b) RealPart=a; ImgPart=b; void show() cout实部为:RealPart 虚部为:ImgPartendl; Complex operator+(Complex &); friend ostream& operator(ostream&, Complex&);private:double RealPart,ImgPart;Complex Complex:operator+(Complex &n) Complex c; c.RealPart=RealP
13、art+n.RealPart; c.ImgPart=ImgPart+n.ImgPart; return c;ostream& operator(ostream& output,Complex& c) outputc.RealPart+c.ImgPartiendl; return output;void main() Complex A(2.5,3.5),B(2,5),k; k=A+B; A.show(); B.show(); coutk;11、 设计一个基类,从基类派生圆柱,设计成员函数输出它们的面积和体积。定义一个座标类Vector2d, 二个数据成员为double型x, y 为privat
14、e属性。作为成员函数重载的运算苻”+”的功能是将此类二个对象的数据成员x和y对应相加。 #includeusing namespace std;class Apublic: A() cout经计算,圆柱的体积和面积分别为:endl; ;class Cylinder:public Apublic: Cylinder(double i,double j)r=i;high=j; void Area() cout3.14*r*r+2*3.14*r*high和; void V() cout3.14*r*r*highendl; private: double r, high;class Vector2dp
15、ublic: Vector2d()a=0; Vector2d(double i)a=i; void show() couta ; Vector2d operator+(Vector2d &); friend ostream& operator(ostream&,Vector2d&);private: double a;Vector2d Vector2d:operator+(Vector2d &n) Vector2d c; c.a=a+n.a; return c;ostream& operator(ostream& output,Vector2d& c) outputc.aendl; retur
16、n output;void main() Cylinder s(1.0,1.0); s.Area(); s.V(); Vector2d p(10),q(8),c; p.show(); q.show(); c=p+q; coutendl; cout两个数之和为:cendl;12、 设计一个类Rect,要求如下:(1)该类中的私有数据成员length,width存放它的长和宽,并且设置它们的默认值是0。(2)通过成员函数设置其长和宽,并确保长和宽都在(0,50)范围之内。(3)实现求周长函数GetPerimeter()。(4)写出main函数,计算长和宽分别为5和9的周长。#includeusin
17、g namespace std;class Recpublic: Rec()length=0;width=0; Rec(double i,double j)length=i;width=j; void GetPerimeter() if(length0&length0&width50) cout长方形的周长是:2*length*widthendl; else cout数据有误!endl; private: double length,width;void main() Rec A(9,5); A.GetPerimeter(); 13、 设计一个汽车类vehicle,包含的数据成员有车轮个数wh
18、eels和车重weight。小车类car是它的派生类,其中包含载人数passenger_load。每个类都有相关数据的输出方法。在主程序中定义一个car类对象,对其车轮个数、车重、载人数进行设置并显示。#includeusing namespace std;class vehiclepublic: vehicle(int j,int k) wheels=j;weight=k; cout大车车轮数:wheels 重量是:weight吨endl; private: int wheels,weight;class car:public vehiclepublic: car(int i,int j,i
19、nt k):vehicle(j,k) passenger_load=i; cout小车载人数为:passenger_loadendl;private: int passenger_load;void main() car A(30,6,10);14、 利用纯虚函数编写程序计算正方体、球体的表面积和体积。定义抽象类Container作为公共基类,并在其中定义求表面积的纯虚函数surface()和体积的纯虚函数volume(),并在其中定义公共数据成员radius,此数据可作为球体半径、正方体边长。由此抽象类派生出要描述的两个类:即Cube、Sphere,在这两个类中都有表面积和体积的重定义版本。
20、#includeusing namespace std;class CCt /定义抽象类CContaineerprotected:double radius; /公共的数据成员radiusdouble area,volume; /表面积area,体积volumepublic: virtual void Area()=0; /求表面积的纯虚函数 virtual void Volume()=0; /求体积的纯虚函数 CCt (double a,double b,double c)radius=a;area=b;volume=c; /基类的构造函数;class Square:public CCt /
21、派生类Squarepublic:Square(float a,double b,double c): CCt (a,b,c) void Area() /虚函数Area() area=6*radius*radius; coutSquares area=areaendl; void Volume() /虚函数Volume () volume=radius*radius*radius; cout Squares volume=volumeendl;class circle:public CCt /派生类circlepublic: circle(float a,double b,double c):
22、CCt (a,b,c) /派生类circle构造函数 void Area() area=4*3.14*radius*radius; coutcircles area=areaendl; void Volume() volume=3.14*radius*radius*radius*4/3; cout circles volume=volumeArea();void Volumefun(CCt *p) /根据p所指向的对象不同,调用不同的派生类Volumep-Volume();void main()Square r1(5,0,0);/ Square的对象r1circle c1(8,0,0); / circle的对象c1Areafun(&r1);/调用的将是派生类Square的Area虚函数Volumefun(&r1);/ 调用的将是派生类Square的Volume虚函数Areafun(&c1);Volumefun(&c1);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1