C语言实现一个简单的求正方形,长方形,圆形,正方体,长方体,球体 周长,表面积,体积 数据的程序

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.新人的第一个程序,这个程序还有很多可以完善的地方。欢迎各位大佬来指出错误,小竹会努力改正的。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伍竹碳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值