1、面向对象程序设计期末综合练习六程序设计面向对象程序设计期末综合练习六(程序设计)1. 编一程序求出满足不等式1+1/2+1/3+.+1/n5的最小n值。 2. 计算1+3+32+.+310的值并输出,假定分别用i,p,s作为循环变量、累乘变量和累加变量的标识符。 3. 求满足不等式22+42+.+n2ms) coutError!endl; exit(1); MS=ms; n=nn; a=new intMS; for(int i=0; ims) coutError!endl; exit(1); MS=ms; n=nn; a=new intMS; for(int i=0; ims) coutErr
2、or!endl; exit(1); MS=ms; n=nn; a=new intMS; for(int i=0; ims) coutError!endl; exit(1); MS=ms; n=nn; a=new intMS; for(int i=0; ims) coutError!endl; exit(1); MS=ms; n=nn; a=new intMS; for(int i=0; ims) coutError!endl; exit(1); MS=ms; n=nn; a=new intMS; for(int i=0; ims) coutError!endl; exit(1); MS=ms;
3、 n=nn; a=new intMS; for(int i=0; iMS; i+) ai=aai; AA* Reverse1(); /通过动态存储分配得到一个对象,并动态分配 /aMS数组空间,要求该对象中的n和MS的值与*this中的 /对应成员的值相同,数组元素的值是按照*this中数组元 /素的相反次序排列得到的,要求该函数返回动态对象的地址。; 20. 根据下面类中构造函数的原型和注释写出它的类外定义。class Array int *a; /指向动态分配的整型数组空间 int n; /记录数组长度public: Array(int aa, int nn); /构造函数,利用aa数组长
4、度nn初始化n, /利用aa数组初始化a所指向的数组空间 Array(Array& aa); /拷贝构造函数 Array& Give(Array& aa); /实现aa赋值给*this的功能并返回*this Array Uion(Array& aa); /实现*this和aa中的数组合并的 /功能,把合并结果存入临时对象并返回 int Lenth() return n; /返回数组长度 void Print() /输出数组 for(int i=0; in; i+) coutai ; coutendl; ; 21. 根据下面类中拷贝构造函数的原型写出它的类外定义。class Array int
5、*a; /指向动态分配的整型数组空间 int n; /记录数组长度public: Array(int aa, int nn); /构造函数,利用aa数组长度nn初始化n, /利用aa数组初始化a所指向的数组空间 Array(Array& aa); /拷贝构造函数 Array& Give(Array& aa); /实现aa赋值给*this的功能并返回*this Array Uion(Array& aa); /实现*this和aa中的数组合并的 /功能,把合并结果存入临时对象并返回 int Lenth() return n; /返回数组长度 void Print() /输出数组 for(int i
6、=0; in; i+) coutai ; coutendl; ; 22. 根据下面类中Give函数的原型和注释写出它的类外定义。class Array int *a; /指向动态分配的整型数组空间 int n; /记录数组长度public: Array(int aa, int nn); /构造函数,利用aa数组长度nn初始化n, /利用aa数组初始化a所指向的数组空间 Array(Array& aa); /拷贝构造函数 Array& Give(Array& aa); /实现aa赋值给*this的功能并返回*this Array Uion(Array& aa); /实现*this和aa中的数组合
7、并的 /功能,把合并结果存入临时对象并返回 int Lenth() return n; /返回数组长度 void Print() /输出数组 for(int i=0; in; i+) coutai ; coutendl; ; 23. 根据下面类中Uion 函数的原型和注释写出它的类外定义。class Array int *a; /指向动态分配的整型数组空间 int n; /记录数组长度public: Array(int aa, int nn); /构造函数,利用aa数组长度nn初始化n, /利用aa数组初始化a所指向的数组空间 Array(Array& aa); /拷贝构造函数 Array&
8、Give(Array& aa); /实现aa赋值给*this的功能并返回*thisArray Uion(Array& aa); /实现*this和aa中的数组合并的功能,把合并 /结果(其长度为两数组长度之和)存入临时对象并返回 int Lenth() return n; /返回数组长度 void Print() /输出数组 for(int i=0; in; i+) coutai ; coutendl; ; 24. 根据下面类中构造函数的原型和注释写出它的类外定义。class Strings char *s; /指向动态分配的字符串数组空间 int n; /记录字符串长度public: Str
9、ings(char*str); /构造函数,利用str字符串长度初始化n, /利用str字符串初始化s所指的字符串空间 Strings(Strings& str); /拷贝构造函数 Strings& Give(Strings& str); /实现str赋值给*this的功能 Strings Uion(Strings& str); /实现*this和str中的字符串合并的 /功能,把合并结果存入临时对象并返回 int Lenth() return n; /返回字符串长度 void Print() coutsendl; /输出字符串; 25. 根据下面类中拷贝构造函数的原型写出它的类外定义。cla
10、ss Strings char *s; /指向动态分配的字符串数组空间 int n; /记录字符串长度public: Strings(char*str); /构造函数,利用str字符串长度初始化n, /利用str字符串初始化s所指的字符串空间 Strings(Strings& str); /拷贝构造函数 Strings& Give(Strings& str); /实现str赋值给*this的功能 Strings Uion(Strings& str); /实现*this和str中的字符串合并的 /功能,把合并结果存入临时对象并返回 int Lenth() return n; /返回字符串长度 v
11、oid Print() coutsendl; /输出字符串; 26. 根据下面类中Give函数的原型和注释写出它的类外定义。class Strings char *s; /指向动态分配的字符串数组空间 int n; /记录字符串长度public: Strings(char*str); /构造函数,利用str字符串长度初始化n, /利用str字符串初始化s所指的字符串空间 Strings(Strings& str); /拷贝构造函数 Strings& Give(Strings& str); /实现str赋值给*this的功能并返回*this Strings Uion(Strings& str);
12、 /实现*this和str中的字符串合并的 /功能,把合并结果存入临时对象并返回 int Lenth() return n; /返回字符串长度 void Print() coutsendl; /输出字符串; 27. 根据下面类中Uion函数的原型和注释写出它的类外定义。class Strings char *s; /指向动态分配的字符串数组空间 int n; /记录字符串长度public: Strings(char*str); /构造函数,利用str字符串长度初始化n, /利用str字符串初始化s所指的字符串空间 Strings(Strings& str); /拷贝构造函数 Strings&
13、Give(Strings& str); /实现str赋值给*this的功能并返回*thisStrings Uion(Strings& str); /实现*this和str中的字符串连接的功能, /把连接结果存入临时对象并返回 int Lenth() return n; /返回字符串长度 void Print() coutsx)t=x;x=y;y=t; int Variance()return x*x-y*y; /其它函数从略;void main() A_class A_obj(3,5); coutResult:A_obj.Variance()endl; 29. 下面给出了矩阵类Matrix定义
14、。为了求两个矩阵对象的乘积,需要定义一个Matrix的友元函数Multiply()。请按照友元函数Multiply()的声明编写出该函数的定义。class Matrix public: Matrix(int row,int col); /构造一个具有row行col列的矩阵 Matrix() delete mem; /析构函数friend bool Multiply(Matrix &m1, Matrix &m2, Matrix &m3); /定义Multiply()为友元函数,该函数把m1m2的值赋给m3/其他成员函数从略 private: int *mem; /动态申请矩阵空间 const i
15、nt rows,cols; /矩阵的行数和列数;Matrix:Matrix(int row,int col):rows(row),cols(col) mem = new introw*col;bool Multiply(Matrix &m1, Matrix &m2, Matrix &m3)/确定矩阵是否能够进行相乘 if(m1.rows != m3.rows |m2.cols != m3.cols | m1.cols != m2.rows) return false;/定义sum变量,用于计算乘积矩阵m3中每个元素的值 int sum;/请在下面编写剩余部分 30. 已知类定义如下,其中Sha
16、pe为基类,Circle和Rectangle分别Shape的直接派生类,Square为Rectangle的直接派生类和Shape的间接派生类。请模仿Circle类,写出Rectangle类的所有成员函数。/*文件shape.h*/const float PI=3.14159f; /定义圆周率常量class Shape /几何图形抽象类 public: virtual float GetPerimeter()=0; /纯虚函数,计算周长 virtual float GetAre()=0; /纯虚函数,计算面积;class Circle: public Shape /圆类 public: Circ
17、le(float rad):rad(rad) Circle() float GetPerimeter() return 2*PI*rad; /计算圆形周长 float GetAre() return PI*rad *rad; /计算圆形面积 private: float rad; /圆的半径;class Rectangle: public Shape /矩形类 public: /在下面编写每个成员函数 private: float length, width; /矩形的长和宽;class Square: public Rectangle /正方形类 public: Square(float l
18、en): Rectangle(len,len) Square() ; 31. 已知类定义如下,其中Shape为基类,Circle和Rectangle分别Shape的直接派生类,Square为Rectangle的直接派生类和Shape的间接派生类。请模仿Rectangle类,写出Circle类的所有成员函数。/*文件shape.h*/const float PI=3.14159f; /定义圆周率常量class Shape /几何图形抽象类 public: virtual float GetPerimeter()=0; /纯虚函数,计算周长 virtual float GetAre()=0; /纯
19、虚函数,计算面积;class Rectangle: public Shape /矩形类 public: Rectangle (float len,float wid):length(len),width(wid) Rectangle () float GetPerimeter() return 2*(length+width); /计算矩形周长 float GetAre() return length*width; /计算矩形面积 private: float length, width; /矩形的长和宽;class Circle: public Shape /圆类 public: /在下面编
20、写每个成员函数 private: float rad; /圆的半径;class Square: public Rectangle /正方形类public: Square(float len): Rectangle(len,len) Square() ;程序设计参考解答 1. 若采用for循环编写程序,则如下所示: void main() int i=0; double s=0; while(s5) s+=double(1)/+i; coutn=iendl; #include void main() int i; double s=0; for(i=1; s5; i+) s+=1.0/i; coutn=i-1endl; /注意:此i-1的值为所求的n值 2. #include void main() int i; /用i作为循环变量 int p=1; /用p作为累乘变量 int s=1
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1