Java倉庫管理系統(tǒng)報(bào)告
《Java倉庫管理系統(tǒng)報(bào)告》由會員分享,可在線閱讀,更多相關(guān)《Java倉庫管理系統(tǒng)報(bào)告(30頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、 2016—2017學(xué)年第一學(xué)期期末考試 《面向?qū)ο蟪绦蛟O(shè)計(jì)(Java)*》 實(shí)踐考核項(xiàng)目設(shè)計(jì)說明書 項(xiàng)目名稱: 倉庫管理系統(tǒng) 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 學(xué) 號: 姓 名: 任課教師: 鞏晨靜 2016年12月3日 項(xiàng)目及要求 (一)考核內(nèi)容:Java應(yīng)用程序開發(fā) (二)考核要求: 1. 設(shè)計(jì)開發(fā)一個Java應(yīng)用程序,
2、設(shè)計(jì)題目自擬; 2. 要求學(xué)生熟練運(yùn)用Java程序設(shè)計(jì)的基本知識和技能; 3. 要求學(xué)生掌握面向?qū)ο蟪绦蜷_發(fā)的基本思路和方法,熟悉軟件開發(fā)過程; 4. 要求學(xué)生利用面向?qū)ο蟮木幊趟枷胍约敖M件開發(fā)原理來完成系統(tǒng)的設(shè)計(jì); 5. 要求學(xué)生利用所學(xué)的基本知識和技能,進(jìn)行應(yīng)用程序設(shè)計(jì),并體現(xiàn)自己的創(chuàng)新; 6. 要求學(xué)生獨(dú)立完成,嚴(yán)禁拷貝與抄襲; 7. 按照軟件工程的思想,完成項(xiàng)目的需求分析、項(xiàng)目的功能框架、用戶界面的設(shè)計(jì)、各功能模塊的調(diào)試和運(yùn)行等工作; 8. 重視設(shè)計(jì)說明書文檔的書寫。 9. 上交要求。要求學(xué)生上交設(shè)計(jì)說明書一份(Word格式)電子及打印文檔(A4紙)各一份,源程序打包上
3、傳BB平臺。 目錄 第一章 項(xiàng)目選題說明 1 第二章 項(xiàng)目需求分析 2 第三章 系統(tǒng)設(shè)計(jì) 2 3.1 設(shè)計(jì)思想 2 3.2程序總體設(shè)計(jì) 3 3.3程序詳細(xì)設(shè)計(jì) 4 3.4 數(shù)據(jù)庫的總體設(shè)計(jì): 7 第四章 系統(tǒng)測試及實(shí)現(xiàn) 10 第五章 總結(jié) 13 附錄 : 15 倉庫管理系統(tǒng)設(shè)計(jì)說明書 第一章 項(xiàng)目選題說明 管理信息系統(tǒng)(MIS)的應(yīng)用已深入到社會的各行各業(yè),它是信息、軟件與科學(xué)管理相結(jié)合的產(chǎn)物。MIS的開發(fā)過程不僅是一個編寫應(yīng)用程序的過程,而且是一個以軟件工程的思想為指導(dǎo),從可行性研究開始,經(jīng)
4、過系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)施到等主要階段的規(guī)范開發(fā)過程。 我們實(shí)現(xiàn)的是網(wǎng)絡(luò)數(shù)據(jù)庫管理系統(tǒng),我們選擇的是倉庫管理系統(tǒng),倉庫作為一種資源的集散地,在企業(yè)的整個供應(yīng)鏈中起著至關(guān)重要的作用,如果不能保證正確的庫存控制及發(fā)貨,將會導(dǎo)致管理費(fèi)用的增加,服務(wù)質(zhì)量難以得到保證,從而影響企業(yè)的競爭力,傳統(tǒng)簡單的,靜態(tài)管理已經(jīng)無法保證企業(yè)各種資源的搞笑利用。如今的倉庫作業(yè)和庫存控制作業(yè)已經(jīng)十分復(fù)雜多樣化,僅靠人工記憶和手工錄入,不但費(fèi)時(shí)費(fèi)力,而且容易出錯,給企業(yè)帶來巨大的損失。所以要實(shí)施先進(jìn)的自動化系統(tǒng),實(shí)現(xiàn)企業(yè)內(nèi)部的信息管理,共享交流,才能讓企業(yè)在競爭激烈的21世紀(jì)取得先機(jī)。倉庫管理系統(tǒng)就是對貨物和信息及金
5、錢進(jìn)行規(guī)劃和實(shí)行交流控制。它將入庫、出庫、庫存形成一個統(tǒng)一的中體,使企業(yè)處于全面受控狀態(tài),壓縮投資規(guī)模,加快資金周轉(zhuǎn)。在實(shí)時(shí)反映的基礎(chǔ)上,修正企業(yè)在日常生產(chǎn)經(jīng)營過程中各個環(huán)節(jié)上的偏差,降低產(chǎn)品成本和貨物的積壓。 倉庫管理系統(tǒng)是通過入庫業(yè)務(wù)、出庫業(yè)務(wù)、實(shí)時(shí)庫存管理等功能綜合運(yùn)用的管理系統(tǒng),對貨物全程進(jìn)行有效的控制和跟蹤,實(shí)現(xiàn)完善的企業(yè)倉庫信息管理。倉庫管理系統(tǒng)的投入,將使倉庫的管理更加正規(guī)化,為產(chǎn)品的出入庫管理部門和銷售部門提供了方便,降低了倉庫的損耗。企業(yè)可以通過該系統(tǒng)對售出的產(chǎn)品進(jìn)行跟蹤服務(wù),同時(shí)避免可過去銷售人員按以往慣例親自前往用戶處去核實(shí)貨物情況的麻煩,提高了辦事小效率,節(jié)省了費(fèi)用,
6、而且還避免了不必要的業(yè)務(wù)糾紛,維護(hù)了企業(yè)長期與用戶建立的良好信譽(yù)。 第二章 項(xiàng)目需求分析 我們設(shè)計(jì)的倉庫管理系統(tǒng)主要用于對倉庫日常工作的管理,主要任務(wù)是倉庫的各種信息進(jìn)行日常管理,如查詢、修改、增加、刪除等。本系統(tǒng)實(shí)現(xiàn)了倉庫的信息化管理,完成了倉庫管理系統(tǒng)的基本功能。 該系統(tǒng)主要包括用戶登錄系統(tǒng)、出入庫管理系統(tǒng)和庫存管理系統(tǒng)三個部分,各部分主要功能如下: (1) 用戶登錄系統(tǒng):用于系統(tǒng)的登錄 (2) 出入庫管理系統(tǒng):用于產(chǎn)品信息的管理,如新增,修改。 (3) 庫存管理系統(tǒng):用于數(shù)據(jù)庫的連接,對庫內(nèi)產(chǎn)品的信息查詢,實(shí)現(xiàn)按需求查詢。 第三章 系統(tǒng)設(shè)計(jì) 3.1 設(shè)計(jì)思想 (
7、1)系統(tǒng)分成兩個主要的模塊,出入庫管理和庫存管理 (2)分層的模塊化程序設(shè)計(jì)思想,整個系統(tǒng)采用模塊化結(jié)構(gòu)設(shè)計(jì)。作為應(yīng)用程序有較強(qiáng)的可操作性和擴(kuò)展性。 (3)合理的數(shù)據(jù)流設(shè)計(jì),在應(yīng)用系統(tǒng)設(shè)計(jì)中,相對獨(dú)立的模塊間以數(shù)據(jù)流相互連接,使各模塊間的耦合性較低,方便系統(tǒng)運(yùn)行,提高系統(tǒng)安全性。 3.2程序總體設(shè)計(jì) 倉庫管理系統(tǒng) 用戶登錄 倉庫基本信息 圖3.1 倉庫管理系統(tǒng)功能結(jié)構(gòu)圖 用戶登錄 管理員登錄系統(tǒng) 圖3.2 管理員登錄功能結(jié)構(gòu)圖 倉庫基本信息 新品入庫 庫存增減 庫存數(shù)據(jù) 按需查詢 圖3.3倉庫基本功能結(jié)構(gòu)圖
8、 3.3程序詳細(xì)設(shè)計(jì) 管理員登錄主體代碼: public class DengLu extends JFrame implements ActionListener,MouseListener{ JPanel pnlMain; JLabel lbltupian,lblyonghu,lblmima,lblbiaoti; JTextField txtUserName;//文本框 JPasswordField pwdPassWord;//密碼框 JButton DengLu,TuiChu;//主鍵 Dimension deSize; Toolkit toolkit=T
9、oolkit.getDefaultToolkit(); public DengLu (){ super("倉庫管理系統(tǒng)"); pnlMain=new JPanel();//主面板 pnlMain.setLayout(null);//空布局 this.setUndecorated(true); lbltupian=new JLabel(new ImageIcon("images/tupian.jpg"));//添加圖片 lbltupian.setBounds(0, 0, 708,366);
10、 lblyonghu=new JLabel("用戶名:"); lblyonghu.setBounds(450,50,90, 20); lblmima=new JLabel("密 碼:"); lblmima.setBounds(450,100,90, 20); txtUserName=new JTextField(100); txtUserName.setBounds(500,50,150, 20); pwdPassWord=new JPasswordField(100); pwdPassWord.setBou
11、nds(500,100,150, 20); DengLu=new JButton("登錄"); DengLu.setBounds(450,140,90, 30); DengLu.addActionListener(this);//增加監(jiān)聽器 TuiChu=new JButton("退出"); TuiChu.setBounds(560,140,90, 30); TuiChu.setMnemonic('d');//設(shè)置快捷按鈕 TuiChu.addActionListener(this); //
12、字體 Font font=new Font("宋體", Font.PLAIN, 13); lblyonghu.setFont(font); lblmima.setFont(font); DengLu.setFont(font); TuiChu.setFont(font); //顏色 DengLu.setBackground(Color.CYAN); TuiChu.setBackground(Color.CYAN); pnlMain.add(lblyonghu); pnlMain.add(txtUserName);
13、 pnlMain.add(lblmima); pnlMain.add(pwdPassWord); pnlMain.add(DengLu); pnlMain.add(TuiChu); pnlMain.add(lbltupian); this.setContentPane(pnlMain); this.setVisible(true); deSize=toolkit.getScreenSize(); //獲取屏幕的大小 this.setSize(708,366); this.setLocation(deSize.width/2-this.
14、getWidth()/2, deSize.height/2-this.getHeight()/2); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String[] args) { new DengLu(); } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-gener
15、ated method stub if(e.getSource()==DengLu) { if((txtUserName.getText().equals("20150200121"))&&(pwdPassWord.getText().equals("960523"))) { new ZhuJieMian(); this.dispose();} else JOptionPane.showMessageDialog(null, "用戶名或密碼錯誤
16、,請重新輸入"); } if(e.getSource()==TuiChu)System.exit(0); } 3.4 數(shù)據(jù)庫的總體設(shè)計(jì): 數(shù)據(jù)庫中總體有一張表,是管理產(chǎn)品信息的,具體結(jié)構(gòu)如下圖所示: 設(shè)計(jì)表如下圖3.1所示: 圖3.1 數(shù)據(jù)庫的設(shè)計(jì)表 圖3.2 數(shù)據(jù)庫表的內(nèi)容(部分) 連接數(shù)據(jù)庫的代碼如下: public Connection openDB(){ try { Class.forName("co
17、m.mysql.jdbc.Driver"); Connection cn=DriverManager.getConnection("jdbc:mysql://localhost:3306/student","root" , "960914"); return cn; } catch (ClassNotFoundException e) { System.out.println("驅(qū)動加載異常!"); return null; } catch (SQLExce
18、ption e) { System.out.println("數(shù)據(jù)庫連接異常!"); return null; } } @Override public void actionPerformed(ActionEvent e) { if(e.getSource()==btnExit)this.dispose(); if(e.getSource()==btnchaxun) { try{ // 獲得連接 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver&
19、quot;); Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/student","root" , "960914"); // 建立查詢條件 String sql = "select * from kucun where bianhao='"+txtPassWord.getText()+"'"; PreparedStatement pstm =
20、 conn.prepareStatement(sql); // 執(zhí)行查詢 ResultSet rs = pstm.executeQuery(); // 計(jì)算有多少條記錄 int count = 0; while(rs.next()){ count++; } rs = pstm.executeQuery(); // 將查詢獲得的記錄數(shù)據(jù),轉(zhuǎn)換成適合生成JTable的數(shù)據(jù)形式 Object[][] info = new Object[count][6]; count = 0; while(rs.nex
21、t()){ info[count][0] = rs.getString("bianhao"); info[count][1] = rs.getString("chanpinname"); info[count][2] = rs.getString("xinghao"); info[count][3] = rs.getString("dengji"); info[count][4] = rs.getString("shuliang");
22、info[count][5] = rs.getString("danjia"); count++; } // 定義表頭 String[] title = {"編號","產(chǎn)品名","型號","等級","數(shù)量","單價(jià)"}; // 創(chuàng)建JTable this.tabDemo = new JTable(info,title); // 顯示表頭 this.jth = this.tabDemo.get
23、TableHeader(); // 將JTable加入到帶滾動條的面板中 this.scpDemo.getViewport().add(tabDemo); }catch(ClassNotFoundException cnfe){ JOptionPane.showMessageDialog(null,"數(shù)據(jù)源錯誤","錯誤",JOptionPane.ERROR_MESSAGE); }catch(SQLException sqle){ JOptionPane.showMessageDialog(null,&q
24、uot;數(shù)據(jù)操作錯誤","錯誤",JOptionPane.ERROR_MESSAGE); } } } 第四章 系統(tǒng)測試及實(shí)現(xiàn) (一)登錄界面,管理員進(jìn)行登錄操作。如圖4.1所示: 圖4.1 登錄界面 (二)主界面,管理員通過該界面進(jìn)入出入庫管理和庫存查詢。如圖4.2所示: 圖4.2 系統(tǒng)主界面 (三)出入庫界面新增產(chǎn)品,點(diǎn)擊新入按鈕,將新產(chǎn)品信息輸入后,點(diǎn)擊確定,將新產(chǎn)品信息添加到數(shù)據(jù)庫中圖4.3所示:。如 圖4.3
25、新增產(chǎn)品 (四)出入庫管理界面,點(diǎn)擊增減按鈕,在編號欄輸入編號,即可修改該產(chǎn)品的數(shù)量信息。如圖4.4所示: 圖4.4 增減庫存 (五)庫存管理界面,點(diǎn)擊顯示數(shù)據(jù)查看當(dāng)前倉庫存儲產(chǎn)品的信息。如圖4.5所示: 圖4.5 查詢庫存信息 (六)庫存管理界面,在文本框輸入要查詢產(chǎn)品的編號后,點(diǎn)擊查詢按鈕,出現(xiàn)該產(chǎn)品的基本信息。如圖4.6所示: 圖4.6 按需查詢信息 第五章 總結(jié) 經(jīng)過這學(xué)期的學(xué)習(xí),在努力了幾周之后,終于將Java倉庫管理系統(tǒng)做了出來,雖然與想象中的程序還有一定的差距,但我還是很開心能夠獨(dú)立的將它完成,在
26、這過程中,自己學(xué)到了很多,也感觸到很多。Java是本學(xué)期新開的一門課程,在學(xué)習(xí)過程中對其的感觸并不是很深刻,但是在這兩周內(nèi),對其有了更加深刻的認(rèn)識。平常在課堂的學(xué)習(xí)中都是跟著老師的腳步來敲代碼,對代碼的理解認(rèn)識都很淺,但在自己構(gòu)思自己動手的過程中,了解到了自己的不足,讓我明白了Java的學(xué)習(xí)是一個反復(fù)的過程,不斷的出現(xiàn)錯誤,不斷的找到錯誤,然后查閱資料、調(diào)試,最終讓其能夠成功的運(yùn)行。通過這幾個周的努力,倉庫管理系統(tǒng)設(shè)計(jì)完成,實(shí)現(xiàn)了系統(tǒng)的基本功能。在這個過程中,主要完成了數(shù)據(jù)庫的設(shè)計(jì)和系統(tǒng)功能的實(shí)現(xiàn)。通過該系統(tǒng)可以方便快捷的實(shí)現(xiàn)倉庫管理中的貨物登記、出庫入庫、貨物盤點(diǎn)等工作,使企業(yè)的倉庫管理井井
27、有條,為企業(yè)的健康發(fā)展創(chuàng)造良好的條件。并且在這個過程中,我對java程序設(shè)計(jì)有了進(jìn)一步的認(rèn)識,這并不是一件簡簡單單的事情,從最初的設(shè)計(jì)構(gòu)思開始,每一步都需要自己的親歷親為,首先要做的就是通過調(diào)查了解分析問題,對于接受的任務(wù)要進(jìn)行認(rèn)真的分析,不能憑自己的客觀想象進(jìn)行設(shè)計(jì),分析最后應(yīng)達(dá)到的目標(biāo),完成實(shí)際問題,否則做出來的程序?qū)]有實(shí)際運(yùn)用的價(jià)值。然后進(jìn)行算法的設(shè)計(jì)。之后便要開始編程,將算法翻譯成計(jì)算機(jī)語言。最后將程序運(yùn)行,分析結(jié)果,對程序進(jìn)行調(diào)試。 這次的編程,是第一次獨(dú)立的進(jìn)行完整設(shè)計(jì)的過程,在過程中遇到了很多的問題,最終的程序與最初的設(shè)計(jì)有很大的不同,因?yàn)榻?jīng)常會發(fā)現(xiàn)最初的設(shè)想并不適用,所以經(jīng)
28、過了幾次大的改動,所以我認(rèn)識到,Java程序并不是一步完成的,往往需要不斷的調(diào)試,不斷的改進(jìn)。在這過程中也經(jīng)常會遇到困難,但是在同學(xué)老師和網(wǎng)絡(luò)的幫助下,最終也一一的將其克服,但在今后的日子里還是需要不斷的學(xué)習(xí)新知識。有時(shí)候會忙到凌晨一二點(diǎn),看著周圍只有屏幕的亮光,雖然真的是很辛苦吧,但是很快樂,當(dāng)自己能敲出的代碼,即使做出的是做簡單的東西,可看著它從一個個代碼變成了程序,心里的那種喜悅感和成就感依舊是那么強(qiáng)烈。 附錄 : 部分重要代碼如下: 管理員登錄: import javax.swing.*; import java.awt.*; import java.awt.eve
29、nt.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; public class DengLu extends JFrame implements ActionListener,MouseListener{ JPanel pnlMain; JLabel lbltupian,lblyonghu,lblmima,lblbiaoti; JTextField txtUserName;
30、//文本框 JPasswordField pwdPassWord;//密碼框 JButton DengLu,TuiChu;//主鍵 Dimension deSize; Toolkit toolkit=Toolkit.getDefaultToolkit(); public DengLu (){ super("倉庫管理系統(tǒng)"); pnlMain=new JPanel();//主面板 pnlMain.setLayout(null); this.setUndecorated(true); lbl
31、tupian=new JLabel(new ImageIcon("images/tupian.jpg")); lbltupian.setBounds(0, 0, 708,366); lblyonghu=new JLabel("用戶名:"); lblyonghu.setBounds(450,50,90, 20); lblmima=new JLabel("密 碼:"); lblmima.setBounds(450,100,90, 20); txtUserName=new J
32、TextField(100); txtUserName.setBounds(500,50,150, 20); pwdPassWord=new JPasswordField(100); pwdPassWord.setBounds(500,100,150, 20); DengLu=new JButton("登錄"); DengLu.setBounds(450,140,90, 30); DengLu.addActionListener(this); TuiChu=new JButton("退出&quo
33、t;); TuiChu.setBounds(560,140,90, 30); TuiChu.setMnemonic('d');//設(shè)置快捷按鈕 TuiChu.addActionListener(this); //字體 Font font=new Font("宋體", Font.PLAIN, 13); lblyonghu.setFont(font); lblmima.setFont(font); DengLu.setFont(font); TuiChu.setFont(font);
34、 //顏色 DengLu.setBackground(Color.CYAN); TuiChu.setBackground(Color.CYAN); pnlMain.add(lblyonghu); pnlMain.add(txtUserName); pnlMain.add(lblmima); pnlMain.add(pwdPassWord); pnlMain.add(DengLu); pnlMain.add(TuiChu); pnlMain.add(lbltupian); this.setContentPane(p
35、nlMain); this.setVisible(true); deSize=toolkit.getScreenSize(); //獲取屏幕的大小 this.setSize(708,366); this.setLocation(deSize.width/2-this.getWidth()/2, deSize.height/2-this.getHeight()/2); this.setDefaultCloseOperation(JFrame.EXIT_ON_
36、CLOSE); } public static void main(String[] args) { new DengLu(); } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub if(e.getSource()==DengLu) { if((txtUserName.getText().equals("20150200121"))&&(pwdPassWo
37、rd.getText().equals("960914"))) { //JOptionPane.showMessageDialog(null, "用戶名和密碼正確,歡迎登陸"); new ZhuJieMian(); this.dispose();} else JOptionPane.showMessageDialog(null, "用戶名或密碼錯誤,請重新輸入"); } if(e.getSource()==TuiChu)System.ex
38、it(0); } @Override public void mouseClicked(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method
39、stub } @Override public void mousePressed(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub } } 連接數(shù)據(jù)庫并進(jìn)行修改添加: package lsg; import javax.swing.JFrame; import javax.swing.JO
40、ptionPane; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.*; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql
41、.Statement; import javax.swing.*; public class RuKu extends JFrame implements ActionListener{ JPanel pnlMain,pnlxin,pnltian; JButton xinzeng,tianjia,guanbi,queding,tuichu,queding2; JLabel biaoti1,chanpinming,bianhao,xinghao,dengji,shuliang,danjia; JLabel biaoti2,chanpinming2,bianhao2,xingh
42、ao2,dengji2,shuliang2,danjia2; JTextField chan,bian,xing,deng,shu,dan; JTextField chan2,bian2,xing2,deng2,shu2,dan2; ResultSet rs; Dimension deSize; Toolkit toolkit=Toolkit.getDefaultToolkit(); public RuKu() { super("入庫"); deSize=toolkit.getScreenSize(); p
43、nlMain=new JPanel(); pnlMain.setLayout(null);//空布局 pnltian=new JPanel(); pnltian.setLayout(null); pnlxin=new JPanel(); pnlxin.setLayout(null); xinzeng=new JButton("新入"); xinzeng.setBounds(0,0, 200, 50); xinzeng.addActionListen
44、er(this); tianjia=new JButton("增減"); tianjia.setBounds(210, 0, 200, 50); tianjia.addActionListener(this); guanbi=new JButton("關(guān)閉"); guanbi.setBounds(420, 0, 200, 50); guanbi.addActionListener(this); queding=new JButton("確定"); queding.setB
45、ounds(350, 300, 200, 50); queding.addActionListener(this); tuichu=new JButton("清空"); tuichu.setBounds(570, 300, 200, 50); tuichu.addActionListener(this); queding2=new JButton("確定"); queding2.setBounds(350, 350, 200, 50); queding2.setBackground(Color.GREEN
46、); queding2.addActionListener(this); biaoti1=new JLabel("請輸入新增產(chǎn)品的信息"); biaoti1.setBounds(450, 10, 200, 30); chanpinming=new JLabel("產(chǎn)品名"); chanpinming.setBounds(350, 50, 50, 30); chan=new JTextField(17); chan.setBounds(450, 50, 300, 30); bianhao=new JL
47、abel("編碼"); bianhao.setBounds(350,90, 50, 30); bian=new JTextField(17); bian.setBounds(450,90, 300, 30); xinghao=new JLabel("型 號"); xinghao.setBounds(350,130, 50, 30); xing=new JTextField(17); xing.setBounds(450,130, 300, 30); dengji=new JLabel("等 級
48、"); dengji.setBounds(350,170, 50, 30); deng=new JTextField(17); deng.setBounds(450,170, 300, 30); shuliang=new JLabel("數(shù) 量"); shuliang.setBounds(350,210, 50, 30); shu=new JTextField(17); shu.setBounds(450,210, 300, 30); danjia=new JLabel("單 價(jià)");
49、danjia.setBounds(350,250, 50, 30); dan=new JTextField(17); dan.setBounds(450,250, 300, 30); bianhao2=new JLabel("編碼"); bianhao2.setBounds(350, 50, 50, 30); bian2=new JTextField(17); bian2.setBounds(450, 50, 300, 30); shuliang2=new JLabel("數(shù) 量"); s
50、huliang2.setBounds(350,210, 50, 30); shu2=new JTextField(17); shu2.setBounds(450,210, 300, 30); pnlxin.add(biaoti1); pnlxin.add(chanpinming); pnlxin.add(bianhao); pnlxin.add(xinghao); pnlxin.add(dengji); pnlxin.add(shuliang); pnlxin.add(danjia); pnlxin.add(chan);
51、 pnlxin.add(bian); pnlxin.add(xing); pnlxin.add(deng); pnlxin.add(shu); pnlxin.add(dan); pnlxin.add(queding); pnlxin.add(tuichu); pnltian.add(bianhao2); pnltian.add(shuliang2); pnltian.add(bian2); pnltian.add(shu2); pnltian.add(queding2); pnlMain.add(xi
52、nzeng); pnlMain.add(tianjia); pnlMain.add(guanbi); pnlMain.add(pnlxin); pnlMain.add(pnltian); this.setContentPane(pnlMain); this.setSize(deSize.width-320,deSize.height-275); this.setLocation(310, 232); this.setUndecorated(true);//無邊化:必須在setVisible之前使用 this.
53、setVisible(true);//可視 } public static void main(String[] args) { RuKu mu=new RuKu(); mu.getUser(); } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub if(e.getSource()==xinzeng) {pnlxin.setBounds(10, 70, 1030, 400); pnltian.
54、setSize(0, 0); } if(e.getSource()==tianjia) {pnltian.setBounds(10, 70, 1030, 400); pnlxin.setSize(0, 0); } if(e.getSource()==guanbi)this.dispose(); if(e.getSource()==queding){ insertUser();} if(e.getSource()==queding2){updateUser();} } public Connection openDB(){
55、 try { Class.forName("com.mysql.jdbc.Driver"); Connection cn=DriverManager.getConnection("jdbc:mysql://localhost:3306/student","root" , "960914"); return cn; } catch (ClassNotFoundException e) { System.out.println("驅(qū)動加載異常!");
56、 return null; } catch (SQLException e) { System.out.println("數(shù)據(jù)庫連接異常!"); return null; } } public void getUser(){ try { Statement stmt=openDB().createStatement(); rs=stmt.executeQuery("select bianhao,shuliang from kucun"); } catch (SQLExce
57、ption e) { JOptionPane.showMessageDialog(null,"用戶信息獲取失敗"); } } private void insertUser() { // TODO Auto-generated method stub try { PreparedStatement psm=openDB().prepareStatement("insert into kucun(bianhao,chanpinname,xinghao,dengji,shuliang,danjia) values(?,
58、?,?,?,?,?)"); psm.setString(1,bian.getText()); psm.setString(2,chan.getText()); psm.setString(3,xing.getText()); psm.setString(4,deng.getText()); psm.setString(5,shu.getText()); psm.setString(6,dan.getText()); psm.executeUpd
59、ate(); JOptionPane.showMessageDialog(null, "用戶添加成功"); psm.close(); } catch (SQLException e) { // TODO Auto-generated catch block JOptionPane.showMessageDialog(null, "用戶添加失敗"); } } private void updateUser() { // TODO A
60、uto-generated method stub System.out.println("aaaa"); try { Statement sm=openDB().createStatement(); String strupdate="update kucun set shuliang='"+shu2.getText()+"' where bianhao='"+bian2.getText()+"'"; sm.execute(stru
61、pdate); JOptionPane.showMessageDialog(null, "用戶修改成功"); sm.close(); } catch (SQLException e) { // TODO Auto-generated catch block JOptionPane.showMessageDialog(null, "用戶更新失敗"); } } } 2016-2017學(xué)年度第一學(xué)期期末考試 《面向?qū)ο蟪绦蛟O(shè)計(jì)(Java)*》實(shí)踐考核成績報(bào)告單 排課編號:(2016-2017-1
62、)-B080204-00159-1 批閱日期: 年 月 日 姓名 班級 學(xué)號 評價(jià)項(xiàng)目 評分標(biāo)準(zhǔn) 分值 得分 備注 設(shè)計(jì)說明書書寫情況 設(shè)計(jì)說明書內(nèi)容正確、文筆流暢、概念清晰,能準(zhǔn)確表達(dá)課程設(shè)計(jì)的主要內(nèi)容20分 20 系統(tǒng)功能完成情況,至少實(shí)現(xiàn)二個完整流暢功能 未完成二個完整功能,運(yùn)行有誤,每處扣5-10分。 20 代碼規(guī)范程度 注釋使用不當(dāng),代碼縮進(jìn)等問題,酌情扣分 10 事件處理代碼的完善程度 對系統(tǒng)運(yùn)行中出現(xiàn)的問題,酌情扣分 10 異常代碼是否進(jìn)行異常處理 運(yùn)行存在異常錯誤每處扣1-2分 10 圖形用戶界面美觀程度 界面美觀、組件布局合理20分 20 作業(yè)的創(chuàng)新方面 根據(jù)作品創(chuàng)新程度,酌情扣分 10 合計(jì) 100 考核成績 任課教師簽字 復(fù)核人簽字
- 溫馨提示:
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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。