西安邮电大学 C语言实习 医院管理系统 下载本文

case 1:inp1();break; case 2:Find1();break; case 3:Del1();break; case 4:Insert1();break; case 5:Alter1();break;

case 6:paixu1();break; case 7:head=read1();print1(head);break; case 8:total();break; case 0:Display(0); default:printf(\输入有误!\ printf(\按任意键返回该菜单\ getch(); Display1(); } }

void Display2() { int b; struct medicine *head; system(\ printf(\ ———————医院药品相关信息——————\\n\ printf(\ ||——————1.录入药品信息——————||\\n\ printf(\ ||——————2.查找药品信息——————||\\n\ printf(\ ||——————3.删除药品信息——————||\\n\ printf(\ ||——————4.添加药品信息——————||\\n\ printf(\ ||——————5.修改药品信息——————||\\n\ printf(\ ||——————6.显示药品信息——————||\\n\ printf(\ ||——————0.退出该页面———————||\\n\ printf(\

—————————————————————\\n\ printf(\请选择\\n\ scanf(\ switch(b) { case 1:inp2();break; case 2:Find2();break;

case 3:Del2();break; case 4:Insert2();break; case 5:Alter2();break;

case 6:head=read2();print2(head);break; case 0:Display(0); default:printf(\输入有误!\ printf(\按任意键返回该菜单\ getch(); Display2(); } }

//病人信息相关函数的定义 void patient() { system(\ Display1(); }

void inp1() { struct patient *p,*q; p=creat1(); save1(p); q=read1(); print1(q); }

void Insert1() { struct patient *head; head=read1(); if(insert1(head)) printf(\已成功插入!\\n\插入 else printf(\有重号插入失败!\\n\ printf(\按任意键返回该菜单\ getch(); Display1(); }

/*录入数据*/

struct patient *creat1()//尾插法建立头结点的单链表 {

struct patient*head,*r,*p; int i=0; char choice; system(\ head=(struct patient *)malloc(sizeof(struct patient)); head->next=NULL; r=head; do { p=(struct patient *)malloc(sizeof(struct patient)); printf(\请输入信息\\n\ printf(\第%d个人的信息:\\n\ printf(\编号:\ flushall(); scanf(\ printf(\姓名:\ flushall(); scanf(\ printf(\性别(请输入male(男)female(女):\ flushall(); scanf(\ printf(\年龄:\ flushall(); scanf(\ printf(\病况:\ flushall(); scanf(\ printf(\电话:\ flushall(); scanf(\ r->next=p; r=p; printf(\?(Y、N)\ choice=getche(); }while(choice=='Y'||choice=='y'); r->next=NULL; return(head); }

/*存储数据*/

void save1(struct patient *h)//将单链表中的信息保存到指定的磁盘文件中 { struct patient *p; FILE *fp; if((fp=fopen(\ { printf(\写文件出错,按任意键退出!\ getch(); exit(1);

} for(p=h->next;p!=NULL;p=p->next) fprintf(fp,\->tele1); printf(\文件已成功保存,按任意键继续!\ getch(); fclose(fp); }

void save1_bianji(struct patient *h)//将单链表中的信息保存到指定的磁盘文件中 { struct patient *p; FILE *fp; if((fp=fopen(\ { printf(\写文件出错,按任意键退出!\ getch(); exit(1); } for(p=h->next;p!=NULL;p=p->next) fprintf(fp,\->tele1); printf(\文件已成功保存,按任意键继续!\ getch(); fclose(fp); }

/*读取数据*/

struct patient *read1()//从指定磁盘中读取信息并存入单链表中 { struct patient *head,*r,*p; FILE *fp; if((fp=fopen(\ { printf(\读文件出错,按任意键退出!\ getch(); exit(1); } head=(struct patient *)malloc(sizeof(struct patient)); head->next=NULL; r=head; while(!feof(fp))//文件未结束 {//开辟空间,以存放读取的信息 p=(struct patient *)malloc(sizeof(struct patient)); //存放读取信息

fscanf(fp,\tele1);