目录
写在前面:
本文是一篇面向对象的程序设计的题目讲解,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上周留作业啦^^差点没听到作业留啥了。