输出图书信息,提示购买数量,输出顾客订单信息
import java.util.Scanner;
class Book{
private int id; //IBM
private String name; //书名
private double price; //价格
private int storage; //库存
//有参构造
public Book(int id,String name,double price,int storage){
this.id=id;
this.name=name;
this.price=price;
this.storage=storage;
}
//获取IBM
public int getId() {
return id;
}
//获取书名
public String getName() {
return name;
}
//获取价格
public double getPrice() {
return price;
}
//获取库存
public int getStorage() {
return storage;
}
}
class OrderItem{
private Book book;
private int num;
public OrderItem(Book book,int num){
this.book=book;
this.num=num;
}
//获取图书对象
public Book getBook() {
return book;
}
//获取订购图书数量
public int getNum() {
return num;
}
}
class Order{
private String OrderId;
private OrderItem items[];
public double total;
//有参构造
public Order(String OrderId){
this.OrderId=OrderId;
this.items=new OrderItem[3];
}
//获取订单列表
public OrderItem[] getItems() {
return items;
}
//获取订单号
public String getOrderId() {
return OrderId;
}
//获取订单总额
public double getTotal() {
double total = 0;
for(int i=0;i<items.length;i++){//i<=items.length 多出一个订项目,结果报错
total += items[i].getNum()*items[i].getBook().getPrice();
}
this.total=total;
return total;
}
//指定一个订单项
public void setItem(OrderItem item,int i) {
this.items[i] = item;
}
}
public class Example2_2 {
public static void main(String[] args) {
Book books[]=new Book[3];
outBooks(books);
Order order = purchase( books);
outOrder(order);
}
public static Order purchase(Book books[]){
Order order=new Order("00001");
OrderItem item=null;
Scanner in=new Scanner(System.in);
for(int i=0;i<3;i++){
System.out.println("请输入图书编号选择图书:");
int cno=in.nextInt();
System.out.println("请输入购买图书数量:");
int pnum = in.nextInt();
item = new OrderItem(books[cno-1],pnum);
order.setItem(item,i);
System.out.println("请继续选择图书:");
}
in.close();
return order;
}
public static void outOrder(Order order){
System.out.println("\n\t图书订单");
System.out.println("图书订单号:"+order.getOrderId());
System.out.println("图书编号\t购买数量\t图书单价");
System.out.println("-------------------------------------");
OrderItem items[]=order.getItems();
for(int i=0;i<items.length;i++){
System.out.println(items[i].getBook().getName()+"\t"+items[i].getNum()+"\t"+items[i].getBook().getPrice());
}
System.out.println("-------------------------------------");
System.out.println("订单总额:\t\t"+order.getTotal());
}
public static void outBooks(Book books[]) {
books[0]=new Book(1,"Java教程",30.6,30);
books[1]=new Book(2,"JSP教程",42.1,40);
books[2]=new Book(3,"SSH架构",47.3,15);
System.out.println("\t 图书列表");
System.out.println("图书编号\t图书名称\t图书单价\t库存数量");
System.out.println("-------------------------------------");
for(int i=0;i<books.length;i++){
System.out.println(i+1+"\t"+books[i].getName()+"\t"+books[i].getPrice()+"\t"+books[i].getStorage());
}
System.out.println("-------------------------------------");
}
}