编写一个基于控制台的购书系统实现购书功能

输出图书信息,提示购买数量,输出顾客订单信息

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("-------------------------------------");	
	}
}
  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java编写一个基于控制台购书系统实现购书功能可以分为以下几个步骤: 1. 定义Book类,包括编号、书名、单价、库存等属性,并提供相应的get和set方法。 2. 定义Order类,包括订单号、订单明细、订单总额等属性,并提供相应的get和set方法。 3. 定义购书系统类,包括输出所有图书信息的方法、购买图书的方法、生成订单的方法等。 4. 在购买图书的方法中,根据用户输入的图书编号和数量,判断库存是否充足,如果充足则更新库存信息,并生成订单。 5. 在生成订单的方法中,根据购买的图书信息计算订单总额,并生成订单号和订单明细。 6. 最后输出顾客的订单信息,包括订单号、订单明细、订单总额。 下面是一个简单的示例代码: ``` public class Book { private int id; private String name; private double price; private int stock; public Book(int id, String name, double price, int stock) { this.id = id; this.name = name; this.price = price; this.stock = stock; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public int getStock() { return stock; } public void setStock(int stock) { this.stock = stock; } } public class Order { private int orderId; private String orderDetail; private double orderTotal; public Order(int orderId, String orderDetail, double orderTotal) { this.orderId = orderId; this.orderDetail = orderDetail; this.orderTotal = orderTotal; } public int getOrderId() { return orderId; } public void setOrderId(int orderId) { this.orderId = orderId; } public String getOrderDetail() { return orderDetail; } public void setOrderDetail(String orderDetail) { this.orderDetail = orderDetail; } public double getOrderTotal() { return orderTotal; } public void setOrderTotal(double orderTotal) { this.orderTotal = orderTotal; } } public class BookStore { private static Book[] books = { new Book(1, "Java编程思想", 79.0, 100), new Book(2, "Java核心技术", 89.0, 50), new Book(3, "Java并发编程实战", 69.0, 80) }; private static int orderId = 1000; public static void main(String[] args) { displayBooks(); buyBook(); } public static void displayBooks() { System.out.println("所有图书信息如下:"); System.out.println("编号\t书名\t单价\t库存"); for (Book book : books) { System.out.println(book.getId() + "\t" + book.getName() + "\t" + book.getPrice() + "\t" + book.getStock()); } } public static void buyBook() { Scanner scanner = new Scanner(System.in); System.out.println("请输入要购买的图书编号:"); int bookId = scanner.nextInt(); System.out.println("请输入要购买的数量:"); int quantity = scanner.nextInt(); Book book = findBookById(bookId); if (book == null) { System.out.println("该图书不存在!"); return; } if (book.getStock() < quantity) { System.out.println("库存不足!"); return; } book.setStock(book.getStock() - quantity); double total = book.getPrice() * quantity; String detail = book.getName() + " x " + quantity; int id = generateOrderId(); Order order = new Order(id, detail, total); System.out.println("订单信息如下:"); System.out.println("订单号:" + order.getOrderId()); System.out.println("订单明细:" + order.getOrderDetail()); System.out.println("订单总额:" + order.getOrderTotal()); } private static Book findBookById(int id) { for (Book book : books) { if (book.getId() == id) { return book; } } return null; } private static int generateOrderId() { return ++orderId; } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值