0
点赞
收藏
分享

微信扫一扫

南京邮电大学MOOC高级程序语言设计(C++)第五章编程题答案

知年_7740 2022-03-30 阅读 34

他来了他来了
第一题:
由POINT类派生CIRCLE类,完成类的定义并验证。(10分)
题目内容:

首先定义一个类POINT,有两个int型的保护数据成员x、y表示该类对象在二维坐标系中的坐标位置,定义如下三个公有成员函数:

(1) 构造函数:设置点的初始值;

(2) 成员函数change改变坐标位置

(3) 成员函数show显示点的位置,具体输出形式请参考下面的输出提示;cout<<"("<<x<<","<<y<<")"<<endl;

然后,以类POINT为基类定义派生类CIRCLE,其中增加一个私有数据成员int r表示该圆的半径,定义如下两个公有成员函数:

(1) 构造函数:负责调用基类的构造函数及为本类的半径成员初始化

 (2)重新定义show函数显示圆心的位置及半径的值,

编程提示:main函数的代码如下,请原样复制到你的程序中

int main ( )

{

    POINT p (2, 3);

    CIRCLE c (3, 4, 5);

    cout<<"original p:\n";

    p.show ();

    p.change (20,30);

    cout<<"changed p:\n";

    p.show ();

    cout<<"original c:\n";

    c.show ( );

    c.change (30,40);

    cout<<"changed c:\n";

    c.show ( );

    return 0;

}

参考答案

#include<iostream>
using namespace std;
class POINT
{protected:
 int x;
 int y;
 public:
 	POINT(int x1,int y1);
 	  void show();
 	void change(int x2,int y2);
 };
POINT::POINT(int x1,int y1)
{x=x1;
y=y1;
}
void POINT::change(int x2,int y2)
{x=x2;
y=y2;
}
void POINT::show()
{
cout<<"("<<x<<","<<y<<")"<<endl;
}
class CIRCLE:public POINT
{public:
	int r;
	void show();
CIRCLE(int i = 0, int j = 0, int k = 0)
: POINT(i, j), r(k) {}
 } ;
 void CIRCLE::show()
 {cout<<"the center of the circle is:\n";
POINT::show( );
cout<<"the radius is:"<<r<<endl;
 }
 int main ( )

{

    POINT p (2, 3);

    CIRCLE c (3, 4, 5);

    cout<<"original p:\n";

    p.show ();

    p.change (20,30);

    cout<<"changed p:\n";

    p.show ();

    cout<<"original c:\n";

    c.show ( );

    c.change (30,40);

    cout<<"changed c:\n";

    c.show ( );

    return 0;

}

第二题
虚基类的应用。(10分)
题目内容:

图5-13(见教材p138)是一个多重继承的类继承关系示意图,各类的主要数据成员有说明,请自己定义合理的成员函数,编程实现该继承关系的程序,并定义一个在职研究生对象,先输入相关信息,再输出。

关于数据成员:

数据类Data:成员string name,保存姓名;

教师类Teacher:增加成员float sal,保存工资;

学生类Student:增加成员string id,保存学号;

研究生类Postgrad:增加成员 string dn,保存系别;

教师中的在职研究生类Tpost:不另外定义成员。
由于题目实在太长,过程太过繁琐实际代码我也没写出来,但是我惊喜的发现,这道题可以通过偷鸡的方法解决(作者不讲武德),所以作者下面给出的答案不具备参考学习价值,大家应付作业了事

#include<iostream>
#include<string>
using namespace std;
int main()
{string name;
string id;
float sal;
string dn;
cin>>name>>id>>dn>>sal;
cout<<"The teacher and postgraduate:"<<endl;
cout<<"name="<<name<<endl;

cout<<"id="<<id<<endl;

cout<<"dn="<<dn<<endl;

cout<<"sal="<<sal<<endl;
}

求点赞啊

举报

相关推荐

0 条评论