求完善啊,大神帮我把这个程序完善一下啊!
要求采用先来先就诊的排队方式(就诊顺序与挂号单编号无关),假设挂号时编码是连续的,但由于同一个门诊科目有3个诊室,其中35(含35)岁以上的在第一诊室,35岁以下男患者进第二诊室,其它的进第三诊室,程序启动后显示下列菜单:【实现提示】
1--挂号
2--叫号
3--分诊室
4--显示各诊室队列信息
5--统计当天就诊的患者情况(要求按性别进行统计和按任意年龄区段进行统计)
6--结束程序
选1时,提示用户在一行内输入姓名及挂号单编号;
选2时,显示排在队列中第一位患者姓名、挂号单编号,并将其从挂号序列中删除
选3时,进行诊室分配
选4时,按队列顺序显示个诊室排队人的姓名、挂号单编号及所在诊室
选5时,进行两种统计方法的选择,并进行必要的统计计算
选6时,退出程序的运行
要求1~5中每一个步骤完成后都能重新显示此选择菜单。
#include "stdio.h"
typedef HuanZhe
{
char name[20],sex[10];
int num,age;
char zs[20];
}Huanzhe;
void main()
{
int choice;
Menu();
while(88)
{
scanf("%d",&choice);
switch(choice)
{
case 1:Guahao();break;
case 2:Diyi();break;
case 3:zhenshi();break;
case 4:Xinxi();break;
case 5:Qingkuang();break;
case 6:exit(1);
}
}
}
void Menu()
{
puts(" 1--挂号 ");
puts(" 2--叫号 ");
puts(" 3--分诊室 ");
puts(" 4--显示各诊室队列信息 ");
puts(" 5--统计当天就诊的患者情况");
puts(" 6--结束程序 ");
}
void Guahao() //提示用户在一行内输入姓名及挂号单编号
{
char name[20];
int num;
puts("请在一行内输入姓名及挂号单编号");
scanf("%s%d",name,&num);
}
void Diyi() //显示排在队列中第一位患者姓名、挂号单编号,并将其从挂号序列中删除
{
FILE *p;
HuanZhe zh[100];
p=fopen("患者信息.txt","r+");
fprintf(p,"%s\t%d\t%d\t%s\n!",zh[1].name,zh[1].num);
}
void zhenshi() //进行诊室分配
{
char zs1[20]={在第一诊室就诊!};
char zs2[20]={在第二诊室就诊!};
char zs3[20]={在第三诊室就诊!};
FILE *p,*q;
p=fopen("患者信息.txt","r+");
q=fopen("诊室分配.txt","a+");
int i;
HuanZhe zh[100];
for(i=0;i++;i<6)
fscanf(p,"%d",zh[i].age);
for(i=0;i++;i<6)
{
if(zh[i].age>=35)
fprintf(q,"%s\t%d\t%d\t%s\n!",zh[i].name,zh[i].num,zs1);
if(zh[i].age<35)
fprintf(q,"%s\t%d\t%d\t%s\n!",zh[i].name,zh[i].num,zs2);
else
fprintf(q,"%s\t%d\t%d\t%s\n!",zh[i].name,zh[i].num,zs3);
}
}
void Xinxi() //按队列顺序显示个诊室排队人的姓名、挂号单编号及所在诊室
{
HuanZhe zh[100];
FILE *q;
int i;
q=fopen("诊室分配.txt","r+");
for(i=0;i++;i<6)
fprintf(q,"%s\t%d\t%d\t%s\n!",zh[i].name,zh[i].num,zh[i].zs);
}
void Qingkuang() //进行两种统计方法的选择,并进行必要的统计计算 要求按性别进行统计和按任意年龄区段进行统计
{
FILE *p;
int num1=0,num2=0,num3=0,num4=0;
HuanZhe zh[100];
p=fopen("患者信息.txt","r+");
for(i=0;i++;i<6)
fscanf(p,"%d",zh[i].age);
for(i=0;i++;i<6)
{
if(zh[i].sex==男)
num1++;
if(zh[i].sex==女)
num2++;
if(zh[i].age<=20)
num3++;
if(zh[i].age<=60)
num4++;
if(zh[i].age<200)
num5++;
}
printf("男性患者有%d人\n",num1);
printf("女性患者有%d人\n",num2);
printf("少年患者有%d人\n",num3);
printf("中年患者有%d人\n",num4);
printf("老年患者有%d人\n",num5);
}