📅  最后修改于: 2023-12-03 15:22:22.460000             🧑  作者: Mango
本程序是一个基于菜单的程序,可以计算三维形状的体积,包括球体、立方体、长方体、圆柱体和锥体。利用函数重载技术,在调用时只需给定参数,即可计算出正确的体积。代码十分简单易懂,适合初学者学习。
使用该程序,您需要将代码粘贴到编译器中,编译并运行该程序。程序运行后,您将看到一个主菜单,其中列出了支持的所有形状。通过输入相应的数字进行选择,即可开始计算体积。程序将要求您输入形状的相关参数,例如半径、长度、宽度等等。一旦输入完毕,程序将输出相应的体积结果。
#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;
}
本程序使用了函数重载技术,可以方便地计算多种不同形状的体积。此外,本程序使用了基于菜单的用户界面,使得用户可以更加直观地选择要计算的形状。若初学者学习本程序时有不理解的地方,可以通过查询相关函数的文档或在线搜索解决。