病房管理系統(tǒng)
學(xué)生:王東明(200805070417) 趙騰飛(200805070415)
白全林(2008050704) 周勇江(200805070416)
負(fù)責(zé)編碼部分:王東明,周勇江 負(fù)責(zé)可行性研究,需求分析部分:趙騰飛 負(fù)責(zé)總體,詳細(xì)設(shè)計(jì)部分:王東明,白全林 負(fù)責(zé)測(cè)試與維護(hù)部分:趙騰飛,白全林
指導(dǎo)老師:胡文藝
目錄
一.可行性研究 .......................................................................................................................................... 1.可行性研究 ........................................................................................................................................... 2.項(xiàng)目背景: ........................................................................................................................................... 3可行性研究前提: ................................................................................................................................. 4對(duì)現(xiàn)有系統(tǒng)的分析: .............................................................................................................................. 5技術(shù)可行性分析 ..................................................................................................................................... 6經(jīng)濟(jì)可行性 ............................................................................................................................................ 7操作可行性: .........................................................................................................................................
1
二.需求分析: .......................................................................................................................................... 3.系統(tǒng)環(huán)境需求: ..................................................................................................................................... 4.其他需求: ........................................................................................................................................... 三.總體設(shè)計(jì): .......................................................................................................................................... 1.系統(tǒng)結(jié)構(gòu)圖 ........................................................................................................................................... 2模塊介紹 ................................................................................................................................................ 四.詳細(xì)設(shè)計(jì): .......................................................................................................................................... 1.部分簡(jiǎn)單代碼 ........................................................................................................................................ 2.流程圖 ................................................................................................................................................... 3數(shù)據(jù)表 .................................................................................................................................................... 4 系統(tǒng)界面圖
五.測(cè)試 ..................................................................................................................................................... 1. 測(cè)試方案 .............................................................................................................................................
六.程序?qū)崿F(xiàn)
1.頭文件1 2.頭文件2 3.主體CPP文件
七.結(jié)論 八.參考資料
病房管理系統(tǒng)
一.可行性研究
1.可行性研究
1.編寫目的:為醫(yī)院的病房管理制作一個(gè)系統(tǒng)監(jiān)視病人的各種生理信息,能夠使管理護(hù)士醫(yī)生工作更加順暢和高效。 2.項(xiàng)目背景:
項(xiàng)目名稱:病房管理系統(tǒng);
2
項(xiàng)目提出者:四川省醫(yī)院
項(xiàng)目開發(fā)者:王東明,趙騰飛等人 項(xiàng)目實(shí)現(xiàn)單位:四川省醫(yī)院:
現(xiàn)在在各大醫(yī)院病房數(shù)是越來越多,但是護(hù)士醫(yī)生數(shù)量卻遠(yuǎn)遠(yuǎn)沒有能跟得上現(xiàn)在疾病擴(kuò)展速度,未來更好的高效地實(shí)現(xiàn)護(hù)士醫(yī)生的工作,決定開發(fā)一個(gè)病房監(jiān)護(hù)系統(tǒng),能夠做到在一個(gè)前臺(tái)就能很好的調(diào)度醫(yī)生護(hù)士對(duì)病人實(shí)施監(jiān)護(hù)。
與其他軟件的關(guān)系:這個(gè)系統(tǒng)能很好的在windows平臺(tái)上運(yùn)行,由電腦一端建立服務(wù)器端,然后每個(gè)病床建立一個(gè)客服端獲取病人生理信號(hào)。 3可行性研究前提:
要求:
主要功能:能夠監(jiān)視病人的生理信號(hào):包括脈搏、體溫、血壓、心電圖,還能定時(shí)記錄病人情況一形成患者日志,并且在某種生理信號(hào)超過某個(gè)限定值時(shí)能夠通知服務(wù)器端的值班護(hù)士,使病人能夠更好的接受醫(yī)治,最后當(dāng)需要時(shí)還能夠打印出來病人的病情報(bào)告。 性能要求:能夠做到每間隔1秒鐘刷新一次病人生理信息;當(dāng)變化情況很快速時(shí)發(fā)出預(yù)警信號(hào),當(dāng)超出限定值時(shí),發(fā)出警告通知醫(yī)護(hù)人員。正常情況時(shí)每隔10分鐘存儲(chǔ)一次生理信號(hào),當(dāng)超出限定值時(shí)沒30秒存儲(chǔ)一次生理信號(hào);
1.錄入信息系統(tǒng):能夠初始化病人的信息,包括病歷,身份.以及所在病房等信息. 2.監(jiān)視系統(tǒng):能夠?qū)Σ∪说纳砬闆r進(jìn)行檢測(cè)。主要包括血壓,體溫,脈搏,心電圖。 3.警告系統(tǒng):能夠?qū)σ呀?jīng)捕獲的生理信號(hào)進(jìn)行分析,做到通知值班人員。 4.結(jié)算系統(tǒng):能夠?qū)χ委煹馁M(fèi)用進(jìn)行統(tǒng)計(jì),然后存入個(gè)人信息系統(tǒng)。以備查證
4.打印系統(tǒng):能夠?qū)Σ∪说男畔⑦M(jìn)行歸檔;還能打印出新的病歷,為以后的治療提供方法。 目標(biāo):能夠具備完善的病人管理系統(tǒng);減輕大部分護(hù)士巡查病房的時(shí)間,并能調(diào)劑好工作安排做到高效,是病人管理成為人性化的呵護(hù)。 條件假定
軟件使用期:5年;
硬件條件:服務(wù)端電腦,客服端監(jiān)測(cè)器 運(yùn)行環(huán)境:windows;
數(shù)據(jù)庫(kù):Microsoft Acces; 編譯系統(tǒng):VC++2005
4對(duì)現(xiàn)有系統(tǒng)的分析:
現(xiàn)在是一個(gè)很簡(jiǎn)單的管理系統(tǒng),護(hù)士會(huì)定時(shí)巡查,病房有能呼叫護(hù)士的呼叫器,但是在使用中有很大缺陷,時(shí)常會(huì)出現(xiàn)護(hù)士到位不迅速,護(hù)士不能及時(shí)知道病人的情況,當(dāng)有時(shí)候病人的情況惡化時(shí)不能自主通知醫(yī)生,而且護(hù)士沒有發(fā)現(xiàn)時(shí)容易造成病人生理危險(xiǎn)。 5技術(shù)可行性分析
在現(xiàn)在的編譯系統(tǒng)中實(shí)現(xiàn)病房管理這樣簡(jiǎn)單的消息響應(yīng)系統(tǒng)已經(jīng)很成熟,運(yùn)用VC++2005和MicrosoftAccess數(shù)據(jù)庫(kù)已經(jīng)能夠處理病人的信息,做到實(shí)時(shí)存儲(chǔ),監(jiān)測(cè)報(bào)告的能力。
3
病人 監(jiān)視系統(tǒng) 病人信息 處理系統(tǒng) 病人信息 病人報(bào)告 系統(tǒng)流程圖
3定義:病人信息:描述:對(duì)需要住院的病人的姓名+性別+聯(lián)系電話+病房的號(hào)碼+治療費(fèi)用+主治醫(yī)生,定義:姓名=2{字符}4
性別=[男|女];年齡=1{1|2|3|4|5|6|7|8|9|0}3;
聯(lián)系電話=7{0|1|2|3|4|5|6|7|8|9}7|11{0|1|2|3|4|5|6|7|8|9}11;
病房號(hào)碼=3{0|1|2|3|4|5|6|7|8|9}3;病人編號(hào)=3{0|1|2|3|4|5|6|7|8|9}3;治療費(fèi)用=0{0|1|2|3|4|5|6|7|8|9}9;信號(hào)=血壓+溫度+心率+心電;
6經(jīng)濟(jì)可行性:
支出:監(jiān)測(cè)控件1000*500=50萬; 服務(wù)器電腦2臺(tái)6000*2=1.2萬; 打印機(jī)一臺(tái):2萬
其他一次性支出:5萬; 經(jīng)常性支出:2000*5=1萬 效益:一次性收益 0 ; (銀行利率1%不計(jì)復(fù)利)
減少護(hù)士數(shù)量15人,2000*(1.05+1.04+1.04+1.03+1.02+1.01)*10*12=148萬,由于效率大大提高收益投資比極大。不深究。
4
7操作可行性:
病人 生理信號(hào) 1 接受 癥狀 D 病人信息 費(fèi)用信息 信號(hào) 2 比較 癥狀 3 報(bào) 警 4 結(jié)算 費(fèi)用 治療費(fèi)用 報(bào)警信號(hào) 醫(yī)生 5 打印 信息 信息表
病人 信號(hào)
數(shù)據(jù)流圖
二.需求分析:
1.系統(tǒng)的目的
通過數(shù)據(jù)庫(kù)對(duì)病人信息,醫(yī)療費(fèi)用進(jìn)行記錄也對(duì)病人的生理信息進(jìn)行記錄使醫(yī)院的管理能夠簡(jiǎn)單,減少護(hù)士醫(yī)生的工作量,使能達(dá)到高效率的工作,提高醫(yī)院效益,改善服務(wù)質(zhì)量,做到更人性化的服務(wù)。
2.系統(tǒng)功能分析
通過的獲取信號(hào)系統(tǒng)獲取病人的生理信息,然后進(jìn)行系統(tǒng)正常生理信息和獲取到的信息進(jìn)行匹配判斷是否滿足發(fā)出警告的條件,如果是則發(fā)出警告呼叫醫(yī)生護(hù)士,然后連同生理信號(hào)和資料費(fèi)用一起存儲(chǔ)到病人信息數(shù)據(jù)庫(kù)里面最后當(dāng)需要時(shí)候進(jìn)行打印病人信息。 系統(tǒng)功能模塊圖:
醫(yī)生身份信息 5
身份系統(tǒng)病人身份信息 錄入醫(yī)生身份信信息獲取錄入病人身份信判定系統(tǒng)病房管理系統(tǒng) 呼叫系統(tǒng)記錄信息系統(tǒng) 打印系統(tǒng) 功能分析:
身份系統(tǒng):主要對(duì)即將入院的病人進(jìn)行初始的信息登記,主要有姓名,性別,家人聯(lián)系電話,即將安排得病房號(hào),
信息獲取系統(tǒng):主要是對(duì)病床的病人的生理信息進(jìn)行獲去區(qū),主要有心率,血壓,心電圖,溫度。
呼叫系統(tǒng):通過對(duì)獲取的生理信息和正常的生理信息進(jìn)行匹配,如果不符合這個(gè)范圍則發(fā)出報(bào)警信號(hào),呼叫值班醫(yī)生和護(hù)士。
記錄信息系統(tǒng):主要是對(duì)各種獲取的生理信息和醫(yī)生處理信息,醫(yī)藥費(fèi)等信息進(jìn)行記錄到病人的信息中;
打印系統(tǒng):對(duì)病人在住院中的生理變化信息和個(gè)人信息按要求進(jìn)行打??; 3.系統(tǒng)環(huán)境需求:
操作系統(tǒng):Windows 2000、Windows 2003或Windows XP,windows vista。 內(nèi)存:至少512MB RAM,推薦使用1GB RAM內(nèi)存。 數(shù)據(jù)庫(kù):Microsoft Access 2007
6
聯(lián)系方式性別安排病房號(hào)姓名編號(hào)姓名病人治療醫(yī)生科室病人管理管理記錄信息護(hù)士系統(tǒng)E-R圖姓名編號(hào) IPO 表示例 系統(tǒng):病房管理 作者:王東明 模塊:信號(hào)監(jiān)測(cè)模塊 日期:2010,01,15 編號(hào): 被調(diào)用:打印模塊,判定模塊 被調(diào)用:打印模塊,判定模塊
病人信息=病人姓名+病人性別+病人 輸入:病人心率,心電圖,血壓,溫 聯(lián)系電話+病人病房號(hào)+病人心率+心度 電圖+血壓+溫度
輸出:病人信息 局部數(shù)據(jù)元素:
7
4.其他需求:
兼容性需求:本軟件由VC++2005編譯而成能很好對(duì)于當(dāng)前系統(tǒng)兼容 出錯(cuò)處理需求
在系統(tǒng)出錯(cuò)的時(shí)候可以回滾到上次的操作中,盡量將損失降到最小。
接口需求
硬件接口:無特別要求
網(wǎng)絡(luò)硬件接口要求:實(shí)現(xiàn)內(nèi)部網(wǎng)絡(luò)通信。 軟件接口要求:無特殊需求
安全需求
對(duì)于操作系統(tǒng),網(wǎng)絡(luò)系統(tǒng)以及數(shù)據(jù)庫(kù)都有比較高的安全需求。
可支持需求
可測(cè)試性、可擴(kuò)展性、可適應(yīng)性、可維護(hù)性、兼容性、可配置性、可服務(wù)性、可安裝性,可本地化。
約束條件:
酒店工資制度約束,見附表
實(shí)施需求 軟件環(huán)境 名稱 版本 語(yǔ)種 操作系統(tǒng) Windows vista/xp 數(shù)據(jù)庫(kù)平臺(tái) MicrosoftAccess 硬件環(huán)境 服務(wù)器 最低配置 應(yīng)用和1CPU:P4 2.0G 數(shù)據(jù)庫(kù)Mem:512M 服務(wù)器 HD:40G
Sp1/sp3 2007 簡(jiǎn)體中文 簡(jiǎn)體中文 推薦配置 1CPU:P4 2.8G Mem:2G HD:120G 8
三.總體設(shè)計(jì):
1.系統(tǒng)結(jié)構(gòu)圖
病房管理記錄系統(tǒng)呼叫系統(tǒng)判定系統(tǒng)病人管理 打印病人信息 記錄病人治療信息 記錄病人生理信息 呼叫值班醫(yī)生呼叫值班護(hù)士發(fā)出信號(hào) 信息比較信息獲取身份系統(tǒng) 獲取心電圖獲取溫度獲取血壓獲取心率分配病房號(hào)添加聯(lián)系方式改寫性別添加姓名 2模塊介紹
在整體設(shè)計(jì)中,系統(tǒng)分為四個(gè)模塊:
病人管理模塊:包括身份系統(tǒng)和信息獲取系統(tǒng),身份系統(tǒng)包括添加姓名,改寫性別,添加聯(lián)系方式,分配病房號(hào);
信息獲取包括獲取心率信號(hào),獲取血壓信號(hào),獲取體溫信號(hào),獲取心電圖; 判定模塊:包括信息比較:對(duì)獲取到的信息和正常信息比較,要是不符合則轉(zhuǎn)向發(fā)出信號(hào)系統(tǒng),想呼叫模塊發(fā)出信號(hào);
呼叫模塊:收到信號(hào)后發(fā)出呼叫信息,呼叫值班醫(yī)生和值班護(hù)士對(duì)病人進(jìn)行治療。
9
記錄信息模塊:最后記錄病人的生理,身份信息進(jìn)行記錄,并且還能記錄治療費(fèi)用然后在情況需要的時(shí)候進(jìn)行打印出病人的信息。
四.詳細(xì)設(shè)計(jì):
1.部分簡(jiǎn)單代碼
病人管理:身份系統(tǒng): F BINGRENXINXI
輸入病人姓名,性別,聯(lián)系電話,主治醫(yī)生,病房編號(hào) 保存到對(duì)應(yīng)數(shù)據(jù)文件中; END
F BINGRENHUOQU
輸入病人心率,血壓,心電圖,體溫 THEN 保存到病人信息文件中; END
F PANDINGXITONG
輸入病人生理信息;
IF 生理信息>正常信號(hào)||生理信息<正常信號(hào) RETURN 1; Else
RETURN 0; END
F HUJIAO
IF 調(diào)用判定系統(tǒng)返回值 輸出報(bào)警信號(hào)
呼叫值班護(hù)士,值班醫(yī)生; END F JILU
輸入病人治療費(fèi)用到病人信息文件中, 輸入命令獲取病人信息; END
10
2.流程圖
開始病人信息輸入病人信息S1:T出院F病人信息監(jiān)視信息正常信息符合正常標(biāo)準(zhǔn)FT呼叫醫(yī)生護(hù)士輸出醫(yī)療信息GO TO S1輸出醫(yī)療信息完成
3.數(shù)據(jù)表設(shè)計(jì)
11
字段名 Num0 Id0 Fm tel doctor Mone Heart HP Tem hpre 描述 病房號(hào)碼 病人姓名 病人性別 聯(lián)系電話 主治醫(yī)生 治療費(fèi)用 心率 心電圖 溫度 血壓 數(shù)據(jù)類型 數(shù)據(jù)長(zhǎng)度 int Char Char Char Char Double Double Double Double 3 5 20 11 5 說明 不為空 不為空 不為空 重要 不為空 重要 不為空 不為空 不為空 不為空 醫(yī)生信息 字段名 描述 數(shù)據(jù)類型 長(zhǎng)度 說明 Id1 醫(yī)生姓名 Char 5 不為空 way 主治方向 Char 20 paitent 主治病人 char 20 重要 Num1 編號(hào) Int 5 不為空 class 科室 Char 10 不為空
護(hù)士信息 字段名 描述 數(shù)據(jù)類型 長(zhǎng)度 說明 Id 護(hù)士名字 Char 5 不為空 Num2 護(hù)士編號(hào) Int 5 不為空 說明:總共建立一個(gè)類,存放只要的信息,然后泛化后面三個(gè)表,這三個(gè)邊都是病房管理系統(tǒng)的信息所在,對(duì)病人住院和管理都是需要此表作為聯(lián)系,如果病人出現(xiàn)異常,則通病人信息中的在發(fā)出警告后能找到對(duì)應(yīng)一致人員,也能夠表現(xiàn)在醫(yī)患糾紛責(zé)任上做出一點(diǎn)依據(jù)。
4.主程序界面: 4.(1)醫(yī)生信息錄入
本部分模塊為醫(yī)院初次登陸系統(tǒng)或者有新醫(yī)務(wù)工作者進(jìn)入該醫(yī)院工作時(shí)人工錄入醫(yī)生詳細(xì)信息。包括姓名,性別,年齡,聯(lián)系電話,主要醫(yī)治方向描述等詳細(xì)
12
信息。
4.(2)病人信息錄入
本部分模塊作為病人入院時(shí)登陸該系統(tǒng)進(jìn)行患者詳細(xì)信息錄入。包括姓名,性別,年齡,聯(lián)系電話,對(duì)應(yīng)主治醫(yī)生,醫(yī)療費(fèi)用等信息。
13
4.(3)監(jiān)控界面
本部分模塊為病人生理信息實(shí)時(shí)監(jiān)控,包括體溫,血壓(收縮壓,舒張壓)脈搏等信息,系統(tǒng)實(shí)行5秒鐘刷新一次的監(jiān)控頻率,一旦兩項(xiàng)及其以上指數(shù)發(fā)生異常,即發(fā)出警報(bào)通知醫(yī)生及時(shí)到場(chǎng)進(jìn)行醫(yī)護(hù)。
4.(4)系統(tǒng)檢測(cè)到病人生理信息異常,發(fā)出警報(bào)
14
4.(5)出院患者信息管理界面
本部分模塊打印出痊愈患者出院后詳細(xì)結(jié)算清單。
五.測(cè)試
1.測(cè)試方案
考慮到各種因素和條件的,我們決定采用黑盒測(cè)試方案。即我們不考慮所編寫程序的具體結(jié)構(gòu), 而是根據(jù)軟件所需要的輸入數(shù)據(jù)的格式以及應(yīng)該完成的功能,設(shè)計(jì)一些合法的測(cè)試用例和不合法的測(cè)試用例,特別是根據(jù)邊界條件設(shè)計(jì)一些邊界測(cè)試用例。以檢查系統(tǒng)是否能正確的完成預(yù)訂功能,得到希望的輸出?;蛘呤菍?duì)不合法的輸入和操作能夠正確的識(shí)別和防御。 對(duì)于這些難以人工控制的信息,我們進(jìn)行模擬,想監(jiān)測(cè)端輸入血壓,心率,心電圖溫度的不同值,通過報(bào)警的結(jié)果來判定死否滿足需求; 信息項(xiàng) 心率 血壓 心電 溫度 特征組值 1 2 3 4 5 6 15
高 正常 正常 正常 低 正常 正常 正常 正常 正常 正常 正常 低 正常 正常 正常 正常 正常 正常 正常 正常 正常 正常 正常 正常 正常 正常 在以上測(cè)試中均正常。 正常 正常 正常 正常 低 正常 六.程序?qū)崿F(xiàn) 頭文件1:
#ifndef LINKLIST_H #define LINKLIST_H #include #include \"listnode.h\" #include class LinkList//鏈表類定義 { private: ListNode *head; //鏈表的頭指針 public: LinkList(){head=new ListNode();}//構(gòu)造函數(shù)建立帶頭結(jié)點(diǎn)的空鏈表 LinkList(LinkList&List);//復(fù)制構(gòu)造函數(shù) ~LinkList(){LinkListClear();delete head;}//析構(gòu)函數(shù)刪除單鏈表 void LinkListClear();//將單鏈表設(shè)置為空表 int LinkListLength()const;//秋鏈表的長(zhǎng)度 ListNode*ListLocateElem(int e)const;//用病人編號(hào)查找病人信息,并返回地址 ListNode *ListLocatename(string na);//根據(jù)姓名查找信息返回病人地址 //int ListLocatedrdata(ListNode *p,LinkList seqlist);//根據(jù)病人地址在醫(yī)生信息表中返回醫(yī)生地址 int ListLocatedrdata(int p,LinkList seqlist);//根據(jù)病人編號(hào)查找并輸出醫(yī)生信息 ListNode*ListGetElem(int i)const;//返回單鏈表的第I個(gè)節(jié)點(diǎn)的地址 ListNode*ListGet(int i)const; int LinkListInsert(int &data,string &name,string &sex,int &eage,int &tel,string inf,int &drdata,int &money);//將數(shù)據(jù)元素E插到單鏈表的第I個(gè)節(jié)點(diǎn)之前 int LinkListInsertdr(int &data,string &name,string &sex,int &eage,int &tel,string inf); int LinkListInsertAfter(int i,int &e);//將數(shù)據(jù)元素E插到單鏈表第I個(gè)節(jié)點(diǎn)之后 int LinkListDelete();//根據(jù)病人信息地址刪除對(duì)應(yīng)病人的信息, ListNode*LinkListRemove(int i);//將單鏈表的第I個(gè)節(jié)點(diǎn)沖鏈表中取下,將其地址返回 int ReplaceElem(int i,int&e);//用元素替代單鏈表中的第I個(gè)元素 ListNode*ListPriorElem(int i);//求單鏈表中第I個(gè)節(jié)點(diǎn)的直接前驅(qū) ListNode*ListNextElem(int i);//求單鏈表中的第I個(gè)節(jié)點(diǎn)的直接后繼 16 bool LinkListEmpty(void);//若單鏈表空則返回1,否則返回0 LinkList&operator=(LinkList &List);//重載賦值運(yùn)算符 int LinkListshuchu();//輸出元素 int LinkListoutput(ListNode *p);//輸出對(duì)應(yīng)地址的病人信息 int LinkListoutputdr(ListNode *p);//輸出病人對(duì)應(yīng)醫(yī)生的信息 int LinkListMove(int i); int LinkListMove1(int i); int Listzhiliao(ListNode *p);//治療病人信息,輸入病人地址按提示輸入藥品 價(jià)格并答打印在病人信息中 int Listjianshi(ListNode *p,int timehigh);//監(jiān)視對(duì)應(yīng)地址的病人生理信息,并輸出到文件中 }; //用元素替代單鏈表中的第I個(gè)元素 int LinkList::ReplaceElem(int i,int &e) {ListNode *p; p=ListGetElem(i); p->data=e; return 0;} //輸出對(duì)應(yīng)地址的病人信息值; int LinkList::LinkListoutput(ListNode *p) { if(!p) {cout<<\"失敗\"< int LinkList::LinkListoutputdr(ListNode *p) {if(!p) {cout<<\"失敗\"< //輸出鏈表 int LinkList::LinkListshuchu() { ListNode *p; p=head->next; while(p!=0&&p!=head) { cout< int LinkList::LinkListMove(int i) { ListNode *p1,*p2; p1=head,p2=head; ListNode *q1; q1=head->next; int l=LinkListLength(); int m=i%l; for(int g=1;g<=l;g++) {p1=p1->next;} p1->next=p2->next; for(int c=1;c<=l-m;c++) {head=head->next;}//將頭結(jié)點(diǎn)放在第I個(gè)位置的前面 p2=head; for(int g=1;g<=l;g++) {p2=p2->next;} p2=0; cout< 18 ListNode *pp; pp=ListGetElem(l); pp->next=ListGetElem(1); p1 =ListGetElem(l-i); head->next=ListGetElem(l-i+1); p1->next=head; LinkListshuchu(); return 0; } //復(fù)制構(gòu)造函數(shù)的實(shí)現(xiàn)方法: LinkList::LinkList(LinkList &List) { head=new ListNode(); ListNode*p=List.head->next,*q=head,*s; while(p) {s=new ListNode;s->data=p->data,s->name=p->name,s->sex=p->sex,s->eage=p->eage; s->tel=p->tel,s->drdata=p->drdata,s->money=p->money; q->next=s;q=s; p=p->next;} q->next=0; } //將線性鏈表置為空。 void LinkList::LinkListClear() { ListNode*p; while (head->next!=0) {p=head->next;head->next=p->next; delete p;} } //返回單鏈表第i個(gè)結(jié)點(diǎn)的值。 ListNode*LinkList::ListGetElem(int i)const { if(i<0)return 0; if(i==0)return head; ListNode*p=head->next;int j=1; while(p&&jnext;++j;} return p; } ListNode*LinkList::ListGet(int i)const { if(i<0)return 0; if(i==0)return head; ListNode*p=head->next;int j=1; while(p&&jnext;++j;} cout< 19 \"; cout< int LinkList::LinkListLength()const { int count=0; ListNode*p=head->next;++count=0; while(p&&p!=head){p=p->next;++count;} return count; } //重載賦值運(yùn)算符。 LinkList&LinkList::operator=(LinkList&List) { if(this==&List)return *this; LinkListClear(); ListNode*p=List.head->next,*q=head,*s; while(p) { s=new ListNode;s->data=p->data,s->name=p->name,s->sex=p->sex,s->eage=p->eage; s->tel=p->tel,s->drdata=p->drdata,s->money=p->money,s->info=p->info; q->next=s;q=s;p=p->next; } q->next=0;return *this; } //將病人信息插入到當(dāng)前病人表中 int LinkList::LinkListInsert(int &data,string &name,string &sex,int &eage,int &tel,string inf,int &drdata,int &money) {//cout<<\"創(chuàng)建病人信息文件\"< ListNode *s=new ListNode(data,name,sex,eage,tel,inf,drdata,money); s->next=p->next; p->next=s; cout< cout<<\"插入數(shù)據(jù)在本地硬盤完成\"< int LinkList::LinkListInsertdr(int &data,string &name,string &sex,int &eage,int &tel,string inf) {//cout<<\"創(chuàng)建醫(yī)生信息文件\"< ListNode *s=new ListNode(data,name,sex,eage,tel,inf); 20 s->next=p->next; p->next=s; cout< cout<<\"插入數(shù)據(jù)在本地硬盤完成\"< int LinkList::LinkListInsertAfter(int i,int &e) {return 0; } //刪除病人信息 int LinkList::LinkListDelete() {//根據(jù)對(duì)應(yīng)地址刪除病人信息即出院手續(xù) cout<<\"輸入準(zhǔn)備出院的病人編號(hào):\"< cout<<\"打印中信息中..........\"; Sleep(5000); cout< // if(da=='y'||da=='Y') // {LinkListoutput(ListLocateElem(num));} while(p->data!=biaohao) {p=p->next;} ListNode *s; s=p;s->next=ListLocateElem(biaohao)->next; //delete ListLocateElem(num); return 1; }//刪除對(duì)應(yīng)地址的病人信息 //按編號(hào)查找病人信息并返回地址 ListNode *LinkList::ListLocateElem(int e) const {ListNode *p;p=head->next; int i=0; if(head->next->data==e) 21 {return p;} while(i<=LinkListLength()+1&&i>=0&&p->data!=e) {++i;p=p->next;} if(i ListNode *LinkList::ListLocatename(string na) {ListNode *p;p=head->next; int i=0; if(head->next->name==na) {return p;} while(i<=LinkListLength()+1&&i>=0&&p->name!=na) {++i;p=p->next;} if(i int LinkList::ListLocatedrdata(int p,LinkList seqlist) { ListNode *q; q=seqlist.ListLocateElem(p); p=q->drdata; LinkListoutputdr(ListLocateElem(q->drdata)); //cout< cout<<\"當(dāng)前病人需要治療,請(qǐng)錄入病人治療的藥品和對(duì)應(yīng)總價(jià)價(jià)格價(jià)格和藥品之間以空格隔開\"< 22 string file=file1+file2+file3; const char *str = file.c_str(); outdata.open(str,ios::app); //outdata< sprintf_s(file2, \"%d\ p->info=p->info+inf; p->money=p->money+money; outdata<<\".......................................................................用藥信息..................................................................\"< srand(time(0)); if(timehigh==1) {cout<<\"以下為編號(hào)\"< {cout< int j=p->ListNodeblood(); int k=p->ListNodemaibo(); p->ListNodetu(); if(i==1&&(j==1||k==1)) {cout<<\"異常生理信息病人資料\"< 23 Sleep(1300); } } return 0; } #endif 頭文件2: #ifndef LISTNODE_H #define LISTNODE_H #include #include class LinkList;//鏈表類前視聲明 class ListNode//結(jié)點(diǎn)類定義 { friend class LinkList;//聲明鏈表類LinkList為友元類 private: int data; string name; string sex; int eage; int tel; int drdata; int money; ListNode *next; //結(jié)點(diǎn)指針域 public: string info; ListNode() {name=\"dasd\默認(rèn)構(gòu)造函數(shù) ListNode(int &da,string &na,string &se,int &ea,int &te,string inf,int &dr,int &mo) {data=da,name=na,sex=se,eage=ea,tel=te,drdata=dr,money=mo,next=0,info=inf; string file1=\"C:\ sprintf_s(file2, \"%d\產(chǎn)生\"123\" 24 string file=file1+file2+file3; const char *str = file.c_str(); //free (str); outdata.open(str,ios::trunc); outdata< outdata< 25 double ListNode::ListNodedu() { srand(time(0)); string file1=\"C:\ sprintf_s(file2, \"%d\ string file=file1+file2+file3; const char *str = file.c_str(); outdata.open(str,ios::app); //根據(jù)當(dāng)前時(shí)間生成隨機(jī)數(shù)生成器種子 int du=rand();//生成隨機(jī)數(shù) double body_du=(du%23)/10.0+36.0;//將隨機(jī)數(shù)限定在[36] cout< {return 0;} } double ListNode::ListNodeblood() {srand(time(0)); string file1=\"C:\ sprintf_s(file2, \"%d\ string file=file1+file2+file3; const char *str = file.c_str(); outdata.open(str,ios::app); int blood=rand();//生成隨機(jī)數(shù) double body_bloodh=(blood%23)+120;//將隨機(jī)數(shù)限定在[120,144] double body_bloodl=(blood%15)+80; cout< {return 0;} } double ListNode::ListNodemaibo() {srand(time(0)); string file1=\"C:\ sprintf_s(file2, \"%d\ string file=file1+file2+file3; const char *str = file.c_str(); outdata.open(str,ios::app); int maibo=rand();//生成隨機(jī)數(shù) 26 double body_maibo=(maibo%15)+75;//將隨機(jī)數(shù)限定在[75,85] cout< {return 0;} } void ListNode::ListNodetu() {srand(time(0)); string file1=\"C:\ sprintf_s(file2, \"%d\ string file=file1+file2+file3; const char *str = file.c_str(); outdata.open(str,ios::app); int heart=rand(); double body_heart=(heart%3); cout< 主體CPP文件: 27 #include int yishengxinxi(LinkList &seqdr); int bingrenxinxi(LinkList &seq); int bingrenchazhao(LinkList &seq); LinkList seq,seqdr; //static int data1=0; cout<<\"-------------------------------歡迎進(jìn)入病房管理系統(tǒng)-------------------------\"< cout<<\"--------------如果添加完畢請(qǐng)按'Y'鍵,否則按'N'并在后面添加醫(yī)生信息------------\"< break; } for(int shu=1;shu<=10;shu++) { {cout<<\"-----------------------歡迎進(jìn)入病人入院管理菜單-----------------------\"< case '1':for(int time=1;time<10;time++) for(int num=1;num<=seq.LinkListLength();num++) {seqdr.Listjianshi(seq.ListGetElem(num),1);} break; 28 case '2': {int data; cout<<\"輸入你想要監(jiān)視的病人的編號(hào) : \"; cin>>data; seqdr.Listjianshi(seq.ListLocateElem(data),100); break; } } cout<<\"--------------------歡迎進(jìn)入出院患者信息系統(tǒng)----------------------------\"< //醫(yī)生信息創(chuàng)建系統(tǒng) int yishengxinxi(LinkList &seqdr) { cout<<\"------------------------當(dāng)前已有醫(yī)生最大編號(hào)為: \"< cin>>data>>name>>sex>>eage>>tel>>inf; seqdr.LinkListInsertdr(data,name,sex,eage,tel,inf); return 0; } //病人信息創(chuàng)建系統(tǒng) int bingrenxinxi(LinkList &seq) { cout<<\"-----------------------當(dāng)前已有病人最大人數(shù)為 \"< string name,sex,inf; cin>>data>>name>>sex>>eage>>tel>>inf>>drdata>>money; seq.LinkListInsert(data,name,sex,eage,tel,inf,drdata,money); // data1=data1?data:data; return 0; } //病人信息查找系統(tǒng) int bingrenchazhao(LinkList &seq) 29 { cout<<\"輸入你想要查找病人的編號(hào)\"; int f;cin>>f; ListNode *p; p=seq.ListLocateElem(f); seq.LinkListoutput(p); cout< 本次課程設(shè)計(jì),經(jīng)過一段時(shí)間的艱苦努力終于使得設(shè)計(jì)完成并使之可以正常運(yùn)行。軟件設(shè)計(jì)是一個(gè)精細(xì)漫長(zhǎng)的過程。在整個(gè)過程中,都需要周密的計(jì)劃和安排,每一步驟,都需要按照軟件工程標(biāo)準(zhǔn)來完成。在設(shè)計(jì)中,我們始終堅(jiān)持理論指導(dǎo)實(shí)踐的原則,并通過實(shí)踐來加強(qiáng)理論的學(xué)習(xí),通過實(shí)習(xí)來鍛煉自己的能力,我們熟悉了軟件設(shè)計(jì)的一般過程,加強(qiáng)了對(duì)實(shí)際問題的處理能力。實(shí)踐證明,在高科技突飛猛進(jìn)的時(shí)代,光靠課堂所學(xué)的知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,必須依靠實(shí)踐去不斷的深化認(rèn)識(shí),尤其是計(jì)算機(jī)科學(xué),操作性和實(shí)踐性很強(qiáng),只有加強(qiáng)實(shí)際的動(dòng)手能力和團(tuán)隊(duì)協(xié)作能力,才能更好的掌握這一現(xiàn)代化工具。 這次課程設(shè)計(jì),無論是從技術(shù)上,還是從對(duì)環(huán)境的適應(yīng)能力上講,對(duì)我們今后步入社會(huì)都打下了一個(gè)良好的基礎(chǔ)。在整個(gè)畢業(yè)設(shè)計(jì)的過程中,我們也遇到了一些困難,主要表現(xiàn)了技術(shù)和經(jīng)驗(yàn)的欠缺,但通過努力,終于一一克服了。 八.參考資料 Borland C++實(shí)用庫(kù)函數(shù)大全 蕭 柔等編著 南京大學(xué)出版社 Visual C++ 6.0編程實(shí)例技巧 李國(guó)徽 華中理工大學(xué)出版社 30 因篇幅問題不能全部顯示,請(qǐng)點(diǎn)此查看更多更全內(nèi)容
Copyright ? 2019- 91gzw.com 版權(quán)所有 湘ICP備2023023988號(hào)-2
違法及侵權(quán)請(qǐng)聯(lián)系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市萬商天勤律師事務(wù)所王興未律師提供法律服務(wù)