功能需求:
Soft function 软件功能:
连锁超市购物结算系统主要功能包括:显示商品信息,购物清单,结算功能。
总体用例图:
一、Use Case 1 显示商品信息列表:
显示商品信息,供收银员参考查询。
二、Use Case 2 输入购买商品编号
顾客在购物后要求结账,收银员输入顾客购买的商品编号,准备由系统统计出顾客购物清单。
2、Preconditions 前置条件
系统提示“请输入商品编号:(输入0结束输入)”
3、End Condition 后置条件
(1)Success End Condition 成功后置条件
收银员输入商品编号后按下“Enter”键,系统显示出继续输入的提示:请输入商品编号:(输入0结束输入)。
(2)Failed End Condition 失败后置条件
a、收银员输入的商品编号非数字,提示“操作错误,系统退出!”,如图:
b、收银员输入的商品编号不存在,显示“查无此商品”,并允许继续输入商品编号,如图:
三、Use Case 3 显示购物结算清单
收银员将顾客购买的物品输入完毕之后,系统显示出顾客的购物清单,和购物总价。
需求分级:
Requirement ID 需求ID |
Requirement Name 需求名称 |
Classification 需求分级 |
SC.01 |
显示商品信息列表 |
A |
SC.02 |
输入购买商品编号 |
A |
SC.03 |
显示购物结算清单 |
A |
实现代码:
1、Admin类
public class Admin { public String userName;//用户名 public String userPwd;//密码 public boolean login() { if ((userName.equals("admin"))&&(userPwd.equals("123"))) { return true; }else { return false; } } }
2、AdminServices类
import java.util.Scanner; public class AdminServices { Scanner sc = new Scanner(System.in); Admin admin = new Admin(); public void adminServices() { System.out.println("请输入用户名:"); admin.userName = sc.next(); System.out.println("请输入密码:"); admin.userPwd = sc.next(); boolean b = admin.login(); if (b) { System.out.println("登录成功!欢迎使用!"); }else { System.out.println("登录失败,账户名或密码错误,请重新输入!"); adminServices(); } } }
3、Goods类
public class Goods { public int id;//编号 public String name;//名称 public double money;//价格 public String brand;//品牌 public String origin;//产地 public String taste;//口味 public String species;//种类 }
4、GoodsServices 类
import java.util.Scanner; public class GoodsServices { Scanner sc = new Scanner(System.in); Goods goods[] = new Goods[3];//创建数组储存商品信息 Goods userno[] = new Goods[10];//创建数组储存用户购买的商品编号 public void wareHouse() {//商品库存信息 Goods a = new Goods();//商品A a.id = 1; a.name = "苹果"; a.money = 5.00; a.brand = "红富士"; a.origin = "云南昭通"; Goods b = new Goods();//商品B b.id = 2; b.name = "泡面"; b.money = 3.00; b.brand = "康师傅"; b.origin = "湖北武汉"; Goods c = new Goods();//商品C c.id = 3; c.name = "香蕉"; c.money = 4.00; c.brand = "霸王椒"; c.origin = "香港地区"; goods[0] = a;//数组1 goods[1] = b;//数组2 goods[2] = c;//数组3 } public void goodsShow() {//展示库存信息 wareHouse();//调用库存信息,这一步一定要有 for (int i = 0; i < goods.length; i++) { System.out.print("编号:"+goods[i].id); System.out.print("\t名称:"+goods[i].name); System.out.print("\t价格:¥"+goods[i].money); System.out.print("\t品牌:"+goods[i].brand); System.out.print("\t产地:"+goods[i].origin); System.out.println();//输出一次换行一次 } } public void userbuy(){//收银员输入顾客购买的商品编号 int i = 0;//循环数组的下标 int goodsNo;//声明用于,接收用户购买的商品编号 do { System.out.println("请输入商品编号:(输入0结束输入)"); goodsNo = sc.nextInt();//商品编号 if (1<=goodsNo&&goodsNo<=3) { userno[i] = goods[goodsNo-1]; i++; }else { if(goodsNo!=0) { System.out.println("查无次商品!"); } } } while (goodsNo!=0); } public void listing() {//系统统计出顾客购物清单 System.out.println("“服务一百,满意一百”,欢迎光临中百超市!您的购物清单如下:"); int j = 0; double sum = 0; for (int i = 0; i < userno.length; i++) { if (userno[i]!=null) { System.out.print("编号:"+userno[i].id); System.out.print("\t名称:"+userno[i].name); System.out.print("\t价格:¥"+userno[i].money); System.out.print("\t品牌:"+userno[i].brand); System.out.print("\t产地:"+userno[i].origin); System.out.println();//输出一次换行一次 sum += userno[i].money; } } System.out.println("***********************************************************************"); System.out.println("总价: ¥"+sum); } }
5、userUI 类
public class userUI { public static void main(String[] args) { AdminServices adminServices = new AdminServices(); GoodsServices goodsServices = new GoodsServices(); adminServices.adminServices();//管理员登录界面 System.out.println("**********************中百集团联合超市购物系统**************************"); goodsServices.goodsShow();//商品信息 System.out.println("***********************************************************************"); goodsServices.userbuy();//收银员输入顾客购买的商品编号 System.out.println("***********************************************************************"); goodsServices.listing();//进行结算 } }