/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:
* 作 者: 吴瑕
* 完成日期: 2012 年 03 月 19 日
* 版 本 号:
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:编写基于对象的程序,求5个长方柱的体积和表面积。长方柱类的数据成员包括长(length)、宽(width)、高(heigth)等。另外:(1) 需要定义长方柱类,5个长方柱采用一个对象数组表示;(2) 前4个长方柱(即数组的前4个元素)要在定义数组时初始化,其中前3个直接给出参数初始化,第4个用默认构造函数初始化;第5个长方柱定义时不初始化,而是由键盘输入长、宽、高赋值;(3) 输出这5个长方柱的体积和表面积;
#include <iostream>
using namespace std;
class T
{
public:
T(float x=10,float y=10,float z=10):a(x),b(y),c(z){}//用参数初始化表赋初值
float volume();
float areas();
void input();
private:
float a,b,c;
} ;
float T:: volume()
{
return(2*(a*b+a*c+b*c));
}
float T::areas()
{
return (a*b*c);
}
void T::input()
{
cout<<"长方主的长宽高为:";
cin>>a>>b>>c;
}
int main()
{
T a[5]={T(10,12,10) ,T(12,18,20),T(20,19,10),T()};//前三个传递实参初始化,第四个使用默认值
cout<<"第一个长方主的表面积为:"<<a[0].volume()<<"体积为:"<<a[0].areas()<<endl;
cout<<"第二个长方主的表面积为:"<<a[1].volume()<<"体积为:"<<a[1].areas()<<endl;
cout<<"第三个长方主的表面积为:"<<a[2].volume()<<"体积为:"<<a[2].areas()<<endl;
cout<<"第四个长方主的表面积为:"<<a[3].volume()<<"体积为:"<<a[3].areas()<<endl;
a[5].input();//第五个自己输值
cout<<"第五个长方主的表面积为:"<<a[4].volume()<<"体积为:"<<a[4].areas()<<endl;
return 0;
}
运行结果:
上机感言:
这次又重温了有关数组的知识!在定义对象数组时初始化的值前要用类名。