类的构建与输出的应用与练习

目录

写在前面:

一、题目:

二、分析:

三、程序:

Step1.类对象的设计:

Step2.函数的设计:

Step3.主函数的设计

Step4.程序优化:

 四、特别鸣谢:


写在前面:

本文是一篇面向对象的程序设计的题目讲解,0基础的宝贝们请点击下方链接:更适合滑湿宝宝的类的定义与使用笔记-CSDN博客

一、题目:

        需要求三个长方体的体积,写一个基于对象的程序。数据成员包括 length、width、height。要求用成员函数实现以下功能:

(1)由键盘分别输入三个长方柱的长、宽、高。

(2)计算长方柱的体积。

(3)输出三个长方柱的体积。


二、分析:

        根据题目我们可以基本得出我们需要定义一个类:rectangle,类内对象的三个数据应当为length、width和height;两个函数分别为input输入函数和volume计算体积的函数。基于此,我们根据三个小问逐步解决问题:


三、程序:

Step1.类对象的设计:

        数据只需要在类内进行直接引用,因此将其限定为private;函数限定为public方便主调函数随时调用。

#include<iostream>
using namespace std;
class rectangle {
private:
	double length;
	double width;
	double height;
public:
	void input();
	double volume();
};
Step2.函数的设计:

        我们根据题目的需要设计函数就可以了,注意数据为double型计算时*1.0。

#include<iostream>
using namespace std;

void rectangle::input()
{
	cout << "请输入长方体的长,宽,高:";
	cin >> length >> width >> height;
	return;
}
double rectangle::volume()
{
	double V;
	V = 1.0 * length * width * height;
	return V;
}
Step3.主函数的设计

        这里先在主调函数中声明一个类成员数数组r[3];之后通过使用for循环语句依次调用类内成员函数输出即可。

#include<iostream>
using namespace std;

int main()
{
	rectangle r[3];
	for (int i = 0; i < 3; i++)
	{
		r[i].input();
		cout << "该长方体的体积为:" << r[i].volume() << endl;
	}
	return 0;
}
Step4.程序优化:

        我们注意到长方体的宽是不可以大于长的,我们在这里用if语句来判断输入是否合法就可以了,完整程序如下:

#include<iostream>
using namespace std;
class rectangle {//类成员的定义
private://私有部分
	double length;
	double width;
	double height;
public://公用部分
	void input();
	double volume();
};
int main()
{
	rectangle r[3];//类成员的声明
	for (int i = 0; i < 3; i++)
	{
		r[i].input();
		cout << "该长方体的体积为:" << r[i].volume() << endl;
	}
	return 0;
}
void rectangle::input()//double为函数类型,rectangle::代表着该函数属于rectangle类
{//input 为函数名,如果还需要从主调函数中传参数的话可以放在()中
	cout << "请输入长方体的长,宽,高:";
loop:
	cin >> length >> width >> height;//输入长方体的参数
	if (length < width)//如果长小于宽
	{
		cout << "您输入的长方体不合法,请重新输入:";
		goto loop;//跳转,重新输入
	}
	return;
}
double rectangle::volume()//此处不需要传函数参数,因为它是类的内置成员函数,可以直接访问类内成员
{
	double V;
	V = 1.0 * length * width * height;//体积的计算
	return V;
}

 四、特别鸣谢:

特别感谢子弹老师在习概课上提醒我sgq上周留作业啦^^差点没听到作业留啥了。

  • 18
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蜜汁博哥

我是大学生,给钱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值