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("------------------------------------------------------------");
}
}
java基础案例3-1购书系统
于 2022-02-05 02:07:51 首次发布