門診掛號管理系統_第1頁
門診掛號管理系統_第2頁
門診掛號管理系統_第3頁
門診掛號管理系統_第4頁
門診掛號管理系統_第5頁
已閱讀5頁,還剩7頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 長治學院課程設計報告課程名稱: 數據結構 設計題目: 門診掛號管理系統 系 別: 計算機系 專 業: 計算機科學與技術 組 別: 18 學生姓名: 學 號: 起止日期: 2012年3月23日 2012年6月12日 指導教師: 目 錄第一章 需求分析-31.1 課程設計題目-31.2 課程設計任務及要求-31.3 課程設計的思想-31.4 程序運行的環境及開發工具-3第二章 概要設計-42.1 門診掛號管理系統的流程圖-42.2 主要的數據結構-52.3 完成本課程設計所用方法及其原理的簡要說明-5第三章 詳細設計-53.1 課程設計整體結構-53.2 部分程序-5第四章 調試與操作說明-9第

2、五章 課程設計總結與體會-10第六章 致 謝-11第七章 參考文獻-12第八章 附 錄-12第九章 成績評定-13第一章 需求分析1.1課程設計題目:門診掛號管理系統(采用帶頭結點單循環鏈表)1.2課程設計任務及要求:通過這次課程設計,了解并初步掌握設計、實現較大系統的完整過程,包括系統分析、編碼設計、系統集成、以及調試分析,熟練掌握數據結構的選擇、設計、實現以及操作方法,為進一步的應用開發打好基礎。本課程設計要求做門診掛號管理系統,采用帶頭結點單循環鏈表來完成。系統要求能實現以下功能:1使用密碼啟動模塊進入界面,并且要求能修改密碼;2. 可以進行門診掛號情況的數據建立、顯示;3實現門診掛號信

3、息的刪除(包括按姓名刪除和按病歷號刪除)、插入(包括插入到尾部和插入到任意位置)、查找(包括按姓名查找和按病歷號查找)、排序(包括按病歷號排序和按掛號碼排序)、統計(分別統計:每位醫生所看病人數及所得總掛號費及總收入)的功能;4.可以將內存中的數據存入磁盤。5.可以將磁盤保存的數據載入內存。1.3課程設計思想:首先編寫建立、顯示、刪除、插入、查找、排序、統計等各個模塊(子函數),然后通過函數調用等方式將這些模塊連接起來,并編寫啟動界面和密碼修改模塊以及存盤、讀盤函數,最后經過不斷地調試和修改成為完整的門診掛號管理系統。1.4 程序運行環境及開發工具:主要工具:windows xp操作系統;mi

4、crosoft visual c+ 6.0;輔助工具:turbo cc+ v3.0 漢化版;記事本;第二章 概要設計2.1 門診掛號系統的流程圖密碼正確?門診掛號管理系統登陸系統門診掛號庫的顯示操作門診掛號庫的建立操作門診掛號庫的插入操作門診掛號庫的查找操作門診掛號庫的刪除操作門診掛號庫的統計操作門診掛號庫的排序操作修改系統庫的密碼操作將數據庫存入磁盤文件將磁盤文件載入到內存正向輸出逆向輸出插入到任意位置插入到尾部按病歷號刪除按姓名刪除按病歷號排序按掛號碼排序n判斷三次是否正確退出nyy2.2 主要的數據結構本課程設計主要包括以下幾個模塊:01.門診掛號管理系統的建立操作02.門診掛號管理系統

5、的顯示操作03.門診掛號管理系統的刪除操作04.門診掛號管理系統的插入操作05.門診掛號管理系統的查找操作06.門診掛號管理系統的排序操作07.門診掛號管理系統的統計操作08.門診掛號管理系統的修改操作09.門診掛號管理系統的掛號操作10.門診掛號管理系統的保存操作 11.將數據存入磁盤文件 12.將磁盤文件載入內存 13.退出系統 2.3 完成本課程設計所用方法及其原理的簡要說明:調用庫函數、各個功能模塊函數之間的互相調用第三章 詳細設計3.1課程設計整體結構本課程設計采用帶頭結點單循環鏈表來做門診掛號管理系統,包括門診掛號庫的建立操作、顯示操作、刪除操作、插入操作、查找操作、排序操作、統計

6、操作、修改系統的密碼操作、將數據存入磁盤文件操作、將磁盤文件載入內存操作、以及退出系統操作等模塊。除此之外還包括系統啟動窗口界面函數、密碼隱藏函數、輸入錯誤提示函數、判斷是否為空鏈表并提示的函數、限定數據范圍函數、鏈表的銷毀函數等。3.2部分程序:(1).門診掛號庫的建立操作void setlink(link *head) /*(采用后插法)建立單鏈表*/ char str15,ch; int i=0,age; lnode *q,*p,*r; printf(是否錄入數據?(y/n); scanf(%c%*c,&ch); if(ch=y) printf(病歷號-姓名-性別-年齡-日期-醫生-科室

7、-掛號費-掛號碼n); q=(lnode *)malloc(sizeof(lnode); q-next=q; *head=q; p=q; while(ch=y) printf(請輸入病歷號:n); gets(str); while(strlen(str)=0|cxsd(str) printf(病歷號中不能包含字符和小數點請重新輸入病歷號:n); gets(str); r=*head; while(r-next!=*head & !(strcmp(r-num,str)=0) r=r-next; if(strcmp(r-num,str)=0) printf(編號以經存在!是否重新錄入數據?(y/n

8、): ); scanf(%c%*c,&ch); if(ch=y) continue; else break; strcpy(q-num,str); i+; printf(請輸入醫生名:n); gets(str); while(strlen(str)=0|xsd(str) printf(醫生名中不能包含數字和小數點請重新輸入醫生名:n); gets(str); strcpy(q-dname,str); if(i=1) q-numb=-1; r=*head; while(r-next!=*head & strcmp(r-dname,str)!=0) r=r-next; if(strcmp(r-dn

9、ame,str)=0) q-numb=r-numb+1; else q-numb=0; printf(請輸入科室名:n); gets(str); while(strlen(str)=0|xsd(str) printf(科室中不能包含數字和小數點請重新輸入科室:n); gets(str); strcpy(q-keshi,str); q-fee=0; printf(請輸入姓名:n); gets(str); while(strlen(str)=0|xsd(str) printf(姓名中不能包含數字和小數點請重新輸入姓名:n); gets(str); strcpy(q-name,str); print

10、f(請輸入年齡:n); gets(str); age=atoi(str); if (age110|ageage=age; while(1) printf(請輸入性別:(man/woman)n); gets(str); if(strlen(str)=0|xsd(str) printf(請輸入性別:n); gets(q-sex); if(strcmp(man,str)=0 | strcmp(woman,str)=0) break; strcpy(q-sex,str); printf(請輸入日期年月日用點號分隔(2012.03.02):n); gets(str); while(strlen(str)

11、=0 | jcrq(str) | strlen(str)!=10) printf(日期輸入錯誤請重新輸入:n); gets(str); strcpy(q-date,str); if(q!=*head) q-next=head; /*鏈接后繼指針*/ p-next=q; p=q; printf(是否繼續錄入數據?(y/n)n); scanf(%c%*c,&ch); if(ch=y) q=(lnode *)malloc(sizeof(lnode); (2).將磁盤文件載入內存 void load(link *head) /* 在當前目錄中打開任意名字的文件 */ lnode *p,*q=null;

12、 char str30; file *fp; int i=0; printf(n); printf(n); printf( * n); printf( * * n); printf( * * n); printf( * 門診掛號管理系統文件載入窗口 * n); printf( * * n); printf( * * n); printf( * * n); printf( * n); printf(n); printf(n); printf( 輸入載入磁盤文件名(可帶路徑) : ); gets(str); fp=fopen(str,rb); while(fp=null) i+; if(i=3)

13、printf(n); printf(n); printf(n); printf(n); printf( * n); printf( * * n); printf( * * n); printf( * 請建立新鏈表后存盤保存 * n); printf( * * n); printf( * 選擇新磁盤文件載入 * n); printf( * * n); printf( * * n); printf( * n); printf(n); printf(n); scanf(%*c); exit(0); printf( 磁盤文件 %s 不存在!n,str); printf( 輸入載入磁盤文件名(可帶路徑)

14、 : ); gets(str); fp=fopen(str,rb); while(*head) p=(*head)-next; free(*head); (*head)=p; printf(n 磁盤文件 %s 裝入內存成功!n,str); *head=inilink(*head); *head=(lnode *)malloc(sizeof(lnode); (*head)-next=*head; p=*head; while(!feof(fp) q=(lnode *)malloc(sizeof(lnode); if(!p) printf(內存中無容量n); return; if(1!=fread

15、(q,sizeof(lnode),1,fp) break; q-next=p-next; p-next=q; p=q; q=*head; (*head)=(*head)-next; free(q); p-next=*head; fclose(fp); printf(nn); printf( 按任意鍵返回到主窗口!); scanf(%*c);(3).按掛號碼排序 lnode *sortdata(lnode *head) /*按掛號碼排序 */ lnode *p,*q,*s,*r; p=head; head=(lnode *)malloc(sizeof(lnode); /* 建立一個循環表頭 */

16、 head-next=head; while(p-next!=p) q=p; /* q始終指向最小值 */ r=q-next; /* r移動指針 */ while(r!=p) /* 查找最小值 */ if(q-numbnumb) q=r; /* 按掛號碼排序 */ r=r-next; if(q!=p) /* 如果假設的最小值不正確 */s=p;while(s-next!=q) s=s-next; /* 確定最小值 q 的直接前驅 s */ s-next=q-next; /* 刪除最小值結點 */ else s=p; while(s-next!=p) s=s-next; p=p-next; s-

17、next=p; q-next=head-next; /* 將最小值結點鏈接到此趟的第一個位置處 */ head-next=q; p-next=head-next; /* 將鏈表中最后一個結點接于表頭之后 */ head-next=p; s=head; /* 刪除表頭 */ p=head; while(p-next!=head) p=p-next; head=head-next; p-next=head; free(s); return head;第四章 調試與操作說明啟動turboc2.0,f3打開本課程設計的程序,ctrl+f9運行。說明:1、進入門診掛號管理系統,正確輸入密碼即可繼續操作,

18、初始密碼為“1234”,如三次密碼錯誤會退出系統。2、可以先運行系統的修改密碼模塊,修改密碼時,先輸入原始密碼,然后輸入新密碼,再次輸入確認新密碼,完成密碼修改操作,修改后要使用新密碼登陸。3、此時還是個空鏈表,依次選擇2、3、4、5、6、7、9,系統會提示這是一個空表,請先建立或載入后再繼續操作。4、選擇1,建立門診掛號信息,按提示要求輸入即可,注意病歷號不能相同。5、依次選擇2、3、4、5、6、7,運行系統的顯示模塊、刪除模塊、插入模塊、查找模塊、排序模塊、統計模塊。6、選擇11,運行將數據存入磁盤文件的操作,輸入路徑及文件名,保存。7、選擇13,退出系統。退出時,會提示內存中有信息,詢問是否保存,按提示操作即可。第五章 課程設計總結與體會第六章 致謝這次做課程設計,除了我個人的努力之外,有很多人都對我提供了無私的幫助。在此首先感謝孫俊杰老師.,老師嚴謹細致、一絲不茍的作風一直是我工作、學習中的榜樣;老師循循善誘的教導和不拘一格的思路給予我無盡的啟迪。其次感謝咱們班的同學們,是我們一起討論,一起查資料,一起學習,才使我們能完成這次課程設計,希望我們都能繼續努力,相信我們以后會做的更好。同時感謝鄰班幫助過的同學們,謝謝你們對我的幫助和

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論