实验目的:
1.理解类和对象的概念,掌握声明类和定义对象的方法
2.掌握构造函数和析构函数的实现方法
3.初步掌握使用类和对象编制C+ +程序
实验内容3.1坐标Coordinate
创建一个类,完成以下功能:
(1)连续输入一组二维坐标值;
(2)二维坐标值的数目可以由用户自定义(默认为两个,最多为100组);
(3)显示用户输入的坐标值;
(4)显示用户输入坐标的均值;
作业:
1.观察例程中的构造函数和析构函数的运行顺序;
2.在main()函数中加入如下代码,观察运行结果:
Coordinate y;
y.InputCoord();
y.ShowCoord();
y.ShowAvgCoord();
return 0;
代码:
#include<iostream>
using namespace std;
class Coordinate {
public:
Coordinate()
{
times = 2;
cout << "Coordinate construction1 called!" << endl;
}
Coordinate(int times1)
{
times = times1;
cout << "Coordinate construction2 called!" << endl;
}
~Coordinate()
{
cout << "Coordinate destruction called!" << endl;
}
void InputCoord()
{
for (int i = 0;i < times;i++)
{
cout << "Please Input x:" << endl;
cin >> Coord[i][1];
cout << "Please Input y:" << endl;
cin >> Coord[i][2];
}
}
void ShowCoord()
{
cout << "The coord is:" << endl;
for (int i = 0;i < times;i++)
{
cout << "(" << Coord[i][1] << "," << Coord[i][2] << ")" << endl;
}
}
void ShowAvgCoord()
{
float avgx = 0;
float avgy = 0;
for (int i = 0;i < times;i++)
{
avgx = avgx + Coord[i][1];
avgy = avgy + Coord[i][2];
}
avgx = avgx / times;
avgy = avgy / times;
cout << "The AVG cooid is:" << endl;
cout << "(" << avgx << "," <<avgy <<")" << endl;
}
private:
float Coord[100][100];
int times;
};
int main()
{
Coordinate x;
x.InputCoord();
x.ShowCoord();
x.ShowAvgCoord();
}
例:依次输入x=100,y=200,x=110,y=220;
输出结果:
Coordinate construction1 called!
Please Input x:
100
Please Input y:
200
Please Input x:
110
Please Input y:
220
The coord is:
(100,200)
(110,220)
The AVG cooid is:
(105,210)
Coordinate destruction called!
加入代码后:
#include<iostream>
using namespace std;
class Coordinate {
public:
Coordinate()
{
times = 2;
cout << "Coordinate construction1 called!" << endl;
}
Coordinate(int times1)
{
times = times1;
cout << "Coordinate construction2 called!" << endl;
}
~Coordinate()
{
cout << "Coordinate destruction called!" << endl;
}
void InputCoord()
{
for (int i = 0;i < times;i++)
{
cout << "Please Input x:" << endl;
cin >> Coord[i][1];
cout << "Please Input y:" << endl;
cin >> Coord[i][2];
}
}
void ShowCoord()
{
cout << "The coord is:" << endl;
for (int i = 0;i < times;i++)
{
cout << "(" << Coord[i][1] << "," << Coord[i][2] << ")" << endl;
}
}
void ShowAvgCoord()
{
float avgx = 0;
float avgy = 0;
for (int i = 0;i < times;i++)
{
avgx = avgx + Coord[i][1];
avgy = avgy + Coord[i][2];
}
avgx = avgx / times;
avgy = avgy / times;
cout << "The AVG cooid is:" << endl;
cout << "(" << avgx << "," <<avgy <<")" << endl;
}
private:
float Coord[100][100];
int times;
};
int main()
{
Coordinate x;
x.InputCoord();
x.ShowCoord();
x.ShowAvgCoord();
Coordinate y;
y.InputCoord();
y.ShowCoord();
y.ShowAvgCoord();
return 0;
}
输入:
例:
依次输入x=100,y=200,x=110,y=220;
x=300,y=400,x=330,y=440;
输出结果为:
Coordinate construction1 called!
Please Input x:
100
Please Input y:
200
Please Input x:
110
Please Input y:
220
The coord is:
(100,200)
(110,220)
The AVG cooid is:
(105,210)
Coordinate construction1 called!
Please Input x:
300
Please Input y:
400
Please Input x:
330
Please Input y:
440
The coord is:
(300,400)
(330,440)
The AVG cooid is:
(315,420)
Coordinate destruction called!
Coordinate destruction called!