体测成绩判定

体测成绩判定

一、 案例描述:
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;
}

在这里插入图片描述

【资源说明】 Python开发基于BlazePose+KNN实现人体姿态健身计数源码(支持俯卧撑、深蹲 、引体向上、仰卧起坐).zip 基于BlazePose+KNN实现人体姿态健身计数 项目描述: 实现基于mediapipe的人体姿态识别的AI健身自动计数功能 支持健身动作:1、俯卧撑 2、深蹲 3、引体向上 4、仰卧起坐 如何训练新的健身动作模型? 1、修改mian函数 2、首先在fitness_pose_images_in的文件夹下存储对应健身的初态动作与末态动作图像 3、修改videoprocess.py文件中的代码,flag模式选择部分,注意class_name必须与fitness_pose_images_in文件夹下的文件名字保持一致 4、修改videoprocess.py文件中的代码,flag模式选择部分,注意class_name必须与fitness_pose_images_in文件夹下的文件名字保持一致 5、修改trainingsetprocess.py文件中的代码,flag模式选择部分,注意 文件名 必须与fitness_pose_images_in文件夹下的文件名字保持一致 【备注】 1、该资源内项目代码都经过测试运成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还,也可在此代码基础上进修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
### 使用Python实现学生体质测试数据处理 以下是关于如何使用Python来完成学生体质测试数据的读取、清洗、分析和可视化的一个完整示例。 #### 数据准备 假设有一个Excel文件 `student_fitness_test_data.xlsx`,其中包含了学生的体测数据。可以使用Pandas库加载并查看这些数据: ```python import pandas as pd # 加载数据 data = pd.read_excel('student_fitness_test_data.xlsx') # 查看前几数据 print(data.head()) ``` 此部分展示了如何导入数据[^1]。 #### 数据清理 在实际应用中,原始数据可能包含缺失值或其他异常情况。因此,在进一步分析之前,需要对数据进必要的预处理: ```python # 检查是否有缺失值 missing_values = data.isnull().sum() print(missing_values) # 填充或删除缺失值 data_cleaned = data.dropna() # 删除含有缺失值的记录 # 或者可以选择填充策略,比如均值填补 data_filled = data.fillna(data.mean()) # 更新数据框 data = data_cleaned ``` 上述代码片段说明了如何处理缺失值。 #### 统计描述与相关性分析 对于每项指标(如身高、体重等),可以通过统计方法获取其基本特征,并评估不同变量之间的关系: ```python # 计算统计数据摘要 summary_stats = data.describe() print(summary_stats) # 计算皮尔逊相关系数矩阵 correlation_matrix = data.corr(method='pearson') print(correlation_matrix) ``` 这里介绍了如何计算各项指标间的关联程度[^2]。 #### 可视化展示 最后一步是对所得结果进图形表示以便更直观地理解数据模式: ```python import matplotlib.pyplot as plt import seaborn as sns # 设置绘图风格 sns.set(style="whitegrid") # 创建热力图显示相关性强度 plt.figure(figsize=(10,8)) sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', fmt='.2f') plt.title("Correlation Matrix of Fitness Test Metrics", fontsize=16) plt.show() # 绘制单项分布直方图 for column in data.columns: plt.figure(figsize=(6,4)) sns.histplot(data[column], kde=True, bins=30) plt.title(f"Distribution of {column}", fontsize=14) plt.xlabel(column, fontsize=12) plt.ylabel("Frequency", fontsize=12) plt.show() ``` 这部分解释了如何通过图表呈现分析成果。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值