用java编写一个基于控制台的购书系统,实现购书功能。程序输出所有图书的信息, 包括每本书的编号、书名、单价、库存。 顾客购书时,根据提示输人图书编号选购需要的书,并根据提示输人需要购买的书的数量。购买完毕输出顾客的订单信息,包括订单号、订单明细、订单总额。
时间: 2024-10-21 18:05:25 浏览: 29
开发基于控制台的购书系统_java源代码.doc
在Java中,我们可以创建一个简单的购书系统,使用Scanner类从控制台接收用户输入,并利用ArrayList或HashMap等数据结构存储书籍信息和订单信息。以下是一个基础的实现框架:
```java
import java.util.ArrayList;
import java.util.Scanner;
class Book {
int id;
String title;
double price;
int stock;
// 构造函数,getter和setter方法省略
}
public class ShoppingCart {
private ArrayList<Book> books = new ArrayList<>();
private ArrayList<OrderItem> orderItems = new ArrayList<>();
private int orderId = 1; // 订单编号
public void loadBooks() {
// 加载书籍数据(这里为了简化,假设数据已经预定义)
books.add(new Book(1, "书名1", 20.0, 10));
books.add(new Book(2, "书名2", 30.0, 5));
// ...其他书籍
}
public void displayBooks() {
for (Book book : books) {
System.out.println("编号:" + book.id + ", 书名:" + book.title + ", 单价:" + book.price + ", 库存:" + book.stock);
}
}
public void purchaseBook(int bookId, int quantity) {
for (Book book : books) {
if (book.id == bookId) {
if (book.stock >= quantity) {
book.stock -= quantity;
orderItems.add(new OrderItem(orderId++, book, quantity)); // 添加到订单列表
System.out.println("购买成功,订单号:" + orderId);
} else {
System.out.println("对不起,书已售罄");
}
break;
}
}
}
public void displayOrder(OrderItem item) {
System.out.println("订单号:" + item.getOrderNo() +
", 书名:" + item.getBook().title +
", 数量:" + item.getQuantity() +
", 总价:" + item.getPrice());
}
public void displayOrders() {
for (OrderItem item : orderItems) {
displayOrder(item);
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
ShoppingCart cart = new ShoppingCart();
cart.loadBooks();
while (true) {
System.out.println("请输入操作(1.查看书籍 2.购买 3.退出):");
int choice = scanner.nextInt();
switch (choice) {
case 1:
cart.displayBooks();
break;
case 2:
System.out.println("请输入图书编号和数量(例如1 5):");
int bookId = scanner.nextInt();
int quantity = scanner.nextInt();
cart.purchaseBook(bookId, quantity);
break;
case 3:
cart.displayOrders();
scanner.close(); // 关闭扫描器
return;
default:
System.out.println("无效选择,请重试");
}
}
}
}
class OrderItem {
int orderNo;
Book book;
int quantity;
// 构造函数,getter和setter方法省略
}
```
在这个例子中,我们首先定义了一个`Book`类表示书籍信息,然后创建了一个`ShoppingCart`类处理购书逻辑,包括加载书籍、显示书籍、购买书籍、显示订单等。在`main`函数中,我们通过Scanner获取用户的输入并调用相应的购物操作。
阅读全文