C++的问题,还请用比较简单的,能不构造就不构造,好的话可以追加分.
来源:学生作业帮 编辑:大师作文网作业帮 分类:数学作业 时间:2024/11/13 13:39:41
C++的问题,还请用比较简单的,能不构造就不构造,好的话可以追加分.
l 输入圆的半径,计算并输出圆的周长和面积;
l 输入圆柱的半径和高,计算并输出圆柱的表面积和体积;
l 输入圆锥的半径和高,计算并输出圆锥的表面积和体积;
l 输入圆球的半径,计算并输出圆球的表面积和体积;
l 输入长方形的长和宽,计算并输出长方形的周长和面积;
l 输入长方体的长、宽和高,计算并输出长方体的表面积和体积.
要求:
① 必须设计圆、圆柱、圆锥、圆球、长方形、长方体等类;
② 必须应用类的继承和派生;
③ 必须应用虚函数;
能反复计算,除非用户选择退出
l 输入圆的半径,计算并输出圆的周长和面积;
l 输入圆柱的半径和高,计算并输出圆柱的表面积和体积;
l 输入圆锥的半径和高,计算并输出圆锥的表面积和体积;
l 输入圆球的半径,计算并输出圆球的表面积和体积;
l 输入长方形的长和宽,计算并输出长方形的周长和面积;
l 输入长方体的长、宽和高,计算并输出长方体的表面积和体积.
要求:
① 必须设计圆、圆柱、圆锥、圆球、长方形、长方体等类;
② 必须应用类的继承和派生;
③ 必须应用虚函数;
能反复计算,除非用户选择退出
#include <iostream>
#include <cmath>
#define PAI 3.1415926 //π值
using namespace std;
//基类
class graph
{
protected:
float area; //面积
public:
virtual void setSize()=0;
virtual void getArea()=0;
};
//圆
class circle:public graph
{
float radius; //半径
float perimeter; //高
public:
void setSize()
{
cout<<"输入圆的半径:";
cin>>radius;
}
void getArea()
{
area=PAI*radius*radius;
cout<<"此矩形的面积="<<area<<endl;
}
void getPerimeter()
{
perimeter=2*PAI*radius;
cout<<"此矩形的周长="<<perimeter<<endl;
}
};
//圆柱体
class cylinder:public graph
{
private:
float radius; //半径
float height; //高
public:
void setSize()
{
cout<<"输入圆柱半径和高(以空格隔开):";
cin>>radius>>height;
}
void getArea()
{
area=(PAI*radius*radius)*2+(2*PAI*radius)*height;
cout<<"此圆柱的表面积="<<area<<endl;
}
void getVolumn()
{
area=PAI*radius*radius*height;
cout<<"此圆柱的体积="<<area<<endl;
}
};
//圆锥体
class tapered:public graph
{
private:
float radius; //半径
float height; //高
public:
void setSize()
{
cout<<"输入圆锥半径和高(以空格隔开):";
cin>>radius>>height;
}
void getArea()
{
area=(2*PAI*radius)/2*sqrt(radius*radius+height*height);
cout<<"此圆锥的表面积="<<area<<endl;
}
void getVolumn()
{
area=PAI*radius*radius*height/3;
cout<<"此圆锥的体积="<<area<<endl;
}
};
//球体
class circleball:public graph
{
private:
float radius; //半径
public:
void setSize()
{
cout<<"输入球的半径:";
cin>>radius;
}
void getArea()
{
area=4*PAI*radius*radius;
cout<<"此球体的面积="<<area<<endl;
}
void getVolumn()
{
area=3*PAI*radius*radius*radius/4;
cout<<"此球体的体积="<<area<<endl;
}
};
//长方形
class square:public graph
{
private:
float width; //宽
float length; //长
float perimeter; //周长
public:
void setSize()
{
cout<<"输入矩形长和宽(以空格隔开):";
cin>>length>>width;
}
void getArea()
{
area=width*length;
cout<<"此矩形的面积="<<area<<endl;
}
void getPerimeter()
{
perimeter=width*2+length*2;
cout<<"此矩形的周长="<<perimeter<<endl;
}
};
//长方体
class cuboid:public graph
{
private:
float length; //长
float width; //宽
float heigth; //高
public:
void setSize()
{
cout<<"输入长方体长、宽、高(以空格隔开):";
cin>>length>>width>>heigth;
}
void getArea()
{
area=length*width*2+length*heigth*2+width*heigth*2;
cout<<"此长方体的表面积="<<area<<endl;
}
void getVolumn()
{
area=length*width*heigth;
cout<<"此长方体的体积="<<area<<endl;
}
};
void display()
{
int choice;
cout<<"1. 输入圆的半径,计算并输出圆的周长和面积"<<endl
<<"2. 输入圆柱的半径和高,计算并输出圆柱的表面积和体积"<<endl
<<"3. 输入圆锥的半径和高,计算并输出圆锥的表面积和体积"<<endl
<<"4. 输入圆球的半径,计算并输出圆球的表面积和体积"<<endl
<<"5. 输入长方形的长和宽,计算并输出长方形的周长和面积"<<endl
<<"6. 输入长方体的长、宽和高,计算并输出长方体的表面积和体积"<<endl
<<"0. 退出"<<endl;
while(1)
{
cout<<"输入:";
cin>>choice;
switch(choice)
{
case 0:
exit(0);break;
case 1:
{
circle cir;
cir.setSize();
cir.getArea();
cir.getPerimeter();
break;
}
case 2:
{
cylinder cyli;
cyli.setSize();
cyli.getArea();
cyli.getVolumn();
break;
}
case 3:
{
tapered tape;
tape.setSize();
tape.getArea();
tape.getVolumn();
break;
}
case 4:
{
circleball cirball;
cirball.setSize();
cirball.getArea();
cirball.getVolumn();
break;
}
case 5:
{
square squr;
squr.setSize();
squr.getArea();
squr.getPerimeter();
break;
}
case 6:
{
cuboid cube;
cube.setSize();
cube.getArea();
cube.getVolumn();
break;
}
default:
cout<<"无此选项"<<endl;
}
}
}
int main()
{
display();
return 0;
}
再问: 12,13行的 virtual void setSize()=0; virtual void getArea()=0; 赋值0,是什么原理,能解释下吗?
再答: 这是纯虚函数的写法,声明不定义,在继承的时候实现。
再问: 好的,谢谢!!
#include <cmath>
#define PAI 3.1415926 //π值
using namespace std;
//基类
class graph
{
protected:
float area; //面积
public:
virtual void setSize()=0;
virtual void getArea()=0;
};
//圆
class circle:public graph
{
float radius; //半径
float perimeter; //高
public:
void setSize()
{
cout<<"输入圆的半径:";
cin>>radius;
}
void getArea()
{
area=PAI*radius*radius;
cout<<"此矩形的面积="<<area<<endl;
}
void getPerimeter()
{
perimeter=2*PAI*radius;
cout<<"此矩形的周长="<<perimeter<<endl;
}
};
//圆柱体
class cylinder:public graph
{
private:
float radius; //半径
float height; //高
public:
void setSize()
{
cout<<"输入圆柱半径和高(以空格隔开):";
cin>>radius>>height;
}
void getArea()
{
area=(PAI*radius*radius)*2+(2*PAI*radius)*height;
cout<<"此圆柱的表面积="<<area<<endl;
}
void getVolumn()
{
area=PAI*radius*radius*height;
cout<<"此圆柱的体积="<<area<<endl;
}
};
//圆锥体
class tapered:public graph
{
private:
float radius; //半径
float height; //高
public:
void setSize()
{
cout<<"输入圆锥半径和高(以空格隔开):";
cin>>radius>>height;
}
void getArea()
{
area=(2*PAI*radius)/2*sqrt(radius*radius+height*height);
cout<<"此圆锥的表面积="<<area<<endl;
}
void getVolumn()
{
area=PAI*radius*radius*height/3;
cout<<"此圆锥的体积="<<area<<endl;
}
};
//球体
class circleball:public graph
{
private:
float radius; //半径
public:
void setSize()
{
cout<<"输入球的半径:";
cin>>radius;
}
void getArea()
{
area=4*PAI*radius*radius;
cout<<"此球体的面积="<<area<<endl;
}
void getVolumn()
{
area=3*PAI*radius*radius*radius/4;
cout<<"此球体的体积="<<area<<endl;
}
};
//长方形
class square:public graph
{
private:
float width; //宽
float length; //长
float perimeter; //周长
public:
void setSize()
{
cout<<"输入矩形长和宽(以空格隔开):";
cin>>length>>width;
}
void getArea()
{
area=width*length;
cout<<"此矩形的面积="<<area<<endl;
}
void getPerimeter()
{
perimeter=width*2+length*2;
cout<<"此矩形的周长="<<perimeter<<endl;
}
};
//长方体
class cuboid:public graph
{
private:
float length; //长
float width; //宽
float heigth; //高
public:
void setSize()
{
cout<<"输入长方体长、宽、高(以空格隔开):";
cin>>length>>width>>heigth;
}
void getArea()
{
area=length*width*2+length*heigth*2+width*heigth*2;
cout<<"此长方体的表面积="<<area<<endl;
}
void getVolumn()
{
area=length*width*heigth;
cout<<"此长方体的体积="<<area<<endl;
}
};
void display()
{
int choice;
cout<<"1. 输入圆的半径,计算并输出圆的周长和面积"<<endl
<<"2. 输入圆柱的半径和高,计算并输出圆柱的表面积和体积"<<endl
<<"3. 输入圆锥的半径和高,计算并输出圆锥的表面积和体积"<<endl
<<"4. 输入圆球的半径,计算并输出圆球的表面积和体积"<<endl
<<"5. 输入长方形的长和宽,计算并输出长方形的周长和面积"<<endl
<<"6. 输入长方体的长、宽和高,计算并输出长方体的表面积和体积"<<endl
<<"0. 退出"<<endl;
while(1)
{
cout<<"输入:";
cin>>choice;
switch(choice)
{
case 0:
exit(0);break;
case 1:
{
circle cir;
cir.setSize();
cir.getArea();
cir.getPerimeter();
break;
}
case 2:
{
cylinder cyli;
cyli.setSize();
cyli.getArea();
cyli.getVolumn();
break;
}
case 3:
{
tapered tape;
tape.setSize();
tape.getArea();
tape.getVolumn();
break;
}
case 4:
{
circleball cirball;
cirball.setSize();
cirball.getArea();
cirball.getVolumn();
break;
}
case 5:
{
square squr;
squr.setSize();
squr.getArea();
squr.getPerimeter();
break;
}
case 6:
{
cuboid cube;
cube.setSize();
cube.getArea();
cube.getVolumn();
break;
}
default:
cout<<"无此选项"<<endl;
}
}
}
int main()
{
display();
return 0;
}
再问: 12,13行的 virtual void setSize()=0; virtual void getArea()=0; 赋值0,是什么原理,能解释下吗?
再答: 这是纯虚函数的写法,声明不定义,在继承的时候实现。
再问: 好的,谢谢!!
C++的问题,还请用比较简单的,能不构造就不构造,好的话可以追加分.
C++类中如果不定义复制构造函数的话,系统是不是自己定义默认的复制构造函数?
数学建模问题---100分求答案,好的话追加一定的分(如果可以)
望远镜的构造构造
一些不常见的成语故事最好不要太长,好的话我会追加分的.
谁知道汽车构造简单图解 只要有大概的框架就可以
战争与和平的读后感!少一些,200字左右就可以了,好的话追加30分!
以回忆为话题写作文简单一点就可以了,好的我追加分
天花剖面图我一直就理解不来它的构造是怎么回事,设计师跟我讲解我还是不懂,大家有什么好的建议吗?谢谢
下列构造做法中,不属于外墙身墙脚构造的有()A,散水B,防潮层C,泛水D,勒脚
笔芯构造确切说是要中性笔芯的构造包括笔头,笔管,油墨(听说这个保密的?)等所有构造的材料,越详细越好,研究性课题用的,不
化二次型为标准型求出原矩阵的特征值不就可以化为标准型了吗?为什么还要构造一个正交阵,也没用上啊?