Java課程設計報告超市管理系統(tǒng)設計實現(xiàn)_第1頁
Java課程設計報告超市管理系統(tǒng)設計實現(xiàn)_第2頁
Java課程設計報告超市管理系統(tǒng)設計實現(xiàn)_第3頁
Java課程設計報告超市管理系統(tǒng)設計實現(xiàn)_第4頁
Java課程設計報告超市管理系統(tǒng)設計實現(xiàn)_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、-. z.課程設計課程名稱 Java語言課程設計題目名稱超市管理系統(tǒng)的設計與實現(xiàn)學生學院應用數(shù)學學院專業(yè)班級信息與計算科學1班*學生指導教師 2013年 10 月24 日超市管理系統(tǒng)的設計與實現(xiàn)1系統(tǒng)設計容隨著小超市規(guī)模的開展不斷擴大,商品數(shù)量急劇增加,有關商品的各種信息量也成倍增長。超市時時刻刻都需要對商品各種信息進展統(tǒng)計分析。而大型的超市管理系統(tǒng)功能過于強大而造成操作繁瑣降低了小超市的工作效率。超市管理系統(tǒng)是市場上最流行的超市上常用的系統(tǒng)之一,它主要包含以下幾個模塊:系統(tǒng)登陸、商品入庫、商品查詢、商品更改和刪除等。從而,實現(xiàn)對進貨、銷售及員工信息等實現(xiàn)全面、動態(tài)、及時的管理。本文系統(tǒng)的分析

2、了軟件開發(fā)的背景以過程;首先介紹了軟件的開發(fā)環(huán)境,其次介紹了本軟件的詳細設計過程:數(shù)據(jù)庫的設計、各個模塊的設計和實現(xiàn),以及具體界面的設計和功能。超市庫存管理系統(tǒng)是基于Java作為開發(fā)工具, Mysql作為后臺數(shù)據(jù)庫支持。超市庫存管理系統(tǒng)開發(fā)主要是界面程序的開發(fā)、數(shù)據(jù)庫的建立、數(shù)據(jù)庫的維護。應用程序功能完善,界面人機交互要好,而且操作簡單。同時JAVA語言簡單,在較短的時間能夠開發(fā)出使用性強、功能完善,易于操作的程序,也能實現(xiàn)與數(shù)據(jù)庫的連接。通過以上的需求分析,初步確定該系統(tǒng)功能主要包括以下幾個模塊:系統(tǒng)登錄商品入庫管理包括商品信息管理商品銷售管理用戶管理與權限管理系統(tǒng)流程圖輸入錯誤重新登 錄系

3、統(tǒng)登錄確定登錄銷售員登錄頁面管理員登錄頁面人員管理刪除用戶注冊密碼修改個人信息修改個人信息修改密碼修改銷售管理進貨管理刪除庫存商品添加庫存商品查詢庫存商品結賬按鈕刪除銷售商品添加銷售商品用戶信息數(shù)據(jù)庫商品信息數(shù)據(jù)庫2系統(tǒng)設計方案2.1 JavaSwing概述通過圖形用戶界面GraphicalUserInterface,GUI,用戶和程序之間可以方便的進展交互。Java的java.awt(AbstractWindowToolkit)包中包括了多種類和接口,用于在JavaApplication中進展GUI編程。JavaSwing是JavaFoundationClassesJFC的一局部,是一個用于

4、開發(fā)Java應用程序用戶界面的開發(fā)工具包。在Swing中,Sun開發(fā)了一個經過仔細設計的、靈活而強大的GUI工具包。它以抽象窗口工具包AWT為根底使跨平臺應用程序可以使用任何可插拔的外觀風格。Swing開發(fā)人員只用很少的代碼就可以利用Swing豐富、靈活的功能和模塊化組件來創(chuàng)立優(yōu)雅的用戶界面。Swing增強了AWT中組件的功能,這引起增強的組件命名通常是在AWT組件名前增加了一個J字母;同時也提供了更多的組件庫,如:按鈕utton、單項選擇按鈕JRadioButton、復選框(JCheckBo*)、文本區(qū)(JTe*tArea)、文本字段(JTe*tField)、列表(JList)、組合框(oB

5、o*)、樹(JTree)、表格(JTable)。一個JavaGUI通常由頂層容器、中間容器以及多個原子組件組成。每個原子組件或容器都可能觸發(fā)相應事件的產生。容器是一類能夠在其中容納其他組件的特殊組件。Swing的GUI組件類是按照類屬層次以樹狀構造進展組織的。在這個樹的最頂層,即樹的根部,使一個最根本的容器類,被稱為頂層容器。Swing提供了三個通用的頂層容器類JFrame,JDialog和JApplet。JFrame提供了基于窗體的應用程序,JDialog提供對話框形式的界面,JApplet提供Java小應用程序的界面形式。在頂層容器下是中間容器,用于容納其他的組件。通常窗格本身在顯示界面中

6、是看不到的。面板類Panel是一種中間容器,它的唯一作用是使組件更容易定位。頂層容器通過getContentPane()方法獲取部的一個容窗格。2.2使用JDBC-ODBC與MySQL數(shù)據(jù)庫建立連接1、在開發(fā)環(huán)境中加載指定數(shù)據(jù)庫的驅動程序。2、在Java程序中加載驅動程序。在Java程序中,可以通過Class.forName(指定數(shù)據(jù)庫的驅動程序)方式來加載添加到開發(fā)環(huán)境中的驅動程序,例如加載MySQL的數(shù)據(jù)驅動程序的代碼為:Class.forName(org.gjt .mm.mysql.Driver);3、創(chuàng)立數(shù)據(jù)連接對象:通過DriverManager類創(chuàng)立數(shù)據(jù)庫連接對象Connectio

7、n。DriverManager類作用于Java程序和JDBC驅動程序之間,用于檢查所加載的驅動程序是否可以建立連接,然后通過它的getConnection方法,根據(jù)數(shù)據(jù)庫的URL、用戶名和密碼,創(chuàng)立一個JDBC Connection 對象。如:Connection connection = DriverManager.geiConnection(連接數(shù)據(jù)庫的URL, 用戶名, 密碼)。本程序創(chuàng)立MySQL的數(shù)據(jù)庫連接代碼如下:String url = jdbc:mysql:/localhost:3306/market;String username = root; String passwor

8、d = root; connect = DriverManager.getConnection(url, username, password); 4、創(chuàng)立Statement對象:Statement 類的主要是用于執(zhí)行靜態(tài) SQL 語句并返回它所生成結果的對象。通過Connection 對象的 createStatement()方法可以創(chuàng)立一個Statement對象。例如:Statement statament = connection.createStatement();本程序創(chuàng)立Statement對象代碼如下:Statement stat = connect.createStatement

9、(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);5、調用Statement對象的相關方法執(zhí)行相對應的 SQL 語句:通過e*ecuUpdate()方法用來數(shù)據(jù)的更新,包括插入和刪除等操作,通過調用Statement對象的e*ecuteQuery()方法進展數(shù)據(jù)的查詢,而查詢結果會得到 ResulSet對象,ResulSet表示執(zhí)行查詢數(shù)據(jù)庫后返回的數(shù)據(jù)的集合,ResulSet對象具有可以指向當前數(shù)據(jù)行的指針。通過該對象的ne*t()方法,使得指針指向下一行,然后將數(shù)據(jù)以列號或者字段名取出。如果當ne*t()方法返回nu

10、ll,則表示下一行中沒有數(shù)據(jù)存在。使用例如代碼如下:ResultSet resultSel = statement.e*ecuteQuery(select * from modity;);6、關閉數(shù)據(jù)庫連接:使用完數(shù)據(jù)庫或者不需要數(shù)據(jù)庫時,通過Connection的close()方法及時關閉數(shù)據(jù)連接。商品數(shù)據(jù)項的描述:數(shù)據(jù)項名數(shù)據(jù)類型長度說明numbervachar50商品編號amevachar50商品名稱suppliervachar50商品供給商PAreavachar50商品生產地unitvachar50商品單位shelfFifevachar50商品規(guī)格pricefloat50商品價格pac

11、kvachar50商品包裝fullNumberfloat50商品數(shù)量管理人員和銷售人員數(shù)據(jù)想描述:其中1、2分別表示管理員、銷售員權限uservachar50用戶名passwordvachar50密碼powervachar50權限3功能模塊詳細設計及實現(xiàn)3.1 系統(tǒng)登錄頁面統(tǒng)登錄模塊需要管理員和銷售員提供的用戶名、初始密碼和權限進展登錄驗證,如果成功則進入系統(tǒng),否則提示無法登錄并返回登錄一面。運行如圖3.2管理員登錄頁面管理員身份登錄成功進入管理員登陸界面。其中包括模塊進貨管理、查看所有人員、用戶注冊、密碼修改、個人信息修改。管理員登陸頁面運行截圖進貨管理功能是通過系統(tǒng)中的public voi

12、d allRecord() 方法查詢數(shù)據(jù)庫modity顯示超市倉庫中所有商品。但是在這里涉及一個類型轉化問題、因為在數(shù)據(jù)庫的設計中商品的數(shù)量和價格都是float類型。在所有商品價格方面直接利用數(shù)據(jù)庫中的第七列和第九列的數(shù)據(jù)相乘。即sum += rSet.getFloat(7) * rSet.getFloat(9);但是在頁面中合計金額需要顯示的是一個string類型的,而這里的sum是一個float類型變量,則就需要用一個類型準換語句,并將該值傳入文本框。語句分別為String cString = new Float(sum).toString();minventoryJFrame.getTo

13、talJTe*tField().setTe*t(cString);運行截圖刪除按鈕的設計是通過查找商品編號進展刪除。如果沒有對應的商品則通過JOptionPane.showMessageDialog(null, 庫存中沒有對應的商品, 刪除記錄, 1)語句提示庫存中沒有對應的商品、否則通過查詢數(shù)據(jù)庫并執(zhí)行以下語句刪除對應的庫存品。String sql = delete from modity where number= + minventoryJFrame.getJTable().getValueAt(row, 0) + ;stat.e*ecuteUpdate(sql);allRecord()

14、;JOptionPane.showMessageDialog(null, 成功刪除記錄, 刪除記錄, 1);添加頁面設計需要對數(shù)據(jù)類型和對輸入文本框是否有空值進展檢測,如果不合法則通過JOptionPane.showMessageDialog(this, 請確認數(shù)據(jù)類型和是否有空值!)給出提示。否則通過執(zhí)行以下語句并提示添加商品成功信息。String sql=INSERT INTO modity(number,ame,supplier,PArea,unit,shelfFife,price,pack,fullNumber)+VALUES(+Number.getTe*t()+,+ame.getTe

15、*t()+,+Supplier.getTe*t()+,+PArea.getTe*t()+,+unit.getTe*t()+,+ShelfFife.getTe*t()+,+Float.parseFloat(Price.getTe*t()+,+Pack.getTe*t()+,+Float.parseFloat(FullNumber.getTe*t()+);stmt.e*ecuteUpdate(sql);JOptionPane.showMessageDialog(this, 商品添加成功!);運行截圖人員管理模塊可以查看所有人員直接通過以下語句String sql = select * from u

16、serinfo;獲取數(shù)據(jù)庫中的所有人員。運行截圖刪除人員則是通過選中人員所對應的行進展刪除。實現(xiàn)語句為:String sql=DELETE FROM userinfo WHERE user=+cellValue+;用戶注冊需要先查詢數(shù)據(jù)庫中的用戶名和密碼,如果都存在則提示該用戶已經存在。不存在則可以通過以下語句注冊新員工String str=INSERT INTO userinfo VALUES(+User+,+Password+,+power+,+personneID+,+SE*+,+Birthday+,+Job+,+Id+);密碼修改則即更新數(shù)據(jù)庫。通過以下語句可以實現(xiàn)String sql

17、=UPDATE userinfo SET password=+String.valueOf(newPassword.getPassword()+ WHERE user=+cook.user+;用戶信息修改也是一個更新數(shù)據(jù)庫的操作,通過以下代碼可以實現(xiàn):String str=UPDATE userinfo SET se*=+SE*+,birthday=+Birthday+,job=+Job+,ID=+Id+ WHERE user=+cook.user+;stmt.e*ecuteUpdate(str);3.3 管理員登錄頁面銷售人員身份登錄成功進入銷售人員登陸頁面。其中包括商品的銷售、結賬頁面、其

18、中個人信息修改和密碼修改和管理員的相似。銷售頁面通過輸入商品的編號和數(shù)量、在通過查詢數(shù)據(jù)庫中對應的商品名稱和數(shù)量,如果沒有對用的商品則通過語句JOptionPane.showMessageDialog(this, 對不起,暫時沒有這件商品,請聯(lián)系管理員添加!);提示沒有商品,如果商品數(shù)量不夠則通過語句JOptionPane.showMessageDialog(this, 對不起,此商品庫存僅剩+rs.getFloat(fullNumber);給出銷售人員銷售數(shù)量超出庫存量的提示信息。但是在添加商品時本系統(tǒng)是利用數(shù)據(jù)庫查詢,再通過一個數(shù)組利用編號和數(shù)量進展保存的。因為如果直接利用從庫存數(shù)據(jù)庫中查

19、詢再添加到一個銷售數(shù)據(jù)庫中是直接將庫存數(shù)據(jù)庫中的所有商品都添加到了銷售數(shù)據(jù)庫表中。實現(xiàn)的語句為for(int i=0;irows;i+) Namei=String.valueOf(tableModel.getValueAt(i, 0); Qi=Float.parseFloat(String.valueOf(tableModel.getValueAt(i, 8); while(rs.ne*t() for(int i=0;irows;i+) String name=rs.getString(number); if(name.equals(Namei) Qi=rs.getFloat(fullNumb

20、er)-Qi; String sql=UPDATE modity SET fullNumber=+Qi+ WHERE number=+name+; stmt1.e*ecuteUpdate(sql); 通過上述語句可以添加銷售商品,在通過點擊確認銷售按鈕時通過語句int n=JOptionPane.showConfirmDialog(null, 確認出售列表中貨物共計:+acount+元?);銷售商品刪除按鈕是通過鼠標選中需要刪除的行進展刪除。執(zhí)行語句為:if(myTable.getSelectedRow()!= -1) int row1= myTable.getSelectedRow(); t

21、ableModel.removeRow(row1); else JOptionPane.showMessageDialog(this, 請選中要刪除的信息再點擊刪除!); 運行截圖4 結論通過此次的論文,我學到了很多知識,在論文的寫作過程中,通過查資料和搜集有關的文獻,培養(yǎng)了自學能力和編程能力。并且由原先的被動的承受知識轉換為主動的尋求知識,這可以說是學習方法上的一個很大的突破。我們可能會記住很多的書本知識,但是通過課程設計,我們學會了如何將學到的知識轉化為自己的東西,學會了怎么更好的處理知識和實踐相結合的問題。次超市庫存管理系統(tǒng)課程設計,讓我充分運用自己所學的知識,讓我明白只有單純的理論知識是遠遠不夠的,只有通過實際的鍛煉才能更好的運用所掌握的根底知識,才能在原有的根底上提升自己的能力,提高自己解決問題的能力。在這短短的一個星期,查閱有關的java學習資料和數(shù)據(jù)庫,設計的規(guī)則,代碼的編寫及到最后的調試。在設計過程中,通過對控件事件的處理,界面的布局,代碼的調試,充分鍛煉了自己的思維,獲得了充分的實際經歷,提高了處理問題的能力,同時也提高了

溫馨提示

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

最新文檔

評論

0/150

提交評論