版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
目錄
TOC\o”1-3"\h\z\uHYPERLINK\l”_Toc317929409”第一章概述 10HYPERLINK\l”_Toc317929410”第一章概述 10HYPERLINK\l”_Toc317929411”盡量采用現(xiàn)有軟硬件環(huán)境,及先進(jìn)的管理系統(tǒng)開發(fā)方案,提高系統(tǒng)開發(fā)水平和應(yīng)用效果的目的。系統(tǒng)應(yīng)符合企業(yè)管理的規(guī)定,滿足日常管理的需要,并達(dá)到操作過(guò)程中的直觀、方便、實(shí)用、安全等要求,系統(tǒng)采用模塊化程序設(shè)計(jì)方法,這樣既便于系統(tǒng)功能的各種組合,又便于未參與開發(fā)的技術(shù)維護(hù)人員補(bǔ)充,維護(hù).系統(tǒng)應(yīng)具備數(shù)據(jù)庫(kù)維護(hù)功能,及時(shí)根據(jù)用戶需求進(jìn)行數(shù)據(jù)的添加,刪除,修改等操作。 101。2開發(fā)環(huán)境 10HYPERLINK\l”_Toc317929414"第二章需求分析 12HYPERLINK\l”_Toc317929415"2.1任務(wù)概述 12HYPERLINK\l”_Toc317929416”2。2功能需求 12HYPERLINK\l”_Toc317929417”2。3性能需求 13HYPERLINK\l”_Toc317929418"2。4數(shù)據(jù)描述(數(shù)據(jù)流圖+數(shù)據(jù)字典) 13圖2.2管理人員的數(shù)據(jù)流圖 14_Toc317929424"消費(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)者付款拿貨。銷售管理完成。 15HYPERLINK\l”_Toc317929425"當(dāng)消費(fèi)者發(fā)現(xiàn)購(gòu)買的藥品不符合要求,管理者在認(rèn)真核實(shí)之后,予以退款,發(fā)生退貨。此時(shí)管理者要在系統(tǒng)的壞貨轉(zhuǎn)移中,將不合格藥品轉(zhuǎn)移到不合格倉(cāng)庫(kù)中。 16HYPERLINK\l”_Toc317929426” 16HYPERLINK\l”_Toc317929427"圖2。4系統(tǒng)數(shù)據(jù)流圖 16HYPERLINK\l”_Toc317929428” 16圖2.5詳細(xì)數(shù)據(jù)流圖 16HYPERLINK\l”_Toc317929430"第三章系統(tǒng)總體設(shè)計(jì) 20HYPERLINK\l”_Toc317929431”3.1業(yè)務(wù)流程 203。2系統(tǒng)功能模塊圖 20HYPERLINK\l”_Toc317929433”3。3系統(tǒng)流程圖 22HYPERLINK\l”_Toc317929434"第四章詳細(xì)設(shè)計(jì) 234.1程序流程圖 234。2程序輸入輸出描述 28HYPERLINK\l”_Toc317929437”4.2.1用戶登陸模塊 28_Toc317929439"4.2。3銷售管理模塊 28HYPERLINK\l”_Toc317929440"4。2.4進(jìn)貨管理模塊 284。2。5壞貨管理模塊 28HYPERLINK\l”_Toc317929442"4.2。6職工管理模塊 28HYPERLINK\l”_Toc317929443"4。3數(shù)據(jù)庫(kù)的設(shè)計(jì) 294.3.1數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)設(shè)計(jì)和ER圖 29HYPERLINK\l”_Toc317929445"4。3。2數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì) 31HYPERLINK\l”_Toc317929446”4。3。3數(shù)據(jù)庫(kù)的物理設(shè)計(jì) 32HYPERLINK\l”_Toc317929447”第五章編碼實(shí)現(xiàn) 365。1用戶登陸模塊 36HYPERLINK\l”_Toc317929449"5。2用戶管理模塊 385。4進(jìn)貨管理模塊 45HYPERLINK\l”_Toc317929452” 45HYPERLINK\l”_Toc317929453"圖5。4藥品管理界面 45核心代碼:(添加藥品及加入庫(kù)存) 45_Toc317929458"圖5.5藥品修改界面 48HYPERLINK\l”_Toc317929459"核心代碼:(修改職工信息) 485。6壞貨轉(zhuǎn)移模塊 50HYPERLINK\l”_Toc317929461”6.1什么是軟件測(cè)試 52HYPERLINK\l”_Toc317929462”6。2軟件測(cè)試的目的 52HYPERLINK\l”_Toc317929463"6.3測(cè)試計(jì)劃和要點(diǎn) 52_Toc317929465”6。3.2銷售管理模塊測(cè)試要點(diǎn) 52HYPERLINK\l”_Toc317929466"6。3.3進(jìn)貨管理模塊測(cè)試要點(diǎn) 52_Toc317929468”6.4部分測(cè)試圖 52致謝 57附錄:部分程序代碼 58摘要大家只要看了新聞,就可以了解到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)開始使用計(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ù)的修改和綜合考量后,筆者覺定使用JAVASWING技術(shù),ECLIPSEJ2SE開發(fā)平臺(tái),MYSQL5.0數(shù)據(jù)庫(kù)開發(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è).所以,此次開發(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)行深入的二次迭代開發(fā),目標(biāo)是在今后三個(gè)月使代碼更加規(guī)范,界面更加美觀,程序的可拓展性進(jìn)一步增強(qiáng),更加與市場(chǎng)接軌,然后發(fā)布到ChinaJavaWorld上開源供大家免費(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
QQ:306826066優(yōu)秀畢業(yè)設(shè)計(jì)網(wǎng)HYPERLINK”"畢業(yè)設(shè)計(jì)資料網(wǎng)畢業(yè)設(shè)計(jì)論文網(wǎng),“庫(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ù)表中沒有冗余字段以及同一個(gè)表中的字段沒有函數(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)而使用速度降低等問題.這就是所謂的第四范式。數(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í),可能我們沒有考慮到的一些情況,在程序后來(lá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í)沒有用到,也要將它留在數(shù)據(jù)庫(kù)中作為備用字段以便將來(lái)擴(kuò)充。程序一旦開始編碼,就應(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ì)出問題。藥品管理系統(tǒng)數(shù)據(jù)庫(kù)中各個(gè)表的設(shè)計(jì)結(jié)果如下面幾個(gè)表格所示。每個(gè)表格表示為數(shù)據(jù)庫(kù)中的一個(gè)表.表4。14藥品信息表Medicine列名數(shù)據(jù)類型允許空值默認(rèn)值描述mid(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用戶表User列名數(shù)據(jù)類型允許空值默認(rèn)值描述Username(PK)Varchar(20)N用戶名password Varchar(8)N密碼rankintN1權(quán)限表4.16供應(yīng)商表Supplier列名數(shù)據(jù)類型允許空值默認(rèn)值描述spid(PK)Varchar(8)N供應(yīng)商編號(hào)spnameVarchar(8)N供應(yīng)商名SpareaVarchar(8)N地區(qū)SpmenoVarchar(40)Y備注表4.17銷售單表SalesOrder列名數(shù)據(jù)類型允許空值默認(rèn)值描述Soid(PK)Varchar(8)N銷售單編號(hào)mid Varchar(8)N藥品編號(hào)MnameVarchar(40)N藥品名SnumintN0數(shù)量pricedoubleN0單價(jià)表4.18職工表Staff列名數(shù)據(jù)類型允許空值默認(rèn)值描述Staffid(PK)Varchar(8)N職工編號(hào)staffnameVarchar(20)N職工名稱Staffsexvarchar(2)N性別stafftelvarchar(12)N電話staffaddvarchar(40)Y地址Staffcardvarchar(40)N身份證staffzipvarchar(6)Y備注表4。19貨存表Stock列名數(shù)據(jù)類型允許空值默認(rèn)值描述Mid(PK)Varchar(8)N職工編號(hào)mnameVarchar(20)N職工名稱mpricefloatN性別mnumintN電話spidvarchar(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=newJButton("登陸”); regeist=newJButton(”注冊(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;}//顯示模塊com。ahut。frame.usermgr用戶添加核心代碼://顯示用戶添加界面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();JButtonaddUserSubmitBtn=newJButton(”提交");JButtonaddUserCancelBtn=newJButton(”取消");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(); JButtonmodifyUserSubmitBtn=newJButton("修改用戶"); 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,”是否修改該用戶?修改將無(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=new StringTokenizer(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()); medicine。setMcon(mcon.getText().trim()); medicine.setMemo(memo。getText().trim()); medicine。setMid(mid.getText()。trim()); medicine。setMinpri(Float.parseFloat(minpri.getText()); medicine。setMlot(mlot.getText()。trim()); medicine.setMname(mname.getText().trim()); medicine。setMnors(mnors.getText()。trim()); medicine。setMrpri(Float。parseFloat(mrpri.getText()); medicine.setMshortname(mshortname。getText()); medicine。setMusetime(Integer。parseInt(musetime。getText()); medicine。setMwpri(Float。parseFloat(mwpri。getText()); MedDaomd=newMedDao(); if(md。regeist(medicine)){ JOptionPane。showMessageDialog(null,"藥品添加成功”,"恭喜",1); } }catch(Exceptione2){ e2。printStackTrace(); JOptionPane.showMessageDialog(null,"您的輸入不正確","警告”,1); } }}//加入庫(kù)存frame中publicclassbuyButtonListenerimplementsActionListener{ publicvoidactionPerformed(ActionEvente){ try{ Stockstock=newStock(); stock。setMid(mid。getText().trim()); stock.setMname(mname.getText().trim()); stock.setMnum(Integer.parseInt(num。getText()。trim())); stock。setMprice(Float.parseFloat(price。getText().trim())); stock。setSpid(spid。getText()。trim()); Calendarc=Calendar。getInstance(); c.setTimeInMillis(System。currentTimeMillis()); java.util.Dated=c.getTime(); stock。setTime(d); StockDaosd=newStockDao(); if(sd.regeist(stock)){ JOptionPane。showMessageDialog(null,"進(jìn)貨成功",”恭喜”,1); } }catch(Exceptione2){ e2。printStackTrace(); JOptionPane。showMessageDialog(null,"您的輸入不正確”,"警告",1); } }}//加入庫(kù)存DAO中publicbooleanadd(Stockstock){ Connectionconn=DB.getConn(); Statementstmt=DB。getStatement(conn); Stringsql="insertintostockvalues(’"+stock.getMid()+"’,’"+stock.getMname()+”’,”+stock。getMprice()+”,”+stock。getMnum()+",’”+stock。getSpid()+"’,curdate()”+”,0)”; System。out.println(sql); try{ stmt。executeUpdate(sql); }catch(SQLExceptione){ e。printStackTrace(); JOptionPane。showMessageDialog(null,"操作失敗”,"警告",1); returnfalse; } returntrue;}5。5職工管理模塊圖5.5藥品修改界面核心代碼:(修改職工信息)//DAO中修改職工信息publicbooleanmodify(Staffstaff){ Connectionconn=DB。getConn(); Statementstmt=DB.getStatement(conn); Stringsql="updatestaffsetstaffid=’"+staff。getStaffid()+”',staffname=’"+staff.getStaffname()+”’,staffsex=’"+taff.getStaffsex()+”’,stafftel='" +staff。getStafftel()+"',staffadd=’”+staff。getStaffadd()+”’,staffcard=’"+staff.getStaffcard()+”',staffzip=’”+staff.getStaffzip()+”'wherestaffid=’”+staff.getStaffid()+"'"; System.out.println(sql); try{ stmt.executeUpdate(sql); }catch(SQLExceptione){ e.printStackTrace(); JOptionPane。showMessageDialog(null,”修改失敗","警告",1); returnfalse; } JOptionPane。showMessageDialog(null,"恭喜您,修改成功",”恭喜",1); returntrue;}//FRAME中監(jiān)聽修改用戶按鈕的處理流程publicclassmodifyStfListenerimplementsActionListener{ publicvoidactionPerformed(ActionEvente){ if(staffname==null||staffname。equals(”")){ JOptionPane.showMessageDialog(null,"未選中用戶”,”警告",1); }else{ inti=JOptionPane。showConfirmDialog(null,"是否修改該職員?修改將無(wú)法恢復(fù)!",”警告",0); if(i==1) return; StaffDaosd=newStaffDao(); Staffstaff=newStaff(); staff。setStaffid(staffid。getText()。trim()); staff.setStaffname(stfname.getText().trim()); staff.setStaffsex(staffsex.getText().trim()); staff.setStafftel(stafftel。getText()。trim()); staff.setStaffadd(staffadd。getText().trim()); staff。setStaffcard(staffcard.getText().trim()); staff。setStaffzip(staffzip。getText()。trim()); sd.modify(staff); } }}5。6壞貨轉(zhuǎn)移模塊圖5.6壞貨轉(zhuǎn)移界面核心代碼:(對(duì)發(fā)生以外的和過(guò)期的藥品的處理)//按鈕的事件響應(yīng)publicclassoutOfDateListenerimplementsActionListener{ publicvoidactionPerformed(ActionEvente){ StockDaosd=newStockDao(); String[]mnamelist=sd.findOFDStock(); sd.OFDTranStock(mnamelist); JOptionPane.showMessageDialog(null,"成功",”恭喜",1); stocklist。setListData(newString[]{}); }}//數(shù)據(jù)庫(kù)DAO中的操作publicvoidOFDTranStock(String[]mnamelist){ Connectionconn=DB.getConn(); Statementstmt=DB.getStatement(conn); for(inti=0;i<mnamelist.length;i++){ if(mnamelist[i]!=null&&!mnamelist[i]。equals("”)){ Stringsql=”updatestocksetstatus=1wheremname=’"+mnamelist[i]+"’"; System.out.println(sql); try{ stmt。executeUpdate(sql); }catch(SQLExceptione){ e.printStackTrace(); JOptionPane.showMessageDialog(null,”失敗”,"警告”,1); } }}第六章測(cè)試分析報(bào)告
6。1什么是軟件測(cè)試軟件測(cè)試就是在受控制的條件下對(duì)系統(tǒng)或應(yīng)用程序進(jìn)行操作并評(píng)價(jià)操作結(jié)果的過(guò)程,所謂控制條件應(yīng)包括正常條件與非正常條件.
軟件測(cè)試過(guò)程中應(yīng)該故意地去促使錯(cuò)誤的發(fā)生,也就是事情在不該出現(xiàn)的時(shí)候出現(xiàn)或者在應(yīng)該出現(xiàn)的時(shí)候沒有出現(xiàn)。從本質(zhì)上說(shuō),軟件測(cè)試是“探測(cè)",在“探測(cè)”中發(fā)現(xiàn)軟件的毛病.
軟件測(cè)試貫穿于軟件定義與開發(fā)的整個(gè)周期,軟件的需求規(guī)格說(shuō)明書,結(jié)構(gòu)設(shè)計(jì)及程序編碼,都屬于軟件測(cè)試的對(duì)象。
軟件測(cè)試包含白盒測(cè)試與黑盒測(cè)試,白盒測(cè)試是針對(duì)程序代碼進(jìn)行正確性檢驗(yàn)的測(cè)試工作,黑盒測(cè)試獨(dú)立于程序代碼,從用戶的角度,通過(guò)一定的測(cè)試步驟與測(cè)試案例,驗(yàn)證軟件功能、性能等指標(biāo)能否滿足實(shí)際應(yīng)用需求的測(cè)試作.
6.2軟件測(cè)試的目的軟件測(cè)試的目的是為了保證軟件產(chǎn)品的最終質(zhì)量,在軟件開發(fā)的過(guò)程中,對(duì)軟件產(chǎn)品進(jìn)行_blank"質(zhì)量控制。一般來(lái)說(shuō)軟件測(cè)試應(yīng)由獨(dú)立的產(chǎn)品評(píng)測(cè)中心負(fù)責(zé),嚴(yán)格按照軟件測(cè)試流程,制定測(cè)試計(jì)劃、測(cè)試方案、測(cè)試規(guī)范,實(shí)施測(cè)試,對(duì)測(cè)試記錄進(jìn)行分析,并根據(jù)回歸測(cè)試情況撰寫測(cè)試報(bào)告。測(cè)試是為了證明程序有錯(cuò),而不能保證程序沒有錯(cuò)誤。
6。3測(cè)試計(jì)劃和要點(diǎn)軟件測(cè)試的本質(zhì)是針對(duì)要測(cè)試的內(nèi)容確定一組測(cè)試用例。在討論之前,我先把要測(cè)試各個(gè)模塊的計(jì)劃和要點(diǎn)列出:6.3。1藥品以及藥品管理模塊測(cè)試要點(diǎn)用戶的登錄用戶名和密碼的核對(duì),藥品創(chuàng)始信息格式的判斷,防止不規(guī)范的數(shù)據(jù)和錯(cuò)誤的數(shù)據(jù)插入數(shù)據(jù)庫(kù)。例如,已經(jīng)存在的用戶不可被再次注冊(cè),用戶的生日和email格式等.6。3。2銷售管理模塊測(cè)試要點(diǎn)發(fā)生銷售時(shí),庫(kù)存的變動(dòng)情況,是否減少,藥品為零則禁止銷售。6.3.3進(jìn)貨管理模塊測(cè)試要點(diǎn)錄入數(shù)據(jù)時(shí)對(duì)數(shù)據(jù)格式的限制,防止不正確的數(shù)據(jù)進(jìn)入數(shù)據(jù)庫(kù).6.3。4職工信息測(cè)試要點(diǎn)防止臟數(shù)據(jù)進(jìn)入數(shù)據(jù)庫(kù)。6.4部分測(cè)試圖1。用戶名或密碼錯(cuò)誤圖6.1(登陸)用戶名或密碼錯(cuò)誤提示2。用戶注冊(cè)模塊圖6.2(注冊(cè))用戶已存在提示
3。藥品錄入數(shù)據(jù)格式的限制圖6。3藥品錄入數(shù)據(jù)格式的限制6。5測(cè)試結(jié)論1.測(cè)試目標(biāo)完成;2.測(cè)試已經(jīng)通過(guò);3.可以進(jìn)入下一階段項(xiàng)目目標(biāo);總結(jié)
不知不覺,三個(gè)月的設(shè)計(jì)結(jié)束了。在這三個(gè)月的設(shè)計(jì),讓我受益非淺。自我學(xué)計(jì)算機(jī)專業(yè)以來(lái),始終認(rèn)為一個(gè)完整的程序就相當(dāng)于一個(gè)優(yōu)秀的軟件產(chǎn)品,只要程序編得精致、具體、詳細(xì),所開發(fā)的軟件就絕對(duì)完美、實(shí)用.在這次設(shè)計(jì)藥品管理系統(tǒng)中,我積極查閱各種資料,實(shí)地調(diào)研,在李老師的幫助下完成了這個(gè)系統(tǒng)的全部設(shè)計(jì).剛開始設(shè)計(jì)時(shí)遇到了一些困難,因?yàn)橹白詫W(xué)過(guò)的JavaSwing已經(jīng)忘了差不多了,再加上自己還要參加其他單位的實(shí)習(xí),時(shí)間的安排上也很緊迫,編程的進(jìn)度比較緩慢.在設(shè)計(jì)中還會(huì)遇到一些功能不知該如何實(shí)現(xiàn)的困難,在同學(xué)們,同事們的熱情幫助下,我漸漸的復(fù)習(xí)了JavaSwing控件的使用方法、JavaSwing的編程語(yǔ)法,之后的編程過(guò)程也相對(duì)得心應(yīng)手,基本完成了預(yù)期計(jì)劃的要求.但是系統(tǒng)功能還沒有完全完善,有待進(jìn)一步加強(qiáng)。通過(guò)這次畢業(yè)設(shè)計(jì),我進(jìn)一步加深對(duì)基礎(chǔ)理論的理解,擴(kuò)大專業(yè)知識(shí)面,對(duì)收集資料、查閱文獻(xiàn)、方案制定等實(shí)踐方面得到了很好的鍛練,促進(jìn)對(duì)所學(xué)知識(shí)應(yīng)用能力的提高。同時(shí),發(fā)現(xiàn)問題、分析歸納、綜合比較的邏輯分析能力、處理問題等能力也得到了提高。但是在這次畢業(yè)設(shè)計(jì)過(guò)程中,還是發(fā)現(xiàn)了自己很多不足之處,也遇到了許多問題和困難,而這些困難大多是三年中不注重自己系統(tǒng)學(xué)習(xí),學(xué)有所用造成的,這讓我認(rèn)識(shí)到系統(tǒng)的學(xué)習(xí)和鍛煉的重要性,基礎(chǔ)知識(shí)掌握不僅要多,而且要會(huì)運(yùn)用它,那樣的話設(shè)計(jì)才會(huì)更全面、更順利、更完美。
[1]侯維瑞英語(yǔ)語(yǔ)體上海:上海外語(yǔ)教育出版社,1988[2][美]RogersCadenhead。Java編程入門經(jīng)典。梅興文譯。第4版。北京:人民郵電出版社,2007[3]陳軼.姚曉昆編著.Java程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)。北京:清華大學(xué)出版社,2006[4]吳其慶編著.Java程序設(shè)計(jì)實(shí)例教程。北京:冶金工業(yè)出版社,2006[5]李春葆,曾慧。SQLServer2000學(xué)習(xí)與上機(jī)指導(dǎo)[M].北京:清華大學(xué)出版社,2005.6.[6]施霞萍等編著。Java程序設(shè)計(jì)教程第2版。北京:機(jī)械工業(yè)出版社,2006[7]宛延闿等編著.實(shí)用Java程序設(shè)計(jì)教程。北京:機(jī)械工業(yè)出版社,2006[8]耿祥義,張躍平?!禞SP實(shí)用教程》。清華大學(xué)出版社,2003年5月1日:1-354月。[9]陳剛.Eclipse從入門到精通[M].北京:清華大學(xué)出版社,2005:416—417.[10]孫衛(wèi)琴.精通Struts:基于MVC的JavaWeb設(shè)計(jì)與開發(fā)[M].北京:電子工業(yè)出版社,2004:1-9.[11](美)格羅夫著,章小莉等譯.SQL完全手冊(cè)(第二版)[M].北京:電子工業(yè)出版社,2006:12—14.[12]王虎,張俊。管理信息系統(tǒng)[M]。武漢:武漢理工大學(xué)出版社,2004.7.[13]東方華人.ASP.NET數(shù)據(jù)庫(kù)開發(fā)[M].北京:清華大學(xué)出版社,2004.6。
致謝畢業(yè)設(shè)計(jì)終于結(jié)束,此為大學(xué)里最后一次考核,我在大家的鼓勵(lì)、幫助和支持下,最終順利完成.回首從零到畢業(yè)設(shè)計(jì)最終的完成,我的老師們,朋友們,同事們,親人們對(duì)我的幫助讓我受益匪淺。首先,我想感謝一下我的指導(dǎo)老師李喬老師,李老師做事認(rèn)真負(fù)責(zé),待人親切和藹,同時(shí)對(duì)我的論文和程序積極督促,耐心指導(dǎo)和正確引導(dǎo),讓我從茫然不知所錯(cuò)到如屢平地。此次畢業(yè)設(shè)計(jì)同時(shí)讓我更加深刻的了解到大學(xué)里教的課程是多么的有用,感謝母校給了我這么多知識(shí)儲(chǔ)備,讓我能成為有一個(gè)有用的心中有底的人。還要感謝學(xué)院領(lǐng)導(dǎo)這四年來(lái)對(duì)我的培養(yǎng)和關(guān)心,在這四年當(dāng)中,院里領(lǐng)導(dǎo)為我們做好不少好事,對(duì)于我們的困難,院領(lǐng)導(dǎo)總是熱情的幫我們解決,我除了學(xué)會(huì)大學(xué)里應(yīng)該學(xué)會(huì)的課程外,還學(xué)會(huì)了怎樣做人,做一個(gè)對(duì)社會(huì)有貢獻(xiàn)的人。同時(shí),我還要感謝我們們學(xué)校所有的同學(xué)。他們和我共同在安工大學(xué)習(xí)生活了四年,在生活和學(xué)習(xí)上給了我很大的幫助,正是有了你們的支持,我才能順利的完成畢業(yè)設(shè)計(jì)。謝謝所有教過(guò)我的老師們,你們教了我很多的專業(yè)知識(shí),還給我提供動(dòng)手實(shí)踐的機(jī)會(huì),老師辛苦了!最后我還要感謝把我培養(yǎng)長(zhǎng)大,含辛茹苦的父母,謝謝你們!附錄:部分程序代碼com。ahut。utils.DB類packagecom。ahut。utils;//連接數(shù)據(jù)庫(kù)的公共類publicclassDB{ publicstaticConnectiongetConn(){ Connectionconn=null; try{ Class.forName(”com。mysql。jdbc.Driver"); conn=DriverManager。getConnection(”jdbc:mysql://localhost:3306/medicine2?user=root&password=root"); }catch(ClassNotFoundExceptione){ e。printStackTrace(); }catch(SQLExceptione){ e。printStackTrace(); } returnconn; } publicstaticStatementgetStatement(Connectionconn){ Statementstmt=null; try{ if(conn!=null){ stmt=con
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 語(yǔ)文素養(yǎng)大賽策劃書3篇
- 2025年榆林能源科技職業(yè)學(xué)院高職單招語(yǔ)文2018-2024歷年參考題庫(kù)頻考點(diǎn)含答案解析
- 專題02 漫畫素材類選擇題(50題)
- 2024年電商應(yīng)用與品牌市場(chǎng)洞察報(bào)告
- 課題申報(bào)參考:數(shù)據(jù)驅(qū)動(dòng)的帆板高效推進(jìn)搖帆策略研究
- 駕馭考試戰(zhàn)場(chǎng)的戰(zhàn)術(shù)思維
- 幼兒植樹節(jié)出游活動(dòng)策劃方案五篇
- 酒店委托經(jīng)營(yíng)合同范本
- 范文二手房買賣合同
- 商服用房買賣合同
- 文檔協(xié)同編輯-深度研究
- 七年級(jí)數(shù)學(xué)新北師大版(2024)下冊(cè)第一章《整式的乘除》單元檢測(cè)習(xí)題(含簡(jiǎn)單答案)
- 2024-2025學(xué)年云南省昆明市盤龍區(qū)高一(上)期末數(shù)學(xué)試卷(含答案)
- 五年級(jí)上冊(cè)寒假作業(yè)答案(人教版)
- 2024年財(cái)政部會(huì)計(jì)法律法規(guī)答題活動(dòng)題目及答案一
- 2025年中考語(yǔ)文復(fù)習(xí)熱搜題速遞之說(shuō)明文閱讀(2024年7月)
- 和達(dá)投資集團(tuán)(杭州)有限公司招聘筆試沖刺題2025
- 綜治工作培訓(xùn)課件
- 2024年云網(wǎng)安全應(yīng)知應(yīng)會(huì)考試題庫(kù)
- 2024年全國(guó)職業(yè)院校技能大賽高職組(智能節(jié)水系統(tǒng)設(shè)計(jì)與安裝賽項(xiàng))考試題庫(kù)-下(多選、判斷題)
- 2024年廣東省事業(yè)單位考試真題及答案5
評(píng)論
0/150
提交評(píng)論