**题目:**老人健康管理系统
要求:
1.登陆密码
2.输入功能
3.统计功能
4.排序功能
5.查询功能
6.删除功能
7.修改功能
8.退出功能
用到的头文件:
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- #include<windows.h>
- #include<conio.h>
登陆界面代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<windows.h>
#include<conio.h>
int main()
{
system("color f1");/*设置界面颜色(^w^)独特美学*/
char passstr[8];
int c=0;
while(1)
{
system("cls");
printf(" 老人健康管理系统 \n");
printf(" ····················\n");
printf(" · 登陆界面 ·\n");
printf(" · 请输入8位数字的密码: ·\n");
printf(" · 密码:______________ ·\n");
printf(" ····················\n");
gets(passstr);
if(strcmp(passstr,"20150817")!=0)/*对比输入的字符串与设置字符串*/
{
printf(" 密码错误,请重新输入(按任意键继续)\n");
}
else
{
system("cls");
printf(" 登录成功! \n");
printf(" 3秒后跳转页面·····\n");
Sleep(3000);
break;
}
getch();c++;
if(c==3)/*最多输入三次*/
{
printf(" 账户已经冻结,请退出界面重试\n");
exit(0);/*退出程序*/
}
}
主函数:
int flag,x,i,sum=0;/*i是老人的数目*/
flag=1;
int delnumber=0;
while(flag)
{
system("color F6");
system("cls");
printf("***************************************老人健康管理系统*******************************************\n");
printf("———————在这个系统中你可以实现查询老人的健康信息,并且做出删改、排序、统计等功能——————\n");
printf("——————— 你可以按下面的键,进入对应的任务: ——————\n");
printf(" 按1数据输入 \n");
printf(" 按2查询数据 \n");
printf(" 按3进行修改 \n");
printf(" 按4进行排序 \n");/*包括按照年龄,编号,姓名,肺活量查询*/
printf(" 按5进行统计 \n");/*求平均值*/
printf(" 按6删除数据 \n");
printf(" 按7退出系统 \n");
printf(" 请输入你要进行的功能 \n");
scanf("%d",&x);
fflush(stdin);
system("cls");
switch(x)/*判断x,进入各个程序*/
{
case 1:
{
printf("请输入登记老人的数目:\n");
scanf(" %d",&i);
Inputsystem(i);
sum=sum+i;/*这里加入sum,将每次新增的数目也加入,作为后续算平均数等的数据结果的关键数据*/
break;
}/*输入*/
case 2:
Findsystem();break;/*查询*/
case 3:
Changesystem();break;/*修改*/
case 4:
Sortsystem();break;/*排序*/
case 5:
Analysesystem(sum);break;/*统计*/
case 6:
{
delnumber=Deletesystem();sum=sum-delnumber;break;}/*删除功能*/
case 7:
flag=Exitsystem();break;/*退出系统*/
default:printf(" Wrong number!请输入正确的判断符!\n");
}
}
return 0;
定义链表节点
struct node/*定义链表结点*/
{
char ser[20];
char name[15];
int age;
int heart;
int lung;
int height;
int weight;
int press;
/*定义名字、编号、心率、血压、肺活量、身高和体重*/
struct node* pNext;/*定义一个结构体指针*/
};
struct node*g_Head=NULL;
struct node*g_End=NULL;/*定义全局链表头指针与尾指针*/
查询姓名(遍历)
struct node *LookstSer(char *p)/*字符串*/
{
struct node*Ptemp;
Ptemp=g_Head;/*先将结点指针指向头指针*/
while((Ptemp!=NULL)&&(strcmp(Ptemp->ser,p)!=0))
Ptemp=Ptemp->pNext;
return Ptemp;/*若遍历到了这个字符串,返回节点,若没有找到,遍历到尾指针,返回NULL*/
}
查询年龄
int LookstAge(int n_0Min,int n_0Max)/*最大最小值*/
{
struct node*Ptemp_2;/*结点指针*/
int flag_5=0;/*用于判断是否有符合条件的值*/
Ptemp_2=g_Head;
while(Ptemp_2!=NULL)
{
if(n_0Min<(Ptemp_2->age)&&(Ptemp_2->age)<n_0Max)
{
printf("编号:%s\t姓名:%s\t年龄:%d\t身高:%d\t体重:%d\t心率:%d\t肺活量:%d\t血压:%d\n",Ptemp_2->ser,Ptemp_2->name,Ptemp_2->age,Ptemp_2->height,Ptemp_2->weight,Ptemp_2->heart,Ptemp_2->lung,Ptemp_2->press);
flag_5=1;
}
Ptemp_2=Ptemp_2->pNext;/*继续遍历*/
}
return flag_5;/*如果最后遍历完成,没有发现符合的年龄区间,回归0*/
}
查询主函数
void Printfsystem()
{
struct node*Ptemp_5;/*创建节点元素Ptemp_5*/
printf(" 老人健康数据如下:\n");
printf("—————————————————————————————————————————\n");
printf("| 编号 | 姓名 | 年龄\t|血压(收缩压)\t| 肺活量\t| 心率\t| 身高\t| 体重 |\n");
Ptemp_5=g_Head;
while(Ptemp_5!=NULL)
{
printf("————————————————————————————————————————\n");
printf("|%s | %-s | %-5d| %-5d |% -5d | %-5d | %-5d| %-5d |\n",Ptemp_5->ser,Ptemp_5->name,Ptemp_5->age,Ptemp_5->press,Ptemp_5->lung,Ptemp_5->heart,Ptemp_5->height,Ptemp_5->weight);
Ptemp_5=Ptemp_5->pNext;
}
printf("————————————————————————————————————————\n");
printf("\n");
printf("\n\n 按任意键继续\n");
getch();
}
struct node *LookstName(char *p)/*查名字*/
{
struct node*Ptemp;
Ptemp=g_Head;
while((Ptemp!=NULL)&&(strcmp(Ptemp->name,p)!=0))/*寻找指定姓名*/
Ptemp=Ptemp->pNext;
return Ptemp;
}
int LookstAge(int n_0Min,int n_0Max)/*最大最小值*/
{
struct node*Ptemp_2;/*结点指针*/
int flag_5=0;/*用于判断是否有符合条件的值*/
Ptemp_2=g_Head;
while(Ptemp_2!=NULL)
{
if(n_0Min<(Ptemp_2->age)&&(Ptemp_2->age)<n_0Max)
{
printf("编号:%s\t姓名:%s\t年龄:%d\t身高:%d\t体重:%d\t心率:%d\t肺活量:%d\t血压:%d\n",Ptemp_2->ser,Ptemp_2->name,Ptemp_2->age,Ptemp_2->height,Ptemp_2->weight,Ptemp_2->heart,Ptemp_2->lung,Ptemp_2->press);
flag_5=1;
}
Ptemp_2=Ptemp_2->pNext;/*继续遍历*/
}
return flag_5;/*如果最后遍历完成,没有发现符合的年龄区间,回归0*/
}
/*这里要判断,若返回的为NULL,就是没有找到,要有相应提示*/
void Findsystem()
{
int number_1;/*选项判断*/
int flag_4=1;/*循环判断*/
int Whether;
char name_0[15]