藥品管理系統(tǒng)畢業(yè)設(shè)計(jì)說(shuō)明_第1頁(yè)
藥品管理系統(tǒng)畢業(yè)設(shè)計(jì)說(shuō)明_第2頁(yè)
藥品管理系統(tǒng)畢業(yè)設(shè)計(jì)說(shuō)明_第3頁(yè)
藥品管理系統(tǒng)畢業(yè)設(shè)計(jì)說(shuō)明_第4頁(yè)
藥品管理系統(tǒng)畢業(yè)設(shè)計(jì)說(shuō)明_第5頁(yè)
已閱讀5頁(yè),還剩39頁(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)介

.PAGE.XX工業(yè)大學(xué)畢業(yè)設(shè)計(jì)<論文>任務(wù)書(shū)課題名稱藥店管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)〔論文的主要內(nèi)容:一、進(jìn)行調(diào)研,了解、分析用戶對(duì)"藥店管理系統(tǒng)"的設(shè)計(jì)要求。二、熟練掌握一種程序設(shè)計(jì)語(yǔ)言,掌握其數(shù)據(jù)庫(kù)開(kāi)發(fā)、訪問(wèn)技術(shù)。三、根據(jù)課題要求,軟件完成如下功能:1,對(duì)系統(tǒng)用戶的增刪改查等操作的實(shí)現(xiàn);2,對(duì)職工的人事管理;3,對(duì)藥品的進(jìn)銷存;特殊情況的處理,還有根據(jù)用戶權(quán)限的不同設(shè)置模塊的功能開(kāi)放.四、要求軟件設(shè)計(jì)界面友好、使用方便,程序執(zhí)行安全、可靠。五、完成與設(shè)計(jì)內(nèi)容有關(guān)的外文資料翻譯,譯文約5000字。六、撰寫(xiě)畢業(yè)論文并提交設(shè)計(jì)軟件及清單一份。..摘要大家只要看了新聞,就可以了解到21世紀(jì)是信息的世紀(jì),信息化正以極快的速度取代傳統(tǒng)的效率低下的人工作業(yè)。隨著小型計(jì)算機(jī),微型計(jì)算機(jī)的成本的不斷下降,性能的不斷提升,使得計(jì)算機(jī)作為當(dāng)今最重要的信息產(chǎn)品,成為人民大眾必不可缺的工具。計(jì)算機(jī)技術(shù)已經(jīng)廣泛應(yīng)用于日常辦公,企業(yè)管理,文字處理、電子報(bào)表以及進(jìn)行簡(jiǎn)單的人事管理、財(cái)務(wù)管理等,大大提高了我們的工作效率,節(jié)省許多資源,使管理更加規(guī)范化,系統(tǒng)化,科學(xué)化。目前隨著計(jì)算機(jī)技術(shù)的發(fā)展和普及,各行各業(yè)的管理機(jī)構(gòu)開(kāi)始使用計(jì)算機(jī)處理大量信息。在我國(guó)藥品品種繁多,規(guī)模甚大,以往的手工記載、查詢操作容易出錯(cuò)且工作效率低,已經(jīng)不能適應(yīng)時(shí)代發(fā)展的要求,從管理的角度來(lái)看,對(duì)管理者會(huì)造成諸多的不便,還有可能疏忽一些細(xì)節(jié),讓不法商家逃脫罪責(zé)。所以,市場(chǎng)迫切需要一款簡(jiǎn)單實(shí)用的藥品管理系統(tǒng)。經(jīng)過(guò)前期的調(diào)研,在反復(fù)的修改和綜合考量后,筆者覺(jué)定使用JAVASWING技術(shù),ECLIPSEJ2SE開(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)有許多優(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è)的管理需求。但由于時(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ā)布到ChinaJavaWorld上開(kāi)源供大家免費(fèi)下載使用和學(xué)習(xí)。關(guān)鍵詞:JAVASWING、MYSQL5.0、JDBC、藥品管理管理系統(tǒng)、藥品管理AbstractIfyouseethenews,theycanunderstandthe21stcenturyisthecenturyofinformation,Informationtechnologyiswithgreatspeedinsteadoftraditionalinefficientartificiallyassignments.Withsmallcomputer,microcomputercostofdeclining,performance,makesthecomputerasthemostimportantinformationproduct,becomeindispensableforthemassesoftools.Computertechnologyhasbeenwidelyusedindailyoffice,enterprisemanagement,wordprocessing,spreadsheetsandsimplepersonnelmanagement,financialmanagement,andgreatlyimproveourworkefficiency,savingmanyresources,makemanagementstandardization,systematization,morescientific.Nowwiththedevelopmentofcomputertechnologyandpopularizationofthemanagementinstitution,tencentstartedusingcomputerprocessingofinformation.Inourcountry,thegreatvarietyofscale,pastrecords,queryoperationmanualandlowworkingefficiencyerror-prone,alreadycannotadapttothedevelopmentofTheTimes,frommanagementpointofview,themanagerwillcausemanyinconvenience,theremaybesomedetails,lettheillegalbusinessmentoescape.Therefore,asimpleandpracticaldrugmanagementsystemisverymuchinlinewiththeneedsofthemarket.Throughtheresearchonthemodification,andcomprehensiveconsiderationsrepeatedly,theauthordeterminedafteruseJAVASWINGtechnology,MYSQL5.0ECLIPSEJ2SEJAVAdevelopmentplatform,thedrugadministrationsystemdatabasedevelopment.Drugmanagementsystemisdesigned,makeenterprisecanhavemoreefficientmanagementtools,enterpriseinthe21stcenturythefiercecompetition.Foreignmanagementsystemhasmanyexcellentexperience,butnotcompletelyaccordwiththenationalconditionofourcountry,China'svastdrugsalesenterpriseisdistributedinthesmallandmedium-sizedenterprisesnationwidesales.Therefore,thedevelopmentofmedicinemanagementsystemfunctionisabsorbedforeignoutstandingmanagementtoolsandexcellentfunction,theinnovationofourcustomersdemandmoreaccordwithacomprehensivefunctionsofinformationmanagementsystem.Drugmanagementsystemisdividedintofivemodules,respectively,theworkersystemuserinformationmanagementmodule,stockmanagementmodule,modules,stocktransfersalesmanagementmodulemanagementmodule.Thefivefunctionmoduledesignisreasonable,comprehensivefunctions,andfriendlyinterface,verylargepharmaceuticalsalesinconformitywiththerequirementsoftheenterprisemanagement.Butduetolackoftimeandthepracticeofthejob,systemisnotperfect,andsomematureproductsonthemarketisstillhassomeshortcomings.Futureworkwillusetheresttime,learningnewtechnologyanddesignconceptofdrugadministrationsystem,furtherdevelopmentiteration,thesecondgoalinthenextthreemonthsaremorestandardcode,theinterfaceoftheprogramcanbemorebeautiful,expandingfurtherstrengthens,morewithmarket,andthenreleasedtotheChinaopenforWorldJavaonlearningandusingfreedownload.Keywords:JavaSwing、Mysql5.5、JDBC、MedMgrSystem、Medicinesales&mgr目錄第一章概述51.1系統(tǒng)開(kāi)發(fā)背景和意義51.2開(kāi)發(fā)環(huán)境5第二章需求分析72.1任務(wù)概述72.2功能需求72.3性能需求72.4數(shù)據(jù)描述<數(shù)據(jù)流圖+數(shù)據(jù)字典>8第三章系統(tǒng)總體設(shè)計(jì)143.1業(yè)務(wù)流程143.2系統(tǒng)功能模塊圖143.3系統(tǒng)流程圖16第四章詳細(xì)設(shè)計(jì)184.1程序流程圖184.2程序輸入輸出描述234.2.1用戶管理模塊234.2.2職員管理模塊234.2.3銷售管理模塊234.2.4進(jìn)貨管理模塊234.2.5貨存轉(zhuǎn)移模塊234.2.6財(cái)務(wù)信息模塊234.3數(shù)據(jù)庫(kù)的設(shè)計(jì)244.3.1數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)設(shè)計(jì)和ER圖244.3.2數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)264.3.3數(shù)據(jù)庫(kù)的物理設(shè)計(jì)27第五章編碼實(shí)現(xiàn)285.1用戶登陸模塊315.2用戶管理模塊325.3銷售管理模塊375.4進(jìn)貨管理模塊395.5職員管理模塊435.6壞貨轉(zhuǎn)移模塊45第六章測(cè)試分析報(bào)告476.1什么是軟件測(cè)試476.2軟件測(cè)試的目的476.3測(cè)試計(jì)劃和要點(diǎn)476.3.1藥品以及藥品管理模塊測(cè)試要點(diǎn) 476.3.2銷售管理測(cè)試要點(diǎn)476.3.3進(jìn)貨管理測(cè)試要點(diǎn)476.3.4職工信息測(cè)試要點(diǎn)466.4部分測(cè)試圖476.5測(cè)試結(jié)論49總結(jié)50參考文獻(xiàn)51附錄:部分程序代碼52第一章概述如何利用現(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ù)字化。盡量采用現(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ù)的添加,刪除,修改等操作。1.1系統(tǒng)開(kāi)發(fā)背景和意義此次畢業(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ō),無(wú)疑是一個(gè)非常好地鍛煉機(jī)會(huì)。考慮到該系統(tǒng)屬于一個(gè)規(guī)模較大、較為復(fù)雜的數(shù)據(jù)庫(kù)系統(tǒng),對(duì)計(jì)算機(jī)的性能要求較高,決定使用MyEclipse7.0開(kāi)發(fā)此系統(tǒng)。此次畢業(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ò)程。同時(shí)對(duì)編程、數(shù)據(jù)庫(kù)調(diào)用、結(jié)構(gòu)化查詢語(yǔ)言STRUCTUREDQUERYLANGUAGE等方面是一個(gè)比較綜合的考驗(yàn)。讓我在此過(guò)程中得到很好的鍛煉。隨著醫(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)的效益了。醫(yī)院的售藥機(jī)構(gòu)需要通過(guò)計(jì)算機(jī)提高自已工作效率、對(duì)藥品實(shí)現(xiàn)進(jìn)銷存管理和職工管理,提高經(jīng)濟(jì)效益本次畢業(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è)成功的案例而努力。1.2開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境的選擇會(huì)影響到數(shù)據(jù)庫(kù)的設(shè)計(jì),所以在這里給出圖書(shū)管理系統(tǒng)開(kāi)發(fā)與運(yùn)行環(huán)境的選擇如下:開(kāi)發(fā)環(huán)境:Window7旗艦版開(kāi)發(fā)工具:MyEclipse7.0數(shù)據(jù)庫(kù)引擎:MyISAM第二章需求分析2.1任務(wù)概述藥品管理系統(tǒng)是為了加強(qiáng)藥品管理,以便更好地對(duì)藥品進(jìn)行監(jiān)督和管理,對(duì)售藥機(jī)構(gòu)人員的工作,起到了高效性、準(zhǔn)確性管理而開(kāi)發(fā)。本系統(tǒng)主要包含系統(tǒng)用戶管理模塊、藥品管理模塊、銷售管理模塊、進(jìn)貨管理模塊、存貨轉(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)行定期的更新和刪除等管理。2.2功能需求一 功能劃分藥品管理系統(tǒng)分為系統(tǒng)用戶管理、藥品銷售管理、藥品庫(kù)存管理、進(jìn)貨管理、職工管理、查詢與報(bào)表分析。二 功能描述〔1系統(tǒng)用戶管理:允許添加刪除用戶〔只有管理員才可以修改,任意權(quán)限的用戶允許更改自己的密碼,添加或刪除職工,修改職工,對(duì)藥品進(jìn)行銷售和庫(kù)存的控制的資料?!?藥品進(jìn)貨管理:當(dāng)企業(yè)需要增加新的銷售藥品時(shí),利用此模塊可以添加新的藥品信息,刪除舊的藥品信息,修改已存在的藥品信息,提供所有與藥品相關(guān)的各類信息,初始化庫(kù)存,初始化供應(yīng)商相關(guān)信息。〔3藥品銷售管理:藥品統(tǒng)一的價(jià)格銷售,對(duì)已查詢銷售單,可以對(duì)藥品的價(jià)格進(jìn)行控制?!?庫(kù)存轉(zhuǎn)移管理:實(shí)際生活中容易發(fā)生藥品過(guò)期和損毀,此時(shí)利用此模塊對(duì)過(guò)期的藥品和損毀的藥品進(jìn)行清理?!?職工管理:

對(duì)藥品企業(yè)進(jìn)行職工的管理,對(duì)職工進(jìn)行增加,修改,刪除,查詢等操作?!?查詢與報(bào)表分析:此功能并未單獨(dú)作為一個(gè)模塊,而是分布在各個(gè)模塊中,各個(gè)模塊產(chǎn)生業(yè)務(wù)時(shí),可以在各模塊的相應(yīng)功能按鈕上選擇查詢。2.3性能需求為了保證系統(tǒng)能夠長(zhǎng)期、安全、穩(wěn)定、可靠、高效的運(yùn)行,藥品管理系統(tǒng)應(yīng)該滿足以下的性能需求:1、系統(tǒng)處理的準(zhǔn)確性和及時(shí)性系統(tǒng)處理的準(zhǔn)確性和及時(shí)性是系統(tǒng)的必要性能。在系統(tǒng)設(shè)計(jì)和開(kāi)發(fā)過(guò)程中,要充分考慮系統(tǒng)當(dāng)前和將來(lái)可能承受的工作量,使系統(tǒng)的處理能力和響應(yīng)時(shí)間能夠滿足學(xué)校對(duì)信息處理的需求。2、系統(tǒng)的開(kāi)放性和系統(tǒng)的可擴(kuò)充性藥品管理系統(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)完成,既系統(tǒng)應(yīng)是一個(gè)開(kāi)放系統(tǒng),只要符合一定的規(guī)范,可以簡(jiǎn)單的加入和減少系統(tǒng)的模塊,配置系統(tǒng)的硬件。通過(guò)軟件的修補(bǔ)、替換完成系統(tǒng)的升級(jí)和更新?lián)Q代。3、系統(tǒng)的易用性和易維護(hù)性圖書(shū)管理系統(tǒng)是直接面對(duì)使用人員的,而使用人員往往對(duì)計(jì)算機(jī)并不時(shí)非常熟悉。這就要求系統(tǒng)能夠提供良好的用戶接口,易用的人機(jī)交互界面。要實(shí)現(xiàn)這一點(diǎn),就要求系統(tǒng)應(yīng)該盡量使用用戶熟悉的術(shù)語(yǔ)和中文信息的界面;針對(duì)用戶可能出現(xiàn)的使用問(wèn)題,要提供足夠的在線幫助,縮短用戶對(duì)系統(tǒng)熟悉的過(guò)程。4、系統(tǒng)的標(biāo)準(zhǔn)性系統(tǒng)在設(shè)計(jì)開(kāi)發(fā)使用過(guò)程中都要涉及到很多計(jì)算機(jī)硬件、軟件。所有這些都要符合主流國(guó)際、國(guó)家和行業(yè)標(biāo)準(zhǔn)。5、系統(tǒng)的先進(jìn)性目前計(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)品。6、系統(tǒng)的響應(yīng)速度藥品管理系統(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)題而影響工作效率。2.4數(shù)據(jù)描述<數(shù)據(jù)流圖+數(shù)據(jù)字典>經(jīng)過(guò)調(diào)研,我們發(fā)現(xiàn),一個(gè)藥店最基本的工作流程是進(jìn)貨和銷售。消費(fèi)者選擇藥店進(jìn)行購(gòu)物,藥店通過(guò)我們的藥店管理系統(tǒng)進(jìn)行藥品的銷售及銷售后的庫(kù)存整理。流程簡(jiǎn)介:要求A.為每種藥品設(shè)置編號(hào),輸入藥品的信息,以便于管理人員對(duì)藥品進(jìn)行管理,也便于核對(duì)修改B.為職工設(shè)置庫(kù),便于操作員對(duì)職工進(jìn)行管理C.為供貨商設(shè)置庫(kù),便于操作員及時(shí)與供貨商聯(lián)系貨源D.設(shè)置系統(tǒng)權(quán)限E.藥品價(jià)格分為進(jìn)貨價(jià)、零售價(jià)和批發(fā)價(jià)目標(biāo)A.使藥品銷售的信息能及時(shí)得到統(tǒng)計(jì)、查詢B.方便操作員的操作,達(dá)到簡(jiǎn)單、易用的效果C.提高操作員的工作效率D.提高操作的正確率E.提高系統(tǒng)的可靠性及安全性管理人員顧客藥品管理系統(tǒng)管理人員顧客藥品管理系統(tǒng)圖2.1藥品管理系統(tǒng)基本流程以上便是我們這個(gè)藥品管理系統(tǒng)的總體數(shù)據(jù)流程圖,通過(guò)上述的這幅圖片,我們可以清楚地了解到該系統(tǒng)的大致情況,有兩個(gè)數(shù)據(jù)源/終點(diǎn),分別是客戶、用戶。而該系統(tǒng)進(jìn)一步地功能顯示在下圖中可以得到解釋??刂菩畔⒖刂菩畔⒐芾砣藛T管理人員統(tǒng)計(jì)信息統(tǒng)計(jì)信息銷售統(tǒng)計(jì)管理銷售統(tǒng)計(jì)管理進(jìn)出貨管理職工管理進(jìn)出貨管理職工管理圖2.2管理人員的數(shù)據(jù)流圖銷售人員通過(guò)輸入藥品編號(hào),查出系統(tǒng)中存在的藥品,通過(guò)醫(yī)生看病以及配藥,考慮所售藥品的價(jià)格,將病人所要購(gòu)買(mǎi)的藥品列入藥品清單中,最后的銷售入庫(kù)存系統(tǒng)將此次的交易數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中,最終完成交易,將藥品交給病人手中。經(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è)能夠成功的軟件。首先是藥品信息系統(tǒng):在這個(gè)模塊中由用戶或管理員輸入所有藥品的基本信息即藥品的初始化。第二個(gè)是藥品庫(kù)存管理系統(tǒng):在這里這個(gè)系統(tǒng)有兩個(gè)功能,一是查出現(xiàn)有藥庫(kù)中的所有過(guò)期藥品,更新現(xiàn)有的數(shù)據(jù)庫(kù);二是實(shí)現(xiàn)藥品入庫(kù),避免藥品空缺造成的銷售問(wèn)題。第三個(gè)是供應(yīng)商管理系統(tǒng):供應(yīng)商是藥品進(jìn)貨時(shí),從何處購(gòu)得的一種記錄方法,通過(guò)供應(yīng)商可以方便的再次進(jìn)貨。最后一個(gè)是藥品銷售系統(tǒng):在這個(gè)模塊中,管理人員可以很方便地對(duì)銷售情況進(jìn)行查看,顯示當(dāng)天的銷售金額并備份所有的數(shù)據(jù)庫(kù)表。藥品管理系統(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ì)的分解。反饋結(jié)果反饋結(jié)果購(gòu)藥要求消費(fèi)者購(gòu)藥要求消費(fèi)者購(gòu)藥及退貨購(gòu)藥及退貨圖2.3消費(fèi)者的數(shù)據(jù)流圖消費(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)者付款拿貨。銷售管理完成。當(dāng)消費(fèi)者發(fā)現(xiàn)購(gòu)買(mǎi)的藥品不符合要求,管理者在認(rèn)真核實(shí)之后,予以退款,發(fā)生退貨。此時(shí)管理者要在系統(tǒng)的壞貨轉(zhuǎn)移中,將不合格藥品轉(zhuǎn)移到不合格倉(cāng)庫(kù)中。圖2.4系統(tǒng)數(shù)據(jù)流圖圖2.5詳細(xì)數(shù)據(jù)流圖2.4.3數(shù)據(jù)字典數(shù)據(jù)流項(xiàng)目:1.名字:用戶信息<admin>別名:無(wú)流量:每天上十次來(lái)源:用戶基本信息表去向:核對(duì)用戶信息定義:用戶信息=用戶名+用戶密碼+權(quán)限2.名字:藥品信息別名:無(wú)流量:每天上十次來(lái)源:藥品表去向:核對(duì)藥品庫(kù)存初始化、核對(duì)出庫(kù)信息、核對(duì)入庫(kù)信息定義:藥品信息=藥品編號(hào)+藥品名稱+藥品建成+藥品規(guī)格+藥品產(chǎn)地+批號(hào)+進(jìn)價(jià)+批發(fā)價(jià)+零售價(jià)+供應(yīng)商+類別+有效期+備注.3.名字:庫(kù)存信息別名:無(wú)流量:每天上十次來(lái)源:庫(kù)存表去向:核對(duì)藥品庫(kù)存查詢、核對(duì)進(jìn)貨單、核對(duì)銷售單定義:庫(kù)存信息=ID+藥品編號(hào)+藥品名稱+供應(yīng)商編號(hào)+單價(jià)+數(shù)量+入庫(kù)日期+倉(cāng)庫(kù)類別.4.名字:供應(yīng)商信息別名:無(wú)流量:每天上十次來(lái)源:供應(yīng)商表去向:反饋給用戶,核對(duì)進(jìn)貨單定義:供應(yīng)商信息=ID+供貨商編號(hào)+供貨商名+地區(qū)+備注5.名字:銷售單單信息別名:無(wú)流量:每天上十次來(lái)源:銷售單單表去向:反饋給用戶定義:銷售單信息=ID+藥品編號(hào)+藥品名稱+數(shù)量+銷售日期+銷售數(shù)量+銷售收入2.4.4存儲(chǔ)條目:1.文件名:用戶基本信息表別名:無(wú)存儲(chǔ)方式:隨機(jī)存儲(chǔ)存儲(chǔ)頻率:每天上十次定義:用戶基本信息表=用戶名+用戶密碼+權(quán)限2.文件名:藥品表別名:無(wú)存儲(chǔ)方式:隨機(jī)存儲(chǔ)存儲(chǔ)頻率:每天上十次定義:藥品表=藥品編號(hào)+藥品名稱+藥品建成+藥品規(guī)格+藥品產(chǎn)地+批號(hào)+進(jìn)價(jià)+批發(fā)價(jià)+零售價(jià)+供應(yīng)商+類別+有效期+備注.3.數(shù)據(jù)項(xiàng)條目:項(xiàng)名:藥品類型別名:無(wú)描述:用戶輸入試題的類型定義:藥品類型=所有藥品規(guī)定類型位置:藥品表4.處理?xiàng)l目:1.處理名:藥品添加處理邏輯:用戶添加藥品信息執(zhí)行頻率:每天上十次2.處理名:庫(kù)存初始化處理邏輯:用戶初始化藥品庫(kù)存表執(zhí)行頻率:進(jìn)貨上十次3.處理名:入庫(kù)處理邏輯:用戶添加進(jìn)貨單執(zhí)行頻率:每天上十次4.處理名:銷售處理邏輯:用戶添加銷售單執(zhí)行頻率:每天上十次第三章系統(tǒng)總體設(shè)計(jì)3.1業(yè)務(wù)流程根據(jù)需求分析的得到的現(xiàn)行業(yè)務(wù)處理流程,在用戶反復(fù)研究后,首先確定目標(biāo)系統(tǒng)的業(yè)務(wù)流程,其處理流程如圖3.1。用戶驗(yàn)證藥品登記管理員用戶驗(yàn)證藥品登記管理員 登陸 合法用戶 登記后的 藥品銷售和庫(kù)存整理銷售和庫(kù)存整理管理員 退出登陸管理員圖3.1藥品管理系統(tǒng)的業(yè)務(wù)流程針對(duì)業(yè)務(wù)流程,現(xiàn)具體描述其功能如下:1.用戶登錄:系統(tǒng)對(duì)用戶合法性進(jìn)行檢查。2.藥品入庫(kù):對(duì)新購(gòu)進(jìn)的藥品分類進(jìn)行編號(hào),并把藥品基本信息錄入計(jì)算機(jī)。3.藥品銷售:對(duì)已入庫(kù)的藥品,銷售人員可以進(jìn)行銷售。4.藥品進(jìn)貨:對(duì)已入庫(kù)的藥品,管理人員可以進(jìn)行貨存控制。5.存貨轉(zhuǎn)移:對(duì)于已經(jīng)過(guò)期或者損壞的藥品,可以進(jìn)行處理。6.信息查詢:對(duì)藥品的各種變動(dòng)情況的查詢。7.職員管理:對(duì)藥店的職工進(jìn)行管理。3.2系統(tǒng)功能模塊圖藥品管理系統(tǒng)模塊是用JAVASWING進(jìn)行設(shè)計(jì),MYSQL作為后臺(tái)數(shù)據(jù)庫(kù)管理系統(tǒng)。系統(tǒng)管理模塊分為用戶登錄、進(jìn)貨管理、銷售管理、職工管理和壞貨轉(zhuǎn)移;用戶管理模塊主要是新增用戶,修改用戶,查詢用戶,刪除用戶;進(jìn)貨管理模塊主要有供應(yīng)商創(chuàng)始,進(jìn)貨,進(jìn)貨單查詢,藥品創(chuàng)始;銷售管理模塊主要有銷售,修改價(jià)目表,銷售單查詢;職工管理有添加職工,處理職工。系統(tǒng)體系結(jié)構(gòu)框圖如下圖:藥品管理系統(tǒng)藥品管理系統(tǒng)銷售管理進(jìn)貨管理壞貨轉(zhuǎn)移職工管理用戶管理銷售管理進(jìn)貨管理壞貨轉(zhuǎn)移職工管理用戶管理過(guò)期處理?yè)p毀處理處理職工添加職工銷售單查詢修改價(jià)目表銷售藥品創(chuàng)始進(jìn)貨單查詢進(jìn)貨供應(yīng)商創(chuàng)始刪除用戶修改用戶新增用戶查詢用戶過(guò)期處理?yè)p毀處理處理職工添加職工銷售單查詢修改價(jià)目表銷售藥品創(chuàng)始進(jìn)貨單查詢進(jìn)貨供應(yīng)商創(chuàng)始刪除用戶修改用戶新增用戶查詢用戶圖3.2藥品管理系統(tǒng)功能模塊圖3.3系統(tǒng)流程圖依據(jù)軟件工程的基本原理,綜合以上分析給出系統(tǒng)流程圖如圖3.4所示。用戶登陸用戶登陸藥品創(chuàng)始藥品創(chuàng)始庫(kù)存創(chuàng)始庫(kù)存創(chuàng)始進(jìn)貨登陸進(jìn)貨登陸銷售銷售退出退出圖3.2系統(tǒng)的處理流程圖說(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)。第四章詳細(xì)設(shè)計(jì)4.1程序流程圖依據(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ì)的加以描述。本系統(tǒng)采用支持面向?qū)ο蟮腅clipse作為開(kāi)發(fā)工具,運(yùn)用了J2SE的SWing的技術(shù),更加的方便了程序員的工作。程序?qū)ο到y(tǒng)配置要求較高。在此給出軟件系統(tǒng)的主要模塊,如圖4.1所示。職工管理銷售管理進(jìn)貨管理壞貨轉(zhuǎn)移用戶管理職工管理銷售管理進(jìn)貨管理壞貨轉(zhuǎn)移用戶管理圖4.1主程序模塊圖根據(jù)以上主程序的模塊圖,我們可以得出下面的關(guān)于各個(gè)模塊的程序流程圖,如圖4.2所示。開(kāi)始開(kāi)始用戶類型用戶類型管理員系統(tǒng)管理員管理員系統(tǒng)管理員職工管理壞貨轉(zhuǎn)移進(jìn)貨管理銷售管理用戶管理職工管理壞貨轉(zhuǎn)移進(jìn)貨管理銷售管理用戶管理退出系統(tǒng)退出系統(tǒng)結(jié)束結(jié)束圖4.2總體流程圖說(shuō)明:用戶登陸系統(tǒng)時(shí),系統(tǒng)判斷用戶的級(jí)別,如果為系統(tǒng)管理員,則可以進(jìn)行用戶的用戶管理,如果是管理員,則可以進(jìn)行相應(yīng)的銷售管理,進(jìn)貨管理,壞貨轉(zhuǎn)移,職工管理,管理員點(diǎn)擊退出按鈕時(shí),退出系統(tǒng)。用戶登陸用戶登陸 失敗用戶核對(duì)用戶核對(duì) 操作成功成功用戶管理用戶管理用戶管理操作用戶管理操作圖4.3用戶登陸流程說(shuō)明:用戶根據(jù)已知的用戶名和密碼登錄系統(tǒng),只有登錄成功才能進(jìn)行系列的用戶管理、庫(kù)存管理、銷售管理,職工管理的操作。用戶用戶 登陸藥品添加藥品添加 錄入藥品核對(duì)藥品信息 失敗核對(duì)藥品信息藥品表 成功藥品表成功圖4.4藥品創(chuàng)始流程用戶用戶 登陸庫(kù)存管理庫(kù)存管理 輸入庫(kù)存 庫(kù)存創(chuàng)始 操作成功庫(kù)存創(chuàng)始 操作失敗成功庫(kù)存表庫(kù)存表圖4.5存貨創(chuàng)始流程用戶用戶登陸銷售管理銷售管理 操作失敗 銷售單錄入核對(duì)信息核對(duì)信息 操作成功成功庫(kù)存表庫(kù)存表圖4.6銷售流程用戶用戶 登陸壞貨轉(zhuǎn)移壞貨轉(zhuǎn)移核對(duì)信息 錄入壞貨信息核對(duì)信息 操作失敗 操作成功 成功庫(kù)存表庫(kù)存表圖4.7壞貨轉(zhuǎn)移流程說(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)整。用戶用戶用戶 登陸職員管理職員管理核對(duì)信息 錄入職員信息核對(duì)信息 操作成功 成功職員列表 失敗職員列表圖4.7職員管理說(shuō)明:管理員通過(guò)職工管理模塊進(jìn)行職工的管理,添加職工后,錄入到職員列表中。4.2程序輸入輸出描述4.2.1用戶登陸模塊1.輸入項(xiàng)目:輸入用戶名及密碼。2.輸出項(xiàng)目:打開(kāi)系統(tǒng)。4.2.2用戶管理模塊1.輸入項(xiàng)目:與用戶相關(guān)的所有信息。2.輸出項(xiàng)目:操作結(jié)果的顯示,出錯(cuò)彈出對(duì)話框。4.2.3銷售管理模塊1.輸入項(xiàng)目:選擇藥品編號(hào),藥品的進(jìn)銷價(jià)格。2.輸出項(xiàng)目:操作結(jié)果的顯示,出錯(cuò)彈出對(duì)話框。4.2.4進(jìn)貨管理模塊1.進(jìn)貨項(xiàng)目:供應(yīng)商的詳細(xì)信息,倉(cāng)庫(kù)的詳細(xì)信息,藥品的數(shù)量。2.輸出項(xiàng)目:藥品的有關(guān)資料的顯示,進(jìn)貨單列表4.2.5壞貨管理模塊1.輸入項(xiàng)目:發(fā)生意外無(wú)法使用的藥品編號(hào)。2.輸出項(xiàng)目:操作結(jié)果的顯示。4.2.6職工管理模塊1.輸入項(xiàng)目:職工的詳細(xì)信息。2.輸出項(xiàng)目:根據(jù)用戶的輸入顯示相應(yīng)的結(jié)果。4.3數(shù)據(jù)庫(kù)的設(shè)計(jì)4.3.1數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)設(shè)計(jì)和ER圖在需求分析階段已完成該系統(tǒng)所有的數(shù)據(jù)分析。根據(jù)該階段所建立的概念模型,已經(jīng)得出滿足系統(tǒng)設(shè)計(jì)要求的幾個(gè)關(guān)系描述,該階段的主要工作就是把前一階段的成果轉(zhuǎn)化為具體的數(shù)據(jù)庫(kù)。概念結(jié)構(gòu)設(shè)計(jì)就是要找出實(shí)體和他們之間的聯(lián)系,去除非本質(zhì)的東西。實(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)系表,將"藥品"和"庫(kù)存"聯(lián)系起來(lái)。

在找出實(shí)體后,我們要根據(jù)分析來(lái)定義實(shí)體的屬性,就是表的列。比如藥品有ID,名稱,進(jìn)價(jià),銷價(jià),簡(jiǎn)介等等;庫(kù)存有ID,名稱,數(shù)量等等。"庫(kù)存"可擁有0-MANY的"藥品",而藥品同樣屬于0-MANY的庫(kù)存。所以是多對(duì)多的關(guān)系根據(jù)以上的分析給出下面的概念結(jié)構(gòu)設(shè)計(jì)得E-R圖如圖4.3所示。用戶表用戶表權(quán)限權(quán)限用戶名用戶名用戶名用戶名圖4.8用戶E-R圖有效期有效期零售商別名零售商別名藥品表零售價(jià)藥品表零售價(jià)ID批發(fā)價(jià)ID批發(fā)價(jià)藥品名藥品名備注進(jìn)價(jià)產(chǎn)地備注進(jìn)價(jià)產(chǎn)地規(guī)格類別規(guī)格類別圖4.9藥品E-R圖供應(yīng)商供應(yīng)商備注備注地區(qū)編號(hào)地區(qū)編號(hào)供應(yīng)商名供應(yīng)商名圖4.10供應(yīng)商E-R圖庫(kù)存表庫(kù)存表藥品名藥品編號(hào)藥品名藥品編號(hào)零售價(jià)零售價(jià)數(shù)量供應(yīng)商編號(hào)數(shù)量供應(yīng)商編號(hào)圖4.11庫(kù)存E-R圖價(jià)格銷售單價(jià)格銷售單銷售單編號(hào)銷售單編號(hào)數(shù)量數(shù)量藥品名藥品ID藥品名藥品ID圖4.12供應(yīng)商E-R圖職工表職工表職工號(hào)地址職工號(hào)地址證件號(hào)證件號(hào)性別職工名性別職工名圖4.12職員E-R圖零售商有效期規(guī)格產(chǎn)地別名零售商有效期規(guī)格產(chǎn)地別名ID進(jìn)價(jià)ID進(jìn)價(jià)類別零售價(jià)類別零售價(jià)批發(fā)價(jià)藥品表批發(fā)價(jià)藥品表備注藥品名備注藥品名n供貨銷售單編號(hào)1供貨銷售單編號(hào)備注備注庫(kù)存初始化地區(qū)藥品ID m庫(kù)存初始化地區(qū)藥品ID銷售單供應(yīng)商藥品名銷售單供應(yīng)商藥品名供應(yīng)商名 m供應(yīng)商名銷售進(jìn)貨編號(hào)價(jià)格 n銷售進(jìn)貨編號(hào)價(jià)格數(shù)量n數(shù)量庫(kù)存表 n庫(kù)存表 1藥品編號(hào)藥品編號(hào)零售價(jià)數(shù)量藥品名供應(yīng)商編號(hào)零售價(jià)數(shù)量藥品名供應(yīng)商編號(hào)圖4.13實(shí)體聯(lián)系E-R圖4.3.2數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)藥品管理管理系統(tǒng)主要涉及到4個(gè)表,即:藥品信息表、藥品入庫(kù)表、藥品出庫(kù)表和庫(kù)存表。藥品信息表:這張表是用來(lái)存儲(chǔ)藥品信息的。藥品添加以后它的信息就會(huì)儲(chǔ)存到這張表中,其中包含:藥品編號(hào)藥品名稱化學(xué)名稱、規(guī)格、藥品類別、劑型、批號(hào)及廠商。其中藥品編號(hào)是主鍵,非空且唯一。其余信息可以為空,并在數(shù)據(jù)表建立的時(shí)候給他們相應(yīng)的規(guī)定好數(shù)據(jù)類型。藥品入庫(kù)表:這張表是用來(lái)存儲(chǔ)入庫(kù)表單信息的,所有入庫(kù)單信息都包含在這張表中。包括:入庫(kù)單號(hào)藥品編號(hào)批號(hào)入庫(kù)日期、有效日期、進(jìn)價(jià)、預(yù)售價(jià)、數(shù)量、整量單位、散量單位及驗(yàn)收人。其中入庫(kù)單號(hào)是主鍵,非空且唯一。藥品出庫(kù)表:這張表是用來(lái)存儲(chǔ)出庫(kù)表單信息的,所有出庫(kù)信息都包含在這張表單中。它的字段有:出庫(kù)單號(hào)、藥品編號(hào)、批號(hào)、數(shù)量、出庫(kù)日期及驗(yàn)收人。其中出庫(kù)單號(hào)是主鍵,非空且唯一。藥品庫(kù)存表:這張表是用來(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)收人。4.3.3數(shù)據(jù)庫(kù)的物理設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)有幾個(gè)范式,一般我們要做到的是第三范式,即數(shù)據(jù)表中沒(méi)有冗余字段以及同一個(gè)表中的字段沒(méi)有函數(shù)依賴關(guān)系,冗余字段即在一個(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í),最好不要使用用戶輸入的信息作為主鍵,每一個(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é)構(gòu)。數(shù)據(jù)庫(kù)初期設(shè)計(jì)時(shí)一定要謹(jǐn)慎,把所有可能的情況都考慮進(jìn)去,即使當(dāng)時(shí)沒(méi)有用到,也要將它留在數(shù)據(jù)庫(kù)中作為備用字段以便將來(lái)擴(kuò)充。程序一旦開(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ù)窗口與其他語(yǔ)言的數(shù)據(jù)控件不一樣,它的很多東西是預(yù)編譯的。即使你一個(gè)模塊已經(jīng)調(diào)試無(wú)誤,但只要數(shù)據(jù)庫(kù)結(jié)構(gòu)改動(dòng)。相應(yīng)的模塊就一定要重新修改,否則一定會(huì)出問(wèn)題。藥品管理系統(tǒng)數(shù)據(jù)庫(kù)中各個(gè)表的設(shè)計(jì)結(jié)果如下面幾個(gè)表格所示。每個(gè)表格表示為數(shù)據(jù)庫(kù)中的一個(gè)表。表4.14藥品信息表Medicinemid<PK>Varchar<8>N藥品編號(hào)mname Varchar<40>N藥品名稱mshortnameVarchar<10>Y藥品建成mnorsVarchar<4>N規(guī)格mareaVarchar<40>N藥品產(chǎn)地mlotVarchar<10>N批號(hào)minprifloatN0進(jìn)價(jià)mwprifloatN0批發(fā)價(jià)mprifloatN0零售價(jià)MconVarchar<8>N供應(yīng)商McateVarchar<20>N類別Musetimedecimal<10,0>N有效期memoVarchar<40>Y備注表4.15用戶表UserUsername<PK>Varchar<20>N用戶名password Varchar<8>N密碼rankintN1權(quán)限表4.16供應(yīng)商表Supplierspid<PK>Varchar<8>N供應(yīng)商編號(hào)spnameVarchar<8>N供應(yīng)商名SpareaVarchar<8>N地區(qū)SpmenoVarchar<40>Y備注表4.17銷售單表SalesOrderSoid<PK>Varchar<8>N銷售單編號(hào)mid Varchar<8>N藥品編號(hào)MnameVarchar<40>N藥品名SnumintN0數(shù)量pricedoubleN0單價(jià)表4.18職工表StaffStaffid<PK>Varchar<8>N職工編號(hào)staffnameVarchar<20>N職工名稱Staffsexvarchar<2>N性別stafftelvarchar<12>Nstaffaddvarchar<40>Y地址Staffcardvarchar<40>N身份證staffzipvarchar<6>Y備注表4.19貨存表StockMid<PK>Varchar<8>N職工編號(hào)mnameVarchar<20>N職工名稱mpricefloatN性別mnumintNspidvarchar<8>Y地址timedatetimeN身份證statusintN存貨類別第五章編碼實(shí)現(xiàn)5.1用戶登陸模塊用戶登陸界面如圖5.1所示圖5.1藥品登陸界面關(guān)鍵代碼如下://顯示出圖形界面,Login.javapublicLogin<Stringmsg>{ super<msg>; setLayout<newBorderLayout<>>; login_message=newJTextField<"用戶登陸">; login_message.setEditable<false>; login=newutton<"登陸">; regeist=newutton<"注冊(cè)">; setVisible<true>; add<login_message,"North">; JPanelbtn=newJPanel<>; btn.setLayout<newGridLayout<1,2>>; btn.add<login>; btn.add<regeist>; add<btn,"South">; JPanelinput=newJPanel<>; JLabelunameLabel=newJLabel<"用戶名:">; uname=newJTextField<"",20>; JLabelpwdLabel=newJLabel<"密碼:">; pwd=newJPasswordField<"",20>; input.setLayout<newGridLayout<2,2>>; input.add<unameLabel>; input.add<uname>; input.add<pwdLabel>; input.add<pwd>; add<input,"Center">; login.addActionListener<newloginListener<>>; regeist.addActionListener<newregeistListener<>>; } classloginListenerimplementsActionListener{ publicvoidactionPerformed<ActionEventevent>{ UserDaoud=newUserDao<>; if<ud.login<uname.getText<>.trim<>,pwd.getText<>.trim<>>>{ newMainGui<>.start<>; setVisible<false>; }else{ JOptionPane.showMessageDialog<null,"您的輸入不正確,請(qǐng)重輸","警告",1>; } } loginListener<>{ } }//數(shù)據(jù)庫(kù)中檢查是使用UserDao.javapublicbooleanlogin<Stringusername,Stringpassword>{ Connectionconn=DB.getConn<>; Statementstmt=DB.getStatement<conn>; Stringsql="select*fromuserwhereusername='"+username+"'"; ResultSetrs=DB.getResultSet<stmt,sql>; try{ while<rs.next<>>{ Stringdbpassword=rs.getString<"password">; if<dbpassword!=null&&dbpassword.equals<password>> returntrue; } }catch<SQLExceptione>{ System.out.println<"用戶登陸連接數(shù)據(jù)庫(kù)異常,系統(tǒng)退出">; System.exit<-1>; } returnfalse;}5.2用戶管理模塊用戶管理界面5.2所示。圖5.2用戶管理界面關(guān)鍵代碼如下:〔點(diǎn)擊"續(xù)接"時(shí)系統(tǒng)執(zhí)行的操作//UserDao.java//用戶注冊(cè)publicbooleanregeist<Useruser>{ Connectionconn=DB.getConn<>; Statementstmt=DB.getStatement<conn>; Stringsql="insertintouser<username,password,rank>values<'"+user.getUsername<>+"','"+user.getPassword<>+"',"+user.getRank<>+">"; System.out.println<sql>; try{ stmt.executeUpdate<sql>; }catch<SQLExceptione>{ e.printStackTrace<>; JOptionPane.showMessageDialog<null,"添加失敗,您輸入的用戶已存在","警告",1>; returnfalse; } JOptionPane.showMessageDialog<null,"恭喜您,添加成功","恭喜",1>; returntrue;}//查詢用戶publicString[]findUser<>{ Connectionconn=DB.getConn<>; Statementstmt=DB.getStatement<conn>; Stringsql="select*fromuser"; String[]userlist=newString[128]; System.out.println<sql>; try{ ResultSetrs=stmt.executeQuery<sql>; inti=0; while<rs.next<>>{ userlist[i]=rs.getString<"username">; i++; } }catch<SQLExceptione>{ e.printStackTrace<>; JOptionPane.showMessageDialog<null,"查找用戶失敗","警告",1>; returnnull; } returnuserlist;}//刪除用戶publicbooleandelUser<Stringusername>{ Connectionconn=DB.getConn<>; Statementstmt=DB.getStatement<conn>; Stringsql="deletefromuserwhereusername='"+username+"'andrank=0"; String[]userlist=newString[]{}; System.out.println<sql>; try{ stmt.executeUpdate<sql>; }catch<SQLExceptione>{ e.printStackTrace<>; JOptionPane.showMessageDialog<null,"刪除用戶失敗","警告",1>; returnfalse; } returntrue;}//修改用戶publicbooleanmodify<Useruser>{ Connectionconn=DB.getConn<>; Statementstmt=DB.getStatement<conn>; Stringsql="updateusersetusername='"+ user.getUsername<>+"',password='"+ user.getPassword<>+"',rank="+user.getRank<>+"whereusername='"+user.getUsername<>+"'"; System.out.println<sql>; try{ stmt.executeUpdate<sql>; }catch<SQLExceptione>{ e.printStackTrace<>; JOptionPane.showMessageDialog<null,"修改失敗","警告",1>; returnfalse; } JOptionPane.showMessageDialog<null,"恭喜您,修改成功","恭喜",1>; returntrue;}用戶添加核心代碼://顯示用戶添加界面JPaneleditPanel=newJPanel<>;editPanel.setBorder<BorderFactory.createTitledBorder<"添加用戶">>;editPanel.setLayout<newGridLayout<2,1>>;JPanelupPanel=newJPanel<>;upPanel.setBorder<BorderFactory.createTitledBorder<"用戶信息">>;upPanel.setLayout<newGridLayout<3,1>>;JPaneljp1=newJPanel<>;JPaneljp2=newJPanel<>;JPaneljp3=newJPanel<>; jp1.add<newJLabel<"用戶名">>;username=newJTextField<"",8>;password=newJPasswordField<"",8>;password2=newJPasswordField<"",8>;jp1.add<username>;upPanel.add<jp1>;jp2.add<newJLabel<"密碼">>;jp2.add<password>;jp3.add<newJLabel<"再次密碼">>;jp3.add<password2>;upPanel.add<jp2>;upPanel.add<jp3>;editPanel.add<upPanel>; JPaneladdUserSubmitPanel=newJPanel<>;uttonaddUserSubmitBtn=newutton<"提交">;uttonaddUserCancelBtn=newutton<"取消">;addUserSubmitPanel.add<addUserSubmitBtn>;addUserSubmitPanel.add<addUserCancelBtn>;editPanel.add<addUserSubmitPanel>;addUserSubmitBtn.addActionListener<newaddUserSubmitListener<>>;addUserCancelBtn.addActionListener<newaddUserCancelListener<>>;add<editPanel,BorderLayout.CENTER>;//提交用戶添加時(shí)執(zhí)行的操作publicclassaddUserSubmitListenerimplementsActionListener{ publicvoidactionPerformed<ActionEvente>{ System.out.println<"==="+password.getText<>.trim<>+"====">; if<password.getText<>.trim<>.equals<"">||!password.getText<>.trim<>.equals<password2.getText<>.trim<>>>{ JOptionPane.showMessageDialog<null,"輸入不正確","警告",1>; }else{ Useruser=newUser<>; user.setUsername<username.getText<>.trim<>>; user.setPassword<password.getText<>.trim<>>; user.setRank<0>; UserDaoud=newUserDao<>; ud.regeist<user>; } }//用戶修改的核心代碼://核心代碼:JPaneleditPanel=newJPanel<>; editPanel.setLayout<newGridLayout<0,2>>; editPanel.setBorder<BorderFactory.createTitledBorder<"修改用戶">>; JPanelleftPanel=newJPanel<>; leftPanel.setLayout<newGridLayout<0,1>>; leftPanel.setBorder<BorderFactory.createTitledBorder<"用戶列表">>; UserDaoud=newUserDao<>; userlist=newJList<ud.findUser<>>; leftPanel.add<newJScrollPane<userlist,22,31>>; userlist.addListSelectionListener<newuserlistListener<>>; editPanel.add<leftPanel>; JPanelrightPanel=newJPanel<>; rightPanel=newJPanel<newBorderLayout<>>; rightPanel.setBorder<BorderFactory.createTitledBorder<"用戶信息">>; rightPanel.setLayout<newFlowLayout<>>; unfld=newJTextField<"",8>; pwdfld=newJTextField<"",8>; rankfld=newJTextField<"",8>; JPaneljPanel1=newJPanel<newGridLayout<0,1>>; jPanel1.add<newJLabel<"用戶名:">>; jPanel1.add<newJLabel<"密碼:">>; jPanel1.add<newJLabel<"權(quán)限:">>; JPaneljPanel2=newJPanel<newGridLayout<0,1>>; jPanel2.add<unfld>; jPanel2.add<pwdfld>; jPanel2.add<rankfld>; rightPanel.add<jPanel1,"West">; rightPanel.add<jPanel2,"East">; editPanel.add<rightPanel>; add<editPanel,BorderLayout.CENTER>; JPanelmodifyUserSubmitPanel=newJPanel<>; uttonmodifyUserSubmitBtn=newutton<"修改用戶">; modifyUserSubmitPanel.add<modifyUserSubmitBtn>; add<modifyUserSubmitPanel,BorderLayout.SOUTH>;//監(jiān)聽(tīng)器publicclassmodifyUserSubmitListenerimplementsActionListener{ publicvoidactionPerformed<ActionEvente>{ if<username==null||username.equals<"">>{ JOptionPane.showMessageDialog<null,"未選中用戶","警告",1>; }else{ inti=JOptionPane.showConfirmDialog<null,"是否修改該用戶?修改將無(wú)法恢復(fù)!","警告",0>; if<i==1>return; UserDaoud=newUserDao<>; Useruser=newUser<>; user.setUsername<unfld.getText<>.trim<>>; user.setPassword<pwdfld.getText<>.trim<>>; if<rankfld.getText<>.trim<>.equals<"系統(tǒng)管理員">>{ user.setRank<1>; }else{ user.setRank<0>; } ud.modify<user>; } }5.3銷售管理模塊銷售管理界面如圖5.3所示。圖5.3銷售界面關(guān)鍵代碼如下:〔點(diǎn)擊"銷售"時(shí)系統(tǒng)執(zhí)行的操作//DAO中的處理publicbooleansales<SalesOrderso>{ Connectionconn=DB.getConn<>; Statementstmt=DB.getStatement<conn>; Stringsql="insertintosalesordervalues<'"+so.getSoid<>+"','" +so.getMid<>+"','"+so.getMname<>+"','" +so.getNum<>+"',"+so.getPrice<>+">"; System.out.println<sql>; try{ stmt.executeUpdate<sql>; }catch<SQLExceptione>{ e.printStackTrace<>; returnfalse; } returntrue;}//com.ahut.frame.salesMgr包中執(zhí)行的操作publicclassbuyListenerimplementsActionListener{ publicvoidactionPerformed<ActionEvente>{ for<intn=0;n<order.length;n++>{ if<order[n]!=null&&!order[n].equals<"">>{ Stringmsg=order[n]; StringTokenizerstnizer=newStringTokenizer<msg,",">; inti1=Integer.parseInt<stnizer.nextToken<>>; Stringname1=stnizer.nextToken<>; Stringpricestr=stnizer.nextToken<>; StringTokenizerstnizerprice=newStringTokenizer<pricestr,"元">; floatprice1=Float.parseFloat<stnizerprice.nextToken<>>; SalesOrdersod=newSalesOrder<>; sod.setSoid<name1>; sod.setMid<name1>; sod.setMname<name1>; sod.setNum<1>; sod.setPrice<price1>; SalesOrderDaosodao=newSalesOrderDao<>; sodao.regeist<sod>; StockDaostockdao=newStockDao<>; stockdao.modifyNum<name1>; stocklist.setListData<stockdao.findStock<>>; } } JOptionPane.showMessageDialog<null,"銷售成功了","警告",1>; }}5.4進(jìn)貨管理模塊圖5.4藥品管理界面核心代碼:<添加藥品及加入庫(kù)存>//添加藥品Dao中publicbooleanregeist<Medicinemedicine>{ Connectionconn=DB.getConn<>; Statementstmt=DB.getStatement<conn>; Stringsql="insertintomedicinevalues<'"+medicine.getMid<>+"','" +medicine.getMname<>+"','"+medicine.getMshortname<>+"','" +medicine.getMnors<>+"','"+medicine.getMarea<>+"','" +medicine.getMlot<>+"',"+medicine.getMinpri<>+"," +medicine.getMwpri<>+","+medicine.getMrpri<>+",'" +medicine.getMcon<>+"','"+medicine.getMcate<>+"'," +medicine.getMusetime<>+",'"+medicine.getMemo<>+"'>"; System.out.println<sql>; try{ stmt.executeUpdate<sql>; }catch<SQLExceptione>{ e.printStackTrace<>; JOptionPane.showMessageDialog<null,"您的輸入不正確","警告",1> returnfalse; } returntrue;}//添加藥品frame中publicclassAddMedButtonListenerimplementsActionListener{ publicvoidactionPerformed<ActionEvente>{ try{ Medicinemedicine=newMedicine<>; medicine.setMarea<marea.getText<>.trim<>>; medicine.setMcate<mcate.getText<>.trim<>>; medi

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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)論