模拟购物车系统(添加、修改、查询、结算)(Java实现)
需求
模拟购物车模块的功能,实现添加商品到购物车中去,同时实现修改购物车商品购买数量,结算商品价格功能。
分析
购物车中每一个商品都是一个对象,需要定义一个商品类。
购物车本身也是一个对象,可以用数组对象代表他
代码
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实现)相关推荐
- 删除添加修改查询c语言报告,c语言课程设计报告 车辆违章查询系统.pdf
c语言课程设计报告 车辆违章查询系统 C 语言课程设计 姓 名:刘 风 学 号:8100612 时 间:2011/6/11 指导教师:王 薇 C 语言课程设计 题目:车辆违章查询系统 要求: 能够根据 ...
- DNS添加/修改/查询/删除A记录
#查询DNS可用类 Get-WmiObject -Namespace root\MicrosoftDNS -List #查询所有资源记录 $mydns = [WMIClass]"ROOT\M ...
- 利用JAVA多线程模拟售票系统,对统一资源进行处理
首先多线程处理统一资源的方式有两种 分别介绍一下两者的区别 synchronized与Lock的区别 1.Lock不是Java语言内置的,synchronized是Java语言的关键字 2.synch ...
- 【java学习】 面向对象编程+java购物车系统
文章目录 一.设计对象 二.内存机制 三.购物车系统 四.构造器 构造器 this关键字的作用 一.设计对象 类和对象是什么? 类:是共同特征的描述(设计图); 对象:是真实存在的具体实例; 如何设计 ...
- Java面向对象编程-模拟购物车模块
总体架构 需求: 模拟购物车模块功能,需要实现添加商品到购物车中去,同是需要提供修改商品的购买数量,结算商品价格等功能 分析: ① 购物车中的每个商品都是一个对象,需要定义一个商品类 ② 购物车本身也 ...
- ectouch购物车添加勾选结算功能
购物车勾选结算功能 开发使用的是ectouch企业版,带有购物车功能. 当前功能:在商品详情页面,点击添加购物车后,会进入购物车中.在购物车页面,点击'立即购买'会将购物车中的全部商品都结算生成订单. ...
- java实现模拟考试系统,基于jsp的驾照模拟考试系统a-JavaEE实现驾照模拟考试系统a - java项目源码...
基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的驾照模拟考试系统a, 该项目可用各类java课程设计大作业中, 驾照模拟考试系统a的系统架构分为前后台两部分, 最 ...
- java 城市公交查询系统源码_基于Java的城市公交查询系统的毕业设计参考源码
资料介绍 一.实现多种查询功能,包括根据商厦名称.公交车号.日常站点.和任意两个站点查询乘车路线.其次,采用最短路径算法查找任意两个站点之间的最短乘车路线.最后,提供了用户留言的功能.用户管理功能和后 ...
- solrj的使用,环境准备,工程搭建,索引创建,添加\修改索引,删除索引,查询
1 Solrj的使用 1.1 什么是solrj Solrj是访问solr服务的java程序客户端. 1.2 需求 使用solrj调用solr服务实现对索引库的增删改查操作. ...
- MongoDB 添加、查询(条件查询、排序、分页、返回指定字段)、修改、删除数据、聚合aggregate
MongoDB内部支持JavaScript语法,使用SpiderMonkey作为内部的JavaScript解释器引擎. 1.常用命令 show databases:显示数据库列表 use:切换数据库 ...
最新文章
- 从原理到落地,七大维度详解矩阵分解推荐算法
- 如何计算两个日期之间相差的天数?
- ThreadLocal封装SimpleDateFormat
- Android图表控件MPAndroidChart——曲线图LineChart的使用(财富收益图)
- @async 默认线程池_Springboot线程池的使用和扩展
- Spring Cloud Stream如何处理消息重复消费
- 读取web应用的properties文件方法
- php 模拟ip访问网页,curl模拟浏览器,ip,来源,进行网站采集的实现方法
- 小公司如何选择合适的信息管理软件
- 大数据之-Hadoop3.x_Yarn_容量调度器---大数据之hadoop3.x工作笔记0145
- 基于机器视觉的安利纽崔莱瓶子外观检测
- pythonweb测试_python的web自动化测试
- 快速突破面试算法之搜索算法篇
- IDEA快捷键大全 + 动图演示,提升效率
- 图像特征计算——纹理特征
- macpro下docker安装目录_macos – 在mac os下的Docker deamon配置路径
- 前端des加密,后端des解密
- 香港喜运佳,承载着太多的回忆
- 血族服务器暂时无法登录,天之炼狱归来服务端7.01架设教程问题解答
- React基础—state组件使用及分类
热门文章
- CS5218: DP转HDMI 4K30HZ转换方案
- day 05 random time sys os pickle json re模块 爬取dytt
- 利用Photoshop对图片进行修改(图片英文换汉字,汉字换英文)
- React.memo Component definition is missing display name
- Gtalk怎么样绑定MSN帐号,在Gtalk里面聊MSN的方法
- 口算加密php怎么使用,从数盲到口算 ——带你玩转RSA加密算法(一)
- 浏览器油猴插件Tampermonkey下载安装
- 0x00000004 因果推理 —— 入门学习笔记
- signature=4a882a48c4a4b2b41835e11b6fafa69f,ABB 38SC980002R375
- 防御性编程:足够偏执