java案例3:基于控制台的购书系统

基于控制台的购书系统
顾客购买时,根据提示输入图书编号来选购需要的书及购买数的数量
购买完毕后,输出顾客的订单信息,包括订单号、订单明细、订单总额

1.图书类(Book)
图书编号 id
图书名称 name
图书单价 price
库存数量stock

2.订单项类(OrderItem)
图书 book
购买数量 num
3.订单类(Order)
订单号 orderId
订单总额 totalmoney
订单项列表 items

代码:

测试类

package base003;

/*
基于控制台的购书系统
顾客购买时,根据提示输入图书编号来选购需要的书及购买数的数量
购买完毕后,输出顾客的订单信息,包括订单号、订单明细、订单总额

1.图书类(Book)
图书编号 id
图书名称 name
图书单价 price
库存数量stock

2.订单项类(OrderItem)
图书 book
购买数量 num
3.订单类(Order)
订单号 orderId
订单总额 totalmoney
订单项列表 items

 */


import java.util.Scanner;

public class Test03 {
    public static void main(String[] args) {
        Book[] books = new Book[3];

        //调用打印图书信息的方法
        printBooks(books);
        
        //调用购买图书的方法
        Order order = buy(books);

        //打印订单信息
        printinfo(order);


    }

    private static void printinfo(Order order) {
        System.out.println("订单编号:"+order.getOrderId());
        //遍历订单项,输出信息
        System.out.println("图书名称\t图书单价\t购买数量");
        OrderItem[] items = order.getItems();
        for(int i=0;i<items.length;i++){
            System.out.println(items[i].getBook().getName()+"\t"+items[i].getBook().getPrice()+"\t"+items[i].getNum());
        }
        System.out.println("```````````````````````````````````````````");
        System.out.println("总金额:"+order.getTotalmoney());
    }

    //购买图书方法
    private static Order buy(Book[] books) {
        //创建Order对象
        Order order = new Order("001");

        //遍历数组books,从键盘获取要购买的图书编号及购买数量
        Scanner sc = new Scanner(System.in);
        for(int i = 0;i < books.length;i++){
            System.out.println("请输入要购买的图书编号:");
            int id = sc.nextInt();
            System.out.println("请输入购买的数量:");
            int num = sc.nextInt();
            //建立订单项对象,储存订单信息
            OrderItem item = new OrderItem(books[id-1],num);
            //把订单项设置到订单对象中
            order.setItems(i,item);

        }
        return order;


        //建立订单项对象,储存订单信息
        //返回图书编号及购买数量


    }
//打印图书信息方法
    private static void printBooks(Book[] books) {

        books[0] = new Book(1,"一级律师",10,20);
        books[1] = new Book(2,"跨界演员",20,10);
        books[2] = new Book(3,"针锋对决",15,18);

        System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
        System.out.println("图书编号\t图书名称\t图书单价\t图书库存");
        for(int i=0;i<books.length;i++){
            Book b = books[i];
            System.out.println(b.getId()+"\t\t"+b.getName()+"\t\t"+b.getPrice()+"\t\t"+b.getStock());
        }
        System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");

    }
}

Book类

package base003;

/*
1.图书类(Book)
图书编号 id
图书名称 name
图书单价 price
库存数量stock
 */

public class Book {
    private int id;
    private String name;
    private double price;
    private int stock;

    public Book() {
    }

    public Book(int id, String name, double price, int stock) {
        this.id = id;
        this.name = name;
        this.price = price;
        this.stock = stock;
    }

    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 int getStock() {
        return stock;
    }

    public void setStock(int stock) {
        this.stock = stock;
    }
}

Order类

package base003;

/*
3.订单类(Order)
订单号 orderId
订单总额 total
订单项列表 items
 */

public class Order {
    private String orderId;
    private OrderItem[] items = new OrderItem[3];
    private double totalmoney;

    public Order() {
    }

    public Order(String orderId) {
        this.orderId = orderId;
    }

    public String getOrderId() {
        return orderId;
    }

    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }

    public OrderItem[] getItems() {
        return items;
    }
//给订单项赋值
    public void setItems(int i,OrderItem item) {
       items[i] =  item;

    }

    public double getTotalmoney() {
        for(int i = 0;i < items.length;i++){
            //计算总金额:书籍数量乘以单价
            totalmoney +=items[i].getNum()*items[i].getBook().getPrice();
        }

        return totalmoney;
    }


}

OrderItem类

package base003;

/*
2.订单项类(OrderItem)
图书 book
购买数量 num

 */
public class OrderItem {
    private Book book;
    private  int num;

    public OrderItem() {
    }

    public OrderItem(Book book, int num) {
        this.book = book;
        this.num = num;
    }

    public Book getBook() {
        return book;
    }

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

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_54446335/article/details/129698786