用JAVA 本任务要求,使用所学知识编写一个基于控制台的购书系统,实现购书功能。 输出所有图书的信息:包括每本书的编号、书名、单价、库存。 顾客购买书时,根据提示输入图书编号来选购需要的书,并根据提示输入购买书的的数量。 购买完毕后输出顾客的订单信息,包括:订单号、订单明细、订单总额。
时间: 2023-11-27 17:55:41 浏览: 259
基于Java的控制台图书购买系统
好的,我可以帮您实现这个购书系统。首先,我们需要设计一个Book类来表示每本书的信息,包括编号、书名、单价和库存。代码如下:
```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;
}
//以下是各个属性的get和set方法
public String getId() {
return id;
}
public void setId(String 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;
}
}
```
接下来,我们需要设计一个书店类BookStore,来管理所有的图书信息。代码如下:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class BookStore {
private List<Book> books; //存储所有的图书信息
private int orderNum = 0; //订单号计数器
public BookStore() {
//初始化书店中的图书信息
books = new ArrayList<Book>();
books.add(new Book("001", "Java编程思想", 89.0, 50));
books.add(new Book("002", "Effective Java", 59.8, 80));
books.add(new Book("003", "深入理解Java虚拟机", 65.0, 30));
books.add(new Book("004", "算法导论", 78.5, 40));
}
//输出所有的图书信息
public void displayBooks() {
System.out.println("编号\t书名\t\t\t单价\t库存");
for (Book book : books) {
System.out.printf("%s\t%s\t\t%.2f\t%d\n", book.getId(), book.getName(), book.getPrice(), book.getStock());
}
}
//购买图书
public void buyBook() {
Scanner input = new Scanner(System.in);
System.out.print("请输入要购买的图书编号:");
String id = input.next();
Book book = findBookById(id);
if (book == null) {
System.out.println("该图书不存在!");
return;
}
System.out.printf("您选择了《%s》,单价为%.2f元,当前库存为%d本。\n", book.getName(), book.getPrice(), book.getStock());
System.out.print("请输入要购买的数量:");
int quantity = input.nextInt();
if (quantity > book.getStock()) {
System.out.println("库存不足!");
return;
}
double totalPrice = book.getPrice() * quantity;
book.setStock(book.getStock() - quantity); //更新库存
orderNum++; //生成订单号
System.out.printf("订单号:%d\n", orderNum);
System.out.println("订单明细:");
System.out.printf("%s\t%s\t\t\t%d\t%.2f元\n", book.getId(), book.getName(), quantity, totalPrice);
System.out.printf("订单总额:%.2f元\n", totalPrice);
}
//根据编号查找图书
private Book findBookById(String id) {
for (Book book : books) {
if (book.getId().equals(id)) {
return book;
}
}
return null;
}
}
```
最后,我们可以在主函数中调用BookStore类的方法来实现购书系统。代码如下:
```java
public class Main {
public static void main(String[] args) {
BookStore bookStore = new BookStore(); //创建一个书店对象
bookStore.displayBooks(); //输出所有的图书信息
bookStore.buyBook(); //购买图书
}
}
```
这样,一个基于控制台的购书系统就完成了。您可以根据需要进行扩展和优化。
阅读全文