版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、目 錄一、系統(tǒng)設計:.2二、數(shù)據(jù)庫設計:. 3三、系統(tǒng)實現(xiàn):.4四、心得體會: .20高校教材管理系統(tǒng)一. 系統(tǒng)設計:1.1設計目標:高校教材管理系統(tǒng)設計目標是實現(xiàn)教材信息的動態(tài)管,包括教材的征訂,入庫和出庫信息的添加,修改和刪除;對于管理員,實現(xiàn)不同的管理員,有不同的權限。一般管理僅有查看信息和修改自己密碼的權利。特殊管理員具有添加、刪除用戶和其它一切權力。1.2總體設計:根據(jù)系統(tǒng)設計目標,高校教材管理系統(tǒng)由以下4大模塊組成,分別是:1.用戶管理:實現(xiàn)對用戶的增加,刪除和用戶修改密碼;2.教材信息管理:包括對教材信息的添加,刪除,修改和查看功能。3.庫存管理:分為教材出庫,入庫和查看庫存信息
2、。1.3詳細設計:(由于本人只實現(xiàn)教材信息管理,教材庫存管理,登陸模塊,別的模塊不再包括在內) 高校教材管理系統(tǒng)管理系統(tǒng)教材信息管理教材庫存管理登 錄添加教材信息修改教材信息查看教材信息教材入庫管理教材出庫管理查看庫存信息系統(tǒng)功能模塊圖1. 教材信息管理包括,添加教材信息,包括教材編號、條形碼、教材名稱、ISBN、出版社、出版時間、定價、作者,可以修改以上信息。在查看教材信息時提供了多種查詢方式:可按教材編號,教材名稱,條形碼,作者查詢。還可以查看全部信息。2. 教材庫存信息管理包括,將新到的教材的信息錄入到數(shù)據(jù)庫中,包括入庫單號、入庫日期、教材編號、教材名稱、單擊、適合系別、入庫數(shù)量、經手人
3、,可以入庫在教材信息管理進一步更新教材的詳細信息。出庫后更新庫存信息。查看庫存信息中也提供了多種查詢方式:有教材編號,教材名稱,條形碼,作者,全部。3. 登錄主要是對系統(tǒng)管理員和身份進行驗證,同時用管理的權限記錄。二、數(shù)據(jù)庫設計:3.1 數(shù)據(jù)結構(本人實現(xiàn),Booksinfo,Instockinfo,Instock,Outstock ,User)Booksinfo(教材信息)=組成: 教材編號、條形碼、教材名稱、ISBN、出版社、出版時間、定價、作者、現(xiàn)有庫存Instockinfo(入庫信息)=組成:教材編號、條形碼、教材名稱、ISBN、出版社、出版時間、定價、作者、適合系別、現(xiàn)有庫存Inst
4、ock(入庫)=組成: 入庫單號、入庫日期、教材編號、教材名稱、單擊、適合系別、入庫數(shù)量、經手人 Outstock(出庫)=組成:出庫單號、出庫日期、教材編號、教材名稱、適合系別、出庫數(shù)量、單價、經手人 Order(征訂單)=組成:征訂單號、征訂教材編號、征訂教材名稱、征訂數(shù)量、單價、征訂部門、征訂日期、適合專業(yè) User(用戶)=組成:用戶ID、密碼、用戶權限booksinfoinstockOutstockInstockinfoUser3.2用戶登錄模塊設計與實現(xiàn)設計思路:為了檢驗登錄用戶是否是一個合法用戶,當用戶輸入用戶名和密碼后,需要查詢數(shù)據(jù)庫以便驗證該用戶是否為非法用戶。實現(xiàn)功能:用戶
5、可以從登陸界面進入到教材信息管理系統(tǒng)界面,然后進行一些操作。三、系統(tǒng)實現(xiàn)(附效果圖和主要代碼)3.3.0 databasepackage UI;import java.sql.*;import java.util.logging.Level;import java.util.logging.Logger;import javax.swing.JOptionPane;public class database static Connection conn = null; public static void getCommection() try Class.forName("org.
6、gjt.mm.mysql.Driver"); conn = DriverManager.getConnection("jdbc:mysql:/localhost/books", "root", "935216"); catch (Exception e) public static ResultSet sqlExecut (String sql )throws Exception ResultSet resultSet=null; Statement st=conn.createStatement(); resultSet
7、= st.executeQuery(sql); return resultSet;public static int updateExecut(String sql ) int nI=0; try Statement st=conn.createStatement(); nI= st.executeUpdate(sql); catch (Exception e) return nI; public static void closConnection() try conn.close(); catch (Exception e) 3.3.1LoginDimension ds=new Dimen
8、sion(249, 320); private String userPower;public void denglu() String psw = null; boolean flag = false; if (jTextField1.getText() = null | jTextField1.getText().equals("") JOptionPane.showMessageDialog(this, "請輸入用戶ID", "提示", JOptionPane.OK_OPTION); else if (jField2.getTe
9、xt() = null | jField2.getText().equals("") JOptionPane.showMessageDialog(this, "請輸入密碼", "提示", JOptionPane.OK_OPTION); else database.getCommection(); String sql="select 密碼,用戶權限 from user where 用戶ID='"+jTextField1.getText().trim()+"'" try Resul
10、tSet rs=database.sqlExecut(sql); while(rs.next() flag=true; psw=rs.getString("密碼"); userPower=rs.getString("用戶權限"); System.out.println(userPower); if(flag) if(jField2.getText().trim().equals(psw.trim() MainFrame.loadFrame(userPower); this.dispose(); else JOptionPane.showMessageDi
11、alog(this, "密碼錯誤", "提示", JOptionPane.OK_OPTION); else JOptionPane.showMessageDialog(this, "無此用戶", "提示", JOptionPane.OK_OPTION); catch (Exception ex) ex.printStackTrace(); Override public void actionPerformed(ActionEvent e) if (e.getSource() = jButton1) denglu(
12、); else if (e.getSource() = jButton1) database.closConnection(); System.exit(0); public void keyTyped(KeyEvent e) public void keyPressed(KeyEvent ke) int key = ke.getKeyCode(); if (key = KeyEvent.VK_ENTER) if (ke.getSource() = jTextField1) jField2.requestFocus(true); if (jField2.getPassword().length
13、 > 0) denglu(); else if (key = KeyEvent.VK_ESCAPE) database.closConnection(); System.exit(0); 3.3.2MainFramepublic class MainFrame extends javax.swing.JFrame implements ActionListener public MainFrame(String s) initComponents(); this.setVisible(true); this.setLocationRelativeTo(null); jMenuItem1.
14、addActionListener(this); jMenuItem2.addActionListener(this); jMenuItem3.addActionListener(this); jMenuItem4.addActionListener(this); jMenuItem5.addActionListener(this); jMenuItem6.addActionListener(this); jMenuItem7.addActionListener(this); jMenuItem8.addActionListener(this); jMenuItem9.addActionLis
15、tener(this); jMenuItem10.addActionListener(this); jMenuItem11.addActionListener(this); jMenuItem12.addActionListener(this); jMenuItem13.addActionListener(this); jMenu8.addActionListener(this); this.setBackground(Color.magenta); if(s.trim().equals("1") jMenuItem1.setEnabled(false); jMenuIte
16、m2.setEnabled(false); jMenuItem3.setEnabled(false); jMenuItem4.setEnabled(false); jMenuItem5.setEnabled(false); jMenuItem6.setEnabled(false); jMenuItem8.setEnabled(false); jMenuItem9.setEnabled(false); public static void loadFrame(String str ) new MainFrame(str); / Variables declaration - do not mod
17、ify private javax.swing.JLabel jLabel1; private javax.swing.JMenu jMenu1; private javax.swing.JMenu jMenu2; private javax.swing.JMenu jMenu3; private javax.swing.JMenu jMenu6; private javax.swing.JMenu jMenu7; private javax.swing.JMenu jMenu8; private javax.swing.JMenuBar jMenuBar1; private javax.sw
18、ing.JMenuItem jMenuItem1; private javax.swing.JMenuItem jMenuItem10; private javax.swing.JMenuItem jMenuItem11; private javax.swing.JMenuItem jMenuItem12; private javax.swing.JMenuItem jMenuItem13; private javax.swing.JMenuItem jMenuItem2; private javax.swing.JMenuItem jMenuItem3; private javax.swin
19、g.JMenuItem jMenuItem4; private javax.swing.JMenuItem jMenuItem5; private javax.swing.JMenuItem jMenuItem6; private javax.swing.JMenuItem jMenuItem7; private javax.swing.JMenuItem jMenuItem8; private javax.swing.JMenuItem jMenuItem9; private javax.swing.JPanel jPanel1; / End of variables declaration
20、 public void actionPerformed(ActionEvent e) if(e.getSource()=jMenuItem1) addBook.loadFrame(); else if(e.getSource()=jMenuItem2) updateBook.loadFrame(); else if(e.getSource()=jMenuItem11) SelectBook.loadFrame(); else if(e.getSource()=jMenuItem3) addinstock.loadFrame(); else if(e.getSource()=jMenuItem
21、4) outinstock.loadFrame(); else if(e.getSource()=jMenuItem10) selstock.loadFrame(); else if(e.getSource()=jMenuItem5) addorder.loadFrame(); else if(e.getSource()=jMenuItem6) updateorder.loadFrame(); else if(e.getSource()=jMenuItem7) selorder.loadFrame(); else if(e.getSource()=jMenuItem8) addUser.loa
22、dFrame(); else if(e.getSource()=jMenuItem9) delUser.loadFrame(); else if(e.getSource()=jMenuItem12) updatePswd.loadFrame(); else if(e.getSource()=jMenuItem13) About.loadFrame(); 3.3.3addbookpublic void actionPerformed(ActionEvent e) int nI=0; if(e.getSource()=jButton1) if (jTextField1.getText() = nu
23、ll | jTextField1.getText().equals("") JOptionPane.showMessageDialog(this, "圖書編號不能為空", "提示", JOptionPane.OK_OPTION); else try database.getCommection(); nI=database.updateExecut(getSql(); if(nI=1) JOptionPane.showMessageDialog(this, "添加成功!", "提示", JOpt
24、ionPane.OK_OPTION); else if(nI=0) JOptionPane.showMessageDialog(this, "添加失敗,已存在要插入的教材編號!", "提示", JOptionPane.OK_OPTION); catch (Exception e2) JOptionPane.showMessageDialog(this, e2.getMessage(), "提示", JOptionPane.OK_OPTION); finally try database.closConnection(); catch
25、(Exception e3) e3.printStackTrace(); if(e.getSource()=jButton2) try database.closConnection(); catch (Exception ex) ex.printStackTrace(); finally this.dispose(); public String getSql() String str1 = jTextField1.getText().trim(); String str2 = jTextField2.getText().trim(); String str3 = jTextField3.g
26、etText().trim(); String str4 = jTextField4.getText().trim(); String str5 = jTextField5.getText().trim(); String str6 = jTextField6.getText().trim(); String str7 = jTextField7.getText().trim(); String str8 = jTextField8.getText().trim(); String sql = "insert into booksinfo(bookNo,barcode,bookNam
27、e,ISBN,publisher,publisheTime,price,author)" sql += "values('" + str1 + "','" + str2 + "','" + str3 + "','" + str4 + "','" + str5 + "','" + str6 + "','" + str7 + "'
28、,'" + str8 + "')" return sql; 3.3.4updatebookpublic void actionPerformed(ActionEvent e) if (e.getSource() = jButton1) if (jTextField9.getText() = null | jTextField9.getText().equals("") JOptionPane.showMessageDialog(this, "請輸入教材編號", "提示", JOptionP
29、ane.OK_OPTION); else String sql="select * from booksinfo where 教材編號='"+jTextField9.getText().trim()+"'" database.getCommection(); try ResultSet rs=database.sqlExecut(sql); while(rs.next() jTextField1.setText(rs.getString(1); jTextField2.setText(rs.getString(2); jTextField
30、3.setText(rs.getString(3); jTextField4.setText(rs.getString(4); jTextField5.setText(rs.getString(5); jTextField6.setText(rs.getString(6); jTextField7.setText(rs.getString(7); jTextField8.setText(rs.getString(8); catch(Exception e1) e1.printStackTrace(); else if(e.getSource() = jButton2) database.get
31、Commection(); String sql ="update booksinfo set 條形碼='"+jTextField2.getText().trim()+"', 教材名稱='"+jTextField3.getText().trim()+"',ISBN='"+jTextField4.getText().trim()+"'," sql+="出版社='"+jTextField5.getText().trim()+"'
32、;,出版時間='"+jTextField6.getText().trim()+"',作者='"+jTextField8.getText().trim()+"',定價='"+Double.parseDouble(jTextField7.getText().trim()+"' where 教材編號='"+jTextField9.getText().trim()+"'" int i=database.updateExecut(sql); if(i!
33、=0) JOptionPane.showMessageDialog(this, "修改成功!", "提示", JOptionPane.OK_OPTION); else JOptionPane.showMessageDialog(this, "修改失??!", "提示", JOptionPane.OK_OPTION); else if(e.getSource() = jButton4) if (jTextField9.getText() = null | jTextField9.getText().equals(&qu
34、ot;") JOptionPane.showMessageDialog(this, "請輸入教材編號", "提示", JOptionPane.OK_OPTION); else int YES_OPTION=0; String sql="delete from booksinfo where 教材編號='"+jTextField9.getText().trim()+"'" database.getCommection(); YES_OPTION=(JOptionPane.showConfir
35、mDialog(this, "確定要刪除數(shù)據(jù)嗎?", "提示", JOptionPane.YES_NO_OPTION); if(YES_OPTION=0) int i=database.updateExecut(sql); if(i!=0) JOptionPane.showMessageDialog(this, "刪除成功!", "提示", JOptionPane.OK_OPTION); else JOptionPane.showMessageDialog(this, "刪除失?。?quot;, &quo
36、t;提示", JOptionPane.OK_OPTION); else return; else if (e.getSource() = jButton3) this.dispose(); try database.closConnection(); catch (Exception ex) ex.printStackTrace(); 3.3.5selbookprivate String str="教材編號" private String sqlStr; Override public void actionPerformed(ActionEvent e) if(
37、e.getSource()=jButton1&&(jTextField1.getText() != null &&!(jTextField1.getText().equals("")|str.equals("全部") if(str.equals("全部") sqlStr ="select * from booksinfo" else sqlStr ="select * from booksinfo where "+str+"='"+jT
38、extField1.getText().trim()+"'" database.getCommection(); try ResultSet rs =database.sqlExecut(sqlStr); java.sql.ResultSetMetaData rsmd=rs.getMetaData(); int colount=rsmd.getColumnCount(); Vector colo=new Vector(); for (int i = 1; i <=colount; i+) colo.add(rsmd.getColumnName(i); Vect
39、or data =new Vector(); while (rs.next() Vector rowv= new Vector(); for (int i = 1; i <=colount; i+) rowv.add(rs.getString(i); data.add(rowv); DefaultTableModel dtm=new DefaultTableModel(data,colo); TableRowSorter sorter=new TableRowSorter(dtm); jTable1.setRowSorter(sorter); jTable1.setModel(dtm);
40、 catch (Exception ex) ex.printStackTrace(); finally database.closConnection(); else JOptionPane.showMessageDialog(this, "請輸入限定值", "提示", JOptionPane.OK_OPTION); Override public void itemStateChanged(ItemEvent e) str =(String)jComboBox1.getSelectedItem(); jTextField1.setText("
41、"); 3.3.6addinstockpublic void actionPerformed(ActionEvent e) int nI=0; if(e.getSource()=jButton1) if (jTextField1.getText() = null | jTextField1.getText().equals("") JOptionPane.showMessageDialog(this, "入庫單號不能為空", "提示", JOptionPane.OK_OPTION); else try database.ge
42、tCommection(); database.updateExecut("update instockinfo set 現(xiàn)有庫存=現(xiàn)有庫存+'"+Integer.parseInt(jTextField7.getText().trim()+"' where 教材編號='"+jTextField3.getText().trim()+"'"); nI=database.updateExecut(getSql(); if(nI=1) JOptionPane.showMessageDialog(this, &q
43、uot;入庫成功!", "提示", JOptionPane.OK_OPTION); else if(nI=0) JOptionPane.showMessageDialog(this, "入庫失敗,已存在要添加的入庫單號!", "提示", JOptionPane.OK_OPTION); catch (Exception e2) JOptionPane.showMessageDialog(this, e2.getMessage(), "提示", JOptionPane.OK_OPTION); e2.print
44、StackTrace(); finally try database.closConnection(); catch (Exception e3) e3.printStackTrace(); if(e.getSource()=jButton2) try database.closConnection(); catch (Exception ex) ex.printStackTrace(); finally this.dispose(); public String getSql() String str1 = jTextField1.getText().trim(); String str2 = jTextField2.getText().trim(); String str3 = jTextField3.getText().trim(); String str4 = jTextField4.getText().trim(); String str5 = jTextField5.getText().trim(); String str6 = jTextField6.getText().trim(); String str7
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 臨街商鋪出租合同范本(2024版)
- 二零二五年度化肥電商合作合同范本-網(wǎng)絡農業(yè)銷售3篇
- 2024年長春信息技術職業(yè)學院高職單招職業(yè)適應性測試歷年參考題庫含答案解析
- 2025年人教新課標八年級科學下冊階段測試試卷含答案
- 新蘇教版一年級數(shù)學下冊綜合實踐活動1《抓抓數(shù)數(shù)》教案
- 新蘇教版一年級數(shù)學下冊第三單元第2課時《數(shù)據(jù)分類(2)》教案
- 2025年華東師大版八年級科學下冊月考試卷
- 2025年滬科版必修2物理下冊階段測試試卷含答案
- 2025-2030年中國冷凍食品行業(yè)市場供需現(xiàn)狀及投資發(fā)展規(guī)劃研究報告
- 2025-2030年中國絲襪制造行業(yè)運行狀況及發(fā)展戰(zhàn)略決策報告
- 2025年中國華能集團有限公司招聘筆試參考題庫含答案解析
- 光伏安裝施工合同范本
- 2025中考數(shù)學考點題型歸納(幾何證明大題)
- 2024-2025學年度第一學期二年級數(shù)學寒假作業(yè)有答案(共20天)
- 2024年質量管理考核辦法及實施細則(3篇)
- 廣東省佛山市2023-2024學年高一上學期期末考試物理試題(含答案)
- 人教版九年級上冊數(shù)學期末考試試卷及答案解析
- 公司轉讓協(xié)議書的模板8篇
- 2024年城市建設和環(huán)境提升重點工程項目計劃表
- 醫(yī)共體的數(shù)字化轉型:某縣域醫(yī)共體整體規(guī)劃建設方案
- 中國詩詞線索題
評論
0/150
提交評論