《面向对象课程设计报告模板.doc》由会员分享,可在线阅读,更多相关《面向对象课程设计报告模板.doc(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、苏州科技学院电子信息与信息实验中心面向对象课程设计报告超市商品管理系统专业年级2013届计算机科学与技术班级一班学号姓名杭晶晶成绩指导教师陆卫忠2013年4月7日XXXX系统设计报告(报告内容)1 课程设计任务概述超市商品管理系统2 系统需求分析2.1 系统功能分析1. 新任管理员的注册2. 管理员的登录3. 商品编号及数量及价格的查询4. 某些缺货商品的添加5. 商品数量以及价格的修改6. 将超市没有的商品从货架删除7. 管理员的退出2.2 用例图及用例说明2.2.1 用户注册用例(1)用户注册用例描述管理员管理超市商品,是超市提供的一项基本服务。在超市商品管理系统的建模过程中,将这一行为抽
2、象为一个用例。在不考虑软件的具体实现细节基础上,给出如下的用例描述。Use Case 名称管理商品执行者超市管理员前置条件管理员首次进入超市商品管理系统A管理员注册事件流a.输入管理员的账号;若输入不正确,则提示“您输入的账号不符合格式,请重新输入!” 输入正确,则提示“请您输入您的密码!”b.输入密码; 若输入不正确,则提示“您输入的密码不符合格式,请重新输入!” 输入正确,则显示“注册成功!”B.注册完成,点击“退出”,退出注册界面。后置条件管理员成功注册后,再次登录系统,登录成功后显示超市中所有商品的编号及数量及价格。 (2)管理员注册用例图根据(1)的用例描述,画出管理员注册用例图,见
3、图1。图1 管理员注册用例图2.2.2 管理员登陆用例(1)管理员登陆用例描述管理员登陆超市商品管理系统,是超市提供的一项基本服务。在超市商品管理系统的建模过程中,将这一行为抽象为一个用例。在不考虑软件的具体实现细节基础上,给出如下的用例描述。Use Case 名称登陆执行者管理员前置条件管理员未登录该系统事件流A输入管理员的账号; 若输入不正确,则提示“您输入的账号有误,请重新输入!” 输入正确,则提示“请您输入您的密码!”B输入密码; 若输入不正确,则提示“您输入的密码有误,请重新输入!” 输入正确,成功登陆系统。C. 显示超市里所有商品的编号,数量以及价格。后置条件管理员根据现实情况对系
4、统内的所有商品进行实时更新(即对商品进行增删改查)。(2)管理员登陆用例图根据(1)的用例描述,画出管理员登陆用例图,见图2。图2 管理员登陆用例图2.2.3超市商品及时更新用例(1)超市商品及时更新用例描述更新超市商品信息,是超市提供的一项基本服务。在超市商品管理系统的建模过程中,将这一行为抽象为一个用例。在不考虑软件的具体实现细节基础上,给出如下的用例描述。Use Case 名称更新信息执行者管理员前置条件管理员通过系统验证后,成功登陆借阅系统事件流A输入要查询的商品编号 显示商品的数量以及价格。B输入要添加的商品编号 找到该商品后,修改其数量。C输入要修改的商品编号; 找到该商品后,修改
5、数量,若价格有变动,将价格也一便修改。D. 输入要删除的商品编号 管理员点击删除,将该商品删除。后置条件管理员对商品信息做过修改之后,点击退出。(2)用例图根据(1)的用例描述,画出超市商品更新用例图,见图3。图3 超市商品更新用例图2.1.5 整体用例框图结合以上典型用例图及用例图之间的关系,画出如下系统的整体框图见图4。图4 超市商品管理系统的整体用例框图3 系统设计3.1 系统类图3.2 系统活动图3.3 系统时序图图6超市系统管理顺序图4 系统实现protected void logon() if(logonUI = null) logonUI=new LogonUI(); logon
6、UI.setVisible(true); if(logonUI.getModalResult()=OK) User user0 = logonUI.getUser(); user=goodsService.findUserByNameAndPassword(user0.getName(),user0.getPassword(); if(user!=null) JOptionPane.showMessageDialog(null, 登陆成功!); logonUI.clear(); else JOptionPane.showMessageDialog(null, 登陆失败!); protected
7、 void append() if(appendUI = null) appendUI = new AppendUI(); appendUI.setVisible(true); if(appendUI.getModalResult()=OK) Goods goods = appendUI.getGoods(); if(goodsService.addGoods(goods) JOptionPane.showMessageDialog(null, 添加成功!); else JOptionPane.showMessageDialog(null, 添加失败!); protected void que
8、ry() int x = 0; if(queryUI = null) queryUI = new QueryUI(); queryUI.setVisible(true); if(queryUI.getModalResult() = OK) x = queryUI.getGoods(); if(goodsService.findGoodsById(x) !=null ) JOptionPane.showMessageDialog(null, 查询成功!); else JOptionPane.showMessageDialog(null, 查询失败!); / protected void dele
9、te() int x = 0; if(deleteUI = null) deleteUI = new DeleteUI(); deleteUI.setVisible(true); if(deleteUI.getModalResult() = OK) x = deleteUI.getGoods(); if(goodsService.deleteGoods(x) ) JOptionPane.showMessageDialog(null, 删除成功!); else JOptionPane.showMessageDialog(null, 删除失败!); List list = new ArrayLis
10、t();List listt = new ArrayList();public void GoodsDaoImpl() this.list = new ArrayList();/初始化帐户:adminlist.add(new User(admin,Admin);public boolean update(Goods goods) boolean result = false;for(Goods u : listt) if(u.getId() = goods.getId() u = goods;result = true;break;return result;public boolean de
11、lete(int id) boolean result = false;Goods goods = null;for(Goods u : listt) if(u.getId() = id) goods = u;break;if(goods != null) list.remove(goods);result = true;return result;public Goods findById(int id) System.out.println(GoodsDao(find() is called.);/ toDo codeGoods goods = null;for(Goods goods0
12、: listt) if(id = goods0.getId()goods = goods0;break;return goods;public int findCount() return list.size();public User find(String userName, String password) System.out.println(UserDao(findByNameAndPassword() is called.);User user = new User();for(User user0 : list) if(user0.getName().equals(userNam
13、e) &(user0.getPassword().equals( password)user = user0;break;return user;public List findAll() return listt;/* * 批量插入数据 * see dao.IUserDao#insert(java.util.List) */public void insert(List list) if(list.size()=0) return; for(int i = 0 ; i list.size() ; i+) User user = list.get(i); /表中记录不存在时,插入该记录,注意修改以下的查找条件。 if(find(user.getName(),user.getPassword() = null) /不存在,插入记录。 insert(user); 5 课程设计总结在代码编写过程中,遇到了很多问题:信息的添加,查询,修改,删除虽说都大同小异,但是还是有一些小区别不能忽视;信息的写入不管是用文件流还是数据库对我来说都不是一件简单的事情。在测试过程中,“成功登陆”始终无法输出,信息无法查询等问题接二连三的出现。6 参考文献
限制150内