2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩64頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  JAVA藥品管理系統(tǒng)設(shè)計(jì)</p><p><b>  目錄</b></p><p><b>  第一章 概述8</b></p><p>  1.1 系統(tǒng)開(kāi)發(fā)背景和意義8</p><p>  1.2 開(kāi)發(fā)環(huán)境8</p><p>  第二章 需

2、求分析10</p><p>  2.1 任務(wù)概述10</p><p>  2.2 功能需求10</p><p>  2.3 性能需求7</p><p>  2.4 數(shù)據(jù)描述(數(shù)據(jù)流圖+數(shù)據(jù)字典)8</p><p>  第三章 系統(tǒng)總體設(shè)計(jì)14</p><p>  3.1

3、業(yè)務(wù)流程14</p><p>  3.2 系統(tǒng)功能模塊圖14</p><p>  3.3 系統(tǒng)流程圖16</p><p>  第四章 詳細(xì)設(shè)計(jì)18</p><p>  4.1 程序流程圖18</p><p>  4.2 程序輸入輸出描述23</p><p>  4.2.1

4、 用戶管理模塊23</p><p>  4.2.2 職員管理模塊23</p><p>  4.2.3 銷售管理模塊23</p><p>  4.2.4 進(jìn)貨管理模塊23</p><p>  4.2.5 貨存轉(zhuǎn)移模塊23</p><p>  4.2.6 財(cái)務(wù)信息模塊23</p><

5、;p>  4.3 數(shù)據(jù)庫(kù)的設(shè)計(jì)24</p><p>  4.3.1 數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)設(shè)計(jì)和ER圖24</p><p>  4.3.2 數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)26</p><p>  4.3.3 數(shù)據(jù)庫(kù)的物理設(shè)計(jì)27</p><p>  第五章 編碼實(shí)現(xiàn)31</p><p>  5.1 用戶登陸模塊

6、34</p><p>  5.2 用戶管理模塊36</p><p>  5.3 銷售管理模塊37</p><p>  5.4 進(jìn)貨管理模塊39</p><p>  5.5 職員管理模塊43</p><p>  5.6 壞貨轉(zhuǎn)移模塊45</p><p>  第六章 測(cè)試分析

7、報(bào)告47</p><p>  6.1 什么是軟件測(cè)試50</p><p>  6.2 軟件測(cè)試的目的50</p><p>  6.3 測(cè)試計(jì)劃和要點(diǎn)50</p><p>  6.3.1 藥品以及藥品管理模塊測(cè)試要點(diǎn)50</p><p>  6.3.2 銷售管理測(cè)試要點(diǎn)50</p>&l

8、t;p>  6.3.3 進(jìn)貨管理測(cè)試要點(diǎn)50</p><p>  6.3.4 職工信息測(cè)試要點(diǎn)46</p><p>  6.4 部分測(cè)試圖50</p><p>  6.5 測(cè)試結(jié)論52</p><p><b>  總結(jié)53</b></p><p><b>  參考

9、文獻(xiàn)51</b></p><p>  附錄:部分程序代碼52</p><p><b>  摘要</b></p><p>  大家只要看了新聞,就可以了解到21世紀(jì)是信息的世紀(jì),信息化正以極快的速度取代傳統(tǒng)的效率低下的人工作業(yè)。隨著小型計(jì)算機(jī),微型計(jì)算機(jī)的成本的不斷下降,性能的不斷提升,使得計(jì)算機(jī)作為當(dāng)今最重要的信息產(chǎn)品,成為人民

10、大眾必不可缺的工具。計(jì)算機(jī)技術(shù)已經(jīng)廣泛應(yīng)用于日常辦公,企業(yè)管理,文字處理、電子報(bào)表以及進(jìn)行簡(jiǎn)單的人事管理、財(cái)務(wù)管理等,大大提高了我們的工作效率,節(jié)省許多資源,使管理更加規(guī)范化,系統(tǒng)化,科學(xué)化。</p><p>  目前隨著計(jì)算機(jī)技術(shù)的發(fā)展和普及,各行各業(yè)的管理機(jī)構(gòu)開(kāi)始使用計(jì)算機(jī)處理大量信息。在我國(guó)藥品品種繁多,規(guī)模甚大,以往的手工記載、查詢操作容易出錯(cuò)且工作效率低,已經(jīng)不能適應(yīng)時(shí)代發(fā)展的要求,從管理的角度來(lái)看,對(duì)

11、管理者會(huì)造成諸多的不便,還有可能疏忽一些細(xì)節(jié),讓不法商家逃脫罪責(zé)。所以,市場(chǎng)迫切需要一款簡(jiǎn)單實(shí)用的藥品管理系統(tǒng)。 </p><p>  經(jīng)過(guò)前期的調(diào)研,在反復(fù)的修改和綜合考量后,筆者覺(jué)定使用JAVA SWING技術(shù),ECLIPSE J2SE 開(kāi)發(fā)平臺(tái),MYSQL5.0數(shù)據(jù)庫(kù)開(kāi)發(fā)藥品管理系統(tǒng)。藥品管理系統(tǒng)的設(shè)計(jì)理念是,讓企業(yè)能夠擁有更高效的管理工具,使企業(yè)在21世紀(jì)異常激烈的競(jìng)爭(zhēng)中脫穎而出。國(guó)外的管理系統(tǒng)

12、有許多優(yōu)秀的經(jīng)驗(yàn),但是并不完全符合我國(guó)的國(guó)情,我國(guó)的最廣大藥品銷售的企業(yè)是分布在全國(guó)各地的中小型銷售企業(yè)。所以,此次開(kāi)發(fā)的藥品管理系統(tǒng)功能乃是汲取了外國(guó)優(yōu)秀管理工具的優(yōu)秀功能,同時(shí)又創(chuàng)新了更符合我國(guó)用戶需求的功能的一個(gè)綜合信息管理系統(tǒng)。藥品管理系統(tǒng)分為五大模塊,分別為系統(tǒng)用戶模塊,職工信息管理模塊,進(jìn)貨管理模塊,銷售管理模塊,庫(kù)存轉(zhuǎn)移管理模塊。該五大功能模塊設(shè)計(jì)合理,功能全面,同時(shí)界面友好,非常符合我國(guó)各大小型藥品銷售企業(yè)的管理需求。但

13、由于時(shí)間倉(cāng)促以及筆者找工作實(shí)習(xí)的原因,系統(tǒng)還不是很完善,和市場(chǎng)上一些成熟的產(chǎn)品比較仍然有不足之處。今后筆者將利用工作休息時(shí)間,學(xué)習(xí)新的技術(shù)和設(shè)計(jì)理念,對(duì)藥品管理系統(tǒng)進(jìn)行深入的二次迭代開(kāi)發(fā),目標(biāo)是在今后三個(gè)月使代碼更加規(guī)范,界面更加美觀,程序的可拓展性進(jìn)一步增強(qiáng),更加與市場(chǎng)接軌,然后發(fā)布到C</p><p>  關(guān)鍵詞:JAVA SWING、MYSQL5.0、JDBC、藥品管理管理系統(tǒng)、藥品管理</p>

14、<p><b>  Abstract</b></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 in

15、efficient artificially assignments. With small computer, microcomputer cost of declining, performance, makes the computer as the most important information product, become indispensable for the masses of tools. Computer

16、technology has been widely used in daily office, enterprise management, word processing, spreadsheets and simple personnel </p><p>  Now with the development of computer technology and popularization of the

17、management institution, tencent started 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 a

18、dapt to the development of The Times, 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>&l

19、t;p>  Through the research on the modification, and comprehensive considerations repeatedly, the author determined after use JAVA SWING technology, MYSQL5.0 ECLIPSE J2SE JAVA development platform, the drug administrat

20、ion system database development. Drug 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 exc

21、ellent experience, but not completely accord with the national condit</p><p>  Key words:Java Swing、Mysql5.5、JDBC、MedMgrSystem、Medicine sales&mgr</p><p><b>  第一章 概述</b></p>

22、<p>  如何利用現(xiàn)代信息技術(shù)使企業(yè)擁有快速、高效的市場(chǎng)反映能力和高度的效率,已是醫(yī)藥經(jīng)營(yíng)企業(yè),特別是醫(yī)藥連鎖經(jīng)營(yíng)企業(yè)特別關(guān)心的問(wèn)題。盡快建立一個(gè)功能齊備的藥品進(jìn)、出庫(kù)管理系統(tǒng),完善現(xiàn)代企業(yè)的信息化管理機(jī)制,已成為醫(yī)藥企業(yè)生存發(fā)展的當(dāng)務(wù)之急。通過(guò)開(kāi)發(fā)這個(gè)藥品管理系統(tǒng),使藥品進(jìn)銷存管理工作系統(tǒng)化,規(guī)范化,自動(dòng)化,從而達(dá)到提高管理效率的目的。本系統(tǒng)開(kāi)發(fā)設(shè)計(jì)思想是實(shí)現(xiàn)藥品管理的數(shù)字化。</p><p>

23、  盡量采用現(xiàn)有軟硬件環(huán)境,及先進(jìn)的管理系統(tǒng)開(kāi)發(fā)方案,提高系統(tǒng)開(kāi)發(fā)水平和應(yīng)用效果的目的。系統(tǒng)應(yīng)符合企業(yè)管理的規(guī)定,滿足日常管理的需要,并達(dá)到操作過(guò)程中的直觀、方便、實(shí)用、安全等要求,系統(tǒng)采用模塊化程序設(shè)計(jì)方法,這樣既便于系統(tǒng)功能的各種組合,又便于未參與開(kāi)發(fā)的技術(shù)維護(hù)人員補(bǔ)充,維護(hù)。系統(tǒng)應(yīng)具備數(shù)據(jù)庫(kù)維護(hù)功能,及時(shí)根據(jù)用戶需求進(jìn)行數(shù)據(jù)的添加,刪除,修改等操作。</p><p>  1.1 系統(tǒng)開(kāi)發(fā)背景和意義<

24、/p><p>  此次畢業(yè)設(shè)計(jì)的選題是由我校計(jì)算機(jī)學(xué)院統(tǒng)一選題。本次的畢業(yè)設(shè)計(jì)是一個(gè)可以充分地鍛煉自己的動(dòng)手實(shí)踐能力以及考核四年大學(xué)所學(xué)知識(shí)的積累的機(jī)會(huì)。針對(duì)我的實(shí)際情況,結(jié)合四年來(lái)對(duì)計(jì)算機(jī)軟件的熟練程度以及對(duì)數(shù)據(jù)庫(kù)的了解,經(jīng)過(guò)與指導(dǎo)老師以及小組成員的協(xié)商,我選擇了藥品管理系統(tǒng)軟件設(shè)計(jì)與開(kāi)發(fā)這個(gè)課題。這是一個(gè)屬于實(shí)際的課題,如果順利,我們所設(shè)計(jì)的藥品管理系統(tǒng)將實(shí)際應(yīng)用到中國(guó)最廣大的售藥系統(tǒng)中去,對(duì)于初涉社會(huì)的我們來(lái)說(shuō)

25、,無(wú)疑是一個(gè)非常好地鍛煉機(jī)會(huì)??紤]到該系統(tǒng)屬于一個(gè)規(guī)模較大、較為復(fù)雜的數(shù)據(jù)庫(kù)系統(tǒng),對(duì)計(jì)算機(jī)的性能要求較高,決定使用MyEclipse7.0開(kāi)發(fā)此系統(tǒng)。</p><p>  此次畢業(yè)設(shè)計(jì)選題范圍是相當(dāng)廣泛且實(shí)用的,含蓋了目前大部分計(jì)算機(jī)軟件類開(kāi)發(fā)的課題,給我們很大的自由發(fā)展的空間??梢悦總€(gè)學(xué)生挑選出最合適的課題,更適合同學(xué)們的興趣和價(jià)值取向。選擇此課題對(duì)我來(lái)說(shuō)有著不同的意義,應(yīng)該來(lái)說(shuō)此課題更接近于實(shí)際開(kāi)發(fā)的全過(guò)程。

26、同時(shí)對(duì)編程、數(shù)據(jù)庫(kù)調(diào)用、結(jié)構(gòu)化查詢語(yǔ)言STRUCTURED QUERY LANGUAGE等方面是一個(gè)比較綜合的考驗(yàn)。讓我在此過(guò)程中得到很好的鍛煉。</p><p>  隨著醫(yī)療制度改革的進(jìn)行,藥品招標(biāo)采購(gòu)的逐年規(guī)范和擴(kuò)大,藥品管理已經(jīng)成為藥劑科乃至整個(gè)醫(yī)院管理的重要內(nèi)容。傳統(tǒng)的管理模式已經(jīng)跟不上顧客對(duì)快節(jié)奏生活的要求了!隨著計(jì)算機(jī)的普及和計(jì)算機(jī)軟件的不斷發(fā)展,越來(lái)越多的醫(yī)療機(jī)構(gòu)開(kāi)始注視計(jì)算機(jī)這個(gè)輔助工具為自己帶來(lái)

27、的效益了。醫(yī)院的售藥機(jī)構(gòu)需要通過(guò)計(jì)算機(jī)提高自已工作效率、對(duì)藥品實(shí)現(xiàn)進(jìn)銷存管理和職工管理,提高經(jīng)濟(jì)效益</p><p>  本次畢業(yè)設(shè)計(jì)我們秉承良好的治學(xué)之風(fēng),除了嚴(yán)格按照畢業(yè)設(shè)計(jì)進(jìn)度表來(lái)安排我的設(shè)計(jì)情況,同時(shí)加強(qiáng)我與指導(dǎo)李老師聯(lián)系和交流。同時(shí)這是一個(gè)面向?qū)嶋H應(yīng)用的課題,和基礎(chǔ)調(diào)研更是尤為顯得重要,為最終能夠成為一個(gè)成功的案例而努力。</p><p><b>  1.2 開(kāi)發(fā)環(huán)境

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

29、  數(shù)據(jù)庫(kù)引擎: MyISAM</p><p>  第二章 需求分析</p><p><b>  2.1 任務(wù)概述</b></p><p>  藥品管理系統(tǒng)是為了加強(qiáng)藥品管理,以便更好地對(duì)藥品進(jìn)行監(jiān)督和管理,對(duì)售藥機(jī)構(gòu)人員的工作,起到了高效性、準(zhǔn)確性管理而開(kāi)發(fā)。本系統(tǒng)主要包含系統(tǒng)用戶管理模塊、藥品管理模塊、銷售管理模塊、進(jìn)貨管理模塊、存貨

30、轉(zhuǎn)移管理模塊。藥品管理系統(tǒng)是以合理、全面、準(zhǔn)確的藥品編碼體系為基礎(chǔ),提供了對(duì)藥品數(shù)量、金額、有效期的全面管理,統(tǒng)一的藥價(jià)管理機(jī)制規(guī)范了藥品的價(jià)格。系統(tǒng)能隨時(shí)提供藥庫(kù)的庫(kù)存、藥品流向和消耗,還能根據(jù)現(xiàn)有庫(kù)存,藥品有效期提供采購(gòu)計(jì)劃或應(yīng)暫停采購(gòu)的藥品清單,以提高資金的利用率,避免不必要的損失,方便快捷的途徑對(duì)藥基本信息進(jìn)行定期的更新和刪除等管理。 </p><p><b>  2.2 功能需求</b

31、></p><p><b>  一功能劃分</b></p><p>  藥品管理系統(tǒng)分為系統(tǒng)用戶管理、藥品銷售管理、藥品庫(kù)存管理、進(jìn)貨管理、職工管理、查詢與報(bào)表分析。</p><p><b>  二功能描述</b></p><p> ?。?)系統(tǒng)用戶管理:允許添加刪除用戶(只有管理員才可以

32、修改),任意權(quán)限的用戶允許更改自己的密碼,添加或刪除職工,修改職工,對(duì)藥品進(jìn)行銷售和庫(kù)存的控制的資料。</p><p> ?。?) 藥品進(jìn)貨管理:當(dāng)企業(yè)需要增加新的銷售藥品時(shí),利用此模塊可以添加新的藥品信息,刪除舊的藥品信息,修改已存在的藥品信息,提供所有與藥品相關(guān)的各類信息,初始化庫(kù)存,初始化供應(yīng)商相關(guān)信息。</p><p> ?。?)藥品銷售管理:藥品統(tǒng)一的價(jià)格銷售,對(duì)已查詢銷售單,可

33、以對(duì)藥品的價(jià)格進(jìn)行控制。</p><p> ?。?)庫(kù)存轉(zhuǎn)移管理:實(shí)際生活中容易發(fā)生藥品過(guò)期和損毀,此時(shí)利用此模塊對(duì)過(guò)期的藥品和損毀的藥品進(jìn)行清理。</p><p> ?。?)職工管理:  對(duì)藥品企業(yè)進(jìn)行職工的管理,對(duì)職工進(jìn)行增加,修改,刪除,查詢等操作。</p><p> ?。?)查詢與報(bào)表分析:此功能并未單獨(dú)作為一個(gè)模塊,而是分布在各個(gè)模塊中,各個(gè)模塊

34、產(chǎn)生業(yè)務(wù)時(shí),可以在各模塊的相應(yīng)功能按鈕上選擇查詢。</p><p><b>  2.3 性能需求</b></p><p>  為了保證系統(tǒng)能夠長(zhǎng)期、安全、穩(wěn)定、可靠、高效的運(yùn)行,藥品管理系統(tǒng)應(yīng)該滿足以下的性能需求:</p><p>  1、系統(tǒng)處理的準(zhǔn)確性和及時(shí)性</p><p>  系統(tǒng)處理的準(zhǔn)確性和及時(shí)性是系統(tǒng)的必

35、要性能。在系統(tǒng)設(shè)計(jì)和開(kāi)發(fā)過(guò)程中,要充分考慮系統(tǒng)當(dāng)前和將來(lái)可能承受的工作量,使系統(tǒng)的處理能力和響應(yīng)時(shí)間能夠滿足學(xué)校對(duì)信息處理的需求。</p><p>  2、系統(tǒng)的開(kāi)放性和系統(tǒng)的可擴(kuò)充性</p><p>  藥品管理系統(tǒng)在開(kāi)發(fā)過(guò)程中,應(yīng)該充分考慮以后的可擴(kuò)充性。例如用戶查詢的需求也會(huì)不斷的更新和完善。所有這些,都要求系統(tǒng)提供足夠的手段進(jìn)行功能的調(diào)整和擴(kuò)充。而要實(shí)現(xiàn)這一點(diǎn),應(yīng)通過(guò)系統(tǒng)的開(kāi)放性來(lái)

36、完成,既系統(tǒng)應(yīng)是一個(gè)開(kāi)放系統(tǒng),只要符合一定的規(guī)范,可以簡(jiǎn)單的加入和減少系統(tǒng)的模塊,配置系統(tǒng)的硬件。通過(guò)軟件的修補(bǔ)、替換完成系統(tǒng)的升級(jí)和更新?lián)Q代。</p><p>  3、系統(tǒng)的易用性和易維護(hù)性</p><p>  圖書(shū)管理系統(tǒng)是直接面對(duì)使用人員的,而使用人員往往對(duì)計(jì)算機(jī)并不時(shí)非常熟悉。這就要求系統(tǒng)能夠提供良好的用戶接口,易用的人機(jī)交互界面。要實(shí)現(xiàn)這一點(diǎn),就要求系統(tǒng)應(yīng)該盡量使用用戶熟悉的術(shù)語(yǔ)

37、和中文信息的界面;針對(duì)用戶可能出現(xiàn)的使用問(wèn)題,要提供足夠的在線幫助,縮短用戶對(duì)系統(tǒng)熟悉的過(guò)程。</p><p><b>  4、系統(tǒng)的標(biāo)準(zhǔn)性</b></p><p>  系統(tǒng)在設(shè)計(jì)開(kāi)發(fā)使用過(guò)程中都要涉及到很多計(jì)算機(jī)硬件、軟件。所有這些都要符合主流國(guó)際、國(guó)家和行業(yè)標(biāo)準(zhǔn)。</p><p><b>  5、系統(tǒng)的先進(jìn)性</b>&

38、lt;/p><p>  目前計(jì)算系統(tǒng)的技術(shù)發(fā)展相當(dāng)快,做為藥品管理系統(tǒng)工程,在系統(tǒng)的生命周期盡量做到系統(tǒng)的先進(jìn),充分完成企業(yè)信息處理的要求而不至于落后。這一方面通過(guò)系統(tǒng)的開(kāi)放性和可擴(kuò)充性,不斷改善系統(tǒng)的功能完成。另一方面,在系統(tǒng)設(shè)計(jì)和開(kāi)發(fā)的過(guò)程中,應(yīng)在考慮成本的基礎(chǔ)上盡量采用當(dāng)前主流并先進(jìn)且有良好發(fā)展前途的產(chǎn)品。</p><p><b>  6、系統(tǒng)的響應(yīng)速度</b>&l

39、t;/p><p>  藥品管理系統(tǒng)系統(tǒng)在日常處理中的響應(yīng)速度為秒級(jí),達(dá)到實(shí)時(shí)要求,以及時(shí)反饋信息。在進(jìn)行統(tǒng)計(jì)分析時(shí),根據(jù)所需數(shù)據(jù)量的不同而從秒級(jí)到分鐘級(jí),原則是保證操作人員不會(huì)因?yàn)樗俣葐?wèn)題而影響工作效率。</p><p>  2.4 數(shù)據(jù)描述(數(shù)據(jù)流圖+數(shù)據(jù)字典)</p><p>  經(jīng)過(guò)調(diào)研,我們發(fā)現(xiàn),一個(gè)藥店最基本的工作流程是進(jìn)貨和銷售。消費(fèi)者選擇藥店進(jìn)行購(gòu)物,藥

40、店通過(guò)我們的藥店管理系統(tǒng)進(jìn)行藥品的銷售及銷售后的庫(kù)存整理。流程簡(jiǎn)介:</p><p><b>  2.4.1 要求</b></p><p>  A.為每種藥品設(shè)置編號(hào),輸入藥品的信息,以便于管理人員對(duì)藥品進(jìn)行管理,也便于核對(duì)修改</p><p>  B.為職工設(shè)置庫(kù),便于操作員對(duì)職工進(jìn)行管理</p><p>  C.為供

41、貨商設(shè)置庫(kù),便于操作員及時(shí)與供貨商聯(lián)系貨源</p><p><b>  D.設(shè)置系統(tǒng)權(quán)限</b></p><p>  E.藥品價(jià)格分為進(jìn)貨價(jià)、零售價(jià)和批發(fā)價(jià)</p><p><b>  2.4.2 目標(biāo)</b></p><p>  A.使藥品銷售的信息能及時(shí)得到統(tǒng)計(jì)、查詢</p>&l

42、t;p>  B.方便操作員的操作,達(dá)到簡(jiǎn)單、易用的效果</p><p>  C.提高操作員的工作效率</p><p>  D.提高操作的正確率</p><p>  E.提高系統(tǒng)的可靠性及安全性</p><p>  圖2.1 藥品管理系統(tǒng)基本流程</p><p>  以上便是我們這個(gè)藥品管理系統(tǒng)的總體數(shù)據(jù)流程圖,通

43、過(guò)上述的這幅圖片,我們可以清楚地了解到該系統(tǒng)的大致情況,有兩個(gè)數(shù)據(jù)源/終點(diǎn),分別是客戶、用戶。而該系統(tǒng)進(jìn)一步地功能顯示在下圖中可以得到解釋。</p><p>  圖2.2 管理人員的數(shù)據(jù)流圖</p><p>  銷售人員通過(guò)輸入藥品編號(hào),查出系統(tǒng)中存在的藥品,通過(guò)醫(yī)生看病以及配藥,考慮所售藥品的價(jià)格,將病人所要購(gòu)買的藥品列入藥品清單中,最后的銷售入庫(kù)存系統(tǒng)將此次的交易數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中,

44、最終完成交易,將藥品交給病人手中。</p><p>  經(jīng)過(guò)對(duì)數(shù)據(jù)流程分析,提示出現(xiàn)行系統(tǒng)具有4個(gè)主要模塊:藥品信息系統(tǒng)、藥品庫(kù)存管理系統(tǒng)、供應(yīng)商管理系統(tǒng)、藥品銷售系統(tǒng)。通過(guò)它們我們的藥品管理系統(tǒng)才成為了一個(gè)能夠成功的軟件。</p><p>  首先是藥品信息系統(tǒng):在這個(gè)模塊中由用戶或管理員輸入所有藥品的基本信息即藥品的初始化。</p><p>  第二個(gè)是藥品庫(kù)存

45、管理系統(tǒng):在這里這個(gè)系統(tǒng)有兩個(gè)功能,一是查出現(xiàn)有藥庫(kù)中的所有過(guò)期藥品,更新現(xiàn)有的數(shù)據(jù)庫(kù);二是實(shí)現(xiàn)藥品入庫(kù),避免藥品空缺造成的銷售問(wèn)題。</p><p>  第三個(gè)是供應(yīng)商管理系統(tǒng):供應(yīng)商是藥品進(jìn)貨時(shí),從何處購(gòu)得的一種記錄方法,通過(guò)供應(yīng)商可以方便的再次進(jìn)貨。</p><p>  最后一個(gè)是藥品銷售系統(tǒng):在這個(gè)模塊中,管理人員可以很方便地對(duì)銷售情況進(jìn)行查看,顯示當(dāng)天的銷售金額并備份所有的數(shù)據(jù)庫(kù)

46、表。</p><p>  藥品管理系統(tǒng)與3個(gè)外部實(shí)體有關(guān):顧客、藥房銷售人員和系統(tǒng)管理員。其中系統(tǒng)管理人員擁有所有信息資料添加、刪除和修改的權(quán)限,而藥房銷售人員只具有普通權(quán)限不能對(duì)信息資料做任何的刪除操作。以上只是整個(gè)系統(tǒng)的總體流程,大概顯示了一次一個(gè)用戶完整交易的全部過(guò)程。在這里我們還要對(duì)這個(gè)數(shù)據(jù)流程進(jìn)行進(jìn)一步詳細(xì)的分解。</p><p>  圖2.3 消費(fèi)者的數(shù)據(jù)流圖</p&g

47、t;<p>  消費(fèi)者通過(guò)選購(gòu),選購(gòu)好合適的藥品,到管理者處登記結(jié)賬,發(fā)生銷售管理。管理者通過(guò)藥品編號(hào),錄入系統(tǒng)需要銷售的數(shù)量,系統(tǒng)生成倉(cāng)庫(kù)中是否有足夠的藥品。發(fā)生銷售之后產(chǎn)生銷售單和銷售金額,消費(fèi)者付款拿貨。銷售管理完成。</p><p>  當(dāng)消費(fèi)者發(fā)現(xiàn)購(gòu)買的藥品不符合要求,管理者在認(rèn)真核實(shí)之后,予以退款,發(fā)生退貨。此時(shí)管理者要在系統(tǒng)的壞貨轉(zhuǎn)移中,將不合格藥品轉(zhuǎn)移到不合格倉(cāng)庫(kù)中。</p&g

48、t;<p>  圖2.4 系統(tǒng)數(shù)據(jù)流圖</p><p>  圖2.5 詳細(xì)數(shù)據(jù)流圖</p><p>  2.4.3 數(shù)據(jù)字典</p><p><b>  數(shù)據(jù)流項(xiàng)目:</b></p><p>  1.名字:用戶信息(admin)</p><p><b>  別名:無(wú)&

49、lt;/b></p><p><b>  流量:每天上十次</b></p><p>  來(lái)源:用戶基本信息表</p><p><b>  去向:核對(duì)用戶信息</b></p><p>  定義:用戶信息=用戶名+用戶密碼+權(quán)限</p><p><b>  2.名

50、字:藥品信息</b></p><p><b>  別名:無(wú)</b></p><p><b>  流量:每天上十次</b></p><p><b>  來(lái)源:藥品表</b></p><p>  去向:核對(duì)藥品庫(kù)存初始化、核對(duì)出庫(kù)信息、核對(duì)入庫(kù)信息</p>

51、<p>  定義:藥品信息=藥品編號(hào) + 藥品名稱 + 藥品建成 + 藥品規(guī)格 + 藥品產(chǎn)地 + 批號(hào) +進(jìn)價(jià) + 批發(fā)價(jià) + 零售價(jià) + 供應(yīng)商 + 類別 + 有效期 + 備注.</p><p><b>  3.名字:庫(kù)存信息</b></p><p><b>  別名:無(wú)</b></p><p><b&

52、gt;  流量:每天上十次</b></p><p><b>  來(lái)源:庫(kù)存表</b></p><p>  去向:核對(duì)藥品庫(kù)存查詢、核對(duì)進(jìn)貨單、核對(duì)銷售單</p><p>  定義:庫(kù)存信息=ID + 藥品編號(hào) + 藥品名稱+供應(yīng)商編號(hào) + 單價(jià) + 數(shù)量 + 入庫(kù)日期 + 倉(cāng)庫(kù)類別.</p><p>  4.

53、名字:供應(yīng)商信息</p><p><b>  別名:無(wú)</b></p><p><b>  流量:每天上十次</b></p><p><b>  來(lái)源:供應(yīng)商表</b></p><p>  去向:反饋給用戶,核對(duì)進(jìn)貨單</p><p>  定義:供應(yīng)商信

54、息=ID+供貨商編號(hào)+供貨商名+地區(qū)+備注</p><p>  5.名字:銷售單單信息</p><p><b>  別名:無(wú)</b></p><p><b>  流量:每天上十次</b></p><p><b>  來(lái)源:銷售單單表</b></p><p&g

55、t;<b>  去向:反饋給用戶</b></p><p>  定義:銷售單信息=ID+藥品編號(hào) + 藥品名稱 + 數(shù)量 + 銷售日期 + 銷售數(shù)量 + 銷售收入</p><p>  2.4.4 存儲(chǔ)條目:</p><p>  1.文件名:用戶基本信息表</p><p><b>  別名:無(wú)</b>&

56、lt;/p><p><b>  存儲(chǔ)方式:隨機(jī)存儲(chǔ)</b></p><p>  存儲(chǔ)頻率:每天上十次</p><p>  定義:用戶基本信息表=用戶名+用戶密碼 + 權(quán)限</p><p><b>  2.文件名:藥品表</b></p><p><b>  別名:無(wú)<

57、;/b></p><p><b>  存儲(chǔ)方式:隨機(jī)存儲(chǔ)</b></p><p>  存儲(chǔ)頻率:每天上十次</p><p>  定義:藥品表=藥品編號(hào) + 藥品名稱 + 藥品建成 + 藥品規(guī)格 + 藥品產(chǎn)地 + 批號(hào) +進(jìn)價(jià) + 批發(fā)價(jià) + 零售價(jià) + 供應(yīng)商 + 類別 + 有效期 + 備注.</p><p>&l

58、t;b>  3.數(shù)據(jù)項(xiàng)條目:</b></p><p><b>  項(xiàng)名:藥品類型</b></p><p><b>  別名:無(wú)</b></p><p>  描述:用戶輸入試題的類型</p><p>  定義:藥品類型=所有藥品規(guī)定類型</p><p><

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

60、<p>  處理邏輯:用戶初始化藥品庫(kù)存表</p><p>  執(zhí)行頻率:進(jìn)貨上十次</p><p><b>  3.處理名:入庫(kù)</b></p><p>  處理邏輯:用戶添加進(jìn)貨單</p><p>  執(zhí)行頻率:每天上十次</p><p><b>  4.處理名:銷售&l

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

62、統(tǒng)的業(yè)務(wù)流程,其處理流程如圖3.1。</p><p>  登陸 合法用戶</p><p><b>  登記后的</b></p><p><b>  藥品</b></p><p><b>  退出登陸</b></p>&

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

64、t;/p><p>  4.藥品進(jìn)貨:對(duì)已入庫(kù)的藥品,管理人員可以進(jìn)行貨存控制。</p><p>  5.存貨轉(zhuǎn)移:對(duì)于已經(jīng)過(guò)期或者損壞的藥品,可以進(jìn)行處理。 </p><p>  6.信息查詢:對(duì)藥品的各種變動(dòng)情況的查詢。</p><p>  7.職員管理:對(duì)藥店的職工進(jìn)行管理。</p><p>  3.2 系統(tǒng)功能模塊

65、圖</p><p>  藥品管理系統(tǒng)模塊是用JAVA SWING進(jìn)行設(shè)計(jì),MYSQL作為后臺(tái)數(shù)據(jù)庫(kù)管理系統(tǒng)。</p><p>  系統(tǒng)管理模塊分為用戶登錄、進(jìn)貨管理、銷售管理、職工管理和壞貨轉(zhuǎn)移;用戶管理模塊主要是新增用戶,修改用戶,查詢用戶,刪除用戶;進(jìn)貨管理模塊主要有供應(yīng)商創(chuàng)始,進(jìn)貨,進(jìn)貨單查詢,藥品創(chuàng)始;銷售管理模塊主要有銷售,修改價(jià)目表,銷售單查詢;職工管理有添加職工,處理職工。&

66、lt;/p><p>  系統(tǒng)體系結(jié)構(gòu)框圖如下圖:</p><p>  圖3.2 藥品管理系統(tǒng)功能模塊圖</p><p>  3.3 系統(tǒng)流程圖</p><p>  依據(jù)軟件工程的基本原理,綜合以上分析給出系統(tǒng)流程圖如圖3.4所示。</p><p>  圖3.2 系統(tǒng)的處理流程圖 </p&g

67、t;<p>  說(shuō)明: 用戶通過(guò)登陸界面登陸系統(tǒng)時(shí),第一次使用系統(tǒng)時(shí)需要進(jìn)行藥品的創(chuàng)始,即將各個(gè)藥品的詳細(xì)信息依次錄入系統(tǒng),第一次使用系統(tǒng)時(shí)同樣要初始化庫(kù)存,將現(xiàn)有的藥品情況錄入系統(tǒng),接下來(lái)通過(guò)進(jìn)貨模塊進(jìn)行進(jìn)貨,進(jìn)貨時(shí)要為每一個(gè)供應(yīng)商進(jìn)行供應(yīng)商創(chuàng)始,當(dāng)發(fā)生銷售時(shí)銷售藥品,并對(duì)庫(kù)存進(jìn)行相應(yīng)的出來(lái),退出時(shí)推出系統(tǒng)。</p><p>  第四章 詳細(xì)設(shè)計(jì)</p><p>  4

68、.1 程序流程圖</p><p>  依據(jù)軟件工程的基本原理,詳細(xì)設(shè)計(jì)階段的根本任務(wù)是確定應(yīng)該怎樣具體實(shí)現(xiàn)所要求的系統(tǒng),也就是說(shuō),經(jīng)過(guò)這個(gè)階段的設(shè)計(jì)工作,應(yīng)該得出對(duì)目標(biāo)系統(tǒng)的精確描述,從而在系統(tǒng)實(shí)現(xiàn)階段可以把這個(gè)描述直接翻譯成用某種程序設(shè)計(jì)語(yǔ)言書(shū)寫(xiě)的程序。具體來(lái)說(shuō)就是把經(jīng)過(guò)總體設(shè)計(jì)得到的各個(gè)模塊詳細(xì)的加以描述。</p><p>  本系統(tǒng)采用支持面向?qū)ο蟮腅clipse作為開(kāi)發(fā)工具,運(yùn)用

69、了J2SE的SWing的技術(shù),更加的方便了程序員的工作。程序?qū)ο到y(tǒng)配置要求較高。在此給出軟件系統(tǒng)的主要模塊,如圖4.1所示。</p><p>  圖4.1 主程序模塊圖</p><p>  根據(jù)以上主程序的模塊圖,我們可以得出下面的關(guān)于各個(gè)模塊的程序流程圖,如圖4.2所示。 </p><p>  圖4.2 總體流程圖</p><p>  說(shuō)明

70、:用戶登陸系統(tǒng)時(shí),系統(tǒng)判斷用戶的級(jí)別,如果為系統(tǒng)管理員,則可以進(jìn)行用戶的用戶管理,如果是管理員,則可以進(jìn)行相應(yīng)的銷售管理,進(jìn)貨管理,壞貨轉(zhuǎn)移,職工管理,管理員點(diǎn)擊退出按鈕時(shí),退出系統(tǒng)。</p><p><b>  失敗</b></p><p><b>  操作成功</b></p><p><b>  成功<

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

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

73、;<b>  輸入庫(kù)存</b></p><p><b>  操作成功</b></p><p><b>  操作失敗</b></p><p><b>  成功</b></p><p>  圖4.5 存貨創(chuàng)始流程</p><p>&l

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

75、p><p><b>  登陸</b></p><p><b>  錄入壞貨信息</b></p><p><b>  操作失敗</b></p><p><b>  操作成功</b></p><p><b>  成功</b&

76、gt;</p><p>  圖4.7 壞貨轉(zhuǎn)移流程</p><p>  說(shuō)明:用戶登陸后進(jìn)行藥品的相關(guān)管理,通過(guò)藥品創(chuàng)始,為系統(tǒng)初始化一些藥品及添加新的代售藥品。通過(guò)存貨創(chuàng)始將具體進(jìn)貨的藥品錄入庫(kù)存中,銷售成功則對(duì)庫(kù)存做相應(yīng)的修改。當(dāng)藥品損壞或者過(guò)期時(shí),應(yīng)當(dāng)對(duì)庫(kù)存做相應(yīng)的調(diào)整。</p><p><b>  用戶</b></p>

77、<p><b>  登陸</b></p><p><b>  錄入職員信息</b></p><p><b>  操作成功</b></p><p><b>  成功</b></p><p><b>  失敗</b></p

78、><p><b>  圖4.7 職員管理</b></p><p>  說(shuō)明:管理員通過(guò)職工管理模塊進(jìn)行職工的管理,添加職工后,錄入到職員列表中。</p><p>  4.2 程序輸入輸出描述</p><p>  4.2.1 用戶登陸模塊</p><p>  1.輸入項(xiàng)目:輸入用戶名及密碼。<

79、/p><p>  2.輸出項(xiàng)目:打開(kāi)系統(tǒng)。</p><p>  4.2.2 用戶管理模塊</p><p>  1.輸入項(xiàng)目:與用戶相關(guān)的所有信息。</p><p>  2.輸出項(xiàng)目:操作結(jié)果的顯示,出錯(cuò)彈出對(duì)話框。</p><p>  4.2.3 銷售管理模塊</p><p>  1.輸入項(xiàng)目:

80、選擇藥品編號(hào),藥品的進(jìn)銷價(jià)格。</p><p>  2.輸出項(xiàng)目:操作結(jié)果的顯示,出錯(cuò)彈出對(duì)話框。</p><p>  4.2.4 進(jìn)貨管理模塊</p><p>  1.進(jìn)貨項(xiàng)目:供應(yīng)商的詳細(xì)信息,倉(cāng)庫(kù)的詳細(xì)信息,藥品的數(shù)量。</p><p>  2.輸出項(xiàng)目:藥品的有關(guān)資料的顯示,進(jìn)貨單列表</p><p>  4

81、.2.5 壞貨管理模塊</p><p>  1.輸入項(xiàng)目:發(fā)生意外無(wú)法使用的藥品編號(hào)。</p><p>  2.輸出項(xiàng)目:操作結(jié)果的顯示。</p><p>  4.2.6 職工管理模塊</p><p>  1.輸入項(xiàng)目:職工的詳細(xì)信息。</p><p>  2.輸出項(xiàng)目:根據(jù)用戶的輸入顯示相應(yīng)的結(jié)果。</p&

82、gt;<p>  4.3 數(shù)據(jù)庫(kù)的設(shè)計(jì)</p><p>  4.3.1 數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)設(shè)計(jì)和ER圖</p><p>  在需求分析階段已完成該系統(tǒng)所有的數(shù)據(jù)分析。根據(jù)該階段所建立的概念模型,已經(jīng)得出滿足系統(tǒng)設(shè)計(jì)要求的幾個(gè)關(guān)系描述,該階段的主要工作就是把前一階段的成果轉(zhuǎn)化為具體的數(shù)據(jù)庫(kù)。</p><p>  概念結(jié)構(gòu)設(shè)計(jì)就是要找出實(shí)體和他們之間的聯(lián)

83、系,去除非本質(zhì)的東西。</p><p>  實(shí)體是名詞,在ER 圖中設(shè)計(jì)中就是所說(shuō)的表。比如“藥品”,“庫(kù)存”。 行為是動(dòng)詞,在ER 圖中設(shè)計(jì)時(shí)一般不考慮行為,它是業(yè)務(wù)邏輯,在詳細(xì)設(shè)計(jì)才有設(shè)計(jì),是方法。比如 “銷售”,“進(jìn)貨”等等。 在設(shè)計(jì)ER圖時(shí)時(shí)強(qiáng)調(diào)的是不同實(shí)體之間關(guān)系,不是行為。比如:藥品 "銷售" 庫(kù)存,“轉(zhuǎn)移”是一種關(guān)系,不是行為。在某種情況下,“銷售”是一個(gè)關(guān)系表,將“

84、藥品”和“庫(kù)存”聯(lián)系起來(lái)。 在找出實(shí)體后,我們要根據(jù)分析來(lái)定義實(shí)體的屬性,就是表的列。比如藥品有ID,名稱,進(jìn)價(jià),銷價(jià),簡(jiǎn)介等等; 庫(kù)存有ID,名稱,數(shù)量等等。</p><p>  “庫(kù)存”可擁有 0-MANY 的“藥品”,而藥品同樣屬于0-MANY 的庫(kù)存。所以是多對(duì)多的關(guān)系</p><p>  根據(jù)以上的分析給出下面的概念結(jié)構(gòu)設(shè)計(jì)得E-R圖如圖4.3所示。</p>

85、<p>  圖4.8 用戶E-R圖</p><p>  圖4.9 藥品E-R圖</p><p>  圖4.10 供應(yīng)商E-R圖</p><p>  圖4.11 庫(kù)存E-R圖</p><p>  圖4.12 供應(yīng)商E-R圖</p><p>  圖4.12 職員E-R圖</p><p>

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

87、>  n</b></p><p><b>  n</b></p><p><b>  1</b></p><p>  圖4.13 實(shí)體聯(lián)系E-R圖</p><p>  4.3.2 數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)</p><p>  藥品管理管理系統(tǒng)主要涉及到4個(gè)表,即:

88、藥品信息表、藥品入庫(kù)表、藥品出庫(kù)表和庫(kù)存表。</p><p>  藥品信息表:這張表是用來(lái)存儲(chǔ)藥品信息的。藥品添加以后它的信息就會(huì)儲(chǔ)存到這張表中,其中包含:藥品編號(hào)、藥品名稱、化學(xué)名稱、規(guī)格、藥品類別、劑型、批號(hào)及廠商。其中藥品編號(hào)是主鍵,非空且唯一。其余信息可以為空,并在數(shù)據(jù)表建立的時(shí)候給他們相應(yīng)的規(guī)定好數(shù)據(jù)類型。</p><p>  藥品入庫(kù)表:這張表是用來(lái)存儲(chǔ)入庫(kù)表單信息的,所有入庫(kù)

89、單信息都包含在這張表中。包括:入庫(kù)單號(hào)、藥品編號(hào)、批號(hào)、入庫(kù)日期、有效日期、進(jìn)價(jià)、預(yù)售價(jià)、數(shù)量、整量單位、散量單位及驗(yàn)收人。其中入庫(kù)單號(hào)是主鍵,非空且唯一。</p><p>  藥品出庫(kù)表:這張表是用來(lái)存儲(chǔ)出庫(kù)表單信息的,所有出庫(kù)信息都包含在這張表單中。它的字段有:出庫(kù)單號(hào)、藥品編號(hào)、批號(hào)、數(shù)量、出庫(kù)日期及驗(yàn)收人。其中出庫(kù)單號(hào)是主鍵,非空且唯一。</p><p>  藥品庫(kù)存表:這張表是用

90、來(lái)存儲(chǔ)庫(kù)存信息的,所有初始化的庫(kù)存信息和出庫(kù)入庫(kù)信息改變后的信息都會(huì)被記錄下來(lái)。它字段有:庫(kù)存號(hào)、藥品編號(hào)、批號(hào)、藥品名稱、數(shù)量、整量單位、散量單位、入庫(kù)日期、有效日期、進(jìn)價(jià)、預(yù)售價(jià)、庫(kù)存下限及驗(yàn)收人。</p><p>  4.3.3 數(shù)據(jù)庫(kù)的物理設(shè)計(jì)</p><p>  數(shù)據(jù)庫(kù)設(shè)計(jì)有幾個(gè)范式,一般我們要做到的是第三范式,即數(shù)據(jù)表中沒(méi)有冗余字段以及同一個(gè)表中的字段沒(méi)有函數(shù)依賴關(guān)系,冗余字

91、段即在一個(gè)表中已經(jīng)保存過(guò)的信息,在另一個(gè)表中就不應(yīng)該存在,如果需要的話,可以通過(guò)表間的關(guān)聯(lián)來(lái)得到,函數(shù)依賴性就是一個(gè)表中的字段間不應(yīng)該有計(jì)算關(guān)系,如一個(gè)表中有單價(jià)字段、數(shù)量字段,就不應(yīng)該有一個(gè)總金額字段。如果程序運(yùn)行過(guò)程中需要總金額,可以實(shí)時(shí)計(jì)算。不過(guò)在一些較常用的表中,我們可以適當(dāng)?shù)乇A羧哂嘧侄?,這樣,在程序運(yùn)行過(guò)程中可以減少由于表間互相關(guān)聯(lián)而使用速度降低等問(wèn)題。這就是所謂的第四范式。數(shù)據(jù)表設(shè)計(jì)時(shí),最好不要使用用戶輸入的信息作為主鍵,

92、每一個(gè)數(shù)據(jù)表自己定義一個(gè)主鍵,添加信息是由程序自動(dòng)添加,這樣就可以減少數(shù)據(jù)更新時(shí)產(chǎn)生的錯(cuò)誤。表與表相關(guān)聯(lián)的外鍵最好是由程序自動(dòng)生成的主鍵,這樣數(shù)據(jù)庫(kù)就比較規(guī)范了。另外,數(shù)據(jù)表設(shè)計(jì)時(shí)一般都應(yīng)該有一些標(biāo)志字段,標(biāo)志字段可以定義成CHAR(1)或BIT型。建議實(shí)際應(yīng)用中定義成CHAR(1)字段可以存儲(chǔ)多種可能的狀態(tài),在最初設(shè)計(jì)時(shí),可能我們沒(méi)有考慮到的一些情況,在程序后來(lái)的開(kāi)發(fā)中,可以通過(guò)設(shè)計(jì)標(biāo)志字段為不同的 值來(lái)解決,這樣就避免了修改數(shù)據(jù)庫(kù)結(jié)

93、構(gòu)。</p><p>  數(shù)據(jù)庫(kù)初期設(shè)計(jì)時(shí)一定要謹(jǐn)慎,把所有可能的情況都考慮進(jìn)去,即使當(dāng)時(shí)沒(méi)有用到,也要將它留在數(shù)據(jù)庫(kù)中作為備用字段以便將來(lái)擴(kuò)充。</p><p>  程序一旦開(kāi)始編碼,就應(yīng)該盡量避免再修改數(shù)據(jù)庫(kù)。因?yàn)槿绻麛?shù)據(jù)庫(kù)結(jié)構(gòu)一旦改變,所有與修改的數(shù)據(jù)表相關(guān)的業(yè)務(wù)都有可能受到影響,而某些影響還很難看到,這樣就容易形成一個(gè)惡性循環(huán)。錯(cuò)誤越改越多,越改越亂,最終導(dǎo)致程序的失敗。PB的數(shù)據(jù)

94、窗口與其他語(yǔ)言的數(shù)據(jù)控件不一樣,它的很多東西是預(yù)編譯的。即使你一個(gè)模塊已經(jīng)調(diào)試無(wú)誤,但只要數(shù)據(jù)庫(kù)結(jié)構(gòu)改動(dòng)。相應(yīng)的模塊就一定要重新修改,否則一定會(huì)出問(wèn)題。</p><p>  藥品管理系統(tǒng)數(shù)據(jù)庫(kù)中各個(gè)表的設(shè)計(jì)結(jié)果如下面幾個(gè)表格所示。每個(gè)表格表示為數(shù)據(jù)庫(kù)中的一個(gè)表。</p><p>  表4.14 藥品信息表</p><p><b>  表4.15 用戶表&l

95、t;/b></p><p>  表4.16 供應(yīng)商表</p><p>  表4.17 銷售單表</p><p><b>  表4.18 職工表</b></p><p><b>  表4.19 貨存表</b></p><p>  第五章 編碼實(shí)現(xiàn)</p>

96、<p>  5.1 用戶登陸模塊</p><p>  用戶登陸界面如圖5.1所示</p><p>  圖5.1藥品登陸界面</p><p><b>  關(guān)鍵代碼如下:</b></p><p>  //顯示出圖形界面,Login.java</p><p>  public Login(

97、String msg) {</p><p>  super(msg);</p><p>  setLayout(new BorderLayout());</p><p>  login_message = new JTextField("用戶登陸");</p><p>  login_message.setEditable

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

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

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

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

102、(unameLabel);</p><p>  input.add(uname);</p><p>  input.add(pwdLabel);</p><p>  input.add(pwd);</p><p>  add(input,"Center");</p><p>  login.addA

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

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

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

106、);</p><p><b>  }</b></p><p><b>  }</b></p><p>  loginListener() {</p><p><b>  }</b></p><p><b>  } </b><

107、;/p><p>  //數(shù)據(jù)庫(kù)中檢查是使用UserDao.java</p><p>  public boolean login(String username,String password) {</p><p>  Connection conn = DB.getConn();</p><p>  Statement stmt = DB.ge

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

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

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

111、<p>  System.exit(-1);</p><p><b>  }</b></p><p>  return false;</p><p><b>  }</b></p><p>  5.2 用戶管理模塊</p><p>  用戶管理界面5.2所示。

112、</p><p>  圖5.2 用戶管理界面</p><p>  關(guān)鍵代碼如下:(點(diǎn)擊“續(xù)接”時(shí)系統(tǒng)執(zhí)行的操作)</p><p>  //UserDao.java</p><p><b>  //用戶注冊(cè)</b></p><p>  public boolean regeist(User user

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

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

115、t;<p>  stmt.executeUpdate(sql);</p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p>  JOptionPane.showMessageDialog(null, "添加失敗,您輸入的用戶已存在",&qu

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

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

118、;p>  Statement stmt = DB.getStatement(conn);</p><p>  String sql = "select * from user";</p><p>  String[] userlist = new String[128];</p><p>  System.out.println(sql);

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

120、s.getString("username");</p><p><b>  i++;</b></p><p><b>  }</b></p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</

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

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

123、 Statement stmt = DB.getStatement(conn);</p><p>  String sql = "delete from user where username = '" + username + "' and rank = 0";</p><p>  String[] userlist = new S

124、tring[]{};</p><p>  System.out.println(sql);</p><p><b>  try {</b></p><p>  stmt.executeUpdate(sql);</p><p>  } catch (SQLException e) {</p><p>

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論