伴随互联网的蓬勃发展,网络购书系统作为电子商务的一种形式,正以其高效、低成本的优势逐步成为新兴的经营模式,人们已经不再满足互联网的用途仅仅局限于信息的浏览和发布,更渴望着能够充分享受互联网所带来的更多便利。网络购书系统正适应了当今社会快节奏地生活,使顾客足不出户便可以方便快捷轻松地选购自己喜欢的图书。
本任务使用所学知识编写一个基于控制台的购书系统,实现购书功能。输出所有图书的信息:包括每本书的编号、书名、单价、库存。
顾客购买书时,根据提示输入图书编号来选购需要的书,并根据提示输入购买书的的数量。
购买完毕后输出顾客的订单信息,包括:订单号、订单明细、订单总额。
源代码:
package Bookstore;
public class OrderItem {
Book book;
int num;
OrderItem(Book book,int num)
{
this.book=book;
this.num=num;
}
void setBook(Book book)
{
this.book=book;
}
void setNum(int num)
{
this.num=num;
}
Book getBook()
{
return this.book;
}
int getNum()
{
return this.num;
}
}
package Bookstore;
public class Book {
String id;
String name;
float price;
int storage;
public Book(String id,String name,float price,int storage) {
this.id=id;
this.name=name;
this.price=price;
this.storage=storage;
}
void setStorage(int storage)
{
this.storage=storage;
}
int getStorage()
{
return this.storage;
}
double getPrice() {
return price;
}
String getName() {
return name;
}
}
package Bookstore;
import java.util.Scanner;
public class Order {
String orderId;
OrderItem items[];
double total;
public Order(String orderId)
{ this.orderId = orderId;
this.items = new OrderItem[3];
}
public String getOrderId() {
return orderId;
}
public OrderItem[] getItems() {
return items;
}
public double getTotal() {
calTotal();
return total;
}
public void setItem(OrderItem item, int i) {
this.items[i] = item;
}
public void calTotal() {
double total = 0;
for (int i = 0; i < items.length; i ++) {
total += items[i].getNum() * items[i].getBook().getPrice();
}
this.total = total;
}
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图书单价");
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("\n");
}
System.out.println("---------------------------------------");
System.out.println("订单总额:\t"+order.getTotal());
}
public static void outBooks(Book books[]) {
books[0] = new Book("1","哈利波特与死亡圣器", (float) 68.8,100);
books[1] = new Book("2","杀死一只知更鸟", (float) 108.9,400);
books[2] = new Book("3","月亮与六便士", (float) 542.9,200);
System.out.println("\t图书列表");
System.out.println("图书编号\t图书名称\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());
}
}
}
运行结果截图: