圆柱体表面积和体积、坐标移动、三角形面积之和C++(类与对象)在线作业

圆柱体表面积和体积:
定义一个圆柱类Cylinder,成员数据为底圆半径r和圆柱高h,成员函数为构造函数,GetArea计算圆柱体的表面积,GetVolume计算圆柱体的体积。(注意π值取3.14)
main函数输入圆柱的半径和高,定义一个类对象,计算并输出圆柱的表面积和体积。

#include<iostream>
using namespace std;
const double PI=3.14;
class Cylinder{
	private:
		double m_r;
		double m_h;
	public:
		Cylinder(double r,double h);
		double GetArea();
		double GetVolume();
};
Cylinder::Cylinder(double r,double h){
	m_r=r;
	m_h=h;
}
double Cylinder::GetVolume(){
	cout<< PI*m_r*m_r*m_h;
	return 0;
}
double Cylinder::GetArea(){
	cout<< 2*PI*m_r*m_r+2*PI*m_r*m_h;
	return 0;
}

int main(){
	double r,h;
	cin>> r >> h;
	Cylinder aa(r,h);
	aa.GetArea();
	cout<< ' ';
	aa.GetVolume();
}

坐标移动:
定义一个Point类,数据成员包括私有数据成员为double类型的点坐标x,y;成员函数包括构造函数Point(用于实现对数据成员x,y的初始化)、成员函数Set(用于改变数据成员x、y的值)、成员函数LeftMove(点坐标向左移动detax)、成员函数上移UpMove(点坐标上移detay)、成员函数Display(用于输出点坐标x、y,输出格式为点坐标用逗号分隔并半角圆括号括起来)。

#include<iostream>
using namespace std;
class Point
{
public:
    Point(double x=0, double y=0);
    void Set(double x, double y);
    void LeftMove(double dx);
    void UpMove(double dy);
    void Display();
private:
    double m_x;
    double m_y;
};
Point::Point(double x, double y)
{
    m_x = x;
    m_y = y;
}
void Point::Set(double x, double y)
{
    m_x = x;
    m_y = y;
}
void Point::LeftMove(double dx)
{
    m_x = m_x - dx;
}
void Point::UpMove(double dy)
{
    m_y = m_y + dy;
}
void Point::Display()
{
    cout << "(" << m_x << "," << m_y << ")" << endl;
}
int main()
{
    double x1, y1, x2, y2, dx, dy;
    cin >> x1 >> y1;
    cin >> dx;
    cin >> dy;
    cin >> x2 >> y2;
    Point p1;
    p1.Display();
    p1.Set(x1, y1);
    p1.Display();
    p1.LeftMove(dx);
    p1.Display();
    p1.UpMove(dy);
    p1.Display();
    Point p2(x2, y2);
    p2.Display();
    return 0;
}

三角形面积之和:
定义一个三角形类Triangle,包括三个double型数据成员a、b和c表示三角形的三条边,成员函数包括构造函数、IsTriangle、GetArea。构造函数用于实现对数据成员的初始化;成员函数IsTriangle判断三条边是否构成三角形,成员函数GetArea返回三角形的面积。main函数中输入两组三角形的边长,用这两组边长实例化两个三角形类对象T1,T2,若T1、T2均能构成三角形,则输出两个三角形面积之和,否则输出failure。

#include<iostream>
#include<cmath>
using namespace std;
class Triangle{
	private:
		double m_a;
		double m_b;
		double m_c;
	public:
		Triangle(double a,double b,double c);
		bool IsTriangle();
		double GetArea();
};
Triangle::Triangle(double a,double b,double c){
	m_a=a;
	m_b=b;
	m_c=c;
};
bool Triangle::IsTriangle(){
	if (m_a+m_b>m_c && m_b+m_c>m_a && m_a+m_c>m_b)
		return true;
	else
		return false;
}
double Triangle::GetArea(){
		double s;
		s = (m_a + m_b + m_c) / 2;
		return sqrt(s * (s - m_a) * (s - m_b) * (s - m_c));
}

int main()
{
    double a1,b1, c1, a2, b2, c2;
	cin >> a1 >> b1 >> c1 >> a2 >> b2 >> c2;
	Triangle T1(a1, b1, c1);
	Triangle T2(a2, b2, c2);
	if (T1.IsTriangle()==true && T2.IsTriangle()==true)
		cout<<T1.GetArea()+T2.GetArea();
	else
		cout<<"failure";
	return 0;
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值