目录

目录

› 需求分析、架构搭建

基本工作创建Goods和ShoppingCarTest

›如何完成添加商品功能?

›如何查看购物车里的信息?

› 怎样通过输入商品Id,找出对应的商品修改并购买数量?

›如何进行商品的订单总额计算?

完整代码展示

定义类(Goods)

测试(ShoppingCarTest)

运行结果展示


› 需求分析、架构搭建

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

◆ 购物车中的每个商品都是一个对象,需要定义一个商品类

◆ 购物车本身也是一个对象,可以使用数组对象代表它

◆ 完成界面架构,让用户选择操作的功能。

基本工作创建Goods和ShoppingCarTest

/*可以自行发挥,创建更多属性来实现多功能
*/
public class Goods {//属性(成员变量)int id;                    //用于商品编号String name;               //用于商品名double price;              //用于商品价格int buyNumber;             //用于储存购买商品数量
}
import java.util.Scanner;/*目标:面向对象编程训练: 购物车模块模拟*/
public class ShoppingCarTest {public static void main(String[] args) {//1.定义商品类,用于后期创建商品对象//2.定义购物车对象:使用一个对象数组表示Goods[] shopCar=new Goods[100];//3.搭建操作框架System.out.println("---欢迎━(*`∀´*)使用购物车---");do {System.out.println("1. 添加商品到购物车");System.out.println("2. 查询商品到购物车");System.out.println("3. 修改商品购买数量");System.out.println("4. 结束购买商品的金额");System.out.println("5. 退出购物车");Scanner input=new Scanner(System.in);System.out.print("请选择> ");String num = input.next();switch (num) {case "1":addGoods(shopCar, input);System.out.println();continue;case "2":queryGoods(shopCar);System.out.println();continue;case "3":updateGoods(shopCar, input);System.out.println();continue;case "4":payGoods(shopCar);System.out.println();continue;case "5":System.out.println("欢迎━(๑╹◡╹)ノ\"\"\"!下次使用~~\n");break;default:System.out.println("\n没有该功能,请重新选择~~\n");continue;}break;}while (true);}public static void addGoods(Goods[] shopCar, Scanner input) {}public static void queryGoods(Goods[] shopCar) {}public static void updateGoods(Goods[] shopCar, Scanner input) {}public static void payGoods(Goods[] shopCar) {}

›如何完成添加商品功能?

● 创建Goods类的对象表达商品对象,封装用户输入的商品信息

● 把商品对象存入到购物车的数组中去

    //实现用户将商品添加到购物车public static void addGoods(Goods[] shopCar, Scanner input) {//1.录入用户购买商品信息System.out.print("请输入购买商品的编号(不能重复):\t");int id=input.nextInt();System.out.print("请输入购买商品的名称:\t");String name=input.next();System.out.print("请输入购买商品的价格:\t");double price=input.nextInt();System.out.print("请输入购买商品数量:\t");int buyNumber=input.nextInt();//2.将购买商品的信息封装成一个商品对象Goods G=new Goods();G.id=id;G.name=name;G.price=price;G.buyNumber=buyNumber;//3.把商品对象添加到购物车中for(int i=0; i<shopCar.length; i++){if (shopCar[i]==null){//说明此位置没有元素存入,把新买的元素添加到此处shopCar[i]=G;break;              //结束,因为商品已存入成功,不需要继续}}System.out.println("\n"+G.name+"已加入购物车~~");}

›如何查看购物车里的信息?

● 遍历表示购物车的数组,每遍历到一个商品对象输出其信息展示

    //查询购物车里的商品public static void queryGoods(Goods[] shopCar) {System.out.println("------------查询购物车信息如下------------");System.out.println("编号\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.id+"\t\t"+G.name+"\t\t"+G.price+"\t\t"+G.buyNumber);}else {break;}}}

› 怎样通过输入商品Id,找出对应的商品修改并购买数量?

● 定义方法能够根据用户输入的Id去购物车数组中查看是否存在该商品对象

● 存在返回该商品对象的地址,不存在返回null

● 判断返回的对象地址是否存在,存在修改其购买数量,不存在就继续

    //修改购买商品数量public static void updateGoods(Goods[] shopCar, Scanner input) {while (true) {System.out.print("请输入购买商品的Id: ");int id = input.nextInt();Goods G = getGoodsById(shopCar, id);if (G != null) {//执行修改商品数量System.out.print("请你输入" + G.buyNumber + "最新的数量: ");int buyNumber = input.nextInt();G.buyNumber = buyNumber;System.out.println("修改成功 _φ_(..)\n");queryGoods(shopCar);break;} else {//用户输入的商品Id不存在System.out.println("(。・_・。)ノI’m sorry~,你所查询商品Id不在购物车中---\n");}}}//用于比对商品id,查看是否存在该商品public static Goods getGoodsById(Goods[] shopCar, int id){for(int i=0; i<shopCar.length; i++){Goods G=shopCar[i];//比对100个商品中的空值if (G != null) {//判断商品id与用户输入的id是否相同if(G.id == id){return G;}}else {return null;}}return null;}

›如何进行商品的订单总额计算?

● 定义求和变量,遍历购物车数组中的全部商品,累加其单价*购买数量

    //结算购买商品的金额public static void payGoods(Goods[] shopCar) {queryGoods(shopCar);//定义一个求和变量累加金额double money = 0;//2.遍历购物车数组全部商品对象,累加单价*数量for(int i=0; i< shopCar.length; i++){Goods G=shopCar[i];if (G !=null){money += (G.price*G.buyNumber);}else {break;}}System.out.println("订单总金额:"+money);}

完整代码展示


定义类(Goods)

public class Goods {//属性(成员变量)int id;                    //用于商品编号String name;               //用于商品名double price;              //用于商品价格int buyNumber;             //用于储存购买商品数量
}

测试(ShoppingCarTest)

import java.util.Scanner;/*目标:面向对象编程训练: 购物车模块模拟*/
public class ShoppingCarTest {public static void main(String[] args) {//1.定义商品类,用于后期创建商品对象//2.定义购物车对象:使用一个对象数组表示Goods[] shopCar=new Goods[100];//3.搭建操作框架System.out.println("---欢迎━(*`∀´*)使用购物车---");do {System.out.println("1. 添加商品到购物车");System.out.println("2. 查询商品到购物车");System.out.println("3. 修改商品购买数量");System.out.println("4. 结束购买商品的金额");System.out.println("5. 退出购物车");Scanner input=new Scanner(System.in);System.out.print("请选择> ");String num = input.next();switch (num) {case "1":addGoods(shopCar, input);System.out.println();continue;case "2":queryGoods(shopCar);System.out.println();continue;case "3":updateGoods(shopCar, input);System.out.println();continue;case "4":payGoods(shopCar);System.out.println();continue;case "5":System.out.println("欢迎━(๑╹◡╹)ノ\"\"\"!下次使用~~\n");break;default:System.out.println("\n没有该功能,请重新选择~~\n");continue;}break;}while (true);}//实现用户将商品添加到购物车public static void addGoods(Goods[] shopCar, Scanner input) {//1.录入用户购买商品信息System.out.print("请输入购买商品的编号(不能重复):\t");int id=input.nextInt();System.out.print("请输入购买商品的名称:\t");String name=input.next();System.out.print("请输入购买商品的价格:\t");double price=input.nextInt();System.out.print("请输入购买商品数量:\t");int buyNumber=input.nextInt();//2.将购买商品的信息封装成一个商品对象Goods G=new Goods();G.id=id;G.name=name;G.price=price;G.buyNumber=buyNumber;//3.把商品对象添加到购物车中for(int i=0; i<shopCar.length; i++){if (shopCar[i]==null){//说明此位置没有元素存入,把新买的元素添加到此处shopCar[i]=G;break;              //结束,因为商品已存入成功,不需要继续}}System.out.println("\n"+G.name+"已加入购物车~~");}//查询购物车里的商品public static void queryGoods(Goods[] shopCar) {System.out.println("------------查询购物车信息如下------------");System.out.println("编号\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.id+"\t\t"+G.name+"\t\t"+G.price+"\t\t"+G.buyNumber);}else {break;}}}//修改购买商品数量public static void updateGoods(Goods[] shopCar, Scanner input) {while (true) {System.out.print("请输入购买商品的Id: ");int id = input.nextInt();Goods G = getGoodsById(shopCar, id);if (G != null) {//执行修改商品数量System.out.print("请你输入" + G.buyNumber + "最新的数量: ");int buyNumber = input.nextInt();G.buyNumber = buyNumber;System.out.println("修改成功 _φ_(..)\n");queryGoods(shopCar);break;} else {//用户输入的商品Id不存在System.out.println("(。・_・。)ノI’m sorry~,你所查询商品Id不在购物车中---\n");}}}//用于比对商品id,查看是否存在该商品public static Goods getGoodsById(Goods[] shopCar, int id){for(int i=0; i<shopCar.length; i++){Goods G=shopCar[i];//比对100个商品中的空值if (G != null) {//判断商品id与用户输入的id是否相同if(G.id == id){return G;}}else {return null;}}return null;}//结算购买商品的金额public static void payGoods(Goods[] shopCar) {queryGoods(shopCar);//定义一个求和变量累加金额double money = 0;//2.遍历购物车数组全部商品对象,累加单价*数量for(int i=0; i< shopCar.length; i++){Goods G=shopCar[i];if (G !=null){money += (G.price*G.buyNumber);}else {break;}}System.out.println("订单总金额:"+money);}}

运行结果展示

初次_φ_(..)编写有不足的地方欢迎评论留言 (o゚▽゚)o

面向对象编程训练:模拟购物车模块(:3[▓▓]快醒醒开学了相关推荐

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

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

  2. C++ 面向对象编程训练魔兽世界备战

    总时间限制: 1000ms 内存限制: 65536kB 描述 魔兽世界的西面是红魔军的司令部,东面是蓝魔军的司令部.两个司令部之间是依次排列的若干城市.  红司令部,City 1,City 2,--, ...

  3. java编程——案例1:模拟购物车

    Goods类 package demo6;public class Goods {private int id; //编号private String name; //名称private double ...

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

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

  5. day23 xml模块、面向对象编程介绍

    今日内容: 1.xml模块 2.面向对象编程 一.xml模块 什么是xml? xml是一种可扩展的标记语言 xml语言的语法: <person name="jack"> ...

  6. 面向对象编程的灾难:是时候考虑更新换代了!

    全文共13316字,预计学习时长26分钟 图片来源:Unsplash/Jungwoo Hong 许多人认为面向对象编程是计算机科学的珍宝,代码组织的最终解决方案,所有问题的终极回答,编写程序的唯一真正 ...

  7. Day07:常用模块,面向对象编程(对象类)及内置函数

    今日内容: 1.常用模块 2.面向对象编程(*****)     介绍面向对象编程     类     对象 3.内置函数 ------------------------------ 1.面向过程编 ...

  8. 《JavaScript面向对象编程指南》——1.7 训练环境设置

    本节书摘来自异步社区<JavaScript面向对象编程指南>一书中的第1章,第1.7节,作者: [加]Stoyan Stefanov 译者: 凌杰 更多章节内容可以访问云栖社区" ...

  9. python学习笔记Day4 面向对象编程,文件操作,os模块,代码调试

    一.traceback模块 错误日志可能用到 import tracebackwhile 1: # 捕获异常的顺序按照先父类后子类try:n1 = int(input('请输入一个被除数'))n2 = ...

  10. python编程时常用的模块

    python之所以能在编程语言排行榜中占据榜首,处理语言自身的特点之外还在于其丰富的应用库,涵盖了计算机应用领域的方方面面. 一.算法设计 Python的数据结构,算法和设计模式的实现.另请参阅真棒算 ...

最新文章

  1. EfficientNetV2:更小,更快,更好的EfficientNet
  2. 导出txt文件宏_XLM宏反混淆工具:提取和反混淆XLM宏
  3. Croc Champ 2013 - Round 2 (Div. 2 Edition) 贪心+ 搜索+剪枝 + 数学
  4. 每秒处理请求数和并发的关系
  5. C# .Net中的类型转换
  6. c++ 传入动态参数_一文了解Mybatis中动态SQL的实现
  7. 【学习笔记】慕课网—Java设计模式精讲 第3章 软件设计七大原则-3-6 迪米特原则(最少知道原则)...
  8. Java EE业务处理流程与XML的引入
  9. Python守护进程
  10. eclipse的java插件,25个最好的免费Eclipse插件
  11. 数值计算方法”上机实验指导书——实验一 误差分析
  12. 怎么卸载apowerrec_如何卸载win10自带的游戏中心
  13. SEO和SEM的区别是什么?
  14. 头脑王者 物理化学生物
  15. 百度地图、高德地图的数据从哪里得到的?
  16. NEO智能合约开发(二)再续不可能的任务
  17. 第二章节 MongoDB的基本命令
  18. allegro使用汇总
  19. 【JavaScript系列】JS基础语法_从变量到数组一网打尽_有教程有实战
  20. OpenWRT 学习笔记 -- 用户自定义添加app的开机自启动

热门文章

  1. 【深入理解计算机系统】CSAPP-实验四:ArchLab全网最详细
  2. 阿里云oss使用cdn,节省oss下行流量
  3. 公众号接收用户消息—《微信公众平台开发实战与应用案例》—陈小龙
  4. 【渝粤教育】电大中专跨境电子商务理论与实务 (17)作业 题库
  5. 仿百度糯米TP5项目笔记
  6. 随机生成20以内加减法,5次答题并统计正确和错误题数
  7. 有没有开以修改服务器游戏数据,剑网3指尖江湖第二批服务器数据互通啦 来看看有没有你所在的大区...
  8. 解决谷歌浏览器打不开
  9. python数据爬取并可视化代码,python爬取摩拜单车API数据并做可视化分析(源码)...
  10. 其他人的爱情 VS 程序员的爱情