上机 3.1 Coordinate 坐标

这篇博客通过一个C++编程实例介绍了类和对象的使用,包括构造函数和析构函数的实现。用户可以输入二维坐标,程序会显示坐标、计算并显示平均值。实验内容涉及构造函数的调用顺序和析构函数的使用,同时探讨了类对象数组的创建和不同赋值方式。
摘要由CSDN通过智能技术生成

202130310075

标题1:上机目的:

1:了解类和对象的概念,掌握声明类和定义对象的方法。

2:掌握构造函数和析构函数的实现方法。

3:初步掌握使用类和对象编制C++程序。


标题2:上机要求:

创建一个类,完成以下功能

1:连续输入一组二维坐标。

2:二维坐标值的数目可以由用户自定义。(默认为2个)

3:显示用户输入的坐标。

4:显示用户输入坐标值的均值。


具体实现: 关于 类的 定义和声明

class Coordinate {

public:
	Coordinate()
	{
		times = 2;
		cout << "Coordinate construction1 called!" << endl;
	}
	Coordinate(int times1) //用户自定义输入坐标的数目
	{
		times = times1;
		cout << "Coordinate construction2 called!" << endl;
	}
	~Coordinate()
	{
		cout << "Coordinate construction 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 coord is:" << endl;
		cout << "(" << avgx << "," << avgy << ")" << endl;

	}
private:
	float Coord[100][100]; // 存放坐标的二维数组
	int times; // 坐标值数目
};

实验内容:

1:观察代码中构造函数和析构函数运行顺序。。

2:在main函数内加入 Coordinate y(5);  y.InputCoord();  y.ShowCoord(); y.ShowAvgCoord();观察运行结果。


任务一:代码实现

Coordinate() //构造函数
	{
		cout << "Coordinate construction1 called!" << endl;
	}
~Coordinate() //析构函数
	{
		cout << "Coordinate construction called!" << endl;
	}

操作:在main函数中创建一个一个类对象,运行代码后观察字符输出情况。

结论:构造函数在类对象创建时运行,在main函数介绍后完成 析构函数。


任务二:代码实现

int main()
{
	Coordinate y(5);//创建一个名为y的类对象,含有5的坐标值。
	y.InputCoord(); 用户输入坐标值
	y.ShowCoord();  显示用户输入的坐标值
	y.ShowAvgCoord(); 显示用户输入坐标值的平均值
	system("pause");
	return 0;
}

运行结果:


最后高级要求:

类似课堂所展示的代码:使用对象数组、赋值式定义、先定义后赋值、多重花括号赋值等,并简单总结/归纳这些方法中的构造和析构函数调用时刻和特点。

Coordinate(int times1) :times(times1 )    //冒号初始化
	{
		cout << "Coordinate construction2 called!" << endl;
	}
Coordinate arr[5]; //类对象数组

注意:构造函数后面的冒号就是初始化,而括号里面的等于号并不是初始化,而是变量生成以后的赋值而已。const和引用不可以被赋值,只能被初始化。

总结:

①构造函数和析构函数是在类体中说明的两种特殊的成员函数。
②构造函数的功能是在创建对象时,使用给定的值来将对象初始化。
③析构函数的功能是用来释放一个对象的。在对象删除前,用它来做一些清理工作,它与构造函数的功能正好相反。

                上机3—1具体实验要求已经实现,感谢。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值