C語言課程設(shè)計報告醫(yī)院專家門診掛號系統(tǒng)_第1頁
C語言課程設(shè)計報告醫(yī)院專家門診掛號系統(tǒng)_第2頁
C語言課程設(shè)計報告醫(yī)院專家門診掛號系統(tǒng)_第3頁
C語言課程設(shè)計報告醫(yī)院專家門診掛號系統(tǒng)_第4頁
C語言課程設(shè)計報告醫(yī)院專家門診掛號系統(tǒng)_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、華中科技大學(xué)計算機科學(xué)與技術(shù)學(xué)院C語言程序設(shè)計課程設(shè)計實驗報告題目: 醫(yī)院專家門診掛號系統(tǒng) 專業(yè): 計算機科學(xué)與技術(shù) 班級: 計算機XXX班 學(xué)號: XXXX 姓名: XXX 成績: 指導(dǎo)教師: XXX 完成日期: 20XX年 10月 10日系統(tǒng)功能模塊圖主菜單數(shù)據(jù)管理保存和讀取統(tǒng)計查詢刪除修改錄入各項信息統(tǒng)計科室、專家、掛號信息查詢打印報表支持多關(guān)鍵字的搜索引擎退出添加數(shù)據(jù)結(jié)構(gòu)設(shè)計及用法說明主要的三個結(jié)構(gòu)(采用了十字交叉鏈表):科室信息的結(jié)構(gòu)、專家信息的結(jié)構(gòu)及掛號信息的結(jié)構(gòu)。分別如下:/*科室信息*/struct Troom char num11;/*保存科室號*/ char name20;

2、/*保存科室名*/ char man20;/*保存負責(zé)人*/ char tel12;/*保存電話*/int tot_reg;/*保存科室的總掛號量*/ struct Troom *next;/*保存指向下一個科室信息的指針*/ struct Tpro *sub;/*保存指向?qū)<倚畔⒌念^指針*/;/*掛號信息結(jié)構(gòu)體*/struct Treg char pro_num11;/*保存專家編號*/ char case_num15;/*保存病歷號*/ char patient_name20;/*保存患者姓名*/ char date11;/*保存掛號日期*/ char assistant20;/*保存掛號

3、人員*/ intserial_num;/*保存掛號流水號*/ float fee;/*保存掛號費*/ struct Treg *next;/*保存指向下一個掛號信息的指針*/;/*專家信息結(jié)構(gòu)體*/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掛號記錄鏈 程序結(jié)構(gòu)流程圖系統(tǒng)總體流程圖:開始主菜單錄入信息修改信息插入信息刪除信息保存文件讀取文件查詢信息統(tǒng)計數(shù)據(jù)打印報表退出系統(tǒng)科室信息專家信息掛號信息讀入關(guān)鍵字多關(guān)鍵字搜索結(jié)束查詢流程圖:查詢信息輸入關(guān)鍵字從信息總體中提取含有關(guān)鍵字的信息輸出信息各模塊功能數(shù)據(jù)管理模塊中包含

5、錄入信息、修改信息、插入信息和刪除信息四大功能:錄入信息:錄入科室、專家、掛號信息;修改信息:對科室、專家、掛號信息進行修改;添加信息:添加科室或?qū)<?;刪除信息:取消科室或解雇專家。統(tǒng)計查詢模塊中包含查詢信息和統(tǒng)計數(shù)據(jù)查詢信息:可查詢所有科室、專家和掛號信息,還可以查詢某個特定的信息,使用多關(guān)鍵字匹配和KMP字符串匹配技術(shù);統(tǒng)計數(shù)據(jù):有3種統(tǒng)計的信息可供查看:各科室的掛號量;各專家的掛號量;某天掛號的患者的基本信息。保存和讀取模塊:保存文件和讀取文件;退出程序:退出醫(yī)院專家門診掛號系統(tǒng)。各功能函數(shù)的相關(guān)說明見附錄中的源程序清單。試驗結(jié)果整個程序運行起來很正常,沒有出現(xiàn)bug,我這就把輸出結(jié)果的

6、截屏貼在下面:科室基本信息(部分):專家基本信息(部分):掛號基本信息(部分):統(tǒng)計信息均準確無誤:各科室的掛號量:各專家的掛號量:某天掛號的基本信息:心得體會第一次寫管理系統(tǒng)這樣的大型程序,說真的,有點不習(xí)慣,以前的一些代碼風(fēng)格成了我這次課設(shè)的最大障礙。比如說,以前寫小程序因為通常只有一個主函數(shù),所以很多變量都是局部變量,而這次大型作業(yè)要求有很多的函數(shù)相互交叉,共同完成一些功能,所以必須要用全局變量。還有我的編程風(fēng)格無意義的變量名使我吃了很多苦頭,很多時候,我的變量名都混淆了,以至于我最后改的時候很麻煩。這次課設(shè),讓我學(xué)了很多東西,除了代碼風(fēng)格和編程習(xí)慣的優(yōu)化之外,我的代碼能力也明顯提高了。

7、經(jīng)過這次課設(shè),我一些以前沒有徹底掌握的東西都牢牢掌握了。比如指針的靈活運用,函數(shù)之間的互相調(diào)用的代碼級優(yōu)化等等。盡管我學(xué)到了很多東西,但是對于這次大型作業(yè)我還是有一點遺憾,那就是代碼的重復(fù)利用率不高,很多幾乎一樣的代碼在我的程序中出現(xiàn)了多次(畢竟是一個上午寫出來的東西,這也不能怪我)。本來我有心想優(yōu)化一下,使重復(fù)利用率提高,但是由于ACM/ICPC將近,我全部時間都用在訓(xùn)練上,所以就算了。希望不會對我的課設(shè)的評價造成太大的影響。路漫漫其修遠兮,吾將上下而求索。程序設(shè)計這條路還很長,我會繼續(xù)走下去,不斷自我完善,早日成為一個出色的程序員。參考文獻所有資料均從百度而來附錄:程序清單/*/* 醫(yī)院門

8、診掛號系統(tǒng)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掛號信息錄入中.)/*掛號信息結(jié)構(gòu)體*/struct Treg char pro_num11;/*保存專家編號*/ char case_num15;/*保存病歷號*/ char patient_name20;/*保存患者姓名*/ char date11;/*保存掛號日期*/ char assistant20;/*保存掛號人員*/ intserial_num;/*保存掛號流水號*/ float fee;/*保存掛號費*/

10、 struct Treg *next;/*保存指向第一個專家信息的指針*/;/*專家信息結(jié)構(gòu)體*/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;/*保存負責(zé)人*/ 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以繼續(xù).);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(歡迎進入醫(yī)院門診掛號系統(tǒng)!); puts(n請選擇:n); puts(t1: 錄入數(shù)據(jù)n); puts(t2: 保存文件n); puts(t3: 載入文件n); puts(t4: 修改數(shù)據(jù)n); puts(t5: 插入數(shù)據(jù)n); puts(t6: 刪除數(shù)據(jù)n); puts(t7: 查詢信息n); puts(t8: 統(tǒng)計數(shù)據(jù)n); puts(t9: 輸出報表n);puts(t0: 退出系統(tǒng)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請輸入負責(zé)人姓名);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、繼續(xù).); gets(rest);cls();changed=1;/*/* 保存文件 */*/void Save() FILE *fp, *fq, *fr; char file120, file220, file320; do puts(nt正在創(chuàng)建科室數(shù)據(jù)文件.);puts(n請輸入文件名:);gets(file1);cls();if (fp=fopen(file1, wb)=NULL) puts(n文件不能打開!);printf(按ENTER以繼續(xù).);gets(rest);cls(); while (fp=NULL); do puts(nt正在創(chuàng)建專家數(shù)據(jù)文件.);puts(n請輸入文件

25、名:);gets(file2);cls();if (fq=fopen(file2, wb)=NULL) puts(n文件不能打開!);printf(按ENTER以繼續(xù).);gets(rest);cls(); while (fq=NULL); do puts(nt正在創(chuàng)建掛號數(shù)據(jù)文件.);puts(n請輸入文件名:);gets(file3);cls();if (fr=fopen(file3, wb)=NULL) puts(n文件不能打開!);printf(按ENTER以繼續(xù).);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以繼續(xù).); 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正在載入科室數(shù)據(jù)文件.);t+;puts(n請輸入文件名:);gets(file1);cls();if (fp=fopen(file1, rb)=NULL) puts(n文件不能打開!);printf(按ENTER以繼續(xù).);gets(rest);cls();if (t3

28、) puts(n讀取失敗,返回主菜單);printf(按ENTER以繼續(xù).);gets(rest);cls();return; while (fp=NULL); t=0; do puts(n正在載入專家數(shù)據(jù)文件);puts(n請輸入文件名:);gets(file2);cls();if (fq=fopen(file2, rb)=NULL) puts(n文件不能打開!);printf(按ENTER以繼續(xù).);gets(rest);cls();if (t3) puts(n讀取失敗,返回主菜單);printf(按ENTER以繼續(xù).);gets(rest);cls();return; while (fq

29、=NULL); t=0; do puts(n正在載入掛號數(shù)據(jù)文件);puts(n請輸入文件名:);gets(file3);cls();if (fr=fopen(file3, rb)=NULL) puts(n文件不能打開!);printf(按ENTER以繼續(xù).);gets(rest);cls();if (t3) puts(n讀取失敗,返回主菜單);printf(按ENTER以繼續(xù).);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以繼續(xù).); 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以繼續(xù).);gets(rest);cls(); while (command13) & command1!=M & command1!=m); switch (command1) ca

33、se 1:printf(n請?zhí)峁┛剖业南嚓P(guā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: 負責(zé)人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以繼續(xù).);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請輸入新的負責(zé)人姓名);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以繼續(xù).);gets(rest);cls();changed=1; else puts(n錯誤!科室不存在);t+;if (t=5) puts(錯誤太多!返回主菜單);printf(按ENTER以繼續(xù).);gets(rest);cls();return;printf(按ENTER以繼續(xù).);gets(rest);cls();continue;break;case 2:pri

36、ntf(n請?zhí)峁<宜诳剖业南嚓P(guān)信息,);flag=0;Search_room();if (flag) continue;if (p) printf(n請?zhí)峁<业南嚓P(guā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以繼續(xù).);gets(rest);cls();changed=1; else t+;puts(n錯誤!專家不存在);if (t=

39、5) puts(錯誤太多!返回主菜單);printf(按ENTER以繼續(xù).);gets(rest);cls();return;printf(按ENTER以繼續(xù).);gets(rest);cls(); else t+;puts(n錯誤!科室不存在);if (t=5) puts(錯誤太多!返回主菜單);printf(按ENTER以繼續(xù).);gets(rest);cls();return;printf(按ENTER以繼續(xù).);gets(rest);cls();continue;break;case 3:printf(n請?zhí)峁焯査诳剖业南嚓P(guān)信息,);flag=0;Search_room();if

40、(flag) continue;if (p) printf(n請?zhí)峁焯査鶎賹<业南嚓P(guān)信息,);flag=0;Search_pro();if (flag) continue;if (q) printf(n請?zhí)峁焯柕南嚓P(guā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以繼續(xù).);gets(rest);cls();changed=1; else t+;puts(n錯誤!掛號不存在);if (t=5) puts(錯誤太多!返回主菜單);printf(按ENTER以繼續(xù).);gets(res

43、t);cls();return;printf(按ENTER以繼續(xù).);gets(rest);cls();continue; else t+;puts(n錯誤!專家不存在);if (t=5) puts(錯誤太多!返回主菜單);printf(按ENTER以繼續(xù).);gets(rest);cls();return;printf(按ENTER以繼續(xù).);gets(rest);cls();continue; else t+;puts(n錯誤!科室不存在);if (t=5) puts(錯誤太多!返回主菜單);printf(按ENTER以繼續(xù).);gets(rest);cls();return;printf

44、(按ENTER以繼續(xù).);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以繼續(xù).);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以繼續(xù).); gets(rest);cls();return; printf(按ENTER以繼續(xù).);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以繼續(xù).);gets(rest);cls();return;printf(按ENTER以繼續(xù).);gets(rest);cls();continue; else t+;puts(n錯誤!專家不存在);if (t=5) puts(錯誤太多!返回主菜單);printf(按ENTER以繼續(xù).);gets(rest);cls();return;printf(按ENTER以繼續(xù).);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請輸入負責(zé)人姓名);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以繼續(xù).); 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以繼續(xù).);gets(rest);cls(); while (command13) & command1!=M & command1!=m);t=0; switch (command1) case 1:printf(n請?zhí)峁┛剖业南嚓P(guā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以繼續(xù).);gets(rest);cls();changed=1; else puts(n錯誤!科室不存在);t+;if (t=5) puts(錯誤太多!返回主菜單);printf(按ENTER以繼續(xù).);gets(rest);cls();return;printf(按ENTER以繼續(xù).);gets(rest);cls();continue;case 2:printf(n請?zhí)峁<宜诳剖业南嚓P(guān)信息,);flag=0;Search_room();if

56、 (flag) continue;if (p) printf(n請?zhí)峁<业南嚓P(guā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以繼續(xù).);gets(rest);cls();changed=1; else t+;puts(n錯誤!專家不存在);if (t=5) puts(錯誤太多!返回主菜單);printf(

57、按ENTER以繼續(xù).);gets(rest);cls();return;printf(按ENTER以繼續(xù).);gets(rest);cls(); else t+;puts(n錯誤!科室不存在);if (t=5) puts(錯誤太多!返回主菜單);printf(按ENTER以繼續(xù).);gets(rest);cls();return;printf(按ENTER以繼續(xù).);gets(rest);cls();continue;case 3:printf(n請?zhí)峁焯査诳剖业南嚓P(guān)信息,);flag=0;Search_room();if (flag) continue;if (p) printf(n請?zhí)?/p>

58、供掛號所屬專家的相關(guān)信息,);flag=0;Search_pro();if (flag) continue;if (q) printf(n請?zhí)峁焯柕南嚓P(guā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以繼續(xù).);gets(rest);cls();changed=

59、1; else t+;puts(n錯誤!掛號不存在);if (t=5) puts(錯誤太多!返回主菜單);printf(按ENTER以繼續(xù).);gets(rest);cls();return;printf(按ENTER以繼續(xù).);gets(rest);cls();continue; else t+;puts(n錯誤!專家不存在);if (t=5) puts(錯誤太多!返回主菜單);printf(按ENTER以繼續(xù).);gets(rest);cls();return;printf(按ENTER以繼續(xù).);gets(rest);cls();continue; else t+;puts(n錯誤!科室

60、不存在);if (t=5) puts(錯誤太多!返回主菜單);printf(按ENTER以繼續(xù).);gets(rest);cls();return;printf(按ENTER以繼續(xù).);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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論