体测成绩判定

总成绩计算:

男生:体重 * 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;

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值