利用集合实现一个简单的购物商城

本文介绍了一个简易购物系统的实现过程,包括商品展示、购物车管理和结算等功能。系统采用Java语言开发,涉及列表初始化、用户交互及商品库存管理等关键环节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//运行展示在最后

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

import hncu.cn.baseCode.homeWork.shop.bean.Prodect;
import hncu.cn.baseCode.homeWork.shop.bean.ShoppingCar;
//本例没使用到泛型,所以全部的警告都盖掉了
@SuppressWarnings("all")
public class Main {
	private static List listIni = new ArrayList();// 初始化购物商城 集合
	private static ShoppingCar shoppingCar = new ShoppingCar();// 购物车
	private static Scanner scanner = new Scanner(System.in);

	public static void main(String[] args) {
		// 初始化
		init();
		System.out.println("****************欢迎来到老干爹商城*****************");
		while (true) {
			System.out.print("请输入操作序号:< 1.查看商品  2.查看购物车  3.退出系统 >");
			int i = scanner.nextInt();
			switch (i) {
			case 1:
				showPro();// 查看商品,是否购买
				break;
			case 2:
				// 查看购物车,是否结算
				showCar();
				break;
			case 3:
				// 退出
				System.exit(0);
				break;
			default:
				break;
			}
		}
	}

	private static void showCar() {
		if (shoppingCar.getList().size() == 0) {
			System.out.println("你的购物车为空");
		} else {
			shoppingCar.print();//展示购物车
			shoppingCar.settleAccounts();//是否结算
		}
	}

	public static void showPro() {
		// 显示商品
		print(listIni);
		System.out.print("是否购买商品<1.是   2.否>");
		int i = scanner.nextInt();
		if (i == 1) {
			int c = shoppingCar.shop(listIni);
			Prodect p = (Prodect) listIni.get(c);
			int count = p.getCount();
			if(count>0){
				((Prodect) listIni.get(c)).setCount(count--);// (如果没了呢....)
			}else {
				System.out.println("该商品库存为 0,再看看其他商品吧~");
			}
		}
	}

	public static void print(List list) {
		System.out.println("编号\t品名\t价格\t描述\t存货量");
		for (Object object : list) {
			System.out.println(object.toString()+((Prodect)(object)).getCount());
		}
	}

	public static void init() {
		for (int i = 0; i < 5; i++) {
			Prodect prodect = new Prodect(i, "VIVO", 500 * (i + 1), ("VIVO" + i + " 代"), i * i + 10);
			listIni.add(prodect);
		}
	}
}



import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

import javax.swing.text.StyledEditorKit.ForegroundAction;

@SuppressWarnings("all")
public class ShoppingCar {
	private List list = new ArrayList();

	public List getList() {
		return list;
	}

	public void setList(List list) {
		this.list = list;
	}

	private int count;

	public ShoppingCar() {
		super();
	}

	public ShoppingCar(int count) {
		super();
		this.count = count;
	}

	public int shop(List li) {
		System.out.print("请输入需要购买的商品编号:");
		int i = new Scanner(System.in).nextInt();
		Prodect po = (Prodect) li.get(i);
		list.add(po);
		return i;// 返回需要购买的编号
	}

	public  void print() {
		System.out.println("编号\t品名\t价格\t描述");
		for (Object object : list) {
			System.out.println(object);
		}
	}
	public void settleAccounts(){
		System.out.println("是否结算?< 1.是  2.否  >");
		int i = new Scanner(System.in).nextInt();
		if(i == 1){
			System.out.println("总金额是:"+countMoney());
		}
	}
	public double countMoney(){
		double s = 0;
		for (Object object : list) {
			double price = ((Prodect)(object)).getPrice();
			s += price;
		}
		//清空购物车
		list.removeAll(list);
		return s;
	}
}

@SuppressWarnings("all")
public class Prodect {
	private int id;
	private String name;
	private double price;
	private String diString;// 描述
	private int count;// 总数

	public Prodect(int id, String name, double price, String diString, int count) {
		super();
		this.id = id;
		this.name = name;
		this.price = price;
		this.diString = diString;
		this.count = count;
	}

	public int getCount() {
		return count;
	}

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

	public Prodect() {
		super();
	}

	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 String getDiString() {
		return diString;
	}

	public void setDiString(String diString) {
		this.diString = diString;
	}

	@Override
	public String toString() {
		return id + "\t" + name + "\t" + price + "\t" + diString + "\t";
	}

}

下面是运行结果:


任务九:使用集合的方法(ArryList集合对类对象Member和Goods类) 完成淘宝shopping”购物管理系统购物结算模块和客户管理模块 1.需要完成的任务 开发“淘宝Shopping购物管理系统”: (1)实现系统数据传递 (2)实现自动计算会员折扣 (3)完善购物结算程序 (4)实现购物结算程序返回上一级主菜单 2.技能训练 (1)会使用String的相关方法 (2)会使用带参数的方法 3.实践 实践1:实现系统数据传递 需求说明: 实现数据传递,如图 (1)系统开始时加载系统数据:会员信息、商品信息和管理员信息 (2)在系统运行中,数据在不同界面间进行传递,但始终保持对同一个数组进行操作 实现思路及关键代码 (1)在前面已实现的StartSMS.java的main()中添加代码加载系统数据。 Data data = new Data(); data.initial(); (2)在前面已实现的Menu类中编写带参的setData()方法,用于获取系统数据。 a)编写类成员变量,定义数组变量goodsName、goodsPrice、custNo、custBirth和custScore b)编写setData方法,用于接收传递的数据。 public void setData(String[] goodsName1, double[] goodsPrice1, int[] custNo1, String[] custBirth1, int[] custScore1) { //给成员变量赋初值 } (3)在main()方法中调用setData方法实现Menu对象的数据加载。 实践2:扩展购物结算程序,实现自动计算会员折扣 需求说明 扩展购物结算功能,实现自动计算会员折扣:已知会员号,根据会员号查找目前的积分,然后计算该会员所享受的会员折扣。 实现思路及关键代码 (1)在前面已实现的Pay.java中添加方法。 (2)添加代码实现数据加载(可以直接复制Menu类中用于加载系统数据的代码) (3)编写带参数的方法实现会员折扣计算(参照任务3中实现的CalcDiscount.java) publicdoublegetDiscount(intcurCustNo,int[] custNo,int[] custScore){ //根据会员号curCustNo查询对应的下标index //根据多重if结构判断折扣数 //使用return返回折扣值 } 实践3:扩展实践2,打印购物小票 需求说明 在实践2基础上扩展购物结束程序,实现输出如下所示的购物小票。 输出购物小票 实现思路及关键代码 (1)扩展calcPay()方法 (2)创建StringBuffer对象存储购物信息 StringBuffergoodsList = new StringBuffer(); (3)调用StringBuffer对象的append方法追加购物信息 goodsList.append(name + "\t" + "¥" + price + "\t\t" + count + "\t\t" + "¥" + (price * count) + "\t\n"); (4)测试购物结算模块:Menu类中的showMainMenu()方法中添加测试代码: Pay pay = newPay(); //创建Pay实例 pay.setData(goodsName,goodsPrice,custNo,custBirth,custScore);//数据加载 pay.calcPay();//执行购物结算 实践4:执行购物结算后返回上一级菜单 需求说明 (1)添加Pay类的另一个方法returnLastMenu(),功能是在完成购物结算后,按数字0返回上一级菜单,部分代码如下,将其完善。 publicvoidreturnLastMenu() { System.out.print("\n\n请输入数字0返回上一级菜单:"); Scanner input = new Scanner(System.in); boolean con; do { con = true; if (input.next().equals("0")) { // 添加代码1:创建菜单类 // 添加代码2:调用方法加载系统数据 // 添加代码3:调用显示系统主菜单的方法 } else { System.out.print("输入错误, 请重新输入数字0返回上一级菜单:"); con = false; } } while (!con);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值