控制台版电子书城

1、题目

编写一个Java程序,模拟顾客去书店选书、结算和买书的过程。

界面效果
在这里插入图片描述

输出效果

...
欢迎来到汉唐书城....
图书列表
图书编号			图书名称			图书价格			库存数量
------------------------------------------------------------
1				Java教程			30.6			30
2				JSP指南			42.1			40
3				SSM架构			47.3			15
------------------------------------------------------------
请输入图书编号选择图书:
1
书店管理员已经找到了《Java教程》的书。
书店管理员已经找到了《30.6》的书价格。
请输入购买图书的数量:
1
请继续购买图书...
请输入图书编号选择图书:
2
书店管理员已经找到了《JSP指南》的书。
书店管理员已经找到了《42.1》的书价格。
请输入购买图书的数量:
2
请继续购买图书...
请输入图书编号选择图书:
3
书店管理员已经找到了《SSM架构》的书。
书店管理员已经找到了《47.3》的书价格。
请输入购买图书的数量:
3
请继续购买图书...
您已经买了3种书
图书订单
图书订单编号:0001
图书名称	购买数量	图书单价
------------------------------------------------------------
Java教程		1		30.6
JSP指南		2		42.1
SSM架构		3		47.3
------------------------------------------------------------
订单总额:256.7

Process finished with exit code 0

2、代码示例

图书:


public class Book {
    
    
    private String bookId;
    private String bookName;
    private Double price;
    private int storage;
    
    public Book(){
    
    
    
    }
    
    public String getBookId() {
    
    
        return bookId;
    }
    
    public void setBookId(String bookId) {
    
    
        this.bookId = bookId;
    }
    
    public String getBookName() {
    
    
        return bookName;
    }
    
    public void setBookName(String bookName) {
    
    
        this.bookName = bookName;
    }
    
    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;
    }
    
    @Override
    public String toString() {
    
    
        return "Book{" +
                "bookId='" + bookId + '\'' +
                ", bookName='" + bookName + '\'' +
                ", price=" + price +
                ", storage=" + storage +
                '}';
    }
}

订单:


import java.util.Date;

//订单
public class Order {
    
    
    
    private String orderId;
    private Double total;
    private Date date;
    private OrderItem[] items;
    
    public Order(){
    
    
    
        //限制只能买三本书
        this.items = new OrderItem[3];
        
        this.total = 0.0;
    
    }
    
    //显示订单明细
    public void  showDetail(){
    
    
    
        System.out.println("图书订单");
        System.out.println("图书订单编号:"  +  this.orderId);
        System.out.println("图书名称\t购买数量\t图书单价");
        System.out.println("------------------------------------------------------------");
        for (OrderItem orderItem : items) {
    
    
    
            System.out.println(orderItem.getBookName()  + "\t\t" +    orderItem.getNum() + "\t\t" + orderItem.getPrice());
            
        }
    
        System.out.println("------------------------------------------------------------");
    
    }
    
    //计算总价格
    public void calcTotal(){
    
    
    
    
        for (OrderItem orderItem : items) {
    
    
    
            //System.out.println( orderItem  );
            this.total  +=  orderItem.getNum()  * orderItem.getPrice();
            
        }
    
        System.out.println("订单总额:"  +  this.total);
    }
    
    public String getOrderId() {
    
    
        return orderId;
    }
    
    public void setOrderId(String orderId) {
    
    
        this.orderId = orderId;
    }
    
    public Double getTotal() {
    
    
        return total;
    }
    
    public void setTotal(Double total) {
    
    
        this.total = total;
    }
    
    public Date getDate() {
    
    
        return date;
    }
    
    public void setDate(Date date) {
    
    
        this.date = date;
    }
    
    public OrderItem[] getItems() {
    
    
        return items;
    }
    
    public void setItems(OrderItem[] items) {
    
    
        this.items = items;
    }
}

订单条目:


//订单项目
public class OrderItem {
    
    
    private String bookName;
    private double price;
    private int num;
    
    public OrderItem(){
    
    
    
    }
    
    public String getBookName() {
    
    
        return bookName;
    }
    
    public void setBookName(String bookName) {
    
    
        this.bookName = bookName;
    }
    
    public double getPrice() {
    
    
        return price;
    }
    
    public void setPrice(double price) {
    
    
        this.price = price;
    }
    
    public int getNum() {
    
    
        return num;
    }
    
    public void setNum(int num) {
    
    
        this.num = num;
    }
    
    @Override
    public String toString() {
    
    
        return "OrderItem{" +
                "bookName='" + bookName + '\'' +
                ", price=" + price +
                ", num=" + num +
                '}';
    }
}

书店:


//书店
public class Shop {
    
    
    
    //书架
    private Book[]  books;
    
    public Shop(){
    
    
        
        Book book1 = new Book();
        book1.setBookId("1");
        book1.setBookName("Java教程");
        book1.setPrice(30.6);
        book1.setStorage(30);
    
        Book book2 = new Book();
        book2.setBookId("2");
        book2.setBookName("JSP指南");
        book2.setPrice(42.1);
        book2.setStorage(40);
    
        Book book3 = new Book();
        book3.setBookId("3");
        book3.setBookName("SSM架构");
        book3.setPrice(47.3);
        book3.setStorage(15);
    
        this.books = new Book[3];
        books[0]  = book1;
        books[1]  = book2;
        books[2]  = book3;
        
    }
    
    //显示书店的书
    public void show(){
    
    
    
        System.out.println("欢迎来到西安汉唐书城....");
        System.out.println("图书列表");
    
        System.out.println("图书编号\t\t\t图书名称\t\t\t图书价格\t\t\t库存数量");
        System.out.println("------------------------------------------------------------");
        for (Book book : books) {
    
    
    
            System.out.println(  book.getBookId()  +  "\t\t\t\t" +   book.getBookName() +  "\t\t\t" +  book.getPrice() +  "\t\t\t" +  book.getStorage()  );
        }
    
        System.out.println("------------------------------------------------------------");
    
    }
    
    //根据图书编号查询书名
    public String findBookName(String bookId){
    
    
        
        String bookName = "";
    
        for (Book book : books) {
    
    
    
            if (book.getBookId().equals(bookId)){
    
    
                
                bookName = book.getBookName();
                
                break;
            }
        
        }
    
        System.out.println("书店管理员已经找到了《"  +  bookName +  "》的书。");
      
        return bookName;
    }
    
    
    //根据图书编号查询书名
    public Double findBookPrice(String bookId){
    
    
    
        Double price = 0.0;
        
        for (Book book : books) {
    
    
            
            if (book.getBookId().equals(bookId)){
    
    
    
                price = book.getPrice();
                
                break;
            }
            
        }
        
        System.out.println("书店管理员已经找到了《"  +  price +  "》的书价格。");
        
        return price;
    }
    
    
}

购买场景:


import java.util.Date;
import java.util.Scanner;

public class Client {
    
    
    
    public static void main(String[] args) {
    
    
        
        //扫描器
        Scanner scanner = new Scanner(System.in);
        
        //书店
        Shop shop = new Shop();
        shop.show();
        
        //买书
        Order order  = new Order();
        order.setOrderId("0001");
        order.setDate(  new Date() );
        
        
        for (int i = 0; i < order.getItems().length; i++) {
    
    
    
            //在每次购买的过程中产生一个订单条目对象
            OrderItem orderItem  = new OrderItem();
            
            //书名
            System.out.println("请输入图书编号选择图书:");
            String bookId  = scanner.next();
            //根据图书编号查询书名
            orderItem.setBookName(shop.findBookName(bookId));
            
            //单价
            orderItem.setPrice(shop.findBookPrice( bookId )  );
            
            //数量
            System.out.println("请输入购买图书的数量:");
            int num = 0;
            num = scanner.nextInt();
            orderItem.setNum(num);
            
            order.getItems()[i] = orderItem;
    
            System.out.println("请继续购买图书...");
        }
    
        System.out.println(  "您已经买了"  +  order.getItems().length +  "种书");
        
        //结算
        order.showDetail();
        order.calcTotal();
    }
}

おすすめ

転載: blog.csdn.net/goldentec/article/details/121565874
おすすめ