logo资料库

小型自选商场商品管理设计报告.doc

第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
资料共12页,剩余部分请下载后查看
一.课设题目:小型自选商场商品管理 二.设计要求 对小型自选商场的商品进货、销售、库存等环节进行管理 三. 需求分析 3.1 信息要求 本系统包含商场库存基本信息,供应商基本信息,进货单记录信息,销售单 记录信息以及操作员权限信息等。 3.2 功能要求 本系统要求能对小型自选商场的商品进货、销售、库存等环节进行管理。主 要有: 1)能记录每一笔进货,查询商品的进货记录,并能按月进行统计。 2)能记录每一笔售货,查询商品的销售情况,并能进行日盘存、月盘存。 3)在记录进货及售货的同时,必须动态刷新库存。 4)能查询某个厂商或供应商的信息。 5)设计收银台程序,能根据输入的商品编号、数量,显示某顾客所购商品 的清单,并显示收付款情况。 3.3 可行性分析 系统数据库采用目前比较流行的 MySQL,开发本地数据库。该数据库系统 在安全行、准确性、运行速度方面有绝对的优势,并且处理数据库量大,效率高; 开发工具采用 eclipse。Eclipse 中的 GUI 可以快速创建界面。本次开发我用了 eclipse 中的一个插件 Jigloo 开发界面,手动画出需要的界面,代码自动生成。 1.设计模式: ○1 人员表(职工编号、密码、职工姓名、职位、工资) ○2 进货表(顺序码、条形码、进价、采购数量、采购日期、职工编号) ○3 售货表(顺序码、条形码、数量、零售价、销售日期、职工编号、一次交易每 种商品总价) ○4 库存表(条形码、商品名称、库存量、生产厂商、商品规格、零售价) 2.E-R 图:
职 位 工 资 进 价 条 形 码 顺 序 码 职 工 姓 名 职 工 编 号 零 售 价 m m 人 员 m 销 售 n 查 询 条 形 码 商 品 n 销 售 采 购 n 货 源 n 入 库 1 库 存 n 1 采 购 日 期 采 购 数 量 零 售 价 商 品 规 格 商 品 名 称 生 产 厂 商 顺 序 码 总体功能图: 一 次 交 易 中 每 种 商 品 的 总 价 格 销 售 日 期 销 售 数 量 条 形 码 库 存 量 超市管理信息系统 销售人员 采购员 管理员 销 售 取 消 销 售 采 购 货 物 缺 货 查 询 库存 查询 雇 员 查 询 进 货 查 询 销 售 查 询 删 除 雇 员 添 加 雇 员 四.各功能模块详细设计 1) 用 MySQL 可 视 化 工 具 分 别 创 建 雇 员 表 (employee )、 进 货 表 (in_goods)、售货表(sale)、库存表(storage)四张表,并建立各种约 束条件。 建立的个如下图: 雇员表(employee): 2
进货表(in_goods): 售货表(sale): 库存表(storage): 五.前台界面的设计与实现 在这个模块中,主要有两个操作:“登陆”和“退出”。 “登陆”主要是将输入的编号、密码和数据库中的数据进行校验,如果数据 3
库中存在则允许登陆,否则不能登陆。主要代码如下: q.initSQLLink(null, null, null); q.setRs(q.getStmt().executeQuery("select * from employee")); while(q.getRs().next()){ if(jTextField_id.getText().equals(q.getRs().getString("eid")) && pwd.equals(q.getRs().getString("pwd"))){ setVisible(false); if(q.getRs().getString("job").equals("saler")){ JFrame_saler jf_s = new JFrame_saler(); jf_s.setLog_eid(jTextField_id.getText()); }else if(q.getRs().getString("job").equals("buyer")){ NewJFrame_buyer njb = new NewJFrame_buyer(); njb.setLog_eid(jTextField_id.getText()); if(q.getRs().getString("job").equals("administrator")){ }else NewJFrame_adm nja = new NewJFrame_adm(); nja.setLog_eid(jTextField_id.getText()); } dispose();//关闭本窗口 System.gc();//建议垃圾回收机制回收本窗口 flag = false; } JOptionPane.showMessageDialog(null, "您输入的编号与密码有误,请您重 } if(flag){ 新输入!"); } jTextField_id.setText(""); jTextField_password.setText(""); flag = true; “退出”则是退出登陆界面。 2) 销售人员模块 4
在这个模块中,销售人员主要有两个操作,即“销售商品”和“取消交 易”。“销售商品”分两步进行: ○1 先将需要销售的商品添加到 jtable 表中。首先输入条形码,如果数据 库中不存在此商品,则提示“没有此商品,请重新输入!”;否则,敲击“Enter” 键,商品的信息会自动显示在各 jTextField 文本框中。再点击“添加”,商品 添加到 jtable 表中,如果库存不足,则还会有相关提示。关于此部分功能的 代码如下: while(q.getRs().next()) { int num = q.getRs().getInt("s_num"); if(num
sale_num,price,eid,every_due_money) values("+jTextField_barcode.getText()+"," +Integer.parseInt(jTextField_num.getText()) +","+Integer.parseInt(jTextField_price.getText() ) +",'"+log_eid+"',"+every_due_money+")"); //添加下一行 tableModel.addRow(new Object[]{jTextField_barcode.getText(), jTextField_name.getText(),jTextField_price.getText(), jTextField_num.getText(),jTextField_commodity.getText()} ); //将文本框中的内容清空,以便下一次输入 clearTextField(); break; } } ○2 添加完成要销售的商品时,进行提交,即将销售记录保存在数据库中。 提交代码如下: stmt.executeQuery(“commit”); 3) 采购员模块 采购员模块主要有三个功能:向库存中添加货物、缺货查询和库存查询。 ○1 添加货物中也用到了信息的自动显示的功能,此功能在前面已描述, 6
这里不再说明。本模块的添加功能与销售模块中的添加货物功能相似,只是 此模块的添加货物的过程中,直接把货物的信息提交到数据库中。 ○2 缺货查询。此功能比较简单,就是把库存中数量小于5的商品显示到 jTable中。以后的查询和此功能相似,于是我把所有的查询功能打包成一 个Query类,如果要用到查询功能,就可以在其所在的类中创建一个Query 对象,直接调用Query中的查询方法buyer_storageQuery (DefaultTableModel tableModel , String str),其中 tableModel为将查询结果输入到table表中的table格式名,str为将要 查询内容的SQL语句,将其作为字符串参数传入到query()方法中,其查 询条件是str = "select * from storage where s_num < 5"。其 方法的主要代码如下: initSQLLink(null , null , null); rs = stmt.executeQuery(str+""); NewJFrame_buyer. addRow_allQuery(tableModel , rs); 注:initSQLLink(null , null , null)是将连接数据库的参数初始化的 方法,其具体代码如下: protected void initSQLLink(Connection c , Statement s , ResultSet r){ conn = c; stmt = s; rs = r; try { Class.forName("com.mysql.jdbc.Driver"); //2.建立连接 conn = DriverManager.getConnection("jdbc:mysql://Localhost :3306/supermarket", "root", "19861004"); //3.获取Statement对象 stmt = conn.createStatement(); } catch (ClassNotFoundException e) { System.out.println("没有找到类异常!"); } catch (SQLException e) { System.out.println("SQL语句错误!"); } } ○3 库存查询与缺货查询类似,库存查询是将库存中所有商品的信息全部打印 出来。要完成查询功能,只需将查询条件 str 换成 select * from storage 7
即可。 5)管理员模块 管理员模块的功能较多,但是不很复杂。其主要功能有:添加雇员、删除雇 员、雇员信息查询、货物查询。其中,货物查询又包括销售查询、库存查询和进 货查询。 ○1 添加雇员,就是将新员工的信息添加到数据库中。先输入雇员编号,如 果此雇员编号存在,则提示管理员重新输入雇员编号;如果输入的信息不全,则 提示“不能添加空值”;否则,输入新雇员的全部信息。还有,雇员的职位只能 有三种:销售员(saler)、采购员(buyer)、管理员(administrator)。点击“添加雇 员”,将雇员信息添加到数据库中。其代码如下: if(jTextField_eid.getText().equals("") &&jTextField_ename.getText().equals("") &&jTextField_pwd.getText().equals("") &&jTextField_job.getText().equals("") &&jTextField_sal.getText().equals("")) JOptionPane.showMessageDialog(null, "不能添加空值!");//提示消息对话框 else {//----------------------数据库连接------------------------------- boolean flag = true; //1.加载驱动 try { 8
分享到:
收藏