#include<stdio.h>
double count_BMI(double BMI,int sex)//函数1:求体重指数成绩,形参为体重指数BMI和性别sex
{
int score;
if(sex==0)//判断男生的体重指数成绩
{
if(BMI>=17.9&&BMI<=23.9) score=100;
else if(BMI>=0&&BMI<=17.8||BMI>=24.0&&BMI<=27.9) score=80;
else score=60;
}
else if(sex==1)//判断女生的体重指数成绩
{
if(BMI>=17.2&&BMI<=23.9) score=100;
else if(BMI>=0&&BMI<=17.1||BMI>=24.0&&BMI<=27.9) score=80;
else score=60;
}
return score;//返回对应的成绩
}
int count_FVC(int FVC,int sex)//函数2:计算肺活量成绩,形参为肺活量大小FVC和性别sex
{
int score;
if(sex==0)//判断男生的肺活量成绩
{
if(FVC>4800) score=100;
else if(4181<=FVC&&FVC<=4800) score=80;
else if(3101<=FVC&&FVC<=4180) score=60;
else score=30;
}
else if(sex==1)//判断女生的肺活量成绩
{
if(FVC>3400) score=100;
else if(3001<=FVC&&FVC<=3400) score=80;
else if(2051<=FVC&&FVC<=3000) score=60;
else score=30;
}
return score;//返回对应的成绩
}
int count_up(int up)//函数3:计算男生引体向上的成绩,形参为引体向上的个数up
{
int score;
if(up>19) score=100;
else if(up<=19&&up>=16) score=80;
else if(up<=15&&up>=10) score=60;
else score=30;
return score;//返回对应的成绩
}
int count_sit(int sit)//函数4:计算女生仰卧起坐的成绩,形参为仰卧起坐的个数
{
int score;
if(sit>56) score=100;
else if(sit>=53&&sit<=56) score=80;
else if(sit>=25&&sit<=52) score=60;
else score=30;
return score;//返回对应的成绩
}
int total(int score)//函数5:判断总成绩的优秀程度,形参为总成绩score
{
if(95<=score&&score<=100) printf("总成绩为%d,优秀",score);
else if(80<=score&&score<=94) printf("总成绩为%d,良好",score);
else if(60<=score&&score<=79) printf("总成绩为%d,及格",score);
else printf("总成绩为%d,不及格",score);
return score;
}
int menu()//函数6:完成菜单的选择
{
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("请输入选择的功能:");
scanf("%d",&sec);
while(sec<0||sec>5)//当输入的数据不在范围内时重新输入
{
printf("请重新输入\n");
scanf("%d",&sec);
}
return sec;//返回选择的菜单
}
int main()
{
int sec,sex;//定义菜单选择和性别
double weight,height,BMI;//定义体重、身高、体重指数
int FVC,sit,up;//定义肺活量大小、引体向上个数、仰卧起坐个数
int score,score1,score2,score3,score4;
sec=menu();//调用menu返回选择
if(sec==0)printf("");//菜单选择0时退出
else
{
printf("请输入性别(男:0/女:1):");//输入性别
scanf("%d",&sex);
while(sex!=0&&sex!=1)//当输入除0和1以外的数字时重新输入
{
printf("请重新输入\n");
scanf("%d",&sex);
}
switch(sec)//选择菜单
{
case 1:printf("请输入体重(kg)和身高(m),例如80 1.8:");
scanf("%lf%lf",&weight,&height);
BMI=weight/(height*height);
score=count_BMI(BMI,sex);//调用函数1,实参为体重指数BMI和性别sex
printf("BMI=%.2f,成绩为%d\n",BMI,score);
break;//计算体重指数的成绩
case 2: printf("请输入肺活量:");
scanf("%d",&FVC);
score=count_FVC(FVC,sex);//调用函数2,实参为肺活量大小FVC和性别sex
printf("肺活量为%d,成绩为%d\n",FVC,score);
break;//计算肺活量的成绩
case 3: if(sex==1)printf("男生项目\n");//若为女生,则不需要引体向上
else//当为男生时
{
printf("请输入引体向上数量:");
scanf("%d",&up);
score=count_up(up);//调用函数3,实参为引体向上个数up
printf("引体向上个数为%d,成绩为%d\n",up,score);
}
break;//计算引体向上的成绩
case 4:if(sex==0)printf("女生项目\n");//若为男生时,则不需要仰卧起坐
else//当为女生时
{
printf("请输入仰卧起坐数量:");
scanf("%d",&sit);
score=count_sit(sit);//调用函数4,实参为仰卧起坐个数sit
printf("仰卧起坐的数量为%d,成绩为%d\n",sit,score);
}
break;//计算仰卧起坐的成绩
case 5:if(sex==0)//为男生时
{
printf("请输入体重(kg)和身高(m),例如80 1.8:");
scanf("%lf%lf",&weight,&height);
BMI=weight/(height*height);
score1=count_BMI(BMI,sex);//调用函数1
printf("请输入肺活量:");
scanf("%d",&FVC);
score2=count_FVC(FVC,sex);//调用函数2
printf("请输入引体向上数量:");
scanf("%d",&up);
score3=count_up(up);//调用函数3
score=0.25*score1+0.35*score2+0.4*score3;//计算男生总成绩
}
if(sex==1)
{
printf("请输入体重(kg)和身高(m),例如80 1.8:");
scanf("%lf%lf",&weight,&height);
BMI=weight/(height*height);
score1=count_BMI(BMI,sex);//调用函数1
printf("请输入肺活量:");
scanf("%d",&FVC);
score2=count_FVC(FVC,sex);//调用函数2
printf("请输入引体向上数量:");
scanf("%d",&up);
score3=count_up(up);//调用函数3
score=0.25*score1+0.35*score2+0.4*score3;//计算男生总成绩
}
if(sex==1)
{
printf("请输入体重(kg)和身高(m),例如80 1.8:");
scanf("%lf%lf",&weight,&height);
BMI=weight/(height*height);
score1=count_BMI(BMI,sex);//调用函数1
printf("请输入肺活量:");
scanf("%d",&FVC);
score2=count_FVC(FVC,sex);//调用函数2
printf("请输入仰卧起坐数量:");
scanf("%d",&sit);
score4=count_sit(sit);//调用函数4
score=0.25*score1+0.35*score2+0.4*score4;//计算女生总成绩
}
total(score);//调用函数5,判断优秀程度,实参为总成绩score
break;//计算总成绩
}
}
return 0;
}