java基础案例3-1购书系统

package com.itheima;

//图书类
public class Book{
    private int bno;//编号
    private String bid;//书的码
    private String name;//书名
    private double price;//价
    private int stocks;//库存

    public Book(int bno, String bid, String name, double price, int stocks)
    {
        this.bno = bno;
        this.bid = bid;
        this.name = name;
        this.price = price;
        this.stocks = stocks;
    }
    public int getBno(){
        return bno;
    }
    public String getBid(){
        return bid;
    }
    public String getName(){
        return name;
    }
    public double getPrice(){
        return price;
    }
    public double getStocks(){
        return stocks;
    }
}

package com.itheima;

//订单类
public class OrderItem {
    private Book book;//一本书的订单
    private int nums;//数量

    public OrderItem(Book book, int nums)
    {
        this.book = book;
        this.nums = nums;
    }
    public Book getBook(){
        return book;
    }
    public int getNums(){
        return nums;
    }
    public void setBook(Book book){
        this.book = book;
    }
    public void setNums(int nums)
    {
        this.nums = nums;
    }
}


package com.itheima;

//用于输出顾客的订单信息
public class Order {
    private String oid;//订单号
    private OrderItem[] items;//订单列表
    private double total;//总额

    public Order(String oid)
    {
        this.oid = oid;
        this.items = new OrderItem[3];
    }
    public String getOid()
    {
        return oid;
    }
    public void setOid(String oid)
    {
        this.oid = oid;
    }
    public OrderItem[] getItems(){
        return items;
    }
    public void setItems(OrderItem item, int idx)
    {
        this.items[idx] = item;//一份订单的录入
    }
    public double getTotal(){
        calcTotal();
        return total;
    }
    private void calcTotal(){
        double total = 0;
        for(int i = 0; i < items.length; i++)
        {
            total += items[i].getNums() * items[i].getBook().getPrice();//多个订单的数量乘以价钱
        }
        this.total = total;
    }
}


package com.itheima;

//菜单
import java.time.LocalTime;//用于输出时间
import java.util.Scanner;//用于输入

public class Main{
    public static void main(String[] args)
    {
        Book[] books = new Book[3];
        outBookInfo(books);//存储图书
        Order order = purchase(books);//购买图书(order为全部图书的订单)
        outOrderInfo(order);//打印图书
    }
    private static void outOrderInfo(Order order)
    {
        System.out.println("--------------------\t图书订单\t-------------------");
        System.out.println("订单编号:"+order.getOid());//oid为订单号
        System.out.println("\t图书名称\t\t购买数量\t图书单价");
        OrderItem[] items = order.getItems();//填充一开始的数据
        String line = null;//用字符串来输出一本书的资料
        for(int i = 0; i < items.length; i++)
        {
            //输出每份订单的名字加money
            line = items[i].getBook().getName() + "\t" + items[i].getNums() + "\t" + items[i].getBook().getPrice();
            System.out.println(line);
        }
        System.out.println("订单总额:¥" + order.getTotal());
        System.out.println("-------------------------------------------------");
    }
    private static Order purchase(Book[] books)
    {
        Scanner sc = new Scanner(System.in);
        OrderItem item = null;//储存每一本书

        Order order = new Order("book-order-"+ LocalTime.now().toString());
        for(int i = 0; i < books.length; i++)
        {
            System.out.print("请选择需要购买的图书编号:");
            int bno = sc.nextInt();//获取编号
            System.out.print("购买数量:");
            int num = sc.nextInt();//数量
            item = new OrderItem(books[bno - 1], num);//创造订单(设置订单类)
            order.setItems(item, i);
            System.out.println("请继续购买图书。");
        }
        sc.close();
        return order;
    }
    private static void outBookInfo(Book[] books)
    {
        books[0] = new Book(1, "b978-7-115-548", "Java基础案例编程",19.9, 100);
        books[1] = new Book(2, "b328-3-124-431", "Python数据分析", 29.9,56);
        books[2] = new Book(3, "b112-8-765-904","机器学习实战(上)", 39.9, 220);

        System.out.println("------------------------\t图书列表\t-----------------------");
        System.out.println("编号\t\tISBN\t\t\t名称\t\t\t价格\t\t库存");
        String line = null;
        for(int i = 0; i < books.length; i++)
        {
            line = books[i].getBno()+"\t"+books[i].getBid()+ "\t"+books[i].getName()+"\t"+books[i].getPrice()+ "\t" + books[i].getStocks();
            System.out.println(line);
        }
        System.out.println("------------------------------------------------------------");
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值