package cn.bdqn.demo05;
import java.util.Scanner;
public class BookMethod {
// 定义一个静态的Scanner
static Scanner inputsc =new Scanner(System.in);
// static String bookName;
// 欢迎使用迷你图书管理器方法
public static void useBookSystem() {
// 输出欢迎菜单
System.out.println("欢迎使用迷你图书管理器");
System.out.println("-------------------------");
System.out.println("1.新增图书");
System.out.println("2.查看图书");
System.out.println("3.删除图书");
System.out.println("4.借出图书");
System.out.println("5.归还图书");
System.out.println("6.退出图书");
System.out.println("-------------------------");
}
// 新增图书方法
public static void addBook(Book[] books){
System.out.println("-->新增图书\n");
System.out.println("请输入图书名称:");
String bookName = inputsc.next();
System.out.println(bookName);
// 判断添加书是否成功
boolean flag2 = false;
// 循环查找图书馆里的可存放书的地方
for (int i = 0; i < books.length; i++) {
// 判断某个位置是否能存放书
if (books[i] == null) {
books[i]=new Book();
books[i].setName(bookName);
System.out.println("新增《" + bookName + "》成功!");
flag2 = true;
break;
}
}
if (!flag2) {
System.out.println("抱歉,新增《" + bookName + "》失败!货架已满!");
}
System.out.println("*****************************************");
}
// 查看图书方法
public static void lookBook(Book[] books){
System.out.println("-->查看图书\n");
System.out.println("序号\t状态\t名称\t借出日期\t借出次数");
for (int i = 0; i < books.length; i++) {
if (books[i] != null) {
// 三目运算符
String BookState = (books[i].getState() == 0) ? "可借阅" : "已借出";
String dateStr = (books[i].getDate() == 0) ? "" : (books[i].getDate() + "日");
System.out.println(
(i + 1) + "\t" + BookState + "\t" + books[i].getName() + "\t" + dateStr + "\t" + books[i].getCount() + "次");
}
}
System.out.println("*****************************************");
}
// 删除图书方法
public static void delBook(Book[] books){
System.out.println("-->删除图书\n");
System.out.println("请输入要删除图书的名称:");
String delete = inputsc.next();
boolean flag3 = false;
int index = -1; // 记录要删除图书的位置
for (int i = 0; i < books.length; i++) {
// 删除的图书存在、状态处于可借阅状态
if (books[i].getName() != null && delete.equals(books[i].getName()) && books[i].getState() == 0) {
flag3 = true;
index = i;
System.out.println("图书删除成功!");
break;
} else if (books[i].getName() != null && delete.equals(books[i].getName()) && books[i].getState() == 1) {
flag3 = true;
System.out.println("该图书已被借出,目前无法删除!");
break;
}
}
// 根据记录下来的删除图书的位置进行删除工作
if (index != -1) {
for (int j = index; j < books.length; j++) {
if (j != books.length - 1) {
books[j].setName(books[j + 1].getName());
books[j].setState(books[j + 1].getState());
books[j].setDate(books[j + 1].getDate());
}
books[books.length - 1].setName(null);
}
}
if (!flag3) {
System.out.println("没有找到匹配信息!");
}
System.out.println("*****************************************");
}
// 借出图书方法
public static void lendBook(Book[] books){
System.out.println("-->借出图书\n");
System.out.print("请输入图书名称:");
String want = inputsc.next(); // 要借出的图书名称
for (int i = 0; i < books.length; i++) {
if (books[i] == null) { // 无匹配
System.out.println("没有找到匹配信息!");
break;
} else if (want.equals(books[i].getName()) && books[i].getState() == 0) { // 找到匹配可借
books[i].setState(1); // 将此图书置于借出状态
System.out.print("请输入借出日期:");
int inputscData = inputsc.nextInt();
books[i].setDate(inputscData);
while (books[i].getDate() < 1 || books[i].getDate() > 31) { // 当输入借出的日期不满足1-31时
System.out.println("必须输入大于等于1且小于等于31的数字,请重新输入:");
inputscData = inputsc.nextInt();
books[i].setDate(inputscData);
}
System.out.println("借出《" + want + "》成功!");
books[i].setCount(books[i].getCount()+1);
break;
} else if (want.equals(books[i].getName()) && books[i].getState()== 1) { // 找到匹配已被借出
System.out.println("《" + want + "》已被借出!");
break;
}
}
System.out.println("*****************************************");
}
// 归还图书方法
public static void returnBook(Book[] books){
System.out.println("-->归还图书\n");
int charge = 0; // 租金
System.out.print("请输入归还图书名称:");
String want = inputsc.next();
for (int i = 0; i < books.length; i++) {
if (books[i].getName() == null) { // 无匹配
System.out.println("没有找到匹配信息!");
break;
} else if (want.equals(books[i].getName()) && books[i].getDate() == 1) {// 找到匹配
books[i].setDate(0); // 将借阅状态修改为可借阅
System.out.print("请输入归还日期:");
int redate = inputsc.nextInt();
while (redate < books[i].getDate() || redate > 31) { // 归还日期不能小于借出日期,也不能大于31
if (redate < books[i].getDate()) {
System.out.println("归还日期不能小于借出日期,请重新输入:");
} else {
System.out.println("一个月只有31天,请重新输入:");
}
redate = inputsc.nextInt();
}
charge = redate - books[i].getDate();
System.out.println("\n归还《" + want + "》成功!");
System.out.println("借出日期为:" + books[i].getDate() + "日");
System.out.println("归还日期为:" + redate + "日");
System.out.println("应付租金(元):" + charge);
books[i].setDate(0);
break;
} else if (want.equals(books[i].getName()) && books[i].getState() == 0) {// 找到匹配但没有借出
System.out.println("该图书没有被借出!无法进行归还操作。");
break;
}
}
System.out.println("*****************************************");
}
}
评论0