1.全局定义 及头函数
#include<stdio.h>
int S[2]={0};
float pai = 3.14;
float a[3]={0};
2.程序最开始的提示函数
void Prompt()
{
printf("--选择你想计算的物体--\n");
printf("1-正方形\t2-长方形\t3-圆 形\n4-正方体\t5-长方体\t6-球 体\n");
scanf("%d",&S[0]);
printf("--选择你想计算的数据--\n");
printf("1-周 长\t2-面 积/表面积\t3-体 积\n");
scanf("%d",&S[1]);
}
3.判断选择函数 用于选择使用者使用的哪一个子模块
int Judgenment(int S[2])
{
int flag;
switch(S[0])
{
case 1:
switch(S[1])
{
case 1:
flag = 1;break;
case 2:
flag = 1;break;
default:
flag = 0;break;
}break;
case 2:
switch(S[1])
{
case 1:
flag = 1;break;
case 2:
flag = 1;break;
default:
flag = 0;break;
}break;
case 3:
switch(S[1])
{
case 1:
flag = 1;break;
case 2:
flag = 1;break;
default:
flag = 0;break;
}break;
case 4:
switch(S[1])
{
case 2:
flag = 1;break;
case 3:
flag = 1;break;
default:
flag = 0;break;
}break;
case 5:
switch(S[1])
{
case 2:
flag = 1;break;
case 3:
flag = 1;break;
default:
flag = 0;break;
}break;
case 6:
switch(S[1])
{
case 2:
flag = 1;break;
case 3:
flag = 1;break;
default:
flag = 0;break;
}break;
default:
flag = 0;break;
}
if(flag == 0)
printf("\n\n\n\n您输入的数据不正确,请重新输入正确的数据!!!!! \n\n\n\n");
return flag;
}
4.用于处理数据的函数 记录各种边长数据
void data()
{
switch (S[0])
{
case 1:
printf("请输入正方形的边长\n");break;
case 2:
printf("请依次输入长方形的长和宽(两个数据之间请不要换行)\n");break;
case 3:
printf("请输入圆形的半径\n");break;
case 4:
printf("请输入正方体的边长\n");break;
case 5:
printf("请依次输入长方体的长宽高(两个数据之间请不要换行)\n");break;
case 6:
printf("请输入球体的半径\n");break;
default:break;
}
char ch;
int n, k = 0;
int flag = 0;
while(1)
{
ch = getchar();
if(ch == '\n')
{
flag++;
}
if(flag == 2)
{
break;
}
ungetc(ch, stdin);
scanf("%d", &n);
a[k] = n;
if(k < 3)
{
k++;
}
}
}
5.各种计算函数
void Square(int i) //求正方形的数据
{
float sum;
if(i == 1)
{
sum = a[0] + a[1];
printf("正方形的周长为 %f\n",sum);
}
if(i == 2)
{
sum = a[0] * a[1];
printf("正方形的面积为 %f\n",sum);
}
}
void Rectangle(int i) //求长方形的数据
{
float sum;
if(i == 1)
{
sum = a[0] + a[0];
printf("长方形的周长为 %f\n",sum);
}
if(i == 2)
{
sum = a[0] * a[0];
printf("长方形的面积为 %f\n",sum);
}
}
void Circle(int i) //求圆形的数据
{
float sum;
if(i == 1)
{
sum = 2*pai*a[0];
printf("圆形的周长为 %f\n",sum);
}
if(i == 2)
{
sum = pai*a[0]*a[0];
printf("圆形的面积为 %f\n",sum);
}
}
void Cube(int i) //求正方体的数据
{
float sum;
if(i == 2)
{
sum = 6*a[0] * a[0];
printf("正方体的表面积为 %f\n",sum);
}
if(i == 3)
{
sum = a[0] * a[0] * a[0];
printf("正方体的体积为 %f\n",sum);
}
}
void Cuboid(int i) //求长方体的数据
{
float sum;
if(i == 2)
{
sum = 2*a[0]*a[1]+2*a[0]*a[2]+2*a[1]*a[2];
printf("长方体的表面积为 %f\n",sum);
}
if(i == 3)
{
sum = a[0] * a[1] * a[2];
printf("长方体的体积为 %f\n",sum);
}
}
void Sphere(int i) //求球体的数据
{
float s = 1.333333;
float sum;
if(i == 2)
{
sum = 4*pai*a[0]*a[0];
printf("球体的表面积为 %f\n",sum);
}
if(i == 3)
{
sum = s*pai*a[0]*a[0]*a[0];
printf("球体的体积为 %f\n",sum);
}
}
6.判断是计算哪一个物体的函数和最后结束的输出判断函数
void Select()
{
switch(S[0])
{
case 1:
Square(S[1]);break;
case 2:
Rectangle(S[1]);break;
case 3:
Circle(S[1]);break;
case 4:
Cube(S[1]);break;
case 5:
Cuboid(S[1]);break;
case 6:
Sphere(S[1]);break;
default:
break;
}
}
int End()
{
int a = 100;
flag:
printf("--是否继续--\n");
printf("0--继续\t1--退出 \n");
scanf("%d",&a);
if(a == 1)
return 1;
else if (a == 0)
return a;
else
{
printf("--请您再输入一次--\n");
goto flag;
}
}
7.main函数
int main()
{
start:
Prompt();
int a = Judgenment(S);
if(a == 0)
goto start;
data();
Select();
int b = End();
if(b == 0)
goto start;
}
8.演示图
9.新人的第一个程序,这个程序还有很多可以完善的地方。欢迎各位大佬来指出错误,小竹会努力改正的。