版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
PAGEPAGEI基礎(chǔ)Java的超市管理系統(tǒng)開發(fā)摘要隨著小型超市及店面規(guī)模的不斷擴(kuò)大,商品數(shù)量急劇增加,有關(guān)商品的各種信息量也成倍增長。各行業(yè)間聯(lián)系愈發(fā)密切,對超市管理的要求也不斷提高,實(shí)現(xiàn)超市管理自動化,無疑將帶來高效率的企業(yè)管理。超市時時刻刻都需要對商品各種信息進(jìn)行統(tǒng)計分析,以及對所產(chǎn)生的各類數(shù)據(jù)進(jìn)來合理的整理和分析。該系統(tǒng)采用java作為接口和功能開發(fā)工具,2010作為后臺數(shù)據(jù)庫,利用java提供的各種面向?qū)ο蟮拈_發(fā)工具開發(fā)接口和數(shù)據(jù)庫。本文系統(tǒng)基本上能滿足現(xiàn)代超市進(jìn)銷存管理的需求。本文分析了軟件開發(fā)的背景以過程;首先介紹了軟件的開發(fā)環(huán)境,其次介紹了本軟件的詳細(xì)過程:數(shù)據(jù)庫的設(shè)計、各個模塊的設(shè)計和實(shí)現(xiàn),以及具體界面的設(shè)計和功能。關(guān)鍵詞:超市管理系統(tǒng);數(shù)據(jù)查詢;數(shù)據(jù)庫;JAVA
AbstractWiththecontinuousexpansionofsmallsupermarketsandstorefronts,thenumberofcommoditieshasincreaseddramatically,andtheamountofinformationrelatedtogoodshasdoubled.Thelinksbetweenindustriesarebecomingmoreandmorecloselyrelated,andthedemandforsupermarketmanagementisalsoimproving.Theautomationofsupermarketmanagementwillundoubtedlybringaboutefficientbusinessmanagement.Supermarketsneedtomakestatisticalanalysisofallkindsofinformation,andsortoutandanalyzeallkindsofdata.ThissystemusesJAVAastheinterfaceandfunctiondevelopmenttoolandSQLSever2010asthebackgrounddatabase,andusesallkindsofobjectorienteddevelopmenttoolsprovidedbythemtodeveloptheinterfaceanddatabase.Thissystembasicallymeetstheneedsofmodernsupermarket'spurchase,saleandstoragemanagement.Thebackgroundofsoftwaredevelopmentisanalyzedinthispaper.First,thedevelopmentenvironmentofthesoftwareisintroduced.Secondly,thedetailedprocessofthesoftwareisintroduced:thedesignofthedatabase,thedesignandimplementationofeachmodule,andthedesignandfunctionofthespecificinterface.Keywords:supermarketmanagementsystem;dataquery;database;JAVA
目錄摘要 IAbstract II1緒論 11.1項目背景 11.2國內(nèi)外發(fā)展?fàn)顩r 11.3研究內(nèi)容 22開發(fā)技術(shù) 32.1系統(tǒng)運(yùn)行環(huán)境環(huán)境 32.2系統(tǒng)開發(fā)技術(shù) 32.2.1JAVA簡介 32.2.2MySQL數(shù)據(jù)庫 32.2.3HTML5 43軟件需求分析 53.1需求分析 53.2可行性分析 53.3系統(tǒng)功能結(jié)構(gòu) 53.4系統(tǒng)業(yè)務(wù)流圖 54系統(tǒng)設(shè)計 74.1數(shù)據(jù)庫與數(shù)據(jù)庫表設(shè)計 74.1.1數(shù)據(jù)庫介紹 74.1.2E-R圖 74.1.3數(shù)據(jù)庫表設(shè)計 84.2系統(tǒng)功能模塊設(shè)計 114.2.1公共類設(shè)計 114.2.2系統(tǒng)登錄模塊設(shè)計 124.2.3系統(tǒng)主窗體設(shè)計 134.2.4進(jìn)貨單模塊設(shè)計 144.2.5銷售單模塊設(shè)計 184.2.6庫存盤點(diǎn)模塊設(shè)計 214.2.7數(shù)據(jù)庫備份與恢復(fù)模塊設(shè)計 225系統(tǒng)測試 245.1系統(tǒng)軟件測試 245.1.1測試的原則 245.1.2模塊測試 245.1.3集成測試 25結(jié)語 26參考文獻(xiàn) 27致謝 29PAGE281緒論1.1項目背景二十一世紀(jì)是信息的時代,隨著計算機(jī)技術(shù)的發(fā)展以及計算機(jī)網(wǎng)絡(luò)(互聯(lián)網(wǎng)等)的逐漸普及。信息的交換和信息流通特別重要。超市等服務(wù)性行業(yè)的競爭也進(jìn)入到一個全新的領(lǐng)域。同時我們都可以看到這樣一個現(xiàn)象競爭已不再是規(guī)模的競爭,而是技術(shù)的競爭、管理的競爭、人才的競爭。技術(shù)的提升和管理的升級是連鎖超市業(yè)的競爭核心。零售領(lǐng)域目前呈現(xiàn)多元化發(fā)展趨勢,多種行業(yè)形態(tài),如:超市、倉儲店、便利店、特許加盟店、專店、貨倉等等將相互并存,相互制約。如何在激烈的競爭中擴(kuò)大銷售額、降低經(jīng)營成本、擴(kuò)大經(jīng)營規(guī)模,將成為本進(jìn)銷存管理系統(tǒng)努力追求的目標(biāo)和發(fā)展方向。超市經(jīng)營模式是當(dāng)前最為流行的市場模式之一,所以與之相關(guān)的管理和配置的需求與要求都大大提高了。當(dāng)今社會,超市已成為社會不可缺少的一部分,不論大中小城市,都存在或大或小或多或少的超市。對于一個稍有規(guī)模的超市甚至很小的店面,都需要一個管理系統(tǒng),進(jìn)行規(guī)范化統(tǒng)一化的管理。因此超市管理系統(tǒng)的開發(fā),顯得十分有必要。超市形態(tài)模式具有種種優(yōu)點(diǎn),但在目前狀況下,它仍存在零售業(yè)企業(yè)所共有的落后的一面。目前市面上是有何種各樣的這類管理系統(tǒng),但是用JAVA語言編譯實(shí)現(xiàn)的幾乎沒有。因本人熱愛并學(xué)習(xí)JAVA語言,為了驗證自己的JAVA學(xué)習(xí)情況,同時想知道自己對JAVA的掌握能力。于是決定用JAVA重新開發(fā)一個這樣的系統(tǒng),以彌補(bǔ)JAVA語言編譯在這類系統(tǒng)上的空缺。經(jīng)過認(rèn)真的市場研究和從實(shí)際分析,開發(fā)并實(shí)現(xiàn)一個比較合理的,完善的超市進(jìn)銷存管理系統(tǒng)。也許這個系統(tǒng)還有很多BUG,但是我會在以后慢慢修改,同時也希望大家能提出所知道的漏洞。1.2國內(nèi)外發(fā)展?fàn)顩r信息管理系統(tǒng)在強(qiáng)調(diào)管理、強(qiáng)調(diào)信息的現(xiàn)代社會中它變得越來越普及。信息管理系統(tǒng)在很多科學(xué)的基礎(chǔ)上,形成信息收集和加工的方法,從而形成一個縱橫交錯的系統(tǒng)。從國際技術(shù)發(fā)展趨勢來看,20世紀(jì)90年代出現(xiàn)了集中全新的管理技術(shù)。一種遠(yuǎn)見的企業(yè)管理模式,其特點(diǎn)是職工素質(zhì)高、組織機(jī)構(gòu)精良、多功能小組效率高、信息存放靈活、影響要求迅速。在二十一世紀(jì)中,管理信息系統(tǒng)(MIS)也正處于進(jìn)入新的發(fā)展階段的特點(diǎn)。許多新問題和新情況要我們?nèi)パ芯亢吞接?。?jīng)濟(jì)領(lǐng)域和經(jīng)濟(jì)學(xué)思想的變化和科學(xué)思想的變化是兩個直接影響到MIS研究和教學(xué)的重要的背景。值得我們認(rèn)真地進(jìn)行研究。中國大學(xué)中開設(shè)MIS課程的不到100個。具體包括在管理科學(xué)當(dāng)中,并涵蓋了圖書情報,信息管理等內(nèi)容。中國的MIS的先期發(fā)展有大連研究中心和幾個財經(jīng)學(xué)校,隨后又逐漸有北大、人大等大學(xué)加入其中。1.3研究內(nèi)容本系統(tǒng)使用JAVA作為界面和功能開發(fā)工具和SQLSever2010作為后臺數(shù)據(jù)庫,利用其提供的各種面向?qū)ο蟮拈_發(fā)工具進(jìn)行界面和數(shù)據(jù)庫開發(fā)。本文系統(tǒng)基本上能滿足現(xiàn)代超市進(jìn)銷存管理的需求。本文分析了軟件開發(fā)的背景以過程;首先介紹了軟件的開發(fā)環(huán)境,其次介紹了本軟件的詳細(xì)過程:數(shù)據(jù)庫的設(shè)計、各個模塊的設(shè)計和實(shí)現(xiàn),以及具體界面的設(shè)計和功能。
2開發(fā)技術(shù)2.1系統(tǒng)運(yùn)行環(huán)境環(huán)境硬件環(huán)境,CPU(中央處理器):Intel(R)Pentium(R)E53002.60GHzRAM(內(nèi)存):2GHDD(硬盤):500G軟件開發(fā)環(huán)境,操作系統(tǒng):WindowsxpSP3JDK環(huán)境:JAVASEDevelopmentKIT(JDK)Version6開發(fā)工具:Eclipse3.2數(shù)據(jù)庫管理軟件:MicrosoftMySQLSP42.2系統(tǒng)開發(fā)技術(shù)本系統(tǒng)的開發(fā)主要是使用在Eclipse平臺下的JAVA語言,并結(jié)合了MySQL數(shù)據(jù)庫技術(shù),使此系統(tǒng)具有強(qiáng)大的查詢功能。2.2.1JAVA簡介Java語言是一個支持網(wǎng)絡(luò)計算的面向?qū)ο蟪绦蛟O(shè)計語言。Java語言吸收了Smalltalk語言和C++語言的優(yōu)點(diǎn),并增加了其它特性,如支持并發(fā)程序設(shè)計、網(wǎng)絡(luò)通信、和多媒體數(shù)據(jù)控制等。主要特性如下:(1)Java語言是簡單的。Java語言的語法與C語言和C++語言很接近,使得大多數(shù)程序員很容易學(xué)習(xí)和使用Java。另一方面,Java丟棄了C++中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動的強(qiáng)制類型轉(zhuǎn)換。特別地,Java語言不使用指針,并提供了自動的廢料收集,使得程序員不必為內(nèi)存管理而擔(dān)憂。(2)Java語言是一個面向?qū)ο蟮?。Java語言全面支持動態(tài)綁定,而C++語言只對虛函數(shù)使用動態(tài)綁定??傊?,Java語言是一個純的面向?qū)ο蟪绦蛟O(shè)計語言。2.2.2MySQL數(shù)據(jù)庫MySQL是最受歡迎的開源SQL數(shù)據(jù)庫管理系統(tǒng),它由MySQLAB開發(fā)、發(fā)布和支持。MySQL是MySQLAB的注冊商標(biāo)。MySQL是一個快速的、多線程、多用戶和健壯的SQL數(shù)據(jù)庫服務(wù)器。MySQL服務(wù)器支持關(guān)鍵任務(wù)、重負(fù)載生產(chǎn)系統(tǒng)的使用,也可以將它嵌入到一個大配置(mass-deployed)的軟件中去。MySQL網(wǎng)站()提供了關(guān)于MySQL和MySQLAB的最新的消息。MySQL是一個數(shù)據(jù)庫管理系統(tǒng)一個數(shù)據(jù)庫是一個結(jié)構(gòu)化的數(shù)據(jù)集合。它可以是從一個簡單的銷售表到一個美術(shù)館、或者一個社團(tuán)網(wǎng)絡(luò)的龐大的信息集合。如果要添加、訪問和處理存儲在一個計算機(jī)數(shù)據(jù)庫中的數(shù)據(jù),你就需要一個像MySQL這樣的數(shù)據(jù)庫管理系統(tǒng)。2.2.3HTML5HTML5,即JavaServerPages,它是一種基于Java的語言技術(shù),用于生成動態(tài)網(wǎng)頁,支持跨平臺、跨Web服務(wù)器。眾所周知,當(dāng)今網(wǎng)絡(luò)開發(fā)的三大主流技術(shù),有Sun公司的HTML5,微軟的ASP以及開源的JAVA。其中HTML5憑借J2EE平臺,有跨平臺使用優(yōu)勢,能夠輕松地運(yùn)行與微軟的視窗系統(tǒng)、服務(wù)器通UNIX系統(tǒng)和開源的Linux系統(tǒng),這項優(yōu)勢是其它語言難以匹敵的。HTML5擁有Java(加哇)語言“Writeonce,runeverywhere(一次編碼,遍地運(yùn)行)”的特性。鑒于HTML5的眾多優(yōu)勢,其必將成為未來發(fā)展的趨勢。HTML5技術(shù)所開發(fā)的web應(yīng)用程序是基于Java的,它擁有Java跨平臺的特性,以及業(yè)務(wù)代碼分離,組建重用,基礎(chǔ)Javaservlet功能和預(yù)編譯功能。
3軟件需求分析3.1需求分析根據(jù)用戶方的需求,要求企業(yè)進(jìn)銷存管理系統(tǒng)具有以下功能:(1)界面設(shè)計美觀大方,操作方便、快捷、靈活。(2)實(shí)現(xiàn)強(qiáng)大的進(jìn)銷存管理,包括基本信息、進(jìn)貨、銷售和庫存管理。(3)提供數(shù)據(jù)庫備份與恢復(fù)功能。(4)提供庫存盤點(diǎn)功能。(5)提供技術(shù)支持的聯(lián)系方式,可以使用郵件進(jìn)行溝通,或者直接連接到技術(shù)網(wǎng)站。3.2可行性分析企業(yè)進(jìn)銷存管理系統(tǒng)必須提供商品信息、供應(yīng)商信息和客戶信息的基礎(chǔ)設(shè)置;提供強(qiáng)大的搜索功能和商品的進(jìn)貨、銷售和庫存管理功能。系統(tǒng)還必須保證數(shù)據(jù)的安全性、完整性和準(zhǔn)確性。項目主要以企業(yè)的進(jìn)貨、銷售和查詢統(tǒng)計功能為主,對于庫存、銷售和進(jìn)貨的記錄信息應(yīng)該及時、準(zhǔn)確的保存,并提供想要的查詢和統(tǒng)計。由于庫存商品數(shù)量太多,不易盤點(diǎn),傳統(tǒng)的盤點(diǎn)方式容易出錯,系統(tǒng)中的庫存盤點(diǎn)功能要準(zhǔn)確的計算出各種商品的損益數(shù)量,減少企業(yè)的不必要的損失。3.3系統(tǒng)功能結(jié)構(gòu)企業(yè)進(jìn)銷存管理系統(tǒng)功能結(jié)構(gòu)圖如圖2.1所示。圖2.1企業(yè)進(jìn)銷存管理系統(tǒng)功能結(jié)構(gòu)圖3.4系統(tǒng)業(yè)務(wù)流圖企業(yè)進(jìn)銷存管理系統(tǒng)業(yè)務(wù)流程圖如圖2.2所示。圖2.2企業(yè)進(jìn)銷存管理系統(tǒng)業(yè)務(wù)流程圖
4系統(tǒng)設(shè)計4.1數(shù)據(jù)庫與數(shù)據(jù)庫表設(shè)計4.1.1數(shù)據(jù)庫介紹所謂數(shù)據(jù)庫(Database)就是按一定組織方式存儲在一起,相互相關(guān)的若干數(shù)據(jù)的結(jié)合,數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem)就是一種操作和管理數(shù)據(jù)庫的大型軟件,簡稱DBMS,他們建立在操作系統(tǒng)的基礎(chǔ)上,對數(shù)據(jù)庫進(jìn)行統(tǒng)一的管理和控制,其功能包括數(shù)據(jù)庫定義,數(shù)據(jù)庫管理,數(shù)據(jù)庫的建立和維護(hù),與操作系統(tǒng)通信等。4.1.2E-R圖購銷存系統(tǒng)主要實(shí)現(xiàn)從購銷、庫存到銷售的一體化管理,設(shè)計了商品信息、商品供應(yīng)商、購貨客戶等多個實(shí)體。下面列舉了關(guān)鍵的實(shí)體和系統(tǒng)的綜合E-R圖。供應(yīng)商實(shí)體屬性圖供應(yīng)商實(shí)體包括:編號、名稱、簡稱、地址、電話、郵政編碼、傳真、聯(lián)系人、聯(lián)系人電話、開戶行和E-mail屬性,如圖4.1所示。圖4.1供貨商實(shí)體屬性圖商品實(shí)體屬性圖商品實(shí)體包括:編號、商品名稱、商品簡稱、產(chǎn)地、單位、規(guī)格、包裝、批號、批準(zhǔn)文號、商品簡介和供應(yīng)商屬性。如圖4.2所示。圖4.2商品實(shí)體屬性圖客戶實(shí)體屬性圖客戶實(shí)體包括:客戶編號、客戶名稱、簡稱、地址、電話、郵政編碼、聯(lián)系人電話、傳真、開戶行和賬號屬性。如圖4.3所示。圖4.3客戶實(shí)體屬性圖銷售實(shí)體屬性圖銷售實(shí)體分為銷售主表和銷售明細(xì)表兩個實(shí)體,它們是一對多的關(guān)系。其中銷售主表包括:銷售票號、品種數(shù)、金額、驗收結(jié)論、客戶名稱、經(jīng)手人、結(jié)算方式、操作員和銷售日期屬性。銷售明細(xì)表包括:編號、銷售票號、商品編號、數(shù)量和單價屬性。如圖4.4所示。圖4.4銷售實(shí)體屬性圖4.1.3數(shù)據(jù)庫表設(shè)計數(shù)據(jù)庫在整個管理系統(tǒng)中占據(jù)非常重要的地位,數(shù)據(jù)庫結(jié)構(gòu)設(shè)計的好壞直接影響著系統(tǒng)的效率和實(shí)現(xiàn)效果。進(jìn)銷存管理系統(tǒng)采用MySQLSP4版本的數(shù)據(jù)庫,數(shù)據(jù)庫名稱為db_JXC,因篇幅所限,本論文只給出幾個重要數(shù)據(jù)表的表結(jié)構(gòu)。供應(yīng)商信息表供應(yīng)商信息表的名稱為tb_gysinfo,主要用于存儲供應(yīng)商的詳細(xì)信息,結(jié)構(gòu)如表3.1所示。表3.1供應(yīng)商信息表字段名稱數(shù)據(jù)類型字段大小是否主鍵說明idvarchar32主鍵供貨商編號namevarchar50供貨商名稱jcvarchar20供貨商簡稱addressvarchar100供貨商地址bianmavarchar10郵政編碼telvarchar15電話faxvarchar15傳真lianvarchar8聯(lián)系人ltelvarchar15聯(lián)系電話yhvarchar50開戶銀行mailvarchar30電子郵箱商品信息表商品信息表的名稱為tb_spinfo,主要用于存儲商品的詳細(xì)信息,結(jié)構(gòu)如表3.2所示。表3.2商品信息表字段名稱數(shù)據(jù)類型字段大小是否主鍵說明idvarchar32主鍵商品編號spnamevarchar50商品名稱jcvarchar30商品簡稱cdvarchar50產(chǎn)地dwvarchar10商品計量單位ggvarchar10商品規(guī)格bzvarchar20包裝phvarchar32批號pzwhvarchar50批準(zhǔn)文號memovarchar100備注gysnamevarchar50供應(yīng)商名稱入庫主表入庫主表的名稱為tb_ru_main,主要用于存儲入庫單據(jù)信息,其結(jié)構(gòu)如表3.3所示。表3.3入庫主表字段名稱數(shù)據(jù)類型字段大小是否主鍵說明rkIDvarchar32主鍵入庫編號pzsfloat8品種數(shù)量jemoney8總計金額ysjlvarchar50驗收結(jié)論gysnamevarchar100供貨商名稱rkdatedatetime8入庫時間czyvarchar30操作員jsrvarchar30經(jīng)手人jsfsvarchar10結(jié)算方式入庫明細(xì)表入庫明細(xì)表的名稱為tb_ruku_detail,主要用于存儲入庫的詳細(xì)信息,結(jié)構(gòu)如表3.4所示。表3.4入庫明細(xì)表字段名稱數(shù)據(jù)類型字段大小是否主鍵說明idvarchar50主鍵流水號rkIDvarchar0入庫編號spidvarchar50商品編號djvarchar8單價s1float8數(shù)量銷售主表銷售主表的名稱為tb_sell_main,主要用于存儲銷售單據(jù)的信息,結(jié)構(gòu)如表3.5所示。表3.5銷售主表字段名稱數(shù)據(jù)類型字段大小是否主鍵說明sellIDvarchar30主鍵銷售編號pzsfloat8銷售品種數(shù)jemoney8總計金額ysjlvarchar50驗收結(jié)論khnamevarchar100客戶名稱xsdatedatetime8銷售日期czyvarchar30操作員jsrvarchar30經(jīng)手人jsfsvarchar10結(jié)算方式銷售明細(xì)表銷售明細(xì)表的名稱為tb_sell_detail,主要用于存儲銷售的詳細(xì)信息,結(jié)構(gòu)如表3.6所示。表3.6銷售明細(xì)表字段名稱數(shù)據(jù)類型字段大小是否主鍵說明idvarchar50主鍵流水號sellIDvarchar50銷售編號spidvarchar50產(chǎn)品編號djmoney8銷售單價slfloat8銷售數(shù)量客戶信息表客戶信息表的名稱為tb_khinfo,主要用于存儲客戶的信息,結(jié)構(gòu)如表3.7所示。表3.7客戶信息表字段名稱數(shù)據(jù)類型長度是否主鍵說明idvarchar50主鍵客戶編號khnamevarchar50客戶名稱jianvarchar50客戶簡稱addressvarchar100客戶地址bianmavarchar50郵政編碼telvarchar50客戶電話faxvarchar50客戶傳真lianvarchar50聯(lián)系人ltelvarchar50聯(lián)系人電話mailvarchar50E-mail地址xinhangvarchar60開戶行haovarchar60賬號4.2系統(tǒng)功能模塊設(shè)計4.2.1公共類設(shè)計(1)Item公共類Item公共類是對數(shù)據(jù)表最常用的id和name屬性的封裝,用于Swing列表、表格、下拉列表框等組件的復(fù)制,該類重寫了toString()方法,在該類方法中只輸出那么屬性,所以Item類在Swing組件現(xiàn)實(shí)文本時只包含名稱信息,不會連帶著id屬性。但是在獲取組件的內(nèi)容時,獲取的是Item類的對象,從該對象中可以很容易的獲取id屬性,然后通過該屬性到數(shù)據(jù)庫中獲取唯一的數(shù)據(jù)。(2)數(shù)據(jù)模型公共類數(shù)據(jù)模型公共類對應(yīng)于數(shù)據(jù)庫中的不同數(shù)據(jù)表,將被訪問數(shù)據(jù)庫的dao類以及程序中的每個模塊甚至組件使用。與使用項公共類類似,數(shù)據(jù)模型封裝數(shù)據(jù)表中的所有字段(屬性),但數(shù)據(jù)類型是純模型。它不但需要重寫父類的toString()方法,還要重寫hashCode()方法和equals()方法(這兩個方法分別用于生成模型對象的哈希代碼和判斷模型對象是否相同)。模型類主要用于存儲數(shù)據(jù),并通過想要的getXXX()方法和setXXX()實(shí)現(xiàn)不同屬性的訪問原則。(3)Dao類Dao的全稱是DataAccessObject,即數(shù)據(jù)庫訪問對象。在此項目中,將應(yīng)用數(shù)據(jù)庫訪問類的名稱。在這個類中,實(shí)現(xiàn)了驅(qū)動、連接、關(guān)閉數(shù)據(jù)庫和操作多個數(shù)據(jù)庫的方法。這些方法包括不同數(shù)據(jù)表的操作方法。其關(guān)鍵代碼如下:packagecom.lzw.dao;importJAVA.sql.*;importJAVA.sql.Date;importJAVA.util.*;importJAVAx.swing.JOptionPane;importcom.lzw.Item;importcom.lzw.dao.model.*;publicclassDao{ protectedstaticStringdbClassName="net.sourceforge.jtds.jdbc.Driver"; protectedstaticStringdbUrl="jdbc:jtds:sqlserver://localhost:1433/" +"db_database28;SelectMethod=Cursor"; protectedstaticStringdbUser="sa"; protectedstaticStringdbPwd=""; protectedstaticStringsecond=null; publicstaticConnectionconn=null; static{ try{ if(conn==null){ Class.forName(dbClassName).newInstance(); conn=DriverManager.getConnection(dbUrl,dbUser,dbPwd); } }catch(ClassNotFoundExceptione){ e.printStackTrace(); JOptionPane.showMessageDialog(null, "請將MySQL的JDBC驅(qū)動包復(fù)制到lib文件夾中。"); System.exit(-1); }catch(Exceptione){ e.printStackTrace(); } }4.2.2系統(tǒng)登錄模塊設(shè)計系統(tǒng)登錄也是項目必須開發(fā)的模塊,主要由兩部分組成,一部分是登錄窗體,另一部分是窗體中帶背景圖片的內(nèi)容面板。它是系統(tǒng)的安全門,只有提供正確的用戶名和登錄口令之后,才能進(jìn)入企業(yè)進(jìn)銷存管理系統(tǒng)進(jìn)行進(jìn)銷存管理工作。系統(tǒng)登錄模塊如圖4.5所示。圖4.5系統(tǒng)登錄界面創(chuàng)建內(nèi)容面板所有組件都要布置在窗體的內(nèi)容面板上,而登陸模塊的內(nèi)容使用了背景圖片來美化窗體界面,這就需要繼承Swing的Jpanel類編寫自己的面板類,然后將面板類作為窗體的內(nèi)容面板。創(chuàng)建登錄窗體創(chuàng)建LoginDialog類,該類繼承Jframe類,成為一個窗體。設(shè)置窗體的標(biāo)題為“系統(tǒng)登錄”,設(shè)置內(nèi)容面板為LoginPanel類的對象。該窗體用于不知各種組件,來實(shí)現(xiàn)系統(tǒng)登錄的界面?!懊艽a”文本框的回車事件一個擊鍵事件監(jiān)聽器被添加到系統(tǒng)登錄表單的“密碼”文本框中。當(dāng)它獲得在“密碼”文本框中輸入的返回字符時,它將執(zhí)行登錄事件。也就是說,在“password”文本框中輸入密碼后,按enter鍵將執(zhí)行與單個“l(fā)ogin”按鈕相同的業(yè)務(wù)邏輯?!暗卿洝卑粹o的事件“登錄”按鈕用于執(zhí)行用戶名和密碼的驗證工作,如果驗證用戶名和密碼有效,則啟動系統(tǒng),否則禁止進(jìn)入系統(tǒng)。在“登錄”按鈕的動作事件監(jiān)聽器種,首先獲取用戶輸入的用戶名與密碼信息,然后調(diào)用Dao類的checkLogin()方法,如果該方法返回true則登陸成功,否則禁止用戶登錄,并提示輸入的用戶名與密碼無法登錄系統(tǒng)。4.2.3系統(tǒng)主窗體設(shè)計主窗體是人際交互的本體,用戶通過主窗體中提供的各種菜單、表格、文本框、子窗體等組件進(jìn)行管理操作。本系統(tǒng)主界面采用的是MID(即“多文檔界面”),類似于Word的應(yīng)用程序,可以同時打開多個子窗體,并對打開的功能窗體進(jìn)行各種操作。系統(tǒng)主窗體界面如圖4.6所示。圖4.6系統(tǒng)主窗體界面4.2.4進(jìn)貨單模塊設(shè)計進(jìn)貨單模塊負(fù)責(zé)添加企業(yè)的進(jìn)貨信息,他根據(jù)進(jìn)貨人員提供的單據(jù),將采購商品的名稱、編號、產(chǎn)地、規(guī)格、單價和數(shù)量等信息記錄到數(shù)據(jù)的庫存表中。進(jìn)貨單模塊窗體界面如圖4.9所示。圖4.9進(jìn)貨單窗體界面設(shè)計進(jìn)貨單窗體在Eclipse中選擇“文件”/“新建”/VisualClass命令,在彈出的NewJAVAVisualClass對話框中創(chuàng)建InternalFrame內(nèi)部窗體類,命名為JinHuoDan_Iframe。添加進(jìn)貨商品在進(jìn)貨單船體點(diǎn)擊“添加”按鈕,會在表格中添加一個空行可以再該空行的第一個字段選擇商品名稱,其他的字段信息會根據(jù)選擇的商品自動填充。這就需要為“添加”按鈕編寫ActionListener動作監(jiān)聽器,在該監(jiān)聽器中實(shí)現(xiàn)相應(yīng)的操作?!疤砑印卑粹o的初始化由getTiButton()方法完成,該方法在初始化“添加”按鈕時,為按鈕添加了動作事件監(jiān)聽器。其關(guān)鍵代碼如下: privateJButtongetTjButton(){ if(tjButton==null){ tjButton=newJButton(); tjButton.setText("添加"); tjButton.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ //初始化票號 JAVA.sql.Datedate=newJAVA.sql.Date(jhsjDate.getTime()); jhsjField.setText(date.toString()); StringmaxId=Dao.getRuKuMainMaxId(date); idField.setText(maxId); //結(jié)束表格中沒有編寫的單元 stopTableCellEditing(); //如果表格中不包含空行,就添加新行 for(inti=0;i<=table.getRowCount()-1;i++){ if(table.getValueAt(i,0)==null) return; } DefaultTableModelmodel=(DefaultTableModel)table .getModel(); model.addRow(newVector()); } }); } returntjButton; }進(jìn)貨統(tǒng)計在bottomPanel面板中布置了多個文本框,用于統(tǒng)計品種數(shù)量、貨品總數(shù)、合計金額等商品信息,在添加貨品之后,要實(shí)現(xiàn)商品信息的自動統(tǒng)計,既要在table表格的PropertyChangeListener事件監(jiān)聽器編寫統(tǒng)計代碼。這里將統(tǒng)計代碼編寫在ComputeInfo()方法,然后在事件監(jiān)聽器中調(diào)用。當(dāng)table表格發(fā)生屬性改變事件是,事件監(jiān)聽器首先會檢測發(fā)生的事件類型,也就是判斷發(fā)生了那種更改屬性的事件,如果事件類型是tableCellEditor則說明術(shù)語表格編輯事件,這時應(yīng)該針對表格的修改事件去調(diào)用ComputeInfo()方法執(zhí)行產(chǎn)品進(jìn)貨的統(tǒng)計業(yè)務(wù)并將結(jié)果顯示在相應(yīng)的組件上。商品入庫再添加了進(jìn)貨單中的所有商品后,單機(jī)“入庫”按鈕可以將這些商品添加到數(shù)據(jù)庫中。這需要在“入庫”按鈕的初始化方法中,為按鈕添加ActionListener動作監(jiān)聽器,在監(jiān)聽器中實(shí)現(xiàn)商品入庫的業(yè)務(wù)邏輯。getRukuButton()方法是“入庫”按鈕的初始化方法,該方法將判斷“入庫”按鈕對象是否初始化,如果已經(jīng)初始化就直接將按鈕對象返回給方法調(diào)用者,否者現(xiàn)對按鈕進(jìn)行初始胡,然后返回該按鈕對象。在初始化“入庫”按鈕的過程中為按鈕添加了事件監(jiān)聽器,在該事件監(jiān)聽器中首先調(diào)用stopTableCellEditing()方法停止正在編輯的表格單元,然后獲取進(jìn)貨單的品種數(shù)量,結(jié)算方式、合計金額、經(jīng)手人、操作員、進(jìn)票號、驗證結(jié)論等信息,并對關(guān)鍵信息進(jìn)行判斷,防止用戶忘記填寫這些關(guān)鍵信息。最后,創(chuàng)建進(jìn)貨主表的模型對象、進(jìn)貨詳細(xì)表的模型對象和庫存表的模型對象,使用進(jìn)貨單窗體中的信息初始化這些模型對象,并把他們通過Dao公共類的insertRukuInfo()方法保存到數(shù)據(jù)庫中。其關(guān)鍵代碼如下:privateJButtongetRukuButton(){ if(rukuButton==null){ rukuButton=newJButton(); rukuButton.setText("入庫"); rukuButton.addActionListener(newJAVA.awt.event.ActionListener(){ publicvoidactionPerformed(JAVA.awt.event.ActionEvente){ stopTableCellEditing();//結(jié)束表格中沒有編寫的單元 StringpzsStr=pzslField.getText();//品種數(shù) StringjeStr=hjjeField.getText();//合計金額 StringjsfsStr=jsfsComboBox.getSelectedItem().toString();//結(jié)算方式 StringjsrStr=jsrComboBox.getSelectedItem()+"";//經(jīng)手人 StringczyStr=jsrComboBox.getSelectedItem()+"";//操作員 StringrkDate=jhsjField.getText();//入庫時間 StringysjlStr=ysjlField.getText().trim();//驗收結(jié)論 Stringid=idField.getText();//票號 StringgysName=gysComboBox.getSelectedItem()+"";//供應(yīng)商名字 if(jsrStr==null||jsrStr.isEmpty()){ JOptionPane.showMessageDialog(JinHuoDan_IFrame.this, "請?zhí)顚懡?jīng)手人"); return; } if(ysjlStr==null||ysjlStr.isEmpty()){ JOptionPane.showMessageDialog(JinHuoDan_IFrame.this, "填寫驗收結(jié)論"); return; } if(table.getRowCount()<=0){ JOptionPane.showMessageDialog(JinHuoDan_IFrame.this, "填加入庫商品"); return; } TbRukuMainruMain=newTbRukuMain(id,pzsStr,jeStr, ysjlStr,gysName,rkDate,czyStr,jsrStr,jsfsStr); Set<TbRukuDetail>set=ruMain.getTabRukuDetails(); introws=table.getRowCount(); for(inti=0;i<rows;i++){ TbSpinfospinfo=(TbSpinfo)table.getValueAt(i,0); if(spinfo==null||spinfo.getId()==null ||spinfo.getId().isEmpty()) continue; StringdjStr=(String)table.getValueAt(i,6); StringslStr=(String)table.getValueAt(i,7); Doubledj=Double.valueOf(djStr); Integersl=Integer.valueOf(slStr); TbRukuDetaildetail=newTbRukuDetail(); detail.setTabSpinfo(spinfo.getId()); detail.setTabRukuMain(ruMain.getRkId()); detail.setDj(dj); detail.setSl(sl); set.add(detail); } booleanrs=Dao.insertRukuInfo(ruMain); if(rs){ JOptionPane.showMessageDialog(JinHuoDan_IFrame.this, "入庫完成"); DefaultTableModeldftm=newDefaultTableModel(); table.setModel(dftm); pzslField.setText("0"); hpzsField.setText("0"); hjjeField.setText("0"); } } }); } returnrukuButton; }4.2.5銷售單模塊設(shè)計商品銷售時進(jìn)銷存管理中的重要環(huán)節(jié)之一,進(jìn)貨商在入庫之后就可以開始銷售。銷售單模塊主要負(fù)責(zé)根據(jù)經(jīng)手人的銷售單據(jù),操作進(jìn)銷存管理系統(tǒng)的庫存商品和記錄銷售信息,方便以后查詢和統(tǒng)計。其窗體界面如圖4.10所示。圖4.10銷售單窗體界面設(shè)計銷售單窗體創(chuàng)建Internalframe內(nèi)部窗體類,命名為XiaoShouDan。該窗體主要用于處理商品銷售的業(yè)務(wù)邏輯添加銷售商品在銷售單窗體中單擊“添加”,將向table表格中添加新的空行,操作員可以在空行的第一列字段的商品下來列表中選擇銷售的商品,這兒下拉列表框和進(jìn)貨單窗體的不同,它不是根據(jù)供貨商字段確定選擇框內(nèi)容,而是包含了數(shù)據(jù)庫中所欲可以銷售的商品。要實(shí)現(xiàn)添加商品的功能,需要為“添加”按鈕添加動作監(jiān)聽器,在監(jiān)聽器種實(shí)現(xiàn)相應(yīng)的業(yè)務(wù)邏輯。在該監(jiān)聽器中調(diào)用了initPiaoHao()方法初始化銷售票號,該票號就是銷售單在數(shù)據(jù)庫中的id編號。initPiaoHao()方法首先創(chuàng)建JAVA.sql包中Date類的對象,該對象包含當(dāng)前日期;然后調(diào)用Dao累的getSellMainMaxId()方法獲取數(shù)據(jù)庫銷售主表中的最大ID號;最后,將該ID編號更新到piaoHao文本框中。銷售統(tǒng)計和進(jìn)貨單的統(tǒng)計功能類似,銷售單也需要統(tǒng)計功能,統(tǒng)計的內(nèi)容包括貨品數(shù)量、品種數(shù)量、合計金額等信息,實(shí)現(xiàn)方式也是通過table表格的事件監(jiān)聽器來處理相應(yīng)的統(tǒng)計業(yè)務(wù),但是銷售但船體使用不是PropertyChangeListener屬性改變事件監(jiān)聽器,而是使用ContainerListener容器監(jiān)聽器。商品銷售在銷售單窗體中添加完銷售商品之后,單擊“銷售”按鈕,將完成本次銷售單的銷售業(yè)務(wù)。系統(tǒng)會記錄本次銷售信息,并從庫存表中扣除銷售的商品數(shù)量。這些業(yè)務(wù)處理都是在“銷售”按鈕的動作監(jiān)聽器中完成,該監(jiān)聽器需要獲取銷售單窗體中所有銷售信息和商品信息,將所有商品信息封裝為銷售明細(xì)表的模型對象,并將這些模型對象放到一個集合中,然后調(diào)用Dao公共類的insertSellInfo()方法將集合與銷售主表的模型對象保存到數(shù)據(jù)庫中。其關(guān)鍵代碼如下: //單擊銷售按鈕保存進(jìn)貨信息 JButtonsellButton=newJButton("銷售"); sellButton.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ stopTableCellEditing();//結(jié)束表格中沒有編寫的單元 clearEmptyRow();//清除空行 StringhpzsStr=hpzs.getText();//貨品總數(shù) StringpzsStr=pzs.getText();//品種數(shù) StringjeStr=hjje.getText();//合計金額 StringjsfsStr=jsfs.getSelectedItem().toString();//結(jié)算方式 StringjsrStr=jsr.getSelectedItem()+"";//經(jīng)手人 StringczyStr=czy.getText();//操作員 StringrkDate=jhsjDate.toLocaleString();//銷售時間 StringysjlStr=ysjl.getText().trim();//驗收結(jié)論 Stringid=piaoHao.getText();//票號 StringkehuName=kehu.getSelectedItem().toString();//供應(yīng)商名字 if(jsrStr==null||jsrStr.isEmpty()){ JOptionPane.showMessageDialog(XiaoShouDan.this,"請?zhí)顚懡?jīng)手人"); return; } if(ysjlStr==null||ysjlStr.isEmpty()){ JOptionPane.showMessageDialog(XiaoShouDan.this,"填寫驗收結(jié)論"); return; } if(table.getRowCount()<=0){ JOptionPane.showMessageDialog(XiaoShouDan.this,"填加銷售商品"); return; } TbSellMainsellMain=newTbSellMain(id,pzsStr,jeStr, ysjlStr,kehuName,rkDate,czyStr,jsrStr,jsfsStr); Set<TbSellDetail>set=sellMain.getTbSellDetails(); introws=table.getRowCount(); for(inti=0;i<rows;i++){ TbSpinfospinfo=(TbSpinfo)table.getValueAt(i,0); StringdjStr=(String)table.getValueAt(i,6); StringslStr=(String)table.getValueAt(i,7); Doubledj=Double.valueOf(djStr); Integersl=Integer.valueOf(slStr); TbSellDetaildetail=newTbSellDetail(); detail.setSpid(spinfo.getId()); detail.setTbSellMain(sellMain.getSellId()); detail.setDj(dj); detail.setSl(sl); set.add(detail); } booleanrs=Dao.insertSellInfo(sellMain); if(rs){ JOptionPane.showMessageDialog(XiaoShouDan.this,"銷售完成"); DefaultTableModeldftm=newDefaultTableModel(); table.setModel(dftm); initTable(); pzs.setText("0"); hpzs.setText("0"); hjje.setText("0"); } } });4.2.6庫存盤點(diǎn)模塊設(shè)計庫存庫存模塊主要負(fù)責(zé)計算倉庫管理人員的庫存數(shù)量和庫存數(shù)量的盈虧。程序界面提示當(dāng)前日期的庫存產(chǎn)品數(shù)量,并在表中顯示所有庫存產(chǎn)品。在表的“庫存編號”列中輸入庫存產(chǎn)品的數(shù)量。“損益數(shù)量”字段將自動計算產(chǎn)品的剩余產(chǎn)品數(shù)量。如果數(shù)字是整數(shù),則會顯示庫存數(shù)量。數(shù)量大于計數(shù)的數(shù)量。庫存盤點(diǎn)窗體界面如圖4.11所示。圖4.11庫存盤點(diǎn)窗體界面設(shè)計庫存盤點(diǎn)窗體創(chuàng)建InternalFrame內(nèi)部窗體類,命名為KuCunPanDian。該窗體主要用于計算庫存管理中的損益結(jié)果。讀取庫存商品本模塊窗體的商品表格table組件用于顯示庫存中的所有商品信息,這需要在initTable()方法中初始化表格字段名,并調(diào)用Dao類的getKucunInfos()方法讀取庫存數(shù)據(jù)總的所有商品列表,添加到table商品表格組件中。統(tǒng)計損益數(shù)量商品表格組件需要在用戶輸入盤點(diǎn)數(shù)量時,自動計算并更新?lián)p益單元的內(nèi)容,也就是使用庫存商品實(shí)際數(shù)量減去商品輸入的盤點(diǎn)數(shù)量,實(shí)現(xiàn)自動計算功能的最好方式,就是為表格組件的“盤點(diǎn)數(shù)量”編輯器的編輯組添加按鍵監(jiān)聽器,使用該按鍵監(jiān)聽器可以限制用戶只能輸入數(shù)字信息同時還可以在按鍵事件發(fā)生時進(jìn)行損益統(tǒng)計。其關(guān)鍵代碼如下: //盤點(diǎn)字段的按鍵監(jiān)聽器 privateclassPanDianKeyAdapterextendsKeyAdapter{ privatefinalJTextFieldfield; privatePanDianKeyAdapter(JTextFieldfield){ this.field=field; } publicvoidkeyTyped(KeyEvente){ if(("0123456789"+(char)8).indexOf(e.getKeyChar()+"")<0){ e.consume(); } field.setEditable(true); } publicvoidkeyReleased(KeyEvente){ StringpdStr=field.getText(); StringkcStr="0"; introw=table.getSelectedRow(); if(row>=0){ kcStr=(String)table.getValueAt(row,7); } try{ intpdNum=Integer.parseInt(pdStr); intkcNum=Integer.parseInt(kcStr); if(row>=0){ table.setValueAt(kcNum-pdNum,row,10); } if(e.getKeyChar()!=8) field.setEditable(false); }catch(NumberFormatExceptione1){ field.setText("0"); } } }4.2.7數(shù)據(jù)庫備份與恢復(fù)模塊設(shè)計數(shù)據(jù)庫備份與恢復(fù)模塊可以增強(qiáng)系統(tǒng)安全性。及時備份數(shù)據(jù),如果發(fā)生意外可以恢復(fù)最近時間段的數(shù)據(jù)庫內(nèi)容,將損失降低到最小程度。數(shù)據(jù)庫備份與恢復(fù)窗體界面如圖4.12所示。圖4.12數(shù)據(jù)庫備份與恢復(fù)窗體設(shè)計窗體創(chuàng)建InternalFrame內(nèi)部窗體類,命名為BackupAndRestore,該窗體主要用于備份和恢復(fù)系統(tǒng)的數(shù)據(jù)庫文件文件瀏覽數(shù)據(jù)的備份和恢復(fù)功能都需要使用“瀏覽”按鈕選擇數(shù)據(jù)庫文件的位置。本模塊的窗體界面中,有兩個“瀏覽”按鈕,分別用于選擇數(shù)據(jù)庫備份文件和數(shù)據(jù)庫恢復(fù)文件的位置。這兩個“瀏覽”按鈕的ActionListener動作監(jiān)聽器實(shí)現(xiàn)方法是相同的,監(jiān)聽器中通過JfileChooser文件選擇器組件打開文件選擇對話框,選擇數(shù)據(jù)庫備份文件額位置。備份數(shù)據(jù)庫選擇“瀏覽”按鈕或直接在文本框中輸入數(shù)據(jù)庫備份文件的路徑,然后單擊“備份”按鈕,將系統(tǒng)當(dāng)前數(shù)據(jù)庫內(nèi)容備份到文件中,并為數(shù)據(jù)庫保留多個備份?!皞浞荨卑粹o的動作監(jiān)聽器將通過Dao類的RestoreOrBackup()方法執(zhí)行備份數(shù)據(jù)庫的SQL語句。
5系統(tǒng)測試5.1系統(tǒng)軟件測試軟件測試是保證軟件正確性及可靠性的重要環(huán)節(jié)。測試工作涉及到軟件工程的各個開發(fā)階段。5.1.1測試的原則在測試中我們遵守以下各項原則:(1)預(yù)先估計輸出結(jié)果(2)編程人員不測試本人程序。(3)測試?yán)}的設(shè)計兼顧有效與無效輸入,正確與錯誤輸入。(4)檢查一個程序是否完成了所有的工作只是測試工作的一半,另一半是要檢查程序是否還有預(yù)料之外的副作用。(5)在假設(shè)系統(tǒng)有錯的情況下進(jìn)行測試。5.1.2模塊測試模塊測試主要對軟件產(chǎn)品的每個模塊單獨(dú)的進(jìn)行測試。登錄測試,如表5.1所示。表5.1登陸測試測試測試用例期望結(jié)果實(shí)際結(jié)果登錄模塊用戶名:tsoft密碼:111能以此賬戶登陸,并具有帳戶所應(yīng)有的權(quán)限能以此賬戶登陸,并進(jìn)行相關(guān)操做進(jìn)貨單測試,如表5.2進(jìn)貨測試表所示。表5.2進(jìn)貨測試測試測試用例期望結(jié)果實(shí)際結(jié)果進(jìn)貨單模塊測試添加商品名為:長亮臺燈,數(shù)量:100,單價:50的進(jìn)貨信息并入庫能使用上述能編輯信息進(jìn)貨單模塊可以完成進(jìn)貨信息的添加銷售單測試,如表5.3所示。表5.3銷售單測試測試測試用例期望結(jié)果實(shí)際結(jié)果銷售單模塊測試向明日科技公司銷售商品長亮臺燈50臺完成金額的核算,并完成相關(guān)信息的變動完成期望結(jié)果庫存盤點(diǎn)測試,如表5.4所示。表5.4庫存盤點(diǎn)測試測試測試用例期望結(jié)果實(shí)際結(jié)果庫存盤點(diǎn)模塊測試查看長亮臺燈的庫存信息長亮臺燈庫存50臺與期望結(jié)果一致5.1.3集成測試集成測試即整體測試。在完成各模塊測試的基礎(chǔ)上,連接各模塊進(jìn)行測試,試圖在設(shè)計階段發(fā)現(xiàn)隱患,完成以下任務(wù):將系統(tǒng)的所有功能和特性納入測試計劃并進(jìn)行測試;數(shù)據(jù)庫的裝載等方面的測試;系統(tǒng)接口,包括內(nèi)部接口與外部接口的測試;錯誤狀態(tài)處理的測試;與特定資源分布的一致性測試;完全裝載的系統(tǒng)的實(shí)際和模擬測試;檢查系統(tǒng)安全性的測試。
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年租賃合同中的維修責(zé)任
- 研究生復(fù)試課程設(shè)計問題
- 紅色課程設(shè)計思
- 幼兒園青蛙課程設(shè)計
- 步進(jìn)式運(yùn)輸機(jī)課程設(shè)計
- 舞蹈身材訓(xùn)練課程設(shè)計
- 班主任工作中的困惑與解決之道
- 電子心率計數(shù)器課程設(shè)計
- 硬件課程設(shè)計 函數(shù)
- 2024年物業(yè)管理年終工作總結(jié)范文(31篇)
- 《業(yè)務(wù)員銷售技巧》課件
- 期末卷(一)-2023-2024學(xué)年高一年級地理上學(xué)期高頻考題期末測試卷(江蘇專用)(原卷版)
- 山東師范大學(xué)《古代文學(xué)專題(一)》期末復(fù)習(xí)題
- 注塑操作員作業(yè)指導(dǎo)書
- 四年級心理健康 12.我也能當(dāng)家 課件(7張ppt)
- 10kV架空線路工程初步設(shè)計說明書模板
- 鍋爐汽包水位控制系統(tǒng)設(shè)計[1]
- 政務(wù)禮儀培訓(xùn)課件(PPT66頁)rar
- 水土保持常用監(jiān)測手段及方法
- 片石擋土墻砌筑施工方案及工藝方法
- 分析刑法中認(rèn)識因素和意志因素的關(guān)系
評論
0/150
提交評論