Java超市管理系統(tǒng)_第1頁(yè)
Java超市管理系統(tǒng)_第2頁(yè)
Java超市管理系統(tǒng)_第3頁(yè)
Java超市管理系統(tǒng)_第4頁(yè)
Java超市管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩81頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

年5月29日J(rèn)ava超市管理系統(tǒng)文檔僅供參考沈陽(yáng)工程學(xué)院課程設(shè)計(jì)設(shè)計(jì)題目:面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)小超市管理系統(tǒng)課程設(shè)計(jì)任務(wù)書課程設(shè)計(jì)題目:面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)小超市管理系統(tǒng)目錄摘要 I第1章緒論 1第2章系統(tǒng)功能介紹 22.1系統(tǒng)功能總框圖 22.2本系統(tǒng)模塊功能介紹 22.2.1登錄功能介紹 22.2.2商品銷售功能介紹 32.2.3權(quán)限管理功能介紹 32.2.4銷售管理功能介紹 42.2.5商品管理功能介紹 42.3組內(nèi)任務(wù)分工 5第3章數(shù)據(jù)庫(kù)設(shè)計(jì) 63.1數(shù)據(jù)庫(kù)需求分析 63.2數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì) 63.3數(shù)據(jù)庫(kù)表的設(shè)計(jì) 7第4章系統(tǒng)功能實(shí)現(xiàn) 84.1登錄功能實(shí)現(xiàn) 84.2銷售界面功能介紹 114.2.1搜索商品的信息 114.2.2購(gòu)買商品 114.2.3模塊的核心代碼 124.3權(quán)限管理功能介紹 184.3.1添加用戶功能介紹 184.3.2修改用戶功能介紹 194.3.3刪除用戶功能介紹 194.3.4顯示用戶信息與刷新按鈕介紹 204.3.5用戶管理的實(shí)現(xiàn)代碼……………204.4銷售管理功能介紹 274.4.1編號(hào)查詢功能 274.4.2賬單查詢功能 274.4.3銷售管理模塊的核心代碼 284.4商品管理功能介紹 314.4.1查詢信息 314.4.2添加信息及提交添加 324.4.3刪除信息及提交刪除 324.4.4修改信息及提交修改 334.4.5關(guān)于 334.4.6模塊的核心代碼…………………34總結(jié) 39致謝 40參考文獻(xiàn) 41第1章緒論隨著人們生活水平的不斷提高,購(gòu)物已成為一種時(shí)尚。每天都有大量的消費(fèi)者在各大商場(chǎng)中留下消費(fèi)信息,因此作為商場(chǎng)的管理人員就需要有一個(gè)自動(dòng)化、智能化的管理系統(tǒng)來完成這些信息的處理。由此我們?cè)O(shè)計(jì)開發(fā)小超市管理系統(tǒng)。當(dāng)前市場(chǎng)上的超市管理系統(tǒng),大部分為基于分布式數(shù)據(jù)庫(kù)的網(wǎng)絡(luò)管理系統(tǒng),對(duì)于規(guī)模較小的超市沒有必要花巨資來購(gòu)買這樣功能全面的管理系統(tǒng),另外,對(duì)于那樣功能齊全的管理系統(tǒng)也需要花大精力來維護(hù)。基于這種情況,我們用所學(xué)的java知識(shí),能夠開發(fā)一種既能節(jié)約資金,又能完成小超市日常的管理任務(wù)。本系統(tǒng)所包括的功能主要有:限于不同身份的人登錄的登錄界面;權(quán)限管理功能;商品銷售功能;商品管理功能;銷售管理功能。在系統(tǒng)的設(shè)計(jì)中,用戶管理功能能夠管理登錄本系統(tǒng)的人員,如:管理員、用戶和超級(jí)用戶等。在最初的系統(tǒng)使用中只有技術(shù)管理員一種身份。商品銷售功能;能夠完成商品信息的查詢。如:輸入一種商品的編號(hào)在商品信息欄就顯示該商品的所有信息,名稱、價(jià)格、生產(chǎn)日期、生產(chǎn)地。然后選擇購(gòu)買功能,就能夠?qū)⑸唐诽砑拥劫?gòu)物信息欄,最后選擇提交,所購(gòu)買的商品信息同時(shí)也添加到數(shù)據(jù)庫(kù)中。在商品管理功能中,能夠把一種新引進(jìn)的商品信息添加到小超市管理系統(tǒng)中。在銷售管理功能中,能夠查看超市的銷售情況,所有商品的購(gòu)買信息都存儲(chǔ)在數(shù)據(jù)庫(kù)中。在系統(tǒng)的安全性方面,我們規(guī)定了不同權(quán)限的登錄用戶,管理員(主要負(fù)責(zé)用戶管理)能夠登錄到任何一個(gè)管理模塊,以及后臺(tái)的數(shù)據(jù)庫(kù),能夠改變?nèi)我粋€(gè)登錄者的用戶名和密碼。用戶只能進(jìn)入到銷售界面。老板超級(jí)主要查看商品的銷售情況和商品管理,她能夠進(jìn)入到商品銷售管理查看商品的銷售情況。經(jīng)過這樣的權(quán)限限制就能夠方便的控制系統(tǒng)的安全性??傊?小超市管理系統(tǒng)是一個(gè)經(jīng)濟(jì)、實(shí)惠的應(yīng)用軟件,適合小規(guī)模的商店和超市。操作難度小,易學(xué)易用。第2章系統(tǒng)功能介紹2.1系統(tǒng)功能總框圖小超市管理系統(tǒng)是一個(gè)專門針對(duì)小型的商店和超市的智能化、自動(dòng)化的管理系統(tǒng)。其功能總框圖如圖2-1所示。圖2-1系統(tǒng)功能總框圖2.2本系統(tǒng)模塊功能介紹2.2.1登錄功能介紹登錄功能是進(jìn)入系統(tǒng)必須經(jīng)過的驗(yàn)證過程,其主要功能是驗(yàn)證使用者的身份,確認(rèn)使用者的權(quán)限,從而在使用軟件過程中能安全地控制系統(tǒng)數(shù)據(jù),即不同的工作人員有不同的權(quán)限,每個(gè)使用人員不得跨越其權(quán)限操作軟件,能夠避免不必要的數(shù)據(jù)丟失事件發(fā)生。登錄的界面如圖2-2所示:圖2-2登錄的界面2.2.2商品銷售功能介紹銷售界面是本系統(tǒng)直接供銷售的店員應(yīng)用的專管銷售功能的界面,首先要查詢欲購(gòu)買的商品,在左側(cè)的查詢框內(nèi)輸入商品代號(hào),然后點(diǎn)擊搜索按鈕,相應(yīng)的商品信息將顯示在”商品信息”一欄中,確認(rèn)是此商品后點(diǎn)擊購(gòu)買,購(gòu)買的商品將出現(xiàn)在下面的購(gòu)物信息一欄中,當(dāng)所有欲購(gòu)買的商品都已輸入好,點(diǎn)擊提交,購(gòu)買的商品信息將記錄到數(shù)據(jù)庫(kù)中。若輸入有誤,點(diǎn)擊清除按鈕,剛輸入的信息將被清除,可重新輸入。界面的右下方右商品總價(jià)的標(biāo)簽,能夠時(shí)時(shí)地顯示已購(gòu)買商品的總價(jià),以供參考。商品銷售功能的主界面如圖2-3所示:圖2-3銷售窗口的主界面2.2.3用戶管理功能介紹用戶管理功能是管理人員使用的界面。管理人員能夠使用此功能管理所有登錄用戶的信息。能夠修改所有用戶的帳號(hào)和密碼,設(shè)置用戶的權(quán)限,刪除用戶的帳號(hào);對(duì)于已存在的用戶技術(shù)管理員能夠查詢她們的信息,在下面的顯示用戶信息處顯示。添加、修改、刪除等操作后,單擊”刷新”后,新的更改信息才能夠在下面的用戶信息顯示處顯示。用戶管理的主界面如圖2-4所示:圖2-4用戶管理的主界面2.2.4銷售管理功能介紹銷售管理功能主要是老板查看超市商品銷售情況。老板能夠根據(jù)已售出的商品號(hào)查詢?cè)撋唐返男畔?如能夠查詢?cè)撋唐芬咽鄢龅目倲?shù)量。還能夠根據(jù)銷售的賬單號(hào)查詢,就是在消費(fèi)者每一次購(gòu)買商品時(shí),就分配一個(gè)賬單號(hào),如出現(xiàn)消費(fèi)者退貨情況時(shí),老板能夠查詢賬單號(hào)解決。 ”按編號(hào)查詢”輸入商品的編號(hào),在下面的商品信息處顯示該商品的信息;”按賬單號(hào)查詢”輸入商品的賬單號(hào),在下面的商品信息處顯示該商品的信息。銷售管理功能的主界面如圖2-5所示:圖2-5商品管理功能主界面2.2.5商品管理功能介紹 商品管理的功能是店員在進(jìn)貨、商品信息維護(hù)時(shí)所需要的界面,此界面功能是管理所有商品的信息,在這里能夠添加、修改、刪除任意商品信息,做到對(duì)商品信息的及時(shí)維護(hù)。應(yīng)用時(shí),對(duì)應(yīng)按鈕的功能,進(jìn)行應(yīng)用,維護(hù)方便。商品管理功能的主界面如圖2-6所示:圖2-6商品管理系統(tǒng)的主界面2.3組內(nèi)任務(wù)分工組內(nèi)人員分工如表2-1所示:表2-1組內(nèi)分工組內(nèi)分工姓名主要任務(wù)成績(jī)組長(zhǎng)王浩數(shù)據(jù)庫(kù)的設(shè)計(jì)、商品管理和用戶管理等功能組員魏興龍銷售管理界面及功能組員王瀟伯商品銷售界面及功能組員夏恩亮權(quán)限銷售界面及功能第3章數(shù)據(jù)庫(kù)設(shè)計(jì)在每個(gè)管理系統(tǒng)中都一定有儲(chǔ)存機(jī)制,若單單以文件形式儲(chǔ)存,查找和存儲(chǔ)時(shí)速度比較緩慢,會(huì)降低系統(tǒng)的整體運(yùn)行速度,一定要運(yùn)用數(shù)據(jù)庫(kù)的進(jìn)行信息管理,因此我們的”小超市管理系統(tǒng)”運(yùn)用了MicrosoftAccess數(shù)據(jù)庫(kù),存儲(chǔ)其后臺(tái)數(shù)據(jù)。下面將介紹本系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)。3.1數(shù)據(jù)庫(kù)需求分析此系統(tǒng)需要有兩個(gè)實(shí)體,賬戶和商品。數(shù)據(jù)項(xiàng)如表3-1和3-2所示。表3-1用戶信息數(shù)據(jù)項(xiàng)數(shù)據(jù)項(xiàng)名數(shù)據(jù)項(xiàng)含義說明別名數(shù)據(jù)類型長(zhǎng)度ID用戶登錄的帳號(hào)Id字符型50PASSWORD用戶登錄帳號(hào)對(duì)應(yīng)的密碼Psw字符型50PERSONTY登錄用戶的權(quán)限Pst字符型50表3-2商品信息數(shù)據(jù)項(xiàng)數(shù)據(jù)項(xiàng)名數(shù)據(jù)項(xiàng)含義說明別名數(shù)據(jù)類型長(zhǎng)度NUM商品的編號(hào)編號(hào)字符型50NAME商品的名稱名稱字符型50TIME商品的進(jìn)貨時(shí)間貨時(shí)字符型50ADD商品的生產(chǎn)地址產(chǎn)地字符型50PRICE商品的單價(jià)價(jià)格整型50COUNT商品的庫(kù)存數(shù)量數(shù)量整型3.2數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)根據(jù)需求分析設(shè)計(jì)出E-R圖如圖3-1所示:圖3-1系統(tǒng)E-R圖3.3數(shù)據(jù)庫(kù)表的設(shè)計(jì)Password表,其中存儲(chǔ)的是用戶的帳號(hào)、密碼及權(quán)限,用于登陸系統(tǒng)時(shí)確認(rèn)身份。此表設(shè)計(jì)如3-3表所示:表3-3Password信息表字段名稱數(shù)據(jù)類型長(zhǎng)度備注ID文本50PASSWORD文本50PERSONTY文本50Goods表,其中存儲(chǔ)的是商品的詳細(xì)信息,作用是記錄商品的信息及在本超市中的數(shù)量。此表設(shè)計(jì)如3-4標(biāo)所示。表3-4Goods信息表字段名稱數(shù)據(jù)類型長(zhǎng)度備注NUM文本50NAME文本50PRICE整型TIME文本50ADD文本50COUNT文本50Information表,其中存儲(chǔ)的是顧客在超市中的消費(fèi)情況,其中有帳單號(hào)、商品代號(hào)、數(shù)量及總價(jià),用來記錄超市中銷售情況,此表設(shè)計(jì)如3-5表所示。表3-5Information信息表字段名稱數(shù)據(jù)類型長(zhǎng)度備注編號(hào)長(zhǎng)整型銷售的每件商品有不同的編號(hào)LISTNUM文本50每提交一次帳單帳單號(hào)增加1GOODSNUM文本50ALLPRICE整型每個(gè)帳單的最后合出此帳單的總價(jià)

第4章系統(tǒng)功能實(shí)現(xiàn)4.1登錄功能實(shí)現(xiàn)登錄界面是使用者在使用此軟件時(shí)需要輸入自已的賬號(hào)和密碼,從而使用自已的權(quán)限來管理超市的運(yùn)行。小超市登錄界面如4-1所示。圖4-1小超市管理系統(tǒng)登錄界面模塊核心代碼:publicclassLoginextendsFrameimplementsActionListener,WindowListener//登陸界面{publicintscreanWidth,screanHeight;Stringidin=null;Stringkeyin=null;StringpasswordD=null;publicstaticStringpersontyD=null;MenuBarmenubar;Menumenu;MenuItemquet,help;Labelid,key;TextFieldidtf,keytf;BoxboxV1ButtonenterB;Login() {setTitle("超市管理系統(tǒng)登陸界面");Toolkittool=getToolkit(); Dimensiondim=tool.getScreenSize(); screanWidth=dim.width; screanHeight=dim.height; setBounds(dim.width/3,dim.height/3,320,215);menubar=newMenuBar(); menu=newMenu("功能");help=newMenuItem("幫助"); quet=newMenuItem("退出"); quet.setShortcut(newMenuShortcut(KeyEvent.VK_E)); quet.addActionListener(newActionListener()//匿名類實(shí)例控制 { publicvoidactionPerformed(ActionEventp){ System.exit(0); }}); menu.add(help); menu.add(quet); menubar.add(menu); setMenuBar(menubar);id=newLabel("請(qǐng)輸入帳號(hào):",Label.RIGHT);key=newLabel("請(qǐng)輸入密碼:",Label.RIGHT); idtf=newTextField(10); keytf=newTextField(10); keytf.setEchoChar('*');enterB=newButton("登陸");boxV1=Box.createVerticalBox(); boxV1.add(Box.createVerticalStrut(35)); boxV1.add(id); boxV1.add(Box.createVerticalStrut(15)); boxV1.add(key); boxV1.add(Box.createVerticalStrut(15)); boxV2=Box.createVerticalBox();boxV2.add(Box.createVerticalStrut(35)); boxV2.add(idtf); boxV2.add(Box.createVerticalStrut(15)); boxV2.add(keytf); boxV2.add(Box.createVerticalStrut(15)); baseBox=Box.createHorizontalBox(); baseBox.add(Box.createHorizontalStrut(25)); baseBox.add(boxV1); baseBox.add(Box.createHorizontalStrut(5)); baseBox.add(boxV2); baseBox.add(Box.createHorizontalStrut(70));boxV3=Box.createHorizontalBox(); boxV3.add(Box.createHorizontalStrut(125)); boxV3.add(enterB); boxV3.add(Box.createHorizontalStrut(125)); boxx=Box.createVerticalBox(); boxx.add(baseBox); boxx.add(Box.createVerticalStrut(15)); boxx.add(boxV3); boxx.add(Box.createVerticalStrut(70));add(boxx); enterB.addActionListener(this); addWindowListener(this); setResizable(false); setVisible(true); } publicvoidactionPerformed(ActionEvente) { Connectioncon; Statementsql; ResultSetrs; if(e.getSource()==enterB) { idin=idtf.getText(); keyin=keytf.getText();try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(ClassNotFoundExceptionf) {System.out.println(""+f);} try {con=DriverManager.getConnection("jdbc:odbc:q","",""); sql=con.createStatement(); rs=sql.executeQuery("SELECT*FROMpasswordwhereID='"+idin+"'"); while(rs.next()){ passwordD=rs.getString(2); persontyD=rs.getString(3);} con.close();} catch(SQLExceptiong) {System.out.println(g);} if(keyin.equals(passwordD)){View2frame=newView2(); this.setVisible(false);} else{JOptionPane.showMessageDialog(this,"帳戶或密碼錯(cuò)誤\n請(qǐng)重新輸入","提示",JOptionPane.WARNING_MESSAGE);} } } publicvoidwindowActivated(WindowEvento) {validate();} publicvoidwindowDeactivated(WindowEvento) {setBounds(screanWidth/3,screanHeight/3,320,215); validate();} publicvoidwindowClosing(WindowEvento) {dispose();} publicvoidwindowClosed(WindowEvento) {System.exit(0);} publicvoidwindowIconified(WindowEvento) {} publicvoidwindowDeiconified(WindowEvento) {setBounds(screanWidth/3,screanHeight/3,320,215); validate();} publicvoidwindowOpened(WindowEvento){}}4.2銷售界面功能介紹該功能是此系統(tǒng)的最關(guān)鍵的模塊,是消費(fèi)者直接使用的功能。消費(fèi)者能夠根據(jù)已看到的商,在搜索欄中打入商品的編號(hào),進(jìn)行查詢商品的信息,然后能夠依椐自已的需要購(gòu)買。最后單擊提交,購(gòu)買的商品就記錄到系統(tǒng)的數(shù)據(jù)庫(kù)中。銷售的主界面如圖4-2所示:圖4-2銷售的主界面4.2.1搜索商品的信息消費(fèi)者可根據(jù)自已所需要的商品編號(hào),在銷售功能中搜索,查看商品的信息無誤后,確定是否購(gòu)買。如搜索001號(hào)商品,查看它的信息,如圖4-3所示。圖4-3搜索001號(hào)商品的信息4.2.2購(gòu)買商品在確定自已需要的商品后,然后就是購(gòu)買商品,消費(fèi)者能夠按”購(gòu)買”鍵進(jìn)行購(gòu)買物品,購(gòu)買一份就單擊一次”購(gòu)買”鍵,購(gòu)買物品的信息顯示在購(gòu)物信息框中,最后單擊”提交”,消費(fèi)者所購(gòu)買的物品就作為一個(gè)賬單號(hào)存儲(chǔ)在數(shù)據(jù)庫(kù)中。如購(gòu)買004、005、006、008、010和011號(hào)商品時(shí),購(gòu)買信息如圖4-4下:圖4-4購(gòu)買信息當(dāng)購(gòu)買人不想購(gòu)買這些商品時(shí),能夠點(diǎn)擊窗口左下角的清除按鈕,來清除剛才購(gòu)買的商品,數(shù)據(jù)庫(kù)中也不會(huì)有此記錄。另外,本系統(tǒng)是每購(gòu)買一件商品向數(shù)據(jù)庫(kù)提交一次記錄,當(dāng)未點(diǎn)擊提交按鈕之前,若要結(jié)束此窗口進(jìn)程,我們?cè)诖a中嵌入了一段刪除當(dāng)前帳單的數(shù)據(jù)庫(kù)記錄代碼,以達(dá)到?jīng)]有誤提交的操作。4.2.3模塊的核心代碼 ⑴銷售界面的實(shí)現(xiàn)publicclassView2extendsJFrameimplementsActionListener//銷售界面{ Stringnum=null,name=null,time=null,add=null,t1=null,t2=null,t3=null; intprice=0; intn1,n2,ap,n3;privateJPanelsM=newJPanel();//supermarket面板 privateJButton[]pS={newJButton("銷售界面"),newJButton("銷售管理"), newJButton("商品管理"),newJButton("權(quán)限管理")};//personty按鈕privateJTextAreagoodsShow=newJTextArea(),searchShow=newJTextArea();//文本區(qū)privateJScrollPanejsp=newJScrollPane(goodsShow);//滾動(dòng)區(qū)域設(shè)定內(nèi)容為商品顯示的文本區(qū) privateJTextFieldnumSearch=newJTextField(),showGoods=newJTextField();//商品查詢/顯示商品privateJButtonsearchGoods=newJButton("搜索"),buyGoods=newJButton("購(gòu)買"), clean=newJButton("清空"),ok=newJButton("提交"),print=newJButton("打印并提交");//查詢按鈕 privateJLabel[]goodsInformation={newJLabel("商品編碼",JLabel.CENTER),newJLabel("商品名稱",JLabel.CENTER), newJLabel("商品價(jià)格",JLabel.CENTER),newJLabel("生產(chǎn)日期",JLabel.CENTER),newJLabel("生產(chǎn)地",JLabel.CENTER)}; privateJLabel[]goodsI={newJLabel("商品編碼",JLabel.CENTER),newJLabel("商品名稱",JLabel.CENTER), newJLabel("商品價(jià)格",JLabel.CENTER),newJLabel("生產(chǎn)日期",JLabel.CENTER),newJLabel("生產(chǎn)地",JLabel.CENTER)};privateJLabelallPrice=newJLabel("商品總價(jià):\n",JLabel.LEFT),label1=newJLabel("商品信息",JLabel.RIGHT),label2=newJLabel("購(gòu)物信息",JLabel.RIGHT);publicView2() { sM.setLayout(null); for(inti=0;i<4;i++) { pS[i].setBounds(550+i*110,50,100,22); sM.add(pS[i]); pS[i].addActionListener(this); } jsp.setBounds(100,180,800,500); goodsShow.setLineWrap(true) numSearch.setBounds(100,50,150,22); searchGoods.setBounds(260,50,60,22); searchGoods.addActionListener(this); buyGoods.setBounds(330,50,60,22); buyGoods.addActionListener(this);showGoods.setBounds(100,120,800,22); for(intb=0;b<5;b++) { goodsInformation[b].setBounds(100+160*b,87,160,30); sM.add(goodsInformation[b]); }for(intb=0;b<5;b++) { goodsI[b].setBounds(100+160*b,150,160,30); sM.add(goodsI[b]); }clean.setBounds(100,690,100,22);clean.addActionListener(this); ok.setBounds(690,690,100,22); ok.addActionListener(this);print.setBounds(800,690,100,22); print.addActionListener(this); allPrice.setBounds(900,480,100,50); label1.setBounds(20,120,80,22); label2.setBounds(20,180,80,22); sM.add(label1); sM.add(label2); sM.add(allPrice); sM.add(print); sM.add(ok); sM.add(showGoods); sM.add(clean); sM.add(numSearch); sM.add(searchGoods); sM.add(buyGoods); sM.add(jsp);addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){Connectioncon; Statementsql; ResultSetrs; try { if(n3!=0) { inta1=0; con=DriverManager.getConnection("jdbc:odbc:q","",""); sql=con.createStatement(); rs=sql.executeQuery("SELECTMAX(編號(hào))frominformation"); while(rs.next()) { a1=rs.getInt(1);} for(inti=0;i<n3;i++) { sql.executeUpdate("deletefrominformationwhere編號(hào)="+(a1-i)); } con.close(); ap=0;num=null;name=null;price=0;time=null;add=null;n3=0;goodsShow.setText(null); } } catch(SQLExceptiong) {System.out.println(g); }System.exit(0);}}); this.add(sM); this.setTitle("銷售窗口"); this.setResizable(false); this.setBounds(0,0,1024,768); this.setVisible(true); validate(); }⑵購(gòu)買商品功能的代碼if(p.getSource()==buyGoods)//購(gòu)買按鍵 { try { if(num!=null) {con=DriverManager.getConnection("jdbc:odbc:q","",""); sql=con.createStatement(); sql.executeUpdate("insertintoinformation(listnum,goodsnum)values('"+n2+"','"+num+"')"); rs=sql.executeQuery("SELECT*FROMinformationwherelistnum="+n2); n3++;//記錄購(gòu)買商品個(gè)數(shù) con.close(); goodsShow.append(""+num+""+name+""+price+""+time+""+add+"\n");} else {JOptionPane.showMessageDialog(this,"請(qǐng)選擇商品","提示",JOptionPane.WARNING_MESSAGE);} ap=ap+price;//總價(jià) allPrice.setText("商品總價(jià):\n"+ap); } catch(SQLExceptiong) {System.out.println(g); } }if(p.getSource()==ok) {try { if(n3!=0) { con=DriverManager.getConnection("jdbc:odbc:q","",""); sql=con.createStatement(); sql.executeUpdate("insertintoinformation(listnum,allprice)values('"+n2+"','"+ap+"')"); rs=sql.executeQuery("SELECT*FROMinformationwherelistnum="+n2); con.close(); ap=0;num=null;name=null;price=0;time=null;add=null;n3=0;goodsShow.setText(null); n2++;//帳單號(hào) } else {JOptionPane.showMessageDialog(this,"請(qǐng)購(gòu)買商品","提示",JOptionPane.WARNING_MESSAGE);} } catch(SQLExceptiong) {System.out.println(g); }} if(p.getSource()==print) {try { if(n3!=0) { con=DriverManager.getConnection("jdbc:odbc:q","",""); sql=con.createStatement(); sql.executeUpdate("insertintoinformation(listnum,allprice)values('"+n2+"','"+ap+"')"); rs=sql.executeQuery("SELECT*FROMinformationwherelistnum="+n2); con.close(); ap=0;num=null;name=null;price=0;time=null;add=null;n3=0;goodsShow.setText(null); n2++;//帳單號(hào) } else {JOptionPane.showMessageDialog(this,"請(qǐng)購(gòu)買商品","提示",JOptionPane.WARNING_MESSAGE);} } catch(SQLExceptiong) {System.out.println(g); }}if(p.getSource()==clean) {try {if(n3!=0) {inta1=0; con=DriverManager.getConnection("jdbc:odbc:q","",""); sql=con.createStatement(); rs=sql.executeQuery("SELECTMAX(編號(hào))frominformation"); while(rs.next()){ a1=rs.getInt(1);} for(inti=0;i<n3;i++) {sql.executeUpdate("deletefrominformationwhere編號(hào)="+(a1-i));} con.close(); ap=0;num=null;name=null;price=0;time=null;add=null;n3=0;goodsShow.setText(null);} } catch(SQLExceptiong) {System.out.println(g);}}⑶搜索商品的代碼實(shí)現(xiàn)if(p.getSource()==searchGoods) { num=numSearch.getText(); try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(ClassNotFoundExceptionf) {System.out.println(""+f);} try { con=DriverManager.getConnection("jdbc:odbc:q","",""); sql=con.createStatement(); rs=sql.executeQuery("SELECT*FROMgoodswherenum='"+num+"'"); while(rs.next()){ name=rs.getString(2); price=rs.getInt(3); time=rs.getString(4); add=rs.getString(5); n1=1;} con.close();} catch(SQLExceptiong) {System.out.println(g); } if(n1==1){ showGoods.setText(""+num+""+name+""+price+""+time+""+add); n1=0; } else { showGoods.setText(""); num=null;name=null;price=0;time=null;add=null; JOptionPane.showMessageDialog(this,"輸入錯(cuò)誤\n請(qǐng)重新輸入","提示",JOptionPane.WARNING_MESSAGE); }}⑷提交商品的代碼if(p.getSource()==ok) {try { if(n3!=0) {con=DriverManager.getConnection("jdbc:odbc:q","",""); sql=con.createStatement(); sql.executeUpdate("insertintoinformation(listnum,allprice)values('"+n2+"','"+ap+"')"); rs=sql.executeQuery("SELECT*FROMinformationwherelistnum="+n2); con.close();ap=0;num=null;name=null;price=0;time=null;add=null;n3=0;goodsShow.setText(null); n2++;//帳單號(hào)} else {JOptionPane.showMessageDialog(this,"請(qǐng)購(gòu)買商品","提示",JOptionPane.WARNING_MESSAGE);}} catch(SQLExceptiong) {System.out.println(g);}4.3用戶管理功能介紹在用戶管理部分,主要功能是控制小超市內(nèi)用戶的權(quán)限,不同的職位具有不同的權(quán)限,具有不同的ID和密碼。在這部分當(dāng)中,能夠針對(duì)超市的情況對(duì)工作人員的信息實(shí)現(xiàn)添加用戶、修改用戶和刪除用戶的功能,而且超市內(nèi)所有人員的信息都能夠經(jīng)過顯示用戶信息區(qū)域顯示出來。界面的設(shè)計(jì)簡(jiǎn)單明了,將setLayout布局設(shè)為空,然后再向面板上添加組件,經(jīng)過坐標(biāo)值控制各組件的位置。權(quán)限管理界面如圖4-5所示。圖4-5用戶管理界面4.3.1添加用戶功能介紹在添加用戶行所對(duì)應(yīng)的文本框中輸入要添加用戶的ID、PASSWORD、PERSONTY,單擊添加按鈕,”添加”按鈕上已添加了監(jiān)控器,在按鈕被觸發(fā)后,將會(huì)向”ID”、”PASSWORD”、”PERSONTY”所對(duì)應(yīng)的文本框索取數(shù)據(jù),只有當(dāng)該用戶在數(shù)據(jù)庫(kù)中沒有相應(yīng)記錄,而且添加的信息完整時(shí)才會(huì)顯示添加成功,若所添加的信息不完整,則顯示”請(qǐng)輸入完整信息”,若信息完整,但該用戶已存在,則顯示”添加失敗!原因:可能數(shù)據(jù)庫(kù)添加失敗或已有此ID”。添加用戶功能如圖4-6所示。(a)(b)圖4-6添加用戶4.3.2修改用戶功能介紹修改部分的操作方法與添加部分相類似,可是輸入的是修改后的用戶信息,”修改”按鈕也添加了監(jiān)控器,單擊”修改”按鈕后,會(huì)將新輸入的”ID”、”PASSWORD”、”PERSONTY”信息返回到數(shù)據(jù)庫(kù)中,替代原來的信息。同樣的,輸入的信息必須完整,修改的ID數(shù)據(jù)庫(kù)中必須存在。修改用戶功能如圖4.7所示。圖4.7修改用戶4.3.3刪除用戶功能介紹刪除用戶部分的操作,只需要輸入用戶的ID,然后點(diǎn)擊”刪除”按鈕,由于刪除按鈕上也添加了監(jiān)控器,當(dāng)按鈕被觸發(fā)后,會(huì)從刪除用戶對(duì)應(yīng)的文本框獲取數(shù)據(jù)(即ID號(hào)碼),再返回?cái)?shù)據(jù)庫(kù),將該ID對(duì)應(yīng)的信息刪除。刪除用戶信息如圖4-8所示。(a)(b)圖4-8刪除用戶4.3.4顯示用戶信息與刷新按鈕介紹設(shè)置顯示用戶信息區(qū)域的主要目的是將數(shù)據(jù)庫(kù)中的用戶信息顯示出來,然而該區(qū)域只能顯示在進(jìn)入系統(tǒng)時(shí)的數(shù)據(jù)庫(kù)信息,對(duì)于之后的修改等操作后的信息無法更新,因此添加了”刷新”按鈕,使心事的信息更新,刷新的實(shí)質(zhì)是將該界面關(guān)閉再重新打開,從而達(dá)到更新數(shù)據(jù)的目的。4.3.5用戶用戶管理的實(shí)現(xiàn)代碼如下:importjava.awt.*;importjava.awt.event.*;importjava.sql.*;importjava.util.*;importjavax.swing.*;importjavax.swing.event.*;publicclassView3extendsJFrameimplementsActionListener{ Stringurl="jdbc:odbc:driver={MicrosoftAccessDriver(*.mdb)};DBQ=D:\\supermarket.mdb"; privateJPanelv3=newJPanel();privateJLabelidl1=newJLabel("ID",JLabel.CENTER),idl2=newJLabel("ID",JLabel.CENTER),idl3=newJLabel("ID",JLabel.CENTER),passwordl1=newJLabel("PASSWORD",JLabel.CENTER),passwordl2=newJLabel("PASSWORD",JLabel.CENTER),perl1=newJLabel("PERSONTY",JLabel.CENTER),perl2=newJLabel("PERSONTY",JLabel.CENTER);privateJLabel[]cho={newJLabel("添加用戶",JLabel.RIGHT),newJLabel("修改用戶",JLabel.RIGHT),newJLabel("刪除用戶",JLabel.RIGHT),newJLabel("顯示用戶信息",JLabel.RIGHT)}; privateJTextFieldid1=newJTextField(),id2=newJTextField(),id3=newJTextField(),password1=newJTextField(),password2=newJTextField(); privateJButton[]pS={newJButton("銷售界面"),newJButton("銷售管理"), newJButton("商品管理"),newJButton("用戶管理")}; privateJButton[]cB={newJButton("添加"),newJButton("修改"),newJButton("刪除")}; privateJButtonaddin=newJButton("添加"),updatein=newJButton("修改"),dele=newJButton("修改");privateString[]str={"無","管理員","超級(jí)用戶","用戶"}; privateJComboBoxper1=newJComboBox(str),per2=newJComboBox(str); privateJTextAreajtas=newJTextArea();privateJScrollPanejsp=newJScrollPane(jtas); privateJButtonreShow=newJButton("刷新"); Connectioncon;//連接對(duì)象ResultSetrs;//結(jié)果集Statementst; View3() { v3.setLayout(null); for(inti=0;i<4;i++) { pS[i].setBounds(550+i*110,50,100,22); v3.add(pS[i]); pS[i].addActionListener(this); } for(inti=0;i<4;i++) {cho[i].setBounds(50,120+i*51,140,22); v3.add(cho[i]); } for(inti=0;i<3;i++) {cB[i].setBounds(680,120+i*51,80,22); v3.add(cB[i]); cB[i].addActionListener(this); } idl1.setBounds(200,98,150,22);passwordl1.setBounds(370,98,150,22);perl1.setBounds(540,98,100,22); id1.setBounds(200,120,150,22);password1.setBounds(370,120,150,22);per1.setBounds(540,120,100,22); idl2.setBounds(200,149,150,22);passwordl2.setBounds(370,149,150,22);perl2.setBounds(540,149,100,22); id2.setBounds(200,171,150,22);password2.setBounds(370,171,150,22);per2.setBounds(540,171,100,22); idl3.setBounds(200,200,150,22); id3.setBounds(200,222,150,22); reShow.setBounds(865,273,90,22); reShow.addActionListener(this); try { Connectioncon; Statementsql; ResultSetrs; con=DriverManager.getConnection(url); sql=con.createStatement(); rs=sql.executeQuery("SELECT*frompassword"); while(rs.next()) { Stringa1=rs.getString(1); Stringa2=rs.getString(2); Stringa3=rs.getString(3); jtas.append("帳號(hào):"+a1+"密碼:"+a2+"權(quán)限:"+a3+"\n"); } con.close(); } catch(SQLExceptiong) {System.out.println(g); } jsp.setBounds(200,273,650,420);v3.add(reShow);v3.add(jsp); v3.add(per1); v3.add(per2); v3.add(perl1); v3.add(perl2); v3.add(idl1); v3.add(id1); v3.add(idl2); v3.add(id2); v3.add(idl3); v3.add(id3); v3.add(passwordl1); v3.add(password1); v3.add(passwordl2); v3.add(password2); addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}}); this.add(v3); this.setTitle("權(quán)限管理"); this.setResizable(false); this.setBounds(0,0,1024,768); this.setVisible(true); validate(); }//連接數(shù)據(jù)庫(kù)publicvoidconDB(){ Stringurl="jdbc:odbc:driver={MicrosoftAccessDriver(*.mdb)};DBQ=D:\\supermarket.mdb";try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundExceptione){JOptionPane.showMessageDialog(null,"數(shù)據(jù)庫(kù)操作錯(cuò)誤或失敗!");}try{con=DriverManager.getConnection(url);st=con.createStatement();}catch(SQLExceptione){JOptionPane.showMessageDialog(null,"數(shù)據(jù)庫(kù)連接失敗!");}}//關(guān)閉數(shù)據(jù)庫(kù)publicvoidcloseDB(){try{st.close();con.close();}catch(SQLExceptione){JOptionPane.showMessageDialog(null,"數(shù)據(jù)庫(kù)關(guān)閉失敗!");}}publicvoidactionPerformed(ActionEvente) {if(e.getSource()==reShow) {View3fr=newView3(); dispose(); //提交添加用戶操作if(e.getSource()==cB[0]) {if((id1.getText().trim()).equals("")||(password1.getText().trim()).equals("")||(per1.getSelectedIndex()==0)){JOptionPane.showMessageDialog(null,"請(qǐng)輸入完整信息!");}else{Stringuserid=id1.getText(); Stringusername=password1.getText();Stringuserpwd=per1.getSelectedItem().toString();System.out.println(userpwd+"111111");StringstrSQL="insertintopasswordvalues('"+userid+"','"+username+"','"+userpwd+"')";try{ conDB();st.executeUpdate(strSQL);closeDB();}catch(Exceptionexx){ System.out.println(exx);JOptionPane.showMessageDialog(this,"添加失敗!原因:有可能數(shù)據(jù)庫(kù)聯(lián)接失敗或以由此ID,嘗試換個(gè)ID添加");return;}JOptionPane.showMessageDialog(this,"添加成功!");id1.setText("");password1.setText("");per1.setSelectedIndex(0);}}//提交修改用戶操作if(e.getSource()==cB[1]) {if((id2.getText().trim()).equals("")||(password2.getText().trim()).equals("")||(per2.getSelectedIndex()==0)){JOptionPane.showMessageDialog(null,"請(qǐng)輸入完整信息!");}else{Stringuserid=id2.getText(); Stringusername=password2.getText();Stringuserpwd=per2.getSelectedItem().toString();System.out.println(userpwd+"111111");StringstrSQL="updatepasswordsetpersonty='"+userpwd+"',password='"+username+"'whereID='"+userid+"'";try{ conDB();inta=st.executeUpdate(strSQL);closeDB();if(a==0){JOptionPane.showMessageDialog(this,"無此id信息,修改失敗!");return;}}catch(Exceptionexx){ System.out.println(exx);JOptionPane.showMessageDialog(this,"數(shù)據(jù)庫(kù)原因,修改失敗!");return;}JOptionPane.showMessageDialog(this,"修改成功!");id2.setText("");password2.setText("");per2.setSelectedIndex(0);}}//提交刪除用戶操作if(e.getSource()==cB[2]) {if((id3.getText().trim()).equals("")){JOptionPane.showMessageDialog(null,"請(qǐng)輸入完整信息!");}else{Stringuserid=id3.getText(); StringstrSQL="deletefrompasswordwhereID='"+userid+"'";try{ conDB();inta=st.executeUpdate(strSQL);closeDB();if(a==0){JOptionPane.showMessageDialog(this,"沒有此用戶刪除失敗!");return;}}catch(Exceptionexx){ System.out.println(exx);JOptionPane.showMessageDialog(this,"沒有此用戶刪除失敗!");return;}JOptionPane.showMessageDialog(this,"刪除成功!");id3.setText("");}}if(e.getSource()==pS[0]){View2ve=newView2();dispose();}if(e.getSource()==pS[1]){if(Login.persontyD.equals("管理員")||Login.persontyD.equals("超級(jí)用戶")||Login.persontyD.equals("用戶")){sale2frame1=newsale2(); dispose();}else JOptionPane.showMessageDialog(null,"對(duì)不起,您沒有進(jìn)入權(quán)限!");}if(e.getSource()==pS[2]){if(Login.persontyD.equals("管理員")||Login.persontyD.equals("超級(jí)用戶")){ Frm_Mainframe=newFrm_Main(); dispose();}else JOptionPane.showMessageDialog(null,"對(duì)不起,您沒有進(jìn)入權(quán)限!");}}4.4銷售管理功能介紹銷售管理功能主要是老板了解商品的銷售情況,她能夠登錄進(jìn)來,按已銷售商品的編號(hào)和商品的賬單號(hào)來查詢商品的銷售情況。也能夠查詢商品的售出的數(shù)量,當(dāng)按編號(hào)查詢時(shí),后面的數(shù)量表示已售出商品的數(shù)量;當(dāng)按賬單號(hào)進(jìn)行查詢時(shí),后面的數(shù)量表示消費(fèi)者一次購(gòu)買時(shí),不同商品的總數(shù)。從而了解哪些商品銷售的好,對(duì)商品的進(jìn)貨做出決定。 商品管理功能的界面如圖4-9所示。圖4-9商品管理功能界面4.4.1編號(hào)查詢功能在已銷售出的商品中,能夠按照它的編號(hào)來進(jìn)行查詢,以顯示售出商品的各種信息。其中最后的信息”數(shù)量”表示已售出商品的數(shù)量。如:查詢002號(hào)商品的銷售情況,該商品一共賣出0份。如圖4-10所示。圖4-10002號(hào)商品的銷售情況4.4.2賬單查詢功能每一種商品在銷售時(shí),都有用戶提交的一份賬單,也就是流水號(hào)查詢。消費(fèi)者購(gòu)買物品時(shí),能夠一次購(gòu)買不同的商品,商品的編號(hào)不同,可是一次購(gòu)買的賬單號(hào)是一樣的,賬號(hào)查詢的功能就是查詢消費(fèi)者一次購(gòu)買的商品。這個(gè)功能還能夠防止消費(fèi)者的結(jié)賬出錯(cuò)時(shí)的查詢,一次就能夠查詢出消費(fèi)者的購(gòu)買信息,解決錯(cuò)賬的情況。如查詢流水號(hào)是0號(hào)的消費(fèi)者的購(gòu)買情況,在這一次的交易中銷售如圖4-11所示。圖4-11按賬單查詢情況4.4.3銷售管理模塊的核心代碼⑴銷售面板的實(shí)現(xiàn)publicsale2() { label1=newJLabel("按編號(hào)查詢",JLabel.CENTER); label2=newJLabel("按帳單查詢",JLabel.CENTER); field1=newJTextField(30);field2=newJTextField(30); button1=newJButton("查詢1");button2=newJButton("查詢2"); sM.setLayout(null); field1.setBounds(100,120,150,22); field2.setBounds(600,120,150,22); label1.setBounds(100,90,150,30); label2.setBounds(600,90,150,30);button1.setBounds(260,120,80,22); button2.setBounds(760,120,80,22);button1.addActionListener(this);button2.addActionListener(this); sM.add(label1);sM.add(label2);sM.add(field1);sM.add(field2);sM.add(button1);sM.add(button2); for(inti=0;i<4;i++) { pS[i].setBounds(550+i*110,50,100,22); sM.add(pS[i]); pS[i].addActionListener(this); } for(inti=0;i<7;i++) //6個(gè)標(biāo)簽的繪制 { CD[i].setBounds(100+i*115,160,115,20); sM.add(CD[i]);} jsp.setBounds(100,180,800,500); goodsShow.setLineWrap(true); addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}}); sM.add(jsp); this.add(sM); this.setTitle("銷售窗口"); this.setResizable(false); this.setBounds(0,0,1024,768); this.setVisible(true); }⑵查詢過程的處理 publicvoidactionPerformed(ActionEventp) {Connectioncon,con1; Statementsql,sql1; ResultSetrs,rs1; if(p.getSource()==button1) { Stringnum=field1.getText(); try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(ClassNotFoundExceptionf) {System.out.println(""+f);} try { con=DriverManager.getConnection("jdbc:odbc:q","",""); sql=con.createStatement(); rs=sql.executeQuery("SELECTcount(goodsnum)FROMinformationwheregoodsnum='"+num+"'"); while(rs.next()) {countBG=rs.getInt(1); System.out.println(countBG);} rs=sql.executeQuer

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論