/*--------------------健康管理系统---------------------*/
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <math.h>
#define GREAT 0
#define GOOD 1
#define BAD 2
#define ERROR -1
typedef struct PEOPLE{
char name[10]; // 姓名
int age; // 年龄
char sex; // 性别
double height; // 身高 (CM)
double weight; // 体重 (KG)
double H_BP; // 收缩压(mmHg)
double L_BP; //舒张压
int heartRate; // 心率(次/分钟)
double BMI; //身体质量指数 (身体质量指数=体重/(身高*身高))
double basalMetabolicRate;//基础代谢率(基础代谢率=(脉率十收缩压-舒张压)-111)
}People;
typedef struct LINKLIST{
People data;
struct LINKLIST *next;
}List, *linkList;
int inputInformation(People *people); //信息录入
double BMI(double weight, double height); //身体质量指数计算
int BMI_result(double BMI); //身体质量指数计算结果
double BasalMetabolicRate(double heartRate, double H_BP, double L_BP);//基础代谢率
int base_result(double basalMetabolicRate);//基础代谢率结果
int bloodPressure(int age, char sex, double H_BP, double L_BP);//血压判断
int HeartRate_result(int heartRate);//心率判断
int buildList(linkList *head); //初始化成员链表
void inputList(linkList *head); //成员信息插入链表
int isEmpty(linkList *head);// 测试链表连接情况
void insertByIndex(linkList *head,int index);//在原始成员的指定位置中插入新成员
void deleteByIndex(linkList *head,int index);//删除指定位置的成员
void OutputInformation(linkList *head);// 成员健康表单打印
void changeInformation(linkList *head);//修改成员信息
void showInformation(linkList *head);//成员信息查询
int main() {
int choose;
int index;
linkList head;
buildList(&head);
printf("目前系统未激活,请输入任意数量的成员信息激活系统!\n\n");
inputList(&head);
printf("\n\n激活成功");
Sleep(3000);
system("cls");
for(;;)
{
system("cls");
printf("-------------------------请选择功能-------------------------\n\n");
printf("1:成员信息查询 2:成员健康表单 \n");
printf("3:增加成员信息 4:删除成员信息 \n");
printf("5:修改成员信息 0:退出 程序 \n");
printf("输入序号选择:");
while(1 != scanf("%d", &choose) || choose < 0 || choose > 5){
printf("序号输入错误!\n请重新输入:");
fflush(stdin);
}
switch(choose){
case 1: {
{
showInformation(&head);
printf("按任意键继续");
getch();
}
} break;
case 2: {
{
OutputInformation(&head);
printf("按任意键继续");
getch();
}
} break;
case 3: {
{
printf("请输入插入第几个成员之后:");
scanf("%d", &index);
insertByIndex(&head, index);
printf("按任意键继续");
getch();
}
} break;
case 4: {
{
printf("请输入删除第几个成员:");
scanf("%d", &index);
deleteByIndex(&head, index);
printf("按任意键继续");
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <math.h>
#define GREAT 0
#define GOOD 1
#define BAD 2
#define ERROR -1
typedef struct PEOPLE{
char name[10]; // 姓名
int age; // 年龄
char sex; // 性别
double height; // 身高 (CM)
double weight; // 体重 (KG)
double H_BP; // 收缩压(mmHg)
double L_BP; //舒张压
int heartRate; // 心率(次/分钟)
double BMI; //身体质量指数 (身体质量指数=体重/(身高*身高))
double basalMetabolicRate;//基础代谢率(基础代谢率=(脉率十收缩压-舒张压)-111)
}People;
typedef struct LINKLIST{
People data;
struct LINKLIST *next;
}List, *linkList;
int inputInformation(People *people); //信息录入
double BMI(double weight, double height); //身体质量指数计算
int BMI_result(double BMI); //身体质量指数计算结果
double BasalMetabolicRate(double heartRate, double H_BP, double L_BP);//基础代谢率
int base_result(double basalMetabolicRate);//基础代谢率结果
int bloodPressure(int age, char sex, double H_BP, double L_BP);//血压判断
int HeartRate_result(int heartRate);//心率判断
int buildList(linkList *head); //初始化成员链表
void inputList(linkList *head); //成员信息插入链表
int isEmpty(linkList *head);// 测试链表连接情况
void insertByIndex(linkList *head,int index);//在原始成员的指定位置中插入新成员
void deleteByIndex(linkList *head,int index);//删除指定位置的成员
void OutputInformation(linkList *head);// 成员健康表单打印
void changeInformation(linkList *head);//修改成员信息
void showInformation(linkList *head);//成员信息查询
int main() {
int choose;
int index;
linkList head;
buildList(&head);
printf("目前系统未激活,请输入任意数量的成员信息激活系统!\n\n");
inputList(&head);
printf("\n\n激活成功");
Sleep(3000);
system("cls");
for(;;)
{
system("cls");
printf("-------------------------请选择功能-------------------------\n\n");
printf("1:成员信息查询 2:成员健康表单 \n");
printf("3:增加成员信息 4:删除成员信息 \n");
printf("5:修改成员信息 0:退出 程序 \n");
printf("输入序号选择:");
while(1 != scanf("%d", &choose) || choose < 0 || choose > 5){
printf("序号输入错误!\n请重新输入:");
fflush(stdin);
}
switch(choose){
case 1: {
{
showInformation(&head);
printf("按任意键继续");
getch();
}
} break;
case 2: {
{
OutputInformation(&head);
printf("按任意键继续");
getch();
}
} break;
case 3: {
{
printf("请输入插入第几个成员之后:");
scanf("%d", &index);
insertByIndex(&head, index);
printf("按任意键继续");
getch();
}
} break;
case 4: {
{
printf("请输入删除第几个成员:");
scanf("%d", &index);
deleteByIndex(&head, index);
printf("按任意键继续");