需求

模拟购物车模块的功能,实现添加商品到购物车中去,同时实现修改购物车商品购买数量,结算商品价格功能。

分析

购物车中每一个商品都是一个对象,需要定义一个商品类。
购物车本身也是一个对象,可以用数组对象代表他

代码

1、首先,我们需要创建一个Goods类

package com.xxf1.demo;public class Goods {private int id;private String name;private double price;private int buyNumber;public Goods() {}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}public int getBuyNumber() {return buyNumber;}public void setBuyNumber(int buyNumber) {this.buyNumber = buyNumber;}
}

2、在创建个ShopCarTest测试类

package com.xxf1.demo;import java.util.Scanner;/** 目标:面向对象编程训练,购物车模块* */
public class ShopCarTest {public static void main(String[] args) {//1、定义商品类,用于后期创建商品对象//2、定义购物车对象,使用一个数组对象表示Goods[] shopcar = new Goods[100];//3、搭建操作架构while (true) {System.out.println("请您输入如下命令进行操作");System.out.println("添加商品到购物车:add");System.out.println("查询商品到购物车:query");System.out.println("修改商品购买数量:updata");System.out.println("结算购买商品的金额:pay");Scanner sc = new Scanner(System.in);System.out.println("请您输入命令");String command = sc.next();switch (command) {case "add"://添加商品到购物车addGoods(shopcar, sc);break;case "query"://查询商品到购物车queryGoods(shopcar);break;case "updata"://修改商品购买数量updataGoods(shopcar, sc);break;case "pay"://结算购买商品的金额pay(shopcar, sc);break;default:System.out.println("没有该功能");}}}public static void pay(Goods[] shopcar, Scanner sc) {queryGoods(shopcar);//1、定义一个求和变量累加金额double money = 0;//2、遍历购物车数组中的全部商品对象,累加单价*数量for (int i = 0; i < shopcar.length; i++) {Goods g = shopcar[i];if (g != null) {money += (g.getPrice() * g.getBuyNumber());} else {break;}}System.out.println("订单总金额:" + money);}/** 修改商品* */public static void updataGoods(Goods[] shopcar, Scanner sc) {//让用户输入要修改的id,根据id查询出要修改的商品对象while (true) {System.out.println("请您输入要修改的商品id:");int id = sc.nextInt();Goods g = getGoodsById(shopcar, id);if (g == null) {//没有该商品System.out.println("对不起,没有购买商品!");} else {//说明存在商品对象,可以修改它System.out.println("请您输入" + g.getName() + "商品最新购买数量:");int buyNumber = sc.nextInt();g.setBuyNumber(buyNumber);System.out.println("修改完成!");queryGoods(shopcar);break;}}}public static Goods getGoodsById(Goods[] shopCar, int id) {for (int i = 0; i < shopCar.length; i++) {Goods g = shopCar[i];if (g != null) {//判断这个商品对象的id是否是我们要找的if (g.getId() == id) {return g;}} else {return null;//找完全部存在的商品都没有找到!}}return null;//代表找完了100个商品都没有找到id一样的商品}/** 查询购物车中的商品对象,并显示出来* */public static void queryGoods(Goods[] shopcar) {System.out.println("============查询购物车信息如下============");System.out.println("编号\t\t名称\t\t\t价格\t\t\t购买数量");for (int i = 0; i < shopcar.length; i++) {Goods g = shopcar[i];if (g != null) {//展示这个商品System.out.println(g.getId() + "\t\t" + g.getName() + "\t\t\t" + g.getPrice() + "\t\t\t" + g.getBuyNumber());} else {break;}}}/** 商品添加到购物车功能* */public static void addGoods(Goods[] shopcar, Scanner sc) {//1、录入用户输入的购买商品信息System.out.println("请您输入商品的编号");int id = sc.nextInt();System.out.println("请您输入商品名称");String name = sc.next();System.out.println("请您输入商品的数量");int buyNumber = sc.nextInt();System.out.println("请您输入购买商品的价格");double price = sc.nextDouble();//2、把购买的商品封装成对象Goods g = new Goods();g.setId(id);g.setName(name);g.setBuyNumber(buyNumber);g.setPrice(price);//3、把商品的对象添加到数组当中for (int i = 0; i < shopcar.length; i++) {if (shopcar[i] == null) {//说明此位置没有元素存入,我们把新买的商品添加到此处即可shopcar[i] = g;break;}}System.out.println("您的商品:" + g.getName() + "添加购物车完成!");}
}

测试



模拟购物车系统(添加、修改、查询、结算)(Java实现)相关推荐

  1. 删除添加修改查询c语言报告,c语言课程设计报告 车辆违章查询系统.pdf

    c语言课程设计报告 车辆违章查询系统 C 语言课程设计 姓 名:刘 风 学 号:8100612 时 间:2011/6/11 指导教师:王 薇 C 语言课程设计 题目:车辆违章查询系统 要求: 能够根据 ...

  2. DNS添加/修改/查询/删除A记录

    #查询DNS可用类 Get-WmiObject -Namespace root\MicrosoftDNS -List #查询所有资源记录 $mydns = [WMIClass]"ROOT\M ...

  3. 利用JAVA多线程模拟售票系统,对统一资源进行处理

    首先多线程处理统一资源的方式有两种 分别介绍一下两者的区别 synchronized与Lock的区别 1.Lock不是Java语言内置的,synchronized是Java语言的关键字 2.synch ...

  4. 【java学习】 面向对象编程+java购物车系统

    文章目录 一.设计对象 二.内存机制 三.购物车系统 四.构造器 构造器 this关键字的作用 一.设计对象 类和对象是什么? 类:是共同特征的描述(设计图); 对象:是真实存在的具体实例; 如何设计 ...

  5. Java面向对象编程-模拟购物车模块

    总体架构 需求: 模拟购物车模块功能,需要实现添加商品到购物车中去,同是需要提供修改商品的购买数量,结算商品价格等功能 分析: ① 购物车中的每个商品都是一个对象,需要定义一个商品类 ② 购物车本身也 ...

  6. ectouch购物车添加勾选结算功能

    购物车勾选结算功能 开发使用的是ectouch企业版,带有购物车功能. 当前功能:在商品详情页面,点击添加购物车后,会进入购物车中.在购物车页面,点击'立即购买'会将购物车中的全部商品都结算生成订单. ...

  7. java实现模拟考试系统,基于jsp的驾照模拟考试系统a-JavaEE实现驾照模拟考试系统a - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的驾照模拟考试系统a, 该项目可用各类java课程设计大作业中, 驾照模拟考试系统a的系统架构分为前后台两部分, 最 ...

  8. java 城市公交查询系统源码_基于Java的城市公交查询系统的毕业设计参考源码

    资料介绍 一.实现多种查询功能,包括根据商厦名称.公交车号.日常站点.和任意两个站点查询乘车路线.其次,采用最短路径算法查找任意两个站点之间的最短乘车路线.最后,提供了用户留言的功能.用户管理功能和后 ...

  9. solrj的使用,环境准备,工程搭建,索引创建,添加\修改索引,删除索引,查询

    1      Solrj的使用 1.1     什么是solrj Solrj是访问solr服务的java程序客户端. 1.2     需求 使用solrj调用solr服务实现对索引库的增删改查操作. ...

  10. MongoDB 添加、查询(条件查询、排序、分页、返回指定字段)、修改、删除数据、聚合aggregate

    MongoDB内部支持JavaScript语法,使用SpiderMonkey作为内部的JavaScript解释器引擎. 1.常用命令 show databases:显示数据库列表 use:切换数据库 ...

最新文章

  1. 从原理到落地,七大维度详解矩阵分解推荐算法
  2. 如何计算两个日期之间相差的天数?
  3. ThreadLocal封装SimpleDateFormat
  4. Android图表控件MPAndroidChart——曲线图LineChart的使用(财富收益图)
  5. @async 默认线程池_Springboot线程池的使用和扩展
  6. Spring Cloud Stream如何处理消息重复消费
  7. 读取web应用的properties文件方法
  8. php 模拟ip访问网页,curl模拟浏览器,ip,来源,进行网站采集的实现方法
  9. 小公司如何选择合适的信息管理软件
  10. 大数据之-Hadoop3.x_Yarn_容量调度器---大数据之hadoop3.x工作笔记0145
  11. 基于机器视觉的安利纽崔莱瓶子外观检测
  12. pythonweb测试_python的web自动化测试
  13. 快速突破面试算法之搜索算法篇
  14. IDEA快捷键大全 + 动图演示,提升效率
  15. 图像特征计算——纹理特征
  16. macpro下docker安装目录_macos – 在mac os下的Docker deamon配置路径
  17. 前端des加密,后端des解密
  18. 香港喜运佳,承载着太多的回忆
  19. 血族服务器暂时无法登录,天之炼狱归来服务端7.01架设教程问题解答
  20. React基础—state组件使用及分类

热门文章

  1. CS5218: DP转HDMI 4K30HZ转换方案
  2. day 05 random time sys os pickle json re模块 爬取dytt
  3. 利用Photoshop对图片进行修改(图片英文换汉字,汉字换英文)
  4. React.memo Component definition is missing display name
  5. Gtalk怎么样绑定MSN帐号,在Gtalk里面聊MSN的方法
  6. 口算加密php怎么使用,从数盲到口算 ——带你玩转RSA加密算法(一)
  7. 浏览器油猴插件Tampermonkey下载安装
  8. 0x00000004 因果推理 —— 入门学习笔记
  9. signature=4a882a48c4a4b2b41835e11b6fafa69f,ABB 38SC980002R375
  10. 防御性编程:足够偏执