烟台大学计算机与控制工程学院:
计163-1:王朝
程序设计:学生信息医疗系统
功能描述:统计学生信息,计算BMI值并统计不达标人数,并为其提出其需要要做出的改变,计算标准体重。
输入:n 学生个数及学生信息
返回值:无
其他说明:无
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
struct date//定义结构体类型日期
{
int year;
int month;
int day;
};
struct date birthday;
struct student//定义学生类型
{
char num[20];
char name[20];
char sex;
struct date birthday;
float height;
float weight;
char body;
int hip;
int lop;
char BMI[80];
};
int main()
{
struct student stu[100],A[100],B[100];//定义学生结构体,stu[]输入信息,A[]和B[]是后面用来储存表示一定信息
int i,n;//i来表示循环,n表示学生数
float s;
int count1=0,count2=0,count3=0;//来统计某个信息的学生人数
printf("请输入学生人数:\n");
scanf("%d",&n);//输入学生人数
printf("学号 姓名 性别 出生年份 出生月份 出生时间 身高 体重 过敏体质 高压 低压 BMI\n");
for(i=0; i<n; i++)//输入每个学生信息
scanf("%s %s %c %d %d %d %f %f %c %d %d",stu[i].num,stu[i].name,&stu[i].sex,&stu[i].birthday.year,&stu[i].birthday.month,&stu[i].birthday.day,&stu[i].height,&stu[i].weight,&stu[i].body,&stu[i].hip,&stu[i].lop);
for(i=0; i<n; i++)//计算学生的健康指数
{
s=stu[i].weight/(stu[i].height*stu[i].height);
if(s>18.5&&s<23.9)
strcpy(stu[i].BMI,"Medium");
if(s<18.5)
strcpy(stu[i].BMI,"Low");
if(s>23.9)
strcpy(stu[i].BMI,"High");
}
printf("学号 姓名 性别 出生年份 出生月份 出生时间 身高 体重 过敏体质 高压 低压 BMI\n");
for(i=0; i<n; i++)//输出所有学生信息
printf("%s %s %c %d %d %d %.2f %.1f %c %d %d %s\n",stu[i].num,stu[i].name,stu[i].sex, stu[i].birthday.year,stu[i].birthday.month,stu[i].birthday.day,stu[i].height,stu[i].weight,stu[i].body,stu[i].hip,stu[i].lop,stu[i].BMI);
printf("输出BIM不正常的学生:\n");//输出健康指数不达标的学生
printf("院系专业 姓名\n");
for(i=0; i<n; i++)//输出院系专业
{
if(s<18.5||s>23.9)
{
printf("%c%c%c%c%c %s\n",stu[i].num[4],stu[i].num[5],stu[i].num[6],stu[i].num[7],stu[i].num[8],stu[i].name);
}
}
for(i=0; i<n; i++)//统计不健康人数
{
s=stu[i].weight/(stu[i].height*stu[i].height);
if(s>18.5&&s<23.9)
count1++;
if(s<18.5)
count2++;
if(s>23.9)
count3++;
}
printf("正常 过低 过高\n");
printf("%d %d %d\n",count1,count2,count3);
for(i=0; i<n; i++)//对不健康的人数进行改正,减肥。
{
s=stu[i].weight/(stu[i].height*stu[i].height);
if(s<18.5)
{
A[i].weight=(stu[i].height*stu[i].height)*18.5;
B[i].weight=(stu[i].height*stu[i].height)*23.8;
}
if(s>23.9)
{
A[i].weight=(stu[i].height*stu[i].height)*18.5;
B[i].weight=(stu[i].height*stu[i].height)*23.8;
}
}
for(i=0; i<n; i++)
{
s=stu[i].weight/(stu[i].height*stu[i].height);
if(s<18.5)
{
printf("你的体重低于标注体重%.2f\n",A[i].weight-stu[i].weight);
printf("你应该保持标准体重:\n");
printf("最小:%.2f 最大:%.2f\n",A[i].weight,B[i].weight);
}
if(s>23.9) {
printf("你的体重高于于标注体重%.2f\n",stu[i].weight-B[i].weight);
printf("你应该保持标准体重\n:");
printf("最小:%.2f 最大:%.2f\n",A[i].weight,B[i].weight);
}
}
return 0;
}