java实现简单的购物车

news2024/12/25 22:07:20

文章目录

  • 包含的功能
    • 增加商品
    • 删除商品
    • 修改商品购买数量
    • 展示商品
  • 源代码
    • Item.java
    • ShoppingCart.java

包含的功能

增加商品

private static void addItem(ArrayList<Item> shoppingCartList, Scanner sc) {
        String id = null;
        while(true){
            System.out.println("请输入商品编号");
            id = sc.next();
            //判断购物车是否有这个物品编号,如果有返回索引,没有返回-1
            int index = isExSitingId(shoppingCartList, id);
            if(index == -1){
                break;
            }else{
                System.out.println("您输入的商品编号已经存在!");
            }
        }
        System.out.println("请输入商品的名字:");
        String name = sc.next();
        System.out.println("请输入商品的描述:");
        String desc = sc.next();
        System.out.println("请输入商品的价格:");
        double price = sc.nextDouble();
        System.out.println("请输入商品的购买数量:");
        int count = sc.nextInt();

		//每次添加一个物品,都要new一个新的Item
        Item item = new Item(id, name, desc, price, count);
        shoppingCartList.add(item);
        System.out.println("添加成功");
    }

删除商品

private static void deleteItemByItemId(ArrayList<Item> shoppingCartList,Scanner sc) {
        if(shoppingCartList.isEmpty()){
            System.out.println("购物车空空如也");
            return;
        }
        String id = "";
        //判断有没有这个商品id
        System.out.println("请输入你要删除的商品编号:");
        id = sc.next();
        int index = isExSitingId(shoppingCartList, id);
        if (index == -1) {
            System.out.println("您输入的商品编号不存在,请确认后,重新选择操作!");
            return;
        } else {
            shoppingCartList.remove(index);
            System.out.println("删除成功");
        }

    }

修改商品购买数量

private static void updateItemByItemId(ArrayList<Item> shoppingCartList, Scanner sc) {
        if(shoppingCartList.isEmpty()){
            System.out.println("购物车空空如也");
            return;
        }
        System.out.println("请输入你要修改的商品编号:");
        String updateId = sc.next();
        int index = isExSitingId(shoppingCartList,updateId);
        if(index == -1){
            System.out.println("您输入的商品编号不存在,请确认后,重新选择操作!");
            return;
        }else {
            while (true) {
                System.out.println("请输入你要购买的商品数量:");
                int newCount = sc.nextInt();
                if(newCount>0){
                    Item item = shoppingCartList.get(index);
                    item.setCount(newCount);
                    System.out.println("修改成功");
                    showItem(shoppingCartList);
                    break;
                }else{
                    System.out.println("商品购买的数量必须大于0");
                }
            }
        }
    }

展示商品

private static void showItem(ArrayList<Item> shoppingCartList) {
        if(shoppingCartList.isEmpty()){
            System.out.println("购物车空空如也");
            return;
        }
        System.out.println("商品编号\t\t商品名字\t\t商品描述\t\t商品价格\t\t商品购买数量");
        for (int i = 0; i < shoppingCartList.size(); i++) {
            Item item = shoppingCartList.get(i);
            System.out.println(item.getId()+"\t\t\t"+item.getName()+"\t\t\t"+item.getDesc()+"\t\t\t"
            +item.getPrice()+"\t\t\t"+item.getCount());
        }

    }

源代码

Item.java

package com.Junswl.shopping;

public class Item {
	//商品编号
    private String id;
    //商品名称
    private String name;
    //商品描述
    private String desc;
    //商品价格
    private double price;
    //购买的商品数量
    private int count;
	
	//空参
    public Item() {
    }
	
	//满参
    public Item(String id, String name, String desc, double price, int count) {
        this.id = id;
        this.name = name;
        this.desc = desc;
        this.price = price;
        this.count = count;
    }

	//get and set 方法
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }
}

ShoppingCart.java

package com.Junswl.shopping;

import java.awt.*;
import java.util.ArrayList;
import java.util.Scanner;

public class ShoppingCart {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        ArrayList<Item> shoppingCartList = new ArrayList<>();
        while (true){
            Menu();
            System.out.println("请输入你的选择");
            int num = sc.nextInt();
            switch(num){
                case 1:
                    addItem(shoppingCartList,sc);
                    break;
                case 2:
                    deleteItemByItemId(shoppingCartList,sc);
                    break;
                case 3:
                    updateItemByItemId(shoppingCartList,sc);
                    break;
                case 4:
                    showItem(shoppingCartList);
                    break;
                default:
                    System.out.println("选择错误,请重新选择");
            }
        }
    }

    private static void updateItemByItemId(ArrayList<Item> shoppingCartList, Scanner sc) {
        if(shoppingCartList.isEmpty()){
            System.out.println("购物车空空如也");
            return;
        }
        System.out.println("请输入你要修改的商品编号:");
        String updateId = sc.next();
        int index = isExSitingId(shoppingCartList,updateId);
        if(index == -1){
            System.out.println("您输入的商品编号不存在,请确认后,重新选择操作!");
            return;
        }else {
            while (true) {
                System.out.println("请输入你要购买的商品数量:");
                int newCount = sc.nextInt();
                if(newCount>0){
                    Item item = shoppingCartList.get(index);
                    item.setCount(newCount);
                    System.out.println("修改成功");
                    showItem(shoppingCartList);
                    break;
                }else{
                    System.out.println("商品购买的数量必须大于0");
                }
            }
        }
    }

    private static void deleteItemByItemId(ArrayList<Item> shoppingCartList,Scanner sc) {
        if(shoppingCartList.isEmpty()){
            System.out.println("购物车空空如也");
            return;
        }
        String id = "";
        //判断有没有这个商品id
        System.out.println("请输入你要删除的商品编号:");
        id = sc.next();
        int index = isExSitingId(shoppingCartList, id);
        if (index == -1) {
            System.out.println("您输入的商品编号不存在,请确认后,重新选择操作!");
            return;
        } else {
            shoppingCartList.remove(index);
            System.out.println("删除成功");
        }

    }

    private static void showItem(ArrayList<Item> shoppingCartList) {
        if(shoppingCartList.isEmpty()){
            System.out.println("购物车空空如也");
            return;
        }
        System.out.println("商品编号\t\t商品名字\t\t商品描述\t\t商品价格\t\t商品购买数量");
        for (int i = 0; i < shoppingCartList.size(); i++) {
            Item item = shoppingCartList.get(i);
            System.out.println(item.getId()+"\t\t\t"+item.getName()+"\t\t\t"+item.getDesc()+"\t\t\t"
            +item.getPrice()+"\t\t\t"+item.getCount());
        }

    }

    private static void addItem(ArrayList<Item> shoppingCartList, Scanner sc) {
        String id = null;
        while(true){
            System.out.println("请输入商品编号");
            id = sc.next();
            int index = isExSitingId(shoppingCartList, id);
            if(index == -1){
                break;
            }else{
                System.out.println("您输入的商品编号已经存在!");
            }
        }
        System.out.println("请输入商品的名字:");
        String name = sc.next();
        System.out.println("请输入商品的描述:");
        String desc = sc.next();
        System.out.println("请输入商品的价格:");
        double price = sc.nextDouble();
        System.out.println("请输入商品的购买数量:");
        int count = sc.nextInt();

        Item item = new Item(id, name, desc, price, count);
        shoppingCartList.add(item);
        System.out.println("添加成功");
    }

    //判断商品id是否存在
    private static int isExSitingId(ArrayList<Item> shoppingCartList,String id){
        for (int i = 0; i < shoppingCartList.size(); i++) {
            Item item = shoppingCartList.get(i);
            if(item.getId().equals(id)){
                return i;
            }
        }
        return -1;
    }

    public static void Menu(){
        System.out.println("================购物车=============");
        System.out.println("1.添加商品到购物车");
        System.out.println("2.删除购物车商品");
        System.out.println("3.修改商品数量");
        System.out.println("4.查询购物车");
    }
}

学的不是技术,更是梦想!!!
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/797181.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HTML <picture> 标签

实例 如何使用 <picture> 标签: <picture><source media="(min-width:650px)" srcset="/i/photo/flower-4.jpg"><source media="(min-width:465px)" srcset="/i/photo/tulip.jpg"><img src="/i/ph…

难道真是小年?24浙大MBA项目报考形势研判:避开锋芒,逆势而行

还有几天时间&#xff0c;七月就过去了&#xff01;今年浙大MBA项目提前批面试还有最后六个批次&#xff1a; 但如果把区域便利性因素考虑进去&#xff0c;对于多数考生来说只有不超过三个批次的申请机会&#xff01;随着前面批次的面试完成&#xff0c;其实看得出来今年…

机器学习01 -Hello World(对鸢尾花(Iris Flower)进行训练及测试)

什么是机器学习&#xff1f; 机器学习是一种人工智能&#xff08;AI&#xff09;的子领域&#xff0c;它探索和开发计算机系统&#xff0c;使其能够从数据中学习和改进&#xff0c;并在没有明确编程指令的情况下做出决策或完成任务。 传统的程序需要程序员明确编写指令来告诉…

《Python高并发与高性能编程:原理与实践》——小解送书第六期

目录 书籍介绍 抽奖 书籍介绍 Python成为时下技术革新的弄潮儿&#xff0c;全民Python的发展趋势让人们不再满足于简单地运行Python程序&#xff0c;逐步探索其更为广泛的日常应用和高性能设计。以ChatGPT为代表的大模型产品对初级程序开发人员提出了挑战&#xff0c;要想在开…

目前主流的平面设计工具都有哪些?

对于初学者来说&#xff0c;图形设计看起来非常复杂。其实&#xff0c;只要选择合适的平面图设计软件&#xff0c;小白就能很快做出引人注目的平面图设计作品。在下面的文章中&#xff0c;将附上市场上流行的8款平面图设计软件的详细介绍&#xff0c;供设计师选择合适的平面图设…

异地远程访问连接家里的群晖NAS【内网穿透】

文章目录 异地远程访问连接家里的群晖NAS【内网穿透】 异地远程访问连接家里的群晖NAS【内网穿透】 在现代企业中&#xff0c;协同办公和数据共享的作用已经受到广泛认可&#xff0c;而群晖作为小型数据处理中心&#xff0c;也已经进入很多公司&#xff0c;并成为局域网内的数…

【智能可视化---02】艺术数据可视化:释放Python AI中Matplotlib的力量!寻觅AI里的Matplotlib,这两篇就够了!

如果对面太得寸进尺,请反思一下是不是自己太怂,这个世界上的恶人都是被怂人惯出来的。——拿破仑 🎯作者主页: 追光者♂🔥 🌸个人简介: 💖[1] 计算机专业硕士研究生💖 🌟[2] 2022年度博客之星人工智能领域TOP4🌟 🏅[3] 阿里云社区特邀专家博…

excel要如何自动累加某个单元格上方的所有单元格?

输入公式 SUM(INDIRECT("A1:A"&ROW()-1)) 运行实例如下图 注意图中b4&#xff0c;和b5单元格都输入相同的公式。 此方法可以避免写vba&#xff0c;以前此类问题的解决都是通过vba代码进行处理 对函数进行解析 主要使用了 INDIRECT() 2、公式说明&#xff1a;…

0基础学习VR全景平台篇 第72篇:VR直播-直播模板

直播模板是指直播间的模板样式&#xff0c;目前有两种&#xff0c;分别是经典模本和极简模板。 经典模板即默认的模板&#xff0c;极简模板则是一种更简单的模板样式&#xff0c;只有背景图、直播窗口和活动介绍&#xff0c;无菜单、公告、广告、互动开关等功能。点击“极简模板…

pandas追加写入数据

前言 阅读本文约2分钟 方式 使用df对象的_append方法&#xff08;老版本为append&#xff0c;新版本为_append&#xff09; 示例 # -*- coding: utf-8 -*- # Author : markadcimport pandas as pditems [{uid: i, name: a_{}.format(i)} for i in range(3)] df pd.D…

【时频分析,非线性中频】非线性STFT在瞬时频率估计中的应用(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

SecureCRT 屏幕输出行数设置

SecureCRT 屏幕输出行数设置 第一步&#xff1a;打开设置 第二步&#xff1a;设置历史展示行数 第三步&#xff1a;保存后重启软件即可 https://www.cnblogs.com/robots2/p/17130380.html

vscode和jetbrains IDEA添加免费的gpt代码生成插件

vscode和jetbrains IDEA添加免费的gpt代码生成插件 VSCODE添加代码智能生成插件 一、打开vscode添加扩展 打开vscode&#xff0c;点击扩展&#xff0c;搜索 aws toolkit ​​ 二、连接到AWS 如图&#xff0c;选择添加connectiong to aws 选择 Sign up or Sign in ​​ …

如何为树莓派上的WordPress博客网站配置自己的域名,并且外网可访问?

文章目录 如何为树莓派上的WordPress博客网站配置自己的域名&#xff0c;并且外网可访问&#xff1f;**前置条件**具体操作步骤如下&#xff1a;步骤1: 后台预留自定义域名步骤2: 配置您的域名DNS解析步骤3: 测试域名解析步骤4: 在前台终端测试运行步骤5: 修改cpolar配置文件步…

wangeditor 表格问题总结及适配方案

一、导出编辑器内容&#xff0c;表格无边框样式 1、通过 let article this.editor.getHtml(); // editor.getHtml() 获取 HTML 内容&#xff1b; 2、处理文本字符串&#xff1a;&#xff08;手动为 table 加上 css样式&#xff09;&#xff1b; article article.replace…

Java Process类Runtime.getRuntime().exec() 执行bat脚本程序

一、问题 Ruoyi架构&#xff0c;bat文件上传到了服务器的文件夹upload下&#xff0c;如何通过在前端点击“执行”&#xff0c;后端Java去操控对应的bat文件执行呢&#xff1f; Java可以通过Process类的Runtime.getRuntime().exec调用外部的脚本或者是操作系统命令 二、工具介…

ChatGPT可将生产力平均提高14%,有的提高了400% | 可能会被ChatGPT颠覆的领域

​美国国家经济研究局最近的一项研究发现&#xff0c;像ChatGPT这样的生成式人工智能可以将劳动力生产力平均提高14%。更有一些公司声称&#xff0c;借助这种生成式AI&#xff0c;其生产力提高了400%。 这里介绍四个可能会被ChatGPT颠覆的领域&#xff0c;希望可以对你提供经营…

PMP证书在哪个行业有用?

在当前的就业市场中&#xff0c;IT行业依然是最主要的行业之一。然而&#xff0c;由于技术更新速度过快&#xff0c;很多从事技术工作的人深知在国内长期从事技术工作的难度&#xff0c;因此有些人开始考虑转行。此外&#xff0c;IT行业项目种类繁多&#xff0c;这也是PMP证书考…

RuoYi-Vue 部署与配置 [CentOS7]

Java8环境配置[CentOS7] cd /usr/local/src wget https://repo.huaweicloud.com/java/jdk/8u201-b09/jdk-8u201-linux-x64.tar.gztar -xzvf jdk-8u201-linux-x64.tar.gz -C /usr/local#配置环境变量 vim /etc/profile #文末添加 export JAVA_HOME/usr/local/jdk1.8.0_201 expo…

代码重定位技术

1. 什么是重定位 本来每个进程都各自的进程地址空间, 但如果使用了比如注入技术后, 自身的那段代码就会进入到别人的进程地址空间内, 这将导致内部使用的API地址和变量地址发生变化, 因为注入到的位置和自身在自己进程地址空间种的基址很可能会不一样。 2. 如何解决重定位问题…