📜  使用函数重载查找 3D 形状体积的基于菜单的程序(1)

📅  最后修改于: 2023-12-03 15:22:22.460000             🧑  作者: Mango

使用函数重载查找 3D 形状体积的基于菜单的程序

本程序是一个基于菜单的程序,可以计算三维形状的体积,包括球体、立方体、长方体、圆柱体和锥体。利用函数重载技术,在调用时只需给定参数,即可计算出正确的体积。代码十分简单易懂,适合初学者学习。

如何使用

使用该程序,您需要将代码粘贴到编译器中,编译并运行该程序。程序运行后,您将看到一个主菜单,其中列出了支持的所有形状。通过输入相应的数字进行选择,即可开始计算体积。程序将要求您输入形状的相关参数,例如半径、长度、宽度等等。一旦输入完毕,程序将输出相应的体积结果。

代码实现
#include <iostream>
#include <cmath>

using namespace std;

const double PI = 3.14159265358979;

// 计算球体体积
double getVolume(double radius) {
    return (4.0 / 3.0) * PI * pow(radius, 3);
}

// 计算立方体体积
double getVolume(double length, double width, double height) {
    return length * width * height;
}

// 计算长方体体积
double getVolume(double length, double width, double height, bool isRect) {
    return length * width * height * (isRect ? 1 : 0.5);
}

// 计算圆柱体体积
double getVolume(double radius, double height, bool isHalf) {
    return PI * pow(radius, 2) * height * (isHalf ? 0.5 : 1.0);
}

// 计算锥体体积
double getVolume(double radius, double height) {
    return (1.0 / 3.0) * PI * pow(radius, 2) * height;
}

int main() {
    int choice;
    double radius, length, width, height;
    bool isRect, isHalf;

    do {
        // 显示主菜单
        cout << "请选择要计算的形状:" << endl;
        cout << "1. 球体" << endl;
        cout << "2. 立方体" << endl;
        cout << "3. 长方体" << endl;
        cout << "4. 圆柱体(整个)" << endl;
        cout << "5. 圆柱体(半母线)" << endl;
        cout << "6. 锥体" << endl;
        cout << "0. 退出程序" << endl;
        cout << "请输入您的选择:";
        cin >> choice;

        switch (choice) {
            case 1:
                // 计算球体体积
                cout << "请输入球体半径:";
                cin >> radius;
                cout << "球体体积为:" << getVolume(radius) << endl;
                break;
            case 2:
                // 计算立方体体积
                cout << "请输入立方体长、宽、高:";
                cin >> length >> width >> height;
                cout << "立方体体积为:" << getVolume(length, width, height) << endl;
                break;
            case 3:
                // 计算长方体体积
                cout << "请输入长方体长、宽、高、是否是矩形底:";
                cin >> length >> width >> height >> isRect;
                cout << "长方体体积为:" << getVolume(length, width, height, isRect) << endl;
                break;
            case 4:
                // 计算圆柱体体积
                cout << "请输入圆柱体半径、高、是否为整个圆柱体:";
                cin >> radius >> height >> isHalf;
                cout << "圆柱体体积为:" << getVolume(radius, height, isHalf) << endl;
                break;
            case 5:
                // 计算圆柱体体积(半母线)
                cout << "请输入圆柱体半母线、高:";
                cin >> radius >> height;
                cout << "圆柱体体积为:" << getVolume(radius, height) << endl;
                break;
            case 6:
                // 计算锥体体积
                cout << "请输入锥体半径、高:";
                cin >> radius >> height;
                cout << "锥体体积为:" << getVolume(radius, height) << endl;
                break;
            case 0:
                // 退出程序
                cout << "感谢使用本程序!" << endl;
                break;
            default:
                // 用户输入错误,提示重新输入
                cout << "您的输入有误,请重新输入!" << endl;
                break;
        }
    } while (choice != 0);

    return 0;
}
总结

本程序使用了函数重载技术,可以方便地计算多种不同形状的体积。此外,本程序使用了基于菜单的用户界面,使得用户可以更加直观地选择要计算的形状。若初学者学习本程序时有不理解的地方,可以通过查询相关函数的文档或在线搜索解决。