JavaAPI图书管理系统前台(模拟购物结算功能)

这是接上次做的模拟前台购物结算,上次是对List的增删改查,这次是对Map的增删改查,有利于综合学习。

视频演示

图书管理系统效果

模拟购物车

-----------------------------------------------------------------------------------------------------------------------------------------------------

所有图书信息如下:
---------------------------------------------------------------------------
编号    作者        书名        数量    价格    页码        描述
---------------------------------------------------------------------------
1001    罗贯中        三国演义    10        100.0    800        《水浒传》的故事...
1002    施耐庵        水浒传        10        110.0    880        《三国演义》故事...
1003    吴承恩        西游记        10        120.0    900        《西游记》在明代...
1004    曹雪芹        红楼梦        10        130.0    690        《红楼梦》讲述的...
---------------------------------------------------------------------------
1.继续购物吗?yes
2.移除商品? remove
3.清空购物车? clear
4.查看购物车? see
5.结帐? buy
请选择:yes
请输入你要购买的图书编号:1001
所有图书信息如下:
---------------------------------------------------------------------------
编号    作者        书名        数量    价格    页码        描述
---------------------------------------------------------------------------
1001    罗贯中        三国演义    10        100.0    800        《水浒传》的故事...
1002    施耐庵        水浒传        10        110.0    880        《三国演义》故事...
1003    吴承恩        西游记        10        120.0    900        《西游记》在明代...
1004    曹雪芹        红楼梦        10        130.0    690        《红楼梦》讲述的...
---------------------------------------------------------------------------
1.继续购物吗?yes
2.移除商品? remove
3.清空购物车? clear
4.查看购物车? see
5.结帐? buy
请选择:see
商品编号    商品名称    商品数量    商品单价    商品总额
1001        三国演义        1        100.0        100.0
所有图书信息如下:
---------------------------------------------------------------------------
编号    作者        书名        数量    价格    页码        描述
---------------------------------------------------------------------------
1001    罗贯中        三国演义    10        100.0    800        《水浒传》的故事...
1002    施耐庵        水浒传        10        110.0    880        《三国演义》故事...
1003    吴承恩        西游记        10        120.0    900        《西游记》在明代...
1004    曹雪芹        红楼梦        10        130.0    690        《红楼梦》讲述的...
---------------------------------------------------------------------------
1.继续购物吗?yes
2.移除商品? remove
3.清空购物车? clear
4.查看购物车? see
5.结帐? buy
请选择:yes
请输入你要购买的图书编号:1001
所有图书信息如下:
---------------------------------------------------------------------------
编号    作者        书名        数量    价格    页码        描述
---------------------------------------------------------------------------
1001    罗贯中        三国演义    10        100.0    800        《水浒传》的故事...
1002    施耐庵        水浒传        10        110.0    880        《三国演义》故事...
1003    吴承恩        西游记        10        120.0    900        《西游记》在明代...
1004    曹雪芹        红楼梦        10        130.0    690        《红楼梦》讲述的...
---------------------------------------------------------------------------
1.继续购物吗?yes
2.移除商品? remove
3.清空购物车? clear
4.查看购物车? see
5.结帐? buy
请选择:see
商品编号    商品名称    商品数量    商品单价    商品总额
1001        三国演义        2        100.0        200.0
所有图书信息如下:
---------------------------------------------------------------------------
编号    作者        书名        数量    价格    页码        描述
---------------------------------------------------------------------------
1001    罗贯中        三国演义    10        100.0    800        《水浒传》的故事...
1002    施耐庵        水浒传        10        110.0    880        《三国演义》故事...
1003    吴承恩        西游记        10        120.0    900        《西游记》在明代...
1004    曹雪芹        红楼梦        10        130.0    690        《红楼梦》讲述的...
---------------------------------------------------------------------------
1.继续购物吗?yes
2.移除商品? remove
3.清空购物车? clear
4.查看购物车? see
5.结帐? buy
请选择:yes
请输入你要购买的图书编号:1004
所有图书信息如下:
---------------------------------------------------------------------------
编号    作者        书名        数量    价格    页码        描述
---------------------------------------------------------------------------
1001    罗贯中        三国演义    10        100.0    800        《水浒传》的故事...
1002    施耐庵        水浒传        10        110.0    880        《三国演义》故事...
1003    吴承恩        西游记        10        120.0    900        《西游记》在明代...
1004    曹雪芹        红楼梦        10        130.0    690        《红楼梦》讲述的...
---------------------------------------------------------------------------
1.继续购物吗?yes
2.移除商品? remove
3.清空购物车? clear
4.查看购物车? see
5.结帐? buy
请选择:see
商品编号    商品名称    商品数量    商品单价    商品总额
1001        三国演义        2        100.0        200.0
1004        红楼梦        1        130.0        130.0
所有图书信息如下:
---------------------------------------------------------------------------
编号    作者        书名        数量    价格    页码        描述
---------------------------------------------------------------------------
1001    罗贯中        三国演义    10        100.0    800        《水浒传》的故事...
1002    施耐庵        水浒传        10        110.0    880        《三国演义》故事...
1003    吴承恩        西游记        10        120.0    900        《西游记》在明代...
1004    曹雪芹        红楼梦        10        130.0    690        《红楼梦》讲述的...
---------------------------------------------------------------------------
1.继续购物吗?yes
2.移除商品? remove
3.清空购物车? clear
4.查看购物车? see
5.结帐? buy
请选择:yes
请输入你要购买的图书编号:1003
所有图书信息如下:
---------------------------------------------------------------------------
编号    作者        书名        数量    价格    页码        描述
---------------------------------------------------------------------------
1001    罗贯中        三国演义    10        100.0    800        《水浒传》的故事...
1002    施耐庵        水浒传        10        110.0    880        《三国演义》故事...
1003    吴承恩        西游记        10        120.0    900        《西游记》在明代...
1004    曹雪芹        红楼梦        10        130.0    690        《红楼梦》讲述的...
---------------------------------------------------------------------------
1.继续购物吗?yes
2.移除商品? remove
3.清空购物车? clear
4.查看购物车? see
5.结帐? buy
请选择:see
商品编号    商品名称    商品数量    商品单价    商品总额
1001        三国演义        2        100.0        200.0
1003        西游记        1        120.0        120.0
1004        红楼梦        1        130.0        130.0
所有图书信息如下:
---------------------------------------------------------------------------
编号    作者        书名        数量    价格    页码        描述
---------------------------------------------------------------------------
1001    罗贯中        三国演义    10        100.0    800        《水浒传》的故事...
1002    施耐庵        水浒传        10        110.0    880        《三国演义》故事...
1003    吴承恩        西游记        10        120.0    900        《西游记》在明代...
1004    曹雪芹        红楼梦        10        130.0    690        《红楼梦》讲述的...
---------------------------------------------------------------------------
1.继续购物吗?yes
2.移除商品? remove
3.清空购物车? clear
4.查看购物车? see
5.结帐? buy
请选择:yes
请输入你要购买的图书编号:1003
所有图书信息如下:
---------------------------------------------------------------------------
编号    作者        书名        数量    价格    页码        描述
---------------------------------------------------------------------------
1001    罗贯中        三国演义    10        100.0    800        《水浒传》的故事...
1002    施耐庵        水浒传        10        110.0    880        《三国演义》故事...
1003    吴承恩        西游记        10        120.0    900        《西游记》在明代...
1004    曹雪芹        红楼梦        10        130.0    690        《红楼梦》讲述的...
---------------------------------------------------------------------------
1.继续购物吗?yes
2.移除商品? remove
3.清空购物车? clear
4.查看购物车? see
5.结帐? buy
请选择:see
商品编号    商品名称    商品数量    商品单价    商品总额
1001        三国演义        2        100.0        200.0
1003        西游记        2        120.0        240.0
1004        红楼梦        1        130.0        130.0
所有图书信息如下:
---------------------------------------------------------------------------
编号    作者        书名        数量    价格    页码        描述
---------------------------------------------------------------------------
1001    罗贯中        三国演义    10        100.0    800        《水浒传》的故事...
1002    施耐庵        水浒传        10        110.0    880        《三国演义》故事...
1003    吴承恩        西游记        10        120.0    900        《西游记》在明代...
1004    曹雪芹        红楼梦        10        130.0    690        《红楼梦》讲述的...
---------------------------------------------------------------------------
1.继续购物吗?yes
2.移除商品? remove
3.清空购物车? clear
4.查看购物车? see
5.结帐? buy
请选择:remove
请输入你要移除的图书编号:1003
所有图书信息如下:
---------------------------------------------------------------------------
编号    作者        书名        数量    价格    页码        描述
---------------------------------------------------------------------------
1001    罗贯中        三国演义    10        100.0    800        《水浒传》的故事...
1002    施耐庵        水浒传        10        110.0    880        《三国演义》故事...
1003    吴承恩        西游记        10        120.0    900        《西游记》在明代...
1004    曹雪芹        红楼梦        10        130.0    690        《红楼梦》讲述的...
---------------------------------------------------------------------------
1.继续购物吗?yes
2.移除商品? remove
3.清空购物车? clear
4.查看购物车? see
5.结帐? buy
请选择:see
商品编号    商品名称    商品数量    商品单价    商品总额
1001        三国演义        2        100.0        200.0
1004        红楼梦        1        130.0        130.0
所有图书信息如下:
---------------------------------------------------------------------------
编号    作者        书名        数量    价格    页码        描述
---------------------------------------------------------------------------
1001    罗贯中        三国演义    10        100.0    800        《水浒传》的故事...
1002    施耐庵        水浒传        10        110.0    880        《三国演义》故事...
1003    吴承恩        西游记        10        120.0    900        《西游记》在明代...
1004    曹雪芹        红楼梦        10        130.0    690        《红楼梦》讲述的...
---------------------------------------------------------------------------
1.继续购物吗?yes
2.移除商品? remove
3.清空购物车? clear
4.查看购物车? see
5.结帐? buy
请选择:clear
所有图书信息如下:
---------------------------------------------------------------------------
编号    作者        书名        数量    价格    页码        描述
---------------------------------------------------------------------------
1001    罗贯中        三国演义    10        100.0    800        《水浒传》的故事...
1002    施耐庵        水浒传        10        110.0    880        《三国演义》故事...
1003    吴承恩        西游记        10        120.0    900        《西游记》在明代...
1004    曹雪芹        红楼梦        10        130.0    690        《红楼梦》讲述的...
---------------------------------------------------------------------------
1.继续购物吗?yes
2.移除商品? remove
3.清空购物车? clear
4.查看购物车? see
5.结帐? buy
请选择:see
你还没有购物
所有图书信息如下:
---------------------------------------------------------------------------
编号    作者        书名        数量    价格    页码        描述
---------------------------------------------------------------------------
1001    罗贯中        三国演义    10        100.0    800        《水浒传》的故事...
1002    施耐庵        水浒传        10        110.0    880        《三国演义》故事...
1003    吴承恩        西游记        10        120.0    900        《西游记》在明代...
1004    曹雪芹        红楼梦        10        130.0    690        《红楼梦》讲述的...
---------------------------------------------------------------------------
1.继续购物吗?yes
2.移除商品? remove
3.清空购物车? clear
4.查看购物车? see
5.结帐? buy
请选择:yes
请输入你要购买的图书编号:1004
所有图书信息如下:
---------------------------------------------------------------------------
编号    作者        书名        数量    价格    页码        描述
---------------------------------------------------------------------------
1001    罗贯中        三国演义    10        100.0    800        《水浒传》的故事...
1002    施耐庵        水浒传        10        110.0    880        《三国演义》故事...
1003    吴承恩        西游记        10        120.0    900        《西游记》在明代...
1004    曹雪芹        红楼梦        10        130.0    690        《红楼梦》讲述的...
---------------------------------------------------------------------------
1.继续购物吗?yes
2.移除商品? remove
3.清空购物车? clear
4.查看购物车? see
5.结帐? buy
请选择:yes
请输入你要购买的图书编号:1004
所有图书信息如下:
---------------------------------------------------------------------------
编号    作者        书名        数量    价格    页码        描述
---------------------------------------------------------------------------
1001    罗贯中        三国演义    10        100.0    800        《水浒传》的故事...
1002    施耐庵        水浒传        10        110.0    880        《三国演义》故事...
1003    吴承恩        西游记        10        120.0    900        《西游记》在明代...
1004    曹雪芹        红楼梦        10        130.0    690        《红楼梦》讲述的...
---------------------------------------------------------------------------
1.继续购物吗?yes
2.移除商品? remove
3.清空购物车? clear
4.查看购物车? see
5.结帐? buy
请选择:yes
请输入你要购买的图书编号:1003
所有图书信息如下:
---------------------------------------------------------------------------
编号    作者        书名        数量    价格    页码        描述
---------------------------------------------------------------------------
1001    罗贯中        三国演义    10        100.0    800        《水浒传》的故事...
1002    施耐庵        水浒传        10        110.0    880        《三国演义》故事...
1003    吴承恩        西游记        10        120.0    900        《西游记》在明代...
1004    曹雪芹        红楼梦        10        130.0    690        《红楼梦》讲述的...
---------------------------------------------------------------------------
1.继续购物吗?yes
2.移除商品? remove
3.清空购物车? clear
4.查看购物车? see
5.结帐? buy
请选择:see
商品编号    商品名称    商品数量    商品单价    商品总额
1003        西游记        1        120.0        120.0
1004        红楼梦        2        130.0        260.0
所有图书信息如下:
---------------------------------------------------------------------------
编号    作者        书名        数量    价格    页码        描述
---------------------------------------------------------------------------
1001    罗贯中        三国演义    10        100.0    800        《水浒传》的故事...
1002    施耐庵        水浒传        10        110.0    880        《三国演义》故事...
1003    吴承恩        西游记        10        120.0    900        《西游记》在明代...
1004    曹雪芹        红楼梦        10        130.0    690        《红楼梦》讲述的...
---------------------------------------------------------------------------
1.继续购物吗?yes
2.移除商品? remove
3.清空购物车? clear
4.查看购物车? see
5.结帐? buy
请选择:buy
总额:380.0元。

 

实现代码

package book.entity;

import java.util.HashMap;
import java.util.Map;

/**
 * @ClassName CartItem
 * @Description: TODO
 * @Author 汤永红
 * @Date 2020/8/11 0011-10:55
 * @Version V1.0
 **/
public class CartItem {
    public static Map<Integer, CartItem> cars = new HashMap<>();
    /**
     * 图书对象的成员变量
     */
    private Book book;
    /**
     * 购买的数量
     */
    private Integer number;

    public Book getBook() {
        return book;
    }

    public void setBook(Book book) {
        this.book = book;
    }

    public Integer getNumber() {
        return number;
    }

    public void setNumber(Integer number) {
        this.number = number;
    }

    @Override
    public String toString() {
        return "CartItem{" +
                "book=" + book +
                ", number=" + number +
                '}';
    }
}
package book.entity;

import book.service.BookService;
import book.service.impl.BookServiceImpl;

import java.util.List;
import java.util.Map;
import java.util.Scanner;

/**
 * @ClassName Shopping
 * @Description: TODO
 * @Author 汤永红
 * @Date 2020/8/11 0011-11:00
 * @Version V1.0
 **/
public class Shopping {
    static BookService bookService = new BookServiceImpl();
    static Map<Integer, CartItem> cart = CartItem.cars;
    static Scanner input = new Scanner(System.in);

    private static void findAll() {
        System.out.println("所有图书信息如下:");
        System.out.println("---------------------------------------------------------------------------");
        System.out.println("编号\t作者\t\t书名\t\t数量\t价格\t页码\t\t描述");
        System.out.println("---------------------------------------------------------------------------");
        List<Book> list = bookService.findAll();
        for (Book book : list) {
            System.out.println(book.getId() + "\t" + book.getAuthor() + "\t\t"
                    + book.getName() + (book.getName().length() > 3 ? "\t" : "\t\t") + book.getNumber() + "\t\t"
                    + book.getPrice() + "\t" + book.getPage() + "\t\t" + (book.getInfo().length() > 8 ? book.getInfo().substring(0, 8) + "..." : book.getInfo()));

        }
        System.out.println("---------------------------------------------------------------------------");

    }

    public static void main(String[] args) {
        menu1();
        //
        System.out.println(cart);
    }

    public static void menu1() {
        findAll();
        System.out.println("1.继续购物吗?yes");
        System.out.println("2.移除商品? remove");
        System.out.println("3.清空购物车? clear");
        System.out.println("4.查看购物车? see");
        System.out.println("5.结帐? buy");
        System.out.print("请选择:");
        String answer = input.next();
        switch (answer) {
            case "yes":
                System.out.print("请输入你要购买的图书编号:");
                Integer id = input.nextInt();
                buy(id);

                break;
            case "buy":
                //结算 单价*数量进行累加
                double sum = 0;
                for (Map.Entry<Integer, CartItem> entry : cart.entrySet()) {
                    sum += entry.getValue().getBook().getPrice() * entry.getValue().getNumber();
                }
                System.out.println("总额:" + sum + "元。");
                cart.clear();//清空
                System.exit(-1);
                break;
            case "clear":
                cart.clear();//清空

                break;
            case "remove":
                //根据id移除,清除这个key
                System.out.print("请输入你要移除的图书编号:");
                id = input.nextInt();
                Book book = cart.get(id) != null ? cart.get(id).getBook() : null;
                if (book != null) {
                    //cart.get(id).setNumber(cart.get(id).getNumber() - 1);
                    //cart.put(id, cart.get(id));
                    cart.remove(id);
                } else {
                    System.out.println("你还没有购物");
                }

                break;
            case "see":
                if (cart.size() == 0) {
                    System.out.println("你还没有购物");
                } else {
                    System.out.println("商品编号\t商品名称\t商品数量\t商品单价\t商品总额");
                    for (Map.Entry<Integer, CartItem> entry : cart.entrySet()) {
                        System.out.println(entry.getValue().getBook().getId() + "\t\t" + entry.getValue().getBook().getName() + "\t\t" + entry.getValue().getNumber() + "\t\t" + entry.getValue().getBook().getPrice() + "\t\t" + (entry.getValue().getNumber() * entry.getValue().getBook().getPrice()));
                    }
                }
                break;
        }
        menu1();//回到主界面
    }

    public static void buy(Integer id) {
        //购物车功能
        //1.根据选择购买的书籍编号找到该本书
        Book book = bookService.findOne(id);
        //2.购物车查看
        CartItem item = (CartItem) cart.get(book.getId());
        if (item == null) {
            //购物车为空,说明第一次来买东西,要把购物车创建出来
            item = new CartItem();
            //将书籍放到购物车中
            item.setBook(book);
            //将书籍的默认数量为1
            item.setNumber(1);
        } else {
            //如果购物车有这个本书,我们只要修改数量,在原有的基础上累加一本
            item.setNumber(item.getNumber() + 1);
        }
        //3.把书放放购物车
        cart.put(book.getId(), item);
    }
}

 

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汤永红

一分也是爱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值