概述
代码下载地方:“
购物车以及其他代码的下载地址:
https://download.csdn.net/download/wtt234/39099704
”
ATMjava源代码下载地址:
https://download.csdn.net/download/wtt234/39661172
具体看注释:
本案例涉及两个原文件内容,分别是“”“Goods.java”,作为封装的商品类信息
第二个就是主程序"shopCap.java"的内容;
这个是Goods.java内容信息
package gouwuche;
// 封装的商品类
public class Goods {
int id; //编号
String name; //名称
double price; //价格
int buyNumber; //购买数量
}
这个是shopCap.java文件内容;
package gouwuche;
import java.sql.SQLOutput;
import java.util.Scanner;
/**
* 购物车模块模拟
* 需求:模拟购物车模块的功能,需要实现添加商品到购物车中,
* 同时需要提供修改商品的购买数量,结算商品价格功能
*
* 分析:
* 购物车中的每个商品都是一个对象,需要定义一个商品类
* 购物车本身也是一个对象,可以使用数组对象代表他
* 完成界面架构,让用户选择操作的功能
*/
public class ShopCar {
public static void main(String[] args) {
//添加商品add
/**查看商品 query
* 修改数量update
* 结算价格pay
* 需求:让用户输入商品信息,并加入到购物车,并且可以立即查看购物车信息
* 需要让用户录入商品信息,创建商品对象封装商品信息
* 并把商品对象加入到购物车数组中去
* 查询购物车信息,就是遍历购物车数组中的每个商品对象。
*
* */
// 2.定义购物车对象,使用一个数组对象表示
Goods[] shopCar=new Goods[100]; //[null,null,null,...]
Scanner sc=new Scanner(System.in);
//3.搭建操作框架
while (true){
System.out.println("请您选择如下命令进行操作:");
System.out.println("添加商品到购物车:add");
System.out.println("查询商品到购物车:query");
System.out.println("修改商品购买数量:update");
System.out.println("结算购买商品的金额:pay");
System.out.println("请输入命令:");
String command=sc.next();
switch (command){
case "add":
//添加商品到购物车
addGoods(shopCar,sc);
break;
case "query":
//查询购物车的商品展示
queryGoods(shopCar);
break;
case "update":
//修改商品的购买数量
updateGoods(shopCar,sc);
break;
case "pay":
//结算金额
pay(shopCar);
break;
default:
System.out.println("没有该功能!");
}
}
}
public static void pay(Goods[] shopCar) {
/**
*当用户输入pay命令后,需要展示全部购买的商品信息和总金额
* 分析:
* 定义求和变量,遍历购物车数组中的全部商品,累加其单价*购买数量。
*/
//1.定义一个求和变量累加金额
double money=0;
//2.遍历购物车数组中的全部商品对象,累加单价*数量
//[g1,g2,null,null...]
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);
}
public static void updateGoods(Goods[] shopCar,Scanner sc) {
/**
* 让用户输入商品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.name+"商品最新购买数量:");
int buyNumber=sc.nextInt();
g.buyNumber=buyNumber;
System.out.println("修改完成!");
queryGoods(shopCar); //修改完成后,在查询下商品信息
break;
}
}
}
public static Goods getGoodsById(Goods[] shopCar,int id){
//shopCar=g1,g2,null,null,....]
for (int i = 0; i <shopCar.length ; i++) {
Goods g=shopCar[i];
if(g!=null){
//判断这个商品对象的id是否是我们查找的
if(g.id==id){
return g;
}
}else {
return null; // 找完了全面存在的商品,都没有找到!
}
}
return null; //代表找完了购物车中100个商品都是没有找到id一样的商品。
}
public static void queryGoods(Goods[] shopCar) {
/**
*查询购物车信息就是遍历购物车数组中的每个商品对象
*/
System.out.println("========查询购物车信息如下=========");
System.out.println("编号tt名称tt价格tt购买数量");
//shopCar=[g1,g2,g3,g4,g5,null,null,...]
for (int i = 0; i <shopCar.length ; i++) {
Goods g=shopCar[i]; //定义一个商品实例,用于接收循环出的实例。
if(g!=null){
//展示这个商品
System.out.println(g.id+"tt"+g.name+"tt"+g.price+"tt"+g.buyNumber);
}else{
//遍历结束
break;
}
}
}
/**
* 添加商品到购物车
* @param shopCar
* @param sc
*
* 分析:需要让用户录入商品信息,创建商品对象封装商品信息
* 并把商品对象加入到购物车的数组中去。
* 查询购物车信息,就是遍历购物车数组中的每个商品对象
*/
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.id=id;
g.name=name;
g.buyNumber=buyNumber;
g.price=price;
//3.把这个商品对象添加到购物车数组中去
//shopCar=a1,a2,null,null,....]
for (int i = 0; i <shopCar.length ; i++) {
if(shopCar[i]==null){
//说明此位置没有元素存入,把我们新买的商品添加到此处即可
shopCar[i]=g;
break; //结束,商品已经成功录入,不需要继续找位置了
}
}
System.out.println("您的商品"+g.name+"添加到购物车完成!");
}
}
最后
以上就是含糊小甜瓜为你收集整理的java案例代码10--购物车案例--重要的全部内容,希望文章能够帮你解决java案例代码10--购物车案例--重要所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复