首页 > 其他分享 >模拟实现用户购买商品的功能,使用数组模拟商品列表,当购买的商品不存在或者商品库存为0时,抛出自定义异常。用户购买某一个商品时,对异常进行处理,并对库存进行改变。

模拟实现用户购买商品的功能,使用数组模拟商品列表,当购买的商品不存在或者商品库存为0时,抛出自定义异常。用户购买某一个商品时,对异常进行处理,并对库存进行改变。

时间:2022-10-25 01:44:31浏览次数:45  
标签:Goods 商品 goods static 购买 gname new 模拟

public static Scanner input;
public static Goods[] goods;//创建一个Goods对象数组
static {
    input=new Scanner(System.in);
    goods=new Goods[3];//将对象放在数组,并且初始化值
    goods[0]=new Goods(1,"苹果",20,2.5);
    goods[1]=new Goods(2,"香蕉",12,1.5);
    goods[2]=new Goods(3,"橘子",3,3);
}
private static void showinfo(){
    for (Goods good : goods) {
        System.out.println(good.toString());
    }
}
private static void buy() throws NoGoodsException, NotEnoughException {
    Goods gname=null;//创建一个对象
    System.out.println("请选择要购买的商品名称");
    String name=input.next();
    for(Goods goods1:goods){
        if(goods1==null)break;
        if(goods1.getName().equals(name)){
            gname=goods1;
        }
    }
    //下面语句要放在循环体外面,用另一个判断继续
    if(gname==null) {
        throw new NoGoodsException("商品不存在");
    }
    else System.out.println("商品存在可以买了,您要买几个?");
    int num=input.nextInt();
    if(gname.getStore()<num){
        throw new NotEnoughException("库存不足");
    }else{
        System.out.println("您需要支付"+(gname.getPrice()*num)+"元购买"+(gname.getName()));
    }
    gname.setStore(gname.getStore()-num);
    showinfo();
}

public static void main(String[] args) {
  //模拟实现用户购买商品的功能,
    // 当购买的商品不存在或者商品库存为0时,
    // 抛出自定义异常。用户购买某一个商品时,
    // 对异常进行处理,并对库存进行改变。
    try {
        buy();
    } catch (NoGoodsException e) {
        e.printStackTrace();
    } catch (NotEnoughException e) {
        e.printStackTrace();
    }
}

标签:Goods,商品,goods,static,购买,gname,new,模拟
From: https://www.cnblogs.com/Liku-java/p/16823619.html

相关文章

  • 煤矿八大事故3d仿真模拟还原沉浸式体验提升工人安全意识-深圳华锐视点
    出入过煤矿作业场所的都知道,因其内部空间狭隘昏暗、设备集中、逃生条件恶劣,因此多发生煤矿安全事故伤害,在人民至上、生命至上、安全第一的的指导意见下,煤矿行业悉数选......
  • Wannafly模拟赛4
    ATreepath给定一棵n个点的树,问其中有多少条长度为偶数的路径。路径的长度为经过的边的条数。x到y与y到x被视为同一条路径。路径的起点与终点不能相同。#include<bits/stdc+......
  • 2022.10.21 模拟赛小结
    2022.10.21模拟赛小结目录2022.10.21模拟赛小结更好的阅读体验戳此进入赛时思路T1CodeT2CodeT3CodeT4Code正解T2CodeT3T4UPDsssmzyAK了,zpair差一点AK了,我寄了。......
  • 2022.10.19 模拟赛小结
    2022.10.19模拟赛小结目录2022.10.19模拟赛小结更好的阅读体验戳此进入赛时思路T1CodeT2T3T4Code正解T1CodeT2T3T4CodeUPD(一场难度稍微低1丶丶的模拟赛,不过我太弱了,......
  • 2022.10.14 模拟赛小结
    2022.10.14模拟赛小结目录2022.10.14模拟赛小结题面PDF链接更好的阅读体验戳此进入赛时思路T1T2CodeT3CodeT4正解T1CodeT2CodeT3T4UPD大概是相对来讲补的比较全的一场......
  • 刚体模拟1-无约束刚体动力学 Rigid Body Simulation I—Unconstrained Rigid Body Dyn
    介绍这部分课程笔记涉及刚体动力学问题。为了帮助您开始模拟刚体运动,我们提供了实现这些笔记中讨论的大多数概念的代码片段。这部分课程笔记分为两部分。第一部分涵盖了......
  • 文华商品指数
    工业品指数:包含34个品种,铜、铝、锌、铅、镍、锡、不锈钢、螺纹钢、原油、燃油、LPG、低硫燃料油、玻璃、橡胶、20号胶、塑料、PVC、PTA、短纤、甲醇、聚丙烯、苯乙烯、沥青......
  • P7911 CSP J 2021 T3 纯模拟 无map 代码
    目录申明前置知识sscanf与sprintf应用字符串常用函数代码后记申明解释在注释里注释掉的不用管写错的代码可借鉴原题:洛谷P7911前置知识sscanf与sprintf/*sscanf......
  • 基于vite3+tauri模拟QQ登录切换窗体|Tauri自定义拖拽|最小/大/关闭
    前两天有给大家分享tauri+vue3快速搭建项目、封装桌面端多开窗口。今天继续来分享tauri创建启动窗口、登录窗口切换到主窗口及自定义拖拽区域的一些知识。希望对想要学习或......
  • csp前最后一次模拟(?)
    非常抽象的题目,第一次体验一次考试题目出现一个致命错误和一个小小错误(四道题错两道)第一题按理来说30min就已经打完了,但是题目上没写要mod一个大指数,但是大样例又mod了那......