java代码 “小小书屋”是一个以图书租赁为主要业务的个体单位。 其图书按租价不同分为三类:1:普通图书;2:计算机图书;3:新书。不同类别图书的租赁规则不同: 普通图书:每天租金1元;计算机图书:每天租金1.5元; 新书:前三天每天租金1.5元,三天之后,每天租金2元。 借书者必须先交纳押金办卡后,才能租书。借书者租书之前先说明要租图书租赁几天,并先期交纳租金,方可租走图书。 店主苏小小意向编写一套简单的图书租赁系统,用来计算每位借书者每次租书应交纳的租金。 1.2功能划分 系统主要功能: 图书借阅:每位顾客可以借多本图书,不同类型书定价规则不同。 生成借阅清单:根据每位顾客借阅图书情况生成一个清单,并显示出总租金。详细设计 书籍类:用来存储顾客所借书籍的具体信息,包括书名,书籍类型等。 顾客类:用来存储借书者信息,包括顾客姓名,顾客所借书籍信息等。 租赁类:用来存储顾客租书信息,例如,书名,租赁天数等。
时间: 2024-03-20 13:43:52 浏览: 43
图书租赁系统(java)
5星 · 资源好评率100%
根据您提供的需求和设计,我为您编写了一个简单的Java代码示例,包括三个类:Book、Customer和Rental。具体代码如下:
Book类:
```java
public class Book {
private String title;
private int type;
public Book(String title, int type) {
this.title = title;
this.type = type;
}
public double getRentPrice(int rentDays) {
double rentPrice = 0;
switch (type) {
case 1:
rentPrice = 1 * rentDays;
break;
case 2:
rentPrice = 1.5 * rentDays;
break;
case 3:
if (rentDays <= 3) {
rentPrice = 1.5 * rentDays;
} else {
rentPrice = 1.5 * 3 + 2 * (rentDays - 3);
}
break;
default:
break;
}
return rentPrice;
}
// Getters and setters
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
}
```
Customer类:
```java
import java.util.ArrayList;
import java.util.List;
public class Customer {
private String name;
private int deposit;
private List<Rental> rentalList;
public Customer(String name, int deposit) {
this.name = name;
this.deposit = deposit;
this.rentalList = new ArrayList<>();
}
public void rentBook(Book book, int rentDays) {
double rentPrice = book.getRentPrice(rentDays);
if (rentPrice > deposit) {
System.out.println("Deposit is not enough to rent this book.");
return;
}
deposit -= rentPrice;
Rental rental = new Rental(book, rentDays);
rentalList.add(rental);
System.out.println("Rent book " + book.getTitle() + " for " + rentDays + " days, rent price is " + rentPrice + ".");
}
public void printRentalList() {
double rentalTotalPrice = 0;
System.out.println("Rental list for customer " + name + ":");
for (Rental rental : rentalList) {
double rentPrice = rental.getRentPrice();
rentalTotalPrice += rentPrice;
System.out.println("- Book: " + rental.getBook().getTitle() + ", Rent days: " + rental.getRentDays() + ", Rent price: " + rentPrice);
}
System.out.println("Total rental price: " + rentalTotalPrice);
}
// Getters and setters
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getDeposit() {
return deposit;
}
public void setDeposit(int deposit) {
this.deposit = deposit;
}
public List<Rental> getRentalList() {
return rentalList;
}
public void setRentalList(List<Rental> rentalList) {
this.rentalList = rentalList;
}
}
```
Rental类:
```java
public class Rental {
private Book book;
private int rentDays;
public Rental(Book book, int rentDays) {
this.book = book;
this.rentDays = rentDays;
}
public double getRentPrice() {
return book.getRentPrice(rentDays);
}
// Getters and setters
public Book getBook() {
return book;
}
public void setBook(Book book) {
this.book = book;
}
public int getRentDays() {
return rentDays;
}
public void setRentDays(int rentDays) {
this.rentDays = rentDays;
}
}
```
以上代码中,Book类用于存储图书的具体信息,并提供了一个方法getRentPrice用于计算租赁价格。Customer类用于存储借书者信息,包括姓名、押金和租赁列表等,并提供了一个方法rentBook用于租借图书,以及一个方法printRentalList用于打印租赁清单。Rental类用于存储租赁信息,包括被租赁的图书和租赁天数,并提供了一个方法getRentPrice用于计算租赁价格。
阅读全文