我是计算机专业的一位大一本科生,C++小白,下面是我们学校在学习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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
这六道题要用到类与对象中的封装,友元函数等基础知识,适合初学类与对象这部分的码友进行练习。