企業(yè)進(jìn)銷存系統(tǒng)-畢業(yè)論文.doc
畢業(yè)設(shè)計(jì)(論文)設(shè)計(jì)(論文)題目: 企業(yè)進(jìn)銷存系統(tǒng) 畢業(yè)論文摘 要隨著科學(xué)技術(shù)的快速發(fā)展,生活中的每個(gè)角落都離不開信息技術(shù),信息技術(shù)的不斷進(jìn)步,互聯(lián)網(wǎng)的影響不斷深刻,帶來(lái)了結(jié)果就是網(wǎng)絡(luò)信息的急劇增長(zhǎng)。而社會(huì)上的各行各業(yè)也無(wú)法脫離于這股時(shí)代大潮流,通過(guò)應(yīng)用最新的信息技術(shù),實(shí)現(xiàn)自己行業(yè)內(nèi)部的信息化,進(jìn)而簡(jiǎn)化和規(guī)范自己行業(yè)內(nèi)部的業(yè)務(wù)行為和規(guī)則,是每個(gè)企業(yè)都要面對(duì)的問(wèn)題。通過(guò)企業(yè)進(jìn)銷存平臺(tái),各種中小型零售商可以在線管理自己的買賣行為,給經(jīng)營(yíng)者帶來(lái)了很大的便利。進(jìn)銷存系統(tǒng)的核心在于其對(duì)自己倉(cāng)庫(kù)數(shù)量的管理,以及貨物入庫(kù)和貨物出庫(kù)時(shí)倉(cāng)庫(kù)與購(gòu)物車之間數(shù)據(jù)的協(xié)同對(duì)應(yīng)。企業(yè)進(jìn)銷存系統(tǒng)在前臺(tái)頁(yè)面上選取JSP作為開發(fā)語(yǔ)言,數(shù)據(jù)庫(kù)選用了MySQL數(shù)據(jù)庫(kù),開發(fā)IDE采用MyEclipse 10,運(yùn)行服務(wù)器采用tomcat 6.0。企業(yè)進(jìn)銷存系統(tǒng)是一個(gè)基于B/S的功能強(qiáng)大的進(jìn)銷存系統(tǒng)。關(guān)鍵詞:進(jìn)銷存,JSP,MySQL,MyEclipse ABSTRACTWith the rapid development of science and technology and life are inseparable from every corner of the continuous advances in information technology, information technology, the Internet continues to profoundly influence brought the result is a sharp increase in network information. And all walks of life in the community also can not escape the trend of the times in which shares, through the application of the latest information technology to achieve their information technology within the industry, and thus simplify and standardize their business practices within the industry and the rules of every enterprise To confront the problem.Invoicing by business platform, a variety of small online retailers manage their trading behavior, to the operators has brought great convenience. Invoicing system synergy between core warehouse and shopping cart data corresponding to its own warehouse when the number of management and storage of goods and cargo out of the library.Enterprise Invoicing system selected on the front page JSP as a development language, database selected MySQL database development IDE using MyEclipse 10, run the server using tomcat 6.0. Invoicing System is an enterprise based on functional B / S powerful invoicing system.Keywords: Invoicing,JSP,MySQL,MyEclipse目 錄摘 要IABSTRACTII第一章 緒論11.1課題背景11.2目的和意義11.3開發(fā)工具及技術(shù)11.3.1開發(fā)工具11.3.2 JSP技術(shù)21.3.3 JavaScript31.4軟硬件需求3第二章 系統(tǒng)分析42.1可行性分析42.1.1技術(shù)可行性52.1.2經(jīng)濟(jì)可行性52.1.3運(yùn)行可行性52.1.4法律可行性52.1.5事件可行性52.2功能模塊分析52.3設(shè)計(jì)的基本思想82.4性能需求92.4.1系統(tǒng)的安全性92.4.2數(shù)據(jù)的完整性92.5界面需求9第三章 數(shù)據(jù)庫(kù)設(shè)計(jì)103.1數(shù)據(jù)庫(kù)的分析與設(shè)計(jì)103.1.1數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)設(shè)計(jì)103.1.2數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)設(shè)計(jì)113.1.3數(shù)據(jù)庫(kù)的連接原理13第四章 系統(tǒng)功能實(shí)現(xiàn)144.1后臺(tái)登陸頁(yè)面144.2基礎(chǔ)模塊164.2.1商品管理174.2.2供應(yīng)商管理194.2.3顧客管理224.3庫(kù)存模塊234.3.1主要實(shí)現(xiàn)254.4出庫(kù)模塊274.1主要實(shí)現(xiàn)29第五章 系統(tǒng)測(cè)試315.1系統(tǒng)測(cè)試目的與意義315.2測(cè)試過(guò)程315.2.1主頁(yè)面的登錄模塊測(cè)試315.3其他錯(cuò)誤32結(jié) 論33參考文獻(xiàn)34致 謝35III畢業(yè)論文第一章 緒論1.1課題背景互聯(lián)網(wǎng)的飛速發(fā)展不斷影響著社會(huì)上各行各業(yè)的經(jīng)營(yíng)情況,從上個(gè)世紀(jì)起,隨著互聯(lián)網(wǎng)在中國(guó)的普及,我國(guó)的許多零售商開始嘗試通過(guò)信息系統(tǒng)來(lái)管理他們的日常業(yè)務(wù)。但由于存在各種因素,例如企業(yè)的業(yè)務(wù)各不相同、信息化的法律規(guī)定也不夠明確、各種物流系統(tǒng)不夠完善,這些因素交織在一起,嚴(yán)重阻礙著信息化走進(jìn)零售企業(yè)。本世紀(jì)以來(lái),中國(guó)的基礎(chǔ)設(shè)施有了長(zhǎng)足的進(jìn)步,之前阻礙信息化的因素也一個(gè)一個(gè)的被解決,企業(yè)進(jìn)銷存系統(tǒng)終于在中小型零售商中蔓延開來(lái)。 1.2目的和意義倉(cāng)儲(chǔ)信息化管理與傳統(tǒng)管理方式比較有很多的優(yōu)點(diǎn)如:1查詢比較方便倉(cāng)儲(chǔ)信息化提供了非常多的查詢途徑,可以通過(guò)品種、日期等途徑進(jìn)行查詢,快速又準(zhǔn)確。2信息量大與過(guò)去的管理方式比較,倉(cāng)儲(chǔ)信息化管理能夠提供大量商品信息。3成本比較低,風(fēng)險(xiǎn)小,不受地點(diǎn)的限制信倉(cāng)儲(chǔ)息化管理最突出的優(yōu)勢(shì)是,存儲(chǔ)的數(shù)據(jù)具有可靠性,與常見(jiàn)的報(bào)表相比,計(jì)算及存儲(chǔ)具有更高的可靠性,這使得經(jīng)營(yíng)者可以更方便的查看當(dāng)前的庫(kù)存和出入庫(kù)信息。 1.3開發(fā)工具及技術(shù)1.3.1開發(fā)工具系統(tǒng)所采用的開發(fā)工具大部分為開源工具,具有較高的穩(wěn)定性,同時(shí)這些工具都有大量的介紹文獻(xiàn)和使用指導(dǎo),是的用戶可以更方便的使用它們進(jìn)行系統(tǒng)的開發(fā)。1.3.1.1 MyEclipseMyEclipse,通常用來(lái)設(shè)計(jì)Java, J2EE的Eclipse插件集合,利用它可以完成對(duì)數(shù)據(jù)庫(kù)和J2EE的開發(fā)。通過(guò)對(duì)應(yīng)用程序服務(wù)器進(jìn)行整合,可以大大的增強(qiáng)運(yùn)算速度。MyEclipse的功能十分強(qiáng)大,幾乎涵蓋了各種設(shè)計(jì)功能。1.3.1.2 Tomcat Tomcat是一種是一個(gè)免費(fèi)的開放源代碼的Web 應(yīng)用服務(wù)器。在訪問(wèn)客戶比較少的情況下被經(jīng)常采納,在設(shè)計(jì)JSP 程序時(shí)成為最好的選擇。換句話說(shuō),將Tomcat服務(wù)器安裝到一臺(tái)電腦上時(shí),可通過(guò)它對(duì)HTML頁(yè)面的訪問(wèn)請(qǐng)求進(jìn)行配合。事實(shí)上,Tomcat可以看成Apache 服務(wù)器基礎(chǔ)上的延伸,但它工作時(shí)相對(duì)比較獨(dú)立,因此當(dāng)tomcat工作時(shí),事實(shí)上它是看成一個(gè)與Apache 服務(wù)器相對(duì)獨(dú)立的進(jìn)程運(yùn)行的。1.3.1.3 MySQL MySQL采用C和C+進(jìn)行設(shè)計(jì),并同時(shí)采納了不同的編譯器來(lái)檢驗(yàn),確定源代碼的可移植性;支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多種操作系統(tǒng);為多種編程語(yǔ)言提供了API;支持多線程,充分對(duì)CPU資源加以利用;提供TCP/IP、ODBC和JDBC等很多數(shù)據(jù)庫(kù)連接途徑;能夠?qū)碛泻芏鄺l記錄的大型數(shù)據(jù)庫(kù)進(jìn)行運(yùn)算。通常來(lái)說(shuō),MySQL所設(shè)計(jì)的功能足以滿足一般的個(gè)人客戶和中小型企業(yè),而且因?yàn)镸ySQL是開放源碼軟件,所以能夠在很大程度上減少整體的費(fèi)用。1.3.2 JSPJSP程序使用了Java編程語(yǔ)言,JSP技術(shù)可以對(duì)動(dòng)態(tài)網(wǎng)頁(yè)進(jìn)行封裝。通過(guò)tags和scriptlets,網(wǎng)頁(yè)還能訪問(wèn)存在于服務(wù)端的資源的應(yīng)用邏輯。JSP可以分離網(wǎng)頁(yè)邏輯與網(wǎng)頁(yè)設(shè)計(jì)和顯示,對(duì)可重用的基于組件的開發(fā)進(jìn)行支撐,更容易的對(duì)基于Web的應(yīng)用程序進(jìn)行設(shè)計(jì)。當(dāng)Web服務(wù)器接收到訪問(wèn)JSP網(wǎng)頁(yè)的請(qǐng)求時(shí),首先運(yùn)行的程序段,接下來(lái)將JSP文件中的HTML代碼和運(yùn)行效果一并返還給用戶。通過(guò)Java文件的插入能夠?qū)?shù)據(jù)庫(kù)、網(wǎng)頁(yè)多重定向等運(yùn)行,從而滿足構(gòu)建動(dòng)態(tài)網(wǎng)頁(yè)所需要的程序。JSP和Servle相同,都可以通過(guò)服務(wù)器端運(yùn)行。由于能夠?qū)⒁粋€(gè)HTML文本返回給用戶端,所以用戶端具備瀏覽器就可以進(jìn)行瀏覽。HTML程序和穿插在內(nèi)部的Java程序可以構(gòu)建JSP網(wǎng)頁(yè)。在服務(wù)器被用戶端訪問(wèn)時(shí),能夠處理相應(yīng)的Java代碼,然后將產(chǎn)生的HTML頁(yè)面再返回給用戶端的瀏覽器。JSP的設(shè)計(jì)關(guān)鍵是Servlet,通常大型的Web應(yīng)用程序的設(shè)計(jì)成果也通過(guò)Java Servlet和JSP的協(xié)作。JSP既擁有了方便快捷的Java程序,又統(tǒng)統(tǒng)的面向用戶,既實(shí)現(xiàn)了平臺(tái)的無(wú)關(guān)性危險(xiǎn)還比較小,可以具備互聯(lián)網(wǎng)的全部?jī)?yōu)勢(shì)。JSP技術(shù)的優(yōu)點(diǎn):(1)一次編寫,到處運(yùn)行。除了系統(tǒng)之外,代碼無(wú)需做任何改動(dòng)。 (2)系統(tǒng)的多平臺(tái)支持。通常情況下,能夠在任何情況下的全部平臺(tái)上進(jìn)行設(shè)計(jì),能夠安排在任何情況中,也能夠在任何情況下進(jìn)行發(fā)展。相比ASP/.net來(lái)說(shuō),優(yōu)點(diǎn)是顯而易見(jiàn)的。(3)強(qiáng)大的可塑性。通過(guò)一個(gè)不大的Jar程序能夠?qū)ervlet/JSP進(jìn)行運(yùn)行,也能夠通過(guò)很多服務(wù)器進(jìn)行集群和負(fù)載平衡,甚至能夠通過(guò)多臺(tái)Application解決問(wèn)題。單臺(tái)服務(wù)器到多臺(tái)服務(wù)器,Java展現(xiàn)了一個(gè)強(qiáng)大的功能。 (4)具有強(qiáng)大和多樣化的開發(fā)工具支持。Java已經(jīng)有了很多的設(shè)計(jì)方法,何況大部分工具都是沒(méi)有花費(fèi)的,這中間有很多都在多種平臺(tái)之下順暢的進(jìn)展。 (5)支持服務(wù)器端組件。只有很有力的服務(wù)器端組件才能支撐web運(yùn)行,因此開發(fā)者可以在調(diào)用web頁(yè)面時(shí)通過(guò)另外的開發(fā)工具來(lái)達(dá)成紛亂效用的組件,來(lái)加強(qiáng)系統(tǒng)的可操作性。JSP可以通過(guò)完善的JAVA BEANS 組件來(lái)達(dá)成紛亂的商務(wù)功能。內(nèi)部對(duì)象表現(xiàn)出:request 用戶端請(qǐng)求,此請(qǐng)求會(huì)涵蓋來(lái)自GET/POST請(qǐng)求的參數(shù); response網(wǎng)頁(yè)傳回用戶端的反應(yīng);管理pageContext 網(wǎng)頁(yè)的屬性;session 與請(qǐng)求相關(guān)的會(huì)話;application servlet正在進(jìn)行的內(nèi)容;out 用來(lái)輸送響應(yīng)的輸出流; config代碼片段配置對(duì)象;pageJSP網(wǎng)頁(yè)本身。1.3.3 JavaScriptJavaScript是一種根據(jù)對(duì)象和情況驅(qū)使而且相對(duì)危險(xiǎn)性比較低的用戶端腳本語(yǔ)言。還可以大范圍的用于用戶端Web設(shè)計(jì)的腳本語(yǔ)言,一般可以用做增加HTML網(wǎng)頁(yè)動(dòng)態(tài)功能,例如反饋用戶的所有操控。JavaScript的一個(gè)關(guān)鍵作用是向?qū)ο蟮墓δ埽鶕?jù)以對(duì)象為基礎(chǔ)的程序開發(fā),能夠用更直接、系統(tǒng)化和能夠反復(fù)利用的方法設(shè)計(jì)程序。根據(jù)HTML程序,可以采用Javascript對(duì)交互式Web網(wǎng)頁(yè)進(jìn)行設(shè)計(jì)。Javascript的應(yīng)用能夠達(dá)成網(wǎng)頁(yè)和客戶之間及時(shí)、動(dòng)態(tài)、交互性的關(guān)系。這樣網(wǎng)頁(yè)可以呈現(xiàn)非常豐富的信息和非常好看的內(nèi)容。在本系統(tǒng)中不少設(shè)計(jì)都采用了javascript技術(shù),例如校驗(yàn)用戶輸入數(shù)據(jù)的有效性等。1.4計(jì)算機(jī)需求硬件需求:CPU:酷睿i3內(nèi)存: 1GB以上主頻:2GBHZ以上硬盤:300GB以上軟件需求:系統(tǒng)版本: Win7 Win8IDE:MyEclipse 10系統(tǒng)服務(wù)器: Tomcat 6.0數(shù)據(jù)庫(kù)版本:MySQL 5.0Java版本:Java 1.6瀏覽器版本:Google Chrome第二章 系統(tǒng)分析2.1可行性分析所謂的可行性分析是指通過(guò)調(diào)查客觀現(xiàn)實(shí),再應(yīng)用的科學(xué)的手段,預(yù)測(cè)自己的開發(fā)計(jì)劃是否具有現(xiàn)實(shí)意義。2.1.1技術(shù)可行性系統(tǒng)的開發(fā)由本人擔(dān)任,在開發(fā)工具上,選用Myeclipse,數(shù)據(jù)庫(kù)采用mysql,開發(fā)語(yǔ)言選擇java,模式采用MVC模式,所有的技術(shù)都是本人大學(xué)期間所學(xué),且這些技術(shù)都經(jīng)歷了時(shí)間的考驗(yàn),被證明是可靠地技術(shù),技術(shù)上同樣具有可行性。2.1.2經(jīng)濟(jì)可行性本系統(tǒng)的運(yùn)行對(duì)機(jī)器本身的硬件要求并不高,也不需要管理人員具有太多的專業(yè)知識(shí),同時(shí)開發(fā)人員由本人擔(dān)任,所以也無(wú)需考慮系統(tǒng)開發(fā)的人力資源成本,所以本系統(tǒng)的開發(fā)在經(jīng)濟(jì)上是可行的。2.1.3運(yùn)行可行性本系統(tǒng)在開發(fā)完成后,所有的模塊都進(jìn)行了相應(yīng)的功能檢測(cè)和穩(wěn)定性檢測(cè),運(yùn)行可行性得到了保證。2.1.4法律可行性本系統(tǒng)擁有自主的只是產(chǎn)權(quán),沒(méi)有使用任何違法的軟件也沒(méi)有交易任何非法的成品,所以在法律可行性上也沒(méi)有需呀擔(dān)心的地方。2.1.5時(shí)間可行性本人的畢業(yè)設(shè)計(jì)有充足的時(shí)間進(jìn)行開發(fā),且前期經(jīng)歷了周密的設(shè)計(jì),因此不存在時(shí)間可行性上的問(wèn)題。綜上所述,開發(fā)一個(gè)網(wǎng)上網(wǎng)上男裝銷售系統(tǒng)是必要可行的。2.2功能模塊分析 按照最初的開題報(bào)告設(shè)想,系統(tǒng)主要分為一下幾個(gè)大的功能模塊。 (1)客戶管理模塊 客戶管理模塊用于管理進(jìn)銷存系統(tǒng)的客戶,功能包括添加客戶,修改客戶,刪除客戶??蛻艄芾砟K的用例圖如圖3-1所示:圖3-1客戶管理模塊用例圖(2)供應(yīng)商管理模塊 供應(yīng)商管理模塊用于管理進(jìn)銷存系統(tǒng)的供應(yīng)商,功能包括添加供應(yīng)商,修改供應(yīng)商,刪除供應(yīng)商。供應(yīng)商管理模塊的用例圖如圖3-2所示:圖3-2供應(yīng)商管理模塊用例圖(3)產(chǎn)品管理模塊 產(chǎn)品管理模塊用于管理進(jìn)銷存系統(tǒng)的產(chǎn)品,功能包括添加產(chǎn)品,修改產(chǎn)品,刪除產(chǎn)品。產(chǎn)品管理模塊的用例圖如圖3-3所示:圖3-3產(chǎn)品管理模塊用例圖 (4)庫(kù)存管理功能庫(kù)存管理模塊用于管理進(jìn)銷存系統(tǒng)的庫(kù)存,功能包括產(chǎn)品入庫(kù),入庫(kù)查詢,庫(kù)存查詢。庫(kù)存管理模塊的用例圖如圖3-4所示:圖3-4庫(kù)存管理模塊用例圖 (5)出庫(kù)管理功能出庫(kù)管理模塊用于管理進(jìn)銷存系統(tǒng)的出庫(kù),功能包括銷售出庫(kù),出庫(kù)查詢,銷售退貨。出庫(kù)管理模塊的用例圖如圖3-5所示:圖圖3-5出庫(kù)管理模塊用例圖 進(jìn)銷存管理人員功能模塊圖2.3系統(tǒng)設(shè)計(jì)的基本構(gòu)想系統(tǒng)設(shè)計(jì)的基本構(gòu)想可以概括為以下幾點(diǎn):1保障開發(fā)速度。由于開發(fā)時(shí)間有限,所以整個(gè)開發(fā)過(guò)程首要的就是保證開發(fā)的進(jìn)度能夠滿足設(shè)計(jì)時(shí)的設(shè)想,這樣才能在計(jì)劃的時(shí)間內(nèi)完成項(xiàng)目2. 系統(tǒng)模塊化。在開發(fā)項(xiàng)目之前就應(yīng)當(dāng)把系統(tǒng)分成較小的模塊,這樣不僅利于掌握開發(fā)的進(jìn)度也方便開發(fā)之后的調(diào)試。3. 界面簡(jiǎn)潔。簡(jiǎn)潔漂亮友好的界面,可以使系統(tǒng)的用戶獲得更好的用戶體驗(yàn)。4系統(tǒng)設(shè)計(jì)應(yīng)當(dāng)周全。系統(tǒng)在設(shè)計(jì)時(shí)應(yīng)當(dāng)盡量使自己的邏輯更加合理,同時(shí)為了以后的需求變動(dòng),系統(tǒng)應(yīng)有較好的擴(kuò)充能力。5. 運(yùn)用B/S模式。B/S模式尤其先天的優(yōu)越性,用戶不需要額外下載特定的客戶端,這使得用戶的使用更為方便。6. 先進(jìn)的設(shè)計(jì)理念。設(shè)計(jì)過(guò)程中應(yīng)當(dāng)應(yīng)用目前最流行的設(shè)計(jì)理念,比如MVC模式,數(shù)據(jù)庫(kù)連接池等。2.4性能需求2.4.1系統(tǒng)的安全性超市的進(jìn)銷存系統(tǒng),在保證功能可用的前提下,也要實(shí)現(xiàn)系統(tǒng)的安全性。1.用戶在使用進(jìn)銷存系統(tǒng)之前,首先要輸入自己的用戶名和密碼,只有通過(guò)系統(tǒng)校驗(yàn)的用戶才有權(quán)限,審核不通過(guò)的用戶無(wú)法登錄系統(tǒng),進(jìn)而也無(wú)法使用系統(tǒng)的任何資源,這種先驗(yàn)證后使用的模式保證了系統(tǒng)的準(zhǔn)確性及可靠性。2.在具體應(yīng)用過(guò)程中對(duì)不同的權(quán)限進(jìn)行限定,權(quán)限不同的用戶在審核通過(guò)登陸后,無(wú)法進(jìn)行無(wú)權(quán)限操作,只有系統(tǒng)管理員能夠操作全部功能;普通的用戶根據(jù)自己的角色不同,只能實(shí)現(xiàn)和應(yīng)用系統(tǒng)的部分功能。2.4.2數(shù)據(jù)的完整性1.為了保證數(shù)據(jù)的可靠,允許少量數(shù)據(jù)冗余,關(guān)鍵的字段不允許為空2.不同表中的數(shù)據(jù)要做到一致性3.不允許非法輸入2.5界面需求隨著開發(fā)技術(shù)的不斷進(jìn)步,程序的前臺(tái)設(shè)計(jì)已經(jīng)成為用戶對(duì)軟件質(zhì)量進(jìn)行評(píng)價(jià)的一條關(guān)鍵指標(biāo),一個(gè)友好的前臺(tái)可以使用戶使用系統(tǒng)的信心和興趣高昂,使得系統(tǒng)的使用率得到提高,JSP應(yīng)用java語(yǔ)言作為其腳本語(yǔ)言,JSP頁(yè)面給位于服務(wù)器的庫(kù)單元提供一個(gè)訪問(wèn)接口用來(lái)實(shí)現(xiàn)基于HTTP的訪問(wèn)。JSP創(chuàng)建動(dòng)態(tài)頁(yè)面十分容易。前臺(tái)界面是指后臺(tái)系統(tǒng)與系統(tǒng)用戶交流的窗口,前臺(tái)界面的作用包括信息的輸入輸出和人機(jī)對(duì)話的界面格式。1.輸出設(shè)計(jì)所謂系統(tǒng)的輸出是指由計(jì)算機(jī)對(duì)用戶輸入的信息進(jìn)行解決,進(jìn)一步生成有用的信息,同時(shí)這種信息符合一定的規(guī)則,這份數(shù)據(jù)由管理者使用,這是設(shè)計(jì)輸出模式的主要目的。系統(tǒng)開發(fā)的過(guò)程與實(shí)施過(guò)程相反,并不是從輸入設(shè)計(jì)到輸出設(shè)計(jì),而是從輸出設(shè)計(jì)到輸入設(shè)計(jì)。這是由于輸出表格與使用者直接相聯(lián)系,設(shè)計(jì)的目的應(yīng)當(dāng)是確保使用者可以很方便的使用輸出表格,并且可以將各部門的有用信息及時(shí)的反映出來(lái)。輸出設(shè)計(jì)的準(zhǔn)繩是既要整體琢磨不同管理層的所有需要,又要簡(jiǎn)潔,不要提供給用戶不需要的信息。2.輸入設(shè)計(jì)輸入數(shù)據(jù)的收集和錄入是比較麻煩的,需要非常多的人力和一定設(shè)備,而且經(jīng)常出錯(cuò)。一旦輸入系統(tǒng)的數(shù)據(jù)不正確,那么處理后的輸出將擴(kuò)大這些錯(cuò)誤,因此輸入數(shù)據(jù)的準(zhǔn)確性對(duì)于整個(gè)系統(tǒng)質(zhì)量的好壞是具有決定性意義的。輸入設(shè)計(jì)有以下幾點(diǎn)原則:1)輸入量應(yīng)盡量保持在能滿足處理要求的最低限度。開發(fā)時(shí)可使用設(shè)置字段初值,下拉式數(shù)據(jù)窗口等方式盡量使用戶鍵盤輸入量減少。隨著輸入量的減少,系統(tǒng)的錯(cuò)誤率也隨之減少,最終達(dá)到減少數(shù)據(jù)的準(zhǔn)備時(shí)間的目的。2)應(yīng)盡可能使輸入的準(zhǔn)備及輸入的過(guò)程進(jìn)行時(shí)比較方便,這樣使錯(cuò)誤的發(fā)生率降低。3)應(yīng)盡量早檢查輸入數(shù)據(jù)(盡量接近原數(shù)據(jù)發(fā)生點(diǎn)),以便使錯(cuò)誤更正比較及時(shí)。4)輸入數(shù)據(jù)盡早地記錄成其處理所需的形式,以防止數(shù)據(jù)由一種介質(zhì)轉(zhuǎn)移到另一種介質(zhì)時(shí)需要轉(zhuǎn)錄而可能發(fā)生的錯(cuò)誤。第三章 數(shù)據(jù)庫(kù)設(shè)計(jì)3.1數(shù)據(jù)庫(kù)的分析與設(shè)計(jì)數(shù)據(jù)庫(kù)是計(jì)算機(jī)信息系統(tǒng)的基礎(chǔ)。信息的收集、更新、加工、統(tǒng)計(jì)、整理、存儲(chǔ)、檢索和傳播等操作只有得到后臺(tái)數(shù)據(jù)庫(kù)的支撐才可以實(shí)現(xiàn)。目前,電腦系統(tǒng)的關(guān)鍵與核心部分就是數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)開發(fā)的優(yōu)劣對(duì)整個(gè)系統(tǒng)的質(zhì)量和速度有著直接影響。數(shù)據(jù)庫(kù)的設(shè)計(jì)一般要可以分為個(gè)步驟:分別是分析需求、設(shè)計(jì)概念、設(shè)計(jì)邏輯、設(shè)計(jì)物理。3.1.1數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)設(shè)計(jì)設(shè)計(jì)概念就是在數(shù)據(jù)分析的基礎(chǔ)上自下而上的對(duì)整個(gè)系統(tǒng)的數(shù)據(jù)庫(kù)概念結(jié)構(gòu)進(jìn)行設(shè)計(jì)。從使用者的角度對(duì)視圖進(jìn)行設(shè)計(jì),之后進(jìn)一步集成視圖,在經(jīng)過(guò)分析從而取得最后的結(jié)果。對(duì)概念進(jìn)行設(shè)計(jì)時(shí)采用實(shí)體聯(lián)系(E-R)的模型開發(fā)措施。E-R模型法的構(gòu)成元素有:實(shí)體、屬性、聯(lián)系,E-R模型可以用E-R圖來(lái)表示,是對(duì)用戶工作環(huán)境中所相關(guān)的事物給予提示,對(duì)實(shí)體特性的描述就是屬性。設(shè)計(jì)概念的出發(fā)點(diǎn)是能夠?qū)ζ髽I(yè)組織信息要求的數(shù)據(jù)庫(kù)概念結(jié)構(gòu)進(jìn)行反映,就是概念模式。概念模式不依附數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu),也不依賴支持?jǐn)?shù)據(jù)庫(kù)的DBMS,獨(dú)立于計(jì)算機(jī)系統(tǒng)。通過(guò)上述分析對(duì)數(shù)據(jù)庫(kù)的需求,與系統(tǒng)概念模型的特點(diǎn)及開發(fā)方法相結(jié)合,我們可以建立E-R模型圖。實(shí)體間關(guān)系屬性實(shí)體3.1.2數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)設(shè)計(jì)我們知道,數(shù)據(jù)庫(kù)概念模型獨(dú)立于任何特定的數(shù)據(jù)庫(kù)管理系統(tǒng),因此,需要根據(jù)具體使用的數(shù)據(jù)庫(kù)管理系統(tǒng)的特點(diǎn)進(jìn)行轉(zhuǎn)換。即轉(zhuǎn)化為按計(jì)算機(jī)觀點(diǎn)處理的邏輯關(guān)系模型,E-R模型向關(guān)系數(shù)據(jù)庫(kù)模型轉(zhuǎn)換應(yīng)遵循下列原則:*每一個(gè)實(shí)體都是一種關(guān)系*所有表的主鍵必須定義成非空*對(duì)于二元聯(lián)系可以按照一對(duì)一、一對(duì)多、多對(duì)多等聯(lián)系來(lái)定義不同表的外鍵。 (1)用戶信息表主要是記錄了用戶基本信息。表結(jié)構(gòu)如表3.1所示。表3.1用戶信息表(tb_user)列名數(shù)據(jù)類型長(zhǎng)度允許空是否主鍵說(shuō)明idint4否是自動(dòng)編號(hào)usernamevarchar50否否賬號(hào)passwordvarchar50否否密碼userlogtimedatetime10否否 上次登錄時(shí)間(2)商品品牌信息表主要是記錄了商品品牌的基本信息,表結(jié)構(gòu)如表3.2所示。表3.2商品品牌信息表(tb_brand)列名數(shù)據(jù)類型長(zhǎng)度允許空是否主鍵說(shuō)明idint 4 否 是品牌IDbrandnamevarchar 50否否品牌名稱introvarchar 200否否品牌介紹(3)商品信息表主要用來(lái)管理系統(tǒng)中商品的相關(guān)信息,表結(jié)構(gòu)如圖3.3所示。表3.3商品信息表(tb_goods)列名數(shù)據(jù)類型長(zhǎng)度允許空是否主鍵說(shuō)明idInt4否是商品IDbrandidInt4否否品牌IDpricedouble10否否價(jià)格introvarchar 200否否商品介紹remarkvarchar50否否備注statusint2否否狀態(tài)(4)供應(yīng)商信息表主要記錄了系統(tǒng)中供應(yīng)商的相關(guān)信息,表結(jié)構(gòu)如表3.4所示。表3.4供應(yīng)商信息表(tb_supplier)列名數(shù)據(jù)類型長(zhǎng)度允許空是否主鍵說(shuō)明idint4否是供應(yīng)商IDsuppliernamevarchar50否否供應(yīng)商名addressvarchar50否否地址postcodevarchar50否否郵編faxvarchar50否否傳真telvarchar50否否電話emailvarchar50否否郵箱statusint4否否狀態(tài)(5)客戶信息表主要記錄系統(tǒng)中客戶的相關(guān)信息,表結(jié)構(gòu)如表3.5所示表3.5客戶信息表(tb_customer)列名數(shù)據(jù)類型長(zhǎng)度允許空是否主鍵說(shuō)明idint4否是客戶IDcustomenamevarchar50否否客戶名稱addressvarchar50否否地址postcodevarchar50否否郵編faxvarchar50否否傳真telvarchar50否否電話emailvarchar50否否郵箱statusint4否否狀態(tài)(6)庫(kù)存信息表主要記錄系統(tǒng)中庫(kù)存的相關(guān)信息,表結(jié)構(gòu)如表3.6所示表3.6庫(kù)存信息表(tb_stock)列名數(shù)據(jù)類型長(zhǎng)度允許空是否主鍵說(shuō)明idint4否是庫(kù)存IDstocknamevarchar50否否倉(cāng)庫(kù)名稱stocknumbervarchar50否否倉(cāng)庫(kù)編號(hào)goodsidvarchar50否否貨物IDnumbervarchar50否否數(shù)量positionvarchar50否否位置statusint4否否狀態(tài)3.1.3數(shù)據(jù)庫(kù)的連接原理采用JDBC連接數(shù)據(jù)庫(kù)的方式,只需在工程中導(dǎo)入對(duì)應(yīng)數(shù)據(jù)庫(kù)的jar包,就可以方便的對(duì)數(shù)據(jù)庫(kù)進(jìn)行連接,在程序中,用Class.forName()方法來(lái)加載驅(qū)動(dòng)程序,在用DriverManager的getConnection()方法就可以創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)連接。程序采用的是DAO模式來(lái)操作數(shù)據(jù)庫(kù),DAO(Data Access Object,數(shù)據(jù)訪問(wèn)對(duì)象),是Java編程中的經(jīng)典模式,已被廣泛應(yīng)用,也是J2EE架構(gòu)中持久層框架的基礎(chǔ)知識(shí),基于分層次式的軟件架構(gòu)來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)操作。DAO模式的主要思想就是從抽象數(shù)據(jù)源獲取與操縱數(shù)據(jù)的方法。抽象數(shù)據(jù)的意義就是編寫應(yīng)用程序的開發(fā)人員不需要關(guān)心數(shù)據(jù)庫(kù)的物理位置,已經(jīng)是何種數(shù)據(jù)庫(kù),只需使用系統(tǒng)封裝好的數(shù)據(jù)庫(kù)中表示記錄的數(shù)據(jù)對(duì)象即可。其思想如圖3.7所示:封裝使用DataSourceDataAccessObjectBusinessObject創(chuàng)建/使用獲取/修改DataTransferObject圖3.7 DAO模式類圖 圖中BussinessObject是業(yè)務(wù)對(duì)象,是使用DAO模式的客戶端;DataTransferObject數(shù)據(jù)傳輸對(duì)象,在應(yīng)用程序不同層次之間傳輸對(duì)象,在一個(gè)分布式應(yīng)用程序中,通??梢蕴岣哒淼男阅埽籇ataObjectAcces數(shù)據(jù)輸入/輸出對(duì)象封裝了對(duì)數(shù)據(jù)源的一些基本操作;DataSource指的是數(shù)據(jù)源??梢詮膱D中看出,DAO模式分離了業(yè)務(wù)邏輯和數(shù)據(jù)羅即將,是的編寫的軟件具有良好的層次式體系結(jié)構(gòu)。本系統(tǒng)為了方便數(shù)據(jù)庫(kù)的操作,主要使用DBContent的對(duì)象來(lái)接一個(gè)數(shù)據(jù)庫(kù)(建立一個(gè)類DBContent),代碼如下:public DBContent()String CLASSFORNAME= com.mysql.jdbc.Driver;/連接數(shù)據(jù)庫(kù)的驅(qū)動(dòng)String url= jdbc:mysql:/localhost:3306/db_nfcp?Unicode=true&haracterEncoding=utf-8;String user=root;String password= root;tryClass.forName(CLASSFORNAME);con= DriverManager.getConnection(url,user,password);/加載數(shù)據(jù)庫(kù)的驅(qū)動(dòng)stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);catch(Exception ex)ex.printStackTrace();在程序需要連接數(shù)據(jù)庫(kù)的地方,只需要生成一個(gè)DBConnet的對(duì)象,就可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行連接并操作。第四章 系統(tǒng)功能實(shí)現(xiàn)在管理信息系統(tǒng)的生命周期中,僅過(guò)了需求分析、系統(tǒng)設(shè)計(jì)等階段之后,便開始了系統(tǒng)實(shí)施階段。在系統(tǒng)分析和設(shè)計(jì)階段,系統(tǒng)開發(fā)工作主要是集中在邏輯、功能和技術(shù)設(shè)計(jì)上,系統(tǒng)實(shí)施階段要繼承此前面各個(gè)階段的工作成果,將技術(shù)設(shè)計(jì)轉(zhuǎn)化為物理實(shí)現(xiàn),因此系統(tǒng)實(shí)施的成果是系統(tǒng)分析和設(shè)計(jì)階段的結(jié)晶。4.1后臺(tái)登陸頁(yè)面1. 綜述:在使用本系統(tǒng)前首先要完成的就是登錄,用戶在登陸界面的指定位置輸入自己的用戶名和密碼,系統(tǒng)會(huì)通過(guò)數(shù)據(jù)庫(kù)在用戶表中查找,如果存在該條記錄,則獲得該用戶的權(quán)限,并將用戶信息放入session中,如果沒(méi)有對(duì)應(yīng)的記錄,則返回登陸頁(yè)面,并顯示登錄失敗的具體原因。 2.程序運(yùn)行截圖如圖4.1所示:圖4.1 用戶登陸頁(yè)面設(shè)計(jì)3.具體實(shí)現(xiàn):用戶在登陸頁(yè)面輸入用戶名和密碼以,點(diǎn)擊登錄,就會(huì)跳轉(zhuǎn)到登陸的service中,在該service中會(huì)對(duì)用戶名,密碼進(jìn)行存在判斷,如果能找到對(duì)應(yīng)的記錄,就提示進(jìn)入到主界面,如果沒(méi)有則提示“用戶名和密碼不正確”,頁(yè)面會(huì)跳回到登陸頁(yè)。關(guān)鍵代碼:request.setCharacterEncoding(gb2312);/對(duì)請(qǐng)求進(jìn)行統(tǒng)一編碼,能正常接收中文 String username=request.getParameter(username); /接收表單中的username屬性 String password=request.getParameter(password);/接收表單中的password屬性 String str=select * from tb_user where + username=+username+ and password=+password+; ResultSet rs=rst.getResult(str);/執(zhí)行SQL語(yǔ)句獲得結(jié)果集對(duì)象 session.setAttribute(isLog,new String(0);/判斷用戶是否登錄,當(dāng)isLog的屬性為0時(shí),說(shuō)明用戶并沒(méi)有登錄 if(!rs.next()/結(jié)果集沒(méi)有找到所要查找的行 out.println(alert(用戶名或密碼錯(cuò)誤);+ parent.location.href=index.jsp;); else session.setAttribute(username,rs.getString(username);/保存登錄信息到session對(duì)象中 session.setAttribute(password,rs.getString(password); session.setAttribute(isLog,new String(1);/將isLog屬性設(shè)置為1 /獲得用戶上次登錄系統(tǒng)的時(shí)間 session.setAttribute(userLastLogTime,rs.getString(userLastLogTime); String strsql=calendar.getDate(); int id=rs.getInt(ID); /將該用戶本次登錄系統(tǒng)的時(shí)間在用戶信息表中更新 String strUpdate=update tb_user set userLastLogTime=+strsql+ where ID=+id+; rst.getResult(strUpdate);/執(zhí)行SQL語(yǔ)句 response.sendRedirect(chat.jsp);/登錄成功后轉(zhuǎn)到系統(tǒng)主頁(yè)面 4.2系統(tǒng)主頁(yè)面1.描述:用戶主頁(yè)面:左方頁(yè)面展示了用戶可操作的幾大功能,進(jìn)入相關(guān)的功能頁(yè)面可以鏈接到子菜單,每個(gè)管理模塊下面都有相應(yīng)的子菜單。2.用戶主界面如圖4.2所示:圖4.2用戶主頁(yè)面系統(tǒng)的攔截器會(huì)對(duì)每個(gè)請(qǐng)求進(jìn)行攔截,防止用戶跳過(guò)登錄使用其他功能if(session.getAttribute(admin)=null) out.print(alert(請(qǐng)您先登錄!);window.open(./login.jsp,_self); 4.2.1產(chǎn)品信息管理4.2.1.1產(chǎn)品信息錄入1. 描述:用戶新建一條產(chǎn)品信息,只有在產(chǎn)品信息中的產(chǎn)品才可以進(jìn)行之后的各種入庫(kù)和出庫(kù)操作。2. 系統(tǒng)產(chǎn)品錄入界面如圖4.3所示:圖4.3 產(chǎn)品信息錄入3.流程圖如下圖4.4所示:登陸系統(tǒng)用戶錄入產(chǎn)品信息 系統(tǒng)驗(yàn)證錄入成功結(jié) 束通過(guò)未通過(guò)圖4.4 產(chǎn)品信息錄入流程圖4.2.1.2產(chǎn)品查詢1.描述:用戶點(diǎn)擊左側(cè)的菜單“產(chǎn)品查詢”,頁(yè)面跳轉(zhuǎn)到產(chǎn)品列表界面,調(diào)用后臺(tái)的方法查詢所有商品信息。2.系統(tǒng)運(yùn)行圖如圖4.5所示圖4.5 產(chǎn)品列表關(guān)鍵代碼: 商品查詢 (Page-1)*pagesize-1)% 商品編號(hào): 規(guī)格: 簡(jiǎn)稱: 商品名稱: 包裝: 產(chǎn)地: 批號(hào): 供應(yīng)商全稱: 計(jì)量單位: 批準(zhǔn)文號(hào): 備注: 4.2.3供應(yīng)商信息管理4.2.2.1供應(yīng)商信息錄入1. 描述:在此頁(yè)面主要是輸入供應(yīng)商信息,包括供應(yīng)商名稱、地址、郵編、電話、郵箱等信息。2. 系統(tǒng)運(yùn)行效果如圖4.7所示:圖4.7 供應(yīng)商信息錄入4.2.2.2供應(yīng)商信息查詢1.描述:用戶通過(guò)選擇不同的條件刪選出自己想獲得的供應(yīng)商記錄。2.系統(tǒng)運(yùn)行效果如圖4.8所示圖4.8 供應(yīng)商列表頁(yè)面供應(yīng)商管理關(guān)鍵代碼:供應(yīng)商信息查詢 (Page-1)*pagesize-1)% 供應(yīng)商全稱: 簡(jiǎn)稱: 地址: 郵政編碼: 電話: 傳真: 聯(lián)系人: 聯(lián)系人電話: E-Mail: 開戶銀行: 4.2.3客戶信息管理4.2.3.1客戶信息管理 1.描述:在此頁(yè)面主要是輸入客戶信息,包括客戶名稱、地址、郵編、電話、郵箱等信息。2.系統(tǒng)運(yùn)行效果如圖4.9所示:圖4.9客戶信息管理客戶管理核心代碼:客戶查詢結(jié)果并分頁(yè)顯示meta