《面向对象程序设计》第二次上机测试题目及要求
一、考核目标
(一)数组、指针与字符串
1.掌握数组、字符串数据的定义和使用;掌握标准C++库中string的使用;
2.掌握指针的使用方法;掌握动态内存分配实现动态数组,并体会指针在其中的作用。 (二)继承与派生
1.理解继承、派生的基本概念及意义。 2.掌握派生类定义及派生类对象实例化。 3.掌握类型兼容规则、派生类成员的标识与访问。 4.虚基类解决二义性问题。
二、考试要求
1.不允许携带U盘和教材等进入考场。
2.考试过程中保持安静,独立按要求完成考试题目。
3.考试结束后,请坐在座位上,等待监考老师确认你的考题之后方可离开。
三、考试内容
在桌面上新建一个文件夹,以“学号+姓名”形式命名,如:20130102张三。 该文件夹中应该包含两个子文件夹(文件夹名分别为:第一题 第二题),分别存放两道题的相关文件以及测试结果等。
第一大题: 所有同学都完成
1.已知Point类的声明如下: #include
public: //外部接口 Point(); //构造函数
Point(int xx, int yy) ;//构造函数 Point(Point &p); //拷贝构造函数 int GetX() const {return X;} int GetY() const {return Y;}
void move(int newx,int newy) {x=newx; y=newy;} ~Point(){}
private: //私有数据 int X,Y; };
class ArrayofPoints {
Point &element(int index){
assert(index>=0 && index //计算任意两点之间的街区距离 int L1Distance (int x1,int y1,int x2,int y2){ return(abs(x1-x2)+abs(y1-y2)); } 请给出Point类的构造函数,并参照下图创建动态数组类ArrayofPoints,实现主函数。请自行补充需要的头文件。 //主程序 int main() { int count; cout<<”Please enter the count of Points”< cin>>count; ArrayofPoints ArrPoints(count); ArrPoints.element(0).move(5,10); ArrPoints.element(1).move(15,20); cout<<”The distance is” < cout< #include public: //外部接口 Point(); //构造函数 Point(int xx, int yy) ;//构造函数 Point(Point &p); //拷贝构造函数 int GetX() const {return x;} int GetY() const {return y;} void move(int newx,int newy) {x=newx; ~Point(){} private: //私有数据 int x,y; }; Point::Point(){ y=newy;} } x = 0; y = 0; Point::Point(int xx, int yy){ } class ArrayofPoints { public: ArrayofPoints(int size){ } ~ArrayofPoints(){ } Point &element(int index){ this->size = size; this->x = xx; this->y = yy; assert(index>=0 && index } private: }; int L1Distance (int x1,int y1,int x2,int y2){ return(abs(x1-x2)+abs(y1-y2)); } int main() { int count; cout<<\cin>>count; ArrayofPoints ArrPoints(count); ArrPoints.element(0).move(5,10); ArrPoints.element(1).move(15,20); cout<<\ int size;