Java-课程设计--超市管理系统的设计与实现_第1页
Java-课程设计--超市管理系统的设计与实现_第2页
Java-课程设计--超市管理系统的设计与实现_第3页
Java-课程设计--超市管理系统的设计与实现_第4页
Java-课程设计--超市管理系统的设计与实现_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

课课 程程 设设 计计 课程名称 Java 语言课程设计 题目名称 超市管理系统的设计与实现 学生学院 应用数学学院 专业班级 信息与计算科学 1 班 学 号 学生姓名 指导教师 2013 年 10 月 24 日 超市管理系统的设计与实现超市管理系统的设计与实现 1 1 系统设计系统设计内容内容 随着小超市规模的发展不断扩大 商品数量急剧增加 有关商品的各种信 息量也成倍增长 超市时时刻刻都需要对商品各种信息进行统计分析 而大型 的超市管理系统功能过于强大而造成操作繁琐降低了小超市的工作效率 超市 管理系统是市场上最流行的超市上常用的系统之一 它主要包含以下几个模块 系统登陆 商品入库 商品查询 商品更改和删除等 从而 实现对进货 销 售及员工信息等实现全面 动态 及时的管理 本文系统的分析了软件开发的 背景以过程 首先介绍了软件的开发环境 其次介绍了本软件的详细设计过程 数据库的设计 各个模块的设计和实现 以及具体界面的设计和功能 超市库存管理系统是基于 Java 作为开发工具 Mysql 作为后台数据库支持 超市库存管理系统开发主要是界面程序的开发 数据库的建立 数据库的维护 应用程序功能完善 界面人机交互要好 而且操作简单 同时 JAVA 语言简单 在较短的时间内能够开发出使用性强 功能完善 易于操作的程序 也能实现 与数据库的连接 通过以上的需求分析 初步确定该系统功能主要包括以下几 个模块 1 系统登录 2 商品入库管理 包括商品信息管理 3 商品销售管理 4 用户管理与权限管理 系统流程图系统流程图 2 2 系统设计方案系统设计方案 2 12 1 JavaJava SwingSwing 概述概述 通过图形用户界面 Graphical User Interface GUI 用户和程序之间 可以方便的进行交互 Java 的 java awt Abstract Window Toolkit 包中包 括了多种类和接口 用于在 Java Application 中进行 GUI 编程 Java Swing 是 Java Foundation Classes JFC 的一部分 是一个用于开发 Java 应用程 序用户界面的开发工具包 在 Swing 中 Sun 开发了一个经过仔细设计的 灵 活而强大的 GUI 工具包 它以抽象窗口工具包 AWT 为基础使跨平台应用程 序可以使用任何可插拔的外观风格 Swing 开发人员只用很少的代码就可以利 用 Swing 丰富 灵活的功能和模块化组件来创建优雅的用户界面 Swing 增强 了 AWT 中组件的功能 这引起增强的组件命名通常是在 AWT 组件名前增加了一 输入 错误 重新 登 录 系统登录 确定登录 销售员登录页面 管理员登录页面 人 员 管 理 删 除 用 户 注 册 密 码 修 改 个 人 信 息 修 改 进货管理 个 人 信 息 修 改 密 码 修 改 销售管理 添 加 销 售 商 品 删 除 销 售 商 品 结 账 按 钮 添 加 库 存 商 品 查 询 库 存 商 品 删 除 库 存 商 品 用户信息数据库 商品信息数据库 个 J 字母 同时也提供了更多的组件库 如 按钮 JButton 单选按钮 JRadioButton 复选框 JCheckBox 文本区 JTextArea 文本字段 JTextField 列表 JList 组合框 JComboBox 树 JTree 表格 JTable 一个 Java GUI 通常由顶层容器 中间容器以及多个原子组件组成 每个原子组件或容器都可能触发相应事件的产生 容器是一类能够在其中容纳 其他组件的特殊组件 Swing 的 GUI 组件类是按照类属层次以树状结构进行组 织的 在这个树的最顶层 即树的根部 使一个最基本的容器类 被称为顶层 容器 Swing 提供了三个通用的顶层容器类 JFrame JDialog 和 JApplet JFrame 提供了基于窗体的应用程序 JDialog 提供对话框形式的界面 JApplet 提供 Java 小应用程序的界面形式 在顶层容器下是中间容器 用于容 纳其他的组件 通常窗格本身在显示界面中是看不到的 面板类 Panel 是一种 中间容器 它的唯一作用是使组件更容易定位 顶层容器通过 getContentPane 方法获取内部的一个内容窗格 2 22 2 使用使用 JDBC ODBCJDBC ODBC 与与 MySQLMySQL 数据库数据库建立连接建立连接 1 在开发环境中加载指定数据库的驱动程序 2 在 Java 程序中加载驱动程序 在 Java 程序中 可以通过 Class forName 指定数据库的驱动程序 方式来加载添加到开发环境 中的驱动程序 例如加载 MySQL 的数据驱动程序的代码 为 Class forName org gjt mm mysql Driver 3 创建数据连接对象 通过 DriverManager 类创建数据库连接对象 Connection DriverManager 类作用于 Java 程序和 JDBC 驱动程序之间 用于 检查所加载的驱动程序是否可以建立连接 然后通过它的 getConnection 方法 根据数据库的 URL 用户名和密码 创建一个 JDBC Connection 对象 如 Connection connection DriverManager geiConnection 连接数据库的 URL 用户名 密码 本程序创建 MySQL 的数据库连接代码如下 String url jdbc mysql localhost 3306 market String username root String password root connect DriverManager getConnection url username password 4 创建 Statement 对象 Statement 类的主要是用于执行静态 SQL 语句并返 回它所生成结果的对象 通过 Connection 对象的 createStatement 方法可 以创建一个 Statement 对象 例如 Statement statament connection createStatement 本程序创建 Statement 对象代码如下 Statement stat connect createStatement ResultSet TYPE SCROLL SENSITIVE ResultSet CONCUR UPDATABLE 5 调用 Statement 对象的相关方法执行相对应的 SQL 语句 通过 execuUpdate 方法用来数据的更新 包括插入和删除等操作 通过调用 Statement 对象的 executeQuery 方法进行数据的查询 而查询结果会得到 ResulSet 对象 ResulSet 表示执行查询数据库后返回的数据的集合 ResulSet 对象具有可以指向当前数据行的指针 通过该对象的 next 方法 使得指针指 向下一行 然后将数据以列号或者字段名取出 如果当 next 方法返回 null 则表示下一行中没有数据存在 使用示例代码如下 ResultSet resultSel statement executeQuery select from commodity 6 关闭数据库连接 使用完数据库或者不需要访问数据库时 通过 Connection 的 close 方法及时关闭数据连接 商品数据项的描述 数据项名数据类型长度说明 numbervachar50商品编号 CNamevachar50商品名称 suppliervachar50商品供应商 PAreavachar50商品生产地 unitvachar50商品单位 shelfFifevachar50商品规格 pricefloat50商品价格 packvachar50商品包装 fullNumberfloat50商品数量 管理人员和销售人员数据想描述 其中 1 2 分别表示管理员 销售员权限 user vachar 50用户名 password vachar 50密码 power vachar 50权限 3 3 功能模块详细设计及实现功能模块详细设计及实现 3 13 1 系统登录页面系统登录页面 统登录模块需要管理员和销售员提供的用户名 初始密码和权限进行 登录验证 如果成功则进入系统 否则提示无法登录并返回登录一面 运 行如图 3 23 2 管理员登录页面管理员登录页面 管理员身份登录成功进入管理员登陆界面 其中包括模块进货管理 查看 所有人员 用户注册 密码修改 个人信息修改 管理员登陆页面运行截图 进货管理功能是通过系统中的 public void allRecord 方法查询数据 库 commodity 显示超市仓库中所有商品 但是在这里涉及一个类型转化问题 因为在数据库的设计中商品的数量和价格都是 float 类型 在所有商品价格方 面直接利用数据库中的第七列和第九列的数据相乘 即 sum rSet getFloat 7 rSet getFloat 9 但是在页面中合计金额需要显示的是 一个 string 类型的 而这里的 sum 是一个 float 类型变量 则就需要用一个类 型准换语句 并将该值传入文本框 语句分别为 String cString new Float sum toString minventoryJFrame getTotalJTextField setText cString 运行截图 删除按钮的设计是通过查找商品编号进行删除 如果没有对应的商品则通过 JOptionPane showMessageDialog null 库存中没有对应的商品 删除记录 1 语句提示库存中没有对应的商品 否则通过查询数据库并执行下列语句删 除对应的库存品 String sql delete from commodity where number minventoryJFrame getJTable getValueAt row 0 stat executeUpdate sql allRecord JOptionPane showMessageDialog null 成功删除记录 删除记录 1 添加页面设计需要对数据类型和对输入文本框是否有空值进行检测 如果不 合法则通过 JOptionPane showMessageDialog this 请确认数据类型和是否 有空值 给出提示 否则通过执行下列语句并提示添加商品成功信息 String sql INSERT INTO commodity number CName supplier PArea unit shelfFife price pack fullN umber VALUES Number getText CName getText Suppl ier getText PArea getText unit getText ShelfF ife getText Float parseFloat Price getText Pack getT ext Float parseFloat FullNumber getText stmt executeUpdate sql JOptionPane showMessageDialog this 商品添加成功 运行截图 人员管理模块可以查看所有人员直接通过下列语句 String sql select from userinfo 获取数据库中的所有人员 运行截图 删除人员则是通过选中人员所对应的行进行删除 实现语句为 String sql DELETE FROM userinfo WHERE user cellValue 用户注册需要先查询数据库中的用户名和密码 如果都存在则提示该用户已 经存在 不存在则可以通过下列语句注册新员工 String str INSERT INTO userinfo VALUES User Password power personneID SEX Birthday Job Id 密码修改则即更新数据库 通过下列语句可以实现 String sql UPDATE userinfo SET password String valueOf newPassword getPassword WHERE user cook user 用户信息修改也是一个更新数据库的操作 通过下列代码可以实现 String str UPDATE userinfo SET sex SEX birthday Birthday job Job ID Id WHERE user cook user stmt executeUpdate str 3 33 3 管理员登录页面管理员登录页面 销售人员身份登录成功进入销售人员登陆页面 其中包括商品的销售 结 账页面 其中个人信息修改和密码修改和管理员的相似 销售页面通过输入商 品的编号和数量 在通过查询数据库中对应的商品名称和数量 如果没有对用 的商品则通过语句 JOptionPane showMessageDialog this 对不起 暂时没有这件商品 请联系 管理员添加 提示没有商品 如果商品数量不够则通过语句 JOptionPane showMessageDialog this 对不起 此商品库存仅剩 rs getFloat fullNumber 给出销售人员销售数量超出库存量的提示信息 但是在添加商品时本系统是利用数据库查询 再通过一个数组利用编号和数量 进行保存的 因为如果直接利用从库存数据库中查询再添加到一个销售数据库 中是直接将库存数据库中的所有商品都添加到了销售数据库表中 实现的语句 为 for int i 0 i rows i Name i String valueOf tableModel getValueAt i 0 Q i Float parseFloat String valueOf tableModel getValueAt i 8 while rs next for int i 0 i rows i String name rs getString number if name equals Name i Q i rs getFloat fullNumber Q i String sql UPDATE commodity SET fullNumber Q i WHERE number name stmt1 executeUpdate sql 通过上述语句可以添加销售商品 在通过点击确认销售按钮时通过语句 int n JOptionPane showConfirmDialog null 确认出售列表中货物 共计 acount 元 销售商品删除按钮是通过鼠标选中需要删除的行进行删除 执行语句为 if myTable getSelectedRow 1 int row1 myTable getSelectedRow tableModel removeRow row1 else JOptionPane showMessageDialog this 请选中要删除的信息 再点击删除 运行截图 4 4 结论结论 通过此次的论文 我学到了很多知识 在论文的写作过程中 通过查资料 和搜集有关的文献 培养了自学能力和编程能力 并且由原先的被动的接受知 识转换为主动的寻求知识 这可以说是学习方法上的一个很大的突破 我们可 能会记住很多的书本知识 但是通过课程设计 我们学会了如何将学到的知识 转化为自己的东西 学会了怎么更好的处理知识和实践相结合的问题 次超市库存管理系统课程设计 让我充分运用自己所学的知识 让我明白 只有单纯的理论知识是远远不够的 只有通过实际的锻炼才能更好的运用所掌 握的基础知识 才能在原有的基础上提升自己的能力 提高自己解决问题的能 力 在这短短的一个星期内 查阅有关的 java 学习资料和数据库 设计的规则 代码的编写及到最后的调试 在设计过程中 通过对控件事件的处理 界面的 布局 代码的调试 充分锻炼了自己的思维 获得了充分的实际经验 提高了 处理问题的能力

温馨提示

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

评论

0/150

提交评论