Java 购书系统

//图书类
public class Book {
    private int id;//编号
    private String name;//书名
    private double price;//价格
    private int storage;//库存

    public Book() {
    }

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

    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 getStorage() {
        return storage;
    }

    public void setStorage(int storage) {
        this.storage = storage;
    }
}
//订单项类(订单的属性)
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;
    }
}
//订单类
public class Order {
    private String orderId;//订单序号
    private double total;//总金额
    private OrderItem[] items = new OrderItem[3];//订单项数组(三个订单项)

    public Order() {
    }

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

    public String getOrderId() {
        return orderId;
    }

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

    public double getTotal() {
        for (int i = 0; i < items.length; i++) {
        total += items[i].getNum() * items[i].getBook().getPrice();//总金额:数量*每本书的价格
    }
        this.total = total;
        return total;
    }

    public void setTotal(double total) {

    }

    public OrderItem[] getItems() {
        return items;
    }

    public void setItems(int i, OrderItem item) {
        items[i] = item;
    }

}
//测试类
import java.util.Scanner;

public class Text {
    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.getTotal());
    }

    private static Order buy(Book[] books) {
        Order order=new Order("001");
        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,"Crown",10,10);
        books[1]=new Book(2,"Read",20,5);
        books[2]=new Book(3,"Go on",22,30);

        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"+b.getPrice()+"\t\t"+b.getStorage());
        }

    }
}

结果展示:

主要考察创建类和成员变量的调用

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值