用C++编写程序,用来计算柱体体积和表面积

问题描述

用C++编写程序,用来计算柱体体积和表面积

要求必须有圆柱和四棱柱的计算,可以选作三棱柱
谢谢!!!!!

解决方案

 #include <iostream>
#include <cmath>

using namespace std;

double const PI = 3.14159265358979;

class Point {
private :
    double x;
    double y;
public :
    Point(double nx = 0, double ny = 0) : x(nx),y(ny) {}
    double Getx() const { return x; }
    double Gety() const { return y; }
    void Setx(double nx) { x = nx; }
    void Sety(double ny) { y = ny; }
    friend double Disdance(const Point &a, const Point &b) {
        double mt1 = (a.x - b.x) * (a.x - b.x);
        double mt2 = (a.y - b.y) * (a.y - b.y);
        return sqrt(mt1 + mt2);
    }
    void Show() const {
        cout << "(" << x << "," << y << ")";
    }
};

class Orthogon {
private :
    double length;  // 矩形的长度
    double width;   // 矩形的宽度
public :
    Orthogon(double len = 0, double w = 0) : length(len),width(w) {}
    void Set(double len, double w) {length = len; width = w; }
    double GetGirth() const { return 2*(length + width); }
    double GetBasalArea() const { return length * width; }
    void Show() const {
        cout << "矩形底边长: " << length << endl;
        cout << "矩形底边宽: " << width << endl;
        cout << "矩形底面周长: " << GetGirth() << endl;
        cout << "矩形底面面积: " << GetBasalArea() << endl;
    }
};

class Circle {
private :
    Point centre;
    double radius;
public :
    Circle() { centre = Point(0,0); radius = 0; }
    Circle(const Point ?er,double r = 0) : centre(center),radius(r) {}
    void Set(const Point &pcen, double r) {centre = pcen; radius = r; }
    double GetGirth() const { return 2 * PI * radius; }
    double GetBasalArea() const { return PI * radius * radius; }
    void Show() const {
        cout << "圆心坐标: "; centre.Show();cout << endl;
        cout << "半径: " << radius << endl;
        cout << "矩形底面周长: " << GetGirth() << endl;
        cout << "矩形底面面积: " << GetBasalArea() << endl;
    }
};

class Triangle {
private :
    Point A;
    Point B;
    Point C;
public :
    Triangle() { A = 0; B = 0; C = 0; }
    Triangle(const Point &pa, const Point &pb, const Point &pc) {
        A = pa; B = pb; C = pc;
    }
    void Set(const Point &pa, const Point &pb, const Point &pc) {
        A = pa; B = pb; C = pc;
    }
    double GetAB() const { return Disdance(A,B); }
    double GetBC() const { return Disdance(B,C); }
    double GetCA() const { return Disdance(C,A); }
    double GetGirth() const { return GetAB() + GetBC() + GetCA(); }
    double GetBasalArea() const {
        double a,b,c,p;
        a = GetBC(); b = GetCA(); c = GetAB();
        p = (a + b + c) / 2.0;
        return sqrt(p * (p - a) * (p - b) * (p - c));
    }
    void Show() const {
        cout << "顶点A: ";A.Show();cout << ", ";
        cout << "顶点B: ";B.Show();cout << ", ";
        cout << "顶点C: ";C.Show();cout << endl;
        cout << "边长: " << GetAB() << ", " << GetBC() << ", " << GetCA() << endl;
        cout << "周长: " << GetGirth() << endl;
        cout << "面积: " << GetBasalArea() << endl;
    }
};

template<typename Type>
class Podetium {
private :
    Type base;
    double high;
public :
    Podetium(const Type &bs, double h) : base(bs),high(h) {}
    double GetVolume() const { return high * base.GetBasalArea(); }
    double GetSurfaceArea() const {
        return base.GetGirth() * high + 2 * base.GetBasalArea();
    }
    void Show() const {
        base.Show();
        cout << "柱体高: " << high << endl;
        cout << "柱体表面积: " << GetSurfaceArea() << endl;
        cout << "柱体体积: " << GetVolume() << endl;
    }
};

int main() {
    Point center(2,3); // 圆心坐标
    Point po[3]; // 三角形顶点
    Orthogon orth; // 声明矩形变量
    Circle cle;    // 声明圆变量
    Triangle trg;  // 声明三角形变量
    double x,y,len,w,r,h;
    cout << "圆柱的半径:"; cin >> r;
    cout << "圆柱的高:"; cin >> h;
    cle.Set(center,r); // 构造圆
    Podetium<Circle> pdtc(cle,h); // 构造圆柱体
    pdtc.Show(); // 显示圆柱信息
    cout << "长方体底边长:"; cin >> len;
    cout << "长方体底边宽:"; cin >> w;
    cout << "长方体的高:"; cin >> h;
    orth.Set(len,w);
    Podetium<Orthogon> pdto(orth,h);
    pdto.Show();
    for(char c = 'A'; c <= 'C'; ++c) {
        cout << "三棱柱 " << c << " 点坐标:";
        cin >> x >> y;
        po[c - 'A'].Setx(x);
        po[c - 'A'].Sety(y);
    }
    cout << "三棱柱的高:";
    cin >> h;
    trg.Set(po[0],po[1],po[2]);
    Podetium<Triangle> pdtt(trg,h);
    pdtt.Show();
    return 0;
}

解决方案二:

计算四棱柱的表面积与体积
计算长方柱的表面积和体积
圆的表面积和体积的计算

时间: 2024-09-19 20:44:27

用C++编写程序,用来计算柱体体积和表面积的相关文章

数字- 编写程序计算1!,2!,…,n!,设n&amp;amp;lt;50

问题描述 编写程序计算1!,2!,-,n!,设n<50 用数组的每个元素存放大整数的一位数字,并将n!自个位到高位顺序存于a[0],a[1],-中. 2!通过1!再乘2来实现,依次递推. 设(n-1)!已保存在数组中,可用i依次去乘(i-1)!的个位十位等,注意考虑进位问题. 解决方案 参考:http://wenku.baidu.com/link?url=4_0xDt2UQdmBwPG2WRiDD9TzbrRBfe_V1pYhsCd8Fto9AeIpBBmCFrdK8EJXTr9kCB2VL4G

vc++- VC++ 编写程序计算月亮方位角,高度角,赤经,赤纬等信息求分享

问题描述 VC++ 编写程序计算月亮方位角,高度角,赤经,赤纬等信息求分享 如何计算月球方位角,天顶角?主要在算法上.如果有大神能提供一下计算的公式,我可以写程序 解决方案 简单来说,月球围绕一个椭圆轨道运行,不考虑地球以外天体对它的引力影响,只需要一些很简单的几何知识(开普勒定律)代入轨道方程就能推算它的位置. 但是这种推算不是很精确,不过也没关系,你可以找星历表,每隔几个月找一个基准点的数据,来修正你的计算结果.

如何用汇编语言编写程序 求大神帮忙

问题描述 如何用汇编语言编写程序 求大神帮忙 数据段定义10个连续的16位无符号数FBNC-ARRAY(每个数组元素占用一个字,共10个元素,用于保存斐波那契数列的前10项),其中前两个元素分别是0和1,此外还要定义一个双字变量SUM,编写程序,计算所有10个斐波那契数据的和,保存在SUM中. 解决方案 {求大神帮忙!!!!!!}求大神帮忙,急!!用的vs2005,这怎么解决呢,求大神帮忙 解决方案二: 这个很简单 啊,自己看看基本的汇编指令就行了,所编选一个编译器,都支持ASM的(汇编). 解

函数-编写程序从键盘输入10个float类型数存入一维数组a中,求这10个数的平均值,

问题描述 编写程序从键盘输入10个float类型数存入一维数组a中,求这10个数的平均值, 编写程序从键盘输入10个float类型数存入一维数组a中,求这10个数的平均值,然后用函数aver实现平均值计算,输出这10个数以及平均值,要求数组和元素个数作为参数传递. 声明函数avar: (3)主函数输入10个数据,用for循环语句输入: 解决方案 你能不能再懒点?发了这个问题编写程序,从键盘输入10个int类型数,按从小到大顺序进行排序,然后输出,都有答案了,整数改成浮点的自己都不改. 解决方案二

KINECT1.7如何将深度图像保存到电脑,求用C++编写程序

问题描述 KINECT1.7如何将深度图像保存到电脑,求用C++编写程序 5C 将程序写入例子程序,实现自动完成,用C++来完成,最后保存为PNG格式,这个需要用来计算距离.求大神指导

vxworks-VxWorks相关问题请教,如何编写程序及载入?

问题描述 VxWorks相关问题请教,如何编写程序及载入? 本人在使用摩托罗拉的MVME162PA板级计算机时,碰到问题,不能从芯片级解决程序载入问题,请问有没有高手可以帮忙,使用TORNADO直接对VME BOX上的162PA进行程序编写及载入?

《Spark核心技术与高级应用》——3.1节使用Spark Shell编写程序

3.1 使用Spark Shell编写程序 要学习Spark程序开发,建议首先通过spark-shell交互式学习,加深对Spark程序开发的理解.spark-shell提供了一种学习API的简单方式,以及一个能够交互式分析数据的强大工具,在Scala语言环境下(Scala运行于Java虚拟机,因此能有效使用现有的Java库)或Python语言环境下均可使用.3.1.1 启动Spark Shell 在spark-shell中,已经创建了一个名为sc的SparkContext对象,如在4个CPU核

《教孩子学编程(Python语言版)》——1.2 用Python编写程序

1.2 用Python编写程序 通常,你想要编写的程序都多于一行代码,因此,Python带有一个编辑器,用来编写较长的程序.在IDLE中,打开"File"菜单并选择"File->New Window"或"File->New File",会弹出一个空白的屏幕,其顶部带有一个Untitled标题. 让我们用Python编写一个稍微长一点儿的程序,在这个新的空白窗口中,输入如下3行代码. # YourName.py name = input

我在javaEE里面编写程序链接到了数据库sqlserver,如何通过tomcat把数据发布到网上呢

问题描述 我在javaEE里面编写程序链接到了数据库sqlserver,如何通过tomcat把数据发布到网上呢 这是我的程序,连接数据库成功,并且单数run可以在控制台显示数据库数据 现在想通过tomcat把数据库数据发布到网上,这个如何办到呢.打架有相关代码或者教程吗这是我的连接程序:直接发布到tomcat上,DOS没有错误,网页显示找不到package MyTest; import java.sql.*;import java.util.List; public class Main { s