任务3-1 基于控制台的购书系统

目录

题目

伴随互联网的蓬勃发展,网络购书系统作为电子商务的一种形式,正以其高效、低成本的优势逐步成为新兴的经营模式,人们已经不再满足互联网的用途仅仅局限于信息的浏览和发布,更渴望着能够充分享受互联网所带来的更多便利。网络购书系统正适应了当今社会快节奏地生活,使顾客足不出户便可以方便快捷轻松地选购自己喜欢的图书。

分析​​​​​​​

代码

1.图书类(Book)

2.订单项类(OrderItem)

3.订单类(Order)

4.Demo

运行结果


题目

伴随互联网的蓬勃发展,网络购书系统作为电子商务的一种形式,正以其高效、低成本的优势逐步成为新兴的经营模式,人们已经不再满足互联网的用途仅仅局限于信息的浏览和发布,更渴望着能够充分享受互联网所带来的更多便利。网络购书系统正适应了当今社会快节奏地生活,使顾客足不出户便可以方便快捷轻松地选购自己喜欢的图书

本任务要求,使用所学知识编写一个基于控制台的购书系统,实现购书功能。输出所有图书的信息:包括每本书的编号、书名、单价、库存。

顾客购买书时,根据提示输入图书编号来选购需要的书,并根据提示输入购买书的的数量。

购买完毕后输出顾客的订单信息,包括:订单号、订单明细、订单总额。

分析​​​​​​​

(1)通过任务描述可知,该系统中必须包括3个实体类,类名及属性设置如下:

1. 图书类(Book)

a) 图书编号(id)

b) 图书名称(name)

c) 图书单价(price)

d) 库存数量(storage)

2. 订单项类(OrderItem):

a) 图书(book)

b) 购买数量(num)

3. 订单类(Order):

a) 订单号(orderID)

b) 订单总额(total)

c) 订单项列表(items)

(2)由于购买图书时,需要选择图书的数量,所以需要在订单项类里定义获取图书对象以及图书数量的方法。

(3)由于需要指定订单项以及获取订单的订单列表、订单号、订单总额等信息,所以需要有订单列表、订单号、订单总额指定订单项等方法。

代码

1.图书类(Book)

public class Book {
	private int id;
	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;
	}

	public int getId() {
		return id;
	}

	public String getName() {
		return name;
	}

	public double getPrice() {
		return price;
	}

	public int getStorage() {
		return storage;
	}
	
}

2.订单项类(OrderItem)

public 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;
	}
}

3.订单类(Order)

public class Order {
	
	private String orderId;
	private OrderItem items[];
	private 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;
	}

}

4.Demo

import java.util.Scanner;

public class Demo {
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		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 cid=in.nextInt();
			System.out.println("请输入购买图书数量:");
			int inum=in.nextInt();
			item=new OrderItem(books[cid-1],inum);
			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 item[]=order.getItems();
		for(int i=0;i<item.length;i++) {
			System.out.println(item[i].getBook().getName()+"\t"+item[i].getNum()+"\t"+item[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("-------------------------------------------");
	}
}

运行结果

6312e8ba28794008a1365d1c41b74c4a.png

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值