首页 JAVA课程设计---库存管理系统

JAVA课程设计---库存管理系统

举报
开通vip

JAVA课程设计---库存管理系统JAVA课程设计---库存管理系统 库存管理系统开发 1.设计目的 库存管理系统可帮助企业的仓库管理人员对库存物品的入库、出库、移库、盘点、补充订货和生产补料等操作进行全面的控制和管理。库存管理系统从级别、 等不同角度来管理库存物品的数量,库存成类别、货位、批次、单价、ABC分类 本和资金占用情况。以便及时了解和控制库存业务各方面的准确情况和数据、库存成本和资金占用情况。而且可以及时了解和控制库存业务各方面的准确情况和数据,做到账、物、卡相符。库存管理系统是一个多层次的管理系统,可以通过灵活的设置实现不同层次...

JAVA课程设计---库存管理系统
JAVA课程设计---库存 管理系统 工资管理系统慧云智能化管理系统免费考勤管理系统员工工资计算excel病人信息管理系统 库存管理系统开发 1.设计目的 库存管理系统可帮助企业的仓库管理人员对库存物品的入库、出库、移库、盘点、补充订货和生产补料等操作进行全面的控制和管理。库存管理系统从级别、 等不同角度来管理库存物品的数量,库存成类别、货位、批次、单价、ABC分类 本和资金占用情况。以便及时了解和控制库存业务各方面的准确情况和数据、库存成本和资金占用情况。而且可以及时了解和控制库存业务各方面的准确情况和数据,做到账、物、卡相符。库存管理系统是一个多层次的管理系统,可以通过灵活的设置实现不同层次的管理。 通过此课程设计,通过实现Java程序开发的环境搭建与配置,进一步在实际运用中学习和掌握Java程序开发的全过程。进一步熟悉掌握Java程序设计语言的基础内容,并通过亲自动手编写程序,不仅可以拓展知识面,使所学的知识融会贯通,还可以锻炼调试的能力。从而在各个方面提高自身的能力。 2.设计 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 论证 2.1系统总体设计: 软件配置: 数据库:SQLServer, 操作系统:Unix 硬件配置: 客户端:奔腾3 服务器:小型计算机 网络配置: 百兆模式 2.2需求分析: 一个优秀的库存管理系统不仅能管理已经发生出入库任务,提供实时精确的库存存量状态信息,还可以通过库存状态的设置,对即将发生的出入库业务进行预测管理,准确地得出未来某个时点上的预计库存及相应得资金占用情况。当销售订单到来时,企业的ERP系统根据已有的产品成品库存信息制定生产计划。当下达生产任务时,根据已有的库存信息制定采购计划。当评估企业经营生产计划时,根据库存物料盘点计划产品成本和库存物料资金占用情况。 因此,可以说库存管理系统是整个企业信息化系统开发中最关键、最重要的部分。作为一个企业信息交互平台,应包括以下功能: (1)企业库存基本数据 是整个库存管理系统的基础,库存管理的出入库和移动都要根据库存基础数据来进行操作。它包括库存系统设计、仓库基本信息、库位基本信息、物品库存信息、库存状态信息,表单、版号的设定,单据字头设定,自定义栏设定等一些系统基本信息。 (2)企业仓库的作业管理 主要包括:采购进货、采购退货、生产作业、外协作业、销售出货、销售退货、杂类入库、杂类出库、库存调拨、库存盘点和不合格产品处理。 (3)质检录入管理 主要包括:来料质检和退料质检。来料质检主要负责企业车间从外购进原材料的问题。退货质检主要负责对公司的由于质量问题而被消费者退回来的产品进行质量复查,确认产品质量若有问题,完成退货质检工作。 (4)单据查询 主要用来处理各种单据的查询功能。在库存管理系统中,要处理的单据主要有采购进货、采购退货、生产作业、外协作业、销售出货、销售退货、杂类入库、杂类出库、库存调拨、库存盘点和不合格产品处理等。可对这些单据进行查询和执行各种打印输出报表功能。 (5)查询统计功能 主要用来统计公司的各种数据库查询和统计功能。包括对库存信息的查询统计,分仓处理的统计,表明细查询、不合格产品库的产品信息统计查询。 (6)库存统计功能 主要包括:采购入库统计和采购出库统计功能。 采购入库统计:采购公司的原料,填写采购入库统计表,由系统进行统计。 采购出库统计:对企业销售出库产品进行统计,统计当日销售的各类产品信息。 2.3概要设计: 库存管理系统是一个专用的系统。只有公司的相关职员可以进入库存管理系统的主界面,操作各个版面的功能,如图所示: 在一个库存管理系统中,通常由五个方面的工作,包括入库管理、出库管理、移库管理、库存盘点、库存结账。这几个方面通常是一个库存管理系统是整个企业信息化系统开发中最关键、最重要的功能。 通常一个库存管理系统得角色是各个公司库存管理的使用者,各个产品的信息,公司产品买卖进出库,仓库信息,库存盘点信息,供货单位信息和收货单位信息。 库存管理 入库管理 出库管理 移库管理 库存盘点 库存结帐 库存文件 库存操作文件 ABC管理 订货点管理 库存修旧利废 图1 库存管理系统业务流程图 如图所示,在库存管理系统中,公司的相关职员输入正确的姓名和密码后进入系统的主界面,按以上业务流程完成相关的业务活动。 2.4详细设计: 2.4.1系统功能设计: 本系统主要包括9个模块: 库存管理系统 入出仓系登仓 库库库统记库 信信信登货盘 息息息录品点 登登登模信管 记记记息理块 模模模模模 块 块 块 块 块 图2 库存管理系统功能模块图 (1)系统登录模块: 库存管理中,登录模块是整个库存管理系统的基础,只有通过此界面的认可,才能进入库存管理系统,正确执行库存管理系统的功能。登录部分实现对企业员工登录的验证、标志,从而为相对应用户的操作系统提供依据。 (2)库存管理系统主界面: 在这个页面中可以进入库存管理系统得全部分支功能子界面。包括库存货物信息登记处理、货物出入库信息登记处理、系统仓库盘存登记处理、仓库信息登记处理等。 (3)登记货品信息模块: 是库存管理系统得主要功能模块,可以获取仓库货品的详细信息,提高库存管理系统的效率。 (4)入库信息登记模块: 当一个公司的仓库进货时,需要进入这个 表格 关于规范使用各类表格的通知入职表格免费下载关于主播时间做一个表格详细英语字母大小写表格下载简历表格模板下载 的填写界面,输入正确的货品信息,完成货品信息的录入。 (5)出库信息登记模块: 当一个公司将自己的产品销售出去时,进入这个界面完成对公司产品详细信息进行详细记录。 (6)仓库盘点管理模块及仓库信息登记模块: 用来统计仓库的有关信息,建立正确而全面的仓库信息资料。 2.4.2数据库设计: 在库存管理系统中包括物料、仓位、库位、职员、部门、仓库管理五个实体。其中每个职员属于某个部门,仓库管理员每个库位都属于某个仓库。系统的核心是库存移动,包括出入库、盘点、物料移动等操作。每次库位移动都是某种物料在仓库中库存的变动,并且由某个仓库管理员进行操作。 数据库流程图设计: 仓库管理系统主要涉及三个实体:公司的相关职员、公司的货物、库位库存管理系统的系统页面。其中三个关系类型相关职员与货物信息之间的关系是M:N,系统页面和货物信息之间的关系是1:N,相关职员和系统页面的关系是1:1。 Name Name Founction Password UserID 相关职员 系统页面 登录 管理 统计 公司货物 ID Name Factory Class 图2 系统E-R图 数据库表的设计: (1)货物属性表 物料属性表记录仓库管理所有物料的各种参数和相关信息。在系统中只能由管理员对物料属性进行删除、插入、更新。不同用户只能进行查询 表1 货物属性表 字段名称 数据类型 大小 默认值 可否为空 主键 货物编码 字符 10 无 否 是 货物名称 字符 20 “物料” 否 否 分类代码 字符 10 无 否 否 计量单位 字符 10 无 否 否 原始库存 双精度数 10 无 可 否 入库单价 双精度数 10 无 可 否 存放仓库 字符 10 无 否 否 保质期 整型 10 无 可 否 (2)物品分类代码表 物品分类代码表保存物品的分类信息,通常很少变动。因此在这个示例中,我们预先输入了货物代码表的内容,而不是提供修改货物分类代码的功能。 表2 物品分类代码表 字段名称 数据类型 大小 默认值 可否为空 主键 分类代码 字符 4 无 否 否 分类名称 字符 20 无 否 否 (3)仓库信息表 仓库信息表保存了一个组织所有仓库中的相关信息。对于普通的仓库员工只有具有查询的功能,仓库和仓库信息的变更也只能由管理员进行操作。主键应该是“仓库代码+仓库名称”但是为了保证主键的唯一性,我们新增了一个字段仓库库位代码,它的组成规则为:“仓库代码+„—?+库位代码”,这样的仓库库位代码也唯一地决定了一个库位。 表3 仓库信息表 字段名称 数据类型 大小 默认值 可否为空 主键 仓库代码 字符 9 无 否 是 仓库名称 字符 20 无 否 否 货物种类 字符 4 无 否 否 库存总件 字符 20 “库位” 否 否 库存金额 双精度数 10 无 否 否 库位代码 双精度数 10 无 否 否 (4)职员信息表 职员信息表保存了企业或组织所有职员的信息,与部门信息表一样,在库存管理系统中需要使用支援信息表,但是在整个GRP系统中,表是由其他系统进行维护的。 表4 职员信息表 字段名称 数据类型 大小 默认值 可否为空 主键 工号 字符 6 无 否 是 姓名 字符 10 无 否 否 所属部门代码 字符 4 无 否 否 所属部门名称 字符 20 无 否 否 职务 字符 20 无 否 否 登录密码 字符 20 无 否 否 权限 字节 - 3 否 否 (5)盘存表 盘存表保存的是在每一次盘点后有仓库管理员输入的仓库中实际所有的物料信息。本表主键为“货品代码+类别+等级+仓库编码+当日库存件数”共同作为这个表的主键。 表5 盘存表 字段名称 数据类型 大小 默认值 可否为空 主键 货物代码 字符 10 无 否 是 货物规格名称 双精度数 - 无 否 否 类别 字符 20 无 否 是 等级 单精度值 10 无 否 是 仓库代码 字符 9 无 否 是 当日库存件数 单精度值 10 无 否 是 盘存件数 字符 6 无 否 否 盈亏件数 单精度值 10 无 否 否 盈亏金额 双精度值 20 无 否 否 (6)系统出库统计表 系统出库统计表的主要功能就是在公司卖出货物,仓库货物流出记录的表格。通过这些可以统计一个仓库货物出库的详细信息,这个功能也是库存管理系统的重要功能之一。 表6 系统出库统计表 字段名称 数据类型 大小 默认值 可否为空 主键 出库日期 日期型 10 无 否 是 出库单号 单精度数 - 无 否 否 货物规格名称 字符 20 无 否 是 类别 字符 10 无 否 是 等级 字符 9 无 否 否 存放仓库 字符 10 无 否 否 件数 字符 6 无 否 否 单价 单精度值 10 无 否 否 税率 双精度值 20 无 否 否 金额 单精度值 20 无 否 否 收货单位 字符 10 无 否 否 经办人 字符 10 无 否 否 经办人编码 单精度数 10 无 否 否 (7)系统入库登记表 系统入库登记表的主要功能就是公司购进货物时,仓库货物流入时记录的表格。它的基本字段和系统出库登记表的字段相同,只加入了一些特殊的字段反映入库的特性,将“出库日期”“出库单号”改为“入库日期”“入库单号”即可。故表略。 (8)库存出入库汇总表 库存出入库汇总表保存了所有保存引起库存货物出入的交易信息,是库存管理系统的核心。 表7 库存出入库汇总表 字段名称 数据类型 大小 默认值 可否为空 主键 交易流水号 自动长整型 - 无 否 是 交易类型代码 字符 4 无 否 否 单据编号 字符 20 无 是 否 货物代码 字符 10 无 否 否 货物数量 双精度数 - 无 否 否 货物批号 字符 20 无 否 否 生产日期 日期\时间 - 无 否 否 存放仓库代码 字符 9 无 否 否 物料来源或取向代码 字符 4 无 否 否 外部经手人代码 字符 6 无 否 否 入库日期 日期\时间 - 无 否 否 仓库名称 字符 6 无 否 否 原始库存件数 双精度数 4 无 可 否 初期库存件数 双精度数 4 无 可 否 本期入库件数 双精度数 4 无 可 否 本期出库件数 双精度数 4 无 可 否 当前库存金额 双精度数 4 无 可 否 累计入库金额 双精度值 10 无 否 否 累计入库件数 单精度值 10 无 否 否 2.4.3创建数据库 (1)采用Qracle数据库管理系统。 启动Qracle数据库管理系统的DBCA功能,创建数据库.并打开OEM控制台。进 而创建货物属性(GOOD-INFO)表。创建货物汇总(STOCK-INFO)表。 (2)运用 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 的SQL语言来完成GOOD-INFO表的创建。 具体方法略。 2.5库存管理系统的具体设计: 2.5.1登录模块 在库存管理系统中,登陆界面是非常重要的,它是整个库存管理系统的基础,只有通过此登录界面的认可,才能进入库存管理系统,正确的执行库存管理的功能。登录模块如下图所示: 图3 库存管理系统登录模块 在此窗口中公司员工必须输入正确的姓名和密码,才能进入系统主界面,事先将公司员工的姓名和密码以及ID号存在一个Qracle数据库worker-info表中,当员工登录此界面时,系统将用户输入的姓名和密码与数据库中事先存放的姓名和密码进行比较,相同则进入系统主界面,否则提示用户输入密码错误或者提此用户不存在。 对应的系数实现该页面的代码如下: package untitled5; import java.applet.*; import java.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 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
本文档为【JAVA课程设计---库存管理系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_083599
暂无简介~
格式:doc
大小:152KB
软件:Word
页数:44
分类:互联网
上传时间:2017-09-26
浏览量:115