版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目 录一、系统设计:.2二、数据库设计:. 3三、系统实现:.4四、心得体会: .20高校教材管理系统一. 系统设计:1.1设计目标:高校教材管理系统设计目标是实现教材信息的动态管,包括教材的征订,入库和出库信息的添加,修改和删除;对于管理员,实现不同的管理员,有不同的权限。一般管理仅有查看信息和修改自己密码的权利。特殊管理员具有添加、删除用户和其它一切权力。1.2总体设计:根据系统设计目标,高校教材管理系统由以下4大模块组成,分别是:1.用户管理:实现对用户的增加,删除和用户修改密码;2.教材信息管理:包括对教材信息的添加,删除,修改和查看功能。3.库存管理:分为教材出库,入库和查看库存信息
2、。1.3详细设计:(由于本人只实现教材信息管理,教材库存管理,登陆模块,别的模块不再包括在内) 高校教材管理系统管理系统教材信息管理教材库存管理登 录添加教材信息修改教材信息查看教材信息教材入库管理教材出库管理查看库存信息系统功能模块图1. 教材信息管理包括,添加教材信息,包括教材编号、条形码、教材名称、ISBN、出版社、出版时间、定价、作者,可以修改以上信息。在查看教材信息时提供了多种查询方式:可按教材编号,教材名称,条形码,作者查询。还可以查看全部信息。2. 教材库存信息管理包括,将新到的教材的信息录入到数据库中,包括入库单号、入库日期、教材编号、教材名称、单击、适合系别、入库数量、经手人
3、,可以入库在教材信息管理进一步更新教材的详细信息。出库后更新库存信息。查看库存信息中也提供了多种查询方式:有教材编号,教材名称,条形码,作者,全部。3. 登录主要是对系统管理员和身份进行验证,同时用管理的权限记录。二、数据库设计:3.1 数据结构(本人实现,Booksinfo,Instockinfo,Instock,Outstock ,User)Booksinfo(教材信息)=组成: 教材编号、条形码、教材名称、ISBN、出版社、出版时间、定价、作者、现有库存Instockinfo(入库信息)=组成:教材编号、条形码、教材名称、ISBN、出版社、出版时间、定价、作者、适合系别、现有库存Inst
4、ock(入库)=组成: 入库单号、入库日期、教材编号、教材名称、单击、适合系别、入库数量、经手人 Outstock(出库)=组成:出库单号、出库日期、教材编号、教材名称、适合系别、出库数量、单价、经手人 Order(征订单)=组成:征订单号、征订教材编号、征订教材名称、征订数量、单价、征订部门、征订日期、适合专业 User(用户)=组成:用户ID、密码、用户权限booksinfoinstockOutstockInstockinfoUser3.2用户登录模块设计与实现设计思路:为了检验登录用户是否是一个合法用户,当用户输入用户名和密码后,需要查询数据库以便验证该用户是否为非法用户。实现功能:用户
5、可以从登陆界面进入到教材信息管理系统界面,然后进行一些操作。三、系统实现(附效果图和主要代码)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, "确定要删除数据吗?", "提示", 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, "删除失败!", &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 现有库存=现有库存+'"+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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司工作计划六篇
- 2022年小学教师工作计划
- 护士长每周工作计划
- 2024年农村广播电视行业发展监测及投资战略咨询报告
- 事故赔偿协议书汇编五篇
- 参观类实习报告模板合集九篇
- 大学生创新创业思维与行动 课件 第五章 创业思维概述
- 市场方案策划模板锦集五篇
- 会计实习周记格式5篇
- -护士长述职报告
- 北京市东城区2023-2024学年八年级上学期期末生物试题
- ISO28000:2022供应链安全管理体系
- 生产计划与排程(英文)课件
- 内墙涂料工程监理实施办法
- 如何识别早期休克
- 危险化学品MSDS(聚乙烯)
- DB32∕T 3216-2017 机动车驾驶员培训机构服务规范
- DB22∕T 2880-2018 建筑消防设施维护保养规程
- 进化生物学第3版课后习题答案
- 2022年新媒体编辑实战教程试题带答案(题库)
- 在一日活动中培养幼儿亲社会行为的实践研究报告
评论
0/150
提交评论