藥品管理系統(tǒng)畢業(yè)設計_第1頁
已閱讀1頁,還剩63頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目錄</b></p><p><b>  第一章 概述5</b></p><p>  1.1 系統(tǒng)開發(fā)背景和意義5</p><p>  1.2 開發(fā)環(huán)境5</p><p>  第二章 需求分析7</p><p>  2.1 任務

2、概述7</p><p>  2.2 功能需求7</p><p>  2.3 性能需求7</p><p>  2.4 數據描述(數據流圖+數據字典)8</p><p>  第三章 系統(tǒng)總體設計14</p><p>  3.1 業(yè)務流程14</p><p>  3.2 系統(tǒng)功

3、能模塊圖14</p><p>  3.3 系統(tǒng)流程圖16</p><p>  第四章 詳細設計18</p><p>  4.1 程序流程圖18</p><p>  4.2 程序輸入輸出描述23</p><p>  4.2.1 用戶管理模塊23</p><p>  4.2.2

4、 職員管理模塊23</p><p>  4.2.3 銷售管理模塊23</p><p>  4.2.4 進貨管理模塊23</p><p>  4.2.5 貨存轉移模塊23</p><p>  4.2.6 財務信息模塊23</p><p>  4.3 數據庫的設計24</p><

5、p>  4.3.1 數據庫的概念結構設計和ER圖24</p><p>  4.3.2 數據庫的邏輯設計26</p><p>  4.3.3 數據庫的物理設計27</p><p>  第五章 編碼實現(xiàn)28</p><p>  5.1 用戶登陸模塊31</p><p>  5.2 用戶管理模塊

6、32</p><p>  5.3 銷售管理模塊37</p><p>  5.4 進貨管理模塊39</p><p>  5.5 職員管理模塊43</p><p>  5.6 壞貨轉移模塊45</p><p>  第六章 測試分析報告47</p><p>  6.1 什么是軟件

7、測試47</p><p>  6.2 軟件測試的目的47</p><p>  6.3 測試計劃和要點47</p><p>  6.3.1 藥品以及藥品管理模塊測試要點47</p><p>  6.3.2 銷售管理測試要點47</p><p>  6.3.3 進貨管理測試要點47</p>

8、<p>  6.3.4 職工信息測試要點46</p><p>  6.4 部分測試圖47</p><p>  6.5 測試結論49</p><p><b>  總結50</b></p><p><b>  參考文獻51</b></p><p>  

9、附錄:部分程序代碼52</p><p><b>  摘要</b></p><p>  大家只要看了新聞,就可以了解到21世紀是信息的世紀,信息化正以極快的速度取代傳統(tǒng)的效率低下的人工作業(yè)。隨著小型計算機,微型計算機的成本的不斷下降,性能的不斷提升,使得計算機作為當今最重要的信息產品,成為人民大眾必不可缺的工具。計算機技術已經廣泛應用于日常辦公,企業(yè)管理,文字處理、電

10、子報表以及進行簡單的人事管理、財務管理等,大大提高了我們的工作效率,節(jié)省許多資源,使管理更加規(guī)范化,系統(tǒng)化,科學化。</p><p>  目前隨著計算機技術的發(fā)展和普及,各行各業(yè)的管理機構開始使用計算機處理大量信息。在我國藥品品種繁多,規(guī)模甚大,以往的手工記載、查詢操作容易出錯且工作效率低,已經不能適應時代發(fā)展的要求,從管理的角度來看,對管理者會造成諸多的不便,還有可能疏忽一些細節(jié),讓不法商家逃脫罪責。所以,市場

11、迫切需要一款簡單實用的藥品管理系統(tǒng)。 </p><p>  經過前期的調研,在反復的修改和綜合考量后,筆者覺定使用JAVA SWING技術,ECLIPSE J2SE 開發(fā)平臺,MYSQL5.0數據庫開發(fā)藥品管理系統(tǒng)。藥品管理系統(tǒng)的設計理念是,讓企業(yè)能夠擁有更高效的管理工具,使企業(yè)在21世紀異常激烈的競爭中脫穎而出。國外的管理系統(tǒng)有許多優(yōu)秀的經驗,但是并不完全符合我國的國情,我國的最廣大藥品銷售的企業(yè)是分

12、布在全國各地的中小型銷售企業(yè)。所以,此次開發(fā)的藥品管理系統(tǒng)功能乃是汲取了外國優(yōu)秀管理工具的優(yōu)秀功能,同時又創(chuàng)新了更符合我國用戶需求的功能的一個綜合信息管理系統(tǒng)。藥品管理系統(tǒng)分為五大模塊,分別為系統(tǒng)用戶模塊,職工信息管理模塊,進貨管理模塊,銷售管理模塊,庫存轉移管理模塊。該五大功能模塊設計合理,功能全面,同時界面友好,非常符合我國各大小型藥品銷售企業(yè)的管理需求。但由于時間倉促以及筆者找工作實習的原因,系統(tǒng)還不是很完善,和市場上一些成熟的產

13、品比較仍然有不足之處。今后筆者將利用工作休息時間,學習新的技術和設計理念,對藥品管理系統(tǒng)進行深入的二次迭代開發(fā),目標是在今后三個月使代碼更加規(guī)范,界面更加美觀,程序的可拓展性進一步增強,更加與市場接軌,然后發(fā)布到C</p><p>  關鍵詞:JAVA SWING、MYSQL5.0、JDBC、藥品管理管理系統(tǒng)、藥品管理</p><p><b>  Abstract</b&g

14、t;</p><p>  If you see the news, they can understand the 21st century is the century of information, Information technology is with great speed instead of traditional inefficient artificially assignments. Wi

15、th small computer, microcomputer cost of declining, performance, makes the computer as the most important information product, become indispensable for the masses of tools. Computer technology has been widely used in dai

16、ly office, enterprise management, word processing, spreadsheets and simple personnel </p><p>  Now with the development of computer technology and popularization of the management institution, tencent starte

17、d using computer processing of information. In our country, the great variety of scale, past records, query operation manual and low working efficiency error-prone, already can not adapt to the development of The Times,

18、from management point of view, the manager will cause many inconvenience, there may be some details, let the illegal businessmen to escape. Therefore, a simple and prac</p><p>  Through the research on the m

19、odification, and comprehensive considerations repeatedly, the author determined after use JAVA SWING technology, MYSQL5.0 ECLIPSE J2SE JAVA development platform, the drug administration system database development. Drug

20、management system is designed, make enterprise can have more efficient management tools, enterprise in the 21st century the fierce competition. Foreign management system has many excellent experience, but not completely

21、accord with the national condit</p><p>  Key words:Java Swing、Mysql5.5、JDBC、MedMgrSystem、Medicine sales&mgr</p><p><b>  第一章 概述</b></p><p>  如何利用現(xiàn)代信息技術使企業(yè)擁有快速、高效的市場反映

22、能力和高度的效率,已是醫(yī)藥經營企業(yè),特別是醫(yī)藥連鎖經營企業(yè)特別關心的問題。盡快建立一個功能齊備的藥品進、出庫管理系統(tǒng),完善現(xiàn)代企業(yè)的信息化管理機制,已成為醫(yī)藥企業(yè)生存發(fā)展的當務之急。通過開發(fā)這個藥品管理系統(tǒng),使藥品進銷存管理工作系統(tǒng)化,規(guī)范化,自動化,從而達到提高管理效率的目的。本系統(tǒng)開發(fā)設計思想是實現(xiàn)藥品管理的數字化。</p><p>  盡量采用現(xiàn)有軟硬件環(huán)境,及先進的管理系統(tǒng)開發(fā)方案,提高系統(tǒng)開發(fā)水平和應用

23、效果的目的。系統(tǒng)應符合企業(yè)管理的規(guī)定,滿足日常管理的需要,并達到操作過程中的直觀、方便、實用、安全等要求,系統(tǒng)采用模塊化程序設計方法,這樣既便于系統(tǒng)功能的各種組合,又便于未參與開發(fā)的技術維護人員補充,維護。系統(tǒng)應具備數據庫維護功能,及時根據用戶需求進行數據的添加,刪除,修改等操作。</p><p>  1.1 系統(tǒng)開發(fā)背景和意義</p><p>  此次畢業(yè)設計的選題是由我校計算機學院統(tǒng)

24、一選題。本次的畢業(yè)設計是一個可以充分地鍛煉自己的動手實踐能力以及考核四年大學所學知識的積累的機會。針對我的實際情況,結合四年來對計算機軟件的熟練程度以及對數據庫的了解,經過與指導老師以及小組成員的協(xié)商,我選擇了藥品管理系統(tǒng)軟件設計與開發(fā)這個課題。這是一個屬于實際的課題,如果順利,我們所設計的藥品管理系統(tǒng)將實際應用到中國最廣大的售藥系統(tǒng)中去,對于初涉社會的我們來說,無疑是一個非常好地鍛煉機會。考慮到該系統(tǒng)屬于一個規(guī)模較大、較為復雜的數據庫

25、系統(tǒng),對計算機的性能要求較高,決定使用MyEclipse7.0開發(fā)此系統(tǒng)。</p><p>  此次畢業(yè)設計選題范圍是相當廣泛且實用的,含蓋了目前大部分計算機軟件類開發(fā)的課題,給我們很大的自由發(fā)展的空間。可以每個學生挑選出最合適的課題,更適合同學們的興趣和價值取向。選擇此課題對我來說有著不同的意義,應該來說此課題更接近于實際開發(fā)的全過程。同時對編程、數據庫調用、結構化查詢語言STRUCTURED QUERY LA

26、NGUAGE等方面是一個比較綜合的考驗。讓我在此過程中得到很好的鍛煉。</p><p>  隨著醫(yī)療制度改革的進行,藥品招標采購的逐年規(guī)范和擴大,藥品管理已經成為藥劑科乃至整個醫(yī)院管理的重要內容。傳統(tǒng)的管理模式已經跟不上顧客對快節(jié)奏生活的要求了!隨著計算機的普及和計算機軟件的不斷發(fā)展,越來越多的醫(yī)療機構開始注視計算機這個輔助工具為自己帶來的效益了。醫(yī)院的售藥機構需要通過計算機提高自已工作效率、對藥品實現(xiàn)進銷存管理

27、和職工管理,提高經濟效益</p><p>  本次畢業(yè)設計我們秉承良好的治學之風,除了嚴格按照畢業(yè)設計進度表來安排我的設計情況,同時加強我與指導李老師聯(lián)系和交流。同時這是一個面向實際應用的課題,和基礎調研更是尤為顯得重要,為最終能夠成為一個成功的案例而努力。</p><p><b>  1.2 開發(fā)環(huán)境</b></p><p>  開發(fā)環(huán)境的

28、選擇會影響到數據庫的設計,所以在這里給出圖書管理系統(tǒng)開發(fā)與運行環(huán)境的選擇如下:</p><p>  開發(fā)環(huán)境:Window 7 旗艦版</p><p>  開發(fā)工具:MyEclipse7.0</p><p>  數據庫版本: MySql 5.0.87</p><p>  數據庫引擎: MyISAM</p><p>  

29、第二章 需求分析</p><p><b>  2.1 任務概述</b></p><p>  藥品管理系統(tǒng)是為了加強藥品管理,以便更好地對藥品進行監(jiān)督和管理,對售藥機構人員的工作,起到了高效性、準確性管理而開發(fā)。本系統(tǒng)主要包含系統(tǒng)用戶管理模塊、藥品管理模塊、銷售管理模塊、進貨管理模塊、存貨轉移管理模塊。藥品管理系統(tǒng)是以合理、全面、準確的藥品編碼體系為基礎,提供了對

30、藥品數量、金額、有效期的全面管理,統(tǒng)一的藥價管理機制規(guī)范了藥品的價格。系統(tǒng)能隨時提供藥庫的庫存、藥品流向和消耗,還能根據現(xiàn)有庫存,藥品有效期提供采購計劃或應暫停采購的藥品清單,以提高資金的利用率,避免不必要的損失,方便快捷的途徑對藥基本信息進行定期的更新和刪除等管理。 </p><p><b>  2.2 功能需求</b></p><p><b>  一

31、功能劃分</b></p><p>  藥品管理系統(tǒng)分為系統(tǒng)用戶管理、藥品銷售管理、藥品庫存管理、進貨管理、職工管理、查詢與報表分析。</p><p><b>  二功能描述</b></p><p> ?。?)系統(tǒng)用戶管理:允許添加刪除用戶(只有管理員才可以修改),任意權限的用戶允許更改自己的密碼,添加或刪除職工,修改職工,對藥品進

32、行銷售和庫存的控制的資料。</p><p> ?。?) 藥品進貨管理:當企業(yè)需要增加新的銷售藥品時,利用此模塊可以添加新的藥品信息,刪除舊的藥品信息,修改已存在的藥品信息,提供所有與藥品相關的各類信息,初始化庫存,初始化供應商相關信息。</p><p> ?。?)藥品銷售管理:藥品統(tǒng)一的價格銷售,對已查詢銷售單,可以對藥品的價格進行控制。</p><p> ?。?)

33、庫存轉移管理:實際生活中容易發(fā)生藥品過期和損毀,此時利用此模塊對過期的藥品和損毀的藥品進行清理。</p><p>  (6)職工管理:  對藥品企業(yè)進行職工的管理,對職工進行增加,修改,刪除,查詢等操作。</p><p> ?。?)查詢與報表分析:此功能并未單獨作為一個模塊,而是分布在各個模塊中,各個模塊產生業(yè)務時,可以在各模塊的相應功能按鈕上選擇查詢。</p>&

34、lt;p><b>  2.3 性能需求</b></p><p>  為了保證系統(tǒng)能夠長期、安全、穩(wěn)定、可靠、高效的運行,藥品管理系統(tǒng)應該滿足以下的性能需求:</p><p>  1、系統(tǒng)處理的準確性和及時性</p><p>  系統(tǒng)處理的準確性和及時性是系統(tǒng)的必要性能。在系統(tǒng)設計和開發(fā)過程中,要充分考慮系統(tǒng)當前和將來可能承受的工作量,使

35、系統(tǒng)的處理能力和響應時間能夠滿足學校對信息處理的需求。</p><p>  2、系統(tǒng)的開放性和系統(tǒng)的可擴充性</p><p>  藥品管理系統(tǒng)在開發(fā)過程中,應該充分考慮以后的可擴充性。例如用戶查詢的需求也會不斷的更新和完善。所有這些,都要求系統(tǒng)提供足夠的手段進行功能的調整和擴充。而要實現(xiàn)這一點,應通過系統(tǒng)的開放性來完成,既系統(tǒng)應是一個開放系統(tǒng),只要符合一定的規(guī)范,可以簡單的加入和減少系統(tǒng)的

36、模塊,配置系統(tǒng)的硬件。通過軟件的修補、替換完成系統(tǒng)的升級和更新?lián)Q代。</p><p>  3、系統(tǒng)的易用性和易維護性</p><p>  圖書管理系統(tǒng)是直接面對使用人員的,而使用人員往往對計算機并不時非常熟悉。這就要求系統(tǒng)能夠提供良好的用戶接口,易用的人機交互界面。要實現(xiàn)這一點,就要求系統(tǒng)應該盡量使用用戶熟悉的術語和中文信息的界面;針對用戶可能出現(xiàn)的使用問題,要提供足夠的在線幫助,縮短用戶

37、對系統(tǒng)熟悉的過程。</p><p><b>  4、系統(tǒng)的標準性</b></p><p>  系統(tǒng)在設計開發(fā)使用過程中都要涉及到很多計算機硬件、軟件。所有這些都要符合主流國際、國家和行業(yè)標準。</p><p><b>  5、系統(tǒng)的先進性</b></p><p>  目前計算系統(tǒng)的技術發(fā)展相當快,做

38、為藥品管理系統(tǒng)工程,在系統(tǒng)的生命周期盡量做到系統(tǒng)的先進,充分完成企業(yè)信息處理的要求而不至于落后。這一方面通過系統(tǒng)的開放性和可擴充性,不斷改善系統(tǒng)的功能完成。另一方面,在系統(tǒng)設計和開發(fā)的過程中,應在考慮成本的基礎上盡量采用當前主流并先進且有良好發(fā)展前途的產品。</p><p><b>  6、系統(tǒng)的響應速度</b></p><p>  藥品管理系統(tǒng)系統(tǒng)在日常處理中的響應

39、速度為秒級,達到實時要求,以及時反饋信息。在進行統(tǒng)計分析時,根據所需數據量的不同而從秒級到分鐘級,原則是保證操作人員不會因為速度問題而影響工作效率。</p><p>  2.4 數據描述(數據流圖+數據字典)</p><p>  經過調研,我們發(fā)現(xiàn),一個藥店最基本的工作流程是進貨和銷售。消費者選擇藥店進行購物,藥店通過我們的藥店管理系統(tǒng)進行藥品的銷售及銷售后的庫存整理。流程簡介:<

40、/p><p><b>  2.4.1 要求</b></p><p>  A.為每種藥品設置編號,輸入藥品的信息,以便于管理人員對藥品進行管理,也便于核對修改</p><p>  B.為職工設置庫,便于操作員對職工進行管理</p><p>  C.為供貨商設置庫,便于操作員及時與供貨商聯(lián)系貨源</p><p

41、><b>  D.設置系統(tǒng)權限</b></p><p>  E.藥品價格分為進貨價、零售價和批發(fā)價</p><p><b>  2.4.2 目標</b></p><p>  A.使藥品銷售的信息能及時得到統(tǒng)計、查詢</p><p>  B.方便操作員的操作,達到簡單、易用的效果</p&g

42、t;<p>  C.提高操作員的工作效率</p><p>  D.提高操作的正確率</p><p>  E.提高系統(tǒng)的可靠性及安全性</p><p>  圖2.1 藥品管理系統(tǒng)基本流程</p><p>  以上便是我們這個藥品管理系統(tǒng)的總體數據流程圖,通過上述的這幅圖片,我們可以清楚地了解到該系統(tǒng)的大致情況,有兩個數據源/終點,

43、分別是客戶、用戶。而該系統(tǒng)進一步地功能顯示在下圖中可以得到解釋。</p><p>  圖2.2 管理人員的數據流圖</p><p>  銷售人員通過輸入藥品編號,查出系統(tǒng)中存在的藥品,通過醫(yī)生看病以及配藥,考慮所售藥品的價格,將病人所要購買的藥品列入藥品清單中,最后的銷售入庫存系統(tǒng)將此次的交易數據保存到數據庫中,最終完成交易,將藥品交給病人手中。</p><p>

44、  經過對數據流程分析,提示出現(xiàn)行系統(tǒng)具有4個主要模塊:藥品信息系統(tǒng)、藥品庫存管理系統(tǒng)、供應商管理系統(tǒng)、藥品銷售系統(tǒng)。通過它們我們的藥品管理系統(tǒng)才成為了一個能夠成功的軟件。</p><p>  首先是藥品信息系統(tǒng):在這個模塊中由用戶或管理員輸入所有藥品的基本信息即藥品的初始化。</p><p>  第二個是藥品庫存管理系統(tǒng):在這里這個系統(tǒng)有兩個功能,一是查出現(xiàn)有藥庫中的所有過期藥品,更新現(xiàn)

45、有的數據庫;二是實現(xiàn)藥品入庫,避免藥品空缺造成的銷售問題。</p><p>  第三個是供應商管理系統(tǒng):供應商是藥品進貨時,從何處購得的一種記錄方法,通過供應商可以方便的再次進貨。</p><p>  最后一個是藥品銷售系統(tǒng):在這個模塊中,管理人員可以很方便地對銷售情況進行查看,顯示當天的銷售金額并備份所有的數據庫表。</p><p>  藥品管理系統(tǒng)與3個外部實體

46、有關:顧客、藥房銷售人員和系統(tǒng)管理員。其中系統(tǒng)管理人員擁有所有信息資料添加、刪除和修改的權限,而藥房銷售人員只具有普通權限不能對信息資料做任何的刪除操作。以上只是整個系統(tǒng)的總體流程,大概顯示了一次一個用戶完整交易的全部過程。在這里我們還要對這個數據流程進行進一步詳細的分解。</p><p>  圖2.3 消費者的數據流圖</p><p>  消費者通過選購,選購好合適的藥品,到管理者處登

47、記結賬,發(fā)生銷售管理。管理者通過藥品編號,錄入系統(tǒng)需要銷售的數量,系統(tǒng)生成倉庫中是否有足夠的藥品。發(fā)生銷售之后產生銷售單和銷售金額,消費者付款拿貨。銷售管理完成。</p><p>  當消費者發(fā)現(xiàn)購買的藥品不符合要求,管理者在認真核實之后,予以退款,發(fā)生退貨。此時管理者要在系統(tǒng)的壞貨轉移中,將不合格藥品轉移到不合格倉庫中。</p><p>  圖2.4 系統(tǒng)數據流圖</p>

48、<p>  圖2.5 詳細數據流圖</p><p>  2.4.3 數據字典</p><p><b>  數據流項目:</b></p><p>  1.名字:用戶信息(admin)</p><p><b>  別名:無</b></p><p><b>

49、;  流量:每天上十次</b></p><p>  來源:用戶基本信息表</p><p><b>  去向:核對用戶信息</b></p><p>  定義:用戶信息=用戶名+用戶密碼+權限</p><p><b>  2.名字:藥品信息</b></p><p>&

50、lt;b>  別名:無</b></p><p><b>  流量:每天上十次</b></p><p><b>  來源:藥品表</b></p><p>  去向:核對藥品庫存初始化、核對出庫信息、核對入庫信息</p><p>  定義:藥品信息=藥品編號 + 藥品名稱 + 藥品建成

51、 + 藥品規(guī)格 + 藥品產地 + 批號 +進價 + 批發(fā)價 + 零售價 + 供應商 + 類別 + 有效期 + 備注.</p><p><b>  3.名字:庫存信息</b></p><p><b>  別名:無</b></p><p><b>  流量:每天上十次</b></p><

52、;p><b>  來源:庫存表</b></p><p>  去向:核對藥品庫存查詢、核對進貨單、核對銷售單</p><p>  定義:庫存信息=ID + 藥品編號 + 藥品名稱+供應商編號 + 單價 + 數量 + 入庫日期 + 倉庫類別.</p><p>  4.名字:供應商信息</p><p><b>

53、  別名:無</b></p><p><b>  流量:每天上十次</b></p><p><b>  來源:供應商表</b></p><p>  去向:反饋給用戶,核對進貨單</p><p>  定義:供應商信息=ID+供貨商編號+供貨商名+地區(qū)+備注</p><p

54、>  5.名字:銷售單單信息</p><p><b>  別名:無</b></p><p><b>  流量:每天上十次</b></p><p><b>  來源:銷售單單表</b></p><p><b>  去向:反饋給用戶</b></p&

55、gt;<p>  定義:銷售單信息=ID+藥品編號 + 藥品名稱 + 數量 + 銷售日期 + 銷售數量 + 銷售收入</p><p>  2.4.4 存儲條目:</p><p>  1.文件名:用戶基本信息表</p><p><b>  別名:無</b></p><p><b>  存儲方式:隨機

56、存儲</b></p><p>  存儲頻率:每天上十次</p><p>  定義:用戶基本信息表=用戶名+用戶密碼 + 權限</p><p><b>  2.文件名:藥品表</b></p><p><b>  別名:無</b></p><p><b> 

57、 存儲方式:隨機存儲</b></p><p>  存儲頻率:每天上十次</p><p>  定義:藥品表=藥品編號 + 藥品名稱 + 藥品建成 + 藥品規(guī)格 + 藥品產地 + 批號 +進價 + 批發(fā)價 + 零售價 + 供應商 + 類別 + 有效期 + 備注.</p><p><b>  3.數據項條目:</b></p>

58、<p><b>  項名:藥品類型</b></p><p><b>  別名:無</b></p><p>  描述:用戶輸入試題的類型</p><p>  定義:藥品類型=所有藥品規(guī)定類型</p><p><b>  位置:藥品表</b></p>&l

59、t;p><b>  4.處理條目:</b></p><p>  1.處理名:藥品添加</p><p>  處理邏輯:用戶添加藥品信息</p><p>  執(zhí)行頻率:每天上十次</p><p>  2.處理名:庫存初始化</p><p>  處理邏輯:用戶初始化藥品庫存表</p>

60、<p>  執(zhí)行頻率:進貨上十次</p><p><b>  3.處理名:入庫</b></p><p>  處理邏輯:用戶添加進貨單</p><p>  執(zhí)行頻率:每天上十次</p><p><b>  4.處理名:銷售</b></p><p>  處理邏輯:用戶

61、添加銷售單</p><p>  執(zhí)行頻率:每天上十次</p><p>  第三章 系統(tǒng)總體設計</p><p><b>  3.1 業(yè)務流程</b></p><p>  根據需求分析的得到的現(xiàn)行業(yè)務處理流程,在用戶反復研究后,首先確定目標系統(tǒng)的業(yè)務流程,其處理流程如圖3.1。</p><p>

62、;  登陸 合法用戶</p><p><b>  登記后的</b></p><p><b>  藥品</b></p><p><b>  退出登陸</b></p><p>  圖3.1 藥品管理系統(tǒng)的業(yè)務流程</p>

63、<p>  針對業(yè)務流程,現(xiàn)具體描述其功能如下:</p><p>  1.用戶登錄:系統(tǒng)對用戶合法性進行檢查。</p><p>  2.藥品入庫:對新購進的藥品分類進行編號,并把藥品基本信息錄入計算機。</p><p>  3.藥品銷售:對已入庫的藥品,銷售人員可以進行銷售。</p><p>  4.藥品進貨:對已入庫的藥品,管理

64、人員可以進行貨存控制。</p><p>  5.存貨轉移:對于已經過期或者損壞的藥品,可以進行處理。 </p><p>  6.信息查詢:對藥品的各種變動情況的查詢。</p><p>  7.職員管理:對藥店的職工進行管理。</p><p>  3.2 系統(tǒng)功能模塊圖</p><p>  藥品管理系統(tǒng)模塊是用JAVA

65、 SWING進行設計,MYSQL作為后臺數據庫管理系統(tǒng)。</p><p>  系統(tǒng)管理模塊分為用戶登錄、進貨管理、銷售管理、職工管理和壞貨轉移;用戶管理模塊主要是新增用戶,修改用戶,查詢用戶,刪除用戶;進貨管理模塊主要有供應商創(chuàng)始,進貨,進貨單查詢,藥品創(chuàng)始;銷售管理模塊主要有銷售,修改價目表,銷售單查詢;職工管理有添加職工,處理職工。</p><p>  系統(tǒng)體系結構框圖如下圖:<

66、/p><p>  圖3.2 藥品管理系統(tǒng)功能模塊圖</p><p>  3.3 系統(tǒng)流程圖</p><p>  依據軟件工程的基本原理,綜合以上分析給出系統(tǒng)流程圖如圖3.4所示。</p><p>  圖3.2 系統(tǒng)的處理流程圖 </p><p>  說明: 用戶通過登陸界面登陸系統(tǒng)時,第一次使用

67、系統(tǒng)時需要進行藥品的創(chuàng)始,即將各個藥品的詳細信息依次錄入系統(tǒng),第一次使用系統(tǒng)時同樣要初始化庫存,將現(xiàn)有的藥品情況錄入系統(tǒng),接下來通過進貨模塊進行進貨,進貨時要為每一個供應商進行供應商創(chuàng)始,當發(fā)生銷售時銷售藥品,并對庫存進行相應的出來,退出時推出系統(tǒng)。</p><p>  第四章 詳細設計</p><p>  4.1 程序流程圖</p><p>  依據軟件工程

68、的基本原理,詳細設計階段的根本任務是確定應該怎樣具體實現(xiàn)所要求的系統(tǒng),也就是說,經過這個階段的設計工作,應該得出對目標系統(tǒng)的精確描述,從而在系統(tǒng)實現(xiàn)階段可以把這個描述直接翻譯成用某種程序設計語言書寫的程序。具體來說就是把經過總體設計得到的各個模塊詳細的加以描述。</p><p>  本系統(tǒng)采用支持面向對象的Eclipse作為開發(fā)工具,運用了J2SE的SWing的技術,更加的方便了程序員的工作。程序對系統(tǒng)配置要求較

69、高。在此給出軟件系統(tǒng)的主要模塊,如圖4.1所示。</p><p>  圖4.1 主程序模塊圖</p><p>  根據以上主程序的模塊圖,我們可以得出下面的關于各個模塊的程序流程圖,如圖4.2所示。 </p><p>  圖4.2 總體流程圖</p><p>  說明:用戶登陸系統(tǒng)時,系統(tǒng)判斷用戶的級別,如果為系統(tǒng)管理員,則可以進行用戶的用戶

70、管理,如果是管理員,則可以進行相應的銷售管理,進貨管理,壞貨轉移,職工管理,管理員點擊退出按鈕時,退出系統(tǒng)。</p><p><b>  失敗</b></p><p><b>  操作成功</b></p><p><b>  成功</b></p><p>  圖4.3 用戶登陸

71、流程</p><p>  說明:用戶根據已知的用戶名和密碼登錄系統(tǒng),只有登錄成功才能進行系列的用戶管理、庫存管理、銷售管理,職工管理的操作。</p><p><b>  登陸</b></p><p><b>  錄入藥品</b></p><p><b>  失敗</b><

72、/p><p><b>  成功</b></p><p><b>  成功</b></p><p>  圖4.4 藥品創(chuàng)始流程</p><p><b>  登陸</b></p><p><b>  輸入庫存</b></p>

73、<p><b>  操作成功</b></p><p><b>  操作失敗</b></p><p><b>  成功</b></p><p>  圖4.5 存貨創(chuàng)始流程</p><p><b>  登陸</b></p><p

74、>  操作失敗 銷售單錄入</p><p><b>  操作成功</b></p><p><b>  成功</b></p><p><b>  圖4.6 銷售流程</b></p><p><b>  登陸</b>

75、;</p><p><b>  錄入壞貨信息</b></p><p><b>  操作失敗</b></p><p><b>  操作成功</b></p><p><b>  成功</b></p><p>  圖4.7 壞貨轉移流程

76、</p><p>  說明:用戶登陸后進行藥品的相關管理,通過藥品創(chuàng)始,為系統(tǒng)初始化一些藥品及添加新的代售藥品。通過存貨創(chuàng)始將具體進貨的藥品錄入庫存中,銷售成功則對庫存做相應的修改。當藥品損壞或者過期時,應當對庫存做相應的調整。</p><p><b>  用戶</b></p><p><b>  登陸</b></p

77、><p><b>  錄入職員信息</b></p><p><b>  操作成功</b></p><p><b>  成功</b></p><p><b>  失敗</b></p><p><b>  圖4.7 職員管理<

78、;/b></p><p>  說明:管理員通過職工管理模塊進行職工的管理,添加職工后,錄入到職員列表中。</p><p>  4.2 程序輸入輸出描述</p><p>  4.2.1 用戶登陸模塊</p><p>  1.輸入項目:輸入用戶名及密碼。</p><p>  2.輸出項目:打開系統(tǒng)。</p&

79、gt;<p>  4.2.2 用戶管理模塊</p><p>  1.輸入項目:與用戶相關的所有信息。</p><p>  2.輸出項目:操作結果的顯示,出錯彈出對話框。</p><p>  4.2.3 銷售管理模塊</p><p>  1.輸入項目:選擇藥品編號,藥品的進銷價格。</p><p>  

80、2.輸出項目:操作結果的顯示,出錯彈出對話框。</p><p>  4.2.4 進貨管理模塊</p><p>  1.進貨項目:供應商的詳細信息,倉庫的詳細信息,藥品的數量。</p><p>  2.輸出項目:藥品的有關資料的顯示,進貨單列表</p><p>  4.2.5 壞貨管理模塊</p><p>  1.輸

81、入項目:發(fā)生意外無法使用的藥品編號。</p><p>  2.輸出項目:操作結果的顯示。</p><p>  4.2.6 職工管理模塊</p><p>  1.輸入項目:職工的詳細信息。</p><p>  2.輸出項目:根據用戶的輸入顯示相應的結果。</p><p>  4.3 數據庫的設計</p>

82、<p>  4.3.1 數據庫的概念結構設計和ER圖</p><p>  在需求分析階段已完成該系統(tǒng)所有的數據分析。根據該階段所建立的概念模型,已經得出滿足系統(tǒng)設計要求的幾個關系描述,該階段的主要工作就是把前一階段的成果轉化為具體的數據庫。</p><p>  概念結構設計就是要找出實體和他們之間的聯(lián)系,去除非本質的東西。</p><p>  實體是名

83、詞,在ER 圖中設計中就是所說的表。比如“藥品”,“庫存”。 行為是動詞,在ER 圖中設計時一般不考慮行為,它是業(yè)務邏輯,在詳細設計才有設計,是方法。比如 “銷售”,“進貨”等等。 在設計ER圖時時強調的是不同實體之間關系,不是行為。比如:藥品 "銷售" 庫存,“轉移”是一種關系,不是行為。在某種情況下,“銷售”是一個關系表,將“藥品”和“庫存”聯(lián)系起來。 在找出實體后,我們要根據分析來定義實體的

84、屬性,就是表的列。比如藥品有ID,名稱,進價,銷價,簡介等等; 庫存有ID,名稱,數量等等。</p><p>  “庫存”可擁有 0-MANY 的“藥品”,而藥品同樣屬于0-MANY 的庫存。所以是多對多的關系</p><p>  根據以上的分析給出下面的概念結構設計得E-R圖如圖4.3所示。</p><p>  圖4.8 用戶E-R圖</p><

85、;p>  圖4.9 藥品E-R圖</p><p>  圖4.10 供應商E-R圖</p><p>  圖4.11 庫存E-R圖</p><p>  圖4.12 供應商E-R圖</p><p>  圖4.12 職員E-R圖</p><p><b>  n</b></p><

86、p><b>  1</b></p><p><b>  m</b></p><p><b>  m</b></p><p><b>  n</b></p><p><b>  n</b></p><p>

87、<b>  n</b></p><p><b>  1</b></p><p>  圖4.13 實體聯(lián)系E-R圖</p><p>  4.3.2 數據庫的邏輯設計</p><p>  藥品管理管理系統(tǒng)主要涉及到4個表,即:藥品信息表、藥品入庫表、藥品出庫表和庫存表。</p><

88、p>  藥品信息表:這張表是用來存儲藥品信息的。藥品添加以后它的信息就會儲存到這張表中,其中包含:藥品編號、藥品名稱、化學名稱、規(guī)格、藥品類別、劑型、批號及廠商。其中藥品編號是主鍵,非空且唯一。其余信息可以為空,并在數據表建立的時候給他們相應的規(guī)定好數據類型。</p><p>  藥品入庫表:這張表是用來存儲入庫表單信息的,所有入庫單信息都包含在這張表中。包括:入庫單號、藥品編號、批號、入庫日期、有效日期、

89、進價、預售價、數量、整量單位、散量單位及驗收人。其中入庫單號是主鍵,非空且唯一。</p><p>  藥品出庫表:這張表是用來存儲出庫表單信息的,所有出庫信息都包含在這張表單中。它的字段有:出庫單號、藥品編號、批號、數量、出庫日期及驗收人。其中出庫單號是主鍵,非空且唯一。</p><p>  藥品庫存表:這張表是用來存儲庫存信息的,所有初始化的庫存信息和出庫入庫信息改變后的信息都會被記錄下

90、來。它字段有:庫存號、藥品編號、批號、藥品名稱、數量、整量單位、散量單位、入庫日期、有效日期、進價、預售價、庫存下限及驗收人。</p><p>  4.3.3 數據庫的物理設計</p><p>  數據庫設計有幾個范式,一般我們要做到的是第三范式,即數據表中沒有冗余字段以及同一個表中的字段沒有函數依賴關系,冗余字段即在一個表中已經保存過的信息,在另一個表中就不應該存在,如果需要的話,可以

91、通過表間的關聯(lián)來得到,函數依賴性就是一個表中的字段間不應該有計算關系,如一個表中有單價字段、數量字段,就不應該有一個總金額字段。如果程序運行過程中需要總金額,可以實時計算。不過在一些較常用的表中,我們可以適當地保留冗余字段,這樣,在程序運行過程中可以減少由于表間互相關聯(lián)而使用速度降低等問題。這就是所謂的第四范式。數據表設計時,最好不要使用用戶輸入的信息作為主鍵,每一個數據表自己定義一個主鍵,添加信息是由程序自動添加,這樣就可以減少數據更

92、新時產生的錯誤。表與表相關聯(lián)的外鍵最好是由程序自動生成的主鍵,這樣數據庫就比較規(guī)范了。另外,數據表設計時一般都應該有一些標志字段,標志字段可以定義成CHAR(1)或BIT型。建議實際應用中定義成CHAR(1)字段可以存儲多種可能的狀態(tài),在最初設計時,可能我們沒有考慮到的一些情況,在程序后來的開發(fā)中,可以通過設計標志字段為不同的 值來解決,這樣就避免了修改數據庫結構。</p><p>  數據庫初期設計時一定要謹慎

93、,把所有可能的情況都考慮進去,即使當時沒有用到,也要將它留在數據庫中作為備用字段以便將來擴充。</p><p>  程序一旦開始編碼,就應該盡量避免再修改數據庫。因為如果數據庫結構一旦改變,所有與修改的數據表相關的業(yè)務都有可能受到影響,而某些影響還很難看到,這樣就容易形成一個惡性循環(huán)。錯誤越改越多,越改越亂,最終導致程序的失敗。PB的數據窗口與其他語言的數據控件不一樣,它的很多東西是預編譯的。即使你一個模塊已經調

94、試無誤,但只要數據庫結構改動。相應的模塊就一定要重新修改,否則一定會出問題。</p><p>  藥品管理系統(tǒng)數據庫中各個表的設計結果如下面幾個表格所示。每個表格表示為數據庫中的一個表。</p><p>  表4.14 藥品信息表</p><p><b>  表4.15 用戶表</b></p><p>  表4.16 供

95、應商表</p><p>  表4.17 銷售單表</p><p><b>  表4.18 職工表</b></p><p><b>  表4.19 貨存表</b></p><p>  第五章 編碼實現(xiàn)</p><p>  5.1 用戶登陸模塊</p><

96、;p>  用戶登陸界面如圖5.1所示</p><p>  圖5.1藥品登陸界面</p><p><b>  關鍵代碼如下:</b></p><p>  //顯示出圖形界面,Login.java</p><p>  public Login(String msg) {</p><p>  su

97、per(msg);</p><p>  setLayout(new BorderLayout());</p><p>  login_message = new JTextField("用戶登陸");</p><p>  login_message.setEditable(false);</p><p>  login =

98、 new JButton("登陸");</p><p>  regeist = new JButton("注冊");</p><p>  setVisible(true);</p><p>  add(login_message,"North");</p><p>  JPanel

99、btn = new JPanel();</p><p>  btn.setLayout(new GridLayout(1,2));</p><p>  btn.add(login);</p><p>  btn.add(regeist);</p><p>  add(btn,"South");</p><

100、;p>  JPanel input = new JPanel();</p><p>  JLabel unameLabel = new JLabel("用戶名:");</p><p>  uname = new JTextField("",20);</p><p>  JLabel pwdLabel = new JLab

101、el("密 碼 :");</p><p>  pwd = new JPasswordField("",20);</p><p>  input.setLayout(new GridLayout(2,2));</p><p>  input.add(unameLabel);</p><p>  in

102、put.add(uname);</p><p>  input.add(pwdLabel);</p><p>  input.add(pwd);</p><p>  add(input,"Center");</p><p>  login.addActionListener(new loginListener());<

103、;/p><p>  regeist.addActionListener(new regeistListener());</p><p><b>  }</b></p><p>  class loginListener implements ActionListener {</p><p>  public void act

104、ionPerformed(ActionEvent event) {</p><p>  UserDao ud = new UserDao();</p><p>  if(ud.login(uname.getText().trim(), pwd.getText().trim())) {</p><p>  new MainGui().start();</p>

105、;<p>  setVisible(false);</p><p><b>  } else {</b></p><p>  JOptionPane.showMessageDialog(null, "您的輸入不正確,請重輸","警告", 1);</p><p><b>  }<

106、;/b></p><p><b>  }</b></p><p>  loginListener() {</p><p><b>  }</b></p><p><b>  } </b></p><p>  //數據庫中檢查是使用UserDao

107、.java</p><p>  public boolean login(String username,String password) {</p><p>  Connection conn = DB.getConn();</p><p>  Statement stmt = DB.getStatement(conn);</p><p>

108、  String sql = "select * from user where username='" + username +"'";</p><p>  ResultSet rs = DB.getResultSet(stmt, sql);</p><p><b>  try {</b></p>

109、<p>  while(rs.next()) {</p><p>  String dbpassword = rs.getString("password");</p><p>  if(dbpassword != null && dbpassword.equals(password)) </p><p>  retu

110、rn true;</p><p><b>  }</b></p><p>  } catch (SQLException e) {</p><p>  System.out.println("用戶登陸連接數據庫異常,系統(tǒng)退出");</p><p>  System.exit(-1);</p>

111、;<p><b>  }</b></p><p>  return false;</p><p><b>  }</b></p><p>  5.2 用戶管理模塊</p><p>  用戶管理界面5.2所示。</p><p>  圖5.2 用戶管理界面<

112、/p><p>  關鍵代碼如下:(點擊“續(xù)接”時系統(tǒng)執(zhí)行的操作)</p><p>  //UserDao.java</p><p><b>  //用戶注冊</b></p><p>  public boolean regeist(User user) {</p><p>  Connection c

113、onn = DB.getConn();</p><p>  Statement stmt = DB.getStatement(conn);</p><p>  String sql = "insert into user(username,password,rank) values('" + user.getUsername() +"',

114、9;" + user.getPassword() + "',"+user.getRank()+")";</p><p>  System.out.println(sql);</p><p><b>  try {</b></p><p>  stmt.executeUpdate(sql)

115、;</p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p>  JOptionPane.showMessageDialog(null, "添加失敗,您輸入的用戶已存在","警告", 1);</p><p> 

116、 return false;</p><p><b>  }</b></p><p>  JOptionPane.showMessageDialog(null, "恭喜您,添加成功","恭喜", 1);</p><p>  return true;</p><p><b>

117、;  }</b></p><p><b>  //查詢用戶</b></p><p>  public String[] findUser() {</p><p>  Connection conn = DB.getConn();</p><p>  Statement stmt = DB.getStateme

118、nt(conn);</p><p>  String sql = "select * from user";</p><p>  String[] userlist = new String[128];</p><p>  System.out.println(sql);</p><p><b>  try {&

119、lt;/b></p><p>  ResultSet rs = stmt.executeQuery(sql);</p><p>  int i = 0;</p><p>  while(rs.next()) {</p><p>  userlist[i] = rs.getString("username");<

120、/p><p><b>  i++;</b></p><p><b>  }</b></p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p>  JOptionPane.showMess

121、ageDialog(null, "查找用戶失敗","警告", 1);</p><p>  return null;</p><p><b>  }</b></p><p>  return userlist;</p><p><b>  }</b></p

122、><p><b>  //刪除用戶</b></p><p>  public boolean delUser(String username) {</p><p>  Connection conn = DB.getConn();</p><p>  Statement stmt = DB.getStatement(conn

123、);</p><p>  String sql = "delete from user where username = '" + username + "' and rank = 0";</p><p>  String[] userlist = new String[]{};</p><p>  Syste

124、m.out.println(sql);</p><p><b>  try {</b></p><p>  stmt.executeUpdate(sql);</p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><

125、;p>  JOptionPane.showMessageDialog(null, "刪除用戶失敗","警告", 1);</p><p>  return false;</p><p><b>  }</b></p><p>  return true;</p><p><

溫馨提示

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

評論

0/150

提交評論