一学期项目实训超市收银系统(1)项目背景超市系统发展背景随着信息化应用的普及和超市商品种类不断增加,人工管理超市也将越来越困难。商品品种繁多,管理起来非常困难。无法及时了解最新销售的商品库存信息。供应商过多,无法及时有效管理。工作效率低下,出错概率高,管理成本高。系统分析系统概要设计实现商品管理、销售业绩盘点、库存预警等功能。一般收银用户,进行收银、盘点等功能,管理员可对库存、入库、用户设置、查询汇总等能。系统设计系统预览系统开发环境操作系统:windowsXP。Java虚拟机:JDK1.6开发工具:MyEclipse6.5IDE插件:使用jigloo插件进行图形界面设计数据库服务器:MSSQLServer2005数据库设计-1数据库分析1、系统实体商品、会员、供货商、用户(管理员、收银员)2、系统概念模型商品、商品类型、商品计量单位供货商、采购记录会员、会员充值记录收银员、销售订单、销售订单明细数据库设计-2数据库设计数据库表设计销售明细表销售表供货商表进货表商品表单位表用户表商品类型充值记录表会员表数据库脚本-1数据库表创建。注意:先创建主键表,再创建外键表。createtableGoodsClass--商品类别(CIdintidentity(1,1)primarykey,CNamenvarchar(40),)createtableGoodsUnit--商品单位(GUIdintidentity(1,1)primarykey,GUNamenvarchar(10))createtableGoods--商品表(GIdnvarchar(20)primarykey,--条形码CIdintforeignkeyreferencesGoodsClass(CId),--商品所属种类GNamenvarchar(50),--商品名称GSpecnvarchar(50),--商品规格GUIdintforeignkeyreferencesGoodsUnit(GUId),--商品单位GMinNumberint,--报警数SalePricemoney,--销售价格VipPricemoney,--会员价格GAmountint--库存数量)createtableGoodsPrivoder--商品供货商(GPIdintidentity(1,1)primarykey,GPNamenvarchar(20),--供货商名称GPPhonenvarchar(20),--电话GPAddressnvarchar(50),--地址GPLinkmannvarchar(20),--联系人)createtableInStore--进货单(采购单)(InStoreIdnvarchar(20)primarykey,--进货流水号GIdnvarchar(20)foreignkeyreferencesGoods(GId),--商品条码GPIdintforeignkeyreferencesGoodsPrivoder(GPId),--供货商InStoreTimedatetime,--进货时间InStoreAmountint,--进货数量PurchasePricemoney,--进货价格)数据库脚本-2会员管理createtableShopVip--会员表(VIdnvarchar(20)primarykey,--会员卡号VNamenvarchar(20),--姓名VPhonenvarchar(20),--电话ConsumeSummoney,--消费总金额ConsumeScoreint,--积分ConsumeCountint,--消费次数ConsumeRatemoney,--积分率VBirthdaydatetime,--生日VBalancemoney--余额)createtableVipSaveMoney--充值记录(vsidintidentity(1,1)primarykey,VIdnvarchar(20)foreignkeyreferencesShopVip(VId),VTimedatetime,--缴费时间VMoneymoney,--缴费金额UIdnvarchar(10)foreignkeyreferencessuperMarketUser(Uid)--充值员)数据库脚本-3收银管理createtableSell--销售单(SIdnvarchar(20)primarykey,--销售流水号VIdint,--会员卡号,为空则是非会员购买STimedatetime,--销售时间SCountPricemoney,--销售总金额SCountint,--销售总数(种类)UIdnvarchar(10)foreignkeyreferencessuperMarketUser(Uid),--收银员)createtableSellDetail--销售明细(SellDetailIdintidentity(1,1)primarykey,SIdnvarchar(20)foreignkeyreferencesSell(SId),--销售流水号GIdnvarchar(20)foreignkeyreferencesGoods(GId),--商品编号SQuantityint,--单品数量SSalePricemoney--销售单价)数据库脚本-4用户管理createtableSuperMarketUser--用户表(UIdnvarchar(10)primarykey,--账号UPasswordnvarchar(10),--密码UNamenvarchar(20),--真实姓名URolenvarchar(10),--角色(两种:管理员、收银员))系统主要功能模块主要功能模块序号功能名称描述1商品管理主要对超市销售商品进行管理与维护,对不再销售的下架,对新进货的商品进行添加,对新到货的商品录入库存等操作。2供货管理主要是对超市商品供货商进行维护设置。3会员管理主要对超市会员进行管理,同时对会员进行积分兑换、会员卡冲值等操作4用户管理主要对超市系统的使用用户进行管理,主要包括创建新用户、修改用户信息等,主要是管理员来设置5单位管理管理员功能,主要是管理超市商品的计量单位。如:个、支、袋、箱等。6类别管理主要对超市销售的商品进行分类设置,以便能更好的对不同的商品进行分类销售和管理。7系统管理主要是统计、查询、汇总功能。8收银商品信息维据商品进货管理商品管理供货商管理1、供货商添加2、供货商列表与查询3、供货商修改4、供货商删除供货管理会员管理1、会员显示与查询2、会员添加3、会员修改4、会员冲值5、会员删除6、会员积分兑奖会员管理用户管理用户管理单位管理单位管理类别管理类别管理系统设置与统计管理系统管理顾客收银管理系统收银一、项目结构系统架构设计按分层设计与组件隔离原则主要分为以下几层。1、公共层主要将数据源类、BaseDAO类、工具类单独设计出来,作为公共类进行共享。2、DAO层主要将对数据库的操作,添加、修改、删除、查询写到一个独立类中方便统一管理。3、用户层主要是将用来显示的界面设计和事件管理写到一个类中进行设计。项目架构搭建-1二、搭建过程1.新建Java项目。2.添加项目需要的第三方jar文件。3.新建图片包,并添加图片素材。项目架构搭建-2三、项目公共类1、数据源类:主要是负责项目中数据库的Connection对象的建立与相关JDBC对象管理。src-com.tsing.base.dao-DBConnection.java2、BaseDAO类:主要封装JDBC接口和常用的数据库操作,提供给其它DAO组件继承。src-com.tsing.base.dao-BaseDAO.java3、日期工具类:主要负责项目中日期对象的各种格式转换。src-com.tsing.base.util-DateUtil.java项目架构搭建-3三、项目功能模块结构1、XXX_DAO类:主要是负责该功能与数据库的常用操作,如查询、添加、修改、删除等,继承BaseDAO类。src-com.tsinghua.goodsmanager.dao-GoodsDao.java2、model类:主要是负责封装数据,在用户层和DAO层进行数据传输,为属性提供getter与setter封装方法。src-com.tsinghua.goodsmanager.model-GoodsBean.java3、用户窗体类:主要用户界面数据显示,并提供操作维护按钮。src-com.tsinghua.goodsmanger.jpanel-GoodsMangerPanel.java项目架构搭建-44、事件响应与处理过程用户界面注册事件监听事件处理/***按条码编号查询商品*/privatevoidselectGoodsByWord(){//处理查询。【代码略】}//查询监听jButton3.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){selectGoodsByWord();}});单元测试单元测试BUG修正