编写Java程序_连锁超市购物结算系统

简介: 功能需求:一、Use Case 1 显示商品信息列表:二、Use Case 2 输入购买商品编号三、Use Case 3 显示购物结算清单需求分级:实现代码:

功能需求:


Soft function 软件功能:

连锁超市购物结算系统主要功能包括:显示商品信息,购物清单,结算功能。


总体用例图:


image.png


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

显示商品信息,供收银员参考查询。


58.png


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

顾客在购物后要求结账,收银员输入顾客购买的商品编号,准备由系统统计出顾客购物清单。


59.png


2、Preconditions 前置条件


系统提示“请输入商品编号:(输入0结束输入)”


3、End Condition 后置条件


(1)Success End Condition 成功后置条件


收银员输入商品编号后按下“Enter”键,系统显示出继续输入的提示:请输入商品编号:(输入0结束输入)。


(2)Failed End Condition 失败后置条件


a、收银员输入的商品编号非数字,提示“操作错误,系统退出!”,如图:


60.png


b、收银员输入的商品编号不存在,显示“查无此商品”,并允许继续输入商品编号,如图:


61.png


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

收银员将顾客购买的物品输入完毕之后,系统显示出顾客的购物清单,和购物总价。


62.png


需求分级:


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



相关文章
|
23天前
|
设计模式 消息中间件 传感器
Java 设计模式之观察者模式:构建松耦合的事件响应系统
观察者模式是Java中常用的行为型设计模式,用于构建松耦合的事件响应系统。当一个对象状态改变时,所有依赖它的观察者将自动收到通知并更新。该模式通过抽象耦合实现发布-订阅机制,广泛应用于GUI事件处理、消息通知、数据监控等场景,具有良好的可扩展性和维护性。
197 8
|
1月前
|
移动开发 监控 小程序
java家政平台源码,家政上门清洁系统源码,数据多端互通,可直接搭建使用
一款基于Java+SpringBoot+Vue+UniApp开发的家政上门系统,支持小程序、APP、H5、公众号多端互通。涵盖用户端、技工端与管理后台,支持多城市、服务分类、在线预约、微信支付、抢单派单、技能认证、钱包提现等功能,源码开源,可直接部署使用。
141 23
|
1月前
|
安全 前端开发 Java
使用Java编写UDP协议的简易群聊系统
通过这个基础框架,你可以进一步增加更多的功能,例如用户认证、消息格式化、更复杂的客户端界面等,来丰富你的群聊系统。
158 11
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
Java与生成式AI:构建内容生成与创意辅助系统
生成式AI正在重塑内容创作、软件开发和创意设计的方式。本文深入探讨如何在Java生态中构建支持文本、图像、代码等多种生成任务的创意辅助系统。我们将完整展示集成大型生成模型(如GPT、Stable Diffusion)、处理生成任务队列、优化生成结果以及构建企业级生成式AI应用的全流程,为Java开发者提供构建下一代创意辅助系统的完整技术方案。
127 10
|
1月前
|
人工智能 监控 Java
Java与AI智能体:构建自主决策与工具调用的智能系统
随着AI智能体技术的快速发展,构建能够自主理解任务、制定计划并执行复杂操作的智能系统已成为新的技术前沿。本文深入探讨如何在Java生态中构建具备工具调用、记忆管理和自主决策能力的AI智能体系统。我们将完整展示从智能体架构设计、工具生态系统、记忆机制到多智能体协作的全流程,为Java开发者提供构建下一代自主智能系统的完整技术方案。
329 4
|
1月前
|
安全 Java
Java异常处理:程序世界的“交通规则
Java异常处理:程序世界的“交通规则
298 98
|
1月前
|
机器学习/深度学习 分布式计算 Java
Java与图神经网络:构建企业级知识图谱与智能推理系统
图神经网络(GNN)作为处理非欧几里得数据的前沿技术,正成为企业知识管理和智能推理的核心引擎。本文深入探讨如何在Java生态中构建基于GNN的知识图谱系统,涵盖从图数据建模、GNN模型集成、分布式图计算到实时推理的全流程。通过具体的代码实现和架构设计,展示如何将先进的图神经网络技术融入传统Java企业应用,为构建下一代智能决策系统提供完整解决方案。
254 0
|
2月前
|
JavaScript Java 大数据
基于JavaWeb的销售管理系统设计系统
本系统基于Java、MySQL、Spring Boot与Vue.js技术,构建高效、可扩展的销售管理平台,实现客户、订单、数据可视化等全流程自动化管理,提升企业运营效率与决策能力。
|
1月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
121 1