面向对象程序设计复习题,选择题(6)

2019-01-05 10:49

} 运行结果: A::A() called. B::B() called. B::~B() called. A::~A() called.

9. #include \class test {

private: int num; float fl; public: test( );

int getint( ){return num;} float getfloat( ){return fl;} ~test( ); };

test::test( ) {

cout << \num=0;fl=0.0; }

test::~test( ) {

cout << \}

void main( ) {

test array[2];

cout << array[1].getint( )<< \}

运行结果:

Initalizing default Initalizing default 0 0

Desdtructor is active Desdtructor is active 10. #include class base {

protected:

int private1; public:

base(int p){private1=p;} };

class derived1:virtual public base

{

public:

derived1(int p1):base(p1){};

int get_private(){return private1;} };

class derived2:virtual public base {

public:

derived2(int p2):base(p2){};

int get_private(){return private1;} };

class derived12:public derived1,public derived2 {

public:

derived12(int p1,int p2,int pb):derived1(p1), base(pb), derived2(p2){}; };

void main() {

derived12 d(10,20,30);

cout<

运行结果: 3030

11. #include template class pair {

T value1, value2; public:

pair (T first, T second)

{value1=first; value2=second;} T getmax (); };

template T pair::getmax () {

T retval;

retval = value1>value2? value1 : value2; return retval; }

void main () {

pair myobject (100, 75); cout << myobject.getmax()<

12. #include class A{ public:

static int n; A(){n++;}; ~A(){n--;}; };

int A::n=0; int main(){ A a; A b[3]; A *c=new A; c=&a;

cout<n<运行结果: 5 5

13. #include class A {

public:

A(){ cout<<\

A(int a) {cout<<\};

class B:public A {

public:

B(int a){cout<<\};

class C:public B {

public:

C(int a):B(a){cout<<\};

void main() {

C c(2); }

运行结果: A:no para meter B:int parameter C:int parameter

14. #include class myclass

{

int a, b; public:

friend int sum(myclass x); void set_ab(int i, int j); };

void myclass::set_ab(int i, int j) {

a = i; b = j; }

int sum (myclass x) { return x.a + x.b;} void main() { myclass n;

n.set_ab (3, 4); cout <

运行结果: 7 四、编程题:

1.编写一个学生和教师数据输入和显示程序,学生数据要求有编号、姓名、班号和成绩,教师数据有编号、姓名、职称和部门。要求将编号、姓名的输入和显示设计成一个类person,并作为学生数据操作类student和教师数据操作类teacher的基类,学生数据中的班号和成绩的输入和显示在student类中实现,教师数据中的职称和部门的输入和显示在teacher类中实现。最后在主函数中进行该类的测试。

下面给出了基类person的主要成员:

(1) 私有成员:

? int no;编号

? string name;姓名 (2) 公有成员:

? void input();编号和姓名的输入 ? void display();编号和姓名的显示

2.建立一个ARRAY类,求一维数组中各元素的最大值、最小值和平均值。要求如下:

(1) 私有成员:

? int data[10]:数组名称 ? int max:元素的最大值 ? int min:元素的最小值

? float average:各元素的平均值 (2) 公有成员:

? 构造函数ARRAY(int a[10]):初始化成员数组

? void process():求data数组中的最大值、最小值和平均值 ? void print():输出数组中元素的最大值、最小值和平均值 (3) 在主程序中进行该类的测试。

3.现有Complex类用于描述复数,其定义如下:

class Complex{ private:

double image; //描述实部 double real; //描述需部

public:

Complex (double i=0,double j=0)

{ real=i;

image=j; }

};

在复数类中重载“+”运算符用于完成可以将一个复数和一个复数相加后返回一个复数;重载“-”运算符用于将一个复数的实部和一个实数相减并返回一个复数;重载 “<<”运算符为复数类友员,用于输出复数。重新定义复数类,并在main函数中测试。

4、一个简单的时间类Time,它具有数据成员h、m、s(用来表示当前时间的时、分、秒)和相应的类成员函数。试完成各类成员函数并编制主函数,说明Time类对象,对定义的各成员函数进行调用,以验证它们的正确性。 class Time {

private: int h,m,s; public:

Time(int h0=0,int m0=0,int s0=0);//构造函数,设置时、分、秒并设置参数默认值 void addSec(int sec); //增加若干秒,sec>0 void addMin(int min); //增加若干分,min>0

void addHour(int hour); //增加若干小时,hour>0

void print( ); //在屏幕上输出有关数据(时:分:秒) };

注意:对时分秒的增加要涉及到所谓的“进位”处理问题:秒数超过60要“进位”到分,超过60分则要“进位”到时,而时数超过24后要“甩掉”24以上的部分。 5、自定义如下形式的point类,其对象表示平面上的一个点(x,y),通过类成员函数方式对该类重载双目运算符“+”和“^”,用来求出两个对象的和以及两个对象(平面点)的距离。各运算符的使用含义(运算结果)如下所示: (1.2,-3.5)+(-1.5,6)=(-0.3,2.5) (1.2,-3.5)^(-1.5,6)= 9.87623

实现类成员函数,并编制主函数,说明类对象,而后通过类对象实现所定义的相关运算(以验证其正确性)。 class point { private:

double x,y; public:

point(double x0=0,y0=0) { x=x0;y=y0 ;}

point operator+(point pt2); double operator^(point pt2); void display(); };

6、创建类Block用来描述长方体,私有数据成员length、width、height记录长方体的长、宽、高。要求用成员函数实现以下功能:①成员函数input用来从键盘分别输入长方柱的长、宽、高;②成员函数volume计算长方柱的体积;③成员函数output输出长方柱的体积。

7、有一个日期类Date,它有私有数据y,m,d,此类的对象作为另一个类Person的私有成员,用以描述一个人的姓名,出生日期及性别,编写必要的成员函数后在main函数中进行测试(Date类和Person类中有默认构造函数和析构函数)。

8、定义基类Student,含有私有数据成员num,name,sex,公有成员函数get_value()用于输入数据,display()用于输出数据。定义派生类Student1(从基类公有继承),含有私有数据成员age,addr,设计派生类的成员函数,使程序运行时输入num,name,sex,age,addr的值,程序应输出以上5个数据的值。 9、写一个程序,定义抽象基类Shape,它有三个公有派生类:类Circle用来描述圆形,类Rectangle用来描述矩形,类Triangle用来描述三角形。用虚函数area( )分别计算几种图形的面积,并求它们的和。

10、将file1.txt文件中的大写字母改为小写字母,复制到另一个文件file3.txt中。


面向对象程序设计复习题,选择题(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2017中传电影学考研各细分专业有电影艺术史论方向吗

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: