#include<bits/stdc++.h>
using namespace std;
int main(){
int o;
cout<<"请问你要计算以下那种计算:\n 1.周长 2.面积 3.表面积 4体积。\n";
cin>>o;
if(o==1){
cout<<"请选择:1.长方形 2.正方形 3.三角形 4.平行四边形 5.梯形 6.n边形\n";
int n;
cin>>n;
if(n==1){
cout<<"请输入长方形的长and宽。\n";
double c,k;
cout<<"长:";
cin>>c;
cout<<"\n宽:";
cin>>k;
cout<<"\n长方形的周长为"<<(c+k)*2<<"。\n";
}
else if(n==2){
cout<<"请输入正方形的边长。\n";
double x;
cout<<"边长:" ;
cin>>x;
cout<<"正方形的周长为"<<4*x<<"。\n";
}
else if(n==3){
cout<<"请输入三角形的三条边长。\n";
double k,l,j;
cout<<"边长:";
cin>>k>>l>>j;
cout<<"三角形的周长为" <<k+j+l<<"。\n";
}
else if(n==4){
cout<<"请输入平行四边形的底and腰。\n";
double d,y;
cout<<"底:";
cin>>d;
cout<<"腰:";
cin>>y;
cout<<"平行四边形的周长为"<<2*(d+y)<<"。\n";
}
else if(n==5){
cout<<"请输入梯形的上,下底and2条腰。\n";
int y1,y2,d1,d2;
cout<<"上底:";
cin>>d1;
cout<<"下底:";
cin>> d2;
cout<<"腰:";
cin>>y1>>y2;
cout<<"梯形的周长为"<<d1+d2+y1+y2<<"。\n";
}else if(n==6){
int m,k=0,a[20000];
cout<<"这个n边形有几条边?";
cin>>m;
for(int i=3;i<=n;i++){
cout<<"第"<<i-2<<"边长";
cin>>a[i];
cout<<"。";
k+=a[i];
}
cout<<"这个n边形的周长为"<<k<<"。\n";
}
else {
cout<<"无";
}
cout<<"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
}
return 0;
}
共 7 条回复
类似程序首发作者表示高级
Ok
你的代码看起来基本上是一个简单的周长计算器,根据用户的选择计算不同形状的周长。代码中的嵌套 if-else 结构有效地处理了不同形状的输入。不过有几点可以改进的地方:
错误处理:在用户输入错误的情况下,代码只输出了 "无",这可能会使用户感到困惑。可以考虑输出一个提示,让用户知道他们的输入是无效的,并重新提示用户输入正确的选项。
代码结构:目前代码结构相对平坦,导致代码可读性较差。可以考虑将不同形状的周长计算逻辑封装成单独的函数,以提高代码的可维护性和可扩展性。
变量命名:尽量使用描述性的变量名,以提高代码的可读性。例如,用更有意义的名称替换 o、n、m、k 等。
用户界面:用户界面可以更友好一些,例如在提示用户输入时提供更清晰的说明,或者使用循环让用户反复输入直到输入有效为止。
数值输入:考虑在输入数字时进行类型检查,以确保输入的是数字而不是其他类型的数据,避免输入非数字数据导致的错误。 让我帮你做一些改进。首先,我们来修改错误处理部分,让程序在用户输入无效选项时能够给出友好的提示,并要求用户重新输入。我们将使用循环来实现这一功能。让我们开始吧:
在这段代码中,我添加了一个循环来验证用户的输入是否有效,如果用户输入了无效选项,程序会提示用户重新输入。接下来,我们可以在 calculatePerimeter 函数中继续添加各种形状的周长计算。让我知道如果你需要帮助继续完善代码。
注:V1有但不发
欢迎大家来找程序的缺点!
只更完了周长部分
目前没更完