目录

功能需求:

一、Use Case 1 显示商品信息列表:

二、Use Case 2 输入购买商品编号

三、Use Case 3 显示购物结算清单

需求分级:

实现代码:


功能需求:

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();//进行结算
}
}

编写Java程序_连锁超市购物结算系统的更多相关文章

  1. 编写Java程序_输入本部门五位员工的薪资,并根据用户输入的序号为指定员工进行提薪。若用户输入序号出现越界,则提示错误。

    要求说明: 输入本部门五位员工的薪资,并根据用户输入的序号为指定员工进行提薪.若用户输入序号出现越界,则提示错误. 运行效果如图: 实现代码: import java.util.Scanner; pu ...

  2. 编写Java程序_定义两个方法,实现奇数偶数的判断,并计算和(有参数有返回值方法)

    需求说明: 定义两个方法,在控制台输入一个数字,这两个方法可以求出1到该数字之间所有偶数之和.奇数之和,并将对应结果和返回.在main方法中调用该方法,并在控制台打印出结果.(有参数有返回值方法) 运 ...

  3. 编写Java程序_输入一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。

    要求: 输入一个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位相同. 实现代码: package kaoshi; import java.util.Scanner; pu ...

  4. 编写Java程序_输入三个整数x,y,z,请把这三个数由小到大输出,请写出实现代码。(3种方法)

    要求说明: 输入三个整数x,y,z,请把这三个数由小到大输出. 实现代码: 第1种方法: import java.util.Scanner; public class xyzMaxMin{ publi ...

  5. 编写Java程序_银行终端服务系统

    目录 一.General description 总体概述 二.About the Project 项目介绍 三.Soft function 软件功能 四.UI Model Use Case Diag ...

  6. 编写Java程序_找星座朋友应用软件

    一.About the Project 项目介绍 自古以来,人对于恒星的排列和形状很感兴趣,并很自然地把一些位置相近的星联系起来,组成星座.占星术亦称"占星学"."星占学 ...

  7. RFID射频卡超市购物结算系统

    RFID射频卡超市购物结算系统 这段时间在做RFID射频卡超市购物结算系统,这个系统的设想来自于大学研究课题,但是我们在淘宝网上购买设备的时候淘宝店主都认为RF射频技术不好应用在超市购物结算系统,原因 ...

  8. Java初学者作业——编写Java程序, 实现根据用户购买商品总金额, 计算实际支付的金额及所获得的购物券金额。

    返回本章节 返回作业目录 需求说明: 编写Java程序, 实现根据用户购买商品总金额, 计算实际支付的金额及所获得的购物券金额. 购买总金额达到或超过 1000元,按 8折优惠,送 200元的购物券: ...

  9. 35.按要求编写Java程序: (1)编写一个接口:InterfaceA,只含有一个方法int method(int n); (2)编写一个类:ClassA来实现接口InterfaceA,实现int method(int n)接口方 法时,要求计算1到n的和; (3)编写另一个类:ClassB来实现接口InterfaceA,实现int method(int n)接口 方法时,要求计算n的阶乘(n

      35.按要求编写Java程序: (1)编写一个接口:InterfaceA,只含有一个方法int method(int n): (2)编写一个类:ClassA来实现接口InterfaceA,实现in ...

随机推荐

  1. Oracle中的加解密函数

    对Oracle内部数据的加密,可以简单得使用DBMS_CRYPTO来进行,效果还是不错的,而且使用也比较方便,所以今天专门来学习一下这个包的使用方法.在使用之前,要注意两件事情: 1.DBMS_CRY ...

  2. 转 android design library提供的TabLayout的用法

    原文出处:http://chenfuduo.me/2015/07/30/TabLayout-of-design-support-library/ 在开发中,我们常常需要ViewPager结合Fragm ...

  3. @Transactional注解详细使用

    一.@Transactional 注解使用 @Transactional  注解只能用在public 方法上,如果用在protected或者private的方法上,不会报错,但是该注解不会生效. @T ...

  4. 【Linux】【Basis】Kernel

    Linux Kernel:               CentOS启动流程:POST --> Bootloader(BIOS, MBR) --> Kernel(initrd) --> ...

  5. 【Linux】【Services】【Package】yum

    Linux程序包管理(2)       CentOS: yum, dnf       URL: ftp://172.16.0.1/pub/        YUM: yellow dog, Yellow ...

  6. 初步接触Linux命令

    目录 虚拟机快照 1.首先将已经运行的系统关机 2.找到快照 拍摄快照 3.找到克隆 下一步 有几个快照会显示几个 4.克隆完成后 要修改一下IP 不然无法同时运行两个虚拟机系统 系统介绍 1.pin ...

  7. 通过静态分析和持续集成 保证代码的质量 (Helix QAC)2

    续上.... 第二章 部署示例:Jenkins and Helix QAC工具 第一节 Jenkins 作为持续集成系统 现在有很多持续集成工具,既有免费的,也有商业的.最近的研究显示,Jenkins ...

  8. 关于为了一时方便,使用@Scheduled注解定时踩的坑

    摘要: 事情是这样的前两周在做项目的时候碰到一个需求---要求每天晚上执行一个任务,公司统一使用的是 xxl-job 写定时任务的,我当时为了方便自己,然后就简单的使用了Spring的那个@Sched ...

  9. MicroK8S 安装 修改IP 设置镜像加速 升级 卸载等

    系统要求: Ubuntu 20.04 LTS, 18.04 LTS or 16.04 LTS或其他支持snapd的操作系统 内存:4G+ 硬盘:20G+ 官方文档 安装microk8s sudo sn ...

  10. 9、Redis五大数据类型---有序集合Zset(sorted set)

    一.简介 zset与set异同 相同之处: 都是没有重复元素的字符串集合 不同之处: 有序集合zset的每个成员都关联了一个评分(score),这个评分(score)被用来按照从最低分到最高分的方式排 ...