2021-04-13

package edu.xcdq;

/**

  • @author huyuansong

  • @date 2021/4/9 10:19

*/

import java.util.Scanner;

public 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

//數(shù)組沒滿麻惶,可以新增圖書

                        if(bookNames[i] ==null){

isAdd =true;

                            bookNames[i] = addBook;

                            System.out.println("新增圖書成功!P欧颉窃蹋!");

break;

                        }else{

isAdd =false;

                        }

}

//循環(huán)遍歷輸出數(shù)組內(nèi)圖書信息

                    for(int i =0;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

//如果為空振湾,不輸出

                        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

//如果可以找到書杀迹,且書的狀態(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("借閱成功J骼摇!大州!");

                            //更改借閱日期

                            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("抱歉,找不到該書8睢Aκ浴!");

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

//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

//輸入的歸還日期不合法

                                if(returnRiQi <1 || returnRiQi >31){

System.out.print("輸入的日期有誤舀射,重新輸入:");

                                    returnRiQi = sc.nextInt();

                                }else if(returnRiQi

System.out.print("歸還日期必須大于借閱日期炬丸,從新輸入:");

                                    returnRiQi = sc.nextInt();

                                }

}

System.out.println("歸還成功=枘颉!薇芝!");

                            //更新借閱狀態(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("抱歉耍贾,不是本圖書館的書阅爽,不用歸還!<隹付翁!");

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

/*//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初斑,用來記錄下需要?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

//從下標(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("謝謝使用;尴!挣跋!");

    }

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末三圆,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子避咆,更是在濱河造成了極大的恐慌舟肉,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件查库,死亡現(xiàn)場(chǎng)離奇詭異路媚,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)樊销,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門整慎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人围苫,你說我怎么就攤上這事裤园。” “怎么了剂府?”我有些...
    開封第一講書人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵拧揽,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng)淤袜,這世上最難降的妖魔是什么痒谴? 我笑而不...
    開封第一講書人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮铡羡,結(jié)果婚禮上积蔚,老公的妹妹穿的比我還像新娘。我一直安慰自己蓖墅,他們只是感情好库倘,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著论矾,像睡著了一般教翩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上贪壳,一...
    開封第一講書人閱讀 50,050評(píng)論 1 291
  • 那天饱亿,我揣著相機(jī)與錄音,去河邊找鬼闰靴。 笑死彪笼,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蚂且。 我是一名探鬼主播配猫,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼杏死!你這毒婦竟也來了泵肄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤淑翼,失蹤者是張志新(化名)和其女友劉穎腐巢,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體玄括,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡冯丙,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了遭京。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片胃惜。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖哪雕,靈堂內(nèi)的尸體忽然破棺而出船殉,到底是詐尸還是另有隱情,我是刑警寧澤热监,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布捺弦,位于F島的核電站饮寞,受9級(jí)特大地震影響孝扛,放射性物質(zhì)發(fā)生泄漏列吼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一苦始、第九天 我趴在偏房一處隱蔽的房頂上張望寞钥。 院中可真熱鬧,春花似錦陌选、人聲如沸理郑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽您炉。三九已至,卻和暖如春役电,著一層夾襖步出監(jiān)牢的瞬間赚爵,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來泰國(guó)打工法瑟, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留冀膝,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓霎挟,卻偏偏與公主長(zhǎng)得像窝剖,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子酥夭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容