C++程序设计试卷
cout << \输出结果\car1. show (); tru1. show (); }
7、设计一个点类Point,包含点的坐标x,y 两个数据成员,采用友元类的方式分别计算两点间的水平距离和垂直距离。 #include
class Point;//先声明类型Point
int horizontalDistance(const Point& first, const Point& second);//水平距离函数声明
int verticalDistance(const Point& first, const Point& second);//垂直距离函数声明
class Point { private: int x;//横坐标 int y;//纵坐标 public:
Point(int x=0, int y = 0)//构造函数 {
this->x = x; this->y = y; }
friend int horizontalDistance(const Point& first, const Point& second); friend int verticalDistance(const Point& first, const Point& second); };
//水平距离函数定义
第 21 页 共 29 页
C++程序设计试卷
int horizontalDistance(const Point& first, const Point& second) {
if(first.x -second.x >=0) return first.x-second.x; else
return second.x-first.x; }
//垂直距离函数定义
int verticalDistance(const Point& first, const Point& second) {
if(first.y -second.y >=0) return first.y-second.y; else
return second.y-first.y; }
int main() {
Point a(1,2); //定义三个Point对象 Point b(0,0); Point c(-1,-1); //测试
cout<< horizontalDistance(a,b) < 8、设计一个点类Point,包含横、纵两个坐标数据x,y,由它派生出圆类Circle,并添加一个半径数据r,求其面积area。 第 22 页 共 29 页 C++程序设计试卷 #include Point(float x1,float y1) { x=x1; y=y1; } virtual float area()=0; virtual float perim()=0;//周长 private: float x; float y; }; class Circle:public Point { public: Circle(float x1,float y1,float r1); float area(); float perim(); private: 第 23 页 共 29 页 C++程序设计试卷 float r; }; Circle::Circle(float x1,float y1,float r1):Point(x1,y1) { r=r1; } float Circle::area() { return PI*r*r; } float Circle::perim() { return 2*PI*r; } int main() { Point *p; Circle circle(0,0,3);//前两个为point(0,0),第三个常量\为圆的半径。 p=&circle; cout<<\的周长是:\ cout<<\的面积是:\} 9、设计一个点类Point,包含两个坐标数据成员x,y和一个构造函数;再设计一个友元函数distance()用于求两点之间的距离。 #include class Point;//先声明类型Point 第 24 页 共 29 页 C++程序设计试卷 int horizontalDistance(const Point& first, const Point& second);//水平距离函数声明 int verticalDistance(const Point& first, const Point& second);//垂直距离函数声明 class Point { private: int x;//横坐标 int y;//纵坐标 public: Point(int x=0, int y = 0)//构造函数 { this->x = x; this->y = y; } friend int horizontalDistance(const Point& first, const Point& second); }; //水平距离函数定义 int horizontalDistance(const Point& first, const Point& second) { if(first.x -second.x >=0) return first.x-second.x; else return second.x-first.x; } int main() { Point a(1,2);//定义三个Point对象 Point b(0,0); Point c(-1,-1); 第 25 页 共 29 页