




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、华中科技大学计算机科学与技术学院C语言程序设计课程设计实验报告题目: 医院专家门诊挂号系统 专业: 计算机科学与技术 班级: 计算机XXX班 学号: XXXX 姓名: XXX 成绩: 指导教师: XXX 完成日期: 20XX年 10月 10日系统功能模块图主菜单数据管理保存和读取统计查询删除修改录入各项信息统计科室、专家、挂号信息查询打印报表支持多关键字的搜索引擎退出添加数据结构设计及用法说明主要的三个结构(采用了十字交叉链表):科室信息的结构、专家信息的结构及挂号信息的结构。分别如下:/*科室信息*/struct Troom char num11;/*保存科室号*/ char name20;
2、/*保存科室名*/ char man20;/*保存负责人*/ char tel12;/*保存电话*/int tot_reg;/*保存科室的总挂号量*/ struct Troom *next;/*保存指向下一个科室信息的指针*/ struct Tpro *sub;/*保存指向专家信息的头指针*/;/*挂号信息结构体*/struct Treg char pro_num11;/*保存专家编号*/ char case_num15;/*保存病历号*/ char patient_name20;/*保存患者姓名*/ char date11;/*保存挂号日期*/ char assistant20;/*保存挂号
3、人员*/ intserial_num;/*保存挂号流水号*/ float fee;/*保存挂号费*/ struct Treg *next;/*保存指向下一个挂号信息的指针*/;/*专家信息结构体*/struct Tpro char room_num11;/*保存科室号*/ char num11;/*保存专家编号*/ char name20;/*保存姓名*/ char birth11;/*保存出生日期*/ char sex;/*保存性别*/ char tel12;/*保存电话*/ char profession15;/*保存职称*/ char summary50;/*保存简介*/int tot_
4、reg;/*保存专家的总挂号量*/ struct Tpro *next;/*保存指向下一个专家信息的指针*/ struct Treg *sub;/*保存指向挂号信息的头指针*/;用法说明图示如下: head科室1科室2科室nNULL 专家1基本信息 专家2基本信息专家n基本信息专家1挂号记录链 专家2挂号记录链 专家n挂号记录链 程序结构流程图系统总体流程图:开始主菜单录入信息修改信息插入信息删除信息保存文件读取文件查询信息统计数据打印报表退出系统科室信息专家信息挂号信息读入关键字多关键字搜索结束查询流程图:查询信息输入关键字从信息总体中提取含有关键字的信息输出信息各模块功能数据管理模块中包含
5、录入信息、修改信息、插入信息和删除信息四大功能:录入信息:录入科室、专家、挂号信息;修改信息:对科室、专家、挂号信息进行修改;添加信息:添加科室或专家;删除信息:取消科室或解雇专家。统计查询模块中包含查询信息和统计数据查询信息:可查询所有科室、专家和挂号信息,还可以查询某个特定的信息,使用多关键字匹配和KMP字符串匹配技术;统计数据:有3种统计的信息可供查看:各科室的挂号量;各专家的挂号量;某天挂号的患者的基本信息。保存和读取模块:保存文件和读取文件;退出程序:退出医院专家门诊挂号系统。各功能函数的相关说明见附录中的源程序清单。试验结果整个程序运行起来很正常,没有出现bug,我这就把输出结果的
6、截屏贴在下面:科室基本信息(部分):专家基本信息(部分):挂号基本信息(部分):统计信息均准确无误:各科室的挂号量:各专家的挂号量:某天挂号的基本信息:心得体会第一次写管理系统这样的大型程序,说真的,有点不习惯,以前的一些代码风格成了我这次课设的最大障碍。比如说,以前写小程序因为通常只有一个主函数,所以很多变量都是局部变量,而这次大型作业要求有很多的函数相互交叉,共同完成一些功能,所以必须要用全局变量。还有我的编程风格无意义的变量名使我吃了很多苦头,很多时候,我的变量名都混淆了,以至于我最后改的时候很麻烦。这次课设,让我学了很多东西,除了代码风格和编程习惯的优化之外,我的代码能力也明显提高了。
7、经过这次课设,我一些以前没有彻底掌握的东西都牢牢掌握了。比如指针的灵活运用,函数之间的互相调用的代码级优化等等。尽管我学到了很多东西,但是对于这次大型作业我还是有一点遗憾,那就是代码的重复利用率不高,很多几乎一样的代码在我的程序中出现了多次(毕竟是一个上午写出来的东西,这也不能怪我)。本来我有心想优化一下,使重复利用率提高,但是由于ACM/ICPC将近,我全部时间都用在训练上,所以就算了。希望不会对我的课设的评价造成太大的影响。路漫漫其修远兮,吾将上下而求索。程序设计这条路还很长,我会继续走下去,不断自我完善,早日成为一个出色的程序员。参考文献所有资料均从百度而来附录:程序清单/*/* 医院门
8、诊挂号系统V1.01源代码 */* Copyright by XXX */*/#include #include #include #define Troom_len sizeof(struct Troom)#define Tpro_len sizeof(struct Tpro)#define Treg_len sizeof(struct Treg)#define TLroom_len sizeof(struct TLroom)#define TLpro_len sizeof(struct TLpro)#define TLreg_len sizeof(struct TLreg)#define
9、Room_in_mes puts(nt科室信息录入中.)#define Spe_in_mes puts(nt专家信息录入中.)#define Reg_in_mes puts(nt挂号信息录入中.)/*挂号信息结构体*/struct Treg char pro_num11;/*保存专家编号*/ char case_num15;/*保存病历号*/ char patient_name20;/*保存患者姓名*/ char date11;/*保存挂号日期*/ char assistant20;/*保存挂号人员*/ intserial_num;/*保存挂号流水号*/ float fee;/*保存挂号费*/
10、 struct Treg *next;/*保存指向第一个专家信息的指针*/;/*专家信息结构体*/struct Tpro char room_num11;/*保存科室号*/ char num11;/*保存专家编号*/ char name20;/*保存姓名*/ char birth11;/*保存出生日期*/ char sex;/*保存性别*/ char tel12;/*保存电话*/ char profession15;/*保存职称*/ char summary50;/*保存简介*/int tot_reg;/*保存专家的总挂号量*/ struct Tpro *next;/*保存指向下一个专家信息的
11、指针*/ struct Treg *sub;/*保存指向第一个挂号信息的指针*/;/*科室信息*/struct Troom char num11;/*保存科室号*/ char name20;/*保存科室名*/ char man20;/*保存负责人*/ char tel12;/*保存电话*/int tot_reg;/*保存科室的总挂号量*/ struct Troom *next;/*保存指向下一个挂号信息的指针*/ struct Tpro *sub;/*保存指向第一个专家信息的指针*/;/*辅助变量*/struct TLroomstruct Troom *st;struct TLroom *ne
12、xt;*storep, *pp;struct TLprostruct Tpro *st;struct TLpro *next;*storeq, *qq;struct TLregstruct Treg *st;struct TLreg *next;*storer, *rr;struct Troom *p, *pl, *tempp, *head=NULL;struct Tpro *q, *ql, *tempq;struct Treg *r, *rl, *tempr;char rest20, ret5;int n;int flag, changed;void Main_menu();void Sho
13、w_menu();void Write();void Save();void Load();void Modify();void Insert();void Delete();void Search();void Statistics();void Print();void Exit();void Search_room();void Search_room_with_num(char *);void Search_room_with_name(char *);void Search_room_with_man(char *);void Search_room_with_tel(char *)
14、;void Search_pro();void Search_pro_with_num(char *);void Search_pro_with_name(char *);void Search_pro_with_tel(char *);void Search_reg();void Search_reg_with_serial_num(int);void Search_reg_with_case_num(char *);void Sort_room();void Sort_pro();void Show_room();void Show_room_with_reg();void Show_pr
15、o();void Show_pro_with_reg();void Show_reg();void Print_room();void Print_pro();void Print_reg();char *Tostring(int);void PrnN();void PrnB();void PrnM();void ClearAll();void Clearp();void Clearq();void Clearr();void cls();/*/* 主菜单 */*/void Main_menu() char command; do do Show_menu();command=getchar(
16、); gets(rest);cls(); if (command9) puts(n无此选项!请重新选择);printf(按ENTER以继续.);gets(rest);cls(); while (command9);switch (command) case 1:Write();break;case 2:Save();break; case 3:Load();break; case 4:Modify();break; case 5:Insert();break; case 6:Delete();break; case 7:Search();break; case 8:Statistics();b
17、reak;case 9:Print();break; case 0:Exit(); while (command!=0);void Show_menu() puts(欢迎进入医院门诊挂号系统!); puts(n请选择:n); puts(t1: 录入数据n); puts(t2: 保存文件n); puts(t3: 载入文件n); puts(t4: 修改数据n); puts(t5: 插入数据n); puts(t6: 删除数据n); puts(t7: 查询信息n); puts(t8: 统计数据n); puts(t9: 输出报表n);puts(t0: 退出系统n);/*/* 录入信息 */*/void
18、Write() char command0, command1, command2;char command;if (changed) puts(n录入将覆盖原有信息,您尚未保存,是否保存?Y/N?);command=getchar();gets(rest);cls();if (command=Y | command=y) Save();head=NULL; do p=(struct Troom *)malloc(Troom_len);Room_in_mes;puts(n请输入科室号);gets(p-num);cls();Room_in_mes;puts(n请输入科室名);gets(p-nam
19、e);cls();Room_in_mes;puts(n请输入负责人姓名);gets(p-man);cls();Room_in_mes;puts(n请输入电话);gets(p-tel);cls();p-sub=NULL;p-tot_reg=0;p-next=head;head=p;puts(n是否录入此科室的专家信息?Y/N?);command1=getchar();gets(rest);cls();while (command1=Y | command1=y) q=(struct Tpro *)malloc(Tpro_len);strcpy(q-room_num, p-num);Spe_in_
20、mes;puts(n请输入专家编号); gets(q-num);cls();Spe_in_mes; puts(n请输入姓名);gets(q-name);cls();Spe_in_mes;puts(n请输入出生日期,例:XXXX/XX/XX);gets(q-birth);cls();Spe_in_mes;puts(n请输入性别,M for MAN, W for WOMAN);q-sex=getchar();gets(rest);cls();Spe_in_mes;puts(n请输入电话);gets(q-tel);cls();Spe_in_mes;puts(n请输入职称);gets(q-profes
21、sion);cls();Spe_in_mes;puts(n请输入简介);gets(q-summary);cls();q-sub=NULL;q-tot_reg=0;q-next=p-sub;p-sub=q;puts(n是否录入此专家的挂号信息?Y/N?);command2=getchar();gets(rest);cls();while (command2=Y | command2=y) q-tot_reg+;r=(struct Treg *)malloc(sizeof(struct Treg);strcpy(r-pro_num, q-num);Reg_in_mes;puts(n请输入挂号流水号
22、);scanf(%d, &r-serial_num);gets(rest);cls();Reg_in_mes;puts(n请输入病历号);gets(r-case_num);cls();Reg_in_mes;puts(n请输入患者姓名);gets(r-patient_name);cls();Reg_in_mes;puts(n请输入挂号费(元));scanf(%f, &r-fee);gets(rest);cls();Reg_in_mes;puts(n请输入挂号时间,例:XXXX/XX/XX);gets(r-date);cls();Reg_in_mes;puts(n请输入挂号人员);gets(r-a
23、ssistant);cls();r-next=q-sub;q-sub=r;puts(n是否录入下一个挂号信息?Y/N?);command2=getchar();gets(rest);cls();p-tot_reg+=q-tot_reg;puts(n是否录入下一个专家信息?Y/N?);command1=getchar();gets(rest);cls();puts(n是否录入下一个科室信息?Y/N?);command0=getchar();gets(rest);cls(); while (command0=Y | command0=y); puts(n录入成功!); printf(按ENTER以
24、继续.); gets(rest);cls();changed=1;/*/* 保存文件 */*/void Save() FILE *fp, *fq, *fr; char file120, file220, file320; do puts(nt正在创建科室数据文件.);puts(n请输入文件名:);gets(file1);cls();if (fp=fopen(file1, wb)=NULL) puts(n文件不能打开!);printf(按ENTER以继续.);gets(rest);cls(); while (fp=NULL); do puts(nt正在创建专家数据文件.);puts(n请输入文件
25、名:);gets(file2);cls();if (fq=fopen(file2, wb)=NULL) puts(n文件不能打开!);printf(按ENTER以继续.);gets(rest);cls(); while (fq=NULL); do puts(nt正在创建挂号数据文件.);puts(n请输入文件名:);gets(file3);cls();if (fr=fopen(file3, wb)=NULL) puts(n文件不能打开!);printf(按ENTER以继续.);gets(rest);cls(); while (fr=NULL);for (p=head; p; p=p-next)
26、 fwrite(p, Troom_len, 1, fp);for (q=p-sub; q; q=q-next) fwrite(q, Tpro_len, 1, fq);for (r=q-sub; r; r=r-next)fwrite(r, Treg_len, 1, fr); puts(n保存成功!); printf(按ENTER以继续.); gets(rest);cls();changed=0; fclose(fp); fclose(fq); fclose(fr);/*/* 读取文件 */*/void Load() FILE *fp, *fq, *fr; int t; char file120,
27、 file220, file320; if (changed) char command;puts(n您尚未保存,是否保存?Y/N?);command=getchar();gets(rest);cls();if (command=Y | command=y) Save(); ClearAll(); t=0; do puts(n正在载入科室数据文件.);t+;puts(n请输入文件名:);gets(file1);cls();if (fp=fopen(file1, rb)=NULL) puts(n文件不能打开!);printf(按ENTER以继续.);gets(rest);cls();if (t3
28、) puts(n读取失败,返回主菜单);printf(按ENTER以继续.);gets(rest);cls();return; while (fp=NULL); t=0; do puts(n正在载入专家数据文件);puts(n请输入文件名:);gets(file2);cls();if (fq=fopen(file2, rb)=NULL) puts(n文件不能打开!);printf(按ENTER以继续.);gets(rest);cls();if (t3) puts(n读取失败,返回主菜单);printf(按ENTER以继续.);gets(rest);cls();return; while (fq
29、=NULL); t=0; do puts(n正在载入挂号数据文件);puts(n请输入文件名:);gets(file3);cls();if (fr=fopen(file3, rb)=NULL) puts(n文件不能打开!);printf(按ENTER以继续.);gets(rest);cls();if (t3) puts(n读取失败,返回主菜单);printf(按ENTER以继续.);gets(rest);cls();return; while (fr=NULL); head=NULL; while (!feof(fp) p=(struct Troom *)malloc(Troom_len);f
30、read(p, Troom_len, 1, fp);p-sub=NULL;if (!feof(fp) p-next=head;head=p; while (!feof(fq) q=(struct Tpro *)malloc(Tpro_len);fread(q, Tpro_len, 1, fq);q-sub=NULL;Search_room_with_num(q-room_num);if (!feof(fq) & p) q-next=p-sub;p-sub=q; while (!feof(fr) r=(struct Treg *)malloc(Treg_len);fread(r, Treg_le
31、n, 1, fr);for (p=head; p; p=p-next) Search_pro_with_num(r-pro_num);if (q) break;if (!feof(fr) & q) r-next=q-sub;q-sub=r; puts(n载入成功!); printf(按ENTER以继续.); gets(rest);cls();changed=0; fclose(fp); fclose(fq); fclose(fr);/*/* 修改信息 */*/void Modify()char command1, command2;int flag2;int t;while (1) t=0;d
32、o puts(n请选择您想修改的信息:n);puts(t1: 科室信息n);puts(t2: 专家信息n);puts(t3: 挂号信息n);printf(t); PrnM(); puts(n);command1=getchar();gets(rest);cls();if (command13) & command1!=M & command1!=m) puts(n无此选项!请重新选择);printf(按ENTER以继续.);gets(rest);cls(); while (command13) & command1!=M & command1!=m); switch (command1) ca
33、se 1:printf(n请提供科室的相关信息,);flag=0;Search_room();if (flag) continue;if (p) t=0;flag2=0;while (1) do puts(n请选择您想修改的信息:n);puts(t1: 科室号n);puts(t2: 科室名n);puts(t3: 负责人n);puts(t4: 电话n);printf(t); PrnB(); puts(n);command2=getchar();gets(rest);cls();if (command24) & command2!=B & command2!=b) puts(n无此选项!请重新选择
34、);printf(按ENTER以继续.);gets(rest);cls(); while (command24) & command2!=B & command2!=b);switch (command2) case 1:puts(n请输入新的科室号);gets(p-num);cls();for (q=p-sub; q; q=q-next) strcpy(q-room_num, p-num);break;case 2:puts(n请输入新的科室名);gets(p-name);cls();break;case 3:puts(n请输入新的负责人姓名);gets(p-man);cls();break
35、;case 4:puts(n请输入新的电话);gets(p-tel);cls();break;case B:case b:flag2=1;if (flag2) break;puts(n修改成功!);printf(按ENTER以继续.);gets(rest);cls();changed=1; else puts(n错误!科室不存在);t+;if (t=5) puts(错误太多!返回主菜单);printf(按ENTER以继续.);gets(rest);cls();return;printf(按ENTER以继续.);gets(rest);cls();continue;break;case 2:pri
36、ntf(n请提供专家所在科室的相关信息,);flag=0;Search_room();if (flag) continue;if (p) printf(n请提供专家的相关信息,);flag=0;Search_pro();if (flag) continue;if (q) t=0;flag2=0;while (1) do puts(n请选择您想修改的信息:n);puts(t1: 专家编号n);puts(t2: 姓名n);puts(t3: 出生日期n);puts(t4: 性别n);puts(t5: 电话n);puts(t6: 职称n);puts(t7: 简介n);printf(t); PrnB()
37、; puts(n);command2=getchar();gets(rest);cls();if (command27 | command27 | command2num);cls();for (r=q-sub; r; r=r-next) strcpy(r-pro_num, q-num);break;case 2:puts(n请输入新的姓名);gets(q-name);cls();break;case 3:puts(n请输入新的出生日期,例:XXXX/XX/XX);gets(q-birth);cls();break;case 4:puts(n请输入新的性别);q-sex=getchar();g
38、ets(rest);cls();break;case 5:puts(n请输入新的电话);gets(q-tel);cls();break;case 6:puts(n请输入新的职称);gets(q-profession);cls();break;case 7:puts(n请输入新的简介);gets(q-summary);cls();break;case B:case b:flag2=1;if (flag2) break;puts(n修改成功!);printf(按ENTER以继续.);gets(rest);cls();changed=1; else t+;puts(n错误!专家不存在);if (t=
39、5) puts(错误太多!返回主菜单);printf(按ENTER以继续.);gets(rest);cls();return;printf(按ENTER以继续.);gets(rest);cls(); else t+;puts(n错误!科室不存在);if (t=5) puts(错误太多!返回主菜单);printf(按ENTER以继续.);gets(rest);cls();return;printf(按ENTER以继续.);gets(rest);cls();continue;break;case 3:printf(n请提供挂号所在科室的相关信息,);flag=0;Search_room();if
40、(flag) continue;if (p) printf(n请提供挂号所属专家的相关信息,);flag=0;Search_pro();if (flag) continue;if (q) printf(n请提供挂号的相关信息,);flag=0;Search_reg();if (flag) continue;if (r) t=0;flag2=0;while (1) do puts(n请选择您想修改的信息:n);puts(t1: 挂号流水号n);puts(t2: 病历号n);puts(t3: 患者姓名n);puts(t4: 挂号费n);puts(t5: 挂号日期n);puts(t6: 挂号人员n)
41、;printf(t); PrnB(); puts(n);command2=getchar();gets(rest);cls();if (command26 | command26 | command2serial_num);gets(rest);cls();break;case 2:puts(n请输入新的病历号);gets(r-case_num);cls();break;case 3:puts(n请输入新的患者姓名);gets(r-patient_name);cls();break;case 4:puts(n请输入新的挂号费);scanf(%lf, r-fee);gets(rest);cls(
42、);break;case 5:puts(n请输入新的挂号日期,例:XXXX/XX/XX);gets(r-date);cls();break;case 6:puts(n请输入新的挂号人员);gets(r-assistant);cls();break;case B:case b:flag2=1;if (flag2) break;puts(n修改成功!);printf(按ENTER以继续.);gets(rest);cls();changed=1; else t+;puts(n错误!挂号不存在);if (t=5) puts(错误太多!返回主菜单);printf(按ENTER以继续.);gets(res
43、t);cls();return;printf(按ENTER以继续.);gets(rest);cls();continue; else t+;puts(n错误!专家不存在);if (t=5) puts(错误太多!返回主菜单);printf(按ENTER以继续.);gets(rest);cls();return;printf(按ENTER以继续.);gets(rest);cls();continue; else t+;puts(n错误!科室不存在);if (t=5) puts(错误太多!返回主菜单);printf(按ENTER以继续.);gets(rest);cls();return;printf
44、(按ENTER以继续.);gets(rest);cls();continue;break;case M:case m:return; /*/* 插入信息 */*/void Insert() char command0, command1, command2; int t; do t=0; do puts(n请选择您想插入的信息:n); puts(t1: 科室信息n); puts(t2: 专家信息n);puts(t3: 挂号信息n);printf(t); PrnM(); puts(n);command1=getchar(); gets(rest);cls(); if (command13) &
45、command1!=M & command1!=m) puts(n无此选项!请重新选择);printf(按ENTER以继续.);gets(rest);cls(); while (command13) & command1!=M & command1!=m); switch (command1) case 1:goto case1; case 2:printf(n在哪个科室?);flag=0;Search_room();if (flag) continue;if (p) t=0;goto case2; else t+;puts(n错误!科室不存在); if (t=5) puts(错误太多!返回主
46、菜单);printf(按ENTER以继续.); gets(rest);cls();return; printf(按ENTER以继续.);gets(rest);cls();continue;case 3:printf(n在哪个科室?);flag=0;Search_room();if (flag) continue;if (p) printf(n属哪个专家?);flag=0;Search_pro();if (flag) continue;if (q) t=0;goto case3; else t+;puts(n错误!专家不存在);if (t=5) puts(错误太多!返回主菜单);printf(按
47、ENTER以继续.);gets(rest);cls();return;printf(按ENTER以继续.);gets(rest);cls();continue; else t+;puts(n错误!专家不存在);if (t=5) puts(错误太多!返回主菜单);printf(按ENTER以继续.);gets(rest);cls();return;printf(按ENTER以继续.);gets(rest);cls();continue;case M: case m:return; while (command1!=M & command1!=m);case1: do p=(struct Troo
48、m *)malloc(Troom_len);Room_in_mes;puts(n请输入科室号);gets(p-num);cls();Room_in_mes;puts(n请输入科室名);gets(p-name);cls();Room_in_mes;puts(n请输入负责人姓名);gets(p-man);cls();Room_in_mes;puts(n请输入电话);gets(p-tel);cls();p-sub=NULL;p-tot_reg=0;p-next=head;head=p;puts(n是否录入此科室的专家信息?Y/N?);command1=getchar();gets(rest);cls
49、();while (command1=Y | command1=y) case2: q=(struct Tpro *)malloc(Tpro_len);strcpy(q-room_num, p-num);Spe_in_mes;puts(n请输入专家编号); gets(q-num);cls();Spe_in_mes; puts(n请输入姓名);gets(q-name);cls();Spe_in_mes;puts(n请输入出生日期,例:XXXX/XX/XX);gets(q-birth);cls();Spe_in_mes;puts(n请输入性别,M for MAN, W for WOMAN);q-s
50、ex=getchar();gets(rest);cls();Spe_in_mes;puts(n请输入电话);gets(q-tel);cls();Spe_in_mes;puts(n请输入职称);gets(q-profession);cls();Spe_in_mes;puts(n请输入简介);gets(q-summary);cls();q-sub=NULL;q-tot_reg=0;q-next=p-sub;p-sub=q;puts(n是否录入此专家的挂号信息?Y/N?);command2=getchar();gets(rest);cls();while (command2=Y | command2
51、=y) case3:q-tot_reg+;r=(struct Treg *)malloc(sizeof(struct Treg);strcpy(r-pro_num, q-num);Reg_in_mes;puts(n请输入挂号流水号);scanf(%d, &r-serial_num);gets(rest);cls();Reg_in_mes;puts(n请输入病历号);gets(r-case_num);cls();Reg_in_mes;puts(n请输入患者姓名);gets(r-patient_name);cls();Reg_in_mes;puts(n请输入挂号费(元));scanf(%f, &r
52、-fee);gets(rest);cls();Reg_in_mes;puts(n请输入挂号时间,例:XXXX/XX/XX);gets(r-date);cls();Reg_in_mes;puts(n请输入挂号人员);gets(r-assistant);cls();r-next=q-sub;q-sub=r;puts(n是否录入下一个挂号信息?Y/N?);command2=getchar();gets(rest);cls();p-tot_reg+=q-tot_reg;puts(n是否录入下一个专家信息?Y/N?);command1=getchar();gets(rest);cls();puts(n是
53、否录入下一个科室信息?Y/N?);command0=getchar();gets(rest);cls(); while (command0=Y | command0=y); puts(n录入成功!); printf(按ENTER以继续.); gets(rest);cls();changed=1;/*/* 删除信息 */*/void Delete() char command1; int t; do do puts(n请选择要删除的信息:n);puts(t1: 科室信息n);puts(t2: 专家信息n);puts(t3: 挂号信息n);printf(t); PrnM(); puts(n);co
54、mmand1=getchar();gets(rest);cls();if (command13) & command1!=M & command1!=m) puts(n无此选项!请重新选择);printf(按ENTER以继续.);gets(rest);cls(); while (command13) & command1!=M & command1!=m);t=0; switch (command1) case 1:printf(n请提供科室的相关信息,);flag=0;Search_room();if (flag) continue;if (p) t=0;if (p=head) head=p
55、-next;Clearp(p); else pl-next=p-next;Clearp(p);puts(n删除成功!);printf(按ENTER以继续.);gets(rest);cls();changed=1; else puts(n错误!科室不存在);t+;if (t=5) puts(错误太多!返回主菜单);printf(按ENTER以继续.);gets(rest);cls();return;printf(按ENTER以继续.);gets(rest);cls();continue;case 2:printf(n请提供专家所在科室的相关信息,);flag=0;Search_room();if
56、 (flag) continue;if (p) printf(n请提供专家的相关信息,);flag=0;Search_pro();if (flag) continue;if (q) t=0;p-tot_reg-=q-tot_reg;if (q=p-sub) p-sub=q-next;Clearq(q); else ql-next=q-next;Clearq(q);puts(n删除成功!);printf(按ENTER以继续.);gets(rest);cls();changed=1; else t+;puts(n错误!专家不存在);if (t=5) puts(错误太多!返回主菜单);printf(
57、按ENTER以继续.);gets(rest);cls();return;printf(按ENTER以继续.);gets(rest);cls(); else t+;puts(n错误!科室不存在);if (t=5) puts(错误太多!返回主菜单);printf(按ENTER以继续.);gets(rest);cls();return;printf(按ENTER以继续.);gets(rest);cls();continue;case 3:printf(n请提供挂号所在科室的相关信息,);flag=0;Search_room();if (flag) continue;if (p) printf(n请提
58、供挂号所属专家的相关信息,);flag=0;Search_pro();if (flag) continue;if (q) printf(n请提供挂号的相关信息,);flag=0;Search_reg();if (flag) continue;if (r) t=0;q-tot_reg-;p-tot_reg-;if (r=q-sub) q-sub=r-next;Clearr(r); else rl-next=r-next;Clearr(r);q-tot_reg-;p-tot_reg-;puts(n删除成功!);printf(按ENTER以继续.);gets(rest);cls();changed=
59、1; else t+;puts(n错误!挂号不存在);if (t=5) puts(错误太多!返回主菜单);printf(按ENTER以继续.);gets(rest);cls();return;printf(按ENTER以继续.);gets(rest);cls();continue; else t+;puts(n错误!专家不存在);if (t=5) puts(错误太多!返回主菜单);printf(按ENTER以继续.);gets(rest);cls();return;printf(按ENTER以继续.);gets(rest);cls();continue; else t+;puts(n错误!科室
60、不存在);if (t=5) puts(错误太多!返回主菜单);printf(按ENTER以继续.);gets(rest);cls();return;printf(按ENTER以继续.);gets(rest);cls();continue;case M:case m:return; while (command1!=M & command1!=m);/*/* 查询信息 */*/void Search() char command1;struct TLroom *dpp;struct TLpro *dqq;struct TLreg *drr; do do puts(n您想查询什么信息?请选择:n)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高速公路智能交通系统2025年智能交通系统与智慧交通应用报告
- 基于5G商用深化2025年边缘计算行业应用案例分析报告
- 烧烤场地外租赁合同协议
- 消防验收咨询费合同范本
- 闲置水泥仓收购合同范本
- 猫咪寄养健康协议书模板
- 铸造承包合同协议书范本
- 长期合作的物流合同范本
- 项目部采购护栏合同范本
- 生物质燃料采购合同协议
- 2025-2030中国1,6-己二醇行业市场发展趋势与前景展望战略研究报告
- 沉淀池斜管安装施工方案
- 老人躺卧后的安全检查
- 三菱燃气轮机培训手册
- 《基因与出生缺陷》课件
- 面向I3型卓越人才培养的嵌入式人工智能实验教学探索
- 酒类代理合同范本
- 2025年中国航空航天新材料行业市场运行态势及投资前景展望报告
- DB3308T 137-2023 全域白蚁防治技术规程
- 有创血压监测操作流程、评分标准
- GB/T 44951-2024防弹材料及产品V50试验方法
评论
0/150
提交评论