版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
62/65目錄TOC\o"1-3"\h\u253621項目介紹 191971.1項目名稱 126361.2項目主題 132751.2.1課題來源 149061.2.2研究現(xiàn)狀 126631.3設(shè)計目的和意義 2107021.3.1可行性研究 240152相關(guān)理論和技術(shù) 3223952.1C/S模式 37002.2SQLServer2008 3277122.3JDK 4215842.4APACHE 4151013需求分析 4174853.1任務(wù)概述 4252243.1.1目標(biāo) 4170913.1.2運行環(huán)境 4299483.2業(yè)務(wù)流程分析 567903.3數(shù)據(jù)流分析 657493.3.1數(shù)據(jù)編碼 6147063.3.2數(shù)據(jù)字典 6140283.4功能需求分析 7193924概要設(shè)計 8192315邏輯設(shè)計 94406界面設(shè)計 9264706.1登陸界面 9105246.2管理員界面 1077176.3倉庫管理界面 1164596.4零件管理界面 12318607總結(jié) 1422058參考文獻 1522059附錄 161項目介紹1.1項目名稱倉庫貨物管理系統(tǒng)1.2項目主題1.2.1課題來源隨著計算機信息技術(shù)的不斷普及與發(fā)展,計算機的信息管理系統(tǒng)對企事業(yè)的重要性顯得越來越重要。倉庫貨物管理系統(tǒng)作為一個企業(yè)不可或缺的一部分,他的功能與發(fā)揮的作用對于企業(yè)的決策者和管理者來說都是至關(guān)重要的一部分。人們一直以來使用的傳統(tǒng)人工管理倉庫的方式,這種管理方式有著諸多缺點,如查詢、錄入的效率低下、保密性不好等。并且隨著時間的不斷推移產(chǎn)生的文檔,數(shù)據(jù)對管理者的更新、維護帶來巨大的挑戰(zhàn)與困難。所以需要開發(fā)一個倉庫貨物管理系統(tǒng)為企業(yè)用戶提供充足的信息和查詢、管理手段。作為計算機應(yīng)用的一部分,使用計算機對產(chǎn)品倉庫信息進行管理,具有人工管理無法比擬的有點,它檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等諸多有點,可以減少更多人力物力的投入。管理信息化也是企業(yè)倉庫管理科學(xué)化、正規(guī)化,與世界接軌的重要條件。倉庫管理涉及貨物管理、盤點管理、倉庫管理、入庫管理、出庫管理、庫存管理等業(yè)務(wù),這些業(yè)務(wù)涉及大量的數(shù)據(jù)和信息,而且對這些數(shù)據(jù)的信息的準(zhǔn)確性、及時性都要求非常高,任何錯誤和遺漏都會造成公司的損失,若采用純?nèi)斯さ姆椒ㄟM行管理有一定的難度。因此,采用計算機技術(shù)實現(xiàn)倉庫管理是很有必要的,是提高企業(yè)管理水平的有效方法。1.2.2研究現(xiàn)狀現(xiàn)在國內(nèi)外對此類系統(tǒng)的開發(fā)與研究也是很有實用性的,基本上能滿足各類企業(yè)也的自身特點,來進行倉庫方面的管理,同時,改進系統(tǒng)又都在不斷地深入與發(fā)展,來使用更多的企業(yè),一般都能運用于各企業(yè)的倉庫管理,但是都沒有針對大眾的廣泛應(yīng)用,只能運用某個企業(yè)或單位,這還需要進一步開發(fā)與實踐。我國物流的發(fā)展在整體上和發(fā)達國家相比無論是發(fā)展規(guī)模還是發(fā)展的程度都有著不小的差距。在管理方面,發(fā)達國家的倉庫基本上已經(jīng)電子化、無紙化,國內(nèi)倉庫基本上仍然是臺賬管理,絕大多數(shù)倉庫沒有信息化的系統(tǒng)。今后此類的軟件將會向條形碼倉庫管理系統(tǒng)發(fā)展,現(xiàn)階段,伴隨著物流及管理信息化、網(wǎng)絡(luò)化的發(fā)展,應(yīng)用條形二維碼進行倉庫管理、實現(xiàn)倉庫作業(yè)自動化,將是一個必然的發(fā)展趨勢,也是需要迫切解決的一個現(xiàn)實問題。條形碼管理在計算機信息化技術(shù)日益普及的今天有著十分重要的意義,商品貼上條形碼不僅可以減少輸入貨物信息的時間,還可以減少人工輸入造成的錯誤。補單可以提高作業(yè)效率,還能確保貨物信息輸入的正確性。另外,倉庫管理需要實現(xiàn)信息化和可視化,將來企業(yè)倉庫將不是個單純的倉庫,他將擁有一個實實在在裝著貨物的倉庫,還擁有一個數(shù)據(jù)眾多管理方便的數(shù)據(jù)倉庫,對其中的貨物進行編碼、管理。形象的說,貨架上的號碼就是貨物的地址,從而避免了貨物的分揀和提取時的翻箱倒柜式的查找。倉庫管理的信息化在高速發(fā)展的信息時代勢在必行而且將給企業(yè)帶來極大的幫助。1.3設(shè)計目的和意義在這樣一個信息化的時代,將計算機管理應(yīng)用于倉庫的日常管理已是大勢所趨,它可以為企業(yè)帶來意想不到的效益,同時為企業(yè)的飛速發(fā)展打好堅實的基礎(chǔ)。采用計算機管理信息系統(tǒng)已成為倉庫管理科學(xué)化和現(xiàn)代化的重要標(biāo)志,它給企業(yè)管理帶來了明顯的經(jīng)濟效益和社會效益。主要體現(xiàn)在:可以減少輸入庫過程中繁瑣的流程,提高倉庫人員的工作效率。倉庫管理系統(tǒng)實現(xiàn)自動化之后,完全有能力減少出入庫管理以及庫存管理中的諸多問題,不但節(jié)約開支、提高企業(yè)效率,還可以減輕工作人員的壓力。倉庫貨物管理系統(tǒng)主要目的是為了實現(xiàn)企業(yè)倉庫管理系統(tǒng)化、規(guī)范化和自動化,從而提高企業(yè)管理效率、增加企業(yè)收入。它完全可以用來取代原來倉庫中使用人工管理的方式,并且可以避免由于人為失誤造成的損失,為及時、準(zhǔn)確、高效的完成倉庫管理提供了強有力的工具和管理手段。倉庫管理系統(tǒng)是一個中小型數(shù)據(jù)管理系統(tǒng),它易上手、已操作、界面美觀、安全性強。整個系統(tǒng)將由貨物管理、出入庫管理、基本資料管理、倉區(qū)管理等模塊,用戶通過相應(yīng)的模塊,對倉庫里的物品的基本情況進行操作,通過簡單的操作即可輕松的管理倉庫。1.3.1可行性研究倉庫管理系統(tǒng)是為了實現(xiàn)企業(yè)產(chǎn)品管理的系統(tǒng)化、規(guī)范化和自動化,從而提高企業(yè)管理效率而設(shè)計的。它完全取代了原來一直用人工管理的工作方式,避免了由于管理人員的工作疏忽以及管理質(zhì)量問題所造成的各種錯誤,為及時、準(zhǔn)確、高效的完成倉庫管理提供了強有力的工具和管理手段。倉庫管理系統(tǒng)是一個中小型數(shù)據(jù)庫管理系統(tǒng),它界面美觀、操作簡單、安全性高,基本滿足了倉庫管理的要求。本系統(tǒng)的開發(fā)語言采用的是JAVA,開發(fā)環(huán)境采用的是JDK,數(shù)據(jù)庫采用SQLServer5.0,具有一般系統(tǒng)的數(shù)據(jù)功能,如數(shù)據(jù)查詢,修改和刪除等。倉庫管理系統(tǒng)在運行階段,效果好,數(shù)據(jù)準(zhǔn)確性高,提高了工作效率,同時也實現(xiàn)了倉庫管理計算機化。2相關(guān)理論和技術(shù)2.1C/S模式C/S模式分為客戶機和服務(wù)器兩層,客戶機具有了一定的數(shù)據(jù)存儲和數(shù)據(jù)處理能力。通過將應(yīng)用軟件的算法和數(shù)據(jù)合理分配給客戶端和服務(wù)端的方法,可以降低服務(wù)器的負(fù)載,發(fā)揮客戶端的能力。本文要研究的倉庫系統(tǒng)就適用于倉庫這樣用戶數(shù)目不多的局域網(wǎng)中。C/S模式只依賴于企業(yè)內(nèi)部網(wǎng)絡(luò)的應(yīng)用系統(tǒng),即無論企業(yè)是否能夠上網(wǎng),都不影響其應(yīng)用。綜合考慮以上的因素,本系統(tǒng)最終決定采用C/S模式開發(fā),充分發(fā)揮客戶端的處理能力。2.2SQLServer2008SQL是英文StructuredQueryLanguage的縮寫,就是人們所說的結(jié)構(gòu)化查詢語言。SQL語句可以用來執(zhí)行各種各樣的操作,例如更新數(shù)據(jù)庫中的數(shù)據(jù),從數(shù)據(jù)庫中提取數(shù)據(jù)等。SQL語言的主要功能就是同各種數(shù)據(jù)庫建立聯(lián)系,進行溝通。雖然許多數(shù)據(jù)庫在SQL的基礎(chǔ)上進行了改進和升級,但是包括增、刪】改、查等標(biāo)準(zhǔn)的SQL命令仍然可以用來完成幾乎所有的數(shù)據(jù)庫操作。這個平臺是可信任、高效、只能的,使得企業(yè)的倉庫貨物管理系統(tǒng)使用他時可以有很高的安全性、可靠性,并且可以降低開發(fā)管理數(shù)據(jù)基本設(shè)施的成本。2.3JDKJDK是Java語言的軟件開發(fā)工具包,主要用于移動設(shè)備、嵌入式設(shè)備上的java應(yīng)用程序。JDK(JavaDevelopmentKit)是SunMicrosystems針對Java開發(fā)員的產(chǎn)品。自從Java推出以來,JDK已經(jīng)成為使用最廣泛的JavaSDK(Softwaredevelopmentkit)。JDK是整個Java的核心,包括了Java運行環(huán)境(JavaRuntimeEnvirnment),一堆Java工具和Java基礎(chǔ)的類庫(rt.jar)。不論什么Java應(yīng)用服務(wù)器實質(zhì)都是內(nèi)置了某個版本的JDK。因此掌握J(rèn)DK是學(xué)好Java的第一步。最主流的JDK是Sun公司發(fā)布的JDK,除了Sun之外,還有很多公司和組織都開發(fā)了自己的JDK,例如IBM公司開發(fā)的JDK,BEA公司的Jrocket,還有GNU組織開發(fā)的JDK等等。其中IBM的JDK包含的JVM(JavaVirtualMachine)運行效率要比SunJDK包含的JVM高出許多。而專門運行在x86平臺的Jrocket在服務(wù)端運行效率也要比SunJDK好很多。但不管怎么說,我們還是需要先把SunJDK掌握好。從SUN的JDK5.0開始,提供了泛型等非常實用的功能,其版本信息也不再延續(xù)以前的1.2,1.3,1.4,而是變成了5.0,6.0了。從6.0開始,其運行效率得到了非常大的提高,尤其是在桌面應(yīng)用方面。JDK本身使用了Java語言編寫,在我們下載的安裝包里,有一個src.zip,里面就是JDK的源代碼。版本SE(J2SE),standardedition,標(biāo)準(zhǔn)版,是我們通常用的一個版本,從JDK5.0開始,改名為JavaSE。EE(J2EE),enterpsiseedtion,企業(yè)版,使用這種JDK開發(fā)J2EE應(yīng)用程序,從JDK5.0開始,改名為JavaEE。ME(J2ME),microedtion,主要用于移動設(shè)備、嵌入式設(shè)備上的java應(yīng)用程序,從JDK5.0開始,改名為JavaME。2.4APACHEApacheHTTPServer(簡稱Apache)是Apache軟件基金會的一個開放源碼的網(wǎng)頁服務(wù)器,可以在大多數(shù)計算機操作系統(tǒng)中運行,由于其多平臺和安全性被廣泛使用,是最流行的Web服務(wù)器端軟件之一。它快速、可靠并且可通過簡單的API擴展,將Perl/Python等解釋器編譯到服務(wù)器中。ApacheHTTP服務(wù)器是一個模塊化的服務(wù)器,源于NCSAhttpd服務(wù)器,經(jīng)過多次修改,成為世界使用排名第一的Web服務(wù)器軟件。它可以運行在幾乎所有廣泛使用的計算機平臺上。Apache源于NCSAhttpd服務(wù)器,經(jīng)過多次修改,成為世界上最流行的Web服務(wù)器軟件之一。Apache取自“apatchyserver”的讀音,意思是充滿補丁的服務(wù)器,因為它是自由軟件,所以不斷有人來為它開發(fā)新的功能、新的特性、修改原來的缺陷。Apache的特點是簡單、速度快、性能穩(wěn)定,并可做代理服務(wù)器來使用。3需求分析3.1任務(wù)概述經(jīng)過調(diào)查,對倉庫管理的業(yè)務(wù)流程進行分析。庫存的變化通常是通過入庫、出庫操作來進行。系統(tǒng)對每個入庫操作均要求用戶填寫入庫單,對每個出庫操作均要求用戶填寫出庫單。在出入庫操作同時可以進行增加、刪除和修改等操作。用戶可以隨時進行各種查詢、統(tǒng)計、報表打印、賬目核對等工作。另外,也可以用圖表形式來反映查詢結(jié)果。3.1.1目標(biāo)①界面設(shè)計要求盡量友好、美觀,應(yīng)提供登錄界面,并考慮用戶權(quán)限問 題;②對各種信息應(yīng)提供錄入、刪除和查詢功能;③具有對零件的基本信息進行統(tǒng)計的功能;④具有管理員的基本信息進行統(tǒng)計的功能;⑤具有倉庫的基本信息進行統(tǒng)計的功能;3.1.2運行環(huán)境Windows7操作系統(tǒng)、MicrosoftSQLServer5.0數(shù)據(jù)庫管理系統(tǒng)、Myeclipse6.0、Tomacat5.5.28、IE瀏覽器、JDK、JDBC3.2業(yè)務(wù)流程分析倉庫貨物管理系統(tǒng)主要業(yè)務(wù)流程如下:銷售商提出訂單,倉庫業(yè)務(wù)員進行審核,確認(rèn)訂單無誤、貨物數(shù)量足夠出庫,則通過審核,向銷售商發(fā)貨,修改數(shù)據(jù)庫數(shù)據(jù)后完成出庫流程。出庫流程圖如圖所示。倉庫業(yè)務(wù)員向供貨商發(fā)出訂單,供貨商根據(jù)訂單向倉庫發(fā)貨,形成發(fā)貨單,經(jīng)倉庫管理員審核,修改數(shù)據(jù)庫數(shù)據(jù)后完成入庫流程。3.3數(shù)據(jù)流分析3.3.1數(shù)據(jù)編碼為了數(shù)據(jù)流圖更加易懂以及數(shù)據(jù)項、數(shù)據(jù)流便于使用,要對數(shù)據(jù)進行編碼,用一個編碼符合代表一條信息或一串?dāng)?shù)據(jù)。對數(shù)據(jù)進行編碼可以方便地進行分類操作。以下是系統(tǒng)分析過程中常用的數(shù)據(jù)編碼:3.3.2數(shù)據(jù)字典數(shù)據(jù)字典是數(shù)據(jù)庫的重要組成部分。它存放有數(shù)據(jù)庫所用的有關(guān)信息,對用戶來說是一組只讀的表。下面是對數(shù)據(jù)流圖中出現(xiàn)的部分?jǐn)?shù)據(jù)流和數(shù)據(jù)項的描述,方便讀者快速了解數(shù)據(jù)流組成和數(shù)據(jù)項內(nèi)容。數(shù)據(jù)流①入庫信息說明:即將加入倉庫的貨物的信息數(shù)據(jù)流來源:入庫信息表數(shù)據(jù)流流向:倉庫管理員數(shù)據(jù)流組成:入庫編號+貨物編號+數(shù)量+單價+總金額+入庫時間+經(jīng)辦人+保管人+入庫倉庫+備注②出庫信息數(shù)據(jù)流來源:出庫信息表數(shù)據(jù)流流向:倉庫管理員數(shù)據(jù)流組成:出庫編號+貨物編號+數(shù)量+單價+總金額+出庫時間+經(jīng)辦人+保管人+出庫倉庫+備注③貨物信息說明:對倉庫中的縮影貨物的信息的統(tǒng)計數(shù)據(jù)流來源:貨物信息表數(shù)據(jù)流流向:倉庫管理員數(shù)據(jù)流組成:貨物編號+貨物名稱+貨物型號+類型+單價+倉庫編號④客戶信息說明:所有客戶及供應(yīng)商的信息。數(shù)據(jù)流來源:客戶信息表數(shù)據(jù)流流向:倉庫管理員數(shù)據(jù)流組成:客戶編號+客戶名稱+客戶地址+客戶電話+客戶類型⑤倉庫信息數(shù)據(jù)流來源:倉庫信息表數(shù)據(jù)流流向:倉庫管理員數(shù)據(jù)流組成:倉庫編號+倉庫名稱+倉庫狀態(tài)+倉庫管理員⑥庫存信息數(shù)據(jù)流來源:庫存表數(shù)據(jù)流流向:倉庫管理員數(shù)據(jù)流組成:庫存編號+倉庫編號+貨物編號+在庫數(shù)量+預(yù)警標(biāo)志位+最大在庫量+最小在庫量數(shù)據(jù)項①貨物編號數(shù)據(jù)項別名:貨號說明:倉庫中的貨物的唯一標(biāo)識類型:字符型長度:16②入庫編號數(shù)據(jù)項別名:無說明:貨物的入庫流水號類型:字符型長度:16③倉庫編號數(shù)據(jù)項別名:無說明:倉庫的編號類型:字符型長度:16④盤點單編號數(shù)據(jù)項別名:無說明:倉庫盤點單的流水類型:字符型長度:163.4功能需求分析需求分析是通過對功能的描述,說明項目系統(tǒng)或設(shè)計中要實現(xiàn)的各功能模塊。不論是系統(tǒng)或設(shè)計的介紹,功能描述都是不可缺少的。同事對要解決的問題進行分析,弄清楚問題的要求,包括需要輸入什么數(shù)據(jù),得到什么結(jié)果,最后應(yīng)該輸出什么。倉庫貨物管理系統(tǒng)主要針對于日常庫存信息的管理,它針對倉庫日常發(fā)生的業(yè)務(wù),主要模塊為貨物管理、出入庫管理、倉庫管理,用戶通過相應(yīng)的模塊,對倉庫里的物品的基本情況進行操作,對庫存數(shù)量進行查詢,用戶通過簡單的操作即可輕松的管理倉庫。本次設(shè)計索要實現(xiàn)的功能主要分為出入庫管理、基本資料管理、倉區(qū)管理、系統(tǒng)管理等功能模塊來實現(xiàn)倉庫的綜合管理。本系統(tǒng)可以方便快捷地實現(xiàn)庫管理中的出庫入庫、庫存管理等操作,使企業(yè)的的倉庫井井有條,更實時準(zhǔn)確地管理倉庫。出入庫管理中包含出庫管理、入庫管理、庫存管理、盤點管理。出庫管理:出庫管理是對系統(tǒng)中貨物的出庫管理,可以對倉庫中的貨物出庫情況進行查看,并可以添加新的入庫信息。入庫管理:入庫管理是對系統(tǒng)中貨物的入庫管理,可以對倉庫中的貨物入庫情況進行查看,并可以添加新的入庫信息。庫存管理:在庫管理是對系統(tǒng)中庫存信息的管理,可以對倉庫中的庫存信息進行查看,并可以添加新的庫存信息。盤點管理:盤點管理包含基本的盤點管理和盤點明細(xì)管理,可以對貨物盤點信息進行查看和添加。倉區(qū)管理中包含倉庫管理、倉區(qū)管理。倉庫管理:倉庫管理是對系統(tǒng)中倉庫信息的管理,可以對倉庫信息進行查看,并可以添加新的倉庫信息。倉區(qū)管理:倉區(qū)管理是對系統(tǒng)中倉區(qū)信息的管理,可以對倉庫中的倉區(qū)信息進行倉庫,并可以添加新的倉區(qū)信息。根據(jù)對各大超市進行的調(diào)查和分析,倉庫管理系統(tǒng)應(yīng)該具有以下功能:①倉庫中的貨物信息的錄入、修改、刪除和查詢。②倉庫的信息的的錄入、修改、刪除、查詢和統(tǒng)計。③管理者的信息的錄入、修改、刪除和查詢。④供貨商的信息的錄入、修改、刪除、查詢和統(tǒng)計。1)功能劃分倉庫管理系統(tǒng)主要實現(xiàn)以下四方面的功能:a.登陸b.注冊c.查詢d.修改2)功能描述倉庫管理包括登陸、注冊、查詢、修改四方面功能。登陸,分為普通管理員登陸和超級管理員登陸。查詢,分為員工對系統(tǒng)功能分析中的各項功能進行查詢,倉庫查詢和物品查詢。修改,主要實現(xiàn)添加,修改和刪除。4概要設(shè)計集中、分塊,按照結(jié)構(gòu)化程序設(shè)計的要求,得到如下圖所示的系統(tǒng)功能模塊圖。倉庫管理系統(tǒng)倉庫管理系統(tǒng)登錄注冊查詢修改管理員1管理員2員工查詢倉庫查詢商品查詢添加修改刪除圖1功能模塊圖5邏輯設(shè)計根據(jù)數(shù)據(jù)庫需求分析,本系統(tǒng)的數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計如下。零件信息設(shè)計管理員信息設(shè)計倉庫信息設(shè)計6界面設(shè)計6.1登陸界面6.2管理員界面6.2.1管理員信息界面6.2.2管理員信息錄入6.3倉庫管理界面6.3.1倉庫信息界面6.3.2倉庫信息錄入6.4零件管理界面6.4.1零件信息界面6.4.2零件信息錄入7總結(jié)經(jīng)過兩周的課程設(shè)計,倉庫管理系統(tǒng)終于完成,在一次次的調(diào)試后,程序比較完善,并且利用數(shù)據(jù)庫的相關(guān)知識,存儲信息。我們做的倉庫貨物管理系統(tǒng)可以完成完成以下功能:1)用戶的登錄2)管理員信息的錄入、查詢和刪除3)倉庫信息的錄入和查詢4)零件信息的錄入和查詢在此次課程設(shè)計中,有時一個簡單的錯誤,就要花很長時間去找。程序?qū)懛ㄉ嫌泻芏嗖煌袝r候找到了錯誤,但卻不知道如何去處理,因此在這個過程中,我充分利用了網(wǎng)絡(luò)上的資源,最終這些問題都被一一解決了。JAVA語言、數(shù)據(jù)庫有了更深一步的了解。本程序的最大優(yōu)點是一個界面可以完成所有的信息操作,有完整的操作信息,操作簡便,數(shù)據(jù)完整??傮w來說,我的作品不夠完美,例如無法將數(shù)據(jù)在退出程序后仍然儲存在數(shù)據(jù)庫中,而且對數(shù)據(jù)的操作過于簡單,僅僅局限于添加,刪除,以及簡單修改。最重要的是對數(shù)據(jù)的操作存在安全隱患,程序的漏洞是操作者可以修改任何人的信息。所以作品完成至今,我們心中仍然有更多的想法去實現(xiàn),我們將利用更多的時間與精力去不斷完善此程序。8參考文獻(1)數(shù)據(jù)庫原理及應(yīng)用教程——王預(yù)主編,清華大學(xué)出版社(2)Java程序設(shè)計基礎(chǔ)(第4版)——陳國君主編,清華大學(xué)出版社(3)崔勁松.基于VB的倉庫數(shù)據(jù)庫管理系統(tǒng)[J].菏澤學(xué)院學(xué)報,2013,S1:126-128.(4)馬麗.基于.NET的倉庫管理系統(tǒng)設(shè)計與實現(xiàn)[J].科教文匯(下旬刊),2009,10:281-282.(5)曾佑新.數(shù)據(jù)庫在倉庫管理中的應(yīng)用[J].華東交通大學(xué)學(xué)報,1996,S1:31-33+41.9附錄Clientimportjava.awt.Container;importjavax.swing.Icon;importjavax.swing.ImageIcon;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JPanel;publicclassClient{ publicstaticLoginlogn=newLogin(); publicstaticvoidmain(String[]args) { logn.setTitle("倉庫管理系統(tǒng)"); logn.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); logn.setSize(280,250); logn.setVisible(true); }}guestimportjavax.swing.*;importjavax.swing.*;@SuppressWarnings({"unused","serial"})publicclassguestextendsJFrame{ publicstaticGepersonpanel3=newGeperson(); //publicstaticgroupinfpane4=newgroupinf(); publicstaticCangkupanel5=newCangku(); //publicstaticsportinfpane6=newsportinf(); publicstaticLingjianpane16=newLingjian(); //publicstaticsportinfpane1=newsportinf();publicstaticJPanelcontPane1=newJPanel();publicstaticJPanelcontPane2=newJPanel();publicstaticJPanelcontPane3=newJPanel();publicstaticJPanelcontPane4=newJPanel();publicstaticJPanelcontPane5=newJPanel();publicstaticJPanelcontPane6=newJPanel();privateJTabbedPanetabp=newJTabbedPane(); publicguest(){ contPane2.add(panel3); tabp.addTab("個人信息",null,contPane2); contPane3.add(panel5); tabp.addTab("倉庫信息",null,contPane3); contPane4.add(pane16); tabp.addTab("零件信息",null,contPane4); add(tabp); }}manageimportjavax.swing.*;importjavax.swing.event.*;importjavax.swing.table.DefaultTableModel;importjava.awt.*;importstaticnet.mindview.until.SwingConsole.*;importjavax.swing.table.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;@SuppressWarnings({"unused","serial"})publicclassmanageextendsJFrame{ publicstaticGepersonpane3=newGeperson(); publicstaticGepersoninfpane4=newGepersoninf(); publicstaticCangkupane5=newCangku(); publicstaticCangkuinfpane6=newCangkuinf(); publicstaticLingjianpane11=newLingjian(); publicstaticLingjianinfpane12=newLingjianinf();publicstaticJPanelcontPanel1=newJPanel();publicstaticJPanelcontPanel2=newJPanel();publicstaticJPanelcontPanel3=newJPanel();publicstaticJPanelcontPanel4=newJPanel();publicstaticJPanelcontPanel5=newJPanel();publicstaticJPanelcontPanel6=newJPanel();privateJTabbedPanetabp=newJTabbedPane(); publicmanage(){ setTitle("倉庫管理系統(tǒng)"); contPanel2.add(pane3);//pane3的對象是geperson類 tabp.addTab("管理員信息",null,contPanel2);// contPanel3.add(pane5);//pane5的對象是Cangku類 tabp.addTab("倉庫信息",null,contPanel3); contPanel6.add(pane11);//pane11的對象是lingjian類 tabp.addTab("零件信息",null,contPanel6); add(tabp); }}Loginimportjavax.swing.*;importstaticnet.mindview.until.SwingConsole.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;publicclassLoginextendsJFrame{ privatestaticfinallongserialVersionUID=1L; privateJLabelusr=newJLabel("用戶名:"); privateJTextFieldusrnm=newJTextField(10); privateJLabelpwd=newJLabel("密碼:"); privateJPasswordFieldpswd=newJPasswordField(10); privateJButtonlogin=newJButton("登錄"); privateActionListenerb1=newActionListener(){ @SuppressWarnings("deprecation") publicvoidactionPerformed(ActionEvente){ /*if(usrnm.getText().equals("guest")&&pswd.getText().equals("123")) { JOptionPane.showMessageDialog(null,"倉庫管理系統(tǒng)","提示",JOptionPane.INFORMATION_MESSAGE); run(newguest(),600,400,"倉庫管理"); Client.logn.setVisible(false); }*/ if(usrnm.getText().equals("gsj")&&pswd.getText().equals("123456")) { JOptionPane.showMessageDialog(null,"倉庫管理系統(tǒng)","提示",JOptionPane.INFORMATION_MESSAGE); run(newmanage(),750,620,"倉庫管理系統(tǒng)"); Client.logn.setVisible(false); } else{ JOptionPane.showMessageDialog(null,"用戶名或密碼錯誤","提示",JOptionPane.WARNING_MESSAGE); } } }; publicLogin(){ setLayout(null); usr.setBounds(40,20,60,20); usrnm.setBounds(100,20,100,20); pwd.setBounds(40,60,60,20); pswd.setBounds(100,60,100,20); login.setBounds(100,100,60,20); login.addActionListener(b1); add(usr); add(usrnm); add(pwd); add(pswd); add(login); } }Cangkuimportjava.awt.Container;importjava.awt.Dimension;importjava.awt.FlowLayout;importjava.awt.GridLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.sql.ResultSet;importjavax.swing.ImageIcon;importjavax.swing.JButton;importjavax.swing.JComboBox;importjavax.swing.JLabel;importjavax.swing.JPanel;importjavax.swing.JScrollPane;importjavax.swing.JTable;importjavax.swing.JTextField;importjavax.swing.table.DefaultTableModel;@SuppressWarnings("serial")publicclassCangkuextendsJPanel{ privateJLabelshc=newJLabel("查詢倉庫"); privateJButtonsch=newJButton("查詢"), adds=newJButton("錄入"); privateJTextFieldcdtn=newJTextField(10); privateString[]heads={ "倉庫編號","倉庫名稱","所在地","管理員姓名","聯(lián)系電話" }; privateString[]descripton={"所有內(nèi)容","管理員姓名","倉庫名稱"}; privateJComboBoxschcdn=newJComboBox(descripton); privateDefaultTableModelmodel=newDefaultTableModel(null,heads); privateJTabletable=newJTable(model); JScrollPanescrollpane=newJScrollPane(table); privateActionListenerb3=newActionListener(){ publicvoidactionPerformed(ActionEvente){ Stringquery=null; while(model.getRowCount()!=0) model.removeRow(0); try{ intcondition=schcdn.getSelectedIndex(); if(condition==0) query="SELECT*FROMcangku"; if(condition==1) query="SELECT*FROMcangkuWHEREid='"+cdtn.getText()+"'"; if(condition==2) query="SELECT*FROMcangkuWHEREuname='"+cdtn.getText()+"'"; SqlFunctionsel=newSqlFunction(); ResultSetrelt=sel.ExecuteQuery(query); while(relt.next()) { model.addRow(newObject[]{relt.getString("id"),relt.getString("uname"),relt.getString("address"),relt.getString("pname"),relt.getString("phone")}); //model.addRow(newObject[]{relt.getString("1"),relt.getString("2"),relt.getString("3"),relt.getString("4")}); } }catch(Exceptionf){ f.printStackTrace(); } } }; privateActionListenerb2=newActionListener(){ publicvoidactionPerformed(ActionEvente){ manage.contPanel3.add(manage.pane6); manage.contPanel3.add(manage.pane5); manage.contPanel3.revalidate(); manage.contPanel3.repaint(); } }; publicCangku(){ setPreferredSize(newDimension(550,450)); setLayout(newFlowLayout()); sch.addActionListener(b3); adds.addActionListener(b2); add(shc); add(schcdn); add(cdtn); add(sch); add(adds); add(scrollpane); }} @SuppressWarnings("serial") classCangkuinfextendsJPanel{ // "倉庫編號","倉庫名稱","所在地","管理員姓名","聯(lián)系電話" privateJLabelspnum=newJLabel("倉庫編號"), spname=newJLabel("倉庫名稱"), lhrcd=newJLabel("所在地"), lxren=newJLabel("管理員姓名"), lxdian=newJLabel("聯(lián)系電話"); privateJTextFieldsnum=newJTextField(20), sname=newJTextField(20), lhrecord=newJTextField(20), lxre=newJTextField(20), lxdia=newJTextField(20); privateJButtonsav=newJButton("提交"), ext=newJButton("返回"); privateActionListenerb1=newActionListener(){ publicvoidactionPerformed(ActionEvente){ //athelete.setContentPane(athelete.pane1); manage.contPanel3.remove(manage.pane6); manage.contPanel3.remove(manage.pane5); manage.contPanel3.revalidate(); manage.contPanel3.repaint(); } }; privateActionListenerb3=newActionListener(){ publicvoidactionPerformed(ActionEvente){ Stringsanum=snum.getText(); Stringsaname=sname.getText(); Stringsaage=lhrecord.getText(); Strings1=lxre.getText(); Strings2=lxdia.getText(); Stringinsert="INSERTINTOcangkuvalues('"+sanum+"','"+saname+"','"+saage+"','"+s1+"','"+s2+"')"; SqlFunctionsql=newSqlFunction(); sql.ExecuteUpdate(insert); manage.contPanel3.remove(manage.pane6); manage.contPanel3.revalidate(); manage.contPanel3.repaint(); } }; publicCangkuinf(){ setLayout(newGridLayout(10,2)); sav.addActionListener(b3); //sav.addActionListener(b1); ext.addActionListener(b1); add(spnum); add(snum); add(spname); add(sname); add(lhrcd); add(lhrecord); add(lxren); add(lxre); add(lxdian); add(lxdia); add(sav); add(ext); }}Gepersonimportjava.awt.Dimension;importjava.awt.FlowLayout;importjava.awt.GridLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.sql.ResultSet;importjavax.swing.JButton;importjavax.swing.JComboBox;importjavax.swing.JLabel;importjavax.swing.JOptionPane;importjavax.swing.JPanel;importjavax.swing.JScrollPane;importjavax.swing.JTable;importjavax.swing.JTextField;importjavax.swing.table.DefaultTableModel;@SuppressWarnings("serial")publicclassGepersonextendsJPanel{ privateJLabelshc=newJLabel("查詢管理員"); privateJButtonsch=newJButton("查詢"), adds=newJButton("錄入"), del=newJButton("刪除"); privateJTextFieldcdtn=newJTextField(10); privateString[]heads={ "姓名","性別","電話","電子郵件" }; privateString[]descripton={"所有內(nèi)容","姓名","性別","電話"}; privateJComboBoxschcdn=newJComboBox(descripton);privateDefaultTableModelmodel=newDefaultTableModel(null,heads); privateJTabletable=newJTable(model); JScrollPanescrollpane=newJScrollPane(table); privateActionListenerb3=newActionListener(){ publicvoidactionPerformed(ActionEvente){ Stringquery=null; while(model.getRowCount()!=0) model.removeRow(0); try{ intcondition=schcdn.getSelectedIndex(); if(condition==0) query="SELECTname,sex,phone,emailFROMgeperson"; if(condition==1) query="SELECTname,sex,phone,emailFROMgepersonWHEREuname='"+cdtn.getText()+"'"; if(condition==2) query="SELECTname,sex,phone,emailFROMgepersonWHEREsex='"+cdtn.getText()+"'"; if(condition==3) query="SELECTname,sex,phone,emailFROMgepersonWHEREexperience='"+cdtn.getText()+"'"; SqlFunctionsel=newSqlFunction(); ResultSetrelt=sel.ExecuteQuery(query); while(relt.next()) { model.addRow(newObject[]{relt.getString("name"),relt.getString("sex"),relt.getString("phone"),relt.getString("email")}); } }catch(Exceptionf){ f.printStackTrace(); } } }; privateActionListenerb2=newActionListener(){ publicvoidactionPerformed(ActionEvente){ manage.contPanel2.remove(manage.pane3); manage.contPanel2.add(manage.pane4); manage.contPanel2.revalidate(); manage.contPanel2.repaint(); } }; privateActionListenerb4=newActionListener(){ publicvoidactionPerformed(ActionEvente){ Stringquery=null; try{ intcondition=schcdn.getSelectedIndex(); if(condition==0) JOptionPane.showMessageDialog(null,"請輸入刪除屬性","提示",JOptionPane.ERROR_MESSAGE); if(condition==1){ query="deleteFROMgepersonWHEREnamelike'%"+cdtn.getText()+"%'"; SqlFunctionsel=newSqlFunction(); sel.Executedelete(query); } if(condition==2){ query="deleteFROMgepersonWHEREsexlike'%"+cdtn.getText()+"%'"; SqlFunctionsel=newSqlFunction(); sel.Executedelete(query); } if(condition==3){ query="deleteFROMgepersonWHEREphonelike'%"+cdtn.getText()+"%'"; SqlFunctionsel=newSqlFunction(); sel.Executedelete(query); } }catch(Exceptionf){ f.printStackTrace(); } if(model.getRowCount()==0) JOptionPane.showMessageDialog(null,"沒有相應(yīng)記錄","提示",JOptionPane.WARNING_MESSAGE); } }; publicGeperson(){ setPreferredSize(newDimension(750,400)); setLayout(newFlowLayout()); shc.setBounds(50,20,60,20);//左,上,右,下 schcdn.setBounds(110,20,90,20); cdtn.setBounds(210,20,60,20); sch.setBounds(290,20,60,20); adds.setBounds(420,20,60,20); del.setBounds(490,20,60,20); scrollpane.setBounds(30,50,700,500); del.addActionListener(b4); sch.addActionListener(b3); adds.addActionListener(b2); add(shc); add(schcdn); add(cdtn); add(sch); add(adds); add(del); add(scrollpane); } }classGepersoninfextendsJPanel{ privatestaticfinallongserialVersionUID=1L; //"姓名","性別","電話","電子郵件" privateJLabelgrpname=newJLabel("姓名"), dist=newJLabel("性別"), dianhua=newJLabel("電話"), mail=newJLabel("電子郵件"); privateJTextFieldgname=newJTextField(20), adist=newJTextField(20), dianha=newJTextField(20), mal=newJTextField(20); privateJButtonsav=newJButton("提交"), ext=newJButton("返回"); privateActionListenerb3=newActionListener(){ publicvoidactionPerformed(ActionEvente){ Stringsaname=gname.getText(); Stringsbegnum=adist.getText(); Stringsdianhua=dianha.getText(); Stringsmail=mal.getText(); if(saname.equals("")||saname.equals("")) { JOptionPane.showMessageDialog(null,"姓名不能為空不能為空","提示",JOptionPane.ERROR_MESSAGE); return; } Stringinsert="INSERTINTOgepersonvalues('"+saname+"','"+sbegnum+"','"+sdianhua+"','"+smail+"')"; SqlFunctionsql=newSqlFunction(); sql.ExecuteUpdate(insert); gname.setText(null); adist.setText(null); dianha.setText(null); mal.setText(null); manage.contPanel2.remove(manage.pane3); manage.contPanel2.add(manage.pane4); manage.contPanel2.revalidate(); manage.contPanel2.repaint(); } }; privateActionListenerb1=newActionListener(){ publicvoidactionPerformed(ActionEvente){ //athelete.setContentPane(athelete.pane1); manage.contPanel2.remove(manage.pane4); manage.contPanel2.add(manage.pane3); manage.contPanel2.revalidate(); manage.contPanel2.repaint(); } }; publicGepersoninf(){ setLayout(newGridLayout(10,2)); sav.addActionListener(b3); ext.addActionListener(b1); add(grpname); add(gname); add(dist); add(adist); add(dianhua); add(dianha); add(mail); add(mal); add(sav); add(ext); }}Lingjianimportjava.awt.Dimension;importjava.awt.FlowLayout;importjava.awt.GridLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.sql.ResultSet;importjavax.swing.JButton;importjavax.swing.JComboBox;importjavax.swing.JLabel;importjavax.swing.JPanel;importjavax.swing.JScrollPane;importjavax.swing.JTable;importjavax.swing.JTextField;importjavax.swing.table.DefaultTableModel;@SuppressWarnings("serial")publicclassLingjianextendsJPanel{ privateJLabelshc=newJLabel("查詢零件"); privateJButtonsch=newJButton("查詢"), adds=newJButton("錄入"); privateJTextFieldcdtn=newJTextField(10); privateString[]heads={ "零件編號","零件名稱","零件價格","庫存數(shù)量" }; privateString[]descripton={"所有內(nèi)容","零件編號","零件名稱"}; privateJComboBoxschcdn=newJComboBox(descripton); privateDefaultTableModelmodel=newDefaultTableModel(null,heads); privateJTabletable=newJTable(model); JScrollPanescrollpane=newJScrollPane(table); privateActionListenerb3=newActionListener(){ publicvoidactionPerformed(ActionEvente){ Stringquery=null; while(model.getRowCount()!=0) model.removeRow(0); try{ intcondition=schcdn.getSelectedIndex(); if(condition==0) query="SELECT*FROMlingjian"; if(condition==1) query="SELECT*FROMlingjainWHEREid='"+cdtn.getText()+"'"; if(condition==2) query="SELECT*FROMlingjianWHEREuname='"+cdtn.getText()+"'"; SqlFunctionsel=newSqlFunction(); ResultSetrelt=sel.ExecuteQuery(query); while(relt.next()) { model.addRow(newObject[]{relt.getString("id"),relt.getString("uname"),relt.getString("price"),relt.getString("amount")}); //model.addRow(newObject[]{relt.getString("1"),relt.getString("2"),relt.getString("3"),relt.getString("4")}); } }catch(Exceptionf){ f.printStackTrace(); } } }; privateActionListenerb2=newActionListener(){ publicvoidactionPerformed(ActionEvente){ manage.contPanel6.add(manage.pane12); manage.contPanel6.add(manage.pane11); manage.contPanel6.revalidate(); manage.contPanel6.repaint(); } }; publicLingjian(){ setPreferredSize(newDimension(550,450)); setLayout(newFlowLayout()); sch.addActionListener(b3); adds.addActionListener(b2); add(shc); add(schcdn); add(cdtn); add(sch); add(adds); add(scrollpane); }} @SuppressWarnings("serial") classLingjianinfextendsJPanel{ // "零件編號","零件名稱","零件價格","庫存數(shù)量" privateJLabelspnum=newJLabel("零件編號"), spname=newJLabel("零件名稱"), lxren=newJLabel("零件價格"), lxdian=newJLabel("庫存數(shù)量"); privateJTextFieldsnum=newJTextField(20), sname=newJTextField(20), lxre=newJTextField(20), lxdia=newJTextField(20); privateJButtonsav=newJButton("提交"), ext=newJButton("返回"); privateActionListenerb1=newActionListener(){ publicvoidactionPerformed(ActionEvente){ //athelete.setContentPane(athelete.pane1); manage.contPanel6.remove(manage.pane12); manage.contPanel6.remove(manage.pane11); manage.contPanel6.revalidate(); manage.contPanel6.repaint(); } }; privateActionListenerb3=newActionListener(){ publicvoidactionPerformed(ActionEvente){ Stringsanum=snum.getText(); Stringsaname=sname.getText(); Strings1=lxre.getText(); Strings2=lxdia.getText(); Stringinsert="INSERTINTOlingjianvalues('"+sanum+"','"+saname+"','"+s1+"','"+s2+"')"; SqlFunctionsql=newSqlFunction(); sql.ExecuteUpdate(insert); manage.contPanel6.remove(manage.pane12); manage.contPanel6.revalidate(); manage.contPanel6.repaint(); } }; publicLingjianinf(){ setLayout(newGridLayout(10,2)); sav.addActionListener(b3); //sav.addActionListener(b1); ext.addActionListener(b1); add(spnum); add(snum); add(spname); add(sname); add(lxren); add(lxre); add(lxdian); add(lxdia); add(sav); add(ext); }}SqlFunctionimportjavax.swing.*;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;publicclassSqlFunction{ privateStringdriver="com.microsoft.sqlserver.jdbc.SQLServerDriver"; privateStringurl="jdbc:sqlserver://localhost:1433;databaseName=cangku"; privateStringuser="sa"; privateStringpasswor
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球軍用聚脲防護涂料行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球室溫固化環(huán)氧膠行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國戰(zhàn)術(shù)靶標(biāo)系統(tǒng)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 硅礦開采合同書
- 股票期權(quán)協(xié)議書合同協(xié)議
- 個人房屋買賣合同協(xié)議書模板
- 鐵礦設(shè)備買賣合同
- 2025隧道施工合同
- 提高客戶服務(wù)技巧的關(guān)鍵要點
- 2025合同工程完工證書
- 中職安全管理方案
- 百詞斬托福詞匯excel版本
- 高考寫作指導(dǎo)常見議論文論證方法知識梳理與舉例解析課件27張
- (完整word版)高中英語3500詞匯表
- 玻璃反應(yīng)釜安全操作及保養(yǎng)規(guī)程
- 高中英語新課標(biāo)詞匯表(附詞組)
- 2023年心理咨詢師之心理咨詢師基礎(chǔ)知識考試題庫附完整答案【有一套】
- 證券公司信用風(fēng)險和操作風(fēng)險管理理論和實踐中金公司
- 一級建造師繼續(xù)教育最全題庫及答案(新)
- 2022年高考湖南卷生物試題(含答案解析)
- GB/T 20909-2007鋼門窗
評論
0/150
提交評論