超市进销存管理系统参考文献_第1页
超市进销存管理系统参考文献_第2页
超市进销存管理系统参考文献_第3页
超市进销存管理系统参考文献_第4页
超市进销存管理系统参考文献_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 摘摘 要要 最初的超市进销存管理都是靠人力来完成的 但随着在市场经济的引导下 我国的超市经营规模日益扩大 销售额和门店数大幅度增加 许多超市正向品 种多样化发展 需要处理大量的信息 时刻要更新产品销售信息 不断添加商 品信息 并对商品的各种信息进行统计分析 因此 在超市管理中引进现代化 的办公软件 实现超市商品信息的处理 从而方便管理人员的决策和管理 解 除后顾之忧 本系统主要完成对超市的管理 包括顾客管理 厂家管理 商品 管理 退货管理 购物车管理 采购管理 个人管理 管理员管理 系统管理 等几个方面 系统可以完成对各类信息的浏览 查询 添加 删除 修改等功 能 系统采用 C S 架构 采用 SQL Server 2000 来设计数据库 并使用当前优 秀的集成开发工具 Eclipse 并安装 MyEclipse 插件 项目运行环境为 JDK1 6 开发模式采用敏捷开发模式 使用 CVS 进行协同开发 代码书写格式规范 注释 详细 关键字关键字 Java SQL Server 超市 MyEclipse 进销存管理系统 Swing 2 第第 1 章章 概述概述 超市进销存管理系统是一个典型的信息管理系统 MIS 其开发主要包括后 台数据库的建立和维护以及前端界面程序的开发两个方面 超市进销存管理系 统在设计上体现了人性化和 以人为本 的精神 界面设计上亲切友好 简单 直观 便于操作 系统的核心是进货 销售和库存三者之间的联系 每一个表的修改都将会 牵扯到其它的表 当完成进货 销售和退货操作时系统会自动地完成相对应信 息的修改 查询功能也是系统的核心之一 在系统中可以进行模糊查询和精确 查询 其目的都是为了方便用户使用 以求更快的查找到相应的基本信息 利用超市管理系统可以在以下几个方面提高超市管理的水平 提高管理效率 提高销售额 降低人工成本 降低采购成本 商业数据智能分析 高效决策 第第 2 章章 系统开发的技术基础系统开发的技术基础 2 1 Java 概述概述 Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语 言和 Java 平台的总称 用 Java 实现的 HotJava 浏览器 支持 Java applet 显示了 Java 的魅力 跨平台 动态的 Web Internet 计算 从此 Java 被广 泛接受并推动了 Web 的迅速发展 常用的浏览器现在均支持 Java applet 2 2 SQL Server 2000 简介简介 SQL Server 是一个关系数据库管理系统 它最初是由 Microsoft Sybase 和 Ashton Tate 三家公司共同开发的 于 1988 年推出了第一个 OS 2 版本 在 Windows NT 推出后 Microsoft 与 Sybase 在 SQL Server 的开发上就分道扬 镳了 Microsoft 将 SQL Server 移植到 Windows NT 系统上 专注于开发推广 SQL Server 的 Windows NT 版本 Sybase 则较专注于 SQL Server 在 UNIX 操 作系统上的应用 在本系统使用的是 Microsoft SQL Server 以后简称为 SQL Server 或 MS SQL Server 3 2 3 Eclipse 简介简介 Eclipse 是一个开放源代码的 基于 Java 的可扩展开发平台 就其本身 而言 它只是一个框架和一组服务 用于通过插件组件构建开发环境 幸运的 是 Eclipse 附带了一个标准的插件集 包括 Java 开发工具 Java Development Tools JDT 2 4 系统系统运行坏境运行坏境 为了保证系统稳定 良好 无故障的运行 应保证 1 计算机硬件在 586 等级以上 2 因为采用 SQL Server 2000 数据库 所以操作系统最低需要安装 Windows 2000 系统要求操作系统为中文 WIN2000 WINXP WIN2003 WIN7 3 装有 Microsoft SQL Server 2000 SP4 的补丁程序 4 屏幕分辨率 800X600 以上 第第 3 章章 系统分析系统分析 3 1 可行性分析可行性分析 根据 超市进销存管理系统概要说明书 和 超市进销存管理系统详细说 明书 中的系统可行性分析的要求 指定系统可行性研究报告如下 3 1 1 技术可行性技术可行性 从技术角度分析 这项开发工作所涉及的专业技术为 Java 编程技术 Swing J2SE SQL Server2000 JDBC 由于开发中涉及 Microsoft SQL Server 2000 的应用 所以最好使用 Windows2000 以上的版本或 Windows XP 版 本 3 1 2 经济可行性经济可行性 采用计算机管理不但可以提高工作效率 而且还可以节省人力 物力 财 力 这样原来几个人干的工作现在一个人就完全可以胜任 因此单从节省的职 工工资 提高工作效率而避免各种直接或间接的经济损失角度来看 该系统实 际所能够起到的作用将会远远大于投入的开发费用 所以从经济上是完全可行 的 4 3 1 3 操作可行性操作可行性 开发所采用的工具是 MyEclipse 开发出的应用程序均是图形化界面 操作 员几乎不用记住任何 DOS 命令就可以直接操作此软件 另外 软件的操作员大 多已经会基本的 Windows 操作 即便不会操作 Windows 经过短期的培训也能 熟练地使用本软件 所以在操作上也是可行的 3 1 4 运行可行性运行可行性 本系统经过精心设计开发 比较紧凑 项目比较小 所以对软硬的要求并不 高 运行投入也相对较少 现在普通的电脑都能够满足条件 因此 本系统在 运行上是可行的 3 1 5 法律可行性法律可行性 经过参阅 学生管理手册 中学生处分 奖励 毕业等相关内容 本系统 的设计与开发完全符合学校规定 更无任何与法律相抵触的方面 因此 本系 统在法律上是可行的 综上所述 此系统开发目标已明确 在技术和经济等方面都可行 不会存 在问题 并且投入少 效率高 因此认为该超市进销存管理系统可以开发 3 2 系统需求分析系统需求分析 超市进销存系统必须提供顾客信息 厂家信息 采购信息 销售信息 库 存信息和财务信息的基础设计 提供强大的精确查找和模糊查找信息的功能 可以分不同权限 不同用户对该系统进行操作 另外 该系统还必须保证数据 的安全性 完整性和准确性 超市进销存财务一体化系统的目标是实现超市信息化管理 减少盲目采购 降低采购成本 合理控制库存 减少资金占用并提升超市综合竞争力 时间就 是金钱 效率就是生命 超市进销存管理系统能够为超市节省大量人力资源 减少管理费用 从而间接为超市节约成本 提高超市效率 3 2 1 职能分析职能分析 通过与超市人员进行交流 发现超市管理系统需要满足来自多个不同用户 的要求 在超市经营中 按照人员的职能分为五大类 分别是顾客 营业员 采购员 经理 系统管理员 顾客顾客 顾客是超市的上帝 超市的一切都是为顾客服务的 顾客的要求就是能购 买到实惠的商品 顾客按类型又可以分为三种 5 1 普通顾客 购买商品 不打折 无须注册 2 会员 购买商品 打 9 折 办会员卡 10 元 有充值功能 如果充值金 额大于 100 每充 100 元送 5 元 3 贵宾 购买商品 打 8 5 折 办贵宾卡 20 元 有充值功能 如果充值 金额大于 100 每充 100 元送 5 元 采购员采购员 采购员的要求是查看经理指派给自己的所有采购信息并按规定完成任务 即去联系厂家并按规定验收采购的商品 并退回不合格的采购商品 修改自己 的账号密码 营业员营业员 营业员的要求是销售商品给顾客 添加购物车信息 可以查看 查找 添 加 修改顾客信息 但不可以删除顾客信息 并做好记录顾客因各种原因而退 货的商品信息 修改自己的账号密码 经理经理 经理的要求是能够查看 1 采购 2 销售 3 库存 4 商品 5 营业额等 信息从而进行高效决策 如 下达采购信息 添加删除用户 即雇佣和解雇职 员 修改自己的账号密码 系统管理员系统管理员 系统管理员只具有管理用户和管理系统的权限 不具备所有用户的权限 即没有采购员 营业员 经理等角色的权限 修改自己的账号密码 3 2 2 功能分析功能分析 通过与超市管理人员进行反复的讨论 最终确定系统应该实现以下功能 1 对商品信息的变动进行处理 在商品的采购和销售过程中 商品信息总是在不断变化的 比如商品价 格的调整 商品信息的修改 新商品信息的增加以及旧商品信息的删除 因此设计系统时必须考虑到这些情况 商品信息有商品编号 商品名 商 品数量 商品规格 商品价格 厂家名等属性 2 对用户信息的变动进行处理 需考虑到职员的雇佣和解雇 所以用户信息的修改及删除也是要有的 3 对采购信息的变动进行处理 采购员在采购的过程中采购信息也在不断发生改变 因此也要充分考虑 采购信息有采购编号 采购日期 商品厂家 采购员 商品价格 商品规 格 商品数量等属性 4 对销售信息的变动进行处理 营业员在销售的过程中销售信息也在不断发生改变 如顾客买到了劣质 产品要求退货 因此也要充分考虑 5 查询及统计功能 要求可以根据指定的条件对厂家信息 顾客信息 商品信息 采购信息 销售信息进行查询和对每天账务的收入支出进行统计查询 查询又分为精 确查询和模糊查询 6 3 2 3 附加功能附加功能 为了能当超市增加新的业务需求时能方便的升级系统 所以系统应当具有 良好的扩张性 也需要能够与第三方产品对接 比如 与短信平台对接以提供 短信发送和接收功能 与声讯系统对接 提供自动呼叫服务 与邮件系统对接 以发送和接受邮件 第第 4 章章 系统设计系统设计 根据系统分析的描述以及与超市人员的沟通 实现目标如下 界面设计简洁 友好 美观大方 操作简单 快捷方便 数据存储安全 可靠 信息分类清晰 准确 强大的查询功能 保证数据查询的灵活性 提供销售排行榜 为管理员提供真实的数据信息 提供灵活 方便的权限设置功能 使整个系统的管理分工明确 对用户输入的数据 系统进行严格的数据检验 尽可能排除人为的错误 由于此系统是一个典型的客户 服务器 C S 体系结构的数据库应用程序 因此具体设计阶段主要分两大部分进行 数据库的设计和各种功能模块及页面 的设计 从运用的技术角度分析 即 SQL Server 部分的设计和 Java 部分的设 计 下面 我们将从这两个方面对系统的设计进行阐述 4 1 数据库设计数据库设计 超市进销存管理系统是一个基于 C S 架构的应用程序 它可以直接在本地 计算机上运行 而不需要向 Web 应用那样部署到指定的服务器中 所以这个超 市进销存管理系统在本地计算机上安装了 SQL Server 2000 数据库服务器 将 数据库和应用程序放在同一个计算机中 可以节省开销 提升系统安全性 另 外 本系统也可以在网络内的其他计算机中运行 但是这需要将数据库对外开 放 会降低数据安全性 其数据库运行环境如下 硬件平台 CPU Inter E2180 2GHz 内存 2GB 硬盘空间 160GB 软件平台 操作系统 Windows XP SP3 数据库 SQL Server 2000 超市进销存管理系统的数据库设计采用关系数据模型理论 有关系的元素 组成一张表 表与表之间用外键保持一致性 用主键的方式确保记录的唯一性 7 涉及的表有充值表 顾客表 厂家表 商品表 日志表 财务表 退货表 销 售表 购物车表 采购表和用户表共十一张表 超市管理系统模块分为 登录 模块 顾客管理模块 厂家管理模块 商品管理模块 退货管理模块 购物车 管理模块 采购管理模块 个人管理模块 管理员管理模块和系统管理模块共 十大模块 为了方便数据库的设计 缩小开发周期 我用 PowerDesigner 软件 把表都设计好 然后自动生成数据库的建表 SQL 语句 在对数据库进行访问时 我用到了 MVC 设计模式中 DAO Data Access Object 技术封装对数据库的查 询 删除 插入等各种操作 这样提高数据库访问的透明性和系统的灵活性 4 1 1 E R 图图 超市进销存管理系统主要实现从进货 退货 库存到销售的一体化信息管 理 涉及到了顾客信息 厂家信息 商品信息等多个实体 下面简单介绍几个 关键的实体 E R 图 顾客实体顾客实体 E RE R 图图 超市进销存管理系统将记录所有的顾客信息 顾客实体包括顾客编号 顾 客姓名 顾客性别 顾客年龄 顾客联系电话 顾客联系地址 顾客电子邮箱 顾客类型 顾客可用余额 顾客可用积分等属性 顾客 E R 图如图 1 所示 图 1 厂家实体厂家实体 E RE R 图图 超市进销存管理系统将记录所有的厂家信息 厂家实体包括厂家编号 厂 家名称 厂家负责人 厂家联系电话 厂家地址等属性 厂家 E R 图如图 2 所 示 图 2 顾客编号 顾客顾客 顾客姓名顾客性别 顾客年龄 顾客联系电话 顾客联系地址顾客电子邮箱顾客类型顾客可用余额 顾客可用积分 厂家编 号 厂家厂家 厂家名 称 厂家负责人厂家联系电 话 厂家地 址 8 商品实体商品实体 E RE R 图图 超市进销存管理系统将记录所有的商品信息 商品实体包括商品编号 商 品名称 商品数量 商品规格 商品价格 商品厂家名等属性 商品 E R 图如 图 3 所示 图 3 4 1 2 使用使用 PowerDesigner 建模建模 在数据库概念设计中已经分析了本系统中主要的数据实体对象 通过这些 实体可以得出数据表结构的基本模型 最终实施到数据库中 形成完整的数据 结构 本系统使用 PowerDesigner 工具完成数据库建模 使用的版本为 12 5 使用该工具生成的模型如图 4 下 图 4 超市进销存管理系统的模型 商品编号 顾客顾客 商品名称商品数量 商品规格商品价格商品厂家名 9 4 1 3 数据字典数据字典 表表 1 1 充值表充值表 表名数据表说明 t addmoney 存储充值信息的数据表 字段名称数据类型是否主键字段说明 AddMoneyID int 自增序列 是充值编号 顾客记录的唯一标识 BuyerIDint 顾客 ID BuyerNamevarchar 20 顾客名 AddMoneyfloat 充值 DonateMoneyfloat 赠送 AddMoneyDatedatetime 时间 UserNamevarchar 20 用户名 Balancefloat 卡内余额 表表 2 2 顾客表顾客表 表名数据表说明 t buyer 存储顾客信息的数据表 字段名称数据类型是否主键字段说明 BuyerID int 自增序列 是顾客编号 顾客记录的唯一标识 BuyerNamevarchar 10 顾客姓名 BuyerSexvarchar 4 顾客性别 BuyerAgeint 顾客年龄 BuyerPhonevarchar 20 顾客联系电话 BuyerAddressvarchar 50 顾客联系地址 BuyerEmailvarchar 20 顾客电子邮箱 BuyerTypeint 顾客类型为 0 表示普通顾客 为 1 表示会 员 为 2 表示贵宾 BuyerBalancefloat 顾客可用余额 BuyerScoreint 顾客用用积分 表表 3 3 厂家表厂家表 表名数据表说明 t factory 存储厂家 供货商 信息的数据表 字段名称数据类型是否主键字段说明 FactoryID int 自增序列 是厂家编号 厂家记录的唯一标识 FactoryNamevarchar 20 厂家名称 FactoryManagervarchar 10 厂家经理 负责人 FactoryPhonevarchar 10 厂家联系电话 FactoryAddressvarchar 50 厂家地址 10 表表 4 4 商品表商品表 表名数据表说明 t goods 存储商品信息的数据表 字段名称数据类型是否主键字段说明 GoodsID int 自增序列 是商品编号 商品记录的唯一标识 GoodsNamevarchar 10 商品名称 GoodsNumint 商品数量 GoodsTypevarchar 10 商品规格 GoodsPricefloat 商品价格 FactoryNamevarchar 20 商品厂家名 表表 5 5 日志表日志表 表名数据表说明 t money 存储日志信息的数据表 字段名称数据类型是否主键字段说明 LogID int 自增序列 是日志编号 日志记录的唯一标识 LogDatedatetime 日志日期 IpAddressvarchar 20 IP 地址 UserNamevarchar 20 用户名 LogContentvarchar 20 日志内容 表表 6 6 财务表财务表 表名数据表说明 t money 存储财务信息的数据表 字段名称数据类型是否主键字段说明 MoneyID int 自增序列 是财务编号 财务记录的唯一标识 UserNamevarchar 20 用户名 MoneyBalancefloat 金额 MoneyContentvarchar 50 内容 MoneyDatedatetime 日期 表表 7 7 退货表退货表 表名数据表说明 t quitgoods 存储退货信息的数据表 字段名称数据类型是否主键字段说明 QuitGoodsID int 自增序列 是退货编号 退货记录的唯一标识 11 GoodsIDint 退货商品 ID QuitReaseontext 退货原因 QuitGoodsTypeint 退货类型为 0 表示销售退货 为 1 表示采购退货 QuitGoodsNumint 退货数量 UserNamevarchar 20 用户名 表表 8 8 销售表销售表 表名数据表说明 t sell 存储销售信息的数据表 字段名称数据类型是否主键字段说明 SellID int 自增序列 是销售编号 销售记录的唯一标识 UserNamevarchar 20 用户名 BuyerNamevarchar 20 顾客名 ShopCarIDvarchar 50 购物车 ID GoodsNumint 数量 TotalMoneyfloat 总金额 GetMoneyfloat 实收金额 PayMoneyfloat 找零金额 SellDatedatetime 销售日期 表表 9 9 购物车表购物车表 表名数据表说明 t shopcar 存储购物车信息的数据表 字段名称数据类型是否主键字段说明 ShopCarIDvarchar 50 是购物车编号 前面是 XX XX XX 日期 后 面是四位销售流水号 GoodsIDint 商品 ID GoodsNamevarchar 10 商品名称 GoodsTypevarchar 10 商品规格 BuyGoodsNumint 购买数量 GoodsPricefloat 商品单价 BuyerNamevarchar 20 顾客名 UserNamevarchar 20 用户名 表表 1010 采购表采购表 表名数据表说明 t stock 存储采购信息的数据表 字段名称数据类型是否主键字段说明 StockID int 自增序列 是采购编号 采购记录的唯一标识 GoodsIDint 商品 ID UserIDint 用户 ID FactoryIDint 厂家 ID 12 StockDatedatetime 采购日期 StockPricefloat 采购价格 SellPricefloat 销售价格 采购价格 1 25 表表 1111 用户表用户表 表名数据表说明 t user 存储用户信息的数据表 字段名称数据类型是否主键字段说明 UserID int 自增序列 是用户编号 用户记录的唯一标识 UserNamevarchar 10 用户登陆系统时所用的用户名称 UserPwdvarchar 20 用户密码 UserPhonevarchar 20 用户联系电话 UserAddres s varchar 50 用户联系地址 UserTypeint 用户类型为 0 表示管理员 为 1 表示经理 为 2 表示营业员 为 3 表示采购员 4 2 功能模块设计功能模块设计 根据以上对超市管理系统数据库的分析 一个标准的超市进销存管理系统 应该实现的主要的功能模块有 登录模块 采购管理模块 退货管理模块 商 品信息管理模块 购物车管理模块 用户管理模块 顾客管理模块 厂家管理 模块 统计管理模块 管理员管理模块 共十大模块 下面对这些功能模块作 下简单的介绍 登录模块登录模块 用于验证用户的登录 不同的用户成功登录后显示的窗体是不一样的 这 是每个系统都应该具有的功能 在这里我要特别的介绍一下了 别小看了一个 普通的登录模块 它包含的用户需求可以是有几十条的 比如 用户不能重复 登录 输入三次密码错误后 应该锁定用户的账号 记住密码功能等等 顾客管理模块顾客管理模块 这个模块用于维护顾客的资料 系统中顾客分为三种 贵宾 会员 普通 顾客 类型为 0 表示普通顾客 为 1 表示会员 为 2 表示贵宾 系统默认有一 个 BuyerID 为 0 的普通顾客 其都有如下几个基本信息 顾客 ID 顾客名 性 别 年龄 地址 电话 E mail 顾客类别 顾客的信息是超市一个很重要的 市场资源 必须持久性的保存到数据库中 同时为了数据的安全性 应定期将 数据备份到其他介质上保存或把数据打印成资料保管起来 顾客管理包括 增 加顾客 删除顾客 修改顾客 查询顾客 为了方便 加入了准确查询和模糊 查询 厂家管理模块厂家管理模块 这个模块用于维护厂家的资料 系统中厂家有如下几个基本的信息 厂家 ID 厂家名称 厂家经理 厂家联系电话 厂家地址 厂家的信息也是超市的 一个很重要的信息 所以必须是管理员或经理才能查看 同时为了数据的安全 13 性 应定期将数据备份到其他介质上保存或把数据打印成资料保管起来 厂家 管理模块包括 增加厂家信息 删除厂家信息 修改厂家信息 查询厂家信息 为了方便 加入了准确查询和模糊查询 商品管理模块商品管理模块 这个模块用户维护商品的资料 当超市中出现了由于商品价格定价过高而 导致商品不畅销的商品时 可以更新商品的价格信息 系统中商品都有如下几 个基本信息 商品 ID 商品名称 商品数量 商品规格 商品价格 商品厂家 名 商品信息管理包括 更新商品信息 查询商品信息 为了方便 加入了准 确查询和模糊查询 退货管理模块退货管理模块 用于对采购了问题产品而退货和顾客购买了问题产品而退货的信息进行登 记 采购员对应采购退货 工作流程 对超市的采购退货记录进行详细记录 营业员对应销售退货 工作流程 对超市的销售退货记录进行详细记录 为了 方便 加入了准确查询和模糊查询 购物车管理模块购物车管理模块 用于营业员管理超市的销售业务 其主要功能是让营业员进行销售信息的 添加及查询 为了让经理和系统管理员了解销售情况 购物车管理模块工作流 程是 营业员先扫描顾客购物车里面的商品 然后确定顾客是普通顾客还是会 员 是付现金还是刷卡 最后打印出销售小票 并把销售记录进行详细的记录 为了方便 加入了准确查询和模糊查询 采购管理模块采购管理模块 用于采购员管理超市的采购业务 其主要功能是完成超市采购信息的添加 及查询 工作流程是 经理通过查看超市的销售状况和对库存进行盘点 对库 存不足的商品进行采购 并下达采购信息 指派给相对应的采购员去完成 采 购员则接受经理的命令 去厂家采购商品 并验收入库 还要对超市的采购记 录进行详细记录 为了方便 加入了准确查询和模糊查询 个人管理模块个人管理模块 用户系统用户修改自己的账号密码和修改自己的个人信息 不同的用户只 能够修改自己的密码和个人信息 提高了系统的安全性和准确性 个人管理模 块还有换班管理以及局域网聊天子系统等功能 方便用户的特殊需求 如超市 职工需请假 则可以通过换班管理 和其他人交接班 以方便超市的正常运转 局域网聊天是为了经理给超市职工下达通知以及超市职工向经理汇报情况等提 供方便 提高工作效率 异地协同办公 管理员管理模块管理员管理模块 用于给系统分配登录用户 不同的用户具有不同的权限 权限管理可以提 高系统的安全性 系统用户分为四种级别的用户 系统管理员 经理 营业员 和采购员 其都有如下几个基本信息 用户 ID 用户名 用户密码 用户电话 用户地址 用户类别 系统默认有一个系统管理员 admin 密码设置为 admin 系统管理员能够操作系统中所有的功能 用户管理包括对经理 营业员 采购 员等用户进行添加和删除等管理 工作流程 1 负责系统登录用户的管理 为 了方便 加入了准确查询和模糊查询 系统管理模块系统管理模块 系统管理是软件最基本 最重要的信息 其包含有查看系统日志 查看销 售信息 查看充值信息和收入支出统计等功能 查看系统日志要求对该系统的 14 使用情况进行记录 如何时何地何人使用过该超市进销存财务一体化系统 以 及对重要信息的增删改进行记录 方便经理进行查阅 查看销售信息 查看充 值信息和收入支出统计等功能模块用于管理员或经理了解超市的经营情况 从 而做出重要性的高校决策 提高管理效率 4 3 输入输出设计及实现输入输出设计及实现 运行该系统出现登录窗体 如图 5 所示 图 5 关键代码如下 public class Login private JTextField userNameField private JTextField userPwdField private JButton confirmBtn private JButton cancelBtn private JFrame loginFrame 初始化窗体并给按钮添加监听事件 public void init initFrame 给窗口添加监听事件 接收窗口事件的抽象适配器类 匿名内部类 loginFrame addWindowListener new WindowAdapter Override public void windowClosing WindowEvent e System exit 0 关闭窗口时调用 System exit 0 关闭 Java 虚拟机 15 给登录按钮添加监听事件 confirmBtn addActionListener new ActionListener public void actionPerformed ActionEvent e String userName userNameField getText String userPwd userPwdField getText if userName equals return else if new UserDAO judge userName userPwd 将用户登录情况写入系统日志 new Common addLog userName 登录系统 loginFrame setVisible false new MainManage userName init else JOptionPane showMessageDialog null 用户名或密码错误 给取消按钮添加监听事件 cancelBtn addActionListener new ActionListener public void actionPerformed ActionEvent e System exit 0 给密码文本框添加监听事件 userPwdField addKeyListener new KeyListener public void keyPressed KeyEvent e if e getKeyCode 10 返回与此事件中的键相关联的整数 keyCode String userName userNameField getText String userPwd userPwdField getText if userName equals return else if new UserDAO judge userName userPwd 将用户登录情况写入系统日志 new Common addLog userName 登录系统 loginFrame setVisible false new MainManage userName init else 16 JOptionPane showMessageDialog null 用户名或密码错误 public void keyReleased KeyEvent e public void keyTyped KeyEvent e 初始化窗体 private void initFrame loginFrame new JFrame 登录超市进销存管理系统 设置窗口的显示位置和大小 loginFrame setBounds 400 300 380 300 设置窗口的大小固定 loginFrame setResizable false 设置窗口的布局格式 loginFrame setLayout null 添加图片 Icon icon new ImageIcon res about2 jpg JLabel aboutLabel new JLabel icon 创建具有指定图像的 JLabel 实例 该标签在其显示区内垂直和水平居中对齐 aboutLabel setBounds 0 0 380 150 loginFrame add aboutLabel 添加用户名 JLabel userNameLabel new JLabel 用户名 userNameLabel setBounds 5 155 60 20 loginFrame add userNameLabel userNameField new JTextField userNameField setBounds 70 155 300 20 loginFrame add userNameField 添加密码 JLabel userPwdLabel new JLabel 密码 userPwdLabel setBounds 5 180 60 20 loginFrame add userPwdLabel userPwdField new JPasswordField userPwdField setBounds 70 180 300 20 userPwdField setFocusable true loginFrame add userPwdField 17 confirmBtn new JButton 登录 confirmBtn setBounds 70 220 60 20 loginFrame add confirmBtn cancelBtn new JButton 取消 cancelBtn setBounds 220 220 60 20 loginFrame add cancelBtn loginFrame setVisible true public static void main String args TODO Auto generated method stub new Login init 输入用户名 密码后进入超市进销存管理系统主窗体界面如下图所示 图 6 选择 购物车管理 添加购物车信息 按钮 在弹出的窗体中进行对销售信 息的操作 如下图所示 18 图 7 关键代码实现 public void init initFrame 给窗体添加监听事件 shopCarManageFrame addWindowListener new WindowAdapter public void windowClosing WindowEvent e shopCarManageFrame setVisible false 给商品 ID 文本框添加监听事件 敲入商品 ID 后回车得到商品的基本信息 goodsIDField addKeyListener new KeyListener public void keyPressed KeyEvent e if e getKeyCode 10 返回与此事件中的键相关联的整数 keyCode if goodsIDField getText trim equals new Common isLetter goodsIDField getText toString trim JOptionPane showMessageDialog null 请输入正确的商品 ID else con DBConn getConn String sql select from t goods where goodsID try int goodsID Integer parseInt goodsIDField getText trim 19 ps con prepareStatement sql ps setInt 1 goodsID rs ps executeQuery if rs next goodsNameField setText rs getString GoodsName goodsPriceField setText rs getString GoodsPrice goodsTypeField setText rs getString GoodsType goodsVO new GoodsDAO findVOByGoodsID goodsID else JOptionPane showMessageDialog null 你输入的商品 ID 不存在 goodsIDField setText catch SQLException e1 TODO Auto generated catch block e1 printStackTrace finally DBConn freeConn con public void keyReleased KeyEvent e public void keyTyped KeyEvent e 给购买按钮添加监听事件 purchaseBtn addActionListener new ActionListener public void actionPerformed ActionEvent e if data size 0 JOptionPane showMessageDialog null 至少要买点什么吧 else int buyerType buyerVO getBuyerType if buyerType 0 作判断 如果卡上的余额不足以付账 则提示该充值了 if sumPrice buyerVO getBuyerBalance JOptionPane showMessageDialog null 卡上金额不足 请充 值 shopCarManageFrame setVisible false 20 new AddMoneyForVIPFrame buyerVO userName init else new PurchaseManageForVIP shopCarID userName buyerVO sum sumPrice init shopCarManageFrame setVisible false else new PurchaseManage shopCarID userName buyerVO sum sumPrice init shopCarManageFrame setVisible false 给购买数量文本框添加监听事件 buyGoodsNumField addKeyListener new KeyListener public void keyPressed KeyEvent e TODO Auto generated method stub if e getKeyCode 10 if goodsIDField getText equals goodsPriceField getText equals buyGoodsNumField getText equals new Common isLetter buyGoodsNumField getText toString trim JOptionPane showMessageDialog null 你输入的信息有误 请输入正确的信息 else if Integer parseInt buyGoodsNumField getText goodsVO getGoodsNum JOptionPane showMessageDialog null 库存商品数量不足 请及 时采购 else if buyerVO getBuyerType 0 如果是会员或贵宾的话就要判 断卡上的余额是否足以付账 if sumPrice buyerVO getBuyerBalance JOptionPane showMessageDialog null 卡上金额不足 请充值 进入到会员充值界面 shopCarManageFrame setVisible false new AddMoneyForVIPFrame buyerVO userName init else sellGoods 21 else sellGoods private void sellGoods con DBConn getConn String sql insert into t shopcar values try ps con prepareStatement sql ps setString 1 shopCarIDField getText ps setInt 2 Integer parseInt goodsIDField getText trim ps setString 3 goodsNameField getText ps setString 4 goodsTypeField getText ps setInt 5 Integer parseInt buyGoodsNumField getText ps setDouble 6 Double valueOf goodsPriceField getText ps setString 7 buyerNameField getText ps setString 8 userName int i ps executeUpdate if i 0 从商品信息表中更新商品信息数据 sql update t goods set GoodsNum GoodsNum where GoodsID ps con prepareStatement sql ps setInt 1 Integer parseInt buyGoodsNumField getText ps setInt 2 Integer parseInt goodsIDField getText trim int j ps executeUpdate if j 0 获得商品总数 sum sum Integer parseInt buyGoodsNumField getText 获得商品总价 sumPrice sumPrice Double parseDouble goodsPriceField getText 22 Integer parseInt buyGoodsNumField getText shopCarManageFrame setVisible false new ShopCarManage userName shopCarID buyerVO sum sumPrice init goodsIDField setText goodsNameField setText goodsTypeField setText goodsPriceField setText buyGoodsNumField setText else JOptionPane showMessageDialog null 添加到购物车失败 else JOptionPane showMessageDialog null 添加到购物车失败 catch SQLException e1 e1 printStackTrace finally DBConn freeConn con public void keyReleased KeyEvent e public void keyTyped KeyEvent e 选择 个人管理 局域网聊天 按钮 在弹出的窗体中进行局域网聊天操作 如图 8 所示 23 图 8 第第 5 章章 系统系统测试测试与发布与发布 在现代软件开发过程中 测试不再作为一个独立的生命周期 单元测试成 为与编写代码同步进行的开发活动 单元测试能够提高程序员对程序的信心 保证程序的质量 加快软件开发速度 使程序易于维护 5 1 单元测试概述单元测试概述 单元测试是在软件开发过程中要进行的最低级别的测试活动 在单元测试 活动中 软件的独立工作单元将在与程序的其他部分相隔离的情况下进行测试 在一种传统的结构化编程语言中 如 Java 语言 要进行测试的工作单元一 般是方法 在像 C 这样的面向对象的语言中 要进行测试的基本单元是类 单元测试不仅仅是作为无错编码的一种辅助手段 在一次性的开发过程中使用 单元测试还必须是重复的 无论是在软件修改或移植到新的运行环境的过程中 因此 所有的测试都必须在整个软件系统的生命周期中进行 24 5 2 什么是单元测试什么是单元测试 它是一种验证行为它是一种验证行为 程序中的每一项功能都可以通过单元测试来验证其正确性 它为以后的开 发提供支持 就算是开发后期 也可以轻松地增加功能或更改程序结构 更不 用担心这个过程中会破坏重要的东西 而且它为代码的重构提供了保障 这样 我们就可以自由地对程序进行改进 它是一种设计行为它是一种设计行为 编写单元测试将我使我们从调用者的角度观察 思考 特别是先写测试 迫使我们把程序设计成易于调用和可测试的 即迫使我们解除软件中的耦合 它是一种编写文档的行为它是一种编写文档的行为 在很多项目的初期 项目中的大部分程序员都能够自觉地编写单元测试 随着项目的进展 任务的加重 离交付时间越来越近 不能按时完成项目的风 险越来越大 单元测试就往往成为牺牲品了 项目经理因为进度的压力也不重 视了 程序员因为编码的压力和无人看管而不再为代码编写单元测试了 越是 在项目的后期 能够坚持编写测试的程序员在整个项目组中所占的比例越来越 低 为了追赶项目进度 多数程序员将没有经过任何测试的程序代码上传到版 本控制系统 项目经理也不再追问 照单全收 这样做的结果就是在项目后期 技术骨干人员只好加班加点进行系统集成 集成完了之后 下发给测试人员测 试 Bug 的报告数量翻倍增长 程序员开始修改 Bug 但有非常多的 Bug 隐藏得 很深 一直潜伏到生

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论