版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 面向?qū)ο笳n程設(shè)計(jì) 報(bào)告</p><p> --(題目實(shí)驗(yàn)室設(shè)備信息管理系統(tǒng))</p><p><b> 目錄</b></p><p> 1 課程設(shè)計(jì)任務(wù)和概述3</p><p> 1.1 設(shè)計(jì)目的3</p><p><b> 1.2設(shè)計(jì)意義3<
2、/b></p><p> 1.3 設(shè)計(jì)任務(wù)3</p><p> 1.4 開發(fā)環(huán)境3</p><p> 2 系統(tǒng)分析與建模4</p><p> 2.1 系統(tǒng)功能分析4</p><p> 2.2 用例圖及用例說明5</p><p> 2.2.1用戶登錄用例5</p
3、><p> 2.2.2 整體用例框圖6</p><p><b> 3 系統(tǒng)設(shè)計(jì)7</b></p><p> 3.1 系統(tǒng)類圖7</p><p> 3.2 系統(tǒng)活動(dòng)圖10</p><p> 3.2.1 用例“用戶登錄”活動(dòng)圖10</p><p> 3.2.2
4、用例“用戶登錄成功”活動(dòng)圖11</p><p> 3.3 系統(tǒng)時(shí)序圖12</p><p> 3.3.1查詢?cè)O(shè)備信息時(shí)序圖12</p><p> 3.3.2添加設(shè)備信息時(shí)序圖13</p><p> 3.3.3修改設(shè)備信息時(shí)序圖14</p><p> 3.3.4刪除設(shè)備信息時(shí)序圖14</p&g
5、t;<p><b> 4 系統(tǒng)實(shí)現(xiàn)15</b></p><p> 4.1系統(tǒng)管理員模塊15</p><p> 4.2查詢?cè)O(shè)備所有信息模塊21</p><p> 4.3添加設(shè)備信息模塊29</p><p> 4.4修改設(shè)備信息模塊31</p><p> 4.5刪除
6、設(shè)備信息模塊32</p><p><b> 5 系統(tǒng)測(cè)試34</b></p><p> 6 課程設(shè)計(jì)總結(jié)39</p><p><b> 7 參考文獻(xiàn)39</b></p><p> 實(shí)驗(yàn)室設(shè)備信息管理系統(tǒng)設(shè)計(jì)報(bào)告</p><p> 1 課程設(shè)計(jì)任務(wù)和概述<
7、;/p><p><b> 1.1 設(shè)計(jì)目的</b></p><p> “面向?qū)ο蠹夹g(shù)”是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的核心專業(yè)課,面向?qū)ο蟪绦蛟O(shè)計(jì)技術(shù)也是軟件工程師的基本技能,“面向?qū)ο笳n程設(shè)計(jì)”的目的是理解和鞏固面向?qū)ο蟪绦蛟O(shè)計(jì)的基本理論、原理和方法的重要的實(shí)踐環(huán)節(jié)。 </p><p> 本課程設(shè)計(jì)綜合應(yīng)用學(xué)生所學(xué)知識(shí),結(jié)合小型應(yīng)用系統(tǒng)的設(shè)計(jì),建立
8、面向?qū)ο蟪绦蛟O(shè)計(jì)的概念,理解和鞏固封裝、類與對(duì)象、繼承與多態(tài)、JAVA數(shù)據(jù)結(jié)構(gòu)、多線程、IO、UI設(shè)計(jì)及UML等知識(shí),為后續(xù)課程的學(xué)習(xí)打下良好的基礎(chǔ)。 </p><p><b> 1.2設(shè)計(jì)意義</b></p><p> 使用實(shí)驗(yàn)室管理系統(tǒng)使得查詢工作更系統(tǒng)化、規(guī)范化、自動(dòng)化。從而在一方面提高了管理人員的工作效率,減少了傳統(tǒng)人工管理方式所帶來的人力,物力的浪費(fèi),另
9、一方面由于本軟件具有查找方便、可靠性高、存儲(chǔ)量大等優(yōu)點(diǎn),大大地減少了系統(tǒng)的富復(fù)雜性。</p><p><b> 1.3 設(shè)計(jì)任務(wù)</b></p><p> 該系統(tǒng)主要任務(wù)是實(shí)現(xiàn)實(shí)驗(yàn)室設(shè)備基本信息的增加、刪除、修改查詢,包括設(shè)備型號(hào)、設(shè)備名稱、生產(chǎn)廠商,單價(jià)等。管理員可以根據(jù)設(shè)備的名稱、設(shè)備型號(hào)等關(guān)鍵字進(jìn)行設(shè)備信息的查詢;大大提高了管理設(shè)備的效率,實(shí)時(shí)性的觀察設(shè)備信
10、息更新。</p><p><b> 1.4 開發(fā)環(huán)境</b></p><p> 操作系統(tǒng):Windows 7 32位/64位</p><p> 軟件:eclipse 3.7</p><p> 數(shù)據(jù)庫:MySQL 5.0</p><p><b> 2 系統(tǒng)分析與建模&l
11、t;/b></p><p> 2.1 系統(tǒng)功能分析</p><p><b> 主要功能包括:</b></p><p><b> 設(shè)備添加信息:</b></p><p> 該部分功能主要是用于系統(tǒng)設(shè)備管理員輸入設(shè)備的各種信息,加強(qiáng)系統(tǒng)的可擴(kuò)展性和延續(xù)性,使系統(tǒng)信息保持更新。</p&
12、gt;<p><b> 瀏覽設(shè)備信息:</b></p><p> 瀏覽全部的設(shè)備信息,將所有的設(shè)備信息都展示出來方便用戶調(diào)用,只要適用于實(shí)驗(yàn)室管理員</p><p><b> 查詢?cè)O(shè)備信息:</b></p><p> 查詢?cè)O(shè)備信息,以及相關(guān)資料,查詢分兩種方式,一種是按設(shè)備型號(hào)查詢,另一種是按設(shè)備名稱
13、查詢。</p><p><b> 刪除設(shè)備信息:</b></p><p> 刪除設(shè)備信息功能主要用于更新設(shè)備信息數(shù)據(jù),對(duì)于不必要的信息和錯(cuò)誤的過時(shí)的信息進(jìn)行相關(guān)處理,有利于簡(jiǎn)化系統(tǒng),對(duì)于系統(tǒng)的運(yùn)行速度的提升有著良好的加速效果。</p><p><b> 修改設(shè)備信息:</b></p><p>
14、 此功能用于修改設(shè)備信息,使用權(quán)限均適用于普通用戶。進(jìn)行設(shè)備信息的相關(guān)修改對(duì)于系統(tǒng)的正常運(yùn)行有著顯著的作用。</p><p><b> 系統(tǒng)登錄:</b></p><p> 合法的用戶和系統(tǒng)的管理員才可以進(jìn)入系統(tǒng),他們具有權(quán)限不一樣,管理員可以操作該系統(tǒng)的一切功能,而用戶只能查看和瀏覽設(shè)備的信息。</p><p> 2.2 用例圖及用例
15、說明</p><p> 2.2.1用戶登錄用例</p><p> (1)用戶登錄用例描述</p><p> 用戶登錄,是本系統(tǒng)提供的一項(xiàng)基本服務(wù)。在實(shí)驗(yàn)室設(shè)備信息管理系統(tǒng)的建模過程中,將這一行為抽象為一個(gè)用例。在不考慮軟件的具體實(shí)現(xiàn)細(xì)節(jié)基礎(chǔ)上,給出如下的用例描述。</p><p> ?。?)用戶登錄用例圖</p><
16、p> 根據(jù)(1)的用例描述,畫出用戶登錄用例圖,見圖1。</p><p> 圖1用戶登錄模塊的用例圖</p><p> 用戶登錄模塊用例主要提供兩個(gè)基本功能:</p><p> ?。?)用戶通過登錄界面輸入“用戶名”和“密碼”;</p><p> ?。?)系統(tǒng)對(duì)用戶輸入的“用戶名”和“密碼”進(jìn)行驗(yàn)證,以判斷用戶身份的合法性。<
17、;/p><p> 2.2.2 整體用例框圖</p><p> 圖2設(shè)備信息系統(tǒng)的整體用例框圖</p><p><b> 3 系統(tǒng)設(shè)計(jì)</b></p><p><b> 3.1 系統(tǒng)類圖</b></p><p> (1)Device類和User類的UML圖</p&g
18、t;<p> ?。?)MainFrameUI類和LoginIU類UML圖</p><p> ?。?)QueryUI查詢類、AddDevice添加類、UpdateUI修改類的UML圖</p><p> (4)整個(gè)系統(tǒng)的UML框架圖</p><p><b> 3.2 系統(tǒng)活動(dòng)圖</b></p><p>
19、3.2.1 用例“用戶登錄”活動(dòng)圖</p><p> 用例“用戶登錄成功”活動(dòng)圖</p><p><b> 3.3 系統(tǒng)時(shí)序圖</b></p><p> 3.3.1 查詢?cè)O(shè)備信息時(shí)序圖</p><p> 3.3.2添加設(shè)備信息時(shí)序圖</p><p> 3.3.3修改設(shè)備信息時(shí)序圖<
20、/p><p> 3.3.4刪除設(shè)備信息時(shí)序圖</p><p><b> 4 系統(tǒng)實(shí)現(xiàn)</b></p><p> 4.1系統(tǒng)管理員模塊</p><p> 本模塊主要是為了往數(shù)據(jù)庫中管理設(shè)備信息記錄,以及添加新的設(shè)備信息記錄、修改需要變更的信息、刪除已經(jīng)停行的設(shè)備記錄等,對(duì)現(xiàn)有的系統(tǒng)進(jìn)行管理操作,保證實(shí)驗(yàn)室設(shè)備信息管理的
21、合理性。 </p><p><b> 詳細(xì)代碼:</b></p><p><b> (1)User類:</b></p><p> package dao;</p><p> public class User {</p><p> //1 兩個(gè)屬性&l
22、t;/p><p> private int id;</p><p> private String uname;</p><p> private String passwd;</p><p><b> //2 構(gòu)造方法</b></p><p> public User(int id, St
23、ring uname, String passwd) {</p><p><b> super();</b></p><p> this.id = id;</p><p> this.uname = uname;</p><p> this.passwd = passwd;</p><p>
24、;<b> }</b></p><p> public User(String uname, String passwd) {</p><p><b> super();</b></p><p> this.uname = uname;</p><p> this.passwd = pas
25、swd;</p><p><b> }</b></p><p> //3 get和set方法</p><p> public String getUname() {</p><p> return uname;</p><p><b> }</b></p>
26、;<p> public int getId() {</p><p> return id;</p><p><b> }</b></p><p> public void setId(int id) {</p><p> this.id = id;</p><p><
27、;b> }</b></p><p> public void setUname(String uname) {</p><p> this.uname = uname;</p><p><b> }</b></p><p> public String getPasswd() {</p&
28、gt;<p> return passwd;</p><p><b> }</b></p><p> public void setPasswd(String passwd) {</p><p> this.passwd = passwd;</p><p><b> }</b>
29、;</p><p><b> }</b></p><p> (2)界面LoginUI類</p><p> import service.IDeviceService;</p><p> import dao.User;</p><p> public class LoginUI exte
30、nds JDialog {</p><p> static final int OK=1,CANCEL=0;</p><p> private int ModalResult = -1;</p><p> private final JPanel contentPanel = new JPanel();</p><p> privat
31、e JLabel lblLogon;</p><p> private JLabel lblUserName;</p><p> private JLabel lblPassWd;</p><p> private JTextField txtUserName;</p><p> private JPasswordField txtP
32、assWd;</p><p> private JButton btnLogon;</p><p> private JButton btnCancel;</p><p><b> /**</b></p><p> * Launch the application.</p><p><
33、;b> */</b></p><p> public static void main(String[] args) {</p><p><b> try {</b></p><p> LoginUI dialog = new LoginUI();</p><p> dialog.setDef
34、aultCloseOperation(JDialog.DISPOSE_ON_CLOSE);</p><p> dialog.setVisible(true);</p><p> } catch (Exception e) {</p><p> e.printStackTrace();</p><p><b> }</b
35、></p><p><b> }</b></p><p><b> /**</b></p><p> * Create the dialog.</p><p><b> */</b></p><p> public LoginUI() {
36、</p><p><b> //設(shè)置模式對(duì)話框</b></p><p> setModal(true);</p><p> setTitle("用戶登錄");</p><p> setBounds(100, 100, 277, 189);</p><p> getCo
37、ntentPane().setLayout(new BorderLayout());</p><p> contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));</p><p> getContentPane().add(contentPanel, BorderLayout.CENTER);</p><p> c
38、ontentPanel.setLayout(null);</p><p> lblUserName = new JLabel("用戶名");</p><p> lblUserName.setBounds(27, 31, 54, 15);</p><p> contentPanel.add(lblUserName);</p>&
39、lt;p> lblPassWd = new JLabel("密碼");</p><p> lblPassWd.setBounds(27, 69, 54, 15);</p><p> contentPanel.add(lblPassWd);</p><p> txtUserName = new JTextField();</p&
40、gt;<p> txtUserName.setBounds(106, 28, 120, 21);</p><p> contentPanel.add(txtUserName);</p><p> txtUserName.setColumns(10);</p><p> txtPassWd = new JPasswordField();</
41、p><p> txtPassWd.setBounds(106, 66, 120, 21);</p><p> contentPanel.add(txtPassWd);</p><p><b> {</b></p><p> JPanel buttonPane = new JPanel();</p>&l
42、t;p> buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));</p><p> getContentPane().add(buttonPane, BorderLayout.SOUTH);</p><p> btnLogon = new JButton("登錄");</p><p&
43、gt;<b> //登錄按鈕的功能</b></p><p> btnLogon.addActionListener(new ActionListener() {</p><p> public void actionPerformed(ActionEvent arg0) {</p><p><b> //設(shè)置返回狀態(tài)碼<
44、/b></p><p> ModalResult = OK ;</p><p><b> //隱藏對(duì)話框</b></p><p> setVisible(false);</p><p><b> }</b></p><p><b> });</
45、b></p><p> btnLogon.setActionCommand("OK");</p><p> buttonPane.add(btnLogon);</p><p> getRootPane().setDefaultButton(btnLogon);</p><p> btnCancel = new
46、 JButton("取消");</p><p><b> //取消按鈕的功能</b></p><p> btnCancel.addActionListener(new ActionListener() {</p><p> public void actionPerformed(ActionEvent e) {<
47、/p><p> ModalResult = CANCEL ;</p><p> setVisible(false);</p><p><b> }</b></p><p><b> });</b></p><p> btnCancel.setActionCommand(
48、"Cancel");</p><p> buttonPane.add(btnCancel);</p><p><b> }</b></p><p><b> }</b></p><p> //獲得登錄用戶信息</p><p> public U
49、ser getUser(){</p><p> return new User(</p><p> txtUserName.getText(),</p><p> new String(txtPassWd.getPassword())</p><p><b> );</b></p><p>
50、;<b> }</b></p><p><b> /**</b></p><p> * @return the modalResult</p><p><b> * 獲取返回狀態(tài)碼</b></p><p><b> */</b></p>
51、;<p> public int getModalResult() {</p><p> return ModalResult;</p><p><b> }</b></p><p><b> //清除登錄痕跡</b></p><p> public void clear()
52、{</p><p> txtUserName.setText("");</p><p> txtPassWd.setText("");</p><p><b> }</b></p><p><b> }</b></p><p>
53、 (3)DeviceUserDao接口(考慮到有多個(gè)方法功能,我們用接口實(shí)現(xiàn)多繼承)</p><p> public interface DeviceUserDao extends IBaseDao<Device,Integer>{</p><p> //這個(gè)接口里會(huì)實(shí)現(xiàn)兩個(gè)方法 1.查找用戶名和密碼的方法 </p><p> public
54、abstract User findByNamePassword(String uname,String passwd);</p><p> // 2. 顯示用戶表的所有的值</p><p> public abstract List<User> findAll();</p><p> // 3.顯示設(shè)備查詢的所有值</p><
55、;p> public abstract List<Device> findDeviceAll();</p><p><b> }</b></p><p> (4)實(shí)現(xiàn)接口DeviceUserDao里的具體方法</p><p> public class DeviceServiceImpl implements IDe
56、viceService{</p><p> //實(shí)現(xiàn)登錄用戶功能的結(jié)果</p><p><b> @Override</b></p><p> public User findByNamePassword(String uname, String passwd){</p><p> return deviceda
57、o.findByNamePassword(uname, passwd);</p><p><b> }</b></p><p> //實(shí)現(xiàn)用戶查詢的結(jié)果</p><p><b> @Override</b></p><p> public List<User> findAll()
58、{</p><p> return devicedao.findAll();</p><p><b> }</b></p><p><b> }</b></p><p> // 下面來寫查找用戶名和密碼的方法findByNamePassword()實(shí)現(xiàn)登陸功能!</p><
59、;p><b> @Override</b></p><p> public User findByNamePassword(String uname, String passwd) {</p><p> User user = null;</p><p> Connection con = JDBCConnectionFactor
60、y.getConnection();</p><p><b> try {</b></p><p> PreparedStatement pstmt = con</p><p> .prepareStatement("select name,password from user where name=? and password
61、=?");</p><p> pstmt.setString(1, uname);</p><p> pstmt.setString(2, passwd);</p><p> ResultSet rs = pstmt.executeQuery();</p><p> if (rs.next()) {</p>&
62、lt;p> user = new User(rs.getString(1),</p><p> rs.getString(2));</p><p><b> }</b></p><p> } catch (SQLException e) {</p><p> e.printStackTrace();<
63、;/p><p> } finally {</p><p> if (con != null)</p><p><b> try {</b></p><p> con.close();</p><p> } catch (SQLException e) {</p><p&g
64、t; e.printStackTrace();</p><p><b> }</b></p><p><b> }</b></p><p> return user;</p><p><b> }</b></p><p> // 接下來我們就
65、要實(shí)現(xiàn)這個(gè)(User)表的查詢啦 和上面類似</p><p><b> @Override</b></p><p> public List<User> findAll() {</p><p> List<User> list = new ArrayList<User>();</p>&l
66、t;p> Connection conn = JDBCConnectionFactory.getConnection();</p><p><b> try {</b></p><p> Statement stmt = conn.createStatement();</p><p> String sql = "sel
67、ect id, name, password from user order by id asc";</p><p> ResultSet rs = stmt.executeQuery(sql);</p><p> while (rs.next()) {</p><p> list.add(new User(rs.getInt(1), </p
68、><p> rs.getString(2),</p><p> rs.getString(3))</p><p><b> );</b></p><p><b> }</b></p><p> } catch (SQLException e) {</p>
69、<p> // TODO Auto-generated catch block</p><p> e.printStackTrace();</p><p> } finally {</p><p> if (conn != null) {</p><p><b> try {</b></p>
70、;<p> conn.close();</p><p> } catch (SQLException e) {</p><p> // TODO Auto-generated catch block</p><p> e.printStackTrace();</p><p><b> }</b>&
71、lt;/p><p><b> }</b></p><p><b> }</b></p><p> return list;</p><p><b> }</b></p><p> 4.2查詢?cè)O(shè)備所有信息模塊</p><p>
72、 管理員可以瀏覽設(shè)備的所有信息,實(shí)時(shí)觀察設(shè)備信息的動(dòng)態(tài)性</p><p><b> 設(shè)備類</b></p><p><b> ?。―evice類)</b></p><p> package dao;</p><p> public class Device {</p><
73、p> //1 7個(gè)屬性 </p><p> private int id;</p><p> private String dno;</p><p> private String dname;</p><p> private String dproducer;</p><p> private
74、 String dprice;</p><p> private String dcount;</p><p> private String dsum;</p><p> //2 構(gòu)造方法</p><p> public Device(String dno, String dname, String dproducer, S
75、tring dprice,</p><p> String dcount, String dsum) {</p><p><b> super();</b></p><p> this.dno = dno;</p><p> this.dname = dname;</p><p> th
76、is.dproducer = dproducer;</p><p> this.dprice = dprice;</p><p> this.dcount = dcount;</p><p> this.dsum = dsum;</p><p><b> }</b></p><p> p
77、ublic Device(int id, String dno, String dname, String dproducer,</p><p> String dprice, String dcount, String dsum) {</p><p><b> super();</b></p><p> this.id = id;<
78、;/p><p> this.dno = dno;</p><p> this.dname = dname;</p><p> this.dproducer = dproducer;</p><p> this.dprice = dprice;</p><p> this.dcount = dcount;</
79、p><p> this.dsum = dsum;</p><p><b> }</b></p><p> // 3 7個(gè)set和get方法</p><p> public int getId() {</p><p> return id;</p><p><
80、b> }</b></p><p> public void setId(int id) {</p><p> this.id = id;</p><p><b> }</b></p><p> public String getDno() {</p><p> ret
81、urn dno;</p><p><b> }</b></p><p> public void setDno(String dno) {</p><p> this.dno = dno;</p><p><b> }</b></p><p> public Str
82、ing getDname() {</p><p> return dname;</p><p><b> }</b></p><p> public void setDname(String dname) {</p><p> this.dname = dname;</p><p><
83、;b> }</b></p><p> public String getDproducer() {</p><p> return dproducer;</p><p><b> }</b></p><p> public void setDproducer(String dproducer)
84、 {</p><p> this.dproducer = dproducer;</p><p><b> }</b></p><p> public String getDprice() {</p><p> return dprice;</p><p><b> }</
85、b></p><p> public void setDprice(String dprice) {</p><p> this.dprice = dprice;</p><p><b> }</b></p><p> public String getDcount() {</p><p
86、> return dcount;</p><p><b> }</b></p><p> public void setDcount(String dcount) {</p><p> this.dcount = dcount;</p><p><b> }</b></p>
87、;<p> public String getDsum() {</p><p> return dsum;</p><p><b> }</b></p><p> public void setDsum(String dsum) {</p><p> this.dsum = dsum;</p
88、><p><b> }</b></p><p><b> }</b></p><p> ?。?)IDeviceService設(shè)備接口類(根據(jù)設(shè)計(jì)模式直接調(diào)用接口就行)</p><p> 【考慮到多個(gè)方法,這里還是選用接口,實(shí)現(xiàn)多繼承完成具體功能】</p><p> pub
89、lic interface IDeviceService {</p><p> public void setDevicedao(deviceDaoImpl devicedao);</p><p> public List<User> findAll();</p><p> public User findByNamePassword(String
90、 uname, String passwd);</p><p> public List<Device> findDeviceAll();</p><p> public boolean delete(Integer id);</p><p> public boolean update(Device device);</p><
91、;p> public Device findById(Integer id);</p><p> public boolean insert(Device device);</p><p><b> }</b></p><p> (3)實(shí)現(xiàn)接口(DeviceServiceImpl)的具體方法</p><p&g
92、t; package service;</p><p> import java.util.List;</p><p> import dao.Device;</p><p> import dao.User;</p><p> import dao.deviceDaoImpl;</p><p> publ
93、ic class DeviceServiceImpl implements IDeviceService{</p><p> //定義一個(gè)具體方法的類的一個(gè)</p><p> private deviceDaoImpl devicedao;</p><p><b> @Override</b></p><p>
94、public void setDevicedao(deviceDaoImpl devicedao) {</p><p> this.devicedao = devicedao;</p><p><b> }</b></p><p> //返回所有查詢的結(jié)果</p><p><b> @Override&
95、lt;/b></p><p> public List<Device> findDeviceAll(){</p><p> return devicedao.findDeviceAll();</p><p><b> }</b></p><p><b> }</b><
96、/p><p><b> (4)具體的方法</b></p><p> //這是查詢所有設(shè)備信息的方法</p><p><b> @Override</b></p><p> public List<Device> findDeviceAll() {</p><p&g
97、t; List<Device> list = new ArrayList<Device>();</p><p> Connection conn = JDBCConnectionFactory.getConnection();</p><p><b> try {</b></p><p> Statement s
98、tmt = conn.createStatement();</p><p> String sql = "select id,D_no,D_name,D_producer,D_price,D_count,D_sum from euipinfo order by id asc";</p><p> ResultSet rs = stmt.executeQuery(s
99、ql);</p><p> while(rs.next()){</p><p> list.add(new Device(rs.getInt(1),</p><p> rs.getString(2), </p><p> rs.getString(3), </p><p> rs.getString(4),&
100、lt;/p><p> rs.getString(5), </p><p> rs.getString(6), </p><p> rs.getString(7)</p><p><b> ));</b></p><p><b> }</b></p><
101、;p> } catch (SQLException e) {</p><p> // TODO Auto-generated catch block</p><p> e.printStackTrace();</p><p><b> }finally{</b></p><p> if(conn != n
102、ull){</p><p><b> try {</b></p><p> conn.close();</p><p> } catch (SQLException e) {</p><p> // TODO Auto-generated catch block</p><p> e.p
103、rintStackTrace();</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> return list;</p><p><b> }</b
104、></p><p><b> (4)界面UI</b></p><p> package SourceCode;</p><p> //import java.awt.event.*;</p><p> import javax.swing.*;</p><p> import ja
105、vax.swing.table.DefaultTableModel;</p><p> import java.awt.*;</p><p> import java.awt.event.ActionEvent;</p><p> import java.awt.event.ActionListener;</p><p> impor
106、t java.io.File;</p><p> import java.io.IOException;</p><p> import java.util.*;</p><p> import java.sql.*;</p><p> class BrowerDeviceFrame implements ActionListener
107、 {</p><p><b> JFrame f;</b></p><p> Container cp;</p><p> JPanel jpS, jpanelWest;</p><p> JButton jbt1, jbt2, input;</p><p> static JButto
108、n output;</p><p> JLabel label, L;</p><p> static JTable table;</p><p> Object columnName[] = { "設(shè)備名稱", "型號(hào)", "生產(chǎn)廠家", "單價(jià)", "數(shù)量"
109、, "金額" };</p><p> Object ar[][] = new Object[1000][6];</p><p> String sno;</p><p> String count = "1000";</p><p> BrowerDeviceFrame() {</p>
110、;<p> f = new JFrame("預(yù)覽儀器設(shè)備");</p><p> cp = f.getContentPane();</p><p> jpS = new JPanel();</p><p> jpanelWest = new JPanel();</p><p> jbt1 = new
111、 JButton("確定");</p><p> input = new JButton("導(dǎo)入");</p><p> output = new JButton("導(dǎo)出");</p><p> jbt1.setBackground(Color.lightGray);</p><p
112、> jbt2 = new JButton("返回");</p><p> jbt2.setBackground(Color.lightGray);</p><p> label = new JLabel(</p><p> "<html><font size='5'>&nbs
113、p; "</p><p> + "預(yù)覽設(shè)備<br><hr>以下是設(shè)備的所
114、有信息</font>",</p><p> SwingConstants.CENTER);</p><p> label.setForeground(Color.black);</p><p> L = new JLabel("實(shí)驗(yàn)室現(xiàn)在共有設(shè)備" + count + "臺(tái)");</p>
115、<p> table = new JTable(ar, columnName);</p><p> JScrollPane scrollpane = new JScrollPane(table);</p><p> jpS.add(jbt1);</p><p> jpS.add(jbt2);</p><p> //
116、jpS.add(input);</p><p> //jpS.add(output);</p><p> JPanel jpanel = new JPanel();</p><p> jpanel.add(label);</p><p> JPanel pp4 = new JPanel();</p><p>
117、; JPanel jpE = new JPanel();</p><p> cp.add(jpanel, "North");</p><p> JPanel jp = new JPanel();</p><p> JPanel p = new JPanel();// 用來放兩個(gè)表</p><p> p.setLa
118、yout(new BorderLayout());</p><p> p.add(L, "North");</p><p> p.add(scrollpane);</p><p> cp.add(pp4, "West");</p><p> cp.add(p, "Center"
119、;);</p><p> cp.add(jpS, "South");</p><p> cp.add(jpE, "East");</p><p> jpanel.setBackground(Color.lightGray);</p><p> jpS.setBackground(Color.li
120、ghtGray);</p><p> jpanelWest.setBackground(Color.lightGray);</p><p> f.setSize(1000, 600);</p><p> f.setVisible(true);</p><p> jbt1.addActionListener(this);// 注冊(cè)監(jiān)聽器
121、</p><p> jbt2.addActionListener(this);</p><p> input.addActionListener(this);</p><p><b> }</b></p><p> int i = 0;</p><p> public void show
122、Record() {</p><p> while (i >= 0) {</p><p> ar[i][0] = "";</p><p> ar[i][1] = "";</p><p> ar[i][2] = "";</p><p> ar[i
123、][3] = "";</p><p> ar[i][4] = "";</p><p> ar[i][5] = "";</p><p><b> i--;</b></p><p><b> }</b></p><p
124、><b> i = 0;</b></p><p><b> try {</b></p><p> Class.forName("com.mysql.jdbc.Driver").newInstance();</p><p> } catch (Exception e) {</p>
125、<p> e.printStackTrace();</p><p><b> }</b></p><p><b> try {</b></p><p> Connection con = DriverManager</p><p> .getConnection("
126、jdbc:mysql://localhost:3306/Device?user=root&password=");</p><p> String s = "select * from device ";</p><p> Statement sql = con.createStatement();</p><p> Re
127、sultSet rs = sql.executeQuery(s);</p><p> while (rs.next()) {</p><p> String dname=rs.getString(1);</p><p> String dno=rs.getString(2);</p><p> String dproducer=rs.
128、getString(3);</p><p> String dprice=rs.getString(4);</p><p> String dcount=rs.getString(5);</p><p> String dsum=rs.getString(6);</p><p> ar[i][0]=dname;</p>
129、<p> ar[i][1]=dno;</p><p> ar[i][2]=dproducer;</p><p> ar[i][3]=dprice;</p><p> ar[i][4]=dcount;</p><p> ar[i][5]=dsum;</p><p><b> i++;<
130、;/b></p><p><b> }</b></p><p> count = "" + i + "";</p><p> L.setText("實(shí)驗(yàn)室現(xiàn)在共有設(shè)備" + count + "臺(tái)");</p><p> f.re
131、paint();</p><p> con.close();</p><p> } catch (SQLException g) {</p><p> System.out.println(g.getErrorCode());</p><p> System.out.println(g.getMessage());</p>
132、<p><b> }</b></p><p><b> }</b></p><p> public void actionPerformed(ActionEvent e) {</p><p> String cmd = e.getActionCommand();</p><p>
133、; if (cmd.equals("確定")) {</p><p><b> f.hide();</b></p><p><b> }</b></p><p> if (cmd.equals("返回")) {</p><p><b> f.
134、hide();</b></p><p><b> }</b></p><p> if (cmd.equals("導(dǎo)出")) {</p><p><b> }</b></p><p><b> }</b></p><p&
135、gt; public static void main(String[] arg) {</p><p> BrowerDeviceFrame a = new BrowerDeviceFrame();</p><p> a.showRecord();</p><p><b> }</b></p><p><b
136、> }</b></p><p> 4.3添加設(shè)備信息模塊</p><p> 用戶可以添加設(shè)備信息,實(shí)現(xiàn)設(shè)備資源的管理</p><p><b> 主要詳細(xì)代碼:</b></p><p> (1)IDeviceService接口</p><p> public inter
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 面向?qū)ο笳n程設(shè)計(jì)--職工信息管理系統(tǒng)
- 實(shí)驗(yàn)室設(shè)備管理系統(tǒng)課程設(shè)計(jì)
- 實(shí)驗(yàn)室設(shè)備管理系統(tǒng)課程設(shè)計(jì)
- 面向?qū)ο骳++課程設(shè)計(jì)--學(xué)生信息管理系統(tǒng)
- javaee課程設(shè)計(jì)--實(shí)驗(yàn)室設(shè)備管理系統(tǒng)
- 實(shí)驗(yàn)室設(shè)備管理系統(tǒng)(課程設(shè)計(jì)報(bào)告)
- 管理信息系統(tǒng)課程設(shè)計(jì)--實(shí)驗(yàn)室設(shè)備管理信息系統(tǒng)
- 個(gè)人課程設(shè)計(jì)報(bào)告—實(shí)驗(yàn)室設(shè)備管理系統(tǒng)
- c++課程設(shè)計(jì)---實(shí)驗(yàn)室設(shè)備管理系統(tǒng)
- 面向?qū)ο笳n程設(shè)計(jì)---用java開發(fā)的學(xué)生信息管理系統(tǒng)
- 實(shí)驗(yàn)室信息管理系統(tǒng)(lims)
- 《面向?qū)ο蟪绦蛟O(shè)計(jì)與java》課程設(shè)計(jì)--學(xué)生信息管理系統(tǒng)
- 《面向?qū)ο蟪绦蛟O(shè)計(jì)與java》課程設(shè)計(jì) 學(xué)生信息管理系統(tǒng)
- php課程設(shè)計(jì)——實(shí)驗(yàn)室管理系統(tǒng)
- 醫(yī)學(xué)實(shí)驗(yàn)室信息管理系統(tǒng)設(shè)計(jì).pdf
- 軟件工程課程設(shè)計(jì)實(shí)驗(yàn)室設(shè)備管理系統(tǒng)
- 實(shí)驗(yàn)室設(shè)備管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計(jì)
- 《c++面向?qū)ο蟪绦蛟O(shè)計(jì)》課程設(shè)計(jì)——職工信息管理系統(tǒng)
- 《面向?qū)ο蟪绦蛟O(shè)計(jì)》課程設(shè)計(jì)報(bào)告---圖書信息管理系統(tǒng)
- 《實(shí)驗(yàn)室預(yù)約管理信息系統(tǒng)》課程設(shè)計(jì)報(bào)告
評(píng)論
0/150
提交評(píng)論