JAVA课程设计---库存管理系统JAVA课程设计---库存管理系统 库存管理系统开发 1.设计目的 库存管理系统可帮助企业的仓库管理人员对库存物品的入库、出库、移库、盘点、补充订货和生产补料等操作进行全面的控制和管理。库存管理系统从级别、 等不同角度来管理库存物品的数量,库存成类别、货位、批次、单价、ABC分类 本和资金占用情况。以便及时了解和控制库存业务各方面的准确情况和数据、库存成本和资金占用情况。而且可以及时了解和控制库存业务各方面的准确情况和数据,做到账、物、卡相符。库存管理系统是一个多层次的管理系统,可以通过灵活的设置实现不同层次...
Title:
*Description:
*Copyright: Copyright (c) 2003
*Company:
* @author not attributable * @version 1.0 */ public class Frame5 extends JFrame { JPanel contentPane; XYLayout xYLayout1 = new XYLayout(); JPasswordField password = new JPasswordField(); JLabel jLabel1 = new JLabel(); JLabel jLabel2 = new JLabel(); JTextField jTextField1 = new JTextField(); JLabel jLabel3 = new JLabel(); //Construct the frame public Frame5() { enableEvents(AWTEvent.WINDOW_EVENT_MASK); try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } //Component initialization private void jbInit() throws Exception { contentPane = (JPanel) this.getContentPane(); password.addActionListener(new Frame5_password_actionAdapter(this)); contentPane.setLayout(xYLayout1); this.setSize(new Dimension(500, 400)); this.setTitle("库存管理系统"); jLabel1.setFont(new java.awt.Font("SansSerif", 0, 25)); jLabel1.setForeground(Color.red); jLabel1.setText("欢迎进入库存管理系统"); jLabel2.setFont(new java.awt.Font("SansSerif", 0, 20)); jLabel2.setText("姓名"); jTextField1.setText(""); jLabel3.setFont(new java.awt.Font("SansSerif", 0, 20)); jLabel3.setText("密码"); contentPane.add(jLabel1,new XYConstraints(133, 2, 253, 34)); contentPane.add(jLabel2,new XYConstraints(92, 142, -1, -1)); contentPane.add(jTextField1,new XYConstraints(130, 145, 91, 26)); contentPane.add(jLabel3,new XYConstraints(222, 144, -1, -1)); contentPane.add(password,new XYConstraints(263, 144, 105, 28)); } 构件系统登录主页面,设置系统界面大小,在本界面中,设置系统的界面大 小为500*400,同时设定界面的显示Title为[库存管理系统]。及页面中各个控件 的相关属性和字体、大小的设置。 //Overridden so we can exit when window is closed protected void processWindowEvent(WindowEvent e) { super.processWindowEvent(e); if (e.getID() == WindowEvent.WINDOW_CLOSING) { System.exit(0); } } void password_actionPerformed(ActionEvent e) { try { Frame1 Frame= new Frame1(); Frame.show(); } catch (Exception ew) { System.out.println(ew.getMessage()); } validID(); this.setVisible(false); } void validID() { try { String str1, str2; str1 = jTextField1.getText(); str2 = password.getText(); //装载jdbc驱动程序。 //通过下面的程序我们完成对oracle数据库的动态连接。 String driverName = "oracle.jdbc.OracleDriver"; Driver driver = (Driver) Class.forName(driverName).newInstance(); //连接数据库 //在下面的程序中我们连接的数据库是名为“tongfang“的数据库 //登录名是”sa“密码是“tongfang” Connection con = DriverManager.getConnection( "jdbc:oracle:thin:@thsspc0791:1521:tongfang", "sa", "tongfang"); //执行动态的sql语句 PreparedStatement pstmt = con.prepareStatement( //依据登录者的名字查询登录者的信息的sql语句 " select name ,id,password from worker-info where name=?"); //将登录者的名字添加到具体的sql语句中 pstmt.setString(1, str1); //使用ResultSet中的方法executeQuery()来完成sql语句的执行 ResultSet res = pstmt.executeQuery(); //使用getString()来获取sql查询的结果 //String sa=res.getString(1); if ((!res.next()) || res.getString("password") == null) { JOptionPane.showMessageDialog(this, "查无此人", "错误", JOptionPane.ERROR_MESSAGE); }else { if ( !res.getString("password").equals(str2)) { JOptionPane.showMessageDialog(this, "密码错误", "错误", JOptionPane.ERROR_MESSAGE); }else { System.out.println("zhengque"); do{ System.out.println(res.getString(1)+":" + res.getString(2) + ":" +res.getString(3)); }while (res.next()); loader(); } } pstmt.close(); con.close(); }catch (InstantiationException e) { System.out.println(e.getMessage()); }catch (IllegalAccessException e) { System.out.println(e.getMessage()); }catch (ClassNotFoundException e) { System.out.println(e.getMessage()); }catch (SQLException edd) { edd.printStackTrace() ; System.out.println(edd.getMessage()); } } void loader() { try { Frame1 Frame= new Frame1(); Frame.show(); } catch (Exception ew) { System.out.println(ew.getMessage()); } } } class Frame5_password_actionAdapter implements java.awt.event.ActionListener { Frame5 adaptee; Frame5_password_actionAdapter(Frame5 adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.password_actionPerformed(e); } } 2.5.2 库存管理系统主界面模块 在系统主界面中,可以完成此系统的全部功能,包括库存货物信息登记处理,货物入库信息登记处理,货物出库信息登记处理,系统仓库盘存登记处理,仓库信息登记处理,供货单位信息登记处理,收货单位信息登记处理以及仓库信息登记处理等一些界面。系统设计目标是通过一系列菜单来完成相应的子界面创建和管理。如图所示,在库存管理系统中,主要包括以下几个方面的功能模块。 图4 库存管理系统 在库存管理模块中,主要包括货物信息登记和仓库盘存两个功能。在入库管理模块中,主要包括入库登记管理功能。在出库管理模块中,主要包括出库登记管理功能。在业务信息模块中,主要包括集体经办人和仓库信息统计两个功能。在业务单位模块中,包括供货单位和收货单位两个功能在友情连接功能中,主要包括连接公司主页和职工之家两个功能。最后是退出系统功能模块。选择不同的 中Frame菜单进入不同的库存管理子界面,完成相应的功能。系统主界面采用Java技术,对应代码如下: package untitled5; import java.io.*; import java.net.*; import java.sql.*; import java.lang.*; import javax.sql.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import com.borland.jbcl.layout.*; /** *Title:
*Description:
*Copyright: Copyright (c) 2003
*Company:
* @author not attributable * @version 1.0 */ public class delreader1 extends JFrame { JPanel contentPane; XYLayout xYLayout1 = new XYLayout(); JLabel jLabel1 = new JLabel(); JLabel jLabel2 = new JLabel(); JLabel jLabel3 = new JLabel(); JTextField jTextField1 = new JTextField(); JLabel jLabel4 = new JLabel(); JTextField jTextField2 = new JTextField(); JLabel jLabel5 = new JLabel(); JTextField jTextField3 = new JTextField(); JLabel jLabel6 = new JLabel(); JTextField jTextField4 = new JTextField(); JLabel jLabel7 = new JLabel(); JTextField jTextField5 = new JTextField(); JButton jButton1 = new JButton(); //Construct the frame public delreader1() { enableEvents(AWTEvent.WINDOW_EVENT_MASK); try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } //Component initialization private void jbInit() throws Exception { contentPane = (JPanel) this.getContentPane(); jLabel1.setFont(new java.awt.Font("SansSerif", 0, 25)); jLabel1.setForeground(Color.red); jLabel1.setRequestFocusEnabled(true); jLabel1.setText("库存管理系统"); contentPane.setLayout(xYLayout1); this.setSize(new Dimension(500, 400)); this.setTitle("Frame Title"); jLabel2.setFont(new java.awt.Font("SansSerif", 0, 30)); jLabel2.setText("收 货 单 位 信 息"); jLabel3.setFont(new java.awt.Font("SansSerif", 0, 25)); jLabel3.setText("单位编号"); jTextField1.setText(""); jLabel4.setFont(new java.awt.Font("SansSerif", 0, 25)); jLabel4.setRequestFocusEnabled(true); jLabel4.setText("单位名称"); jTextField2.setText(""); jLabel5.setFont(new java.awt.Font("SansSerif", 0, 25)); jLabel5.setText("单位地址"); jTextField3.setText(""); jLabel6.setFont(new java.awt.Font("SansSerif", 0, 25)); jLabel6.setText("电 话"); jTextField4.setText(""); jLabel7.setFont(new java.awt.Font("SansSerif", 0, 25)); jLabel7.setText("联 系 人"); jTextField5.setText(""); jButton1.setFont(new java.awt.Font("SansSerif", 0, 25)); jButton1.setText("提交"); jButton1.addActionListener(new delreader1_jButton1_actionAdapter(this)); contentPane.add(jLabel1, new XYConstraints(156, 0, -1, 38)); contentPane.add(jLabel2, new XYConstraints(120, 31, -1, -1)); contentPane.add(jTextField1, new XYConstraints(191, 93, 142, 35)); contentPane.add(jLabel3, new XYConstraints(91, 92, -1, -1)); contentPane.add(jLabel4,new XYConstraints(92, 155, 103, 34)); contentPane.add(jTextField2,new XYConstraints(191, 156, 136, 34)); contentPane.add(jLabel5,new XYConstraints(95, 211, 102, -1)); contentPane.add(jTextField3,new XYConstraints(194, 214, 129, 34)); contentPane.add(jLabel6, new XYConstraints(100, 264, -1, 34)); contentPane.add(jTextField4,new XYConstraints(195, 265, 127, 34)); contentPane.add(jLabel7,new XYConstraints(106, 311, -1, -1)); contentPane.add(jTextField5,new XYConstraints(195, 318, 127, 33)); contentPane.add(jButton1, new XYConstraints(350, 308, -1, -1)); } 构建系统主界面,设置系统界面大小。在本界面中,设置系统的界面大小为 为[库存管理系统]。及系统中各个控件的相600*500,同时设定界面的显示Title 关属性和字体,通过以下代码,将系统中创建的各个子菜单加入到各个主菜单中, 同时设定菜单的显示。 //Overridden so we can exit when window is closed protected void processWindowEvent(WindowEvent e) { super.processWindowEvent(e); if (e.getID() == WindowEvent.WINDOW_CLOSING) { System.exit(0); } } void validID() { try { //定义显示的字符串 String str1; String str2; String str3; String str4; String str5; str1 = jTextField1.getText(); str2 = jTextField2.getText(); str3 = jTextField3.getText(); str4 = jTextField4.getText(); str5 = jTextField5.getText(); //装载jdbc驱动程序 String driverName = "oracle.jdbc.OracleDriver"; Driver driver = (Driver) Class.forName(driverName).newInstance(); //连接数据库 Connection con=DriverManager.getConnection( "jdbc:oracle:thin:@thsspc0791:1521:tongfang", "sa", "tongfang"); PreparedStatementpstmt=con.prepareStatement("insertoutFactory('facNum','facName','facAdres s','telNum','man')values(?,?,?,?,?,?)"); pstmt.setString(1, str1); pstmt.setString(2, str2); pstmt.setString(1, str3); pstmt.setString(4, str4); pstmt.setString(5, str5); ResultSet res = pstmt.executeQuery(); pstmt.close(); con.close(); }catch (InstantiationException e) { System.out.println(e.getMessage()); }catch (IllegalAccessException e) { System.out.println(e.getMessage()); }catch (ClassNotFoundException e) { System.out.println(e.getMessage()); }catch (SQLException edd) { edd.printStackTrace() ; System.out.println(edd.getMessage()); } } void jButton1_actionPerformed(ActionEvent e) { validID() ; } } class delreader1_jButton1_actionAdapter implements java.awt.event.ActionListener { delreader1 adaptee; delreader1_jButton1_actionAdapter(delreader1 adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jButton1_actionPerformed(e); } } 2.5.3登记货品信息 登记货品信息是库存管理系统的主要界面,通过这个界面信息的正确输入可以获取仓库货品的详细信息,从根本上为公司库存服务,提高库存管理系统的效率。 在货品信息登记子界面中,必须输入正确的货品代码,货品名称,货品类别,即以货品登记和存放的仓库编号。同时为了公司部门之间的信息共享,必须输入正确的存放入库单价和库存数量。实现以上界面的Java重要代码如下: 设置系统界面大小,在本界面中,设置系统的界面大小为600*400,同时设定界面的显示Title为[库存管理系统]。 关于页面中各个控件的相关属性和字体,大小的设置见表: package untitled5; import java.io.*; import java.net.*; import java.sql.*; import java.lang.*; import javax.sql.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import com.borland.jbcl.layout.*; import com.borland.dbswing.*; /** *Title:
*Description:
*Copyright: Copyright (c) 2003
*Company:
* @author not attributable * @version 1.0 */ //货品信息登记 public class Frame2 extends JFrame { JPanel contentPane; JLabel jLabel1 = new JLabel(); XYLayout xYLayout1 = new XYLayout(); JLabel jLabel2 = new JLabel(); JLabel jLabel3 = new JLabel(); JLabel jLabel4 = new JLabel(); JLabel jLabel5 = new JLabel(); JLabel jLabel6 = new JLabel(); JLabel jLabel7 = new JLabel(); JTextField jTextField1 = new JTextField(); JTextField jTextField2 = new JTextField(); JTextField jTextField3 = new JTextField(); JTextField jTextField4 = new JTextField(); JTextField jTextField5 = new JTextField(); JLabel jLabel8 = new JLabel(); JTextField jTextField6 = new JTextField(); JLabel jLabel9 = new JLabel(); JTextField jTextField7 = new JTextField(); JLabel jLabel10 = new JLabel(); JTextField jTextField8 = new JTextField(); JLabel jLabel11 = new JLabel(); JTextField jTextField9 = new JTextField(); JButton jButton1 = new JButton(); //Construct the frame public Frame2() { enableEvents(AWTEvent.WINDOW_EVENT_MASK); try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } //Component initialization private void jbInit() throws Exception { contentPane = (JPanel) this.getContentPane(); contentPane.setLayout(xYLayout1); this.setSize(new Dimension(600, 500)); this.setTitle("库存管理系统"); this.addHierarchyBoundsListener(new Frame2_this_hierarchyBoundsAdapter(this)); jLabel1.setFont(new java.awt.Font("SansSerif", 0, 25)); jLabel1.setForeground(Color.red); jLabel1.setText("库存管理系统"); contentPane.setForeground(Color.black); jLabel2.setFont(new java.awt.Font("SansSerif", 0, 30)); jLabel2.setText("货 品 信 息 登 记"); jLabel3.setFont(new java.awt.Font("SansSerif", 0, 20)); jLabel3.setText("货品编码"); jLabel4.setFont(new java.awt.Font("SansSerif", 0, 20)); jLabel4.setRequestFocusEnabled(true); jLabel4.setText("类 别"); jLabel5.setFont(new java.awt.Font("SansSerif", 0, 20)); jLabel5.setText("仓库编码"); // statusBar.setFont(new java.awt.Font("SansSerif", 0, 20)); jLabel6.setFont(new java.awt.Font("SansSerif", 0, 20)); jLabel6.setText("入库计划单价"); jLabel7.setFont(new java.awt.Font("SansSerif", 0, 20)); jLabel7.setText("原始库存量"); jTextField1.setText(""); jTextField2.setText(""); jTextField3.setText(""); jTextField4.setText(""); jTextField5.setText(""); jLabel8.setFont(new java.awt.Font("SansSerif", 0, 20)); jLabel8.setText("货品规格名称"); jTextField6.setText(""); jLabel9.setFont(new java.awt.Font("SansSerif", 0, 20)); jLabel9.setText("等 级"); jTextField7.addActionListener(new Frame2_jTextField7_actionAdapter(this)); jLabel10.setFont(new java.awt.Font("SansSerif", 0, 20)); jLabel10.setText("存 放 仓 库"); jTextField7.setText(""); jTextField8.setText(""); jLabel11.setFont(new java.awt.Font("SansSerif", 0, 20)); jLabel11.setText("原始库存件数"); jTextField9.addActionListener(new Frame2_jTextField9_actionAdapter(this)); jButton1.setFont(new java.awt.Font("SansSerif", 0, 20)); jButton1.setText("提交"); jButton1.addActionListener(new Frame2_jButton1_actionAdapter(this)); contentPane.add(jLabel1,new XYConstraints(237, 0, 153, 40)); contentPane.add(jLabel2,new XYConstraints(200, 47, 231, 58)); contentPane.add(jLabel3,new XYConstraints(60, 125, -1, -1)); contentPane.add(jLabel5,new XYConstraints(60, 249, -1, -1)); contentPane.add(jLabel4,new XYConstraints(64, 190, -1, 26)); contentPane.add(jTextField1,new XYConstraints(145, 128, 106, 28)); contentPane.add(jTextField2,new XYConstraints(144, 191, 108, 29)); contentPane.add(jTextField3,new XYConstraints(144, 251, 111, 29)); contentPane.add(jLabel6, new XYConstraints(22, 311, -1, -1)); contentPane.add(jTextField4,new XYConstraints(144, 314, 113, 28)); contentPane.add(jLabel7,new XYConstraints(41, 364, -1, 30)); contentPane.add(jTextField5,new XYConstraints(143, 368, 114, 30)); contentPane.add(jLabel8,new XYConstraints(277, 127, -1, -1)); contentPane.add(jTextField6,new XYConstraints(400, 130, 143, 26)); contentPane.add(jLabel9, new XYConstraints(279, 189, -1, -1)); contentPane.add(jTextField7,new XYConstraints(397, 189, 143, 30)); contentPane.add(jLabel10,new XYConstraints(278, 260, -1, -1)); contentPane.add(jTextField8,new XYConstraints(401, 259, 141, 32)); contentPane.add(jLabel11,new XYConstraints(279, 314, -1, -1)); contentPane.add(jTextField9,new XYConstraints(403, 315, 142, 30)); contentPane.add(jButton1,new XYConstraints(404, 361, 109, 34)); } //Overridden so we can exit when window is closed protected void processWindowEvent(WindowEvent e) { super.processWindowEvent(e); if (e.getID() == WindowEvent.WINDOW_CLOSING) { System.exit(0); } } void jPasswordField1_actionPerformed(ActionEvent e) { // validID(); } void validID() { try { String str1, str2,str3,str4,str5,str6,str7,str8,str9; str1 = jTextField1.getText(); str2 = jTextField2.getText(); str3 = jTextField3.getText(); str4 = jTextField4.getText(); str5 = jTextField5.getText(); str6 = jTextField6.getText(); str7 = jTextField7.getText(); str8 = jTextField8.getText(); str9 = jTextField9.getText(); //装载jdbc驱动程序 String driverName = "oracle.jdbc.OracleDriver"; Driver driver = (Driver) Class.forName(driverName).newInstance(); //连接数据库 Connectioncon=DriverManager.getConnection("jdbc:oracle:thin:@thsspc0791:1521:tongfang", "sa", "tongfang"); PreparedStatementpstmt=con.prepareStatement("insertintoGood-Info('goodnumber','kind','warenumber','wareprice','originateNumber','name','class','ware','oriMount')values(?,?,?,?,?,?,?,?,?)"); pstmt.setString(1, str1); pstmt.setString(2, str2); pstmt.setString(3, str3); pstmt.setString(4, str4); pstmt.setString(5, str5); pstmt.setString(6, str6); pstmt.setString(7, str7); pstmt.setString(8, str8); pstmt.setString(9, str9); ResultSet res = pstmt.executeQuery(); //String sa=res.getString(1); pstmt.close(); con.close(); }catch (InstantiationException e) { System.out.println(e.getMessage()); }catch (IllegalAccessException e) { System.out.println(e.getMessage()); }catch (ClassNotFoundException e) { System.out.println(e.getMessage()); }catch (SQLException edd) { edd.printStackTrace() ; System.out.println(edd.getMessage()); } } void jTextField7_actionPerformed(ActionEvent e) {} void jTextField9_actionPerformed(ActionEvent e) {} void jButton1_actionPerformed(ActionEvent e) {validID(); } void this_ancestorMoved(HierarchyEvent e) {} } class Frame2_jTextField7_actionAdapter implements java.awt.event.ActionListener { Frame2 adaptee; Frame2_jTextField7_actionAdapter(Frame2 adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jTextField7_actionPerformed(e); } } class Frame2_jTextField9_actionAdapter implements java.awt.event.ActionListener { Frame2 adaptee; Frame2_jTextField9_actionAdapter(Frame2 adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jTextField9_actionPerformed(e); } } class Frame2_jButton1_actionAdapter implements java.awt.event.ActionListener { Frame2 adaptee; Frame2_jButton1_actionAdapter(Frame2 adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jButton1_actionPerformed(e); } } class Frame2_this_hierarchyBoundsAdapter extends java.awt.event.HierarchyBoundsAdapter { Frame2 adaptee; Frame2_this_hierarchyBoundsAdapter(Frame2 adaptee) { this.adaptee = adaptee; } public void ancestorMoved(HierarchyEvent e) { adaptee.this_ancestorMoved(e); } } 2.5.4系统盘点 在一个库存管理系统中,系统盘点是系统的一个重要功能,通常这是一个公 司的主要业务之一,也是库存管理系统的重要功能之一。 在盘存主界面中,如入正确的盘存数据录入信息,完成正确的数据录入信息 功能,单击[提交]按钮,结束公司仓库盘存业务。 package untitled5; import java.awt.*; import java.awt.event.*; import javax.swing.*; import com.borland.jbcl.layout.*; import java.io.*; import java.net.*; import java.sql.*; import java.lang.*; import javax.sql.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import com.borland.jbcl.layout.*; import javax.swing.event.*; /** *Title:
*Description:
*Copyright: Copyright (c) 2003
*Company:
* @author not attributable * @version 1.0 */ //完成预定功能 public class yuding extends JFrame { JPanel contentPane; JLabel jLabel1 = new JLabel(); XYLayout xYLayout1 = new XYLayout(); JLabel jLabel2 = new JLabel(); JLabel jLabel3 = new JLabel(); JTextField jTextField1 = new JTextField(); JLabel jLabel4 = new JLabel(); JTextField jTextField2 = new JTextField(); JLabel jLabel5 = new JLabel(); JTextField jTextField3 = new JTextField(); JLabel jLabel6 = new JLabel(); JTextField jTextField4 = new JTextField(); JLabel jLabel7 = new JLabel(); JTextField jTextField5 = new JTextField(); JLabel jLabel8 = new JLabel(); JTextField jTextField6 = new JTextField(); JLabel jLabel9 = new JLabel(); JTextField jTextField7 = new JTextField(); JButton jButton1 = new JButton(); //Construct the frame public yuding() { enableEvents(AWTEvent.WINDOW_EVENT_MASK); try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } //Component initialization private void jbInit() throws Exception { contentPane = (JPanel) this.getContentPane(); jLabel1.setFont(new java.awt.Font("SansSerif", 0, 25)); jLabel1.setForeground(Color.red); jLabel1.setText("库存管理系统"); contentPane.setLayout(xYLayout1); this.setLocale(java.util.Locale.getDefault()); this.setSize(new Dimension(600, 500)); this.setTitle("Frame Title"); this.addHierarchyBoundsListener(new yuding_this_hierarchyBoundsAdapter(this)); jLabel2.setFont(new java.awt.Font("SansSerif", 0, 30)); jLabel2.setText("系统盘存数据录入"); jLabel3.setFont(new java.awt.Font("SansSerif", 0, 25)); jLabel3.setText("货物编码"); jTextField1.setText(""); jLabel4.setFont(new java.awt.Font("SansSerif", 0, 25)); jLabel4.setText("货物名称"); jTextField2.setText(""); jLabel5.setFont(new java.awt.Font("SansSerif", 0, 25)); jLabel5.setText("类 别"); jTextField3.setText(""); jLabel6.setFont(new java.awt.Font("SansSerif", 0, 25)); jLabel6.setText("等 级"); jTextField4.setText(""); jLabel7.setFont(new java.awt.Font("SansSerif", 0, 25)); jLabel7.setText("仓库编码"); jTextField5.setText(""); jLabel8.setFont(new java.awt.Font("SansSerif", 0, 25)); jLabel8.setText("存放仓库"); jTextField6.setText(""); jLabel9.setFont(new java.awt.Font("SansSerif", 0, 25)); jLabel9.setText("盘存数量"); jTextField7.setText(""); jButton1.setFont(new java.awt.Font("SansSerif", 0, 25)); jButton1.setText("提交"); jButton1.addActionListener(new yuding_jButton1_actionAdapter(this)); contentPane.add(jLabel1, new XYConstraints(227, 2, -1, -1)); contentPane.add(jLabel2, new XYConstraints(189, 38, -1, 46)); contentPane.add(jLabel3, new XYConstraints(81, 107, -1, -1)); contentPane.add(jTextField1, new XYConstraints(182, 109, 150, 30)); contentPane.add(jLabel4, new XYConstraints(82, 168, -1, 32)); contentPane.add(jTextField2, new XYConstraints(181, 169, 152, 29)); contentPane.add(jLabel5, new XYConstraints(84, 220, -1, -1)); contentPane.add(jTextField3, new XYConstraints(182, 223, 151, 29)); contentPane.add(jLabel6, new XYConstraints(85, 283, -1, -1)); contentPane.add(jTextField4, new XYConstraints(177, 289, 53, 29)); contentPane.add(jLabel7, new XYConstraints(234, 287, -1, -1)); contentPane.add(jTextField5, new XYConstraints(336, 292, 107, 29)); contentPane.add(jLabel8, new XYConstraints(83, 342, -1, 32)); contentPane.add(jTextField6, new XYConstraints(182, 345, 177, 29)); contentPane.add(jLabel9, new XYConstraints(83, 397, -1, -1)); contentPane.add(jTextField7, new XYConstraints(182, 397, 177, 31)); contentPane.add(jButton1, new XYConstraints(449, 388, -1, 38)); } //Overridden so we can exit when window is closed protected void processWindowEvent(WindowEvent e) { super.processWindowEvent(e); if (e.getID() == WindowEvent.WINDOW_CLOSING) { System.exit(0); } } void issn_actionPerformed(ActionEvent e) {} void validID() { try {String str1; String str2; String str3; String str4; String str5; String str6; String str7; String str8; String str9; str1 = jTextField1.getText(); str2 = jTextField2.getText(); str3 = jTextField3.getText(); str4 = jTextField4.getText(); str5 = jTextField5.getText(); str6 = jTextField6.getText(); str7 = jTextField7.getText(); //装载jdbc驱动程序 String driverName = "oracle.jdbc.OracleDriver"; Driver driver = (Driver) Class.forName(driverName).newInstance(); //连接数据库 Connection con = DriverManager.getConnection( "jdbc:oracle:thin:@thsspc0791:1521:tongfang", "sa", "tongfang"); PreparedStatement pstmt = con.prepareStatement( "update book set goodnumber=?, name=?,kind=?,class=?,warenumber=?,ware=?,stocknum=? "); pstmt.setString(1, str1); pstmt.setString(2, str2); pstmt.setString(3, str3); pstmt.setString(4, str4); pstmt.setString(5, str5); pstmt.setString(6, str6); pstmt.setString(7, str7); ResultSet res = pstmt.executeQuery(); pstmt.close(); con.close(); }catch (InstantiationException e) { System.out.println(e.getMessage()); }catch (IllegalAccessException e) { System.out.println(e.getMessage()); }catch (ClassNotFoundException e) { System.out.println(e.getMessage()); }catch (SQLException edd) { edd.printStackTrace() ; System.out.println(edd.getMessage()); } } void this_ancestorMoved(HierarchyEvent e) {} void issn_ancestorRemoved(AncestorEvent e) {} void jButton1_actionPerformed(ActionEvent e) { //处理登录界面 validID(); } } class yuding_issn_actionAdapter implements java.awt.event.ActionListener { yuding adaptee; yuding_issn_actionAdapter(yuding adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.issn_actionPerformed(e); } } class yuding_this_hierarchyBoundsAdapter extends java.awt.event.HierarchyBoundsAdapter { yuding adaptee; yuding_this_hierarchyBoundsAdapter(yuding adaptee) { this.adaptee = adaptee; } public void ancestorMoved(HierarchyEvent e) { adaptee.this_ancestorMoved(e); } } class yuding_issn_ancestorAdapter implements javax.swing.event.AncestorListener { yuding adaptee; yuding_issn_ancestorAdapter(yuding adaptee) { this.adaptee = adaptee; } public void ancestorAdded(AncestorEvent e) {} public void ancestorRemoved(AncestorEvent e) { adaptee.issn_ancestorRemoved(e); } public void ancestorMoved(AncestorEvent e) {} } class yuding_jButton1_actionAdapter implements java.awt.event.ActionListener { yuding adaptee; yuding_jButton1_actionAdapter(yuding adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jButton1_actionPerformed(e); } } 2.5.5入库管理和出库登记等模块 入库管理登记也是库存管理系统的主要功能模块,当一个公司的仓库进货 时,我们通常要进入这个表格的填写界面,输入正确的货品信息,完成货品信息 录入,对应的仓库入库等及信息子界面。 在库存管理系统入库登记信息主界面 中,必须输入正确的入库登记信息,包括入库日期和入库单号,以及货品编码, 库存数量,供货单位和经办人信息等一些关于物品入库的详细信息。 而出库登记模块是和入库模块相对应的系统模块,当一个公司将自己的产品 销售出去是,就要进入这个系统界面来完成对公司产品出库信息进行详细记录,这个也是库存管理系统的重要功能之一。还有例如业务单位信息、业务信息等模块的设计,由于篇幅的关系,没有进行详细的描述。 3(设计结果与分析 通过一段时间的努力,我终于圆满的完成了这次课程设计。库存管理系统的首页如图所示: 当输入正确的登录名和密码之后就可以进入库存管理的主页面进行入库管理、出库管理、移库管理、库存盘点、库存结账等各个方面的操作。能够使企业的仓库管理人员对库存物品的入库、出库、移库、盘点、补充订货和生产补料等操作进行全面的控制和管理,从而做到账、物、卡相符。 通过此次从课程设计,我学会了库存管理系统的设计和实现方法,在设计的过程中应掌握的内容:在Oracle9i的SQL-Plus控制台中创建数据库表格;使用JDBC技术来连接数据和执行各种SQL语句;使用Java语言进行各种图形化界面开发。另外此次课程设计我也学会了库存管理系统的分析方法,它包括数据表格的字段分析和E-R图的分析,这些功能在系统分析中占有重要的地位。是库存管理系统设计不可或缺的一部分。 4(设计体会 通过翻阅书籍查找各种资料我了解到,库存管理能够极大地提高人事劳资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。库存管理信息系统是一种典型的信息管理系统。它的作用不亚于进销存系统,它决定一个企业以后的发展。通过对大型的完善的库存系统的了解,我也发现了我设计的库存管理系统中的不足,如采用的是单线程技术,关闭系统一个界面就关闭了整个系统是很不科学的。若采用多线程的方法更好些。而且打印报表也是一个可选的功能,在此次设计中没有实现,是需要以后改进的地方。另外我采用的是Fame技术界面不够完美。我想这些于我的经验不足和时间不充裕是分不开的。但是由于我定位的是中小企业所以这些功能已经够用了。 通过此次课程设计,不仅锻炼了我自主学习的能力,同时通过自己动手操作,使在书本上的所学知识进一步融会贯通。使我得能力得到了进一步的充实和提高。并且对我以后的设计打下坚实的基础和丰富经验。最后,我要感谢老师在此次课程设计中对我的帮助,使此次课程设计园满完成。 5(参考文献 [1]苗春义. Java项目开发全程实录(软件项目开发全程实录)[M].北京: 清华大学出版社, 2008.6:20-95 [2]邢素萍. JAVA办公自动化项目方案精解[M].北京:航空工业出版社, 2006.9:305-350 [3]王国辉,李钟尉,王毅.Java程序设计自学手册[M].北京:人民邮电出版社, 2008.2:288-331 [4]许晓曼,唐文忠. Java企业应用系统框架的比较与选择[J]. 计算机与信息技, 2006,9 [5]刘志成,翁健红. Java程序设计课程的案例设计[J]. 电脑学习, 2008,1