磁盘文件里出现 烫烫烫烫烫烫 怎么回事啊
#include "stdio.h"#include "stdlib.h"
#include "string.h"
void menu();
void guahao();
void jiaohao(int n);
void zhenshi();
void xinxi();
void qingkuang();
typedef struct patient
{
char name[20];
int num;
char sex[10];
int age;
char room[20];
}PA;
void main()
{
char choice;
int j=0;
A: system("cls");
menu();
choice=getch();
switch(choice)
{
case '1':
guahao();
break;
case '2':
jiaohao(j);
j++;
break;
case '3':
zhenshi();
break;
case '4':
xinxi();
break;
case '5':
qingkuang();
break;
case '6':
system("cls");
puts("\n\t\t感谢您的使用!\n\n");
exit(0);
break;
}
printf("\n\n\t按下回车键回到主菜单!");
getchar();
goto A;
}
void menu()
{
puts("\t欢迎使用! 输入数字进行选择:\n");
puts("\t 1--挂号 \n");
puts("\t 2--叫号 \n");
puts("\t 3--分诊室 \n");
puts("\t 4--显示各诊室队列信息 \n");
puts("\t 5--统计当天就诊的患者情况\n");
puts("\t 6--结束程序 \n");
}
void guahao()
{
PA p[100];
int i;
FILE *fp;
system("cls");
fp=fopen("挂号序列.txt","a+");
puts("您正在进行挂号操作!(请依次输入您的姓名、年龄、性别、挂号编号(中间空格隔开,按回车键确认!))");
scanf("%s%d%s%d",p[i].name,&p[i].age,p[i].sex, &p[i].num);
fprintf(fp,"\n%s\t%d\t%s\t%d",p[i].name,p[i].age,p[i].sex,p[i].num);
fclose(fp);
getchar();
}
void jiaohao(int j)
{
PA p[100];
FILE *fp,*q,*fq;
int i,n,k=0;
fp=fopen("挂号序列.txt","r+");
i=0;
while(!feof(fp))
{
fscanf(fp,"%s%d%s%d",p[i].name,&p[i].age,p[i].sex, &p[i].num);
i++;
}
k=i;
fclose(fp);
system("cls");
if(j==0)
{
puts("\t当前叫的号是:\n");
printf("\n%s\t%d\t%s\t%d",p[0].name,p[0].age,p[0].sex,p[0].num);
fclose(fp);
q=fopen("删除后患者序列.txt","w+");
for(i=1;i<k;i++)
fprintf(q,"%s\t%d\t%s\t%d\n",p[i].name,p[i].age,p[i].sex,p[i].num);
fclose(q);
}
else if(j<=k)
{
i=0;
q=fopen ("删除后患者序列.txt","r+");
while(!feof(q))
{
fscanf(q,"%s%d%s%d",p[i].name,&p[i].age,p[i].sex, &p[i].num);
i++;
}
n=i-1;
system("cls");
puts("\t当前叫的号是:\n");
printf("\n%s\t%d\t%s\t%d",p[0].name,p[0].age,p[0].sex,p[0].num);
fq=fopen("删除后患者序列.txt","w+");
for(i=1;i<n;i++)
fprintf(fq,"%s\t%d\t%s\t%d%s\n",p[i].name,p[i].age,p[i].sex,p[i].num,'\0');
fclose(q);
fclose(fq);
}
else
puts("\n\n\t所以病人都已叫号!");
}
void zhenshi()
{
FILE *fp;
PA p[100];
int i,n;
system("cls");
fp=fopen ("挂号序列.txt","r+");
i=0;
while(!feof(fp))
{
fscanf(fp,"%s%d%s%d",p[i].name,&p[i].age,p[i].sex, &p[i].num);
i++;
}
n=i;
for(i=0;i<n;i++)
{
if(p[i].age>=35)
strcpy(p[i].room,"第一诊室");
else if(strcmp(p[i].sex,"男")==0)
strcpy(p[i].room,"第二诊室");
else if(strcmp(p[i].sex,"女")==0)
strcpy(p[i].room,"第三诊室");
} fclose(fp);
puts("挂号病人的诊室信息如下:\n");
fp=fopen ("诊室分配.txt","w+");
for(i=0;i<n;i++)
{
printf("%s\t%s\t%d\t%s\t%d\n",p[i].room,p[i].name,p[i].age,p[i].sex, p[i].num);
fprintf(fp,"%s\t%s\t%d\t%s\t%d\n",p[i].room,p[i].name,p[i].age,p[i].sex, p[i].num);
}
fclose(fp);
}
void xinxi()
{
FILE *fp;
int i,n,x=0,y=0,z=0;
PA p[100];
system("cls");
fp=fopen ("诊室分配.txt","r+");
i=0;
while(!feof(fp))
{
fscanf(fp,"%s%s%d%s%d",p[i].room,p[i].name,&p[i].age,p[i].sex ,&p[i].num);
i++;
}
n=i;
puts("\n\t在第一诊室就诊病人的队列信息:");
for(i=0;i<n;i++)
{
if(strcmp(p[i].room,"第一诊室")==0)
{
printf("\n%s\t%s\t%d\t%s\t%d\n",p[i].room,p[i].name,p[i].age,p[i].sex, p[i].num);
x++;
}
}
if(x==0)
puts("\n\t没有病人在该诊室就诊!");
puts("\n\t在第二诊室就诊病人的队列信息");
for(i=0;i<n;i++)
{
if(strcmp(p[i].room,"第二诊室")==0)
{
printf("\n%s\t%s\t%d\t%s\t%d\n",p[i].room,p[i].name,p[i].age,p[i].sex, p[i].num);
y++; }
}
if(y==0)
puts("\n\t没有病人在该诊室就诊!");
puts("\n\t在第三诊室就诊病人的队列信息");
for(i=0;i<n;i++)
{
if(strcmp(p[i].room,"第三诊室")==0)
{
printf("\n%s\t%s\t%d\t%s\t%d\n",p[i].room,p[i].name,p[i].age,p[i].sex, p[i].num);
z++;
}
}
if(z==0)
puts("\n\t没有病人在该诊室就诊!");
fclose(fp);
}
void qingkuang()
{
FILE *fp;
int i,n,a,b,m=0,x=0,y=0;
PA p[100];
char choice;
system("cls");
fp=fopen ("诊室分配.txt","r+");
i=0;
while(!feof(fp))
{
fscanf(fp,"%s%s%d%s%d",p[i].room,p[i].name,&p[i].age,p[i].sex ,&p[i].num);
i++;
}
n=i;
system("cls");
puts(" 1---不同性别的患者\n");
puts(" 2---不同年龄的患者");
choice=getch(); if(choice=='1')
{
system("cls");
puts("\n\n男性患者有:\n");
for(i=0;i<n;i++)
{
if(strcmp(p[i].sex,"男")==0)
{
printf("%s\t%s\t%d\t%s\t%d\n",p[i].room,p[i].name,p[i].age,p[i].sex, p[i].num);
x++;
}
}
if(x==0)
puts("\t目前没有男性患者!");
puts("\n\n女性患者有:\n");
for(i=0;i<n;i++)
{
if(strcmp(p[i].sex,"女")==0)
{
printf("%s\t%s\t%d\t%s\t%d\n",p[i].room,p[i].name,p[i].age,p[i].sex, p[i].num);
y++;
}
}
if(y==0)
puts("\t目前没有女性患者!");
}
if(choice=='2')
{
system("cls");
puts("请输入要查询的年龄段:(请输入下限和上限,中间一空格隔开!)");
scanf("%d%d",&a,&b);
for(i=0;i<n;i++)
{
if((p[i].age>a)&&(p[i].age<b))
{
printf("%s\t%s\t%d\t%s\t%d\n",p[i].room,p[i].name,p[i].age,p[i].sex, p[i].num);
m++;
}
}
if(m==0)
puts("\t该年龄段没有患者!");
getchar();
}
}