急求指教,C语言编程出错( Cannot open include file: 'head.h': )

时间:2023-02-22 00:08:35
医院信息管理系统,上网搜的资料,改动了一下。
运行不能,因编译提示出错(fatal error C1083: Cannot open include file: 'head.h': No such file or directory)求指教啊!好着急的!
/*head.h*/
#ifndef FIRST
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
struct patient
{
char id[10];
char name[10];
char sex[10];
char casehist[200];
int callnum[12];
struct patient *next;
};
int flag;
void search(struct patient *temp);
void listall(struct patient *temp);
struct patient *insert(struct patient *head,struct patient *rear);
void modify(struct patient *temp);
struct patient *load(struct patient *head);
void save(struct patient *head);
#define FIRST
#endif

/*find.c*/
#include "head.h"
void search(struct patient *temp)
{
char t[10];
printf("请输入病人的ID\n");         
gets(t);
while(temp&&strcmp(temp->id,t))        
{
temp=temp->next;
}
if(temp)
{
printf("ID:%s\n",temp->id);
printf("\n姓名:%s",temp->name);
printf("\n病历:\n%s",temp->casehist);
}
else
{
printf("无该病人的信息!\n");
}
}

void listall(struct patient *temp)
{
printf("id   姓名\n");                  
while(temp)
{
printf("%s  %s\n",temp->id,temp->name);
temp=temp->next;
}
}

/*link.c*/
#include "head.h"
struct patient *insert(struct patient *head,struct patient *rear)        
{
struct patient *temp;
if(head)
{
temp=head;
while(temp->next)
{
temp=temp->next;
}
temp->next=rear;                            
rear->next=0;
}
else
{
head=rear;
rear->next=0;
}
return head;
}

void modify(struct patient *temp)
{
char t[10],d[200];
char a[4],b[2],c[2];
printf("请输入病人的ID\n");
gets(t);
while(temp&strcmp(temp->id,t))       //87  自动查找病人的id
{
temp=temp->next;
}
if(temp)
{
printf("原有病历:%s\n",temp->casehist);
printf("输入当前日期 年份");
gets(a);
printf("输入当前月份");
gets(b);
printf("输入当前日子");
gets(c);
strcat(temp->casehist,a);        
strcat(temp->casehist,"/");
strcat(temp->casehist,b);
strcat(temp->casehist,"/");
strcat(temp->casehist,c);
strcat(temp->casehist,":");
printf("请输入新病历的内容\n");
gets(d);
strcat(temp->casehist,d);
strcat(temp->casehist,"\n");
}
else
{
printf("无此病人信息!\n");
}
}

/*main.h*/
#include "head.h"
void test();
void printfmenu();              
struct patient *enroll();
void freeall(struct patient *temp);

void main()
{
struct patient *head=0,*rear;                  
char ch;                          
printf("欢迎使用医院管理系统\n");
test();                
while(1)              
{
fflush(stdin);        
ch=getchar();
fflush(stdin);
switch(ch)
{
case '1':
if(flag)
{
rear=enroll();
head=insert(head,rear);
printf("注册成功!\n");
}
else
{
printf("您没有载入信息不能注册!\n");
}
break;
case '2':
if(flag)
{
search(head);         
}
else
{
printf("您没有载入信息不能进行查询!\n");
}
break;
case '3':
if(flag)
{
modify(head);
}
else
{
printf("您没有载入信息不能修改病历!\n");
}
break;
case '4':
if(flag)
{
listall(head);
}
else
{
printf("您没有载入信息!\n");
}                             
break;
case '5':
freeall(head);
head=0;
head=load(head);
break;
case '6':
if(flag)
{
save(head);
}
else
{
printf("您没有载入信息!\n");
}
break;
case '7':
printf("谢谢使用!\n");
exit(0);
break;          
default:

printf("输入有误!\n");
break;
}
}
}

void printmenu()           //210
{
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");
}

void test()
{
FILE *fp;
if((fp=fopen("data","r"))==0)
{
printf("这是您第一次使用该系统,在退出时不要忘了保存信息\n");
fp=fopen("data","w");
flag=1;
fclose(fp);
}
}

struct patient *enroll()
{
struct patient *rear;
rear=(struct patient *)malloc(sizeof(struct patient));
printf("请输入病人ID:\n");
scanf("%s",rear->id);
printf("请输入病人姓名\n");
scanf("%s",rear->name);
strcpy(rear->casehist,"");           
return rear;
}

void freeall(struct patient *temp)
{
struct patient *t;
while(temp)
{
t=temp;
temp=temp->next;
free(t);
}
}

/*save_load.c*/
#include "head.h"
struct patient *load(struct patient *head)
{
FILE *fp;
struct patient *rear;
if((fp=fopen("data","r"))==0)
{
printf("文件不存在!");
return head;
}
while(1)
{
rear=(struct patient *)malloc(sizeof(struct patient));
if(fread(rear,sizeof(struct patient),1,fp))
{
head=insert(head,rear);
}
else
{
free(rear);
flag=1;
break;
}
}
fclose(fp);
return head;
}

void save(struct patient *head)
{
FILE *fp;
struct patient *temp;
temp=head;
if((fp=fopen("data","w"))==0)
{
printf("文件已损坏!\n");
}
else
{
while(temp)
{
fwrite(temp,sizeof(struct patient),1,fp);
temp=temp->next;
}
}
fclose(fp);
}

5 个解决方案

#1


/*head.h*/
#ifndef FIRST
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
struct patient
{
char id[10];
char name[10];
char sex[10];
char casehist[200];
int callnum[12];
struct patient *next;
};
int flag;
void search(struct patient *temp);
void listall(struct patient *temp);
struct patient *insert(struct patient *head,struct patient *rear);
void modify(struct patient *temp);
struct patient *load(struct patient *head);
void save(struct patient *head);
#define FIRST
#endif

这段另存为 head.h 文件

#2


吧head.h和c放一个目录下

#3


head.h 是自己写的,就在头文件中指明路径,比如 #include ‘/home/desktop/……/head.h’

#4


要放在同一目录下 find.c 和 head.h

#5


还是放同一目录吧 急求指教,C语言编程出错( Cannot open include file: 'head.h': )

#1


/*head.h*/
#ifndef FIRST
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
struct patient
{
char id[10];
char name[10];
char sex[10];
char casehist[200];
int callnum[12];
struct patient *next;
};
int flag;
void search(struct patient *temp);
void listall(struct patient *temp);
struct patient *insert(struct patient *head,struct patient *rear);
void modify(struct patient *temp);
struct patient *load(struct patient *head);
void save(struct patient *head);
#define FIRST
#endif

这段另存为 head.h 文件

#2


吧head.h和c放一个目录下

#3


head.h 是自己写的,就在头文件中指明路径,比如 #include ‘/home/desktop/……/head.h’

#4


要放在同一目录下 find.c 和 head.h

#5


还是放同一目录吧 急求指教,C语言编程出错( Cannot open include file: 'head.h': )