Java语言课程设计小型超市管理系统.doc

上传人:土8路 文档编号:10340610 上传时间:2021-05-10 格式:DOC 页数:23 大小:200.50KB
返回 下载 相关 举报
Java语言课程设计小型超市管理系统.doc_第1页
第1页 / 共23页
Java语言课程设计小型超市管理系统.doc_第2页
第2页 / 共23页
Java语言课程设计小型超市管理系统.doc_第3页
第3页 / 共23页
Java语言课程设计小型超市管理系统.doc_第4页
第4页 / 共23页
Java语言课程设计小型超市管理系统.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《Java语言课程设计小型超市管理系统.doc》由会员分享,可在线阅读,更多相关《Java语言课程设计小型超市管理系统.doc(23页珍藏版)》请在三一文库上搜索。

1、JAVA语言课程设计报告题 目:小型超市管理系统设 计 者: 专业班级: 学 号: 指导教师: 2010 年 12 月 12 日 计算机学院目录一、系统需求分析- 1 -1.1系统名称:- 1 -1.2系统介绍:- 1 -1.3开发背景- 1 -1.4.系统面向的用户群体- 1 -1.5开发环境- 1 -二、系统总体设计- 2 -2.1系统功能结构图- 2 -三、系统详细设计- 2 -3.1数据库实体E-R图设计- 2 -3.2数据库表的设计- 4 -3.3物理设计文档- 6 -3.4详细设计- 10 -四、系统总结- 20 -五、系统设计心得体会- 21 -六、参考文献- 21 -一、系统需

2、求分析1.1系统名称:小型超市管理系统1.2系统介绍:界面设计简洁、友好、美观大方操作简单、快捷方便数据存储安全、可靠信息分类清晰、准确强大的查询功能、保证数据查询的灵活性提供销售排行,为管理员提供真实的数据信息提供灵活、方便的权限设置功能,使整个系统的管理分工明确对用户的输入的数据,系统进行严格的数据检验,尽可能排人为错误1.3开发背景随着现代科学技术的迅猛发展,计算机技术已经渗透到各个领域,成为各行业必不可少的工具,特别是Internet技术的推广和信息高速公路的建立,使IT产业在市场竞争中越发显示出其独特的优势,步入信息化时代,有巨大的数据信息等待加工处理和传输,这使得对数据库的进一步开

3、发和利用显得尤为迫切。作为国内市场的一些中小型超市,它们在信息化过程中的步伐要落后于大中型超市,而对于这些企业的资源管理,信息的存储和处理也显得迫切需要,要适应市场竞争,就需要有高效的处理方式和管理方法,因此加快超市的信息化进程是必不可少的。我国的超市在20世纪90年代初期形成,现在已经成为我国零售业的一种重要形态,为国民经济的发展发挥了重要的作用。随着经济的快速发展,超市的经营管理也变得愈加复杂,早期的售货员站柜台的形式早已不能满足现有销售业的发展,这样就迫切地需要引入新的管理技术。1.4.系统面向的用户群体主要是中小型超市使用者,该消费群体具有以下特征:1超市日常管理人工化居多,工作效率较

4、低;2超市日常交易额较小,货物流通较小,不愿花高价购进大型超市管理系统。因此,该消费群体对产品的功能性需求并不高,只需满足前台销售系统、后台货物管理即可。1.5开发环境Eclipse+mysql二、系统总体设计2.1系统功能结构图登陆界面主界面商品信息管理基本信息管理进销管理查询统计权限管理库存管理供货商信息管理进销管理退货处理商品查询供货商查询库存盘点生成报表修改密码权限管理商品查询数据统计用户管理三、系统详细设计3.1数据库实体E-R图设计(1)图书信息实体E-R图商品进货价商品编号商品名称有效期数量下限单位销售价生产日期(2)读者信息实体用户用户名用户编号用户类型用户密码用户状态(3)图

5、书借阅实体供货商供货商姓名供货商地址供货商编号供货商电话(4)多图之间的E-R图商品进货价商品编号商品名称有效期数量下限单位销售价生产日期供货商供货商姓名供货商地址供货商编号供货商电话用户用户名用户编号用户类型用户密码用户状态出入库供货3.2数据库表的设计数据库名:limitedmarket(1) 用户登录表(account)字段名类型长度字段约束中文名AccountnumberInteger登录号Accountnamevarchar30Not null登录名Accountpasswordvarchar20Not null登录密码accountTypesmallint6Not null登录类型

6、accountStatesmallint6Not null登录状态managerIDIntegerNot null用户ID(2) 用户信息表(manager)字段名类型长度字段约束中文名managerIDInteger用户编号managernamevarchar20Not null用户姓名mobilephonevarchar15手机号码phonevarchar15固定电话manageremailvarchar30电子邮件(3) 商品信息表(commodity)字段名类型长度字段约束中文名commodityIDInteger商品编号Commoditynamevarchar40Not null商品

7、名称producedatedatatimenot null生产日期Inpricenumeric2Not null进货价格salepricenumeric2Not null销售价格storagetimeintNot null有效期downlimitintNot null数量下限unitvarchar8Not null单位providernumberint供应商编号indatedate进货日期(4) 供应商表(provider)字段名类型长度约束中文名providernumberint供应商编号providernamevarchar40Not null供应商名称provideraddressvar

8、char60Not null供应商地址phonevarchar20Not null供应商电话(5) 销售表(sale)字段名类型长度约束中文名saleidint销售票号commodityidintNot null商品编号selltimedateNot null销售日期numberintNot null销售数量moneyfloatNot null收入operatorvarchar45Not null销售员commoditynamevarchar45Not null商品名称(6) 库存信息表(storage)字段名类型长度约束中文名storageidint入库编号commoditynamevarc

9、har45Not null商品名称commodityidvarcharNot null商品编号unitvachar45Not null单位pricefloat45Not null单价outdatedateNot null退货时间providervarchar45Not null供应商operatorvarchar45Not null操作员numberintNot null数量(7) 销售退货(returnsale)字段名类型长度约束中文名Rsaleidint退货票号commodityidintNot null商品编号commoditynamevarchar商品名称numberIntNot nu

10、ll商品数量moenyfolatNot null金额returntimedateNot null退货时间operatorvarchar45Not null操作员(8) 入库退货(returnsale)字段名类型长度约束中文名Ridint退货编号commoditynamevarcgar45Not null商品名称commodityidintNot商品编号pricefloatNot null价格outdatedateNot null退货时间providervarchar45Not null供应商名称numberintNot null退货数量unitvarchar8Not null单位3.3物理设计

11、文档/*-创建数据库-*/本系统使用mysql数据库,首先我们在Navicat for MySQL的Host: localhost下创建数据库limitedmarket,选择数据库编码为utf8 - UTF-8 Unicode。或使用sql语句create database limitedmarket创建数据库。/*-创建基本表-*/* 创建account表*/DROP TABLE IF EXISTS account;CREATE TABLE account ( accountNumber Integer NOT NULL auto_increment, accountName varchar

12、(30) NOT NULL, accountPassword varchar(20) NOT NULL, accountType smallint(6) NOT NULL, managerID Integer default NULL, accountState smallint(6) NOT NULL, PRIMARY KEY (accountNumber), KEY FK_manage (managerID), CONSTRAINT FK_manage FOREIGN KEY (managerID) REFERENCES manager (managerID) ENGINE=InnoDB

13、DEFAULT CHARSET=utf8;/*创建manage表*/DROP TABLE IF EXISTS manager;CREATE TABLE manager ( managerID Integer NOT NULL auto_increment, managerName varchar(20) NOT NULL, managerMobilephone varchar(15) , managerRegionNumber varchar(4) , managerEMail varchar(30) default NULL, managerPhone varchar(10) ,PRIMAR

14、Y KEY (managerID) ENGINE=InnoDB DEFAULT CHARSET=utf8;/*创建commodity表*/DROP TABLE IF EXISTS commodity;CREATE TABLE commodity ( commodityID integer NOT NULL auto_increment, providernumber int(11) default NULL, commodityname varchar(45) NOT NULL, inDate datetime NOT NULL, producedate datetime NOT NULL,

15、inprice float NOT NULL, saleprice float NOT NULL, storagetime int(11) NOT NULL, downlimit int(11) NOT NULL, unit varchar(8) default NULL, PRIMARY KEY (commodityID), KEY FK_supply (providernumber), CONSTRAINT FK_supply FOREIGN KEY (providernumber) REFERENCES provider (providernumber) ENGINE=InnoDB DE

16、FAULT CHARSET=utf8;/*创建returncommodity*/DROP TABLE IF EXISTS returncommodity;CREATE TABLE returncommodity ( RCid int unsigned NOT NULL auto_increment, commodityname varchar(45) NOT NULL, commodityid varchar(45) NOT NULL, unit varchar(45) NOT NULL, price float NOT NULL, outdate datetime NOT NULL, pro

17、vider varchar(45) NOT NULL, operator varchar(45) NOT NULL, number int unsigned NOT NULL, PRIMARY KEY (RCid) ENGINE=InnoDB DEFAULT CHARSET=utf8;/*创建sale表*/DROP TABLE IF EXISTS sale;CREATE TABLE sale ( commodityname varchar(45) NOT NULL, commodityid int unsigned NOT NULL, sellTime datetime NOT NULL, n

18、umber varchar(45) NOT NULL, money double NOT NULL, operator varchar(45) NOT NULL, saleid int NOT NULL auto_increment, PRIMARY KEY (saleid) ENGINE=InnoDB DEFAULT CHARSET=gb2312 PACK_KEYS=1;/*创建returnsale表*/DROP TABLE IF EXISTS returnsale;CREATE TABLE returnsale ( Rsaleid int unsigned NOT NULL auto_in

19、crement, commodityid int unsigned NOT NULL, commodityname varchar(45) NOT NULL, number int unsigned NOT NULL, money double NOT NULL, returnTime datetime NOT NULL, operator varchar(45) NOT NULL, PRIMARY KEY (Rsaleid) ENGINE=InnoDB DEFAULT CHARSET=utf8;/*创建provider表*/DROP TABLE IF EXISTS provider;CREA

20、TE TABLE provider ( providernumber int(11) NOT NULL auto_increment, phone varchar(20) NOT NULL, provideraddress varchar(60) NOT NULL, providername varchar(40) NOT NULL, PRIMARY KEY (providernumber) ENGINE=InnoDB DEFAULT CHARSET=utf8;/*创建stroge表*/DROP TABLE IF EXISTS storage;CREATE TABLE storage ( st

21、orageid int unsigned NOT NULL auto_increment, commodityname varchar(45) NOT NULL, commodityid int unsigned NOT NULL, unit varchar(45) NOT NULL, price float NOT NULL, indate datetime NOT NULL, provider varchar(45) NOT NULL, operators varchar(45) NOT NULL, number int unsigned NOT NULL, PRIMARY KEY (st

22、orageid) ENGINE=InnoDB DEFAULT CHARSET=utf8/* 创建storageinfo表*/DROP TABLE IF EXISTS storageinfo;CREATE TABLE storageinfo ( commoditynumber int unsigned NOT NULL, accountid int unsigned NOT NULL, amount int unsigned NOT NULL, storageid int unsigned NOT NULL auto_increment, money double NOT NULL, PRIMA

23、RY KEY (storageid) ENGINE=InnoDB DEFAULT CHARSET=utf8;3.4详细设计(1)数据库与Eclipse的连接package dao;import java.sql.Connection;import java.sql.DriverManager;import java.sql.Statement;/* * * author Administrator */public class Connectdatabase protected static String dbClassName = com.mysql.jdbc.Driver;protecte

24、d static String dburl=jdbc:mysql:/127.0.0.1:3306/limitedmarket?user=root&password=123;static Connection con = null;static Statement stmt = null;public static Connection getConnection() throws ExceptionClass.forName(dbClassName);con = DriverManager.getConnection(dburl);return con; public static State

25、ment getStatement() throws ExceptionClass.forName(dbClassName);con = DriverManager.getConnection(dburl);stmt = con.createStatement();return stmt;(2)主要代码stmt = con.createStatement();/* statement对象静态执行查询sql语句 */public Dao()public static ResultSet findForResultset(String sql) ResultSet rs = null; State

26、ment smt; try smt = Connectdatabase.getStatement(); rs = smt.executeQuery(sql); System.out.print(sql语句已经执行!); catch (Exception ex) Logger.getLogger(Dao.class.getName().log(Level.SEVERE, null, ex); return rs;/* statement对象静态执行插入、删除、更新sql语句 */public static int update(String sql) int result = 0; try St

27、atement smt = Connectdatabase.getStatement(); result = smt.executeUpdate(sql); catch (Exception ex) Logger.getLogger(Dao.class.getName().log(Level.SEVERE, null, ex); return result;/* 指定参数的查询sql语句,动态 */public static ResultSet query(String querystr) ResultSet set = findForResultset(querystr); return s

28、et;/* 执行查询的sql语句 */public static int delete(String sql) return update(sql);/* 插入查询语句 */public static boolean insert(String sql) boolean result = true;try Statement stmt = Connectdatabase.getStatement();result = stmt.execute(sql); catch (Exception e) e.printStackTrace();return result;public static Li

29、st findForList(String sql) List list = new ArrayList();ResultSet rs = findForResultset(sql);try ResultSetMetaData metaData = rs.getMetaData();int colCount = metaData.getColumnCount();while (rs.next() List row = new ArrayList();for (int i = 1; i = colCount; i+) String str = rs.getString(i);if (str !=

30、 null & !str.isEmpty()str = str.trim();row.add(str);list.add(row); catch (Exception e) e.printStackTrace();return list;/用户登录方法public static Account getUser(String username,String password) Account account = new Account(); ResultSet rs = findForResultset(select * from account where accountName = +use

31、rname+); try if (rs.next() account.setAccountName(username); account.setAccountPassword(rs.getString(accountPassword).trim(); if (account.getAccountPassword().equals(password) account.setAccountName(rs.getString(accountName).trim(); account.setAccountState(Integer.parseInt(rs.getString(accountstate)

32、;account.setAccountType(Integer.parseInt(rs.getString(accounttype);account.setManagerId(Integer.parseInt(rs.getString(managerid);account.setAccountNumber(Integer.parseInt(rs.getString(accountnumber); else account.setAccountName(null); account.setAccountPassword(null); catch (Exception e) e.printStac

33、kTrace(); return account;/ 获取用户对象的方法public static Account getUser(Item item) String where = AccountName= + item.getName() + ;/ if (item.getId() != null)/ where = name= + item.getId() + ;ResultSet rs = findForResultset(select * from account where + where);Account account = new Account();try if (rs.ne

34、xt() account.setAccountName(rs.getString(AccountName).trim();account.setAccountPassword(rs.getString(AccountPassword).trim();account.setAccountState(Integer.parseInt(rs.getString(AccountState).trim();account.setAccountType(Integer.parseInt(rs.getString(AccountType).trim(); catch (SQLException e) e.p

35、rintStackTrace();return account; /* 通过存储过程添加商品 */ public static boolean addcommodity(Commodity com) boolean flag = true; if(com=null) return true; try conn = Connectdatabase.getConnection(); CallableStatement callstm = conn.prepareCall(call insertcommodity(?,?,?,?,?,?,?,?,?); callstm.setInt(1, com.g

36、etProvidernumber(); callstm.setString(2, com.getCommodityName(); callstm.setFloat(3, com.getInPrice(); callstm.setFloat(4, com.getSalePrice(); callstm.setInt(5, com.getStorageTime(); callstm.setInt(6, com.getDownlimit(); callstm.setString(7, com.getUnit(); callstm.setString(8, com.getInDate(); calls

37、tm.setString(9, com.getProcudeDate(); callstm.execute(); catch(Exception e) flag = true; flag = false; return flag; / 读取商品信息public static Commodity getSpInfo(Item item) String where = commodityname= + item.getName() + ;if (item.getId() != null)where = commodityID= + item.getId() + ;ResultSet rs = fi

38、ndForResultset(select * from commodity where + where);Commodity spInfo = new Commodity();try if (rs.next() spInfo.setCommodityId(Integer.parseInt(rs.getString(1);spInfo.setCommodityName(rs.getString(3);spInfo.setProvidernumber(Integer.parseInt(rs.getString(2);spInfo.setInDate(rs.getString(4);spInfo.setProcudeDate(rs.getString(5);spInfo.setInPrice(Float.parseFloat(rs.getString(6);spInfo.setSalePrice(Float.parseFloat(rs.getString(7);spInfo.setStorageTime(Integer.parseInt(rs.getString(8);spInfo.setDownlimit(Integer.parseInt(rs.getString(9);spInfo

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1