体测成绩判定

体测成绩判定

一、 案例描述:
2014年秋季起,我国执行学生体质健康的新标准,大学生体测成绩低于50分将不能毕业,或按结业处理。此项标准的执行引起了学校以及诸多在校大学生的密切关注,学校建议各级学生参加晨练,部分学生也自觉开始进行适量运动,以提高身体素质。体测所含项目与每项所占比重如下图所示。
单项指标 权重
体重指数(BMI) 15
肺活量 15
50米 20
坐位体前屈 10
立定跳远 10
引体向上(男)/仰卧起坐(女) 10
1000米(男)/800米(女) 20

二、 案例要求:
(1) 根据下面的评分表,分别实现体重指数、肺活量、引体向上、仰卧起坐这四项指标的计算功能;
(2) 根据用户的选择,进行单项指标的成绩换算;
(3) 实现总成绩的计算功能,并根据对总成绩进行判定(优秀、良好、及格、不及格);
(4) 以菜单的形式向用户展示所有功能。
项目成绩 体重指数(25%) 肺活量(35%) 引体向上(40%) 仰卧起坐(40%)
100 17.9~23.9 男 >4800 男 >19 >56
17.2~23.9 女 >3400 女
80 017.8/24.027.9 男 4181~4800 男 16~19 53~56
017.1/24.027.9 女 3001~3400 女
60 >=28.0 男 3101~4180 男 10~15 25~52
>=28.0 女 2051~3000 女
30 男 0~3100 男 0~9 0~16
女 0~2050 女

优秀 良好 及格 不及格
95~100 80~94 60~79 <60

总成绩的计算方式为:各项成绩与其所占比重相乘,将相乘后的成绩相加
(1) 男生:体重指数25%+肺活量35%+引体向上40%
(2) 女生:体重指数
25%+肺活量35%+仰卧起坐40%
注意:体重指数根据身高和体重求出
体重指数=体重/(身高*身高).

三、 案例实现:
本案例的所有功能可由如下几个函数实现:
(1) 求体重指数成绩的函数 int countBMI(int sex)
(2) 求肺活量成绩的函数 int countFVC(int sex)
(3) 求引体向上成绩的函数 int countChinups()
(4) 求仰卧起坐成绩的函数 int countSitup ()
(5) 求总成绩的函数 void getNum()
(6) 菜单函数 int menu()

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
int sex=0;//性别由外部传入,当计算总成绩时可以避免多次性别的出现
//体重指数
int countBMI(int sex)
{
float weight;
float height;
float BMI;
int sco=0;
printf(“请依次输入体重(kg)、身高(m):”);
scanf("%f%f",&weight,&height);
BMI=weight/(height*height);
switch(sex)
{
case 0:
if(BMI>17.9&&BMI<23.9)
{
sco=100;
}
else if(BMI<=17.8||(BMI>24.0&&BMI<27.9))
{
sco=80;
}
else
{
sco=60;
}
break;
case 1:
if(BMI>17.9&&BMI<23.9)
{
sco=100;
}
else if(BMI<=17.8||(BMI>24.0&&BMI<27.9))
{
sco=80;
}
else
{
sco=60;
}
break;
default:
sco=0;
}
printf(“体重指数为:%.2f,成绩为:%d\n”,BMI,sco);
return sco;
}
//肺活量
int countFVC(int sex)
{
int FVC,sco;
printf(“请输入肺活量(ml):”);
scanf("%d",&FVC);
switch(sex)
{
case 0:
if(FVC>4800)
sco=100;
else if(FVC>4180&&FVC<=4800)
{
sco=80;
}
else if(FVC>3100&&FVC<=4180)
{
sco=60;
}
else
sco=30;
break;
case 1:
if(FVC>3400)
sco=100;
else if(FVC>3000&&FVC<=3400)
{
sco=80;
}
else if(FVC>2050&&FVC<=3000)
{
sco=60;
}
else
sco=30;
break;
default:
break;
}
return sco;
}

//引体向上
int countChinups()
{
int UPs=0,sco=0;
if(sex==1)
{
printf(“引体向上为男生特有项目!\n”);
//sleep(2000);
exit(0);
}
printf(“引体向上计数为:”);
scanf("%d",&UPs);
if(UPs>19)
{
sco=100;
}
else if(UPs>15&&UPs<=19)
{
sco=80;
}
else if(UPs>10&&UPs<=15)
{
sco=60;
}
else
{
sco=30;
}
return sco;

}
//仰卧起坐
int countSitup()
{
int UPs=0;
int sco=0;
if(sex0)
{
printf(“仰卧起坐为女生特有项目!\n”);
//sleep(2000);
exit(0);
}
printf(“仰卧起坐计数为:”);
scanf("%d",&UPs);
if(UPs>56)
{
sco=100;
}
else if(UPs>52&&UPs<=56)
{
sco=80;
}
else if(UPs>26&&UPs<=52)
{
sco=60;
}
else
{
sco=30;
}
return sco;
}
//总成绩
void getNum()
{
int BMI,FVC,Cups,Sups;
double num;
//获取每一项成绩
BMI=countBMI(sex);
FVC=countFVC(sex);
//计算成绩
if(sex
0)
{
Cups=countChinups();
num=BMI0.25+FVC0.35+Cups*0.4;
}
if(sex==1)
{

	Sups=countSitup();
	num=BMI*0.25+FVC*0.35+Sups*0.4;
}
//判断成绩优劣
if(num>95)
{
	printf("综合成绩为%.2f,优秀\n",num);
}
else if(num>80&&num<=95)
{

	printf("综合成绩为%.2f,良好\n",num);
}
else if(num>60&&num<=80)
{
	printf("综合成绩为%.2f,及格\n",num);
}
else
{
	printf("综合成绩为%.2f,不及格\n",num);
}

}
//菜单
int menu()
{
int sec;
printf(“功能菜单\n”);
printf("==\n");
printf(“1.体重指数BMI\n”);
printf(“2.肺活量FVC\n”);
printf(“3.引体向上\n”);
printf(“4.仰卧起坐\n”);
printf(“5.总成绩\n”);
printf(“0.退出\n”);
printf("
=\n");
printf(“请输入性别(男:0/女:1):”);
scanf("%d",&sex);
while(sex!=0&&sex!=1)
{
printf(“选择有误!\n请重新输入:”);
scanf("%d",&sex);
}
printf(“请输入要选择的功能\n”);
scanf("%d",&sec);
while(sec>5||sec<0)
{
printf(“选择有误!\n请重新输入:”);
scanf("%d",&sec);
}
return sec;
}
int main()
{
int sec=menu();
switch(sec)
{
case 0:
exit(0);
break;
case 1:
countBMI(sex);
break;
case 2:
countFVC(sex);
break;
case 3:
countChinups();
break;
case 4:
countSitup();
break;
case 5:
getNum();
break;
default:
break;
}
return 0;
}

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
int sex=0;//性别由外部传入,当计算总成绩时可以避免多次性别的出现
//体重指数
int countBMI(int sex)
{
	float weight;
	float height;
	float BMI;
	int sco=0;
	printf("请依次输入体重(kg)、身高(m):");
	scanf("%f%f",&weight,&height);
	BMI=weight/(height*height);
	switch(sex)
	{
	case 0:
		if(BMI>17.9&&BMI<23.9)
		{
			sco=100;
		}
		else if(BMI<=17.8||(BMI>24.0&&BMI<27.9))
		{
			sco=80;
		}
		else
		{
			sco=60;
		}
		break;
	case 1:
		if(BMI>17.9&&BMI<23.9)
		{
			sco=100;
		}
		else if(BMI<=17.8||(BMI>24.0&&BMI<27.9))
		{
			sco=80;
		}
		else
		{
			sco=60;
		}
		break;
	default:
		sco=0;

	}
	printf("体重指数为:%.2f,成绩为:%d\n",BMI,sco);
	return sco;
}
//肺活量
int countFVC(int sex)
{
	int FVC,sco;
	printf("请输入肺活量(ml):");
	scanf("%d",&FVC);
	switch(sex)
	{
	case 0:
		if(FVC>4800)
			sco=100;
		else if(FVC>4180&&FVC<=4800)
		{
			sco=80;
		}
		else if(FVC>3100&&FVC<=4180)
		{
			sco=60;
		}
		else
			sco=30;
		break;
	case 1:
		if(FVC>3400)
			sco=100;
		else if(FVC>3000&&FVC<=3400)
		{
			sco=80;
		}
		else if(FVC>2050&&FVC<=3000)
		{
			sco=60;
		}
		else
			sco=30;
		break;
	default:
		break;
	}
	return sco;
}

//引体向上
int countChinups()
{
	int UPs=0,sco=0;
	if(sex==1)
	{
		printf("引体向上为男生特有项目!\n");
		//sleep(2000);
		exit(0);
	}
	printf("引体向上计数为:");
	scanf("%d",&UPs);
	if(UPs>19)
	{
		sco=100;
	}
	else if(UPs>15&&UPs<=19)
	{
		sco=80;
	}
	else if(UPs>10&&UPs<=15)
	{
		sco=60;
	}
	else
	{
		sco=30;
	}
	return sco;
	
}
//仰卧起坐
int countSitup()
{
	int UPs=0;
	int sco=0;
	if(sex==0)
	{
		printf("仰卧起坐为女生特有项目!\n");
		//sleep(2000);
		exit(0);
	}	
	printf("仰卧起坐计数为:");
	scanf("%d",&UPs);
	if(UPs>56)
	{
		sco=100;
	}
	else if(UPs>52&&UPs<=56)
	{
		sco=80;
	}
	else if(UPs>26&&UPs<=52)
	{
		sco=60;
	}
	else
	{
		sco=30;
	}
	return sco;
}
//总成绩
void getNum()
{
	int BMI,FVC,Cups,Sups;
	double num;
	//获取每一项成绩
	BMI=countBMI(sex);
	FVC=countFVC(sex);
	//计算成绩
	if(sex==0)
	{
		Cups=countChinups();
		num=BMI*0.25+FVC*0.35+Cups*0.4;
	}
    if(sex==1)
	{
		
		Sups=countSitup();
		num=BMI*0.25+FVC*0.35+Sups*0.4;
	}
	//判断成绩优劣
	if(num>95)
	{
		printf("综合成绩为%.2f,优秀\n",num);
	}
	else if(num>80&&num<=95)
	{

		printf("综合成绩为%.2f,良好\n",num);
	}
	else if(num>60&&num<=80)
	{
		printf("综合成绩为%.2f,及格\n",num);
	}
	else
	{
		printf("综合成绩为%.2f,不及格\n",num);
	}
}
//菜单
int menu()
{
	int sec;
	printf("功能菜单\n");
	printf("==============\n");
	printf("1.体重指数BMI\n");
	printf("2.肺活量FVC\n");
	printf("3.引体向上\n");
	printf("4.仰卧起坐\n");
	printf("5.总成绩\n");
	printf("0.退出\n");
	printf("=============\n");
	printf("请输入性别(男:0/女:1):");
	scanf("%d",&sex);
	while(sex!=0&&sex!=1)
	{
		printf("选择有误!\n请重新输入:");
		scanf("%d",&sex);
	}
	printf("请输入要选择的功能\n");
	scanf("%d",&sec);
	while(sec>5||sec<0)
	{
		printf("选择有误!\n请重新输入:");
		scanf("%d",&sec);
	}
	return sec;
}
int main()
{
	int sec=menu();
	switch(sec)
	{
	case 0:
		exit(0);
		break;
	case 1:
		countBMI(sex);
		break;
	case 2:
		countFVC(sex);
		break;
	case 3:
		countChinups();
		break;
	case 4:
		countSitup();
		break;
	case 5:
		getNum();
		break;
	default:
		break;

	}
	return 0;
}

在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值