超市進銷存管理系統(tǒng)論文_第1頁
超市進銷存管理系統(tǒng)論文_第2頁
超市進銷存管理系統(tǒng)論文_第3頁
超市進銷存管理系統(tǒng)論文_第4頁
超市進銷存管理系統(tǒng)論文_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、摘 要超市的日常管理工作往往是很復雜,很繁瑣的,再加上管理的貨物種類繁多,因此超市管理必須實現(xiàn)計算機化。超市進銷存管理系統(tǒng)是用計算機對超市貨物的庫存和貨物的進出進行管理的一種計算機應用技術(shù),在計算機還未普及之前超市的庫存管理都是由工作人員手工書寫的方式來操作的,那樣很容易出現(xiàn)差錯而造成不必要的損失?,F(xiàn)在一般的超市都采用計算機進行智能化管理,用計算機作為管理工具可以幫助管理員進行更有效、更快捷的超市庫存管理工作。超市進銷存管理系統(tǒng)是典型的管理信息系統(tǒng)(MIS),其開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護以及前端應用系統(tǒng)的開發(fā)兩個方面。對于前者要求建立起數(shù)據(jù)一致性和完整性強、數(shù)據(jù)安全性好的數(shù)據(jù)庫。而對于

2、后者則要求應用系統(tǒng)功能完備、易使用等特點。超市進銷存管理系統(tǒng)要實現(xiàn)的功能非常多,最重要的是對貨物的管理,包括貨物的買入(進貨)、貨物的賣出(銷貨)、貨物的存儲(庫存)。本系統(tǒng)采用Java語言和Oracle 10g數(shù)據(jù)庫進行開發(fā)。利用Java語言進行設計,基本實現(xiàn)了對貨物的管理工作,另外添加了一些很人性化的操作提示,例如用戶可以通過點擊幫助圖標去查看幫助文檔,里面附有詳細的圖表及文字說明。利用Oracle 10g做后臺數(shù)據(jù)庫,不為數(shù)據(jù)量大所困,精密的權(quán)限控制,確保核心數(shù)據(jù)的萬無一失。關(guān)鍵詞:進銷存管理;庫存;MIS;數(shù)據(jù)庫AbstractThe daily management work of

3、supermarket is often very complex, very tedious, plus management categories of goods is numerous, therefore the supermarket management must realize computerized. The supermarket purchase-sell-stock management system is a technology with computer to manage goods, before computer has not been popular

4、the inventory management is operated by staff manual in writing way, it's easy to go wrong and can cause unnecessary losses. Now the general supermarkets use computer to manage, by using the computer as a management tool can help administrators more effectively and more efficient to manage the d

5、aily work of supermarket. Supermarket purchase-sell-stock management system is the typical information management system (MIS), its development mainly includes the setting and maintenance of database and the programming of the frontend application. The former required establish data consistency and

6、integrality, data security good storehouse. For the latter requires a complete function of application program, easy to use, etc. Supermarket purchase-sell-stock management system can realize a lot of the functions, the most important of it is the management of goods, including goods purchase (stock

7、), goods sell (sales), cargo storage (stock). Supermarket purchase-sell-stock management system mainly use the JAVA language and Oracle 10g database,first design the system use the JAVA language, basically achieved the management of goods and also achieved other functions,for example the help docume

8、nt. Use Oracle 10g database to operation the data, not for rapid and stable operation of large amount of data, precision trapped access control, ensure the safe of the core data.Key words : purchase-sell-stock managemant;stock;MIS;database目 錄目 錄1 緒論11.1 研究背景11.2 研究意義11.3 可行性研究22 開發(fā)軟件(技術(shù))簡介32.1 Java語

9、言簡介32.2 J2SE技術(shù)介紹32.3 工廠模式介紹32.4 JDBC簡介32.5 開發(fā)環(huán)境及環(huán)境配置42.5.1 系統(tǒng)環(huán)境及Java環(huán)境配置42.5.2 C/S簡介42.5.3 MyEclipse簡介52.5.4 數(shù)據(jù)庫開發(fā)工具選擇及配置52.5.5 對性能的一般規(guī)定62.5.6 其他專門要求62.5.7 對安全性的要求62.5.8 運行環(huán)境規(guī)定63 系統(tǒng)分析83.1 系統(tǒng)整體功能分析83.2 系統(tǒng)開發(fā)的特點83.3 系統(tǒng)需求分析94 數(shù)據(jù)庫設計114.1 數(shù)據(jù)庫的引入114.2 數(shù)據(jù)庫概念設計E-R圖124.2.1 實體與屬性及實體之間的聯(lián)系124.2.2 數(shù)據(jù)庫的部分E-R圖124.3

10、 數(shù)據(jù)庫的邏輯設計134.4 數(shù)據(jù)庫的完整性和安全性154.4.1 數(shù)據(jù)庫的完整性154.4.2 數(shù)據(jù)庫的安全性165 詳細設計175.1 設計思想175.2 設計語言185.3 數(shù)據(jù)庫的連接195.4 系統(tǒng)設計215.4.1 銷售管理功能模塊225.4.2 采購管理功能模塊245.4.3 倉庫盤點功能模塊265.4.4 利潤分析功能模塊285.4.5 登陸模塊285.4.6 員工管理功能模塊315.4.7 輔助模塊316 總結(jié)32綜上所述,此系統(tǒng)能夠完成預定功能,具有一定的安全性和健壯性,符合預期目標。32參考文獻33致謝34IV緒 論1 緒論1.1 研究背景隨著現(xiàn)代科學技術(shù)的迅猛發(fā)展,計算

11、機技術(shù)已經(jīng)滲透到各個領域,成為各行業(yè)必不可少的工具,特別是Internet技術(shù)的推廣和信息高速公路的建立,使IT產(chǎn)業(yè)在市場競爭中越發(fā)顯示出其獨特的優(yōu)勢,步入信息化時代,有巨大的數(shù)據(jù)信息等待加工處理和傳輸,這使得對數(shù)據(jù)庫的進一步開發(fā)和利用顯得尤為迫切。作為國內(nèi)市場的一些中小型超市,它們在信息化過程中的步伐要落后于大中型超市,而對于這些企業(yè)的資源管理,信息的存儲和處理也顯得迫切需要,要適應市場競爭,就需要有高效的處理方式和管理方法,因此加快超市的信息化進程是必不可少的。我國的超市在20世紀90年代初期形成,現(xiàn)在已經(jīng)成為我國零售業(yè)的一種重要形態(tài),為國民經(jīng)濟的發(fā)展發(fā)揮了重要的作用。隨著經(jīng)濟的快速發(fā)展,

12、超市的經(jīng)營管理也變得愈加復雜,早期的售貨員站柜臺的形式早已不能滿足現(xiàn)有銷售業(yè)的發(fā)展,這樣就迫切地需要引入新的管理技術(shù)。超市形態(tài)具有種種優(yōu)點,但在目前狀況下,它仍存在零售業(yè)所共有的落后的一面,如:不能有效地管理每種商品,收款結(jié)算速度慢,容易出現(xiàn)營業(yè)差錯,不宜進行商品調(diào)價,盤點效率低等,而且在超市日常管理中,商品的進、銷、存等決策以經(jīng)驗為主,缺乏實時分析功能,管理人員對及時傳遞資料的要求始終得不到滿足。超市日常所需要處理的數(shù)據(jù)量也逐漸增大,商業(yè)運轉(zhuǎn)的中間環(huán)節(jié)也越來越多,原始的人工管理已無法應對這復雜的市場。超市進銷存管理系統(tǒng)依靠現(xiàn)代化的計算機信息處理技術(shù)來管理超市,從而節(jié)省了大量的人力、物力,改善

13、了員工的工作條件,減輕了勞動強度,并且能夠快速對商品的進、銷、存等狀況和各種反饋信息進行分析,使管理人員快速對市場的變化做出相應的決策,加快超市經(jīng)營管理效率。1.2 研究意義隨著超市商品的大量增加,其管理難度越來越大。在計算機技術(shù)飛速發(fā)展的今天,將計算機這一信息處理器應用到超市的日常管理已是勢在必然。于是,超市進銷存管理系統(tǒng)便應運而生。這也為超市管理帶來前所未有的改變,同時為企業(yè)帶來意想不到的經(jīng)濟效益和社會效益。這主要體現(xiàn)在以下幾個方面:(1) 極大的提高了超市工作人員的工作效率,避免了以往入出存流程繁瑣、雜亂和周期長等弊端。(2) 超市進銷存管理實現(xiàn)了操作自動化和信息電子化,全面提高了超市的

14、管理水平。(3) 基于超市進銷存管理的全面自動化,可以大大減少入庫管理、出庫管理及庫存管理中的漏洞,可以節(jié)約大量管理開支,增加企業(yè)的收入。1.3 可行性研究 管理系統(tǒng)是一個信息化、智能化和先進管理理念的集合體。而管理是一個動態(tài)過程,在其運行過程中要采取多項措施。所以在管理中獲得經(jīng)濟效益是一個綜合效益,要對它進行直接定量的分析是比較困難的。一般新系統(tǒng)帶來的經(jīng)濟效益是次要的,其最主要的表現(xiàn)就是減少了企業(yè)管理費用和人力開支。而其它一些繁瑣的事務都通過新系統(tǒng)來加以分析解決,不僅節(jié)省了大量的時間,還為企業(yè)的各項決策提供了寶貴的資料,為企業(yè)帶來巨大的經(jīng)濟效益。超市的管理基礎工作和各項管理制度比較健全,執(zhí)行

15、嚴格,原始數(shù)據(jù)采集完整,保存良好。本系統(tǒng)開發(fā)僅需要計算機一臺,系統(tǒng)本身對硬件和軟件的要求都不高且系統(tǒng)兼容性很強,平臺的移植性也很好。在外部條件上有同學的幫助,并且方便上網(wǎng)查找資料,同時還有老師的熱心指導等,這也增加了我完成該系統(tǒng)的可能性。如今,各種進銷存系統(tǒng)的開發(fā)已經(jīng)相當成熟,出現(xiàn)了幾大主流的開發(fā)語言和工具,都可以非常有效的支持開發(fā)這樣一個系統(tǒng)。同時作為本系統(tǒng),也有許多成功的進銷存管理系統(tǒng)的經(jīng)驗可以借鑒,另外現(xiàn)在超市的經(jīng)營者大多具備電腦基本操作知識,對于必要的專業(yè)操作經(jīng)短期培訓即可。所以從技術(shù)的角度來說,也是可行的。本系統(tǒng)采用基于Windows的圖形用戶界面,而該系統(tǒng)是大家熟悉的操作系統(tǒng),對于

16、那些有一般的計算機知識的人員就可以輕松上手。而整個超市管理系統(tǒng)采用最友好的交互界面,簡潔明了,不需要對數(shù)據(jù)庫進行深入的了解。綜合以上方面的研究,無論是從經(jīng)濟上或者技術(shù)上還是操作上開發(fā)本系統(tǒng)都是可行的。2開發(fā)軟件(技術(shù))簡介2 開發(fā)軟件(技術(shù))簡介2.1 Java語言簡介Java語言是美國Sun公司于1995年推出的一種簡單的、面向?qū)ο蟮?、分布式的、可解釋的、鍵壯的、安全的、結(jié)構(gòu)的、中立的、可移植的、性能很優(yōu)異的多線程的、動態(tài)的語言。其前身為OAK語言,是SUN公司為一些消費性電子產(chǎn)品而設計的一個通用環(huán)境。他們最初的目的只是為了開發(fā)一種獨立于平臺的軟件技術(shù)。經(jīng)過Sun公司的工程師的不懈努力以及全

17、世界無數(shù)的編程愛好者的使用,Java終于發(fā)展成為今天這樣一個集桌面(J2SE)、網(wǎng)絡(J2EE)、移動平臺(J2ME)應用為一體的功能強大的編程語言。目前Java由于其平臺無關(guān)及分布式特性,最重要的應用是在網(wǎng)絡應用上。2.2 J2SE技術(shù)介紹Java SE是Java平臺標準版的簡稱(Java Platform, Standard Edition)(also known as Java 2 Platform) ,用于開發(fā)和部署桌面、服務器以及嵌入設備和實時環(huán)境中的Java應用程序。Java SE包括用于開發(fā)Java Web服務的類庫,同時,Java SE為Java EE提供了基礎。 Java S

18、E(Java Platform, Standard Edition,Java標準版)就是基于JDK和JRE的。2.3 工廠模式介紹Java工廠模式主要分為三類:簡單工廠模式、工廠方法模式和抽象工廠模式。這三種模式逐步抽象,并且更具一般性。工廠模式有三個參與者:抽象產(chǎn)品(Product)、工廠(Creator)和具體產(chǎn)品(ConcreteProduct)。工廠模式就相當于創(chuàng)建實例對象的new,我們經(jīng)常要根據(jù)類Class生成實例對象,如A a = new A(),工廠模式也是用來創(chuàng)建實例對象的,可能多做一些工作,但會給你的系統(tǒng)帶來更大的可擴展性和盡量少的修改量,同時也減少了層之間的耦合性。2.4

19、JDBC簡介JDBC(Java Database Connectivity)提供連接各種關(guān)系數(shù)據(jù)庫的統(tǒng)一接口,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。JDBC為工具/數(shù)據(jù)庫開發(fā)人員提供了一個標準的API,據(jù)此可以構(gòu)建更高級的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠用純 Java API 編寫數(shù)據(jù)庫應用程序,同時,JDBC也是個商標名。MIS 管理員們都喜歡 Java 和 JDBC 的結(jié)合,因為它使信息傳播變得容易和經(jīng)濟。企業(yè)可繼續(xù)使用它們安裝好的數(shù)據(jù)庫,并能便捷地存取信息,即使這些信息是儲存在不同數(shù)據(jù)庫管理系統(tǒng)上。新程序的開發(fā)期很短。安裝和版本控制將大為簡化。程序員

20、可只編寫一遍應用程序或只更新一次,然后將它放到服務器上,隨后任何人就都可得到最新版本的應用程序。對于商務上的銷售信息服務, Java 和JDBC 可為外部客戶提供獲取信息更新的更好方法。2.5 開發(fā)環(huán)境及環(huán)境配置2.5.1 系統(tǒng)環(huán)境及Java環(huán)境配置開發(fā)及測試的系統(tǒng)環(huán)境,我選擇了Microsoft Windows XP。要開發(fā)C/S架構(gòu)項目,首先必須要求有Java環(huán)境,我選擇了jdk1.6.0_12。IDE工具則選擇了Eclipse。各種軟件和工具安裝完成后,必須相應的配置Windows XP的系統(tǒng)環(huán)境變量。2.5.2 C/S簡介C/S(Client/Server)即客戶機/服務器,在客戶機/

21、服務器網(wǎng)絡中,服務器是網(wǎng)絡的核心,而客戶機是網(wǎng)絡的基礎,客戶機依靠服務器獲得所需要的網(wǎng)絡資源,而服務器為客戶機提供網(wǎng)絡必須的資源。這里客戶和服務器都是指通信中所涉及的兩個應用進程(軟件)。使用計算機的人是計算機的“客戶”(client),把運行服務器程序的機器稱為server。它是軟件系統(tǒng)體系結(jié)構(gòu),通過它可以充分利用兩端硬件環(huán)境的優(yōu)勢,將任務合理分配到 Client端和Server端來實現(xiàn),降低了系統(tǒng)的通訊開銷。目前大多數(shù)應用軟件系統(tǒng)都是Client/Server形式的兩層結(jié)構(gòu)。C/S結(jié)構(gòu)的優(yōu)點是能充分發(fā)揮客戶端PC的處理能力,很多工作可以在客戶端處理后再提交給服務器。對應的優(yōu)點就是客戶端響應

22、速度快。C/S架構(gòu)軟件的優(yōu)勢與劣勢如下:(1) 應用服務器運行數(shù)據(jù)負荷較輕。最簡單的C/S體系結(jié)構(gòu)的數(shù)據(jù)庫應用由兩部分組成,即客戶應用程序和數(shù)據(jù)庫服務器程序。二者可分別稱為前臺程序與后臺程序。運行數(shù)據(jù)庫服務器程序的機器,也稱為應用服務器。一旦服務器程序被啟動,就隨時等待響應客戶程序發(fā)來的請求;客戶應用程序運行在用戶自己的電腦上,對應于數(shù)據(jù)庫服務器,可稱為客戶電腦,當需要對數(shù)據(jù)庫中的數(shù)據(jù)進行任何操作時,客戶程序就自動地尋找服務器程序,并向其發(fā)出請求,服務器程序根據(jù)預定的規(guī)則作出應答,送回結(jié)果,應用服務器運行數(shù)據(jù)負荷輕。(2) 數(shù)據(jù)的存儲管理功能較為透明。在數(shù)據(jù)庫應用中,數(shù)據(jù)的儲存管理功能,是由服

23、務器程序和客戶應用程序分別獨立進行的,前臺應用登陸后臺數(shù)據(jù)庫有一定的規(guī)則,并且通常把那些不同的(不管是已知還是未知的)運行數(shù)據(jù),在服務器程序中不集中實現(xiàn),例如訪問者的權(quán)限限制,編號不可以重復等必須有客戶才能建立起來這樣的規(guī)則。所有這些,對于工作在前臺程序上的最終用戶,是“透明”的,他們無須過問(通常也無法干涉)背后的過程,就可以完成自己的一切工作。在客戶服務器架構(gòu)的應用中,前臺程序不是非常“瘦小”,麻煩的事情都交給了服務器和網(wǎng)絡。(3) C/S架構(gòu)的劣勢是高昂的維護成本且投資大。首先,采用C/S架構(gòu),要選擇適當?shù)臄?shù)據(jù)庫平臺來實現(xiàn)數(shù)據(jù)庫數(shù)據(jù)的真正“統(tǒng)一”,使分布于兩地的數(shù)據(jù)同步完全交由數(shù)據(jù)庫系統(tǒng)

24、去管理,但邏輯上兩地的操作者要直接訪問同一個數(shù)據(jù)庫才能有效實現(xiàn),有這樣一些問題,如果需要建立“實時”的數(shù)據(jù)同步,就必須在兩地間建立實時的通訊連接,保持兩地的數(shù)據(jù)庫服務器在線運行,管理工作人員既要對服務器維護管理,又要對客戶端維護和管理,這需要高昂的投資和復雜的技術(shù)支持,維護成本很高,維護任務量大。2.5.3 MyEclipse簡介MyEclipse企業(yè)級工作平臺(MyEclipse Enterprise Workbench ,簡稱MyEclipse)是對Eclipse IDE的擴展,利用它我們可以在數(shù)據(jù)庫和J2EE的開發(fā)、發(fā)布,以及應用程序服務器的整合方面極大的提高工作效率。它是功能豐富的J2

25、EE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate。2.5.4 數(shù)據(jù)庫開發(fā)工具選擇及配置Oracle數(shù)據(jù)庫系統(tǒng)最早于1979年推出。1984年完成Oracle PC版。1997年發(fā)布Oracle8, 1999年推出Oracle8i。2001年,Oracle公司在Oracle8i數(shù)據(jù)庫的基礎上推出了新一代基于Internet電子商務構(gòu)架的網(wǎng)絡數(shù)據(jù)庫解決方案Oracle9i。Oracle9i中的“i”是什么意思呢?Oracle將自己置身于Internet計算模型,這里的i其實可以簡單

26、理解成支持Internet。Oracle9i數(shù)據(jù)庫服務器在群集技術(shù)、高可用性、商業(yè)智能、安全性、系統(tǒng)管理等方面都實現(xiàn)了新的突破,成為較完整的Internet數(shù)據(jù)庫之一。Oracle9i應用服務器是Oracle Internet平臺的一個重要組成部分,它同數(shù)據(jù)庫服務器和開發(fā)工具套件結(jié)合在一起,為創(chuàng)建、提交和管理Internet應用提供了所需要的一切。Oracle9i開發(fā)工具套件緊密地同數(shù)據(jù)庫服務器和應用服務器集成為一體,提供了一套完整的集成開發(fā)工具,使開發(fā)人員能夠輕易、快速地創(chuàng)建Internet應用程序。主要包含三大類的軟件:數(shù)據(jù)庫服務器、應用服務器和開發(fā)工具套件。數(shù)據(jù)庫服務器(Oracle 9

27、i)包括企業(yè)版、標準版本和個人版本。企業(yè)版主要用于構(gòu)建安全的、可靠的、大容量的互聯(lián)網(wǎng)應用和數(shù)據(jù)倉庫,面向企業(yè)級的應用;標準版本提供了能夠通過Web瀏覽器進行管理的高性能數(shù)據(jù)服務,面向部門級應用;個人版是Oracle9i全功能的單用戶版本,面向開發(fā)技術(shù)人員。Oracle 9i應用服務器包括企業(yè)版和標準版。企業(yè)版主要用于構(gòu)建互聯(lián)網(wǎng)應用,可以用無線功能的組件進行功能擴充,面向企業(yè)應用;標準版,建立面向部門級的Web應用。開發(fā)工具套件主要包括一些開發(fā)的輔助工具。比如:JDeveloper、Report Developer和Sql *Plus等工具。2.5.5 對性能的一般規(guī)定硬件服務器:硬件要求有一臺

28、可以滿足日常工作的PC。2.5.6 其他專門要求超市進銷存管理系統(tǒng)對數(shù)據(jù)庫操作不是很頻繁,可以使用SQL Server 2005、MYSQL、Oracle 10g等做數(shù)據(jù)庫服務器均可以滿足用戶的訪問操作需求。2.5.7 對安全性的要求在配置服務器時會保障軟、硬服務器的的相對安全性。超市進銷存管理系統(tǒng)的使用者分為兩種權(quán)限的級別(管理員和普通用戶),在登陸系統(tǒng)時要驗證用戶的權(quán)限,根據(jù)不同的權(quán)限所能執(zhí)行的操作是不同的,這樣保證了后臺數(shù)據(jù)的安全性。2.5.8 運行環(huán)境規(guī)定(1) 設備及分布處理器和內(nèi)存:CPU P4以上/512M內(nèi)存以上硬盤:80G硬盤以上 (2) 支撐軟件操作系統(tǒng)版本:Windows

29、2000/WindowsXP/Windows2k/WindowsNT/Linux/Unix數(shù)據(jù)庫管理系統(tǒng):服務器使用Oracle 10g/SQL Server 2005/ SQL Server 2008/MySql10系統(tǒng)分析 3 系統(tǒng)分析在系統(tǒng)的開發(fā)前,首先要進行相應的系統(tǒng)分析,從中獲得解決方案。本章就是先對系統(tǒng)的整體需求進行分析,然后在此基礎上來劃分系統(tǒng)的組成模塊,完成系統(tǒng)的整體架構(gòu)的設計。3.1 系統(tǒng)整體功能分析本系統(tǒng)根據(jù)其具體功能,設計其功能模塊如圖3-1所示。登陸界面主界面商品瀏覽售出銷售管理采購管理倉庫管理員工管理利潤分析管理銷售查詢采購記錄查詢種類廠商管理盤點信息查詢查看倉庫盤點

30、查看分析記錄商品分析員工顯示修改員工添加圖3-1 系統(tǒng)功能模塊圖整個前臺模塊是本系統(tǒng)最重要的模塊,它提供了超市管理平臺的日常管理操作,可以滿足普通用戶和管理員對商品庫存信息查詢等的需求,而刪除、修改信息則只有管理員權(quán)限操作,普通用戶也不能進行用戶管理操作。3.2 系統(tǒng)開發(fā)的特點本系統(tǒng)開發(fā)的目標是一個界面清晰、易理解、易使用的,能夠滿足用戶對超市的日常管理工作。在以往系統(tǒng)開發(fā)經(jīng)驗的基礎上,結(jié)合其他進銷存管理系統(tǒng)的特點,對本系統(tǒng)應具有的功能特點總結(jié)如下:(1) 管理員可以對商品進行增刪查改和對數(shù)據(jù)進行更新。(2) 具有很強的兼容性,可以在任何操作系統(tǒng)的電腦上使用。(3) 采用最新的編程技術(shù),利用J

31、ava編程,使系統(tǒng)框架更完整,更容易更新。3.3 系統(tǒng)需求分析需求分析是對系統(tǒng)將要實現(xiàn)的功能的大致描述,能夠把設計系統(tǒng)的基本思路都列出來,它在系統(tǒng)開發(fā)中起著重要的作用。下面分別介紹。(1) 銷售管理功能模塊此功能模塊的主要功能是對商品銷售信息進行管理。管理員可以借此更快的了解和掌握商品的銷售信息。(2) 庫存管理功能模塊此功能模塊可以幫助管理員進行商品庫存的查看。管理員可以根據(jù)商品信息顯示的顏色輕易的判斷商品庫存情況。 管理員還可以通過輸入商品的編號進行有目的的查看商品庫存信息。(3) 員工管理功能模塊此功能模塊主要是對可以使用此系統(tǒng)的用戶進行管理,不同類別的用戶權(quán)限不同。管理員可以查看、修改

32、和刪除具體某個員工的詳細信息,而普通用戶不可以進行此功能操作。(4) 商品進貨管理功能模塊此功能模塊作用是:管理員可以進行商品進貨信息進行查看、修改和刪除,還可以對新增加的商品進行入庫操作。(5) 商品管理功能模塊此功能模塊是對商品信息進行管理的,管理員可以通過輸入商品編號或商品名稱進行查詢商品信息,還可以通過選擇商品類別進行商品信息的查詢,另外還可以對商品信息進行增加、刪除和修改操作。(6) 報表導出功能模塊此功能模塊是方便超市管理人員對超市營業(yè)情況進行數(shù)據(jù)分析,可以把商品信息表、進貨信息表和銷售信息表進行導出,在Excel表格中更利于分析數(shù)據(jù)。(7) 登陸功能模塊用戶使用本系統(tǒng)要進行身份驗

33、證,驗證成功后方可進入,系統(tǒng)登陸模塊圖如圖3-2所示。登錄界面用戶密碼是否正確是否進入主界面取消登錄開始結(jié)束圖3-2 管理員后臺系統(tǒng)登陸流程圖數(shù)據(jù)庫設計4 數(shù)據(jù)庫設計4.1 數(shù)據(jù)庫的引入數(shù)據(jù)庫技術(shù)從60年代中期至今只有不到40年的歷史,但其發(fā)展速度之快是其它技術(shù)所不及的。它已由第一代的層次型、網(wǎng)狀型數(shù)據(jù)庫,第二代的關(guān)系型數(shù)據(jù)庫發(fā)展到今天以面向?qū)ο鬄橹饕P偷臄?shù)據(jù)庫,即第三代數(shù)據(jù)庫。數(shù)據(jù)庫技術(shù)和網(wǎng)絡通信技術(shù)、面向?qū)ο缶幊碳夹g(shù)、并行計算機技術(shù)、人工智能技術(shù)相互融合、相互滲透,促進了數(shù)據(jù)庫技術(shù)的廣泛應用。數(shù)據(jù)庫(Database),是按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲和管理數(shù)據(jù)的倉庫,是用于查詢的大量數(shù)據(jù)的存

34、儲區(qū)域。使用數(shù)據(jù)庫可以帶來許多好處:如減少了數(shù)據(jù)的冗余度,從而大大地節(jié)省了數(shù)據(jù)的存儲空間,實現(xiàn)數(shù)據(jù)資源的充分共享等等。此外,數(shù)據(jù)庫技術(shù)還為用戶提供了非常簡便的使用手段,使用戶易于編寫有關(guān)數(shù)據(jù)庫應用程序。特別是近年來推出的計算機關(guān)系數(shù)據(jù)庫管理系統(tǒng),操作直觀,使用靈活,編程方便,功能強大,環(huán)境適應廣泛,數(shù)據(jù)處理能力極強。數(shù)據(jù)庫的設計是指對一個給定的應用環(huán)境,構(gòu)造數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應用系統(tǒng),滿足各種用戶需求。作為信息資源開發(fā)、管理和服務的一種有效的手段,數(shù)據(jù)庫技術(shù)的應用已越來越廣泛,從小型的單項事務處理系統(tǒng)到大型的信息系統(tǒng)大都用先進的數(shù)據(jù)庫技術(shù)來保持系統(tǒng)數(shù)據(jù)的安全性、完整性和共享性。對一個實

35、際的系統(tǒng)來說,數(shù)據(jù)庫表的設計在遵循數(shù)據(jù)庫理論的同時,必須能用開發(fā)工具來實現(xiàn)用戶在各方面提出的功能要求。一個真正的、完整的系統(tǒng)是離不開數(shù)據(jù)庫的,因為少量的數(shù)據(jù),如角色類型等完全可以存儲在文本文件中,但實際應用中,需要保存的數(shù)據(jù)遠不止這一點點,而且這些數(shù)據(jù)之間往往還有關(guān)聯(lián),利用數(shù)據(jù)庫來管理這些數(shù)據(jù),可以很方便的查詢和更新??梢哉f一個優(yōu)秀的系統(tǒng)是離不開一個設計最優(yōu)的數(shù)據(jù)庫的。我們現(xiàn)在可以使用的數(shù)據(jù)庫有很多種,如:Fox數(shù)據(jù)庫(.dbf)、Access數(shù)據(jù)庫(.mdb)、DB2、Informix、Oracle和SQL Server等等,在本次設計中,選擇了Oracle 10g作為后臺數(shù)據(jù)庫工具,因為它

36、功能遠比Access強大,又比SQL Server 2005、DB2數(shù)據(jù)庫占資源少,并提供了許多標準的關(guān)系數(shù)據(jù)庫管理功能的支持。4.2 數(shù)據(jù)庫概念設計E-R圖4.2.1 實體與屬性及實體之間的聯(lián)系E-R模型的組成元素有:實體、屬性、聯(lián)系。E-R模型用E-R圖表示。實體是用戶工作環(huán)境中所涉及的事務,屬性是對實體特征的描述。(1) 模型中的實體相當于實體集、一個表,而不是單個實體或表中的一行。實體用矩形框表示,實體名稱標注在矩形框內(nèi)。用菱形表示實體間的聯(lián)系,菱形框內(nèi)寫上聯(lián)系名,用無向邊把菱形分別與有關(guān)實體相連接,在無向邊旁標上聯(lián)系的類型。(2) 屬性是實體的性質(zhì)。用橢圓框表示,與實體之間用一條線相

37、連表的主碼是關(guān)鍵屬性。(3) 不同的實體集通過外鍵建立它們之間的聯(lián)系。4.2.2 數(shù)據(jù)庫的部分E-R圖(1) 商品的實體圖如下圖4-1所示。商品編號商品名稱商品數(shù)量商品單價商品類別進貨日期商品建議零售價商品規(guī)格計量單位圖4-1 商品實體圖(2) 用戶的實體圖如下圖4-2所示。用戶編號用戶名稱用戶密碼角色編號用戶QQ用戶業(yè)績備注用戶圖4-2 用戶實體圖(3) 銷售單與用戶之間的E-R圖如下圖4-3所示。銷售單編號商品名稱商品數(shù)量商品編號商品類別商品單位銷售日期銷售單管理用戶密碼用戶名稱用戶編號角色編號用戶用戶QQ用戶業(yè)績備注圖4-3 銷售單與用戶E-R圖(4) 進貨單的實體圖如下圖4-4所示進貨

38、單進貨單編號商品名稱商品編號商品數(shù)量進貨日期商品單價進貨人圖4-4 進貨單實體圖4.3 數(shù)據(jù)庫的邏輯設計根據(jù)上面的數(shù)據(jù)庫概念設計,把相應的E-R圖轉(zhuǎn)化成與數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。本系統(tǒng)是以Oracl 10g為后臺數(shù)據(jù)庫,在Oracl 10g 上建立名為SuperMarket的數(shù)據(jù)庫。其中包括以下表:T_CHECK, T_FIRM, T_FIRMGOODS, T_GOODS, T_KIND, T_MONEY, T_PURCHASE, T_RESERVE, T_SELL, T_USER。下面將具體介紹數(shù)據(jù)庫中各個表的結(jié)構(gòu)。用戶表如表4-1所示。表4-1 用戶表(t_Users)字段名稱英文名字數(shù)

39、據(jù)類型字段長度是否為空備注用戶編號usersNoVarchar20否主鍵用戶名稱usersNameVarchar50否用戶密碼usersPwdchar否角色編號rolesNoint4否用戶業(yè)績usersGrademoney否用戶QQusersQQvarchar50是備注remarkVarchar100是進貨表如表4-2所示。表4-2 進貨表(t_GoodsIn)字段名稱英文名字數(shù)據(jù)類型字段長度是否為空備注進貨單編號goodsInNoVarchar20否主鍵商品編號goodsNoVarchar20否商品名稱goodNamevarchar50否商品數(shù)量goodsCountInt否商品單價goodP

40、riceMoney否進貨日期goodsInDateDatetime否進貨人名稱stockUserNamevarchar20否銷售表如表4-3所示。表4-3 銷售表(t_Sale)字段名稱英文名字數(shù)據(jù)類型字段長度是否為空備注銷售單編號salesNoVarchar20否主鍵商品編號goodsNoVarchar20否商品名稱goodsNameVarchar50否商品類別goodsSortVarchar30否商品數(shù)量goodsCountInt否商品單價goodPriceMoney否用戶編號usersNovarchar20否外鍵銷售日期saleDateDatetime否類別表如表4-4所示。表4-3 類

41、別表(t_Sort)字段名稱英文名字數(shù)據(jù)類型字段長度是否為空備注類別編號sortNoVarchar20否主鍵類別名稱sortNameVarchar50否角色表如表4-5所示。 表4-5 角色表(t_Roles)字段名稱英文名字數(shù)據(jù)類型字段長度是否為空備注角色編號rolesNoint4否主鍵角色名稱rolesNameVarchar50否角色描述rolesDescribeVarchar50是商品信息表如表4-6 所示。表4-6 商品表(t_Goods)字段名稱英文名字數(shù)據(jù)類型字段長度是否為空備注商品編號goodsNoVarchar10否主鍵商品類別goodsSortVarchar20否商品名稱go

42、odsNameVarchar50否建議零售價retailPricemoney否計量單位unitchar否商品規(guī)格goodsStandardVarchar50是商品單價goodPriceMoney否商品數(shù)量goodsCountInt否進貨日期goodsInDateDatetime否4.4 數(shù)據(jù)庫的完整性和安全性4.4.1 數(shù)據(jù)庫的完整性數(shù)據(jù)庫的完整性是指數(shù)據(jù)的正確性和相容性。數(shù)據(jù)庫管理系統(tǒng)(DBMS)用一定的機制來檢查數(shù)據(jù)庫中的數(shù)據(jù)是否滿足規(guī)定的條件完整性約束條件,數(shù)據(jù)的約束條件是語義的體現(xiàn),將作為模式的一部分存入數(shù)據(jù)庫中。本系統(tǒng)中通過定義表與表之間的外鍵聯(lián)系有助于實現(xiàn)完整性規(guī)則,另外通過主鍵約

43、束也實現(xiàn)了其完整性規(guī)則。4.4.2 數(shù)據(jù)庫的安全性數(shù)據(jù)庫的安全性是指保護數(shù)據(jù)庫以防止不合法的使用所造成的數(shù)據(jù)泄漏、更改或破壞。在數(shù)據(jù)庫系統(tǒng)中,大量的數(shù)據(jù)集中存放,而且為許多用戶直接共享,是寶貴的信息資源,系統(tǒng)的安全保護措施就顯得更為重要,它保護數(shù)據(jù)庫防止惡意的破壞和非法的存取。本系統(tǒng)采用鑒定用戶的方法實現(xiàn)數(shù)據(jù)庫的安全,在登錄數(shù)據(jù)庫時,系統(tǒng)讓用戶表示自己的身份,通過輸入用戶名和密碼,系統(tǒng)進行核實,鑒別此用戶員是否為合法用戶,若是,系統(tǒng)進一步核實用戶身份,通常要求用戶選擇角色,系統(tǒng)通過角色來鑒別用戶身份,并且要選擇正確的角色才允許用戶登陸。33參考文獻5 詳細設計5.1 設計思想常見的設計思想有兩

44、種:結(jié)構(gòu)化和面向?qū)ο蠡?,本系統(tǒng)采用的是面向?qū)ο蟮脑O計思想,下面簡單介紹一下兩者的不同以及面向?qū)ο蟪绦蛟O計的優(yōu)點。傳統(tǒng)的結(jié)構(gòu)化開發(fā)過程包括軟件目標的功能分解,以及使用正確的參數(shù)和返回值來創(chuàng)建函數(shù)。首先分析需求,確定功能,然后以函數(shù)的形式進行建模。在一個Java應用系統(tǒng)中很可能有上千個函數(shù),這些函數(shù)能夠不受限制的互相調(diào)用,因此在訪問某個變量時,很難保證它不是正在被其他的函數(shù)訪問或者修改。只使用Java代碼而不使用任何Bean或自定義標記,在系統(tǒng)應用的規(guī)模比較小時還不會出現(xiàn)太多的問題,但是在應用的規(guī)模增大時就肯定會出現(xiàn)問題。這些代碼也許能夠滿足功能上的需要,卻不能達到非功能性的要求。在結(jié)構(gòu)化開發(fā)方法

45、面臨問題的時候,使用面向?qū)ο蟮姆椒ㄟM行分析、設計和開發(fā)就可以解決一部分問題。面向?qū)ο蟮姆治龊驮O計方法源于現(xiàn)實生活中的模塊化的思想。對象是提供一組相關(guān)功能的實體,對象之間互相作用從而完成一定的任務。開發(fā)方法包括對目標的模塊化,以及用類的形式對數(shù)據(jù)和函數(shù)進行封裝。面向?qū)ο蠓椒ㄖ饕幸韵滤膫€特征:(1) 抽象性抽象是對象建模參數(shù)的選擇,這是進行分析后得到的結(jié)果。這意味著是由分析人員來選擇一定的參數(shù),以表示對象,這是對象模型化的第一步。(2) 封裝性由于某些原因,類中的數(shù)據(jù)和方法不需要對其他的對象公開,我們可以將其隱藏在類的內(nèi)部,這是對象模塊化過程中很重要的一步。這個步驟將確保對象的行為以簡單的接口出

46、現(xiàn),而復雜的執(zhí)行過程都被隱藏了。比如,JavaBean就可以為Java開發(fā)人員提供一個簡單的接口。(3) 繼承性在一個現(xiàn)存對象的基礎上創(chuàng)建一個新的對象,這個過程稱為繼承。這樣我們可以不必重寫所有的代碼,只需在新對象中編寫需要更新的代碼就可以了。例如:IDAO里寫的是接口,在DAO里要把IDAO里的方法全部重寫,如果需要新的方法還可以增加。(4) 模塊化為了減少獨立工作小組之間的依賴性,軟件系統(tǒng)中必須使用模塊。比如,我們可以定義一個DAOFactory來處理應用程序的狀態(tài),這樣做的優(yōu)點是可以獨立地對模塊進行維護,這樣就減少了代碼之間的依賴性。5.2 設計語言針對超市超市進銷存管理系統(tǒng)這個項目,在

47、綜合考慮了此項目的總體特點并對當前流行軟件的實用性進行比較之后,我主要采用Java作為程序設計的開發(fā)語言。使用Java作為開發(fā)語言的主要原因在于利用Java技術(shù)可以建立健壯的、高性能的、安全的、跨平臺的先進軟件系統(tǒng)。Java技術(shù)在程序開發(fā)時的突出特點有以下幾個:(1) Java語言是簡單的。Java語言的語法與C語言和C+語言很接近,使得大多數(shù)程序員很容易學習和使用Java。另一方面,Java丟棄了C+ 中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動的強制類型轉(zhuǎn)換。特別地,Java語言不使用指針,并提供了自動的廢料收集,使得程序員不必為內(nèi)存管理而擔憂。(2) Java

48、語言是一個面向?qū)ο蟮?。Java語言提供類、接口和繼承等原語,為了簡單起見,只支持類之間的單繼承,但支持接口之間的多繼承,并支持類與接口之間的實現(xiàn)機制(關(guān)鍵字為implements)。Java語言全面支持動態(tài)綁定,而C+ 語言只對虛函數(shù)使用動態(tài)綁定。總之,Java語言是一個純的面向?qū)ο蟪绦蛟O計語言。(3) Java語言是健壯的。Java的強類型機制、異常處理、廢料的自動收集等是Java程序健壯性的重要保證。對指針的丟棄是Java的明智選擇。Java的安全檢查機制使得Java更具健壯性。Java語言的優(yōu)良特性使得Java應用具有無比的健壯性和可靠性,這也減少了應用系統(tǒng)的維護費用。Java對對象技術(shù)

49、的全面支持和Java平臺內(nèi)嵌的API能縮短應用系統(tǒng)的開發(fā)時間并降低成本。Java的編譯一次,到處可運行的特性使得它能夠提供一個隨處可用的開放結(jié)構(gòu)和在多平臺之間傳遞信息的低成本方式。特別是Java企業(yè)應用編程接口(Java Enterprise APIs)為企業(yè)計算及電子商務應用系統(tǒng)提供了有關(guān)技術(shù)和豐富的類庫。基于這些優(yōu)點,從實際考慮,決定用Java作為開發(fā)語言來開發(fā)整個系統(tǒng)。5.3 數(shù)據(jù)庫的連接在做數(shù)據(jù)庫連接時,我使用的數(shù)據(jù)庫是Oracle 10g,數(shù)據(jù)庫連接使用的是JDBC驅(qū)動,其中數(shù)據(jù)庫名為:superMarket,用戶名:changbao ,密碼為:changbao ,端口為:1521

50、,通過使用外部屬性文件context.xml存儲數(shù)據(jù)庫連接需要的參數(shù),這樣方便以后對數(shù)據(jù)庫的更換操作。代碼實現(xiàn)如下: name="jdbc/oracle" auth="Container" type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:localhost:1521:orcl" username="scott" passwor

51、d="orcl" maxIdle="5" maxWait="5000" maxActive="10" 與數(shù)據(jù)庫連接的部分代碼如下:package com.supermarket.util;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.sql.Connection;import java.sql.DriverManager

52、;import java.sql.PreparedStatement;import java.sql.SQLException;import java.util.Properties;public class DBHelper private static String driverName = null;private static String driverUrl = null;private static String driverUser = null;private static String driverPswd = null;private static Connection c

53、on = null;staticProperties p = new Properties(); try p.load(new FileReader("DB.properties");driverName=p.getProperty("driverName");driverUrl=p.getProperty("driverUrl");driverUser=p.getProperty("driverUser");driverPswd=p.getProperty("driverPswd");Clas

54、s.forName(driverName);con = DriverManager.getConnection(driverUrl,driverUser,driverPswd); catch (FileNotFoundException e) e.printStackTrace(); catch (IOException e) e.printStackTrace(); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.printStackTrace();/獲得數(shù)據(jù)庫連接public static Connection getConnection()if(con!=null)return con;return null;/獲得創(chuàng)建語句對象public static PreparedStatement getPs(Connection con,String sql)PreparedStatement ps = null;try ps = con.prepareStatement(sql); catch (SQLException e) e.pri

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論