




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录一、系统设计:.2二、数据库设计:. 3三、系统实现:.4四、心得体会: .20高校教材管理系统一. 系统设计:1.1设计目标:高校教材管理系统设计目标是实现教材信息的动态管,包括教材的征订,入库和出库信息的添加,修改和删除;对于管理员,实现不同的管理员,有不同的权限。一般管理仅有查看信息和修改自己密码的权利。特殊管理员具有添加、删除用户和其它一切权力。1.2总体设计:根据系统设计目标,高校教材管理系统由以下4大模块组成,分别是:1.用户管理:实现对用户的增加,删除和用户修改密码;2.教材信息管理:包括对教材信息的添加,删除,修改和查看功能。3.库存管理:分为教材出库,入库和查看库存信息。1.3详细设计:(由于本人只实现教材信息管理,教材库存管理,登陆模块,别的模块不再包括在内) 高校教材管理系统管理系统教材信息管理教材库存管理登 录添加教材信息修改教材信息查看教材信息教材入库管理教材出库管理查看库存信息系统功能模块图1. 教材信息管理包括,添加教材信息,包括教材编号、条形码、教材名称、ISBN、出版社、出版时间、定价、作者,可以修改以上信息。在查看教材信息时提供了多种查询方式:可按教材编号,教材名称,条形码,作者查询。还可以查看全部信息。2. 教材库存信息管理包括,将新到的教材的信息录入到数据库中,包括入库单号、入库日期、教材编号、教材名称、单击、适合系别、入库数量、经手人,可以入库在教材信息管理进一步更新教材的详细信息。出库后更新库存信息。查看库存信息中也提供了多种查询方式:有教材编号,教材名称,条形码,作者,全部。3. 登录主要是对系统管理员和身份进行验证,同时用管理的权限记录。二、数据库设计:3.1 数据结构(本人实现,Booksinfo,Instockinfo,Instock,Outstock ,User)Booksinfo(教材信息)=组成: 教材编号、条形码、教材名称、ISBN、出版社、出版时间、定价、作者、现有库存Instockinfo(入库信息)=组成:教材编号、条形码、教材名称、ISBN、出版社、出版时间、定价、作者、适合系别、现有库存Instock(入库)=组成: 入库单号、入库日期、教材编号、教材名称、单击、适合系别、入库数量、经手人 Outstock(出库)=组成:出库单号、出库日期、教材编号、教材名称、适合系别、出库数量、单价、经手人 Order(征订单)=组成:征订单号、征订教材编号、征订教材名称、征订数量、单价、征订部门、征订日期、适合专业 User(用户)=组成:用户ID、密码、用户权限booksinfoinstockOutstockInstockinfoUser3.2用户登录模块设计与实现设计思路:为了检验登录用户是否是一个合法用户,当用户输入用户名和密码后,需要查询数据库以便验证该用户是否为非法用户。实现功能:用户可以从登陆界面进入到教材信息管理系统界面,然后进行一些操作。三、系统实现(附效果图和主要代码)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.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 = 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 Dimension(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.getText() = null | jField2.getText().equals() JOptionPane.showMessageDialog(this, 请输入密码, 提示, JOptionPane.OK_OPTION); else database.getCommection(); String sql=select 密码,用户权限 from user where 用户ID=+jTextField1.getText().trim()+; try ResultSet 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.showMessageDialog(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(); 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 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.addActionListener(this); jMenuItem2.addActionListener(this); jMenuItem3.addActionListener(this); jMenuItem4.addActionListener(this); jMenuItem5.addActionListener(this); jMenuItem6.addActionListener(this); jMenuItem7.addActionListener(this); jMenuItem8.addActionListener(this); jMenuItem9.addActionListener(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); jMenuItem2.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 modify 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.swing.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.swing.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 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()=jMenuItem4) 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.loadFrame(); 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() = null | jTextField1.getText().equals() JOptionPane.showMessageDialog(this, 图书编号不能为空, 提示, JOptionPane.OK_OPTION); else try database.getCommection(); nI=database.updateExecut(getSql(); if(nI=1) JOptionPane.showMessageDialog(this, 添加成功!, 提示, JOptionPane.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 (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 = jTextField7.getText().trim(); String str8 = jTextField8.getText().trim(); String sql = insert into booksinfo(bookNo,barcode,bookName,ISBN,publisher,publisheTime,price,author); sql += values( + str1 + , + str2 + , + str3 + , + str4 + , + str5 + , + str6 + , + str7 + , + str8 + ); return sql; 3.3.4updatebookpublic void actionPerformed(ActionEvent e) if (e.getSource() = jButton1) if (jTextField9.getText() = null | jTextField9.getText().equals() JOptionPane.showMessageDialog(this, 请输入教材编号, 提示, JOptionPane.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); jTextField3.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.getCommection(); String sql =update booksinfo set 条形码=+jTextField2.getText().trim()+, 教材名称=+jTextField3.getText().trim()+,ISBN=+jTextField4.getText().trim()+,; sql+=出版社=+jTextField5.getText().trim()+,出版时间=+jTextField6.getText().trim()+,作者=+jTextField8.getText().trim()+,定价=+Double.parseDouble(jTextField7.getText().trim()+ where 教材编号=+jTextField9.getText().trim()+; int i=database.updateExecut(sql); if(i!=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() 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.showConfirmDialog(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, 删除失败!, 提示, 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(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+=+jTextField1.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); Vector 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); 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(); 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.getCommection(); database.updateExecut(update instockinfo set 现有库存=现有库存+Integer.parseInt(jTextField7.getText().trim()+ where 教材编号=+jTextField3.getText().trim()+); nI=database.updateExecut(getSql(); if(nI=1) JOptionPane.showMessageDialog(this, 入库成功!, 提示, 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.printStackTrace(); 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(); Stri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 财务会计与管理知识实训分析教程
- 设备工作计划
- 2009年资产评估师-财务会计测验试题分章练
- 从资源整合角度解析体能训练行业的连锁加盟模式
- 2025年Android中高级面试必知必会讲的明明白白!-备战2025,android中高级面试必知必会
- 建筑施工特种作业-建筑架子工附着式脚手架真题库-1
- 闰土的题目及答案
- 2023年学业水平合格考试三年分类汇编(真题)-专题一宇宙中的地球02太阳对地球的影响
- 11 2 成对数据的统计分析-高考数学真题分类 十年高考
- 新疆且末县尧勒萨依金矿开采项目环评报告
- 2024-2025学年人教新目标英语八年级下册期末综合检测卷(含答案)
- 医院法律、法规培训2024:药事管理与药物治疗指导
- 环境影响评价的国际比较
- 2025届江苏省苏州市英语高三第一学期期末达标检测试题含解析
- 浙江大学《概率论与数理统计》第9章
- 校际教研联合体活动方案及案例
- 2024年版《代谢相关脂肪性肝病防治指南》解读1
- 2025年重点高中自主招生考试数学模拟试卷试题(含答案)
- 【京东第三方物流管理及供应链关系探析15000字(论文)】
- 北京市通州区2024-2025学年四年级语文下学期期末试卷新人教版
- 广东省珠海市金湾区2023-2024学年八年级下学期7月期末历史试题
评论
0/150
提交评论