版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、沈陽航空航天大學(xué) 課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告 課程設(shè)計(jì)名稱:軟件綜合課程設(shè)計(jì)軟件綜合課程設(shè)計(jì) 課程設(shè)計(jì)題目:病人住院管理病人住院管理 院(系):計(jì)算機(jī)學(xué)院 專 業(yè): 班 級: 學(xué) 號: 姓 名: 指導(dǎo)教師: 完成日期: 2011年09月09日 目目 錄錄 1 系統(tǒng)分析系統(tǒng)分析.1 1.1 需求分析.1 1.2 開發(fā)工具.1 1.2.1visual basic 6.0.1 1.2.2microsoft office access.2 2 概要設(shè)計(jì)概要設(shè)計(jì).4 2.1 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì).4 2.2 系統(tǒng)模塊設(shè)計(jì).6 3 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì).7 3.1 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì).7 3.2 系統(tǒng)子
2、模塊設(shè)計(jì).8 3.2.1 編寫全局變量和通用過程.8 3.2.2 用戶管理模塊.10 3.2.3 病人資料管理模塊.10 3.2.4 費(fèi)用輸入模塊.13 4 調(diào)試分析調(diào)試分析.15 5 測試及運(yùn)行結(jié)果測試及運(yùn)行結(jié)果.16 5.1 用戶登陸界面.16 5.2 用戶管理界面.17 5.3 病人資料管理界面.18 參考文獻(xiàn)參考文獻(xiàn).21 附附 錄錄.22 1 系統(tǒng)分析 1.1 需求分析需求分析 實(shí)現(xiàn)一個(gè)病人住院管理系統(tǒng),系統(tǒng)可以連接數(shù)據(jù)庫。病人入院時(shí),住在指定 科室的病房(如外科、內(nèi)科、兒科等) ,到每個(gè)病人有一個(gè)主治醫(yī)生負(fù)責(zé),可以 選擇單人間和三人間病房,如果選擇三人間病房,床位由系統(tǒng)分配。入院時(shí)
3、通過 該系統(tǒng)將病人的信息添加數(shù)據(jù)庫中。當(dāng)病人出院時(shí)計(jì)算住院期間的費(fèi)用(藥費(fèi)、 床費(fèi)、餐費(fèi)等) 。系統(tǒng)能夠按照病人、病房、主治醫(yī)生進(jìn)行查詢,所以查詢模塊 至少有三個(gè)界面分別顯示相關(guān)信息。 1.2 開發(fā)工具開發(fā)工具 1.2.1visual basic 6.0 visual basic 是一種由微軟公司開發(fā)的包含協(xié)助開發(fā)環(huán)境的事件驅(qū)動編程語 言。從任何標(biāo)準(zhǔn)來說,vb 都是世界上使用人數(shù)最多的語言不僅是盛贊 vb 的 開發(fā)者還是抱怨 vb 的開發(fā)者的數(shù)量。它源自于 basic 編程語言。vb 擁有圖形用 戶界面(gui)和快速應(yīng)用程序開發(fā)(rad)系統(tǒng),可以輕易的使用 dao、rdo、ado 連接數(shù)據(jù)
4、庫,或者輕松的創(chuàng)建 activex 控件。程序員可以輕松的 使用 vb 提供的組件快速建立一個(gè)應(yīng)用程序。 vb 使用了可以簡單建立應(yīng)用程序的 gui 系統(tǒng),但是又可以開發(fā)相當(dāng)復(fù)雜 的程序。vb 的程序是一種基于窗體的可視化組件安排的聯(lián)合,并且增加代碼 來指定組件的屬性和方法。因?yàn)槟J(rèn)的屬性和方法已經(jīng)有一部分定義在了組件 內(nèi),所以程序員不用寫多少代碼就可以完成一個(gè)簡單的程序。過去的版本里面 vb 程序的性能問題一直被放在了桌 面上,但是隨著計(jì)算機(jī)速度的飛速增加, 關(guān)于性能的爭論已經(jīng)越來越少 。 窗體控件的增加和改變可以用拖放技術(shù)實(shí)現(xiàn)。一個(gè)排列滿控件的工具箱用 來顯示可用控件(比如文本框或者按鈕
5、)。每個(gè)控件都有自己的屬性和事件。 默認(rèn)的屬性值會在控件創(chuàng)建的時(shí)候提供,但是程序員也可以進(jìn)行更改。很多的 屬性值可以在運(yùn)行時(shí)候隨著用戶的動作和修改進(jìn)行改動,這樣就形成了一個(gè)動 態(tài)的程序。舉個(gè)例子來說:窗體的大小改變事件中加入了可以改變控件位置的 代碼,在運(yùn)行時(shí)候每當(dāng)用戶更改窗口大小,控件也會隨之改變位置。在文本框 中的文字改變事件中加入相應(yīng)的代碼,程序就能夠在文字輸入的時(shí)候自動翻譯 或者阻止某些字符的輸入。 vb 的程序可以包含一個(gè)或多個(gè)窗體,或者是一個(gè)主窗體和多個(gè)子窗體,類 似于操作系統(tǒng)的樣子。有很少功能的對話框窗口(比如沒有最大化和最小化按 鈕的窗體)可以用來提供彈出功能。 vb 的組件既
6、可以擁有用戶界面,也可以 沒有。這樣一來服務(wù)器端程序就可以處理增加的模塊。 vb 使用參數(shù)計(jì)算的方法來進(jìn)行垃圾收集,這個(gè)方法中包含有大量的對象, 提供基本的面向?qū)ο笾С?。因?yàn)樵絹碓蕉嘟M建的出現(xiàn),程序員可以選用自己需 要的擴(kuò)展庫。和有些語言不一樣, vb 對大小寫不敏感,但是能自動轉(zhuǎn)換關(guān)鍵 詞到標(biāo)準(zhǔn)的大小寫狀態(tài),以及強(qiáng)制使得符號表入口的實(shí)體的變量名稱遵循書寫 規(guī)則。默認(rèn)情況下字符串的比較是對大小寫敏感的,但是可以關(guān)閉這個(gè)功能。 1.2.2microsoft office access microsoft office access(前名 microsoft access)是由微軟發(fā)布的關(guān)聯(lián) 式數(shù)
7、據(jù)庫管理系統(tǒng)。它結(jié)合了 microsoft jet database engine 和 圖形用戶界 面兩項(xiàng)特點(diǎn),是 microsoft office 的成員之一。其實(shí) access 也是微軟公司另 一個(gè)通訊程序的名字,想與 procomm 以及其他類似程序來競爭。可是事后微軟 證實(shí)這是個(gè)失敗計(jì)劃,并且將它中止。數(shù)年后他們把名字重新命名于數(shù)據(jù)庫軟件。 access 在 2000 年的時(shí)候成為了計(jì)算機(jī)等級考試中的計(jì)算機(jī)二級的一種數(shù)據(jù)庫語 言并且因?yàn)樗囊讓W(xué)易用的特點(diǎn)正逐步取代傳統(tǒng)的 vfp 成為二級中最受歡迎的數(shù) 據(jù)庫語言。 access 是微軟公司推出的基于 windows 的桌面關(guān)系數(shù)據(jù)庫管理
8、系統(tǒng) (rdbms,即 relational database management system) ,是 office 系列應(yīng)用軟 件之一。它提供了表、查詢、窗體、報(bào)表、頁、宏、模塊 7 種用來建立數(shù)據(jù)庫系 統(tǒng)的對象;提供了多種向?qū)?、生成器、模板,把?shù)據(jù)存儲、數(shù)據(jù)查詢、界面設(shè)計(jì)、 報(bào)表生成等操作規(guī)范化;為建立功能完善的數(shù)據(jù)庫管理系統(tǒng)提供了方便,也使得 普通用戶不必編寫代碼,就可以完成大部分?jǐn)?shù)據(jù)管理的任務(wù)。 access 能夠存取 access/jet、microsoft sql server、oracle(甲骨文軟件 公司),或者任何 odbc 兼容數(shù)據(jù)庫內(nèi)的資料。熟練的軟件設(shè)計(jì)師和資料分析
9、師 利用它來開發(fā)應(yīng)用軟件,而一些不熟練的程序員和非程序員的進(jìn)階用戶則能使 用它來開發(fā)簡單的應(yīng)用軟件。雖然它支援部分面向?qū)ο螅╫op)技術(shù),但是未能 成為一種完整的面向?qū)ο箝_發(fā)工具。 與一般的 rdbms 完全不同,它缺乏數(shù)據(jù)庫觸發(fā)和預(yù)存程序。自從ms access 2000 (jet 4.0),開發(fā)人員可以在查詢中設(shè)定參數(shù),這跟預(yù)存程序很 相似的,但這些 “預(yù)存程序”只能處理一個(gè)程序當(dāng)資料表內(nèi)數(shù)據(jù)發(fā)生變化 時(shí),它確實(shí)允許形式包含被引發(fā)的代碼,使用是普通的透過查詢和其他技術(shù)在 進(jìn)入營運(yùn)儲存的程序在方面 rdbms 支援這些的。 進(jìn)入可提供的編程語言,當(dāng)時(shí)在另一個(gè)內(nèi)產(chǎn)品microsoft offi
10、ce 家具, 微軟公司應(yīng)用的 visual basic。兩個(gè)數(shù)據(jù)庫進(jìn)入 信息庫 com 組成部分被提供: 這筆遺產(chǎn)數(shù)據(jù)存取物體 (dao),用進(jìn)入和新只可提供 activex 數(shù)據(jù)對象(忙亂)。 microsoft access 容易被應(yīng)用于小的工程,但是如果設(shè)計(jì)的不好對大工 程是無用的。全部數(shù)據(jù)庫質(zhì)問,形式和報(bào)告被儲存在數(shù)據(jù)庫里,并且與相關(guān)的 模型的理想?yún)f(xié)調(diào),沒有與他們做一個(gè)身體上組織的階層的可能性。 一種設(shè)計(jì)技術(shù)是把進(jìn)入應(yīng)用在數(shù)據(jù)和計(jì)劃之間進(jìn)行分發(fā)。一個(gè)數(shù)據(jù)庫應(yīng)該只 包含桌子和關(guān)系,當(dāng)另一個(gè)將有全部計(jì)劃時(shí),形式,報(bào)告和質(zhì)問和對第一個(gè)數(shù)據(jù) 庫桌子的連接。令人遺憾,當(dāng)連結(jié)時(shí),進(jìn)入允許沒有有關(guān)的
11、道路,因此那些發(fā)展 環(huán)境作為這種生產(chǎn)環(huán)境有相同的道路應(yīng)該(雖然你寫你們自己的能動態(tài)連接程序 常規(guī)在里 vba 那搜出能一定背面結(jié)束檔案以透過這個(gè)目錄樹搜尋,如果它發(fā)現(xiàn) 這條電流通路它不能)。 這種技術(shù)也允許開發(fā)者在不同的檔案中分申請,因此一些架構(gòu)是可能的。 2 概要設(shè)計(jì) 2.1 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì) 本系統(tǒng)包括的實(shí)體主要有病人、科室、病房、醫(yī)生、費(fèi)用等。下面分別介紹 各實(shí)體的 e-r 圖,通過 e-r 圖可以了解各實(shí)體的屬性。 科室實(shí)體的屬性圖如圖 2.1 所示。 科室 開始 科室名稱 編號 圖圖 2.12.1 科室實(shí)體的屬性圖科室實(shí)體的屬性圖 病房實(shí)體的屬性圖如圖 2.2 所
12、示。 病房 開始 編號病房類型床費(fèi) 圖圖 2.22.2 病房實(shí)體的屬性圖病房實(shí)體的屬性圖 醫(yī)生實(shí)體的屬性圖如圖 2.3 所示。 醫(yī)生 開始 編號醫(yī)生姓名 圖圖 2.32.3 醫(yī)生實(shí)體的屬性圖醫(yī)生實(shí)體的屬性圖 病人實(shí)體的屬性圖如圖 2.4 所示。 病人 開始 編號 姓名 身份證性別 備注 圖圖 2.22.2 病人實(shí)體的屬性圖病人實(shí)體的屬性圖 費(fèi)用實(shí)體的 e-r 圖如圖 2.5 所示。 費(fèi)用 開始 藥費(fèi) 總計(jì) 結(jié)算 床費(fèi) 餐費(fèi) 日期 基本費(fèi)用 編號 圖圖 2.52.5 費(fèi)用實(shí)體的屬性圖費(fèi)用實(shí)體的屬性圖 實(shí)體間的 e-r 圖如圖 2.6 所示。病人入院時(shí),根據(jù)病人情況選擇科室和病房, 每個(gè)科室有多個(gè)
13、病人就診,每個(gè)病房可以住多個(gè)病人。一個(gè)病人由一個(gè)醫(yī)生負(fù)責(zé), 作為該病人的主治醫(yī)生,每個(gè)醫(yī)生可能負(fù)責(zé)多個(gè)病人。病人住院期間的費(fèi)用根據(jù) 時(shí)間日期來計(jì)算。 病人 開始 科室 開始 醫(yī)生 開始 費(fèi)用 開始 病房 開始 花費(fèi) 屬于 屬于 治療 日期 1 n 1 n m nmn 圖圖 2.62.6 實(shí)體間的實(shí)體間的 e-re-r 圖圖 2.2 系統(tǒng)模塊設(shè)計(jì)系統(tǒng)模塊設(shè)計(jì) 整個(gè)系統(tǒng)可分為三個(gè)模塊進(jìn)行設(shè)計(jì),主要包括病人基本信息管理,費(fèi)用數(shù)據(jù) 錄入、查詢,病人、病房、主治醫(yī)生查詢,系統(tǒng)管理等部分,系統(tǒng)模塊圖如圖 2.7 所示。 病人住院管理系統(tǒng) 開始 數(shù)據(jù)處理模塊 開始 查詢模塊 開始 系統(tǒng)功能模塊 費(fèi) 用 輸
14、入 病 人 資 料 管 理 用 戶 管 理 數(shù) 據(jù) 備 份 數(shù) 據(jù) 恢 復(fù) 病 房 查 詢 病 人 查 詢 主 治 醫(yī) 生 查 詢 圖圖 2.72.7 系統(tǒng)模塊圖系統(tǒng)模塊圖 3 詳細(xì)設(shè)計(jì) 3.1 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì) 本系統(tǒng)共建立六張表:科室表、病房表、醫(yī)生表、病人表、費(fèi)用表、操作員 表。以下分別列出各表的字段說明。 科室表:用于保存醫(yī)院中各科室的信息。在系統(tǒng)中只使用科室編號和名稱, 將其單獨(dú)列出一張表可方便用戶修改科室。各字段參數(shù)如表 3.1 所示。 表表 3.13.1 科室表科室表 字段名稱數(shù)據(jù)類型字段大小是否主鍵說明 id自動編號是科室編號 科室文本20否科室名稱 病房表
15、:用于保存病房信息。包括病房編號、類型,以及不同類型病房床費(fèi)。 其中病房類型分為單人間和三人間,且不同房間所需床費(fèi)不同。各字段參數(shù)如表 3.2 所示。 表表 3.23.2 病房表病房表 字段名稱數(shù)據(jù)類型字段大小是否主鍵說明 id自動編號是病房編號 病房文本20否病房類型 床費(fèi)貨幣否床費(fèi) 醫(yī)生表:用于醫(yī)院所有醫(yī)生的信息。病人需要醫(yī)生開藥來計(jì)算藥費(fèi),所以將 藥費(fèi)作為醫(yī)生的一個(gè)屬性。各字段參數(shù)如表 3.3 所示。 表表 3.33.3 醫(yī)生表醫(yī)生表 字段名稱數(shù)據(jù)類型字段大小是否主鍵說明 id自動編號是醫(yī)生編號 醫(yī)生文本15否醫(yī)生姓名 藥費(fèi)貨幣否開藥藥費(fèi) 病房表:用于保存病人基本信息。包括病人編號、姓名
16、、性別、身份證號碼、 入院時(shí)間、科室、病房、主治醫(yī)生及入院時(shí)所需繳納的基本費(fèi)用。其中科室、病 房和醫(yī)生均是各實(shí)體的編號。各字段參數(shù)如表 3.4 所示。 表表 3.43.4 病人表病人表 字段名稱數(shù)據(jù)類型字段大小是否主鍵說明 id自動編號是病人編號 姓名文本10否病人姓名 身份證文本15否身份證 性別文本2否性別 入院時(shí)間日期/時(shí)間否入院時(shí)間 科室數(shù)字否科室編號 病房數(shù)字否病房編號 醫(yī)生數(shù)字否醫(yī)生編號 基本費(fèi)用貨幣否基本費(fèi)用 備注備注備注信息 費(fèi)用表:用于保存病人住院期間的費(fèi)用。由于需要按病人查詢費(fèi)用,所以包 含了病人 id。各字段參數(shù)如表 3.5 所示。 表表 3.53.5 費(fèi)用表費(fèi)用表 字段
17、名稱數(shù)據(jù)類型字段大小是否主鍵說明 id自動編號是序號 病人 id長整型否病人編號 日期日期/時(shí)間否費(fèi)用日期 基本費(fèi)用貨幣否基本費(fèi)用 床費(fèi)貨幣否床費(fèi) 藥費(fèi)貨幣否藥費(fèi) 餐費(fèi)貨幣否餐費(fèi) 總計(jì)貨幣否總計(jì) 結(jié)算貨幣否結(jié)算 操作員表:用于保存操作本系統(tǒng)人員的登錄名、密碼等信息。各字段參數(shù)如 表 3.6 所示。 表表 3.63.6 操作員表(操作員表(useruser) 字段名稱數(shù)據(jù)類型字段大小是否主鍵說明 name文本15是登錄名 pwd文本16否登錄密碼 userclass字節(jié)否用戶類型 3.2 系統(tǒng)子模塊設(shè)計(jì)系統(tǒng)子模塊設(shè)計(jì) 3.2.1 編寫全局變量和通用過程編寫全局變量和通用過程 在由應(yīng)用程序向?qū)?chuàng)建
18、的程序框架中,創(chuàng)建了一個(gè)模塊文件“module1.bas” , 在該模塊中有一個(gè)名為“sub main”的過程,用來啟動應(yīng)用程序。 在該模塊中還定義了一下全局變量和通用過程,供其他模塊使用。下面的過 程用來執(zhí)行針對數(shù)據(jù)庫的操作,如創(chuàng)建/釋放數(shù)據(jù)庫連接,運(yùn)行查詢等。 public sub connect() 連接數(shù)據(jù)庫 if isconnect = true then 如果連接標(biāo)記為真,則返回。否則會出錯(cuò) exit sub end if set cnn = new adodb.connection 關(guān)鍵 new 用于創(chuàng)建新對象 cnn cnn.connectionstring = conn 設(shè)置
19、連接字符串 connectionstring 屬性 cnn.open 打開到數(shù)據(jù)庫的連接 if cnn.state adstateopen then 判斷連接的狀態(tài) msgbox 數(shù)據(jù)庫連接失敗, vbokonly + vbcritical, 警告 如果連接不成功,則 顯示提示信息,退出程序 end end if isconnect = true 設(shè)置連接標(biāo)記,表示已經(jīng)連接到數(shù)據(jù)庫 end sub public sub disconnect() 斷開與數(shù)據(jù)庫的連接 dim rc as long if isconnect = false then exit sub 如果連接標(biāo)記為假,標(biāo)明已經(jīng)斷開
20、連接,則直接返回 cnn.close 關(guān)閉連接 set cnn = nothing isconnect = false end sub public sub sqlext(byval strsqlstmt as string) 執(zhí)行數(shù)據(jù)庫操作語句 dim cmd as new adodb.command 創(chuàng)建 command 對象 cmd connect 連接到數(shù)據(jù)庫 set cmd.activeconnection = cnn 設(shè)置 cmd 的 activeconnection 屬性,指定與其關(guān)聯(lián)的數(shù) 據(jù)庫連接 cmd.commandtext = strsqlstmt 設(shè)置要執(zhí)行的命令文本
21、cmd.execute set cmd = nothing disconnect end sub 3.2.2 用戶管理模塊用戶管理模塊 用戶管理是大多數(shù)信息管理系統(tǒng)中都需要的功能,將用戶管理的功能設(shè)置為 一個(gè)類,可提高代碼的可重用性。用戶管理類模塊名稱為“clsuser” ,基本流程 如圖 3.1。 開始 初始化數(shù)據(jù) 調(diào)用 sqlext 過程執(zhí)行 sql 語句 結(jié)束 查找指定用戶 圖圖 3.13.1 用戶管理模塊流程圖用戶管理模塊流程圖 3.2.3 病人資料管理模塊病人資料管理模塊 病人資料管理模塊是本系統(tǒng)的核心,包括病人資料的增加、修改、刪除等功 能的實(shí)現(xiàn),可以在對話框中對病人資料進(jìn)行管理并
22、連接到數(shù)據(jù)庫中。 “增加”按 鈕有兩種狀態(tài),當(dāng)該按鈕病人入院時(shí),進(jìn)入該模塊點(diǎn)擊“增加”按鈕,可以增加 一個(gè)病人,將病人的基本信息輸入,并添加到數(shù)據(jù)庫的病人表中,其流程如圖 3.2。 從科室表中獲取數(shù)據(jù) 從病房表中獲取數(shù)據(jù) sql 語句 結(jié)束 從醫(yī)生表中獲取數(shù)據(jù) 定義 sql 語句 sql 語句 刷新 ado 控件數(shù)據(jù) sql 語句 設(shè)置 datagrid1 控件顯示 ado 控件中的數(shù)據(jù) sql 語句 數(shù)據(jù)是否讀取完畢 設(shè)置 ado 控件連接字符串為全局變量 sql 語句 計(jì)數(shù)器加 1 sql 語句 是 程序停止運(yùn)行, 返回 false 否 開始 圖圖 3.23.2 病人資料管理模塊增加事件流
23、程圖病人資料管理模塊增加事件流程圖 病人入院后可能會更換病房或者出現(xiàn)其他變動,所以在該模塊還需要實(shí)現(xiàn)病 人資料的即時(shí)更新。當(dāng)在 datagrid 表格中選中一個(gè)病人記錄時(shí), “增加”按鈕的 標(biāo)題將改變?yōu)椤靶薷摹?,此時(shí)單擊該按鈕將修改選中記錄的數(shù)據(jù),具體流程如圖 3.3。 開始 禁止使用“刪除”按鈕 調(diào)用 status 過程允許用戶操作窗體各控件 sql 語句 結(jié)束 清除數(shù)據(jù) 檢查用戶輸入或修改的數(shù)據(jù) sql 語句 刷新 ado 控件數(shù)據(jù) sql 語句 調(diào)用 status 過程禁止用戶操作窗體中的控件 sql 語句 輸入數(shù)據(jù) sql 語句 數(shù)據(jù)是否輸入完畢 是 否 圖圖 3.33.3 病人資料
24、管理模塊修改事件流程圖病人資料管理模塊修改事件流程圖 為了方便查詢,只顯示住院病人資料,若病人出院,需要將該病人的資料刪 除,及時(shí)更新數(shù)據(jù)庫,進(jìn)入該模塊點(diǎn)擊“刪除”按鈕,可以將病人的基本信息刪 除,其流程如圖 3.4。 開始 結(jié)束 顯示提示信息 sql 語句 刷新數(shù)據(jù) sql 語句 病人編號大于 0 是否為添加狀態(tài) 刪除 sql 語句 sql 語句 執(zhí)行 sql 語句 sql 語句 是 是 否 否 圖圖 3.43.4 病人資料管理模塊刪除事件流程圖病人資料管理模塊刪除事件流程圖 3.2.4 費(fèi)用輸入模塊費(fèi)用輸入模塊 費(fèi)用輸入模塊主要用來錄入病人指定時(shí)間的費(fèi)用。為減少錄入工作量,減少 錄入錯(cuò)誤,
25、使用列表框顯示病人姓名,系統(tǒng)將自動填充病人的基本費(fèi)用、床費(fèi)、 藥費(fèi),用戶也可以修改這些自動填充的數(shù)據(jù)。對于最終的結(jié)算數(shù)據(jù),既可手工輸 入,也可單擊右側(cè)的“c” (計(jì)算)按鈕自動計(jì)算。其主要流程如圖 3.5。 開始 從病房表中獲取數(shù)據(jù) 從病人表中獲取數(shù)據(jù) sql 語句 結(jié)束 從醫(yī)生表中獲取數(shù)據(jù) 調(diào)用 status 過程禁止用戶操作窗體控件 sql 語句 將當(dāng)前記錄中“病人 id”保存到變量 id 中 sql 語句 在病人數(shù)組中逐個(gè)判斷 sql 語句 數(shù)據(jù)是否讀取完畢 設(shè)置 ado 控件連接字符串 sql 語句 將病人姓名添加到組合框中 sql 語句 是 否 圖圖 3.53.5 費(fèi)用輸入模塊流程圖
26、費(fèi)用輸入模塊流程圖 4 調(diào)試分析 (1) 信息不能全部顯示 問題描述:數(shù)據(jù)文件輸出到 text 控件中輸出數(shù)據(jù)不能全部顯示。 問題分析: text 控件中且數(shù)據(jù)量比較大,窗體不夠大,所以不能全部 顯示。 解決方法:比較簡單的方法就是把數(shù)據(jù)放到一個(gè)文本框(text)里,并 在其中加上水平和垂直滾動條。具體實(shí)現(xiàn)步驟為:先在窗體(form)里 加入一個(gè)文本框,采用默認(rèn)名 text1;然后,設(shè)置文本框 text1 的屬性: text 屬性設(shè)置為空,multiline 屬性設(shè)置為 true,scrollbars 屬性設(shè) 置為 3both;接著添加一段 vb 代碼即可。 (2) 運(yùn)行出錯(cuò) 問題描述:運(yùn)行點(diǎn)
27、擊病人資料時(shí)出錯(cuò),調(diào)試時(shí)在設(shè)置 ado 控件連接字 符串為全局變量 conn 一行出錯(cuò)。 問題分析:指示出錯(cuò)行并未有問題,可能原因是前面定義 sql 語句時(shí) 出錯(cuò)。經(jīng)檢查分析,select 語句中醫(yī)生表中并未出現(xiàn)“主治醫(yī)生”這 一參數(shù)。 解決方法:將 select 語句中“主治醫(yī)生”改為“醫(yī)生” 。修改后的 select 語句如下: strsql2 = select a.id,姓名,d.科室,性別,身份證,入院時(shí)間,b.病房,c.醫(yī) 生,基本費(fèi)用,備注 strsql2 = strsql2 & from 病人表 a,病房表 b,醫(yī)生表 c,科室表 d strsql2 = strsql2 & wh
28、ere a.病房=b.id and a.醫(yī)生=c.id and a.科 室=d.id 5 測試及運(yùn)行結(jié)果 5.1 用戶登陸界面用戶登陸界面 在 vb6 開發(fā)環(huán)境中,選擇菜單“運(yùn)行/啟動”命令,將顯示登陸窗體,如圖 5.1 所示。 圖圖 5.15.1 用戶登陸窗體用戶登陸窗體 在登錄窗體中單擊“確定”按鈕,即可進(jìn)入系統(tǒng)主窗體,如圖 5.2 所示。 圖圖 5.25.2 系統(tǒng)主窗體系統(tǒng)主窗體 5.2 用戶管理界面用戶管理界面 在系統(tǒng)主窗體中“系統(tǒng)/用戶管理”或點(diǎn)擊“用戶”按鈕,可以進(jìn)入用戶管 理界面,如圖 5.3 所示。 圖圖 5.35.3 用戶管理窗體用戶管理窗體 單擊“添加用戶”按鈕,管理員和操
29、作員都可以添加新用戶,如圖 5.4 所示。 圖圖 5.45.4 添加用戶窗體添加用戶窗體 單擊“修改用戶”按鈕,管理員可以修改用戶,如圖 5.5 所示。 圖圖 5.55.5 修改用戶窗體修改用戶窗體 5.3 病人資料管理界面病人資料管理界面 在系統(tǒng)主窗體中“數(shù)據(jù)/病人資料” ,可以進(jìn)入病人資料管理界面。操作員可 以對病人資料進(jìn)行添加、修改、刪除等操作,并且可以直觀顯示在界面的表格中。 如圖 5.6 所示。 圖圖 5.65.6 病人資料管理界面病人資料管理界面 輸入新的入院病人資料,單擊“添加”按鈕,添加時(shí)界面顯示如圖 5.7 所示。 圖圖 5.75.7 添加病人資料顯示界面添加病人資料顯示界面
30、 新入院病人資料已添加到數(shù)據(jù)庫中,添加后界面顯示如圖 5.8 所示。 圖圖 5.85.8 添加后病人資料顯示界面添加后病人資料顯示界面 單擊“刪除”按鈕,彈出對話框如圖 5.9 所示。 圖圖 5.95.9 彈出對話框彈出對話框 選擇“是” ,可將該用戶從數(shù)據(jù)庫中刪除,刪除后顯示界面如圖 5.10 所示。 圖圖 5.105.10 刪除后病人資料顯示界面刪除后病人資料顯示界面 參考文獻(xiàn) 1 visual basic 課程設(shè)計(jì)案例精編m.北京:清華大學(xué)出版社,2007 2 visual basic 項(xiàng)目案例開發(fā)實(shí)例自學(xué)手冊m.北京:人民郵電出版社,2008 3 visual basic 完全自學(xué)手冊
31、m.北京:機(jī)械工業(yè)出版社,2009 4 30 天學(xué)通 visual basic 項(xiàng)目案例開發(fā)m.北京:電子工業(yè)出版社,2009 5 visual basic 從入門到精通m.北京:人民郵電出版社,2010 附 錄 主要源程序清單: private sub mdiform_load() me.left = getsetting(app.title, settings, mainleft, 1000) me.top = getsetting(app.title, settings, maintop, 1000) me.width = getsetting(app.title, settings,
32、mainwidth, 6500) me.height = getsetting(app.title, settings, mainheight, 6500) loadnewdoc end sub private sub mdiform_unload(cancel as integer) if me.windowstate vbminimized then savesetting app.title, settings, mainleft, me.left savesetting app.title, settings, maintop, me.top savesetting app.title
33、, settings, mainwidth, me.width savesetting app.title, settings, mainheight, me.height end if end sub private sub mnudataemp_click() frmemp.show end sub private sub mnudatainput_click() frminput.show end sub private sub mnudataref_click() frmdataref.show end sub private sub mnuqueryfind_click() frms
34、earchname.show end sub private sub mnureportemp_click() frmreportemp.show end sub private sub mnureportpay_click() frmreportpay.show end sub private sub mnusysback_click() dim strsourefile as string, strdestfile as string, iret as integer on error resume next strsourefile = app.path & strdb 源數(shù)據(jù)庫文件 s
35、trdestfile = app.path & bakdata.bak 備份文件 if trim(strdestfile) = then exit sub if dir(strdestfile) then 文件存在 iret = msgbox(dir(strdestfile) & 文件已經(jīng)存在,是否替換?, vbyesno, 警告) if iret = vbno then exit sub end if end if dim buff() as byte, i as long 定義緩沖區(qū) i = filelen(strsourefile) redim buff(i - 1) open strs
36、ourefile for binary as #1 打開源文件 get #1, , buff 讀取數(shù)據(jù)到緩沖區(qū) close #1 關(guān)閉文件 open strdestfile for binary as #1 打開目標(biāo)文件 put #1, , buff 輸入緩沖區(qū)到目標(biāo)文件 close #1 msgbox 數(shù)據(jù)庫備份完成!, vbinformation + vbokonly, 提示 end sub private sub mnusyspwd_click() with frmuseredit .caption = 修改密碼 .strolduser = curuser.strname .txtuse
37、rname.text = curuser.strname if curuser.iuserclass = 1 then .cmbuserclass.additem 管理員 else .cmbuserclass.additem 操作員 end if .cmbuserclass.listindex = 0 .cmbuserclass.enabled = false .txtusername.enabled = false 不允許修改用戶名 .bmodify = true .show end with end sub private sub mnusysquit_click() dim yn as
38、string yn = msgbox(確定要退出系統(tǒng)嗎?, vbyesno, 退出確定) if yn = vbyes then unload me end sub private sub mnusysrest_click() dim strsourefile as string, strdestfile as string dim buff() as byte, i as long, iret as integer on error resume next strsourefile = app.path + bakdata.bak strdestfile = app.path + strdb if dir(strsourefile) = then msgbox 沒有發(fā)現(xiàn)可以恢復(fù)的數(shù)據(jù)庫!, vbokonly + vbcritical, 警告 elseif dir(strsourefile)
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026山東青島嶗山區(qū)事業(yè)單位招聘工作人員34人筆試模擬試題及答案解析
- (2025年)危急值報(bào)告制度及處理流程考核試題附答案
- 2026廣西河池市事業(yè)單位統(tǒng)一招聘662人筆試備考題庫及答案解析
- 企業(yè)內(nèi)部審計(jì)與風(fēng)險(xiǎn)控制制度
- 2026年上半年黑龍江事業(yè)單位聯(lián)考牡丹江市招聘817人筆試模擬試題及答案解析
- 2026臺州市椒江永誠置業(yè)有限公司招聘編外工作人員6人筆試模擬試題及答案解析
- 企業(yè)員工培訓(xùn)與技能提升計(jì)劃制度
- 2026年跨境營銷策劃公司海外客戶關(guān)系維護(hù)管理制度
- 培訓(xùn)班人員分配制度
- 教職工培養(yǎng)培訓(xùn)激勵制度
- 2024-2025學(xué)年天津市和平區(qū)高三上學(xué)期1月期末英語試題(解析版)
- (康德一診)重慶市2025屆高三高三第一次聯(lián)合診斷檢測 地理試卷(含答案詳解)
- 真需求-打開商業(yè)世界的萬能鑰匙
- 傷寒論398條條文
- 管理人員應(yīng)懂財(cái)務(wù)知識
- ISO9001-2015質(zhì)量管理體系版標(biāo)準(zhǔn)
- 翻建房屋四鄰協(xié)議書范本
- 輸煤棧橋彩鋼板更換施工方案
- PRP注射治療膝關(guān)節(jié)炎
- 江西省景德鎮(zhèn)市2024-2025學(xué)年七年級上學(xué)期期中地理試卷(含答案)
- 財(cái)務(wù)經(jīng)理年終總結(jié)2024
評論
0/150
提交評論