




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、計算機(jī)學(xué)院2013級數(shù)據(jù)結(jié)構(gòu)實驗數(shù)據(jù)結(jié)構(gòu)上機(jī)實驗報告題目:一個病人看病模擬程序 學(xué)生姓名:周瑞楠學(xué)生學(xué)號:3013216085學(xué)院名稱:計算機(jī)學(xué)院專業(yè):計算機(jī)科學(xué)與技術(shù)時間:2014.10.28目 錄第一章,需求分析 31.1 原題描述31.2 詳細(xì)問題的解決方案31.2.1 解決方案要求3 1.2.2 各個環(huán)節(jié)功能要求4第二章,概要設(shè)計 52.1 抽象數(shù)據(jù)類型52.2 主要算法描述52.3 算法分析6第三章,詳細(xì)設(shè)計 7 3.1 程序代碼7第四章,調(diào)試分析 9第五章,測試分析 10第六章,未來展望與思考 11第一章 需求分析1.1 原題描述請按照如下要求編寫一個病人看病模擬程序編寫一個程序,
2、反映病人到醫(yī)院看病,排隊看醫(yī)生的情況。在病人排隊過程中,主要重復(fù)兩件事:(1)病人到達(dá)診室,將病歷本交給護(hù)士,拍到等待隊列中候診。(2)護(hù)士從等待隊列中取出下一位病人的病例,該病人進(jìn)入診室就診。1.2詳細(xì)問題的解決方案1.2.1問題分析要求模擬病人等待就診這一過程,程序采用菜單方式,其選項及功能說明如下:(1)排隊輸入排隊病人的病歷號,加入到病人排隊隊列中。(2)就診病人排隊隊列中最前面的病人就診,并將其從隊列中刪除。(3)查看排隊從隊首到隊尾列出所有的排隊病人的病歷號。(4)不再排隊,余下依次就診從隊首到隊尾列出所有的排隊病人的病歷號,并退出運行。(5)下班退出運行。1.2.2 解決方案要求
3、測試數(shù)據(jù)及輸出如下:1:排隊 2:就診 3:查看排隊 4:不再排隊,余下依次就診 5:下班請選擇:1>>輸入病歷號:11:排隊 2:就診 3:查看排隊 4:不再排隊,余下依次就診 5:下班請選擇:1>>輸入病歷號:21:排隊 2:就診 3:查看排隊 4:不再排隊,余下依次就診 5:下班請選擇:1>>輸入病歷號:31:排隊 2:就診 3:查看排隊 4:不再排隊,余下依次就診 5:下班請選擇:2>>病人1就診1:排隊 2:就診 3:查看排隊 4:不再排隊,余下依次就診 5:下班請選擇:3>>排隊病人:2 31:排隊 2:就診 3:查看排隊
4、 4:不再排隊,余下依次就診 5:下班請選擇:1>>輸入病歷號:41:排隊 2:就診 3:查看排隊 4:不再排隊,余下依次就診 5:下班請選擇:4>>病人按以下順序就診:2 3 41.2.3 各個環(huán)節(jié)功能要求表1-2.1 環(huán)節(jié)功能 函數(shù)功能注意條件及限制規(guī)則initQueue()建立空隊列頭指針尾指針建立后判斷是否為NULLEnQueue()在隊尾插入元素判斷節(jié)點儲存分配是否失敗DeQueue()刪除對頭元素并返回其值釋放被刪除的節(jié)點刪除隊尾元素注意改變指針位置ShowQueue()輸出隊列元素補充正文: 主函數(shù)里用switch來表明各種情況下應(yīng)當(dāng)調(diào)用的函數(shù)第二章 概要
5、設(shè)計2.1 抽象數(shù)據(jù)類型ADT deletenode 數(shù)據(jù)對象:D=ai|aiElemSet,i=1,2,m, m0 TermSet 中的每個元素包含一個整數(shù) 數(shù)據(jù)關(guān)系:R1=<ai,ai-1>| ai,ai-1D,且ai中的整數(shù)有序,i=2,3,n 約定其中a1端為隊列投,an端為隊列尾 基本操作: InitQueue(&Q); 操作結(jié)果:建立空隊列。 DestroyQueue(&Q) 初始條件:隊列Q已經(jīng)存在。 操作結(jié)果:銷毀隊列。 EnQueue(&Q,e) 初始條件:隊列Q已經(jīng)存在。 操作結(jié)果:在隊尾插入元素e。 DeQueue(&Q) 初始
6、條件:隊列Q已經(jīng)存在。 操作結(jié)果:刪除隊頭元素并返回其值。 ShowQueue()(&Q) 初始條件:隊列Q已經(jīng)存在。 操作結(jié)果:輸出隊列元素。 ADT Joseph2.2主要算法描述2.3算法分析T(n)=O(a)(a為常數(shù))程序運行次數(shù)取決于操作者的輸入第三章 詳細(xì)設(shè)計3.1 程序代碼#include <iostream>using namespace std;typedef struct Node struct Node *next; int data;typedef struct LinkQueue Node *front;/隊頭指針 Node *rear;/隊尾指
7、針 ;Node *initQueue(LinkQueue &Q)/構(gòu)造空隊列 Q.front=Q.rear=(Node*)malloc(sizeof(Node); if(!Q.front) return 0; Q.front->next=NULL; return Q.front;Node *EnQueue(LinkQueue &Q,int e) /在隊尾插入元素 Node *p=(Node *)malloc(sizeof(Node); if(!p) return 0; p->data=e; Q.rear->next=p; p->next=NULL; Q.
8、rear=p; return Q.front; int DeQueue(LinkQueue &Q)/刪除隊頭元素if(Q.front=Q.rear)return 0;Node *p=Q.front->next;Q.front->next=p->next;return p->data;if(Q.rear=p); Q.front=Q.rear;free(p);void ShowQueue1(LinkQueue &Q) /輸出排隊病人序號 Node *p; p=Q.front->next; while(p) cout<<p->data&
9、lt;<" " p=p->next; cout<<endl; int main() int n; LinkQueue s; Node *q=initQueue(s); cout<<"1:排隊 2:就診 3:查看排隊 4:不再排隊,余下依次就診 5:下班請選擇:" while(cin>>n) int a; switch(n) case 1:cout<<"輸入病歷號:" ; cin>>a; q=EnQueue(s,a); break; case 2:int b=DeQ
10、ueue(s); cout<<"病人"<<b<<"就診"<<endl; break; case 3:cout<<"排隊病人:" ShowQueue1(s); break; case 4:cout<<"病人按一下順序就診:" ShowQueue1(s); return 0; case 5:return 0; cout<<"1:排隊 2:就診 3:查看排隊 4:不再排隊,余下依次就診 5:下班請選擇:" return 0;第四章 調(diào)試分析Bug 名稱輸出與要求不一致Bug描述相同元素查找不完整Bug原因漏掉選擇項Bug解決方案在while循環(huán)最后加上選擇項Bug總結(jié)輸出要與要求一致第五章 測試分析測試編號1 測試對象EnQueue()測試輸入?yún)?shù)1 2
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 一建培訓(xùn)合同范本
- 年度供貨合同范本
- 供銷總社采購合同范例
- 勞動工人合同范本
- 公司合作簽合同范本
- 中央新風(fēng)合同范本
- 加盟飯店合同范本
- 中介房租合同范本
- app項目轉(zhuǎn)讓合同范本
- 交通肇事代理協(xié)議合同范本
- 社會階層與教育選擇行為分析-深度研究
- 社會工作行政(第三版)課件匯 時立榮 第6-11章 項目管理- 社會工作行政的挑戰(zhàn)、變革與數(shù)字化發(fā)展
- 學(xué)校小賣部承包合同范文
- 2025年湘潭醫(yī)衛(wèi)職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試近5年??及鎱⒖碱}庫含答案解析
- 2025年湖南鐵道職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- DB 63- T993-2011 三江源生態(tài)監(jiān)測技術(shù)規(guī)范
- 北京市東城區(qū)2025年公開招考539名社區(qū)工作者高頻重點提升(共500題)附帶答案詳解
- 2025福建福州地鐵集團(tuán)限公司運營分公司校園招聘高頻重點提升(共500題)附帶答案詳解
- 2025至2030年中國電子護(hù)眼臺燈數(shù)據(jù)監(jiān)測研究報告
- 兒童睡眠障礙治療
- 2025年浙江省溫州樂清市融媒體中心招聘4人歷年高頻重點提升(共500題)附帶答案詳解
評論
0/150
提交評論