商城订单管理系统

订单管理系统

某购物商场,想做一个在线购物的程序,客户可以通过程序自助购物,要求有显示商品、选购商品、购物车、历史订单等功能。

学习目标

通过这个案例我们想达到的学习目标是 以下几点

- 1.熟练使用BufferedReader和BufferedWriter读写数据
- 2.熟练使用ArrayList集合进行增、删、改、查等操作
- 3.了解面向对象和实际场景的结合使用
- 4.了解购物类项目的业务流程

1. 需求分析

所有的商品信息以固定的格式(商品编号,商品名称,商品价格,商品库存)保存在product.txt文件中
	格式如下:
    001,小米手机,1999,10
    002,华为手机,3999,10
    003,乐事薯片,5,100
    004,小米锅巴,5,200
    005,格力空调,5000,5
	...

1.显示商品功能:
	读取product.txt文件,将每一行打印在控制台即可

2.选购商品功能:
	键盘录入购买的商品编号和数量,将商品信息添加到购物车,并提示是否继续购买。
	如下:
    录入购买的商品编号:
    001
    录入购买的商品数量
    5
    已添加到购物车,是否继续购买(Y/N)? 
    选择Y: 继续购物
    选择N: 结束购物

3.购物车功能:
	显示购物车中每个商品的名称,数量和金额,以及购物车总金额,并提示是否生成订单。
	
	查看购物车格式如下:
        商品名称:小米手机, 价格:1999, 数量:3, 金额:5997
        商品名称:乐视薯片, 价格:5, 数量:3, 金额:15
        总金额:6012元
        ---------------------------------------------
        是否生成订单?(Y/N)
		选择Y: 
			1)会有一个唯一的订单号,并且把订单的购物清单写到orderlist文件中
			2)商品库存减少相应的数量
			3)清空购物车
		选择N: 什么都不做
	
4.历史订单功能:每一个订单信息,以如下格式保存到orderlist.txt文件中。
    订单编号:92a9502f-cbd8-40f3-af1d-87a387a9fada
    商品名称:小米手机, 价格:1999, 数量:3, 金额:5997
    商品名称:乐视薯片, 价格:5, 数量:3, 金额:15
    总金额:6012元
    ---------------------------------------------
    订单编号:00785cce-394c-4788-9313-af5b3cd4a863
    商品名称:小米手机, 价格:1999, 数量:3, 金额:5997
    商品名称:乐视薯片, 价格:5, 数量:3, 金额:15
    总金额:6012元
    ---------------------------------------------

2. 准备数据

在Shopping模块目录下,新建一个product.txt文件。将以下商品信息复制到文件中。每一行从左往右分别表示商品编号、商品名称、商品价格、商品库存

                   
001,小米手机,1999,10
002,华为电视,3999,10
003,乐事薯片,5,100
004,小米锅巴,5,200
005,格力空调,5000,5
006,海尔冰箱,2500,10
007,公牛插座,50,250
008,长虹电视,3500,200
009,南孚电池,5,1000
010,大桥鸡精,9000,100

3. 功能菜单

public static void main(String[] args) throws IOException {
   
    while (true) {
   
        System.out.println("**************欢迎来到黑马商城***************");
        System.out.println("1.查看商品  2.选购商品  3.我的购物车  4.我的订单");
        Scanner sc = new Scanner(System.in);
        String choose = sc.next();
        switch (choose) {
   
            case "1":
                //查看所有商品信息
                showAllProduct();
                break;
            case "2":
                //选购商品
                buyProduct(shoppingcart);
                break;
            case "3":
                //查看购物车
                showShoppingCart(shoppingcart);
                break;
            case "4":
                //查看订单
                showOrderList();
                break;
            default:
                System.out.println("你选择有误,请重新输入");
        }
    }
}

4. Product类

public class Product {
   
    private String id; //编号
    private String name; //名称
    private int price; //单价
    private int stock; //库存
    
    //自己补全get和set方法,以及构造方法
    ...
}

5. 查看商品

查看商品的思路:
    1.编写方法readProductToList(),读取所有的商品信息到集合
    2.遍历集合中的所有数据,并打印输出
  • 读取product.txt文件到集合
- 使用BufferedReader读取product.txt文件
- 使用把每一行使用","进行切割,得到一个字符串数组
- 字符串数组中的元素分别表示:商品编号、商品名称、商品价格、商品库存
    注意:其中商品的价格和库存需要转换为整数
    //如: 把"123"转换为123
    int price=Integer.parseInt("123");
- 把商品信息封装为Product对象
- 把对象存储到ArrayList集合中
//读取文件到集合
public static ArrayList<Product> readProductToList() throws IOException {
   
    //创建流对象,关联day15/product.txt文件
    BufferedReader br =
        new BufferedReader(new FileReader("Shoppping/product.txt"));
    //创建集合,用于存储商品对象
    ArrayList<Product> list = new ArrayList<>();
    //line用来记录读取的每一行
    String line;
    //读取readLine()方法返回null,则表示读取到文件末尾
    while 
  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值