开发基于控制台的购书系统(BuyBookSys)。具体要求如下: (1)输出所有图书的信息:包括每本图书的图书编号、图书名称、图书单价和库存数量。 (2)顾客购买图书:根据提示输入图书编号来购买图书,并根据提示输入购买图书数量(用户必须连续购书三次)。 (3)购书完毕后输出顾客的订单信息:包括订单号、订单明细、订单总额和订单日期。具体要求及推荐实现步骤 1、创建图书类,根据业务需要提供需要的构造方法和setter/getter方法。 2、创建订单项类,根据业务需要提供需要的构造方法和setter/getter方法。 3、创建订单类,根据业务需要提供需要的构造方法和setter/getter方法。 4、创建测试类Test,实现顾客购买图书。 A、获取所有图书信息并输出:创建至少三个图书对象并输出即可。 B、顾客购买图书:顾客通过输入图书编号来购买图书,并输入购买数量。 C、输出订单信息:包括订单流水号、订单明细(图书名称、购买数量、图书小计)、订单总额、订单日期。
时间: 2024-04-22 17:28:35 浏览: 23
好的,这是一个购书系统的需求,需要创建图书类、订单项类、订单类和测试类,并实现输出所有图书信息、顾客购买图书和输出订单信息的功能。以下是实现步骤:
1. 创建图书类
```java
public class Book {
private String id; // 图书编号
private String name; // 图书名称
private double price; // 图书单价
private int stock; // 库存数量
public Book(String id, String name, double price, int stock) {
this.id = id;
this.name = name;
this.price = price;
this.stock = stock;
}
// getter和setter方法省略
}
```
2. 创建订单项类
```java
public class OrderItem {
private Book book; // 图书
private int quantity; // 购买数量
public OrderItem(Book book, int quantity) {
this.book = book;
this.quantity = quantity;
}
// getter和setter方法省略
public double getSubtotal() {
return book.getPrice() * quantity; // 计算小计
}
}
```
3. 创建订单类
```java
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class Order {
private static int count = 0; // 订单流水号计数器
private String id; // 订单流水号
private List<OrderItem> items; // 订单明细
private double total; // 订单总额
private Date date; // 订单日期
public Order(List<OrderItem> items) {
this.id = String.valueOf(++count);
this.items = items;
this.total = 0;
for (OrderItem item : items) {
this.total += item.getSubtotal(); // 计算总额
}
this.date = new Date();
}
// getter和setter方法省略
}
```
4. 创建测试类
```java
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
// 创建图书对象
Book book1 = new Book("001", "Java编程思想", 99.0, 100);
Book book2 = new Book("002", "Java核心技术", 89.0, 200);
Book book3 = new Book("003", "Java从入门到精通", 69.0, 300);
// 输出所有图书信息
System.out.println("所有图书信息:");
System.out.println("编号\t名称\t单价\t库存");
System.out.println(book1.getId() + "\t" + book1.getName() + "\t" + book1.getPrice() + "\t" + book1.getStock());
System.out.println(book2.getId() + "\t" + book2.getName() + "\t" + book2.getPrice() + "\t" + book2.getStock());
System.out.println(book3.getId() + "\t" + book3.getName() + "\t" + book3.getPrice() + "\t" + book3.getStock());
// 顾客购买图书
List<OrderItem> items = new ArrayList<>();
Scanner sc = new Scanner(System.in);
int count = 0; // 连续购书计数器
while (count < 3) { // 连续购书三次
System.out.print("请输入图书编号:");
String id = sc.next();
System.out.print("请输入购买数量:");
int quantity = sc.nextInt();
Book book = null;
if (id.equals(book1.getId())) {
book = book1;
} else if (id.equals(book2.getId())) {
book = book2;
} else if (id.equals(book3.getId())) {
book = book3;
} else {
System.out.println("图书编号不存在,请重新输入!");
continue;
}
if (quantity > book.getStock()) {
System.out.println("库存不足,请重新输入!");
continue;
}
items.add(new OrderItem(book, quantity));
book.setStock(book.getStock() - quantity); // 更新库存
count++;
}
// 输出订单信息
Order order = new Order(items);
System.out.println("订单信息:");
System.out.println("流水号:" + order.getId());
System.out.println("明细:");
System.out.println("名称\t数量\t小计");
for (OrderItem item : items) {
System.out.println(item.getBook().getName() + "\t" + item.getQuantity() + "\t" + item.getSubtotal());
}
System.out.println("总额:" + order.getTotal());
System.out.println("日期:" + order.getDate());
}
}
```
这样就完成了购书系统的开发。注意,实际项目中可能需要更完善的输入验证和异常处理。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)