版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
倉(cāng)庫(kù)管理系統(tǒng)畢業(yè)設(shè)計(jì)(論文)PAGEPAGE1PAGE1哈爾濱工業(yè)大學(xué)畢業(yè)設(shè)計(jì)(論文)完整程序設(shè)計(jì)源代碼請(qǐng)聯(lián)系本人,參見(jiàn)豆丁備注和信息。/lzj781219摘要隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,計(jì)算機(jī)在企業(yè)管理中應(yīng)用的普及,利用計(jì)算機(jī)實(shí)現(xiàn)管理企業(yè)勢(shì)在必行。而倉(cāng)庫(kù)管理系統(tǒng)是典型的信息管理系統(tǒng),其開(kāi)發(fā)主要包括后臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù)以及前端應(yīng)用程序的開(kāi)發(fā)兩個(gè)方面。對(duì)前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫(kù)。而對(duì)于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。本文通過(guò)分析瀏覽器/服務(wù)器結(jié)構(gòu)的特點(diǎn)并結(jié)合企業(yè)倉(cāng)儲(chǔ)管理的實(shí)際情況,提出了基于B/S結(jié)構(gòu)中小型企業(yè)倉(cāng)庫(kù)管理系統(tǒng)的基本設(shè)計(jì)思想,簡(jiǎn)要介紹了系統(tǒng)各功能模塊及數(shù)據(jù)庫(kù)的設(shè)計(jì),著重討論了用ASP.NET技術(shù)和SQLServer2005開(kāi)發(fā)企業(yè)倉(cāng)庫(kù)管理系統(tǒng)時(shí)的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)和動(dòng)態(tài)網(wǎng)頁(yè)制作技術(shù),并給出了部分實(shí)現(xiàn)代碼。通過(guò)該系統(tǒng),使學(xué)生可以方便地在企業(yè)內(nèi)部網(wǎng)上進(jìn)行倉(cāng)儲(chǔ)管理。該B/S結(jié)構(gòu)的系統(tǒng)在WindowsXP系統(tǒng)和VS.NET平臺(tái)下開(kāi)發(fā)完成,使用C#作為ASP.NET的開(kāi)發(fā)語(yǔ)言,SQLServer2005作為后臺(tái)數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)系統(tǒng)在安全性、準(zhǔn)確性、運(yùn)行速度方面均有絕對(duì)的優(yōu)勢(shì),并且能夠?qū)θ萘枯^大的數(shù)據(jù)庫(kù)進(jìn)行處理,效率高。系統(tǒng)有較高的安全性和較好的性能。其中連接數(shù)據(jù)庫(kù)的字符串可以隨時(shí)在Web.Config里修改,增加了靈活性和安全性。代碼盡量減少數(shù)據(jù)庫(kù)連接的打開(kāi)時(shí)間等手段來(lái)提高性能。本文中除了有對(duì)程序的系統(tǒng)分析、總體設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)、功能實(shí)現(xiàn)等主體部分外,在這之前還介紹了與企業(yè)倉(cāng)庫(kù)管理系統(tǒng)相關(guān)的信息、VS.NET與SQL的無(wú)縫鏈接技術(shù)等。關(guān)鍵詞倉(cāng)庫(kù)管理;信息管理系統(tǒng);B/S結(jié)構(gòu);數(shù)據(jù)庫(kù)管理論文 第5章總結(jié)AbstractWithrapidadvancementofcomputertechnologyandwidelyappliedincorporationmanagement,itisimperativetoutilizeittorealizeEnterpriseadministration.WarehouseManagementSystemisoneoftypicalManagementInformationSystem,whoseexploitationsmainlyincludeestablishmentandmaintenanceofbackstagedatabaseaswellasfrontapplicationprogrammer.Fortheformer,itisrequiredtosetupunited,completeandhigh-secureddatabase,while,forthelatter,completefunctionsofapplicationprogrammerandsimpleoperation.ThisthesispointsoutbasictheoryofWarehouseManagementSystembasedonexplorerandserver/organizationinsmall-to-medium-sizedenterprises,analyzingcharacteristicsofB/SandrelatingtorealitiesofsituationofWarehouseManagementSystem.ItintroducesdesignofeveryfunctionalgroupanddatabasebrieflyandfocusesondiscussionconcerningtoexploitdatabaseaccesstechnologyanddynamicwebdesignneededforWarehouseManagementSysteminlightofASP.NETtechnologyandSQLServer2005.Italsopresentspartsofimplementationcodes,helpingstudentstooperateWarehouseManagementincorporationlocalsite.ThisB/SsystemwasexploitedontheplatformofWindowsXPandVS.NET,usingC#asASP.NETexploitationlanguage,SQLServer2005asbackstagedatabase,whichpossessesadvantagesinsecurity,precision,speed,etc.andcandealwithdatabaseswithhighcapacityefficiently.Thecharacterconnectingdatabasescanbealteredanytime,whichraisesflexibilityandsecurity,codesreducingthetimetoopendatabaseconnection.Inthisdissertation,besidessystemanalysis,overalldesign,databasedesign,functionalrealities,etc,informationrelatedtoWarehouseManagementSystem,seamlessconnectiontechnologyofVS.NETandSQLarealsointroduced.KeywordsWarehouseManagementManagementInformationSystemB/SStructureDatabaseManagement 目錄 第1章緒論 311.1背景及發(fā)展現(xiàn)狀 311.2系統(tǒng)的構(gòu)建 31第2章系統(tǒng)開(kāi)發(fā)環(huán)境的介紹及選擇 322.1java 322.4B/S結(jié)構(gòu) 342.5開(kāi)發(fā)及運(yùn)行環(huán)境 34第3章需求分析 35第4章系統(tǒng)總體設(shè)計(jì) 364.1數(shù)據(jù)庫(kù)總體設(shè)計(jì) 364.2表關(guān)系圖 384.3表結(jié)構(gòu) 394.3.1管理員表(Admin) 394.3.2房間表(Room) 394.3.3房間類型表(RoomType) 394.3.4預(yù)定表(Ding) 404.3.4會(huì)員表(Client) 404.3.3會(huì)員級(jí)別表(ClientType) 40第5章詳細(xì)設(shè)計(jì) 415.1登錄模塊設(shè)計(jì) 416.2統(tǒng)計(jì)模塊 436.3會(huì)員卡辦理 446.4房間預(yù)定 456.5退房管理 466.6修改密碼 48第7章總結(jié) 49致謝 29參考文獻(xiàn) 30第1章緒論課題背景兵馬未出,糧草先行。古代行兵打仗,最先要考慮的就是物資的準(zhǔn)備和管理,否則要取得勝利是非常困難的一件事。商場(chǎng)如戰(zhàn)場(chǎng),商家不僅要掌握大量的物資,同時(shí)這些物資還要盡可能滿足顧客的需要,這樣才能在激烈的市場(chǎng)競(jìng)爭(zhēng)中獲取勝利。然而管理物資卻是最煩瑣的事情,無(wú)論數(shù)量還是種類,都是數(shù)以萬(wàn)計(jì),用人手工來(lái)做,不僅是難于完成,而且可以說(shuō)是不可能的。在計(jì)算機(jī)普及的今天,用電腦管理物資是必然的趨勢(shì)。以超級(jí)市場(chǎng)為例,走進(jìn)超級(jí)市場(chǎng),琳瑯滿目,各式各樣的商品應(yīng)有盡有,顧客大都滿載而歸,買(mǎi)到稱心如意的商品。而在顧客得到極大方便的同時(shí),商家在管理這些商品上卻花費(fèi)了大量的心血。首先,超級(jí)市場(chǎng)商品種類繁多,數(shù)量龐大,經(jīng)營(yíng)者必須時(shí)刻了解自己商品的庫(kù)存和各種商品的供求,如果盲目購(gòu)進(jìn)顧客不需要的商品或沒(méi)有購(gòu)進(jìn)暢銷的商品,對(duì)經(jīng)營(yíng)者來(lái)說(shuō)都是極大的損失。其次,由于市場(chǎng)瞬間萬(wàn)變,很多商品價(jià)格可能變動(dòng)較大,經(jīng)營(yíng)者可能要不時(shí)改變商品價(jià)格,否則太高則可能無(wú)人問(wèn)津,太低則無(wú)利可圖。再次,在商品社會(huì)的環(huán)境下,競(jìng)爭(zhēng)激烈,為了保證在競(jìng)爭(zhēng)中處于有利地位,經(jīng)營(yíng)者必須時(shí)刻了解市場(chǎng)的需要。當(dāng)然,作為實(shí)際的經(jīng)營(yíng)者,要了解的東西遠(yuǎn)比這幾點(diǎn)多,但無(wú)論怎樣,物資的管理是一切工作中的重點(diǎn),如何管理物資是成敗的關(guān)鍵。對(duì)小經(jīng)營(yíng)者來(lái)說(shuō),也許可以是一本賬本,再加算盤(pán)或計(jì)算器即可。但對(duì)于大公司而言,根本不可能單純依靠賬本,那樣不僅費(fèi)人費(fèi)力,而且當(dāng)出現(xiàn)差錯(cuò)時(shí),難于查改。所以必須借助電腦,把所有數(shù)據(jù)輸入數(shù)據(jù)庫(kù),然后用系統(tǒng)對(duì)這些數(shù)據(jù)進(jìn)行管理,通過(guò)統(tǒng)計(jì)和分析得到各種有用的信息。通過(guò)對(duì)這些情況的仔細(xì)調(diào)查,作者開(kāi)發(fā)了下面的中小型企業(yè)倉(cāng)庫(kù)管理系統(tǒng)。課題目的和意義隨著計(jì)算機(jī)行業(yè)的不斷發(fā)展,企業(yè)管理的應(yīng)用也在不斷隨著其發(fā)展速度進(jìn)行著更新。而現(xiàn)今對(duì)于一個(gè)網(wǎng)絡(luò)應(yīng)用非常廣泛的社會(huì),企業(yè)管理對(duì)計(jì)算機(jī)管理企業(yè)要求更加緊密,更加完善,特別是針對(duì)物資管理方面,企業(yè)的需求更為廣泛,謹(jǐn)慎,所以一個(gè)好的倉(cāng)庫(kù)管理系統(tǒng)對(duì)于企業(yè)來(lái)說(shuō)是由為重要的。系統(tǒng)開(kāi)發(fā)的總體任務(wù)是實(shí)現(xiàn)企業(yè)物資管理的系統(tǒng)化、規(guī)范化和自動(dòng)化,從而達(dá)到提高企業(yè)管理效率的目的。作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對(duì)倉(cāng)庫(kù)信息進(jìn)行管理,有著手工管理所無(wú)法比擬的優(yōu)點(diǎn)。例如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高倉(cāng)庫(kù)管理的效率。開(kāi)發(fā)設(shè)計(jì)思想倉(cāng)庫(kù)管理系統(tǒng)在企業(yè)的整個(gè)供應(yīng)鏈中起著至關(guān)重要的作用,如果不能保證正確的進(jìn)貨和庫(kù)存控制及發(fā)貨,將會(huì)導(dǎo)致管理費(fèi)用的增加,服務(wù)質(zhì)量難以得到保證,從而影響企業(yè)的競(jìng)爭(zhēng)力。傳統(tǒng)簡(jiǎn)單、靜態(tài)的倉(cāng)庫(kù)管理已無(wú)法保證企業(yè)各種資源的高效利用。如今的倉(cāng)庫(kù)作業(yè)和庫(kù)存控制作業(yè)已十分復(fù)雜化多樣化,僅靠人工記憶和手工錄入,不但費(fèi)時(shí)費(fèi)力,而且容易出錯(cuò),給企業(yè)帶來(lái)巨大損失。倉(cāng)庫(kù)庫(kù)存管理的特點(diǎn)是信息處理量比較大。所管理的物資設(shè)備、原材料及零部件種類繁多,而且由于入庫(kù)單、出庫(kù)單、需求單等單據(jù)發(fā)生量特別大,關(guān)聯(lián)信息多,查詢和統(tǒng)計(jì)的方式各不相同,因此在管理上實(shí)現(xiàn)起來(lái)有一定的困難。在管理的過(guò)程中經(jīng)常會(huì)出現(xiàn)信息的重復(fù)傳遞;單據(jù)、報(bào)表種類繁多,各個(gè)部門(mén)規(guī)格不統(tǒng)等問(wèn)題。主要工作和論文結(jié)構(gòu)作者首先對(duì)系統(tǒng)進(jìn)行了需求分析和總體設(shè)計(jì)。在前一步的工作基礎(chǔ)之上,又對(duì)各個(gè)模塊細(xì)分為若干個(gè)子模塊,并分別進(jìn)行了編碼實(shí)現(xiàn)。最后將系統(tǒng)各個(gè)模塊整合,測(cè)試系統(tǒng)各部分整合后的功能,穩(wěn)定性等。第2章系統(tǒng)開(kāi)發(fā)環(huán)境的介紹及選擇2.1javaJava已用動(dòng)態(tài)的交互應(yīng)用軟件使Web栩栩如生。它使開(kāi)發(fā)人員具有‘編寫(xiě)一次到處運(yùn)行TM”的巨大能力。而且,進(jìn)貨助其JavaAPI及其編程語(yǔ)言上的Java虛擬機(jī),它已產(chǎn)生一種分布信息的嶄新模式。這種模式叫做Java企業(yè)計(jì)算,正在幫助各企業(yè)以各種不同的方法取得競(jìng)爭(zhēng)優(yōu)勢(shì)。網(wǎng)管和控制已大大簡(jiǎn)化。軟件分配基本上是免費(fèi)的,而且立即可實(shí)現(xiàn)。電子貿(mào)易已獲得。占有成本大幅度降低。信息和應(yīng)用軟件到處可存取。Java建立在簡(jiǎn)單的前提基礎(chǔ)上,即所有微處理器都應(yīng)講同一種語(yǔ)言——所有內(nèi)部采用芯片的產(chǎn)品都應(yīng)能一起工作,無(wú)縫而方便地共享信息。它已經(jīng)改變企業(yè)和個(gè)人同Internet大交道的方式?,F(xiàn)在,它正在對(duì)消費(fèi)類產(chǎn)品產(chǎn)生明顯的影響,而且從總體上更加深刻地影響企業(yè)計(jì)算。進(jìn)貨助Java,您可自由自在地使用您已擁有的硬件和軟件。這是因?yàn)镴ava是獨(dú)立于平臺(tái)的。它還可使您超越企業(yè)計(jì)算,使應(yīng)用軟件在便攜式計(jì)算機(jī)、信息亭、電視、蜂窩電話和其他大量設(shè)備上運(yùn)行。全世界的公司都已發(fā)現(xiàn)Java數(shù)不勝數(shù)的用途。所有用途可從其無(wú)可比擬的能力,即提高可靠性、安全性和簡(jiǎn)化各種不同計(jì)算產(chǎn)品和環(huán)境的能力中受益非淺,而且節(jié)省的時(shí)間和費(fèi)用十分可觀。Java無(wú)處不在。它已擁有幾百萬(wàn)個(gè)用戶,其發(fā)展速度要快于在它以前的其他任何一種計(jì)算機(jī)產(chǎn)品。它可位于任何地方,而且能到處運(yùn)行。Java正在迅速被用做傳播信息的事實(shí)上標(biāo)準(zhǔn),這是因?yàn)樗瓤山o企業(yè),也可給最終用戶帶來(lái)似乎數(shù)不清的好處。Java的特點(diǎn): 1、Java語(yǔ)言是簡(jiǎn)單的。Java語(yǔ)言的語(yǔ)法與C語(yǔ)言和C++語(yǔ)言很接近,使得大多數(shù)程序員很容易學(xué)習(xí)和使用Java。另一方面,Java丟棄了C++中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動(dòng)的強(qiáng)制類型轉(zhuǎn)換。特別地,Java語(yǔ)言不使用指針,并提供了自動(dòng)的廢料收集,使得程序員不必為內(nèi)存管理而擔(dān)憂。2、Java語(yǔ)言是一個(gè)面向?qū)ο蟮?。Java語(yǔ)言提供類、接口和繼承等原語(yǔ),為了簡(jiǎn)單起見(jiàn),只支持類之間的單繼承,但支持接口之間的多繼承,并支持類與接口之間的實(shí)現(xiàn)機(jī)制(關(guān)鍵字為implements)。Java語(yǔ)言全面支持動(dòng)態(tài)綁定,而C++語(yǔ)言只對(duì)虛函數(shù)使用動(dòng)態(tài)綁定??傊?,Java語(yǔ)言是一個(gè)純的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言。3、Java語(yǔ)言是分布式的。Java語(yǔ)言支持Internet應(yīng)用的開(kāi)發(fā),在基本的Java應(yīng)用編程接口中有一個(gè)網(wǎng)絡(luò)應(yīng)用編程接口(javanet),它提供了用于網(wǎng)絡(luò)應(yīng)用編程的類庫(kù),包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(遠(yuǎn)程方法激活)機(jī)制也是開(kāi)發(fā)分布式應(yīng)用的重要手段。4、Java語(yǔ)言是健壯的。Java的強(qiáng)類型機(jī)制、異常處理、廢料的自動(dòng)收集等是Java程序健壯性的重要保證。對(duì)指針的丟棄是Java的明智選擇。Java的安全檢查機(jī)制使得Java更具健壯性。5、Java語(yǔ)言是安全的。Java通常被用在網(wǎng)絡(luò)環(huán)境中,為此,Java提供了一個(gè)安全機(jī)制以防惡意代碼的攻擊。除了Java語(yǔ)言具有的許多安全特性以外,Java對(duì)通過(guò)網(wǎng)絡(luò)下載的類具有一個(gè)安全防范機(jī)制(類ClassLoader),如分配不同的名字空間以防替代本地的同名類、字節(jié)代碼檢查,并提供安全管理機(jī)制(類SecurityManager)讓Java應(yīng)用設(shè)置安全哨兵。6、Java語(yǔ)言是體系結(jié)構(gòu)中立的。Java程序(后綴為java的文件)在Java平臺(tái)上被編譯為體系結(jié)構(gòu)中立的字節(jié)碼格式(后綴為class的文件),然后可以在實(shí)現(xiàn)這個(gè)Java平臺(tái)的任何系統(tǒng)中運(yùn)行。這種途徑適合于異構(gòu)的網(wǎng)絡(luò)環(huán)境和軟件的分發(fā)。7、Java語(yǔ)言是可移植的。這種可移植性來(lái)源于體系結(jié)構(gòu)中立性,另外,Java還嚴(yán)格規(guī)定了各個(gè)基本數(shù)據(jù)類型的長(zhǎng)度。Java系統(tǒng)本身也具有很強(qiáng)的可移植性,Java編譯器是用Java實(shí)現(xiàn)的,Java的運(yùn)行環(huán)境是用ANSIC實(shí)現(xiàn)的。8、Java語(yǔ)言是解釋型的。如前所述,Java程序在Java平臺(tái)上被編譯為字節(jié)碼格式,然后可以在實(shí)現(xiàn)這個(gè)Java平臺(tái)的任何系統(tǒng)中運(yùn)行。在運(yùn)行時(shí),Java平臺(tái)中的Java解釋r器對(duì)這些字節(jié)碼進(jìn)行解釋執(zhí)行,執(zhí)行過(guò)程中需要的類在聯(lián)接階段被載入到運(yùn)行環(huán)境中。9、Java是高性能的。與那些解釋型的高級(jí)腳本語(yǔ)言相比,Java的確是高性能的。事實(shí)上,Java的運(yùn)行速度隨著JIT(Just-In-Time)編譯器技術(shù)的發(fā)展越來(lái)越接近于C++。10、Java語(yǔ)言是多線程的。在Java語(yǔ)言中,線程是一種特殊的對(duì)象,它必須由Thread類或其子(孫)類來(lái)創(chuàng)建。通常有兩種方法來(lái)創(chuàng)建線程:其一,使用型構(gòu)為T(mén)hread(Runnable)的構(gòu)造子將一個(gè)實(shí)現(xiàn)了Runnable接口的對(duì)象包裝成一個(gè)線程,其二,從Thread類派生出子類并重寫(xiě)run方法,使用該子類創(chuàng)建的對(duì)象即為線程。值得注意的是Thread類已經(jīng)實(shí)現(xiàn)了Runnable接口,因此,任何一個(gè)線程均有它的run方法,而run方法中包含了線程所要運(yùn)行的代碼。線程的活動(dòng)由一組方法來(lái)控制。Java語(yǔ)言支持多個(gè)線程的同時(shí)執(zhí)行,并提供多線程之間的同步機(jī)制(關(guān)鍵字為synchronized)。11、Java語(yǔ)言是動(dòng)態(tài)的。Java語(yǔ)言的設(shè)計(jì)目標(biāo)之一是適應(yīng)于動(dòng)態(tài)變化的環(huán)境。Java程序需要的類能夠動(dòng)態(tài)地被載入到運(yùn)行環(huán)境,也可以通過(guò)網(wǎng)絡(luò)來(lái)載入所需要的類。這也有利于軟件的升級(jí)。另外,Java中的類有一個(gè)運(yùn)行時(shí)刻的表示,能進(jìn)行運(yùn)行時(shí)刻的類型檢查。Java語(yǔ)言的優(yōu)良特性使得Java應(yīng)用具有無(wú)比的健壯性和可靠性,這也減少了應(yīng)用系統(tǒng)的維護(hù)費(fèi)用。Java對(duì)對(duì)象技術(shù)的全面支持和Java平臺(tái)內(nèi)嵌的API能縮短應(yīng)用系統(tǒng)的開(kāi)發(fā)時(shí)間并降低成本。Java的編譯一次,到處可運(yùn)行的特性使得它能夠提供一個(gè)隨處可用的開(kāi)放結(jié)構(gòu)和在多平臺(tái)之間傳遞信息的低成本方式。特別是Java企業(yè)應(yīng)用編程接口(JavaEnterpriseAPIs)為企業(yè)計(jì)算及電子商務(wù)應(yīng)用系統(tǒng)提供了有關(guān)技術(shù)和豐富的類庫(kù)。r2.4B/S結(jié)構(gòu)B/S(Browser/Server)結(jié)構(gòu),即“瀏覽器/服務(wù)器”結(jié)構(gòu)。這種結(jié)構(gòu)是隨著Internet技術(shù)的興起,對(duì)C/S結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶界面完全通過(guò)WWW瀏覽器實(shí)現(xiàn),一部分事務(wù)邏輯在前端實(shí)現(xiàn),但是主要事務(wù)在服務(wù)器端實(shí)現(xiàn)。B/S結(jié)構(gòu):主要利用不斷成熟的WWW服務(wù)器技術(shù),結(jié)合多種Script(VBScript,JavaScript)語(yǔ)言和ActiveX技術(shù),用通過(guò)瀏覽器實(shí)現(xiàn)原來(lái)需要復(fù)雜專用軟件才能實(shí)現(xiàn)的強(qiáng)大功能,并節(jié)約了開(kāi)發(fā)成本,是一種全新的軟件系統(tǒng)技術(shù)。C/S傳統(tǒng)的結(jié)構(gòu)雖然采用了開(kāi)放模式,但這只是系統(tǒng)開(kāi)發(fā)一級(jí)的開(kāi)放性。在特定的應(yīng)用中無(wú)論是Client還是Server端都需要特定的軟件,沒(méi)能提供真正的開(kāi)放環(huán)境。B/S結(jié)構(gòu)則不同,是以TCP/IP協(xié)議為基礎(chǔ)的企業(yè)內(nèi)的WWW服務(wù)器,可以接受安裝有Web瀏覽器程序的Internet終端的訪問(wèn),作為最終用戶,只要通過(guò)Web瀏覽器,各種處理任務(wù)都可以調(diào)用系統(tǒng)資源來(lái)完成。這樣大大簡(jiǎn)化了客戶端,減輕了系統(tǒng)維護(hù)與升級(jí)的成本和工作量,降低了用戶的總體擁有成本。軟件系統(tǒng)的改進(jìn)和升級(jí)越來(lái)越頻繁,B/S架構(gòu)的產(chǎn)品明顯體現(xiàn)其方便性,無(wú)論用戶的規(guī)模有多大,有多少分支結(jié)構(gòu)都不會(huì)增加任何維護(hù)升級(jí)的工作量,所有的操作只要針對(duì)于服務(wù)器進(jìn)行。如果是異地,只需要把服務(wù)器連接上網(wǎng)即可以進(jìn)行維護(hù)和升級(jí),這對(duì)人力、時(shí)間、費(fèi)用的節(jié)省是相當(dāng)驚人的。2.5開(kāi)發(fā)及運(yùn)行環(huán)境系統(tǒng)開(kāi)發(fā)平臺(tái):MyEclipse6.0.1數(shù)據(jù)庫(kù):SQLServer2005運(yùn)行平臺(tái):WindowsXP/Windows2000/Windows2003分辨率:最佳效果1024×768像素第3章需求分析第4章系統(tǒng)總體設(shè)計(jì)4.1數(shù)據(jù)庫(kù)總體設(shè)計(jì)數(shù)據(jù)庫(kù)技術(shù)和計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展相互滲透,相互促進(jìn),已成為當(dāng)今計(jì)算機(jī)領(lǐng)域發(fā)展迅速,應(yīng)用廣泛的兩大領(lǐng)域.數(shù)據(jù)庫(kù)技術(shù)不僅應(yīng)用于事務(wù)處理,并且進(jìn)一步應(yīng)用到情報(bào)檢索,人工智能,專家系統(tǒng),計(jì)算機(jī)輔助設(shè)計(jì)等領(lǐng)域。使用數(shù)據(jù)庫(kù)可以帶來(lái)許多好處:如減少了數(shù)據(jù)的冗余度,從而大大地節(jié)省了數(shù)據(jù)的存儲(chǔ)空間;實(shí)現(xiàn)數(shù)據(jù)資源的充分共享等等。此外,數(shù)據(jù)庫(kù)技術(shù)還為用戶提供了非常簡(jiǎn)便的使用手段使用戶易于編寫(xiě)有關(guān)數(shù)據(jù)庫(kù)應(yīng)用程序。數(shù)據(jù)庫(kù)是通過(guò)數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS-DATABASEMANAGEMENTSYSTEM)軟件來(lái)實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)、管理與使用。數(shù)據(jù)庫(kù)技術(shù)和計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展相互滲透,相互促進(jìn),已成為當(dāng)今計(jì)算機(jī)領(lǐng)域發(fā)展迅速,應(yīng)用廣泛的兩大領(lǐng)域.數(shù)據(jù)庫(kù)技術(shù)不僅應(yīng)用于事務(wù)處理,并且進(jìn)一步應(yīng)用到情報(bào)檢索,人工智能,專家系統(tǒng),計(jì)算機(jī)輔助設(shè)計(jì)等領(lǐng)域。使用數(shù)據(jù)庫(kù)可以帶來(lái)許多好處:如減少了數(shù)據(jù)的冗余度,從而大大地節(jié)省了數(shù)據(jù)的存儲(chǔ)空間;實(shí)現(xiàn)數(shù)據(jù)資源的充分共享等等。此外,數(shù)據(jù)庫(kù)技術(shù)還為用戶提供了非常簡(jiǎn)便的使用手段使用戶易于編寫(xiě)有關(guān)數(shù)據(jù)庫(kù)應(yīng)用程序。數(shù)據(jù)庫(kù)是通過(guò)數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS-DATABASEMANAGEMENTSYSTEM)軟件來(lái)實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)、管理與使用。數(shù)據(jù)庫(kù)是一個(gè)共享的、集成的計(jì)算機(jī)結(jié)構(gòu),它包括最終用戶數(shù)據(jù)和元數(shù)據(jù)。一個(gè)好的數(shù)據(jù)庫(kù)并不是隨意產(chǎn)生的,其內(nèi)容結(jié)構(gòu)必須經(jīng)過(guò)精心設(shè)計(jì)。設(shè)計(jì)優(yōu)良的數(shù)據(jù)庫(kù)會(huì)使數(shù)據(jù)管理變得容易,并產(chǎn)生有價(jià)值的信息;而設(shè)計(jì)糟糕的數(shù)據(jù)庫(kù)則會(huì)成為冗余數(shù)據(jù)的滋生地。冗余數(shù)據(jù)經(jīng)常會(huì)造成難以跟蹤的錯(cuò)誤。關(guān)系數(shù)據(jù)庫(kù)范式理論是在數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程中將要依據(jù)的準(zhǔn)則,數(shù)據(jù)庫(kù)結(jié)構(gòu)必須要滿足這些準(zhǔn)則,才能確保數(shù)據(jù)的準(zhǔn)確性和可靠性。這些準(zhǔn)則被稱為規(guī)范化形式,即范式。在數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程中,對(duì)數(shù)據(jù)庫(kù)進(jìn)行檢查和修改并使它符合范式的過(guò)程叫做規(guī)范化。規(guī)范化是給實(shí)體分配屬性的過(guò)程。它能夠減少數(shù)據(jù)冗余,有助于進(jìn)一步消除由于冗余引起的數(shù)據(jù)異常。規(guī)范化不能夠消除數(shù)據(jù)冗余;相反,它通過(guò)生成有控制的冗余來(lái)連接數(shù)據(jù)庫(kù)表。規(guī)范化通過(guò)一系列稱為范式的階段來(lái)完成。第一范式:設(shè)R是一個(gè)關(guān)系模式。如果R的每個(gè)屬性的值域都是不可分的簡(jiǎn)單數(shù)據(jù)項(xiàng)(成為原子)的集合,則稱這個(gè)關(guān)系模式屬于第一范式。第一范式要求每一個(gè)數(shù)據(jù)項(xiàng)都不能拆分成兩個(gè)或兩個(gè)以上的數(shù)據(jù)項(xiàng)。第二范式(2NF):若關(guān)系模式R是1NF,而且每一個(gè)非主屬性都完全函數(shù)依賴于R的候選鍵,則R稱為第二范式。如果一個(gè)數(shù)據(jù)表已經(jīng)滿足第一范式,而且該數(shù)據(jù)表中的任何一個(gè)非主關(guān)鍵字段的數(shù)指都依賴于該數(shù)據(jù)表的主鍵字段,那么該數(shù)據(jù)表滿足第二范式。第三范式(3NF):如果關(guān)系模式R是1NF,而且它的任何一個(gè)非主屬性都不傳遞地依賴于任何候選鍵,則R稱為第三范式。如果一個(gè)數(shù)據(jù)表已經(jīng)滿足第二范式,而且該數(shù)據(jù)表中的任何兩個(gè)非主鍵字段的數(shù)值之間不存在函數(shù)依賴關(guān)系,那么該數(shù)據(jù)表滿足第三范式。數(shù)據(jù)表規(guī)范化的程度越高,數(shù)據(jù)冗余就越少,同時(shí)造成人為錯(cuò)誤的可能性就越少;同時(shí),規(guī)范化的程度越高,在查詢檢索時(shí)需要做的關(guān)聯(lián)等工作就越多,數(shù)據(jù)庫(kù)在操作過(guò)程中需要訪問(wèn)的數(shù)據(jù)表以及之間的關(guān)聯(lián)也就越多。因此,在數(shù)據(jù)庫(kù)設(shè)計(jì)的規(guī)范化過(guò)程中,要根據(jù)數(shù)據(jù)庫(kù)需求的實(shí)際情況,選擇一個(gè)折中的規(guī)范化程度。4.2表關(guān)系圖表關(guān)系圖:圖3—1表關(guān)系圖4.3表結(jié)構(gòu)管理員表英文名中文名類型是否主鍵id編號(hào)int是Name登陸名varchar(50)Pass密碼varchar(50)出庫(kù)表:英文名中文名類型是否主鍵id編號(hào)int是Name領(lǐng)用人nvarchar(50)Thing_ID物品intThing外鍵Num數(shù)量intWorker_ID經(jīng)手人intWorker外鍵Intime出庫(kù)時(shí)間datetimeWareHouse_ID倉(cāng)庫(kù)編號(hào)intWareHouse外鍵入庫(kù)表:英文名中文名類型是否主鍵id編號(hào)int是Factory_ID供應(yīng)商intFactory外鍵Thing_ID物品編號(hào)intThing外鍵Num數(shù)量intWorker_ID經(jīng)手人intWorker外鍵Intime入庫(kù)時(shí)間datetimeWareHouse_ID倉(cāng)庫(kù)編號(hào)intWareHouse外鍵物品類型表:英文名中文名類型是否主鍵id編號(hào)int是Type類型Varchar(50)廠商表:英文名中文名類型是否主鍵id編號(hào)int是Name姓名Varchar(50)Tel電話Nvarchar(50)Address地址Nvarchar(50)People負(fù)責(zé)人int員工表:英文名中文名類型是否主鍵id編號(hào)int是Name姓名Varchar(50)Age年齡intsex性別nvarcharTel電話Nvarchar(50)Address地址Nvarchar(50)mail郵箱nvarchar庫(kù)存表:英文名中文名類型是否主鍵ID編號(hào)int是WearHouse_ID倉(cāng)庫(kù)編號(hào)intWearHouse_ID外鍵Thing_ID物品騙號(hào)intThing外鍵Num數(shù)量int物品表:英文名中文名類型是否主鍵id編號(hào)int是Name物品名稱Varchar(50)ThingType_ID物品類型intThingType外鍵DanWei單位Varchar(50)Factory生產(chǎn)商nvarchar倉(cāng)庫(kù)表:英文名中文名類型是否主鍵id編號(hào)int是Name姓名NvarcharTel電話Nvarcharaddress倉(cāng)庫(kù)地址nvarchar本章小結(jié)總體設(shè)計(jì)階段,在需求分析的基礎(chǔ)之上規(guī)劃出了系統(tǒng)的功能模塊,以及在此分析基礎(chǔ)上設(shè)計(jì)出的具體的、可以滿足本系統(tǒng)全部需求的數(shù)據(jù)庫(kù)。由于數(shù)據(jù)庫(kù)在設(shè)計(jì)中有非常重要的作用,所以在開(kāi)發(fā)過(guò)程中,在考慮數(shù)據(jù)庫(kù)上的時(shí)間較多。第5章詳細(xì)設(shè)計(jì)5.1登錄模塊設(shè)計(jì)登錄對(duì)話框(如圖4-1),輸入用戶名和密碼,若正確則打開(kāi)主窗體,否則提示密碼錯(cuò)誤,請(qǐng)重新輸入。輸入用戶信息輸入用戶信息求請(qǐng)送發(fā)用戶名是否為空密碼是否為空用戶是否存在密碼是否錯(cuò)誤登陸成功Truefalsefalsefalse登錄窗體代碼如下:request.setCharacterEncoding("UTF-8"); Stringloginname=request.getParameter("name"); StringPWD=request.getParameter("pwd"); Admina=newAdminServer().Login(loginname); if(a==null) out.print("<script>alert('沒(méi)有該用戶');location.replace('../login.jsp');</script>"); elseif(!a.getPass().equals(PWD)) out.print("<script>alert('您輸入的密碼有誤');location.replace('../login.jsp');</script>"); else { session.setAttribute("admin",a); out.print("<script>location.replace('../zhiwei.jsp');</script>"); }6.2物品模塊輸入物品的詳細(xì)信息,然后點(diǎn)擊提交關(guān)鍵功能代碼如下:request.setCharacterEncoding("UTF-8"); Stringid=request.getParameter("id"); Stringname=request.getParameter("name"); Stringdanwei=request.getParameter("danwei"); Stringfactory=request.getParameter("factory"); Stringttype=request.getParameter("ttype"); Stringparam=request.getParameter("param"); Thingb=newThing(); if(param==null) { b.setName(name); b.setDanWei(danwei); b.setFactory(factory); } intcount=0; if(param==null&&id.equals("null")) { intnewid=newThingServer().Add(b,Integer.parseInt(ttype)); List<WareHouse>ws=newWareHouseServer().GetAll("",0,100); for(inti=0;i<ws.size();i++) count=newStockServer().Add(ws.get(i).getId(),newid); } elseif(param==null) { b.setId(Integer.parseInt(id)); count=newThingServer().Edit(b,Integer.parseInt(ttype)); } else count=newThingServer().Del(Integer.parseInt(id)); if(count==0) out.print("<script>alert('操作失敗');location.replace('../addthing.jsp');</script>"); else out.print("<script>alert('操作成功');location.replace('../thing.jsp');</script>");6.3進(jìn)貨輸入進(jìn)貨的信息,進(jìn)貨的倉(cāng)庫(kù),然后點(diǎn)擊提交,提交之后并沒(méi)有入庫(kù),而且放進(jìn)了進(jìn)貨單,最后需要確認(rèn)之后才可以入主加,主要實(shí)現(xiàn)功能代碼如下:List<Jin>js=newArrayList<Jin>(); if(session.getAttribute("jin")!=null) { js=(List<Jin>)session.getAttribute("jin"); } intfid=Integer.parseInt(request.getParameter("factory")); inttid=Integer.parseInt(request.getParameter("thing")); intwid=Integer.parseInt(request.getParameter("worker")); intwhid=Integer.parseInt(request.getParameter("whouse")); intnum=Integer.parseInt(request.getParameter("num")); Jinj=newJin(); j.setFactory(newFactoryServer().GetByID(fid)); j.setThing(newThingServer().GetByID(tid)); j.setWorker(newWorkerServer().GetByID(wid)); j.setWhouse(newWareHouseServer().GetByID(whid)); j.setNum(num); js.add(j); session.setAttribute("jin",js); out.print("<script>location.replace('../addjin.jsp');</script>");6.4出庫(kù)記錄可以查看所有出庫(kù)記錄,并且可以按條件進(jìn)行查詢,上面可以按物品,按經(jīng)手人,按倉(cāng)庫(kù),按時(shí)間段進(jìn)行查詢,關(guān)鍵代碼為:Stringstarttime=request.getParameter("starttime"); Stringendtime=request.getParameter("endtime"); Stringthing=request.getParameter("thing"); Stringworker=request.getParameter("worker"); Stringwhouse=request.getParameter("whouse"); Stringkey=""; if(!thing.equals("0")) key+=String.format("Thing_ID=%sand",thing); if(!worker.equals("0")) key+=String.format("Worker_ID=%sand",worker); if(!whouse.equals("0")) key+=String.format("WareHouse_ID=%sand",whouse); if(starttime.length()>0&&endtime.length()>0) key+=String.format("(intimebetween'%s'and'%s')and",starttime,endtime); elseif(starttime.length()>0&&endtime.length()==0) key+=String.format("datediff(day,'%s',intime)>0and",starttime); elseif(starttime.length()==0&&endtime.length()>0) key+=String.format("datediff(day,'%s',intime)<0and",endtime); if(key.length()>0) key=key.substring(0,key.length()-3); session.setAttribute("key",key); out.print("<script>location.replace('../chu.jsp');</script>");6.5庫(kù)存的查詢及預(yù)警系統(tǒng)會(huì)根據(jù)倉(cāng)庫(kù)進(jìn)行讀取倉(cāng)庫(kù)信息,并且數(shù)量低于10個(gè)的以紅字顯示,關(guān)鍵代碼為:<tableid="sqltable"> <trclass="title"> <td>編號(hào)</td> <td>物品名稱</td> <td>物品單位</td> <td>生產(chǎn)廠商</td> <td>庫(kù)存數(shù)量</td> <td>所在倉(cāng)庫(kù)</td> </tr> <c:forEachitems="${list_s}"var="s"> <trclass="rows"> <td>${s.thing.id}</td> <td> <c:iftest="${s.num<10}"> <bstyle="color:red">${}</b> </c:if> <c:iftest="${s.num>=10}"> ${} </c:if> </td> <td>${s.thing.danWei}</td> <td>${s.thing.factory}</td> <td> <c:iftest="${s.num<10}"> <bstyle="color:red">${s.num}</b> </c:if> <c:iftest="${s.num>=10}"> ${s.num} </c:if> </td> <td>${}</td> </tr> </c:forEach> </table>6.6修改密碼添加完用戶,用戶登陸的默認(rèn)密碼為登陸名,用戶第一次登陸的時(shí)候最好要修改好自己的密碼,確保安全,輸入新密碼,主要代碼如下:request.setCharacterEncoding("UTF-8"); Admina=(Admin)session.getAttribute("admin"); Stringpass=request.getParameter("pwd1"); intcount=newAdminServer().EditPass(a.getId(),pass); if(count==0) out.print("<script>alert('修改失敗
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 深圳市房地產(chǎn)出租合同
- 工業(yè)園區(qū)工業(yè)廠房租賃合同規(guī)范
- 捐資助學(xué)合同
- 商業(yè)房產(chǎn)居間服務(wù)合同范本
- 主題公園裝修用工合同
- 音樂(lè)版權(quán)授權(quán)使用及免責(zé)協(xié)議書(shū)
- 翻譯服務(wù)行業(yè)服務(wù)合同
- 吊裝設(shè)備租賃合同范文
- 2024年水力發(fā)電技術(shù)研發(fā)投資合同
- 科技研發(fā)成果轉(zhuǎn)讓協(xié)議書(shū)
- 2023年高考英語(yǔ)考前必練-非謂語(yǔ)動(dòng)詞(含近三年真題及解析)
- 風(fēng)電工程需要編寫(xiě)的專項(xiàng)施工方案及危大工程目錄
- 商業(yè)計(jì)劃書(shū)(BP)財(cái)務(wù)計(jì)劃風(fēng)險(xiǎn)控制資本退出與附錄的撰寫(xiě)秘籍
- 全國(guó)職工拔河比賽執(zhí)行方案
- 冶金廠、軋鋼廠工藝流程圖
- 七年級(jí)下冊(cè)《Reading 1 A brave young man》優(yōu)質(zhì)課教案牛津譯林版-七年級(jí)英語(yǔ)教案
- 中國(guó)人婚戀狀況調(diào)查報(bào)告公布
- 《木蘭詩(shī)》第1第2課時(shí)示范公開(kāi)課教學(xué)PPT課件【統(tǒng)編人教版七年級(jí)語(yǔ)文下冊(cè)】
- GB/T 11144-2007潤(rùn)滑液極壓性能測(cè)定法梯姆肯法
- 國(guó)家開(kāi)發(fā)銀行
- 板帶生產(chǎn)工藝5(熱連軋帶鋼生產(chǎn))課件
評(píng)論
0/150
提交評(píng)論