版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
.PAGE.XX工業(yè)大學(xué)畢業(yè)設(shè)計<論文>任務(wù)書課題名稱藥店管理系統(tǒng)設(shè)計與實現(xiàn)畢業(yè)設(shè)計〔論文的主要內(nèi)容:一、進(jìn)行調(diào)研,了解、分析用戶對"藥店管理系統(tǒng)"的設(shè)計要求。二、熟練掌握一種程序設(shè)計語言,掌握其數(shù)據(jù)庫開發(fā)、訪問技術(shù)。三、根據(jù)課題要求,軟件完成如下功能:1,對系統(tǒng)用戶的增刪改查等操作的實現(xiàn);2,對職工的人事管理;3,對藥品的進(jìn)銷存;特殊情況的處理,還有根據(jù)用戶權(quán)限的不同設(shè)置模塊的功能開放.四、要求軟件設(shè)計界面友好、使用方便,程序執(zhí)行安全、可靠。五、完成與設(shè)計內(nèi)容有關(guān)的外文資料翻譯,譯文約5000字。六、撰寫畢業(yè)論文并提交設(shè)計軟件及清單一份。..摘要大家只要看了新聞,就可以了解到21世紀(jì)是信息的世紀(jì),信息化正以極快的速度取代傳統(tǒng)的效率低下的人工作業(yè)。隨著小型計算機(jī),微型計算機(jī)的成本的不斷下降,性能的不斷提升,使得計算機(jī)作為當(dāng)今最重要的信息產(chǎn)品,成為人民大眾必不可缺的工具。計算機(jī)技術(shù)已經(jīng)廣泛應(yīng)用于日常辦公,企業(yè)管理,文字處理、電子報表以及進(jìn)行簡單的人事管理、財務(wù)管理等,大大提高了我們的工作效率,節(jié)省許多資源,使管理更加規(guī)范化,系統(tǒng)化,科學(xué)化。目前隨著計算機(jī)技術(shù)的發(fā)展和普及,各行各業(yè)的管理機(jī)構(gòu)開始使用計算機(jī)處理大量信息。在我國藥品品種繁多,規(guī)模甚大,以往的手工記載、查詢操作容易出錯且工作效率低,已經(jīng)不能適應(yīng)時代發(fā)展的要求,從管理的角度來看,對管理者會造成諸多的不便,還有可能疏忽一些細(xì)節(jié),讓不法商家逃脫罪責(zé)。所以,市場迫切需要一款簡單實用的藥品管理系統(tǒng)。經(jīng)過前期的調(diào)研,在反復(fù)的修改和綜合考量后,筆者覺定使用JAVASWING技術(shù),ECLIPSEJ2SE開發(fā)平臺,MYSQL5.0數(shù)據(jù)庫開發(fā)藥品管理系統(tǒng)。藥品管理系統(tǒng)的設(shè)計理念是,讓企業(yè)能夠擁有更高效的管理工具,使企業(yè)在21世紀(jì)異常激烈的競爭中脫穎而出。國外的管理系統(tǒng)有許多優(yōu)秀的經(jīng)驗,但是并不完全符合我國的國情,我國的最廣大藥品銷售的企業(yè)是分布在全國各地的中小型銷售企業(yè)。所以,此次開發(fā)的藥品管理系統(tǒng)功能乃是汲取了外國優(yōu)秀管理工具的優(yōu)秀功能,同時又創(chuàng)新了更符合我國用戶需求的功能的一個綜合信息管理系統(tǒng)。藥品管理系統(tǒng)分為五大模塊,分別為系統(tǒng)用戶模塊,職工信息管理模塊,進(jìn)貨管理模塊,銷售管理模塊,庫存轉(zhuǎn)移管理模塊。該五大功能模塊設(shè)計合理,功能全面,同時界面友好,非常符合我國各大小型藥品銷售企業(yè)的管理需求。但由于時間倉促以及筆者找工作實習(xí)的原因,系統(tǒng)還不是很完善,和市場上一些成熟的產(chǎn)品比較仍然有不足之處。今后筆者將利用工作休息時間,學(xué)習(xí)新的技術(shù)和設(shè)計理念,對藥品管理系統(tǒng)進(jìn)行深入的二次迭代開發(fā),目標(biāo)是在今后三個月使代碼更加規(guī)范,界面更加美觀,程序的可拓展性進(jìn)一步增強(qiáng),更加與市場接軌,然后發(fā)布到ChinaJavaWorld上開源供大家免費下載使用和學(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)開發(fā)背景和意義51.2開發(fā)環(huán)境5第二章需求分析72.1任務(wù)概述72.2功能需求72.3性能需求72.4數(shù)據(jù)描述<數(shù)據(jù)流圖+數(shù)據(jù)字典>8第三章系統(tǒng)總體設(shè)計143.1業(yè)務(wù)流程143.2系統(tǒng)功能模塊圖143.3系統(tǒng)流程圖16第四章詳細(xì)設(shè)計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財務(wù)信息模塊234.3數(shù)據(jù)庫的設(shè)計244.3.1數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計和ER圖244.3.2數(shù)據(jù)庫的邏輯設(shè)計264.3.3數(shù)據(jù)庫的物理設(shè)計27第五章編碼實現(xiàn)285.1用戶登陸模塊315.2用戶管理模塊325.3銷售管理模塊375.4進(jìn)貨管理模塊395.5職員管理模塊435.6壞貨轉(zhuǎn)移模塊45第六章測試分析報告476.1什么是軟件測試476.2軟件測試的目的476.3測試計劃和要點476.3.1藥品以及藥品管理模塊測試要點 476.3.2銷售管理測試要點476.3.3進(jìn)貨管理測試要點476.3.4職工信息測試要點466.4部分測試圖476.5測試結(jié)論49總結(jié)50參考文獻(xiàn)51附錄:部分程序代碼52第一章概述如何利用現(xiàn)代信息技術(shù)使企業(yè)擁有快速、高效的市場反映能力和高度的效率,已是醫(yī)藥經(jīng)營企業(yè),特別是醫(yī)藥連鎖經(jīng)營企業(yè)特別關(guān)心的問題。盡快建立一個功能齊備的藥品進(jìn)、出庫管理系統(tǒng),完善現(xiàn)代企業(yè)的信息化管理機(jī)制,已成為醫(yī)藥企業(yè)生存發(fā)展的當(dāng)務(wù)之急。通過開發(fā)這個藥品管理系統(tǒng),使藥品進(jìn)銷存管理工作系統(tǒng)化,規(guī)范化,自動化,從而達(dá)到提高管理效率的目的。本系統(tǒng)開發(fā)設(shè)計思想是實現(xiàn)藥品管理的數(shù)字化。盡量采用現(xiàn)有軟硬件環(huán)境,及先進(jìn)的管理系統(tǒng)開發(fā)方案,提高系統(tǒng)開發(fā)水平和應(yīng)用效果的目的。系統(tǒng)應(yīng)符合企業(yè)管理的規(guī)定,滿足日常管理的需要,并達(dá)到操作過程中的直觀、方便、實用、安全等要求,系統(tǒng)采用模塊化程序設(shè)計方法,這樣既便于系統(tǒng)功能的各種組合,又便于未參與開發(fā)的技術(shù)維護(hù)人員補(bǔ)充,維護(hù)。系統(tǒng)應(yīng)具備數(shù)據(jù)庫維護(hù)功能,及時根據(jù)用戶需求進(jìn)行數(shù)據(jù)的添加,刪除,修改等操作。1.1系統(tǒng)開發(fā)背景和意義此次畢業(yè)設(shè)計的選題是由我校計算機(jī)學(xué)院統(tǒng)一選題。本次的畢業(yè)設(shè)計是一個可以充分地鍛煉自己的動手實踐能力以及考核四年大學(xué)所學(xué)知識的積累的機(jī)會。針對我的實際情況,結(jié)合四年來對計算機(jī)軟件的熟練程度以及對數(shù)據(jù)庫的了解,經(jīng)過與指導(dǎo)老師以及小組成員的協(xié)商,我選擇了藥品管理系統(tǒng)軟件設(shè)計與開發(fā)這個課題。這是一個屬于實際的課題,如果順利,我們所設(shè)計的藥品管理系統(tǒng)將實際應(yīng)用到中國最廣大的售藥系統(tǒng)中去,對于初涉社會的我們來說,無疑是一個非常好地鍛煉機(jī)會??紤]到該系統(tǒng)屬于一個規(guī)模較大、較為復(fù)雜的數(shù)據(jù)庫系統(tǒng),對計算機(jī)的性能要求較高,決定使用MyEclipse7.0開發(fā)此系統(tǒng)。此次畢業(yè)設(shè)計選題范圍是相當(dāng)廣泛且實用的,含蓋了目前大部分計算機(jī)軟件類開發(fā)的課題,給我們很大的自由發(fā)展的空間??梢悦總€學(xué)生挑選出最合適的課題,更適合同學(xué)們的興趣和價值取向。選擇此課題對我來說有著不同的意義,應(yīng)該來說此課題更接近于實際開發(fā)的全過程。同時對編程、數(shù)據(jù)庫調(diào)用、結(jié)構(gòu)化查詢語言STRUCTUREDQUERYLANGUAGE等方面是一個比較綜合的考驗。讓我在此過程中得到很好的鍛煉。隨著醫(yī)療制度改革的進(jìn)行,藥品招標(biāo)采購的逐年規(guī)范和擴(kuò)大,藥品管理已經(jīng)成為藥劑科乃至整個醫(yī)院管理的重要內(nèi)容。傳統(tǒng)的管理模式已經(jīng)跟不上顧客對快節(jié)奏生活的要求了!隨著計算機(jī)的普及和計算機(jī)軟件的不斷發(fā)展,越來越多的醫(yī)療機(jī)構(gòu)開始注視計算機(jī)這個輔助工具為自己帶來的效益了。醫(yī)院的售藥機(jī)構(gòu)需要通過計算機(jī)提高自已工作效率、對藥品實現(xiàn)進(jìn)銷存管理和職工管理,提高經(jīng)濟(jì)效益本次畢業(yè)設(shè)計我們秉承良好的治學(xué)之風(fēng),除了嚴(yán)格按照畢業(yè)設(shè)計進(jìn)度表來安排我的設(shè)計情況,同時加強(qiáng)我與指導(dǎo)李老師聯(lián)系和交流。同時這是一個面向?qū)嶋H應(yīng)用的課題,和基礎(chǔ)調(diào)研更是尤為顯得重要,為最終能夠成為一個成功的案例而努力。1.2開發(fā)環(huán)境開發(fā)環(huán)境的選擇會影響到數(shù)據(jù)庫的設(shè)計,所以在這里給出圖書管理系統(tǒng)開發(fā)與運行環(huán)境的選擇如下:開發(fā)環(huán)境:Window7旗艦版開發(fā)工具:MyEclipse7.0數(shù)據(jù)庫引擎:MyISAM第二章需求分析2.1任務(wù)概述藥品管理系統(tǒng)是為了加強(qiáng)藥品管理,以便更好地對藥品進(jìn)行監(jiān)督和管理,對售藥機(jī)構(gòu)人員的工作,起到了高效性、準(zhǔn)確性管理而開發(fā)。本系統(tǒng)主要包含系統(tǒng)用戶管理模塊、藥品管理模塊、銷售管理模塊、進(jìn)貨管理模塊、存貨轉(zhuǎn)移管理模塊。藥品管理系統(tǒng)是以合理、全面、準(zhǔn)確的藥品編碼體系為基礎(chǔ),提供了對藥品數(shù)量、金額、有效期的全面管理,統(tǒng)一的藥價管理機(jī)制規(guī)范了藥品的價格。系統(tǒng)能隨時提供藥庫的庫存、藥品流向和消耗,還能根據(jù)現(xiàn)有庫存,藥品有效期提供采購計劃或應(yīng)暫停采購的藥品清單,以提高資金的利用率,避免不必要的損失,方便快捷的途徑對藥基本信息進(jìn)行定期的更新和刪除等管理。2.2功能需求一 功能劃分藥品管理系統(tǒng)分為系統(tǒng)用戶管理、藥品銷售管理、藥品庫存管理、進(jìn)貨管理、職工管理、查詢與報表分析。二 功能描述〔1系統(tǒng)用戶管理:允許添加刪除用戶〔只有管理員才可以修改,任意權(quán)限的用戶允許更改自己的密碼,添加或刪除職工,修改職工,對藥品進(jìn)行銷售和庫存的控制的資料?!?藥品進(jìn)貨管理:當(dāng)企業(yè)需要增加新的銷售藥品時,利用此模塊可以添加新的藥品信息,刪除舊的藥品信息,修改已存在的藥品信息,提供所有與藥品相關(guān)的各類信息,初始化庫存,初始化供應(yīng)商相關(guān)信息?!?藥品銷售管理:藥品統(tǒng)一的價格銷售,對已查詢銷售單,可以對藥品的價格進(jìn)行控制?!?庫存轉(zhuǎn)移管理:實際生活中容易發(fā)生藥品過期和損毀,此時利用此模塊對過期的藥品和損毀的藥品進(jìn)行清理?!?職工管理:
對藥品企業(yè)進(jìn)行職工的管理,對職工進(jìn)行增加,修改,刪除,查詢等操作?!?查詢與報表分析:此功能并未單獨作為一個模塊,而是分布在各個模塊中,各個模塊產(chǎn)生業(yè)務(wù)時,可以在各模塊的相應(yīng)功能按鈕上選擇查詢。2.3性能需求為了保證系統(tǒng)能夠長期、安全、穩(wěn)定、可靠、高效的運行,藥品管理系統(tǒng)應(yīng)該滿足以下的性能需求:1、系統(tǒng)處理的準(zhǔn)確性和及時性系統(tǒng)處理的準(zhǔn)確性和及時性是系統(tǒng)的必要性能。在系統(tǒng)設(shè)計和開發(fā)過程中,要充分考慮系統(tǒng)當(dāng)前和將來可能承受的工作量,使系統(tǒng)的處理能力和響應(yīng)時間能夠滿足學(xué)校對信息處理的需求。2、系統(tǒng)的開放性和系統(tǒng)的可擴(kuò)充性藥品管理系統(tǒng)在開發(fā)過程中,應(yīng)該充分考慮以后的可擴(kuò)充性。例如用戶查詢的需求也會不斷的更新和完善。所有這些,都要求系統(tǒng)提供足夠的手段進(jìn)行功能的調(diào)整和擴(kuò)充。而要實現(xiàn)這一點,應(yīng)通過系統(tǒng)的開放性來完成,既系統(tǒng)應(yīng)是一個開放系統(tǒng),只要符合一定的規(guī)范,可以簡單的加入和減少系統(tǒng)的模塊,配置系統(tǒng)的硬件。通過軟件的修補(bǔ)、替換完成系統(tǒng)的升級和更新?lián)Q代。3、系統(tǒng)的易用性和易維護(hù)性圖書管理系統(tǒng)是直接面對使用人員的,而使用人員往往對計算機(jī)并不時非常熟悉。這就要求系統(tǒng)能夠提供良好的用戶接口,易用的人機(jī)交互界面。要實現(xiàn)這一點,就要求系統(tǒng)應(yīng)該盡量使用用戶熟悉的術(shù)語和中文信息的界面;針對用戶可能出現(xiàn)的使用問題,要提供足夠的在線幫助,縮短用戶對系統(tǒng)熟悉的過程。4、系統(tǒng)的標(biāo)準(zhǔn)性系統(tǒng)在設(shè)計開發(fā)使用過程中都要涉及到很多計算機(jī)硬件、軟件。所有這些都要符合主流國際、國家和行業(yè)標(biāo)準(zhǔn)。5、系統(tǒng)的先進(jìn)性目前計算系統(tǒng)的技術(shù)發(fā)展相當(dāng)快,做為藥品管理系統(tǒng)工程,在系統(tǒng)的生命周期盡量做到系統(tǒng)的先進(jìn),充分完成企業(yè)信息處理的要求而不至于落后。這一方面通過系統(tǒng)的開放性和可擴(kuò)充性,不斷改善系統(tǒng)的功能完成。另一方面,在系統(tǒng)設(shè)計和開發(fā)的過程中,應(yīng)在考慮成本的基礎(chǔ)上盡量采用當(dāng)前主流并先進(jìn)且有良好發(fā)展前途的產(chǎn)品。6、系統(tǒng)的響應(yīng)速度藥品管理系統(tǒng)系統(tǒng)在日常處理中的響應(yīng)速度為秒級,達(dá)到實時要求,以及時反饋信息。在進(jìn)行統(tǒng)計分析時,根據(jù)所需數(shù)據(jù)量的不同而從秒級到分鐘級,原則是保證操作人員不會因為速度問題而影響工作效率。2.4數(shù)據(jù)描述<數(shù)據(jù)流圖+數(shù)據(jù)字典>經(jīng)過調(diào)研,我們發(fā)現(xiàn),一個藥店最基本的工作流程是進(jìn)貨和銷售。消費者選擇藥店進(jìn)行購物,藥店通過我們的藥店管理系統(tǒng)進(jìn)行藥品的銷售及銷售后的庫存整理。流程簡介:要求A.為每種藥品設(shè)置編號,輸入藥品的信息,以便于管理人員對藥品進(jìn)行管理,也便于核對修改B.為職工設(shè)置庫,便于操作員對職工進(jìn)行管理C.為供貨商設(shè)置庫,便于操作員及時與供貨商聯(lián)系貨源D.設(shè)置系統(tǒng)權(quán)限E.藥品價格分為進(jìn)貨價、零售價和批發(fā)價目標(biāo)A.使藥品銷售的信息能及時得到統(tǒng)計、查詢B.方便操作員的操作,達(dá)到簡單、易用的效果C.提高操作員的工作效率D.提高操作的正確率E.提高系統(tǒng)的可靠性及安全性管理人員顧客藥品管理系統(tǒng)管理人員顧客藥品管理系統(tǒng)圖2.1藥品管理系統(tǒng)基本流程以上便是我們這個藥品管理系統(tǒng)的總體數(shù)據(jù)流程圖,通過上述的這幅圖片,我們可以清楚地了解到該系統(tǒng)的大致情況,有兩個數(shù)據(jù)源/終點,分別是客戶、用戶。而該系統(tǒng)進(jìn)一步地功能顯示在下圖中可以得到解釋??刂菩畔⒖刂菩畔⒐芾砣藛T管理人員統(tǒng)計信息統(tǒng)計信息銷售統(tǒng)計管理銷售統(tǒng)計管理進(jìn)出貨管理職工管理進(jìn)出貨管理職工管理圖2.2管理人員的數(shù)據(jù)流圖銷售人員通過輸入藥品編號,查出系統(tǒng)中存在的藥品,通過醫(yī)生看病以及配藥,考慮所售藥品的價格,將病人所要購買的藥品列入藥品清單中,最后的銷售入庫存系統(tǒng)將此次的交易數(shù)據(jù)保存到數(shù)據(jù)庫中,最終完成交易,將藥品交給病人手中。經(jīng)過對數(shù)據(jù)流程分析,提示出現(xiàn)行系統(tǒng)具有4個主要模塊:藥品信息系統(tǒng)、藥品庫存管理系統(tǒng)、供應(yīng)商管理系統(tǒng)、藥品銷售系統(tǒng)。通過它們我們的藥品管理系統(tǒng)才成為了一個能夠成功的軟件。首先是藥品信息系統(tǒng):在這個模塊中由用戶或管理員輸入所有藥品的基本信息即藥品的初始化。第二個是藥品庫存管理系統(tǒng):在這里這個系統(tǒng)有兩個功能,一是查出現(xiàn)有藥庫中的所有過期藥品,更新現(xiàn)有的數(shù)據(jù)庫;二是實現(xiàn)藥品入庫,避免藥品空缺造成的銷售問題。第三個是供應(yīng)商管理系統(tǒng):供應(yīng)商是藥品進(jìn)貨時,從何處購得的一種記錄方法,通過供應(yīng)商可以方便的再次進(jìn)貨。最后一個是藥品銷售系統(tǒng):在這個模塊中,管理人員可以很方便地對銷售情況進(jìn)行查看,顯示當(dāng)天的銷售金額并備份所有的數(shù)據(jù)庫表。藥品管理系統(tǒng)與3個外部實體有關(guān):顧客、藥房銷售人員和系統(tǒng)管理員。其中系統(tǒng)管理人員擁有所有信息資料添加、刪除和修改的權(quán)限,而藥房銷售人員只具有普通權(quán)限不能對信息資料做任何的刪除操作。以上只是整個系統(tǒng)的總體流程,大概顯示了一次一個用戶完整交易的全部過程。在這里我們還要對這個數(shù)據(jù)流程進(jìn)行進(jìn)一步詳細(xì)的分解。反饋結(jié)果反饋結(jié)果購藥要求消費者購藥要求消費者購藥及退貨購藥及退貨圖2.3消費者的數(shù)據(jù)流圖消費者通過選購,選購好合適的藥品,到管理者處登記結(jié)賬,發(fā)生銷售管理。管理者通過藥品編號,錄入系統(tǒng)需要銷售的數(shù)量,系統(tǒng)生成倉庫中是否有足夠的藥品。發(fā)生銷售之后產(chǎn)生銷售單和銷售金額,消費者付款拿貨。銷售管理完成。當(dāng)消費者發(fā)現(xiàn)購買的藥品不符合要求,管理者在認(rèn)真核實之后,予以退款,發(fā)生退貨。此時管理者要在系統(tǒng)的壞貨轉(zhuǎn)移中,將不合格藥品轉(zhuǎn)移到不合格倉庫中。圖2.4系統(tǒng)數(shù)據(jù)流圖圖2.5詳細(xì)數(shù)據(jù)流圖2.4.3數(shù)據(jù)字典數(shù)據(jù)流項目:1.名字:用戶信息<admin>別名:無流量:每天上十次來源:用戶基本信息表去向:核對用戶信息定義:用戶信息=用戶名+用戶密碼+權(quán)限2.名字:藥品信息別名:無流量:每天上十次來源:藥品表去向:核對藥品庫存初始化、核對出庫信息、核對入庫信息定義:藥品信息=藥品編號+藥品名稱+藥品建成+藥品規(guī)格+藥品產(chǎn)地+批號+進(jìn)價+批發(fā)價+零售價+供應(yīng)商+類別+有效期+備注.3.名字:庫存信息別名:無流量:每天上十次來源:庫存表去向:核對藥品庫存查詢、核對進(jìn)貨單、核對銷售單定義:庫存信息=ID+藥品編號+藥品名稱+供應(yīng)商編號+單價+數(shù)量+入庫日期+倉庫類別.4.名字:供應(yīng)商信息別名:無流量:每天上十次來源:供應(yīng)商表去向:反饋給用戶,核對進(jìn)貨單定義:供應(yīng)商信息=ID+供貨商編號+供貨商名+地區(qū)+備注5.名字:銷售單單信息別名:無流量:每天上十次來源:銷售單單表去向:反饋給用戶定義:銷售單信息=ID+藥品編號+藥品名稱+數(shù)量+銷售日期+銷售數(shù)量+銷售收入2.4.4存儲條目:1.文件名:用戶基本信息表別名:無存儲方式:隨機(jī)存儲存儲頻率:每天上十次定義:用戶基本信息表=用戶名+用戶密碼+權(quán)限2.文件名:藥品表別名:無存儲方式:隨機(jī)存儲存儲頻率:每天上十次定義:藥品表=藥品編號+藥品名稱+藥品建成+藥品規(guī)格+藥品產(chǎn)地+批號+進(jìn)價+批發(fā)價+零售價+供應(yīng)商+類別+有效期+備注.3.數(shù)據(jù)項條目:項名:藥品類型別名:無描述:用戶輸入試題的類型定義:藥品類型=所有藥品規(guī)定類型位置:藥品表4.處理條目:1.處理名:藥品添加處理邏輯:用戶添加藥品信息執(zhí)行頻率:每天上十次2.處理名:庫存初始化處理邏輯:用戶初始化藥品庫存表執(zhí)行頻率:進(jìn)貨上十次3.處理名:入庫處理邏輯:用戶添加進(jìn)貨單執(zhí)行頻率:每天上十次4.處理名:銷售處理邏輯:用戶添加銷售單執(zhí)行頻率:每天上十次第三章系統(tǒng)總體設(shè)計3.1業(yè)務(wù)流程根據(jù)需求分析的得到的現(xiàn)行業(yè)務(wù)處理流程,在用戶反復(fù)研究后,首先確定目標(biāo)系統(tǒng)的業(yè)務(wù)流程,其處理流程如圖3.1。用戶驗證藥品登記管理員用戶驗證藥品登記管理員 登陸 合法用戶 登記后的 藥品銷售和庫存整理銷售和庫存整理管理員 退出登陸管理員圖3.1藥品管理系統(tǒng)的業(yè)務(wù)流程針對業(yè)務(wù)流程,現(xiàn)具體描述其功能如下:1.用戶登錄:系統(tǒng)對用戶合法性進(jìn)行檢查。2.藥品入庫:對新購進(jìn)的藥品分類進(jìn)行編號,并把藥品基本信息錄入計算機(jī)。3.藥品銷售:對已入庫的藥品,銷售人員可以進(jìn)行銷售。4.藥品進(jìn)貨:對已入庫的藥品,管理人員可以進(jìn)行貨存控制。5.存貨轉(zhuǎn)移:對于已經(jīng)過期或者損壞的藥品,可以進(jìn)行處理。6.信息查詢:對藥品的各種變動情況的查詢。7.職員管理:對藥店的職工進(jìn)行管理。3.2系統(tǒng)功能模塊圖藥品管理系統(tǒng)模塊是用JAVASWING進(jìn)行設(shè)計,MYSQL作為后臺數(shù)據(jù)庫管理系統(tǒng)。系統(tǒng)管理模塊分為用戶登錄、進(jìn)貨管理、銷售管理、職工管理和壞貨轉(zhuǎn)移;用戶管理模塊主要是新增用戶,修改用戶,查詢用戶,刪除用戶;進(jìn)貨管理模塊主要有供應(yīng)商創(chuàng)始,進(jìn)貨,進(jìn)貨單查詢,藥品創(chuàng)始;銷售管理模塊主要有銷售,修改價目表,銷售單查詢;職工管理有添加職工,處理職工。系統(tǒng)體系結(jié)構(gòu)框圖如下圖:藥品管理系統(tǒng)藥品管理系統(tǒng)銷售管理進(jìn)貨管理壞貨轉(zhuǎn)移職工管理用戶管理銷售管理進(jìn)貨管理壞貨轉(zhuǎn)移職工管理用戶管理過期處理損毀處理處理職工添加職工銷售單查詢修改價目表銷售藥品創(chuàng)始進(jìn)貨單查詢進(jìn)貨供應(yīng)商創(chuàng)始刪除用戶修改用戶新增用戶查詢用戶過期處理損毀處理處理職工添加職工銷售單查詢修改價目表銷售藥品創(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)始庫存創(chuàng)始庫存創(chuàng)始進(jìn)貨登陸進(jìn)貨登陸銷售銷售退出退出圖3.2系統(tǒng)的處理流程圖說明:用戶通過登陸界面登陸系統(tǒng)時,第一次使用系統(tǒng)時需要進(jìn)行藥品的創(chuàng)始,即將各個藥品的詳細(xì)信息依次錄入系統(tǒng),第一次使用系統(tǒng)時同樣要初始化庫存,將現(xiàn)有的藥品情況錄入系統(tǒng),接下來通過進(jìn)貨模塊進(jìn)行進(jìn)貨,進(jìn)貨時要為每一個供應(yīng)商進(jìn)行供應(yīng)商創(chuàng)始,當(dāng)發(fā)生銷售時銷售藥品,并對庫存進(jìn)行相應(yīng)的出來,退出時推出系統(tǒng)。第四章詳細(xì)設(shè)計4.1程序流程圖依據(jù)軟件工程的基本原理,詳細(xì)設(shè)計階段的根本任務(wù)是確定應(yīng)該怎樣具體實現(xiàn)所要求的系統(tǒng),也就是說,經(jīng)過這個階段的設(shè)計工作,應(yīng)該得出對目標(biāo)系統(tǒng)的精確描述,從而在系統(tǒng)實現(xiàn)階段可以把這個描述直接翻譯成用某種程序設(shè)計語言書寫的程序。具體來說就是把經(jīng)過總體設(shè)計得到的各個模塊詳細(xì)的加以描述。本系統(tǒng)采用支持面向?qū)ο蟮腅clipse作為開發(fā)工具,運用了J2SE的SWing的技術(shù),更加的方便了程序員的工作。程序?qū)ο到y(tǒng)配置要求較高。在此給出軟件系統(tǒng)的主要模塊,如圖4.1所示。職工管理銷售管理進(jìn)貨管理壞貨轉(zhuǎn)移用戶管理職工管理銷售管理進(jìn)貨管理壞貨轉(zhuǎn)移用戶管理圖4.1主程序模塊圖根據(jù)以上主程序的模塊圖,我們可以得出下面的關(guān)于各個模塊的程序流程圖,如圖4.2所示。開始開始用戶類型用戶類型管理員系統(tǒng)管理員管理員系統(tǒng)管理員職工管理壞貨轉(zhuǎn)移進(jìn)貨管理銷售管理用戶管理職工管理壞貨轉(zhuǎn)移進(jìn)貨管理銷售管理用戶管理退出系統(tǒng)退出系統(tǒng)結(jié)束結(jié)束圖4.2總體流程圖說明:用戶登陸系統(tǒng)時,系統(tǒng)判斷用戶的級別,如果為系統(tǒng)管理員,則可以進(jìn)行用戶的用戶管理,如果是管理員,則可以進(jìn)行相應(yīng)的銷售管理,進(jìn)貨管理,壞貨轉(zhuǎn)移,職工管理,管理員點擊退出按鈕時,退出系統(tǒng)。用戶登陸用戶登陸 失敗用戶核對用戶核對 操作成功成功用戶管理用戶管理用戶管理操作用戶管理操作圖4.3用戶登陸流程說明:用戶根據(jù)已知的用戶名和密碼登錄系統(tǒng),只有登錄成功才能進(jìn)行系列的用戶管理、庫存管理、銷售管理,職工管理的操作。用戶用戶 登陸藥品添加藥品添加 錄入藥品核對藥品信息 失敗核對藥品信息藥品表 成功藥品表成功圖4.4藥品創(chuàng)始流程用戶用戶 登陸庫存管理庫存管理 輸入庫存 庫存創(chuàng)始 操作成功庫存創(chuàng)始 操作失敗成功庫存表庫存表圖4.5存貨創(chuàng)始流程用戶用戶登陸銷售管理銷售管理 操作失敗 銷售單錄入核對信息核對信息 操作成功成功庫存表庫存表圖4.6銷售流程用戶用戶 登陸壞貨轉(zhuǎn)移壞貨轉(zhuǎn)移核對信息 錄入壞貨信息核對信息 操作失敗 操作成功 成功庫存表庫存表圖4.7壞貨轉(zhuǎn)移流程說明:用戶登陸后進(jìn)行藥品的相關(guān)管理,通過藥品創(chuàng)始,為系統(tǒng)初始化一些藥品及添加新的代售藥品。通過存貨創(chuàng)始將具體進(jìn)貨的藥品錄入庫存中,銷售成功則對庫存做相應(yīng)的修改。當(dāng)藥品損壞或者過期時,應(yīng)當(dāng)對庫存做相應(yīng)的調(diào)整。用戶用戶用戶 登陸職員管理職員管理核對信息 錄入職員信息核對信息 操作成功 成功職員列表 失敗職員列表圖4.7職員管理說明:管理員通過職工管理模塊進(jìn)行職工的管理,添加職工后,錄入到職員列表中。4.2程序輸入輸出描述4.2.1用戶登陸模塊1.輸入項目:輸入用戶名及密碼。2.輸出項目:打開系統(tǒng)。4.2.2用戶管理模塊1.輸入項目:與用戶相關(guān)的所有信息。2.輸出項目:操作結(jié)果的顯示,出錯彈出對話框。4.2.3銷售管理模塊1.輸入項目:選擇藥品編號,藥品的進(jìn)銷價格。2.輸出項目:操作結(jié)果的顯示,出錯彈出對話框。4.2.4進(jìn)貨管理模塊1.進(jìn)貨項目:供應(yīng)商的詳細(xì)信息,倉庫的詳細(xì)信息,藥品的數(shù)量。2.輸出項目:藥品的有關(guān)資料的顯示,進(jìn)貨單列表4.2.5壞貨管理模塊1.輸入項目:發(fā)生意外無法使用的藥品編號。2.輸出項目:操作結(jié)果的顯示。4.2.6職工管理模塊1.輸入項目:職工的詳細(xì)信息。2.輸出項目:根據(jù)用戶的輸入顯示相應(yīng)的結(jié)果。4.3數(shù)據(jù)庫的設(shè)計4.3.1數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計和ER圖在需求分析階段已完成該系統(tǒng)所有的數(shù)據(jù)分析。根據(jù)該階段所建立的概念模型,已經(jīng)得出滿足系統(tǒng)設(shè)計要求的幾個關(guān)系描述,該階段的主要工作就是把前一階段的成果轉(zhuǎn)化為具體的數(shù)據(jù)庫。概念結(jié)構(gòu)設(shè)計就是要找出實體和他們之間的聯(lián)系,去除非本質(zhì)的東西。實體是名詞,在ER圖中設(shè)計中就是所說的表。比如"藥品","庫存"。
行為是動詞,在ER圖中設(shè)計時一般不考慮行為,它是業(yè)務(wù)邏輯,在詳細(xì)設(shè)計才有設(shè)計,是方法。比如"銷售","進(jìn)貨"等等。
在設(shè)計ER圖時時強(qiáng)調(diào)的是不同實體之間關(guān)系,不是行為。比如:藥品"銷售"庫存,"轉(zhuǎn)移"是一種關(guān)系,不是行為。在某種情況下,"銷售"是一個關(guān)系表,將"藥品"和"庫存"聯(lián)系起來。
在找出實體后,我們要根據(jù)分析來定義實體的屬性,就是表的列。比如藥品有ID,名稱,進(jìn)價,銷價,簡介等等;庫存有ID,名稱,數(shù)量等等。"庫存"可擁有0-MANY的"藥品",而藥品同樣屬于0-MANY的庫存。所以是多對多的關(guān)系根據(jù)以上的分析給出下面的概念結(jié)構(gòu)設(shè)計得E-R圖如圖4.3所示。用戶表用戶表權(quán)限權(quán)限用戶名用戶名用戶名用戶名圖4.8用戶E-R圖有效期有效期零售商別名零售商別名藥品表零售價藥品表零售價ID批發(fā)價ID批發(fā)價藥品名藥品名備注進(jìn)價產(chǎn)地備注進(jìn)價產(chǎn)地規(guī)格類別規(guī)格類別圖4.9藥品E-R圖供應(yīng)商供應(yīng)商備注備注地區(qū)編號地區(qū)編號供應(yīng)商名供應(yīng)商名圖4.10供應(yīng)商E-R圖庫存表庫存表藥品名藥品編號藥品名藥品編號零售價零售價數(shù)量供應(yīng)商編號數(shù)量供應(yīng)商編號圖4.11庫存E-R圖價格銷售單價格銷售單銷售單編號銷售單編號數(shù)量數(shù)量藥品名藥品ID藥品名藥品ID圖4.12供應(yīng)商E-R圖職工表職工表職工號地址職工號地址證件號證件號性別職工名性別職工名圖4.12職員E-R圖零售商有效期規(guī)格產(chǎn)地別名零售商有效期規(guī)格產(chǎn)地別名ID進(jìn)價ID進(jìn)價類別零售價類別零售價批發(fā)價藥品表批發(fā)價藥品表備注藥品名備注藥品名n供貨銷售單編號1供貨銷售單編號備注備注庫存初始化地區(qū)藥品ID m庫存初始化地區(qū)藥品ID銷售單供應(yīng)商藥品名銷售單供應(yīng)商藥品名供應(yīng)商名 m供應(yīng)商名銷售進(jìn)貨編號價格 n銷售進(jìn)貨編號價格數(shù)量n數(shù)量庫存表 n庫存表 1藥品編號藥品編號零售價數(shù)量藥品名供應(yīng)商編號零售價數(shù)量藥品名供應(yīng)商編號圖4.13實體聯(lián)系E-R圖4.3.2數(shù)據(jù)庫的邏輯設(shè)計藥品管理管理系統(tǒng)主要涉及到4個表,即:藥品信息表、藥品入庫表、藥品出庫表和庫存表。藥品信息表:這張表是用來存儲藥品信息的。藥品添加以后它的信息就會儲存到這張表中,其中包含:藥品編號藥品名稱化學(xué)名稱、規(guī)格、藥品類別、劑型、批號及廠商。其中藥品編號是主鍵,非空且唯一。其余信息可以為空,并在數(shù)據(jù)表建立的時候給他們相應(yīng)的規(guī)定好數(shù)據(jù)類型。藥品入庫表:這張表是用來存儲入庫表單信息的,所有入庫單信息都包含在這張表中。包括:入庫單號藥品編號批號入庫日期、有效日期、進(jìn)價、預(yù)售價、數(shù)量、整量單位、散量單位及驗收人。其中入庫單號是主鍵,非空且唯一。藥品出庫表:這張表是用來存儲出庫表單信息的,所有出庫信息都包含在這張表單中。它的字段有:出庫單號、藥品編號、批號、數(shù)量、出庫日期及驗收人。其中出庫單號是主鍵,非空且唯一。藥品庫存表:這張表是用來存儲庫存信息的,所有初始化的庫存信息和出庫入庫信息改變后的信息都會被記錄下來。它字段有:庫存號、藥品編號、批號、藥品名稱、數(shù)量、整量單位、散量單位、入庫日期、有效日期、進(jìn)價、預(yù)售價、庫存下限及驗收人。4.3.3數(shù)據(jù)庫的物理設(shè)計數(shù)據(jù)庫設(shè)計有幾個范式,一般我們要做到的是第三范式,即數(shù)據(jù)表中沒有冗余字段以及同一個表中的字段沒有函數(shù)依賴關(guān)系,冗余字段即在一個表中已經(jīng)保存過的信息,在另一個表中就不應(yīng)該存在,如果需要的話,可以通過表間的關(guān)聯(lián)來得到,函數(shù)依賴性就是一個表中的字段間不應(yīng)該有計算關(guān)系,如一個表中有單價字段、數(shù)量字段,就不應(yīng)該有一個總金額字段。如果程序運行過程中需要總金額,可以實時計算。不過在一些較常用的表中,我們可以適當(dāng)?shù)乇A羧哂嘧侄?這樣,在程序運行過程中可以減少由于表間互相關(guān)聯(lián)而使用速度降低等問題。這就是所謂的第四范式。數(shù)據(jù)表設(shè)計時,最好不要使用用戶輸入的信息作為主鍵,每一個數(shù)據(jù)表自己定義一個主鍵,添加信息是由程序自動添加,這樣就可以減少數(shù)據(jù)更新時產(chǎn)生的錯誤。表與表相關(guān)聯(lián)的外鍵最好是由程序自動生成的主鍵,這樣數(shù)據(jù)庫就比較規(guī)范了。另外,數(shù)據(jù)表設(shè)計時一般都應(yīng)該有一些標(biāo)志字段,標(biāo)志字段可以定義成CHAR<1>或BIT型。建議實際應(yīng)用中定義成CHAR<1>字段可以存儲多種可能的狀態(tài),在最初設(shè)計時,可能我們沒有考慮到的一些情況,在程序后來的開發(fā)中,可以通過設(shè)計標(biāo)志字段為不同的值來解決,這樣就避免了修改數(shù)據(jù)庫結(jié)構(gòu)。數(shù)據(jù)庫初期設(shè)計時一定要謹(jǐn)慎,把所有可能的情況都考慮進(jìn)去,即使當(dāng)時沒有用到,也要將它留在數(shù)據(jù)庫中作為備用字段以便將來擴(kuò)充。程序一旦開始編碼,就應(yīng)該盡量避免再修改數(shù)據(jù)庫。因為如果數(shù)據(jù)庫結(jié)構(gòu)一旦改變,所有與修改的數(shù)據(jù)表相關(guān)的業(yè)務(wù)都有可能受到影響,而某些影響還很難看到,這樣就容易形成一個惡性循環(huán)。錯誤越改越多,越改越亂,最終導(dǎo)致程序的失敗。PB的數(shù)據(jù)窗口與其他語言的數(shù)據(jù)控件不一樣,它的很多東西是預(yù)編譯的。即使你一個模塊已經(jīng)調(diào)試無誤,但只要數(shù)據(jù)庫結(jié)構(gòu)改動。相應(yīng)的模塊就一定要重新修改,否則一定會出問題。藥品管理系統(tǒng)數(shù)據(jù)庫中各個表的設(shè)計結(jié)果如下面幾個表格所示。每個表格表示為數(shù)據(jù)庫中的一個表。表4.14藥品信息表Medicinemid<PK>Varchar<8>N藥品編號mname Varchar<40>N藥品名稱mshortnameVarchar<10>Y藥品建成mnorsVarchar<4>N規(guī)格mareaVarchar<40>N藥品產(chǎn)地mlotVarchar<10>N批號minprifloatN0進(jìn)價mwprifloatN0批發(fā)價mprifloatN0零售價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)商編號spnameVarchar<8>N供應(yīng)商名SpareaVarchar<8>N地區(qū)SpmenoVarchar<40>Y備注表4.17銷售單表SalesOrderSoid<PK>Varchar<8>N銷售單編號mid Varchar<8>N藥品編號MnameVarchar<40>N藥品名SnumintN0數(shù)量pricedoubleN0單價表4.18職工表StaffStaffid<PK>Varchar<8>N職工編號staffnameVarchar<20>N職工名稱Staffsexvarchar<2>N性別stafftelvarchar<12>Nstaffaddvarchar<40>Y地址Staffcardvarchar<40>N身份證staffzipvarchar<6>Y備注表4.19貨存表StockMid<PK>Varchar<8>N職工編號mnameVarchar<20>N職工名稱mpricefloatN性別mnumintNspidvarchar<8>Y地址timedatetimeN身份證statusintN存貨類別第五章編碼實現(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<"注冊">; 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,"您的輸入不正確,請重輸","警告",1>; } } loginListener<>{ } }//數(shù)據(jù)庫中檢查是使用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ù)庫異常,系統(tǒng)退出">; System.exit<-1>; } returnfalse;}5.2用戶管理模塊用戶管理界面5.2所示。圖5.2用戶管理界面關(guān)鍵代碼如下:〔點擊"續(xù)接"時系統(tǒng)執(zhí)行的操作//UserDao.java//用戶注冊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>;//提交用戶添加時執(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)聽器publicclassmodifyUserSubmitListenerimplementsActionListener{ publicvoidactionPerformed<ActionEvente>{ if<username==null||username.equals<"">>{ JOptionPane.showMessageDialog<null,"未選中用戶","警告",1>; }else{ inti=JOptionPane.showConfirmDialog<null,"是否修改該用戶?修改將無法恢復(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)鍵代碼如下:〔點擊"銷售"時系統(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藥品管理界面核心代碼:<添加藥品及加入庫存>//添加藥品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. 本站所有資源如無特殊說明,都需要本地電腦安裝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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年代理合同簽署注意事項
- 2025年商業(yè)合作形象授權(quán)代理服務(wù)協(xié)議
- 二零二五版商業(yè)地產(chǎn)買賣合同附帶抵押權(quán)登記0023篇
- 2025年高校與企業(yè)聯(lián)合培養(yǎng)協(xié)議教授合作協(xié)議9篇
- 二零二五年度出口合同模板(含出口貨物倉儲與物流服務(wù))4篇
- 2025年度裝配式建筑構(gòu)件生產(chǎn)與施工合同范本4篇
- 2025版水電安裝工程新能源并網(wǎng)服務(wù)合同集錦3篇
- 二零二五版零擔(dān)運輸合同物流數(shù)據(jù)安全保護(hù)合同4篇
- 二零二五版路演車輛租賃與后勤保障合同4篇
- 二零二五年度家族財產(chǎn)管理及子女成長支持協(xié)議
- (一模)臨汾市2025年高考考前適應(yīng)性訓(xùn)練考試(一)語文試卷(含答案)
- 2024-2025學(xué)年滬科版數(shù)學(xué)七年級上冊期末綜合測試卷(一)(含答案)
- 2023年廣東省公務(wù)員錄用考試《行測》真題及答案解析
- 2024年公證遺產(chǎn)繼承分配協(xié)議書模板
- 燃?xì)饨?jīng)營安全重大隱患判定標(biāo)準(zhǔn)課件
- 深圳小學(xué)英語單詞表(中英文)
- 護(hù)理質(zhì)量反饋內(nèi)容
- 抖音搜索用戶分析報告
- 鉆孔灌注樁技術(shù)規(guī)范
- 2023-2024學(xué)年北師大版必修二unit 5 humans and nature lesson 3 Race to the pole 教學(xué)設(shè)計
- 供貨進(jìn)度計劃
評論
0/150
提交評論