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

下載本文檔

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

文檔簡介

目錄摘要 4ABSTRACT 5第1章緒論 11.1課題來源 11.2課題背景 11.3國內(nèi)外在該方向的研究現(xiàn)狀及分析 11.3.1應(yīng)用對象方面 11.3.2社會方面 2第2章系統(tǒng)的技術(shù)實現(xiàn) 32.1采用java平臺 32.2采用NavicatforMySQL 32.3運行環(huán)境...…………...….42.4開發(fā)環(huán)境的配置…………42.5測試環(huán)境的配置…………4第3章系統(tǒng)的分析與設(shè)計 53.1需求分析 53.1.1功能性需求……………………….53.1.2非功能性需求…………………….53.2總體設(shè)計 63.2.1設(shè)計約定 63.2.2系統(tǒng)E-R圖 63.2.3系統(tǒng)總體結(jié)構(gòu) 7第4章系統(tǒng)實現(xiàn) 14.1功能描述 14.1.1用戶登錄………….14.1.2系統(tǒng)管理………….14.1.3商品信息管理…………………….54.1.4供應(yīng)商信息管理………………...114.1.5客戶信息管理………………..….134.1.6進貨信息管理…………………...154.1.7銷售信息管理…………………...164.2數(shù)據(jù)庫實現(xiàn)……………..214.2.1供應(yīng)商信息表…………………...234.2.2進貨信息表……………………...244.2.3顧客信息表……………………...254.2.4銷售信息表……………………...264.2.5商品信息表……………………...274.2.6用戶信息表……………………...274.2.7商品供應(yīng)商信息表……………...28第5章系統(tǒng)測試………………...305.1單元測試………………..305.2集成測試………………..30結(jié)論 32參考文獻 33河南大學(xué)本科畢業(yè)生學(xué)士學(xué)位論文第Ⅰ頁摘要近年來,為了滿足顧客的消費需求,各類小型超市越來越多,商品也趨于多樣化。如果能夠?qū)崟r監(jiān)控商品的銷售情況貨存情況,就能有效地提高商品的周轉(zhuǎn)率,更好地為顧客服務(wù)。進銷存管理系統(tǒng)是市場上非常常用的系統(tǒng),因其完善的功能被各種零售業(yè)接受。我設(shè)計的這款系統(tǒng)功能并不完善,它主要側(cè)重于各類信息的管理,通過監(jiān)控各類信息的變化,來達到有效管理商品的目的。本文系統(tǒng)的分析了軟件開發(fā)的背景以及過程;首先介紹了軟件的開發(fā)環(huán)境,其次介紹了本軟件的詳細設(shè)計過程:數(shù)據(jù)庫的設(shè)計、各個模塊的設(shè)計和實現(xiàn),以及具體界面的設(shè)計和功能。關(guān)鍵詞進銷存;小型超市;商品;信息;第Ⅱ頁ABSTRACTInrecentyears,inordertomeettheconsumerdemandofcustomers,moreandmoretypesofsmallsupermarkets,thediversificationofproduct.Ifreal-timemonitoringofthesaleofgoodsforstock,wecaneffectivelyimproveproductturnover,andbettercustomerservice.Theinventorymanagementsystemisaverycommonlyusedsysteminthemarket,becauseofitscomprehensivefeaturesvariousretail.Idesignedthissystemisnotperfect,itismainlyfocusedonthemanagementofalltypesofinformation,bymonitoringchangesinthekindsofinformationtoachievethepurposeofeffectivemanagementofgoods.Thesystematicanalysisofthebackgroundandprocessofsoftwaredevelopment;firstintroducedthesoftwaredevelopmentenvironment,followedbydetailsofthesoftwaredesignprocess:thedesignofthedatabase,thedesignandimplementationofeachmodule,aswellasspecificinterfacedesignandfunctionality.Keywords:Invoicing;smallsupermarket;goods;Information;第7頁第1章緒論本文講述了關(guān)于進銷存管理系統(tǒng)的一系列分析設(shè)計等1.1課題來源自定。1.2課題背景這個系統(tǒng)的使用范圍是一些小型的超市,讓商品從進貨到售出都實現(xiàn)數(shù)字化的管理,給使用者帶來方便。由于水平有限,我僅能實現(xiàn)一般的功能。數(shù)據(jù)庫也不是很強大,但是我覺得這個系統(tǒng)有很強的實用性,并且操作非常簡單,容易上手。根據(jù)商品流程,分為供應(yīng)商部分、商品部分、銷售部分及整個的系統(tǒng)管理。1.3國內(nèi)外在該方向的研究現(xiàn)狀及分析現(xiàn)在這類軟件的功能大體類似,區(qū)別僅在于一些小功能上的創(chuàng)新。1.3.1應(yīng)用對象方面本系統(tǒng)的應(yīng)用范圍是一些小型超市。在我國超市形成在20世紀90年代初期,現(xiàn)在已經(jīng)成為我國零售業(yè)的一種重要形態(tài),為國民經(jīng)濟的發(fā)展發(fā)揮了重要的作用。隨著超市高速的發(fā)展,其經(jīng)營管理也變得愈加復(fù)雜,早期的售貨員站柜臺的形式早已不能滿足現(xiàn)有銷售也的發(fā)展,這樣就迫切地需要引入新的管理技術(shù)。對于小型超市來講,它具有種種優(yōu)點,但在目前狀況下,仍存在零售業(yè)企業(yè)所共有的落后的一面,如:不能有效地管理每種商品,收款結(jié)算速度慢,容易出現(xiàn)營業(yè)差錯,不宜進行商品調(diào)價,盤點效率低等,而且在超市日常管理中,商品的進、銷、存等決策以經(jīng)驗為主,缺乏實時分析功能,管理人員對及時傳遞資料的要求始終得不到滿足。為此,在選題過程中,我選擇了進銷存管理系統(tǒng)設(shè)計題目,依靠現(xiàn)代化的計算機信息處理技術(shù)來管理超市,從而節(jié)省了大量的人力、物力,改善了員工的工作條件,減輕了勞動強度,并且能夠快速反映出商品的進、銷、存等狀況和各種反饋信息分析,使管理人員快速對市場的變化做出相應(yīng)的決策,加快超市經(jīng)營管理效率。1.3.2社會方面隨著現(xiàn)代科學(xué)技術(shù)的迅猛發(fā)展,計算機技術(shù)已經(jīng)滲透到各個領(lǐng)域,成為各行業(yè)必不可少的工具,特別是Internet技術(shù)的推廣和信息高速公路的建立,使IT產(chǎn)業(yè)在市場競爭中越發(fā)顯示出其獨特的優(yōu)勢,步入信息化時代,有巨大的數(shù)據(jù)信息等待加工處理和傳輸,這使得對數(shù)據(jù)庫的進一步開發(fā)和利用顯得尤為迫切。作為國內(nèi)市場的一些小型超市,它們對于這些企業(yè)的資源管理,信息的存儲和處理顯得迫切需要,要適應(yīng)市場競爭,就需要有高效的處理方式和管理方法,因此加快小型超市的信息化進程是必可少的。實習(xí)期間,我通過對市場的調(diào)查,針對現(xiàn)在各小型超市對經(jīng)營業(yè)務(wù)和人事管理的實際需要,開發(fā)了這套進銷存管理系統(tǒng)。在開發(fā)過程中,我針對當前各超市管理的特點和員工的實際水平,采用基于Windows圖形用戶界面這一易學(xué)易用的操作環(huán)境,在系統(tǒng)設(shè)計過程中,盡量采用易懂易讀的人機界面,使用戶可以在短期內(nèi)完全掌握。同事力求數(shù)據(jù)的完整和處理的正確性。在此基礎(chǔ)上優(yōu)化程序代碼,加速系統(tǒng)運行和減少對系統(tǒng)資源的占用。第2章系統(tǒng)的技術(shù)實現(xiàn)本章主要介紹開發(fā)此系統(tǒng)所需要的工具及配置。2.1采用java平臺Java是一種可以撰寫跨平臺應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計語言,是有sun公式于1995年5月推出的Java程序設(shè)計語言和Java平臺(即JavaSE和JavaEE.JavaME)的總稱,Java技術(shù)具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應(yīng)用于個人PC、數(shù)據(jù)中心、游戲控制臺、科學(xué)超級計算機、移動電話和互聯(lián)網(wǎng),同時擁有全球最大的開發(fā)者專業(yè)社群,在全球云計算和移動互聯(lián)網(wǎng)產(chǎn)業(yè)環(huán)境下,Java更具備了顯著優(yōu)勢和廣闊前景。在開發(fā)工具方面,IBM,Borland,Sun,BEA等軟件巨頭在其應(yīng)用服務(wù)器的基礎(chǔ)上,都推出開發(fā)JavaWeb應(yīng)用程序的開發(fā)工具。這些IDE大多都兼顧了各種類別的Java應(yīng)用程序的開發(fā),需要較大空間進行安裝,啟動過程相對較慢。故我選擇了Eclipse開發(fā)工具。Eclipse標準軟件包中只提供了Java應(yīng)用程序的開發(fā)和調(diào)試,而沒有提供JSP開發(fā)環(huán)境。不過有眾多的插件支持在Eclipse上進行JSP的開發(fā)。在開發(fā)JSP的插件中,最強大的非MyEclipse莫屬。MyEclipse具備了眾多令人欣喜的特色,貼心的Wizard、圖形化的配置管理、JSP錯誤跟蹤、代碼跳轉(zhuǎn)等,都可以令J2EE開發(fā)飛速運轉(zhuǎn)起來。2.2采用NivacatforMySQLMySQL是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQLAB公司開發(fā),目前屬于Oracle公司。MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大倉庫內(nèi),這樣就增加了速度并提高了靈活性。MySQL的SQL語言是用于訪問數(shù)據(jù)庫的最常用標準化語言。MySQL軟件采用了雙授權(quán)政策,它分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網(wǎng)站的開發(fā)都選擇MySQL作為網(wǎng)站數(shù)據(jù)庫。目前MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。與其他的大型數(shù)據(jù)庫例如Oracle、DB2、SQLServer等相比,MySQL自有它的不足之處,如規(guī)模小、功能有限等,但是這絲毫也沒有減少它受歡迎的程度。對于一般的個人使用者和中小型企業(yè)來說,MySQL提供的功能已經(jīng)綽綽有余,而且由于MySQL是開放源碼軟件,因此可以大大降低總體擁有成本。(以上引自百度百科)NavicatforMySQL是一個強大的MySQL數(shù)據(jù)庫服務(wù)器管理和開發(fā)工具。支持大部分的MySQL最新功能,包括觸發(fā)器、存儲過程、函數(shù)、事件、視圖、管理用戶,等等。它不僅對專業(yè)開發(fā)人員來說是非常尖端的技術(shù),而且對于新手來說也易學(xué)易用。其精心設(shè)計的圖形用戶界面(GUI),NavicatforMySQL可以讓你用一種安全簡便的方式快速并容易地創(chuàng)建,組織,訪問和共享信息。2.3運行環(huán)境能在普通PC機、windows操作系統(tǒng)上運行。2.4開發(fā)環(huán)境的配置開發(fā)時具體環(huán)境配置。如表2-1所示。表2-1環(huán)境配置表類別標準配置硬件CPU:Intel酷睿i3硬盤:320G內(nèi)存:4G軟件開發(fā)環(huán)境:MyEclipse8.5數(shù)據(jù)庫:MySQL2.5測試環(huán)境的配置(1)單元測試、集成測試環(huán)境與開發(fā)環(huán)境相同。(2)系統(tǒng)測試、驗收測試環(huán)境與運行環(huán)境相同或相似。第3章系統(tǒng)的分析與設(shè)計進銷存管理系統(tǒng)是適用于小型超市對貨物信息,顧客信息,進貨信息和銷售信息進行管理的系統(tǒng)。本系統(tǒng)采用C/S體系結(jié)構(gòu),有系統(tǒng)管理,供應(yīng)商信息管理,客戶信息管理,商品信息管理和進貨信息管理的功能的系統(tǒng),是高效率、低成本的管理進銷存信息的解決方案。3.1需求分析從兩部分來分析,如下詳細說明。3.1.1功能性需求(1)該管理軟件將對庫存商品進行資料管理和統(tǒng)計,對商品的進貨單和商品的銷售單進行錄入管理和統(tǒng)計。(2)該管理軟件將根據(jù)用戶的需要對顧客、供應(yīng)商、商品的信息進行查詢和修改。(3)該管理軟件將為用戶提供賬號管理工具,以便用戶對賬號進行管理,具體為添加用戶、刪除用戶、修改用戶密碼、修改用戶名。(4)該管理軟件將根據(jù)用戶的需要對商品的銷售情況、進貨情況進行查詢和統(tǒng)計。3.1.2非功能性需求(1)穩(wěn)定性:保證數(shù)據(jù)存取和邏輯處理等不出現(xiàn)異常錯誤,確保系統(tǒng)能正常處理數(shù)據(jù),在運行中出現(xiàn)的錯誤可以更改。(2)靈活性:對所有數(shù)據(jù)要實現(xiàn)“增、刪、改、查”,可以方便管理者對系統(tǒng)數(shù)據(jù)的操作。(3)可恢復(fù)性:可以通過對數(shù)據(jù)庫進行備份,來確保系統(tǒng)的可恢復(fù)性。(4)簡易操作性:根據(jù)界面的提示會正確的對數(shù)據(jù)進行操作。(5)數(shù)據(jù)校驗:數(shù)據(jù)校驗是增強系統(tǒng)可用性和可靠性的重要手段,系統(tǒng)要求對輸入的數(shù)據(jù)進行有效性、合法性校驗,數(shù)據(jù)校驗可以排除許多數(shù)據(jù)不一致的現(xiàn)象,從邏輯上、數(shù)據(jù)完整性上保證數(shù)據(jù)的質(zhì)量,做到“正確的輸入有正確的結(jié)果,錯誤的輸入有響應(yīng)”。3.2總體設(shè)計分別從以下三個方面說明。3.2.1設(shè)計約定(1)所有的數(shù)據(jù)庫命名都是以模塊的縮寫加上具體表的英文詞匯組成,這樣能夠統(tǒng)一數(shù)據(jù)庫表的命名,也能夠更好的規(guī)范數(shù)據(jù)庫表命名。(2)所有數(shù)據(jù)庫的設(shè)計,都采用NavicatforMySQL進行,并且采用面向?qū)ο蟮脑O(shè)計方法,首先進行對象實體的設(shè)計,最后將對象持久化到數(shù)據(jù)庫中,所有的表和表之間的關(guān)聯(lián)(E-R圖)都采用標準的NavicatforMySQL設(shè)計工具進行,這樣能夠?qū)⒄麄€系統(tǒng)的設(shè)計和數(shù)據(jù)庫設(shè)計有機的結(jié)合起來。(3)界面風(fēng)格:管理界面做到美觀大方、風(fēng)格統(tǒng)一,并有一些提示信息指導(dǎo)用戶操作使用。盡量使用選擇框、下拉框等選擇操作界面,方便用戶的使用。(4)消息提示:中文提示,言簡意賅。3.2.2系統(tǒng)E-R圖各實體之間的聯(lián)系:供應(yīng)商和進貨信息之間多對多;進貨信息和商品之間多對多;商品和銷售之間多對多;顧客和銷售之間多對多。如圖3-1所示。圖3-1系統(tǒng)E-R圖3.2.3系統(tǒng)總體結(jié)構(gòu)首先,管理者要管理所有商品,需要了解商品詳細信息,這時需要設(shè)計一個商品管理模塊;根據(jù)商品信息表中的商品數(shù)量,管理者制定進貨單,交給進貨員,進貨員根據(jù)進貨單向供貨商進貨,這時需要一個供貨商管理模塊;在進貨入庫時,管理員根據(jù)進貨信息,錄入表單,這時需要制定進貨管理模塊;在商品采購入庫之后,就要在前臺銷售商品,收銀員通過銷售模塊進行商品的銷售,并可在此模塊中查詢銷售信息。對上述各項功能進行集中,分塊,按照結(jié)構(gòu)化程序設(shè)計的要求,得到系統(tǒng)功能模塊圖,如圖3-2所示。進銷存管理系統(tǒng)進銷存管理系統(tǒng)系統(tǒng)管理客戶信息管理商品信息管理營銷信息管理用戶管理密碼管理供應(yīng)商信息管理顧客信息管理添加商品信息修改商品信息進貨信息管理銷售信息管理刪除商品信息圖3-2系統(tǒng)結(jié)構(gòu)圖第1頁第4章系統(tǒng)實現(xiàn)從三個層面完成整個設(shè)計。4.1功能描述主要分為以下幾部分模塊,詳細說明如下。4.1.1用戶登錄用戶登錄實體類。(1)對象屬性,如表4-1所示。表4-1login1屬性數(shù)據(jù)類型描述_userString登陸用戶名_passwordstring登陸密碼(2)對象行為,如表4-2所示。表4-2login2方法描述publiccreatLoginUI()用戶登陸界面PublicLoginManage()把用戶輸入的數(shù)據(jù)與數(shù)據(jù)庫對比(2)頁面設(shè)計,如圖4-1所示。圖4-1登錄界面第32頁4.1.2系統(tǒng)管理系統(tǒng)管理分為三部分:用戶添加、密碼修改、用戶名修改。部分實現(xiàn)代碼如下所示。用戶添加部分:publicbooleanuserManage(Stringnewuser,Stringnewpassword){ ConnMySQLcm=newConnMySQL(); Connectionconn=cm.getConn(); Stringsql="insertintouser(username,password)values(?,?)"; try{ ps=conn.prepareStatement(sql); ps.setString(1,newuser); ps.setString(2,newpassword); intresult=ps.executeUpdate(); if(result==1){ returntrue; } }catch(SQLExceptione){ JOptionPane.showMessageDialog(null,"用戶名已存在","提示",0); }finally{ try{ ps.close(); conn.close(); }catch(SQLExceptione){ e.printStackTrace(); } } returnfalse; }密碼修改部分:publicbooleanpasswordManage(Stringoldpassword,Stringnewpassword){ ConnMySQLcm=newConnMySQL(); Connectionconn=cm.getConn(); Statementst1=null; ResultSetrs2=null; Stringsql1="selectpasswordfromuserwhereusername='" +nowusername+"'"; try{ st1=conn.createStatement(); rs2=st1.executeQuery(sql1); if(rs2.next()){ Stringpassword=rs2.getString("password"); if(password.equals(oldpassword)){ Stringsql="updateusersetpassword='"+newpassword +"'whereusername='"+nowusername+"'"; intresult=st1.executeUpdate(sql); if(result==1){ returntrue; } } } }catch(SQLExceptione1){ e1.printStackTrace(); }finally{ try{ rs2.close(); st1.close(); conn.close(); }catch(SQLExceptione){ e.printStackTrace(); } } returnfalse; }用戶名修改部分:publicbooleanalterUsername(StringoldUsername,Stringusername){ ConnMySQLcm=newConnMySQL(); Connectionconn=cm.getConn(); Statementst=null; Stringsql="updateusersetusername='"+username +"'whereusername='"+oldUsername+"'"; try{ st=conn.createStatement(); intresult=st.executeUpdate(sql); if(result==1){ nowusername=username; returntrue; } }catch(SQLExceptione){ JOptionPane.showMessageDialog(null,"用戶名已存在","提示",0); }finally{ try{ st.close(); conn.close(); }catch(SQLExceptione){ e.printStackTrace(); } } returnfalse; }(1)對象行為,如表4-3所示。表4-3system2方法描述PubliccreatMainUI()系統(tǒng)主界面(2)頁面設(shè)計,如圖4-2所示。圖2-1系統(tǒng)管理4.1.3商品信息管理商品信息管理模塊實現(xiàn)用戶對商品信息的管理,包括新商品信息的增加,已有商品信息的查詢、修改和刪除。(1)ProductManage.java:實現(xiàn)商品的增刪改查。部分代碼如下所示。對象行為,如表4-4所示。表4-4productM2方法描述PubliccreateProductManageUI()商品管理窗口PublicgetProductByPage()查詢數(shù)據(jù)庫中所有商品的信息PublicgetTotalPages()計算商品信息的多少PublicproductDelete()刪除商品信息(2)productInfoAdd.java:商品信息的添加。部分實現(xiàn)代碼如下所示。publicbooleanproductAdd(StringproductName,doubleproductPrice, StringproductStandard,StringproductUnit,intproductAmount, Stringremarks){ ConnMySQLcm=newConnMySQL(); Connectionconn=cm.getConn(); Stringsql="insertintoproduct(productName,productPrice,productStandard,productUnit,productAmount,remarks,date,sign)values(?,?,?,?,?,?,?,?)"; try{ ps=conn.prepareStatement(sql); ps.setString(1,productName); ps.setDouble(2,productPrice); ps.setString(3,productStandard); ps.setString(4,productUnit); ps.setInt(5,productAmount); ps.setString(6,remarks); ps.setString(7,newProductManageService().getNowTime()); ps.setInt(8,1); intresult=ps.executeUpdate(); if(result==1){ returntrue; } }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ try{ ps.close(); conn.close(); }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } returnfalse; }對象屬性,如表4-5所示。表4-5productI1屬性數(shù)據(jù)類型描述productIdInt自增IdproductNameString商品名productPriceDouble商品價格productStanderString商品規(guī)格productUnitString商品計量單位productAmountString商品的庫存數(shù)量remarksString備注信息signint標記對象行為,如表4-6所示。表4-6productI2方法描述PubliccreateProductInfoAddUI()新商品信息增加窗口PublicproductAdd()把新商品的信息放到數(shù)據(jù)庫PublichasProductName判斷新加的商品是不是已有記錄頁面設(shè)計,如圖4-3所示。圖4-3商品添加(3)ProductInfoAlter.java:商品信息的修改。部分實現(xiàn)代碼如下所示。publicbooleanproductAlter(StringproductID,StringproductName, DoubleproductPrice,StringproductStandard,StringproductUnit, StringproductAmount,Stringremarks){ ConnMySQLcm=newConnMySQL(); Connectionconn=cm.getConn(); Statementst=null; Stringsql="updateproductsetproductName='"+productName +"',productPrice="+productPrice+",productStandard='" +productStandard+"',productUnit='"+productUnit +"',productAmount='"+productAmount+"',remarks='"+remarks +"'whereproductId='"+productID+"'"; try{ st=conn.createStatement(); intresult=st.executeUpdate(sql); if(result==1){ returntrue; } }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ try{ st.close(); conn.close(); }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } returnfalse; }對象屬性,如表4-7所示。表4-7productA1屬性數(shù)據(jù)類型描述productNameString商品名productPriceDouble商品價格productStanderString商品規(guī)格productUnitString商品計量單位productAmountString商品的庫存數(shù)量remarksString備注信息對象行為,如表4-8所示。表4-8productA2方法描述PublicproductAlter()修改商品信息(4)ProductProvider.java:建立商品與供應(yīng)商的關(guān)系。主要是用來將商品與供應(yīng)商對應(yīng)起來,為以后查詢信息,作出計劃做好準備,其部分實現(xiàn)代碼如下。publicbooleanrelation(Stringa,Stringb){ ConnMySQLcm=newConnMySQL(); Connectionconn=cm.getConn(); ResultSetrs=null; intresult=0; PreparedStatementps=null; IntegerproductId=1; IntegerproviderId=1; try{ //獲取選中商品的productId Stringsql2="ductIductName='" +a+"'"; ps=conn.prepareStatement(sql2); rs=ps.executeQuery(sql2); if(rs.next()){ productId=rs.getInt("productId"); } //獲取選中供應(yīng)商的providerId Stringsql3="viderIviderCompany='" +b+"'"; ps=conn.prepareStatement(sql3); rs=ps.executeQuery(sql3); if(rs.next()){ providerId=rs.getInt("providerId"); } Stringsql1="insertintoproductprovider(productId,providerId)values(?,?)"; ps=conn.prepareStatement(sql1); ps.setInt(1,productId); ps.setInt(2,providerId); //向數(shù)據(jù)庫中插入一條記錄,執(zhí)行成功result=1,失敗的話result=0 result=ps.executeUpdate(); if(result==1){ returntrue; } }catch(SQLExceptione){ JOptionPane.showMessageDialog(null,"您之前已經(jīng)設(shè)定了","提示",1); }finally{ try{ rs.close(); ps.close(); conn.close(); }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } returnfalse; }對象屬性,如表4-9所示。表4-9productP1屬性數(shù)據(jù)類型描述productIdint商品IdproviderIdint供應(yīng)商Id對象行為,如表4-10所示。表4-10productP2方法描述PubliccreatUI()建立商品與供應(yīng)商關(guān)系Publicrelation()把商品與供應(yīng)商關(guān)系放到數(shù)據(jù)庫里頁面設(shè)計,如圖4-4所示。圖4-4商品添加4.1.4供應(yīng)商信息管理供應(yīng)商信息管理模塊主要實現(xiàn)對供應(yīng)商信息的管理,包括新供應(yīng)商信息的增加,已有供應(yīng)商信息的查詢,修改和刪除。(1)ProviderInfoManage.java:實現(xiàn)供應(yīng)商信息的管理對象屬性,如表4-11所示。表4-11provider1屬性數(shù)據(jù)類型描述providerIdint供應(yīng)商IdproviderCompanystring供應(yīng)商公司名providerAddressString供應(yīng)商地址providerNameString聯(lián)系人providerTelInt聯(lián)系電話providerPostalcodeInt郵政編碼providerFaxString傳真providerCityNameString供應(yīng)商城市providerAreaString供應(yīng)商地區(qū)providerHomePageString公司主頁RemarksString備注Signint標記對象行為,如表4-12所示。表4-12povider2方法描述PubliccreatUI()供應(yīng)商管理窗口PubliccreatUI1()添加新供應(yīng)商窗口PubliccreatUIOfAlter()修改供應(yīng)商窗口PublicaddProvider()添加新供應(yīng)商到數(shù)據(jù)庫PublicsetJtable()按條件查詢供應(yīng)商PublicsetJtable1()查詢?nèi)抗?yīng)商信息PublicdeleteProvider()刪除供應(yīng)商信息PublicupdateProvider()修改供應(yīng)商信息PublichasProviderCompany()判斷新添加供應(yīng)商是夠重復(fù)PublicgetProviderByPage()計算供應(yīng)商的總記錄數(shù)頁面設(shè)計,如圖4-5所示。圖4-5供應(yīng)商4.1.5客戶信息管理顧客信息管理模塊主要實現(xiàn)對顧客信息的管理,包括新顧客信息的增加,已有顧客信息的查詢,修改和刪除。(1)customerInfoManage.java:客戶信息管理對象屬性,如表4-13所示。表4-13customer1屬性數(shù)據(jù)類型描述customerIdint顧客IdcustomerCompanystring顧客公司名customerAddressString顧客地址customerNameString聯(lián)系人customerTelInt聯(lián)系電話customerPostalcodeInt郵政編碼customerFaxString傳真customerCityNameString顧客城市customerAreaString顧客地區(qū)customerHomePageString公司主頁RemarksString備注Signint標記對象行為,如表4-14所示。表4-14customer2方法描述PubliccreatUI()顧客管理窗口PublicdeleteCustom()從數(shù)據(jù)庫中刪除顧客PublicsetJtable()查詢顧客信息PublicgetTotalPages()計算數(shù)據(jù)庫中顧客總記錄數(shù)(2)CustomerInfoAdd.java:客戶信息的添加。對象行為,如表4-15所示。表4-15customerA2方法描述PubliccreatUI()顧客信息添加窗口PublicaddCustomer()在數(shù)據(jù)庫中添加新顧客PublichasCompanyName()判斷先添加的顧客是不是已有顧客頁面設(shè)計,如圖4-6所示。圖4-6顧客信息添加(3)CustomerManageEdit.java:修改客戶信息。對象行為,如表4-16所示。表4-16customerE2方法描述PubliccreatUI()顧客信息修改窗口PubliceditCustomer()在數(shù)據(jù)庫中添加新顧客4.1.6進貨信息管理進貨信息管理模塊主要實現(xiàn)對進貨信息的管理,包括新進貨信息的增加,已有進貨信息的查詢,修改和刪除。(1)ImportsInfoManage.java:實現(xiàn)進貨信息的增加、刪除、修改和查詢。對象屬性,如表4-17所示。表4-17import1屬性數(shù)據(jù)類型描述importsIdInt自增IdproviderCompanyString供應(yīng)商productNameString商品名productPriceDouble進貨單價importsAmountsInt進貨數(shù)量DateString進貨日期RemarksString備注對象行為,如表4-18所示。表4-18povider2方法描述PubliccreatUI2()進貨信息管理窗口PubliccreateAlterUI()修改進貨信息窗口PubliccteateAddUI()添加進貨信息窗口PublicexecuteAddImportsInfo()在數(shù)據(jù)庫中添加進貨信息PublicdeleteImportsProduct()刪除進貨信息PublicexecuteQueryAllImportsInfo()查詢?nèi)窟M貨信息PublicgetTotalPage()獲取全部進貨記錄數(shù)PublicexecuteImportsInfo()修改進貨信息PublicgetNowTime()獲取當前時間4.1.7銷售信息管理銷售信息管理模塊主要實現(xiàn)對銷售信息的管理,包括新銷售信息的增加,已有銷售信息的查詢,修改和刪除。(1)SellInfoManage.java:銷售信息管理。其界面部分實現(xiàn)代碼如下所示。publicclassSellInfoManageextendsJFrameimplementsActionListener{ staticJFramejf=newJFrame("銷售信息管理"); JComboBoxjcb_customerName; JComboBoxjcb_productName; JButtonjb_add; JButtonjb_alter; JButtonjb_delete; JButtonjb_query; JButtonjb_allquery; publicstaticJTabletable; publicstaticDefaultTableModeldtm; JButtonjb_prev; JTextFieldjtf_di; JButtonjb_next; JButtonjb_jump; JTextFieldjtf_jump; DateChooserdc1; DateChooserdc2; publicstaticintchoose=0; Sellsie=newSell(); SellInfoServiceQuerysisq=newSellInfoServiceQuery(); SellInfoServiceDeletesisd=newSellInfoServiceDelete(); //當前頁 publicstaticintnowPage=1; //每頁記錄數(shù) publicstaticfinalintcountPage=20; //全部查詢的總頁數(shù) privateinttotalPages=0; //條件查詢的總頁數(shù) privateintconditionPages=0; //獲取時間控件1的值 publicstaticStringsellFromDate=null; //獲取時間控件2的值 publicstaticStringtoDate=null; publicvoidcreateUI(){ jf.getContentPane().setLayout(null); JLabeljl_productName=newJLabel("選擇商品"); jl_productName.setBounds(30,10,60,20); jf.add(jl_productName); jcb_productName=newJComboBox(); jcb_productName.setBounds(85,10,150,20); jf.add(jcb_productName); JLabeljl_customerName=newJLabel("選擇客戶"); jl_customerName.setBounds(365,10,60,20); jf.add(jl_customerName); jcb_customerName=newJComboBox(); jcb_customerName.setBounds(420,10,150,20); jf.add(jcb_customerName); JLabeljl_fromdate=newJLabel("日期從"); jl_fromdate.setBounds(30,50,50,20); jf.add(jl_fromdate); dc1=newDateChooser(jf); dc1.setBounds(85,50,160,20); jf.getContentPane().add(dc1); JLabeljl_todate=newJLabel("至"); jl_todate.setBounds(365,50,50,20); jf.add(jl_todate); dc2=newDateChooser(jf); dc2.setBounds(420,50,160,20); jf.getContentPane().add(dc2); JPaneljp_north=newJPanel(); jp_north.setLayout(newGridLayout(1,5)); jb_add=newJButton("添加"); jb_alter=newJButton("修改"); jb_delete=newJButton("刪除"); jb_query=newJButton("查詢"); jb_allquery=newJButton("全部查詢"); jp_north.add(jb_add); jp_north.add(jb_alter); jp_north.add(jb_delete); jp_north.add(jb_query); jp_north.add(jb_allquery); jp_north.setBounds(30,100,540,20); jf.add(jp_north); //為"添加","修改","刪除","查詢","全部查詢"按鈕添加事件 jb_add.addActionListener(this); jb_alter.addActionListener(this); jb_delete.addActionListener(this); jb_query.addActionListener(this); jb_allquery.addActionListener(this); table=newJTable(); Object[][]data=newObject[20][8]; Object[]columnNames={"銷售編號","客戶名稱","商品名稱","單價","數(shù)量","折扣", "銷售日期","備注"}; dtm=newDefaultTableModel(data,columnNames); //List<SellInfoEntity>list=sisq.executeAllQuerySell(nowPage, //countPage); //sisq.setAllJtable(list,dtm); table.setModel(dtm); JScrollPanejsp=newJScrollPane(table); jsp.setBounds(0,130,640,340); jf.add(jsp); JPaneljp_south=newJPanel(); jb_prev=newJButton("上一頁"); JLabeljl_di=newJLabel("第"); jtf_di=newJTextField(4); //jtf_di.setText(String.valueOf(nowPage)); jtf_di.setEditable(false); JLabeljl_ye=newJLabel("頁"); jb_next=newJButton("下一頁"); jb_jump=newJButton("跳轉(zhuǎn)到"); jtf_jump=newJTextField(4); jp_south.add(jb_prev); jp_south.add(jl_di); jp_south.add(jtf_di); jp_south.add(jl_ye); jp_south.add(jb_next); jp_south.add(jb_jump); jp_south.add(jtf_jump); jp_south.setBounds(30,490,540,30); jf.add(jp_south); //為"上一頁","下一頁","跳轉(zhuǎn)到"按鈕添加事件 jb_prev.addActionListener(this); jb_next.addActionListener(this); jb_jump.addActionListener(this); jf.setBounds(300,200,650,600); jf.setVisible(true); //調(diào)用SellInfoServiceAdd類的initJComboBox()函數(shù) SellInfoServiceQuerysisq=newSellInfoServiceQuery(); sisq.initJComboBox(jcb_productName,jcb_customerName); }對象屬性,如表4-19所示。表4-19sell1屬性數(shù)據(jù)類型描述sellIdInt自增IdcustomerNameString顧客productNameString商品名sellPriceDouble銷售單價sellAmountsInt銷售數(shù)量DateString銷售日期RemarksString備注對象行為,如表4-20所示。表4-20sell2方法描述PubliccreatUI()銷售信息管理窗口PublicexecuteAllQuerySell()銷售信息的查詢PublicgetTotalPages()查詢銷售的總記錄數(shù)PublicexecuteDelSell()刪除銷售信息(2)SellInfoViewAdd.java:添加銷售信息。對象行為,如表4-21所示。表4-21sellA2方法描述PubliccreatUI()添加銷售信息窗口PublicexecuteExportProduct()在數(shù)據(jù)庫中添加銷售信息PublicgetNowTime()獲取當前的銷售時間頁面設(shè)計,如圖4-7所示。圖4-7銷售信息添加(3)SellInfoViewUpdate.java:修改銷售信息。對象屬性,如表4-22所示。表4-22sellU1屬性數(shù)據(jù)類型描述對象行為,如表4-23所示。表4-23sellU2方法描述PubliccreatUI()修改銷售信息窗口PublicexecuteExportProduct()在數(shù)據(jù)庫中添加銷售信息PublicexecuteUpdateSell()修改數(shù)據(jù)庫中的銷售信息4.2數(shù)據(jù)庫實現(xiàn)數(shù)據(jù)庫軟件的名稱:Navicat8.0MySQL數(shù)據(jù)庫的名稱為:wml數(shù)據(jù)庫連接部分實現(xiàn)代碼如下所示。publicclassConnMySQL{ Connectionconn; ResultSetrs; Statementst; //獲取一個數(shù)據(jù)庫連接 publicConnectiongetConn(){ try{ //加載驅(qū)動 Class.forName("com.mysql.jdbc.Driver"); //獲取連接urlusernamepassword conn=DriverManager .getConnection( "jdbc:mysql://localhost:3306/wml?useUnicode=true&characterEncoding=utf-8", "root","ROOT"); }catch(Exceptione){ } returnconn; } //關(guān)閉數(shù)據(jù)庫連接 publicvoidclose(){ //關(guān)閉數(shù)據(jù)庫連接 try{ rs.close(); st.close(); conn.close(); System.out.println("連接已關(guān)閉!"); }catch(Exceptione){ e.printStackTrace(); } }4.2.1供應(yīng)商信息表(Provider)如表4-24所示。表4-24provider字段名數(shù)據(jù)類型長度主鍵非空描述providerIdint20是是供貨商編號,自增idproviderCompanyvchar50公司名稱providerAddressvchar50聯(lián)系地址providerNamevchar50聯(lián)系人姓名providerTelvchar20聯(lián)系電話providerPostalcodeint20郵政編碼providerFaxvchar50傳真號碼providerCityNamevchar50城市名稱providerAreavchar50地區(qū)名稱providerHomePagevchar50公司主頁remarksvchar50備注信息4.2.2進貨信息表(Stock)實體類部分實現(xiàn)代碼如下。privateintimportsId; privateStringproviderCompany; privateStringproductName; privatedoubleproductPrice; privateintimportsAmount; privateStringdate; privateStringremarks; publicImports(){ } publicImports(intimportsId,StringproductName,StringproviderCompany, doubleproductPrice,intimportsAmount,Stringdate,Stringremarks){ this.importsId=importsId; viderCompany=providerCompany; ductName=productName; ductPrice=productPrice; this.importsAmount=importsAmount; this.date=date; this.remarks=remarks; }如表4-25所示。表4-25stockimportsIdint20是是進貨編號,自增idproviderIdint20供應(yīng)商編號productIdint20商品編號importsAmountint20數(shù)量importsDatevchar50訂單日期remarksvchar50備注信息4.2.3顧客信息表(Customer)實體類部分實現(xiàn)代碼如下。publicCustom(intcustomerId,StringcustomerCompany,StringcustomerAddress, StringcustomerName,StringcustomerTel,intcustomerPostalcode,StringcustomerFax,StringcustomerCity, StringcustomerArea,StringcustomerHomePage,Stringremarks,Datedate){ this.customerId=customerId; this.customerCompany=customerCompany; this.customerAddress=customerAddress; this.customerName=customerName; this.customerTel=customerTel; this.customerPostalcode=customerPostalcode; this.customerFax=customerFax; this.customerCity=customerCity; this.customerArea=customerArea; this.customerHomePage=customerHomePage; this.remarks=remarks; this.date=date; }如表4-26所示。表4-26customercustomerIdint20是是顧客編號,自增idcustomerCompanyvchar50公司名稱customerAddressvchar50聯(lián)系地址customerNamevchar50聯(lián)系人姓名customerTelvachar50聯(lián)系電話customerPostalcodeint20郵政編碼customerFaxvchar50傳真號碼customerCityvchar50城市名稱customerAreavchar50地區(qū)名稱customerHomePagevchar50公司主頁remarksvchar50備注信息4.2.4銷售信息表(Sell)實體類部分實現(xiàn)代碼如下。privateintsellId; privateStringcustomerName; privateStringproductName; privatedoublesellPrice; privateintsellAmount; privatedoublesellDiscount; privateStringdate; privateStringremarks; publicSell(){ } publicSell(intsellId,StringcustomerName,StringproductName, doublesellPrice,intsellAmount,doublesellDiscount,Stringdate, Stringremarks){ super(); this.sellId=sellId; this.customerName=customerName; ductName=productName; this.sellPrice=sellPrice; this.sellAmount=sellAmount; this.sellDiscount=sellDiscount; this.date=date; this.remarks=remarks; }如表4-27所示。表4-27sell字段名數(shù)據(jù)類型長度主鍵非空描述sellIdint20是是銷售編號,自增idcustomerIdint20顧客編號productIdint20商品編號sellAmountint20數(shù)量sellPricedouble20銷售價格sellDiscountdouble20折扣remarksvchar50備注信息4.2.5商品信息表(Product)如表4-28所示。表4-28

溫馨提示

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

評論

0/150

提交評論