当前位置:   article > 正文

类与对象练习题(一)---Point类_类与对象point类练习题c++

类与对象point类练习题c++

类与对象练习题(一)—Point类

在刚开始学习c++的时候刷了很多基础题,这些基础题比较适合初学C++的码友,所以在学完就立即进行了整理,一是为了让初学C++的码友有所参考,二也是为了复习一下所学过知识。
但因为当时在整理时,时间有点紧促,可能会出现一些小错误,于是利用五一假期对之前的文章进行检查,修改了一些小错误,可能有些错误我还没有发现,欢迎码友们对其指正。

以下六道题用到类与对象中的封装友元函数等基础知识,适合初学类与对象这部分的码友进行练习。

Point类01

定义一个Point类,数据成员包括私有数据成员为double类型的点坐标x,y;成员函数包括构造函数Point(用于实现对数据成员x,y的初始化),成员函数Display(用于输出点坐标x、y,输出格式为点坐标用逗号分隔并半角圆括号括起来)。

//main函数如下(不得修改main函数):
int main()
{
       double x,y;
       cin>>x>>y;
       Point p1(x,y);
       p1.Display();
       return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

Sample Input
12.5 22.7
Sample Output
(12.5,22.7)

#include<iostream>
using namespace std;
class Point
{
public:
    Point(double x, double y);
    void Display();
private:
	double m_x;
	double m_y;
};
Point::Point(double x, double y)
{
    m_x = x;
    m_y = y;
}
void Point::Display()
{
    cout << "(" << m_x << "," << m_y << ")" << endl;
}
int main()
{
    double x, y;
    cin >> x >> y;
    Point p1(x, y);
    p1.Display();
    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

Point类02

定义一个Point类,数据成员包括私有数据成员为double类型的点坐标x,y;成员函数包括构造函数Point(用于实现对数据成员x,y的初始化)、成员函数Set(用于改变数据成员x、y的值)、成员函数Display(用于输出点坐标x、y,输出格式为点坐标用逗号分隔并半角圆括号括起来)。

//main函数如下(不得修改main函数):
int main()
{
       double x1,y1,x2,y2;
       cin>>x1>>y1;
       cin>>x2>>y2;
       Point p1(x1,y1);
       p1.Display();
       p1.Set(x2,y2);
       p1.Display();
       return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

Sample Input
10 25.5 5.5 20
Sample Output
(10,25.5)
(5.5,20)

#include<iostream>
using namespace std;
class Point
{
public:
    Point(double x, double y);
    void Set(double x, double y);
    void Display();
private:
    double m_x;
    double m_y;
};
Point::Point(double x, double y)
{
    m_x = x;
    m_y = y;
}
void Point::Set(double x, double y)
{
    m_x = x;
    m_y = y;
}
void Point::Display()
{
    cout << "(" << m_x << "," << m_y << ")" << endl;
}
int main()
{
    double x1, y1, x2, y2;
    cin >> x1 >> y1;
    cin >> x2 >> y2;
    Point p1(x1, y1);
    p1.Display();
    p1.Set(x2, y2);
    p1.Display();
    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

Point类03

定义一个Point类,数据成员包括私有数据成员为double类型的点坐标x,y;成员函数包括构造函数Point(用于实现对数据成员x,y的初始化)、成员函数Set(用于改变数据成员x、y的值)、成员函数LeftMove(点坐标向左移动detax)、成员函数上移UpMove(点坐标上移detay)、成员函数Display(用于输出点坐标x、y,输出格式为点坐标用逗号分隔并半角圆括号括起来)。

//main函数如下(不得修改main函数):
int main()
{
       double x1,y1,x2,y2,dx,dy;
       cin>>x1>>y1;
       cin>>dx;
       cin>>dy;
       cin>>x2>>y2;
       Point p1;
       p1.Display();
       p1.Set(x1,y1);
       p1.Display();
       p1.LeftMove(dx);
       p1.Display();
       p1.UpMove(dy);
       p1.Display();
       Point p2(x2,y2);
       p2.Display();
       return 0;
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

Sample Input
10 25.5 5 10 5.5 20
Sample Output
(0,0)
(10,25.5)
(5,25.5)
(5,35.5)
(5.5,20)

#include<iostream>
using namespace std;
class Point
{
public:
    Point(double x=0, double y=0);
    void Set(double x, double y);
    void LeftMove(double dx);
    void UpMove(double dy);
    void Display();
private:
    double m_x;
    double m_y;
};
Point::Point(double x, double y)
{
    m_x = x;
    m_y = y;
}
void Point::Set(double x, double y)
{
    m_x = x;
    m_y = y;
}
void Point::LeftMove(double dx)
{
    m_x = m_x - dx;
}
void Point::UpMove(double dy)
{
    m_y = m_y + dy;
}
void Point::Display()
{
    cout << "(" << m_x << "," << m_y << ")" << endl;
}
int main()
{
    double x1, y1, x2, y2, dx, dy;
    cin >> x1 >> y1;
    cin >> dx;
    cin >> dy;
    cin >> x2 >> y2;
    Point p1;
    p1.Display();
    p1.Set(x1, y1);
    p1.Display();
    p1.LeftMove(dx);
    p1.Display();
    p1.UpMove(dy);
    p1.Display();
    Point p2(x2, y2);
    p2.Display();
    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55

Point类04

定义一个点类Point,数据成员为平面点坐标x,y,成员函数有:构造函数,函数display显示点信息,函数GetX,GetY分别获取私有成员x,y的值。编写一个普通函数,计算两点间距离,函数原型double Distance(Point &p1,Point &p2)。主函数中输入两个点信息,定义两个类对象,利用display显示各自的点信息,再利用Distance计算两点距离。
Sample Input
0 0 10 20
Sample Output
Point(0,0)
Point(10,20)
Distance:22.3607

#include<iostream>
#include<cmath>
using namespace std;
class Point
{
public:
	Point(int x, int y);
	void Display();
	int GetX();
	int GetY();
private:
	int m_x;
	int m_y;
};
Point::Point(int x, int y)
{
	m_x = x;
	m_y = y;
}
void Point::Display()
{
	cout << "Point " << "(" << m_x << "," << m_y << ")" << endl;
}
int Point::GetX()
{
	return m_x;
}
int Point::GetY()
{
	return m_y;
}
double Display(Point& p1, Point& p2)
{
	double dx;
	double dy;
	dx = (p1.GetX() - p2.GetX()) * (p1.GetX() - p2.GetX());
	dy = (p1.GetY() - p2.GetY()) * (p1.GetY() - p2.GetY());
	return sqrt(dx + dy);
}
int main()
{
	int x1, y1, x2, y2;
	cin >> x1 >> y1 >> x2 >> y2;
	Point p1(x1, y1);
	p1.Display();
	Point p2(x2, y2);
	p2.Display();
	cout << "Distance:" << Display(p1, p2) << endl;
return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50

Point类05

定义一个点类Point,数据成员为平面点坐标x,y,成员函数有:构造函数,函数display显示点信息,成员函数Distance实现计算两个点间距离。函数原型double Distance(const Point &p)。主函数中输入两个点信息,定义两个类对象,利用display显示各自的点信息,再利用Distance计算两点距离。
Sample Input
0 0 10 20
Sample Output
Point(0,0)
Point(10,20)
Distance:22.3607

#include<iostream>
#include<cmath>
using namespace std;
class Point
{
public:
	Point(int x, int y);
	void Display();
	double Distance(const Point& p);
private:
	int m_x;
	int m_y;
};
Point::Point(int x, int y)
{
	m_x = x;
	m_y = y;
}
void Point::Display()
{
	cout << "Point " << "(" << m_x << "," << m_y << ")" << endl;
}
double Point::Distance(const Point& p)
{
	return sqrt((p.m_x - m_x) * (p.m_x - m_x) + (p.m_y - m_y) * (p.m_y - m_y));
}
int main()
{
	int x1, y1, x2, y2;
	cin >> x1 >> y1 >> x2 >> y2;
	Point p1(x1, y1);
	p1.Display();
	Point p2(x2,y2);
	p2.Display();
	cout << "Distance:" << p1.Distance(p2) << endl;
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

Point类06

定义一个点类Point,数据成员为平面点坐标x,y,成员函数有:构造函数,函数display显示点信息,利用友元函数Distance实现计算两个点间距离。函数原型double Distance(const Point &p1,const Point &p2)。主函数中输入两个点信息,定义两个类对象,利用display显示各自的点信息,再利用Distance计算两点距离。
Sample Input
0 0 10 20
Sample Output
Point(0,0)
Point(10,20)
Distance:22.3607

#include<iostream>
#include<cmath>
using namespace std;
class Point
{
public:
	Point(double x, double y);
	void Display();
	friend double Distance(const Point& p1, const Point& p2);
private:
	double m_x;
	double m_y;
};
Point::Point(double x, double y)
{
	m_x = x;
	m_y = y;
}
void Point::Display()
{
	cout << "Point(" << m_x << "," << m_y << ")" << endl;
}
double Distance(const Point& p1, const Point& p2)
{
	double dx, dy;
	dx = (p1.m_x - p2.m_x) * (p1.m_x - p2.m_x);
	dy = (p1.m_y - p2.m_y) * (p1.m_y - p2.m_y);
	return sqrt(dx + dy);
}
int main()
{
	double x1, y1, x2, y2;
	cin >> x1 >>y1 >> x2 >> y2;
	Point p1(x1, y1);
	p1.Display();
	Point p2(x2, y2);
	p2.Display();
	cout << "Distance:" << Distance(p1, p2) << endl;
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40

大家好,我是Lucky_追梦仔。一个正在学习编程的小白,希望我的博文,可以帮助到您学习,或者解决您遇到的问题。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/91025
推荐阅读
相关标签
  

闽ICP备14008679号