总成绩计算:
男生:体重 * 25% + 肺活量 * 35% + 引体向上 * 40%
女生:体重 * 25% + 肺活量 * 35% + 仰卧起坐 * 40%
优秀:95~100
良好:80~94
及格:60~79
不及格:<60
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
int sex = 0;
// 体重指数
int countBMI(int sex)
{
float weight, height;
printf("请依次输入体重(kg)、身高(m):");
scanf("%f%f", &weight, &height);
float BMI = weight / (height*height);
int sco = 0;
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.2 &&BMI< 23.9)
sco = 100;
else if (BMI <= 17.1 || (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()
{
if (sex == 1)
{
printf("引体向上为男生特有项目!\n");
Sleep(2000);
exit(0);
}
int UPs = 0, sco = 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()
{
if (sex == 0)
{
printf("仰卧起坐为女生特有项目!\n");
Sleep(2000);
exit(0);
}
int UPs = 0, sco = 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;
}
else
{
// 若是女生则获取仰卧起坐个数
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", &sec);
}
printf("请输入要选择的功能:");
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;
}