2022年超市商品信息管理系统 .pdf
苏州科技学院 电子与信息实验中心面向对象课程设计报告(题目超市商品信息管理系统)专业年级班级学号姓名成绩指导教师2014 年 3 月 24 日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 22 页 - - - - - - - - - 2超市商品信息管理系统设计报告1. 课程设计任务概述1.1 目的我们设计的超市商品信息管理系统,目标在于实现超市商品的信息化管理,可按条形码查询所需商品信息,增加新商品信息记录,修改已存在的商品信息,删除不买的商品;最终达到整体实现超市货物管理的稳定性、易操作性、可维护性等要求,从而达到提高管理效率、节省人物力资源的目的。1.2 使用的语言和开发工具Java ,Eclipse ,MySQL 。2. 系统分析与建模因为要实现数据持久性存储,选择MySQL作为系统的数据库环境。系统可以对超市商品进行增、删、查、改;数据库中的数据可以以文件的形式进行导入导出;还有简单的帮助。2.1 系统功能分析对商品具有添加功能,删除功能,查询功能,修改功能;列出所有商品功能;商品数据导入、导出功能。2.2 用例图及用例说明2.2.1 添加商品用例(1)添加商品用例描述添加商品,是超市信息管理系统提供的一项基本服务。在超市信息管理系统的建模过程中,将这一行为抽象为一个用例。在不考虑软件的具体实现细节基础上,给出如下的用例描述。Use Case 名称添加商品执行者超市员工前置条件员工通过系统验证后,成功登陆信息系统事件流A输入员工的用户名和密码;若输入不正确,则提示“您输入的用户名或密码有误,请重新输入!”输入正确,则提示“登录成功!”B成功登陆系统后,显示系统主界面;选择添加商品菜单;跳到添加商品界面;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 22 页 - - - - - - - - - 3C输入商品名称,商品价格,商品产地,商品条形码;若四个信息有一个为空,提示“数据不完整,请填写完整”;若信息填写完整;D. 用户点击“确定” ,商品表中增加一条商品信息记录;用户点击“取消” ,回到主界面;E. 添加完成,点击“退出” ,退出系统。后置条件员工成功添加商品,商品信息管理系统保存商品记录。(2)添加商品用例图根据( 1)的用例描述,画出添加商品用例图,见图1。图 1 添加商品用例2.2.2 删除商品用例(1)删除商品用例描述Use Case 名称删除商品执行者超市员工前置条件员工通过系统验证后,成功登陆信息系统事件流A输入员工的用户名和密码;若输入不正确,则提示“您输入的用户名或密码有误,请重新输入!”输入正确,则提示“登录成功!”B成功登陆系统后,显示系统主界面;选择删除商品菜单;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 22 页 - - - - - - - - - 4跳到删除商品界面;C输入商品条形码;若条形码为空,提示“请填写条形码”;若条形码填写完成;D. 用户点击“确定” ,商品表中删除一条商品信息记录;用户点击“取消” ,回到主界面;E. 添加完成,点击“退出” ,退出系统。后置条件员工成功删除商品,商品信息管理系统保存商品记录。(2)删除商品用例图根据( 1)的用例描述,画出删除商品用例图,见图1。图 2 删除商品用例2.2.3 查询商品用例(1)查询商品用例描述Use Case 名称查询商品执行者超市员工前置条件员工通过系统验证后,成功登陆信息系统事件流A输入员工的用户名和密码;若输入不正确,则提示“您输入的用户名或密码有误,请重新输入!”输入正确,则提示“登录成功!”B成功登陆系统后,显示系统主界面;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 22 页 - - - - - - - - - 5选择查询商品菜单;跳到查询商品界面;C输入商品条形码;若条形码为空,提示“请填写条形码”;若条形码填写完成;D. 用户点击“确定” ,跳转到商品;用户点击“取消” ,回到主界面;E. 查询完成,点击“退出” ,退出系统。后置条件无(2)查询商品用例图根据( 1)的用例描述,画出查询商品用例图,见图1。图 3 查询商品用例2.2.4 更新商品用例(1)更新商品用例描述Use Case 名称更新商品执行者超市员工前置条件员工通过系统验证后,成功登陆信息系统事件流A输入员工的用户名和密码;若输入不正确,则提示“您输入的用户名或密码有误,请重新输入!”输入正确,则提示“登录成功!”名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 22 页 - - - - - - - - - 6B成功登陆系统后,显示系统主界面;选择查询商品菜单;跳到查询商品界面;C输入商品条形码;若条形码为空,提示“请填写条形码”;若条形码填写完成;D. 用户点击“确定” ,显示商品详细信息;在文本框中填入最新信息,点击“更新”;用户点击“取消” ,回到主界面;E. 更新完成,点击“退出” ,退出系统。后置条件员工成功更新商品,商品信息管理系统保存商品记录。(2)更新商品用例图根据( 1)的用例描述,画出更新商品用例图,见图1。图 4 更新商品用例2.2.5 列出所有商品用例(1)列出所有商品用例描述Use Case 名称列出所有商品执行者超市员工前置条件员工通过系统验证后,成功登陆信息系统事件流A输入员工的用户名和密码;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 22 页 - - - - - - - - - 7若输入不正确,则提示“您输入的用户名或密码有误,请重新输入!”输入正确,则提示“登录成功!”B成功登陆系统后,显示系统主界面;选择列出所有商品菜单;C. 显示超市所有商品信息;用户点击“取消” ,回到主界面;D. 点击“退出” ,退出系统。后置条件无(2)列出所有商品用例图根据( 1)的用例描述,画出列出所有商品用例图,见图1。图 5 列出所有商品用例2.2.6 商品数据导出用例(1)商品数据导出用例描述Use Case 名称数据导出执行者超市员工前置条件员工通过系统验证后,成功登陆信息系统事件流A输入员工的用户名和密码;若输入不正确,则提示“您输入的用户名或密码有误,请重新输入!”输入正确,则提示“登录成功!”名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 22 页 - - - - - - - - - 8B成功登陆系统后,显示系统主界面;选择文件菜单;点击“导出文件”C. 在 E 盘生成 .sql 文件;用户点击“取消” ,回到主界面;D. 点击“退出” ,退出系统。后置条件无(2)商品数据导出用例图根据( 1)的用例描述,画出商品数据导出用例图,见图1。图 6 数据导出用例2.2.7 商品数据导入用例(1)商品数据导出用例描述Use Case 名称数据导入执行者超市员工前置条件员工通过系统验证后,成功登陆信息系统事件流A输入员工的用户名和密码;若输入不正确,则提示“您输入的用户名或密码有误,请重新输入!”输入正确,则提示“登录成功!”B成功登陆系统后,显示系统主界面;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 22 页 - - - - - - - - - 9选择文件菜单;点击“导入文件”C. 弹出提示框“导入成功”用户点击“取消” ,回到主界面;D. 点击“退出” ,退出系统。后置条件无(2)商品数据导入用例图根据( 1)的用例描述,画出商品数据导入用例图,见图1。图 7 数据导入用例2.2.8 整体用例框图图 8 超市商品信息管理系统的整体用例框图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 22 页 - - - - - - - - - 103. 系统设计3.1 系统类图图 9 系统类图3.2 系统活动图3.2.1 用例“用户登录”活动图图 10 “用户登录”活动图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 22 页 - - - - - - - - - 113.2.2 用例“添加商品”活动图图 11“添加商品”活动图3.2.3 用例“删除商品”活动图图 12 “删除商品”活动图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 22 页 - - - - - - - - - 123.2.4 用例“查询商品”活动图图 13 “查询商品”活动图3.2.5 用例“修改商品”活动图图 14 “修改商品”活动图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 22 页 - - - - - - - - - 133.2.6 用例“文件导入”活动图图 15 “文件导入”活动图3.2.7 用例“文件导出”活动图图 16 “文件导出”活动图3.3 系统时序图3.3.1 用例“用户登录”顺序图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 22 页 - - - - - - - - - 14图 17“用户登录”顺序图3.3.2 用例“商品添加”顺序图图 18“商品添加”顺序图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 22 页 - - - - - - - - - 153.3.3 用例“商品删除”顺序图图 19“商品删除”顺序图3.3.4 用例“商品更新”顺序图图 20“商品更新”顺序图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 22 页 - - - - - - - - - 163.3.5 用例“商品查询”顺序图图 21“商品查询”顺序图3.3.6 用例“文件导入”顺序图图 22“文件导入”顺序图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 22 页 - - - - - - - - - 173.3.7 用例“文件导出”顺序图图 23“文件导入”顺序图4 系统实现4.1 添加商品模块核心代码:public boolean add(String name,int price,String placeoforigin,int code) throws Exception String url = jdbc:mysql:/localhost:3306/commodity; String username = root; String password = root; Connection conn = null; PreparedStatement st = null; Class.forName(com.mysql.jdbc.Driver); conn = (com.mysql.jdbc.Connection) DriverManager.getConnection(url, username, password); String sql = insert into commoditys(name,price,placeoforigin,code) values(?,?,?,?); st = conn.prepareStatement(sql); st.setString(1, name); st.setLong(2, price); st.setString(3, placeoforigin); st.setLong(4, code); st.executeUpdate(); if (st != null) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 22 页 - - - - - - - - - 18try st.close(); catch (Exception e2) e2.printStackTrace(); if (conn != null) try conn.close(); catch (Exception e3) e3.printStackTrace(); return true; 4,2 删除商品模块核心代码:public int delete(int code) throws Exception String url = jdbc:mysql:/localhost:3306/commodity; String username = root; String password = root; Connection conn = null; PreparedStatement st = null; Class.forName(com.mysql.jdbc.Driver); conn = (com.mysql.jdbc.Connection) DriverManager.getConnection(url, username, password); String sql = delete from commoditys where code =?; st = conn.prepareStatement(sql); st.setLong(1, code); int count = st.executeUpdate(); if (st != null) try st.close(); catch (Exception e2) e2.printStackTrace(); if (conn != null) try conn.close(); catch (Exception e3) e3.printStackTrace(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 22 页 - - - - - - - - - 19 return count; 4.3 查询商品模块核心代码:public Goods find(int code) throws Exception String url = jdbc:mysql:/localhost:3306/commodity; String username = root; String password = root; Connection conn = null; PreparedStatement st = null; ResultSet rs = null; Class.forName(com.mysql.jdbc.Driver); conn = (com.mysql.jdbc.Connection) DriverManager.getConnection(url, username, password); String sql = select * from commoditys where code =?; st = conn.prepareStatement(sql); st.setLong(1, code); rs = st.executeQuery(); if(rs.next() Goods goods = new Goods(); goods.setCode(Integer.parseInt(rs.getString(code); goods.setName(rs.getString(name); goods.setPlaceoforigin(rs.getString(placeoforigin); goods.setPrice(Integer.parseInt(rs.getString(price); return goods; if (st != null) try st.close(); catch (Exception e2) e2.printStackTrace(); if (conn != null) try conn.close(); catch (Exception e3) e3.printStackTrace(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 22 页 - - - - - - - - - 20return null; 4.4 更新商品模块核心代码:public boolean update(String name,int price,String placeoforigin,int code)throws Exception String url = jdbc:mysql:/localhost:3306/commodity; String username = root; String password = root; Connection conn = null; PreparedStatement st = null; boolean result = false; Class.forName(com.mysql.jdbc.Driver); conn = (com.mysql.jdbc.Connection) DriverManager.getConnection(url, username, password); String sql = update commoditys set name=? ,price = ?,placeoforigin = ? where code=? ; st = conn.prepareStatement(sql); st.setString(1, name); st.setLong(2, price); st.setString(3, placeoforigin); st.setLong(4, code); int x = st.executeUpdate(); if(x=1) return result = true; if (st != null) try st.close(); catch (Exception e2) e2.printStackTrace(); if (conn != null) try conn.close(); catch (Exception e3) e3.printStackTrace(); return result; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 22 页 - - - - - - - - - 214.5 文件导入模块核心代码:public static void importFromFile(String fileName) ObjectInputStream obj = null; try File file = new File(fileName); DataInputStream in = new DataInputStream(new FileInputStream(file); obj = new ObjectInputStream(in);/ 从文件中读入对象List list = (List) obj.readObject(); dao.insert(list); catch (Exception e) e.printStackTrace(); finally try obj.close(); catch (IOException e) e.printStackTrace(); 4.6 文件导出模块核心代码:public static void exportToFile(String fileName) ObjectOutputStream obj =null; try File file = new File(fileName); DataOutputStream out = new DataOutputStream(new FileOutputStream(file); obj = new ObjectOutputStream(out); List list = dao.getAll(); obj.writeObject(list);/向文件输出对象 catch(Exception e) e.printStackTrace(); finally try obj.close(); catch (IOException e) e.printStackTrace(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 22 页 - - - - - - - - - 22 5 系统测试5.1 登录测试测试用例:1. 用户名: zs 密码: 123 结果:成功2. 用户名: hz 密码: 123 结果:失败5.2 添加商品测试测试用例:1. 商品名称: pen 价格: 34 产地 :HK 条形码: 11233456 结果:成功2. 商品名称: apple 价格: 5 产地 :Japan 条形码: 34563456 结果:成功3. 商品名称: pear 价格: 9 产地 :CH 条形码: 34563456 结果:失败5.3 删除商品测试测试用例:1. 条形码: 34563456 结果:成功2. 条形码: 34563456 结果:失败5.4 查询商品测试测试用例:1. 条形码: 34563456 结果:失败2. 条形码: 11233456 结果:成功5.5 修改商品测试测试用例:1. 条形码: 11233456 商品名称: pear 价格: 8 产地: Italy 结果:成功2. 条形码: 11233456 商品名称: apple 价格:产地: US 结果:失败6 课程设计总结通过本次实训, 深入理解面向对象的含义,也对如何使用JDBC操作数据库有了基本的理解,Java 图形用户界面控件使用也更加熟悉,使用 IO 流操作文件输入输出基本流程也更加熟悉。这次也建立了面向对象程序设计的概念,理解和巩固封装、类与对象、继承与多态、JAVA数据结构、多线程、IO、 UI 设计及 UML等知识,为后续课程的学习打下良好的基础。同时,我也知道了自己在Java 中有很多不足,如程序不能很好的复用,设计不够规范等,在以后的学习我将更加注意。同时也谢谢组员的支持和老师的帮助!7 参考文献Bruce Eckel. Java编程思想 . 北京:机械工业出版社,2007 徐宝文 . UML 与软件建模 . 北京 : 清华大学出版社,2006 耿祥义 . Java面向对象程序设计. 北京 : 清华大学出版社,2010 刘强 . 软件工程 - 理论、方法与实践. 北京 : 高等教育出版社,2005名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 22 页 - - - - - - - - -