package Book;
import java.util.Scanner;
public class Demo {
public static class BookMgr {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//初始化書本信息
String[] bookNames = new String[6];
int[] borrowDates = new int[6];
int[] borrowCounts = new int[6];
int[] states = new int[6];
bookNames[0] = "鋼鐵是怎樣煉成的";
borrowDates[0] = 15;
borrowCounts[0] = 16;
states[0] = 0;//0:可借閱 1:已借出
bookNames[1] = "格林童話";
borrowDates[1] = 0;
borrowCounts[1] = 0;
states[1] = 1;//0:可借閱 1:已借出
bookNames[2] = "Java開發(fā)";
borrowDates[2] = 0;
borrowCounts[2] = 0;
states[2] = 0;//0:可借閱 1:已借出
int num = -1;//初始化用戶輸入的數(shù)字
boolean flag = true;//true:不退出系統(tǒng) false:退出系統(tǒng)
do{
System.out.println("************歡迎使用MiNi圖書管理系統(tǒng)**********");
System.out.println("\t\t\t\t\t1.新增圖書");
System.out.println("\t\t\t\t\t2.查看圖書");
System.out.println("\t\t\t\t\t3.借閱圖書");
System.out.println("\t\t\t\t\t4.歸還圖書");
System.out.println("\t\t\t\t\t5.刪除圖書");
System.out.println("\t\t\t\t\t6.退出系統(tǒng)");
System.out.print("\n請(qǐng)選擇:");
int choose = sc.nextInt();
while(choose<0 || choose>6){
System.out.print("輸入有誤疙教,重新輸入:");
choose = sc.nextInt();
}
switch(choose){
case 1:
System.out.println("************1.新增圖書**********");
System.out.print("請(qǐng)輸入新增圖書的名字:");
String addBook = sc.next();
boolean isAdd = false;//false:不能添加圖書 true:可以添加圖書
//遍歷數(shù)組,查找新增圖書的位置
for(int i =1;i<bookNames.length;i++){
//數(shù)組沒滿,可以新增圖書
if(bookNames[i] == null){
isAdd = true;
bookNames[i] = addBook;
System.out.println("新增圖書成功E睦稹!裁赠!");
break;
}else{
isAdd = false;
}
}
//循環(huán)遍歷輸出數(shù)組內(nèi)圖書信息
for(int i = 0;i<bookNames.length;i++){
//如果為空,不輸出
if(bookNames[i] != null){
String state = (states[i]==0)?"可借閱":"已借出"; //把借閱狀態(tài)的0 1 變成易看的“可借閱 已借出”
String borrowCount = borrowCounts[i]+"次";
String borrowDate = borrowDates[i] + "日";
System.out.println((i+1)+"\t\t"+bookNames[i]+"\t\t"+state+"\t\t"+
borrowCount+"\t\t"+borrowDate);
}
}
if(!isAdd){
System.out.println("對(duì)不起赴精,圖書已滿佩捞,不能新增!");
break;
}
break;
case 2:
System.out.println("2.查看圖書");
System.out.println("序號(hào)"+"\t\t\t"+"書名"+"\t\t\t"+"借閱狀態(tài)"+"\t\t"+"借閱次數(shù)"+
"\t\t"+"借閱日期");
//循環(huán)遍歷輸出數(shù)組內(nèi)圖書信息
for(int i = 0;i<bookNames.length;i++){
//如果為空蕾哟,不輸出
if(bookNames[i] != null){
String state = (states[i]==0)?"可借閱":"已借出"; //把借閱狀態(tài)的0 1 變成易看的“可借閱 已借出”
String borrowCount = borrowCounts[i]+"次";
String borrowDate = borrowDates[i] + "日";
System.out.println((i+1)+"\t\t"+bookNames[i]+"\t\t"+state+"\t\t"+
borrowCount+"\t\t"+borrowDate);
}
}
break;
case 3:
System.out.println("3.借閱圖書");
System.out.print("請(qǐng)輸入您要借閱圖書的名字:");
String borrowName = sc.next();
boolean isBorrow = false;//true:能借閱
for(int i = 0;i<bookNames.length;i++){
//如果可以找到書一忱,且書的狀態(tài)是可借閱,就可以借閱
if(bookNames[i] != null && bookNames[i].equals(borrowName) && states[i] == 0){
isBorrow = true;
//輸入借閱日期
System.out.print("請(qǐng)輸入借閱的日期:");
int borrowRiQi = sc.nextInt();
//判斷輸入的借閱日期是否合法
while(borrowRiQi < 1 || borrowRiQi > 31){
System.out.print("輸入有誤谭确,重新輸入:");
borrowRiQi = sc.nextInt();
}
System.out.println("借閱成功A庇!逐哈!");
//更改借閱日期
borrowDates[i] = borrowRiQi;
//更新借閱狀態(tài)
states[i] = 1;
//更新借閱次數(shù)
borrowCounts[i]++;
break;
}else if(bookNames[i] != null && bookNames[i].equals(borrowName) && states[i] == 1){
//如果可以找到書芬迄,且書的狀態(tài)是已借出,不能借閱
isBorrow = true;
System.out.println("書已經(jīng)借出昂秃,不能重復(fù)借閱禀梳!");
break;
//if(bookNames[i] == null)
//if(!bookNames[i].equals(borrowName))
}/*else if(bookNames[i] == null){
isBorrow = false;
break;
}*/
}
if(!isBorrow){
//bookNames[i] == null,說明 找不到書
System.out.println("抱歉杜窄,找不到該書!K阃尽塞耕!");
break;
}
break;
case 4:
System.out.println("4.歸還圖書");
System.out.print("請(qǐng)輸入您要?dú)w還圖書的名字:");
String returnName = sc.next();
boolean isReturn = false;//true:能歸還
for(int i = 0;i<bookNames.length;i++){
//if(!bookNames[i].equals(borrowName))
/*if(bookNames[i] == null){
//找不到書
isReturn = false;
break;
}else*/
//如果可以找到書,且書的狀態(tài)是已借出嘴瓤,就可以歸還
if(bookNames[i]!=null && bookNames[i].equals(returnName) && states[i] == 1){
isReturn = true;
//輸入歸還日期
System.out.print("請(qǐng)輸入歸還的日期:");
int returnRiQi = sc.nextInt();
//判斷輸入的歸還日期是否合法
while(returnRiQi < 1 || returnRiQi > 31 || returnRiQi<borrowDates[i]){
//輸入的歸還日期不合法
if(returnRiQi < 1 || returnRiQi > 31){
System.out.print("輸入的日期有誤扫外,重新輸入:");
returnRiQi = sc.nextInt();
}else if(returnRiQi<borrowDates[i]){
System.out.print("歸還日期必須大于借閱日期,從新輸入:");
returnRiQi = sc.nextInt();
}
}
System.out.println("歸還成功@唷I秆琛!");
//更新借閱狀態(tài)
states[i] = 0;
/*//更新借閱次數(shù)
borrowCounts[i]++;*/
break;
}else if(bookNames[i]!=null && bookNames[i].equals(returnName) && states[i] == 0){
//如果可以找到書狞贱,且書的狀態(tài)是可借閱刻获,不能歸還
isReturn = true;
System.out.println("書可借閱,不能歸還瞎嬉!");
break;
}
}
if(!isReturn){
//bookNames[i] == null.說明找不到書蝎毡,不可以歸還
System.out.println("抱歉,不是本圖書館的書氧枣,不用歸還c灞!便监!");
break;
}
break;
case 5:
System.out.println("5.刪除圖書");
System.out.print("請(qǐng)輸入您要?jiǎng)h除圖書的名字:");
String deleteName = sc.next();
boolean isDelete = false;//true:能刪 false:不能刪
for(int i = 0;i<bookNames.length;i++){
/*//if(!bookNames[i].equals(borrowName))
if(bookNames[i] == null){
//找不到書扎谎,不能刪
isDelete = false;
break;
}else*/
if(bookNames[i] != null && bookNames[i].equals(deleteName) && states[i] == 1){
//如果可以找到書,且書的狀態(tài)是已借出烧董,不能刪除
isDelete = true;
System.out.println("書已借出毁靶,不能刪除!");
break;
}else if(bookNames[i] != null && bookNames[i].equals(deleteName) && states[i] == 0){
//如果可以找到書逊移,且書的狀態(tài)是可借閱预吆,可以刪除
isDelete = true;
//初始化呢index,用來(lái)記錄下需要?jiǎng)h除的位置
int index = -1;
if(bookNames[i].equals(deleteName)){
index = i;
}
//判斷index是-1還是i
if(index != -1){
//index不是-1胳泉,說明找到了圖書拐叉,可以刪除
for(i = index;i<bookNames.length-1;i++){
//從下標(biāo)index1開始,后面的整體向前移一位
bookNames[i] = bookNames[i+1];
borrowDates[i] = borrowDates[i+1];
borrowCounts[i] = borrowCounts[i+1];
states[i] = states[i+1];
//最后一位置空
bookNames[bookNames.length-1] = null;
borrowDates[bookNames.length-1] = 0;
borrowCounts[bookNames.length-1] = 0;
states[bookNames.length-1] = 0;//0:可借閱 1:已借出
}
}
System.out.println("刪除圖書成功扇商!");
break;
}
}
if(!isDelete){
//bookNames[i] == null.說明找不到書凤瘦,不能刪除
System.out.println("不是本圖書館的書,不能刪除");
break;
}
break;
case 6:
flag = false; //退出系統(tǒng)
break;
default:
flag = false; //退出系統(tǒng)
break;
}
if(flag){
System.out.print("\n輸入0返回:");
num = sc.nextInt();
}else{
break;
}
}while(num == 0);
System.out.println("謝謝使用0钙獭J呓妗!");
}
}
}