圖書管理系統(tǒng)

package com.company;

import java.util.Scanner;

/**
 * @author dy
 * @date 2021/4/9 8:24
 */
public class Librarian {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        String[] bookNames = new String[6];
        int[] borrowD = new int[6];
        int[] borrowC = new int[6];
        int[] states = new int[6];

        bookNames[0]="安徒生童話";
        borrowD[0] = 15;
        borrowC[0] = 16;
        states[0] = 0;

        bookNames[1]="格林童話";
        borrowD[1] = 15;
        borrowC[1] = 16;
        states[1] = 0;

        bookNames[2]="鋼鐵是怎樣煉成的";
        borrowD[2] = 15;
        borrowC[2] = 16;
        states[2] = 0;

        int num = -1;
        boolean flag = true;
        do {
            System.out.println("**************歡迎使用Librarian系統(tǒng)*************");
            System.out.println("\t\t\t\t\t\t1.新增圖書");
            System.out.println("\t\t\t\t\t\t2.查看圖書");
            System.out.println("\t\t\t\t\t\t3.借閱圖書");
            System.out.println("\t\t\t\t\t\t4.歸還圖書");
            System.out.println("\t\t\t\t\t\t5.刪除圖書");
            System.out.println("\t\t\t\t\t\t6.退出系統(tǒng)");

            System.out.println("\n請(qǐng)選擇:");
            int choose = sc.nextInt();
            while (choose<0 || choose>6){
                System.out.println("出入錯(cuò)誤,請(qǐng)重新輸入");
                choose = sc.nextInt();
            }switch (choose){
                case 1:
                    System.out.println("**********1.新增圖書*********");
                    System.out.println("請(qǐng)輸入圖書名字");
                    String addBook = sc.next();
                    boolean isAdd = false;
                    for (int i = 1; i <bookNames.length;i++){
                        if (bookNames[i] == null){
                            isAdd = true;
                            bookNames[i] = addBook;
                            System.out.println("新增成功假夺!");
                            break;
                        }else {
                            isAdd = false;
                        }
                    }
                    for (int i = 0; i<bookNames.length;i++){
                        if (bookNames[i] !=null){
                            String state = (states[i]==0)?"可借閱":"已借閱";
                            String borrowCount = borrowC[i]+"次";
                            String borrowDate = borrowD[i]+"日";
                            System.out.println((i+1)+ "\t\t"+bookNames[i]+"\t\t"+state+"\t\t"+borrowC+"\t\t"+borrowD);
                        }
                    }
                    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" + "借閱日期");

                    for (int i=0;i<bookNames.length;i++){
                        if (bookNames[i] !=null){
                            String state = (states[i]==0)?"可借閱":"已借閱";
                            String borrowCount = borrowC[i]+"次";
                            String borrowDate = borrowD[i]+"日";
                            System.out.println((i+1)+ "\t\t"+bookNames[i]+"\t\t"+state+"\t\t"+borrowC+"\t\t"+borrowD);
                        }
                    }break;
                case 3:
                    System.out.println("3.借閱圖書");
                    System.out.println("請(qǐng)輸入你要借閱圖書的名字:" );
                    String borrowName = sc.next();
                    boolean isBorrow = false;
                    for (int i=0;i< bookNames.length;i++){
                        if (bookNames[i] != null && bookNames[i].equals(borrowName)&&states[i] ==0){
                            isBorrow=true;
                            System.out.println("請(qǐng)輸入借閱日期:");
                            int borrowRiQi=sc.nextInt();
                            while (borrowRiQi<1 || borrowRiQi>31){
                                System.out.println("輸入錯(cuò)誤咖驮,請(qǐng)重新輸入");
                                borrowRiQi = sc.nextInt();
                            }
                            System.out.println("借閱成功捍掺!");
                            borrowD[i] = borrowRiQi;
                            states[i] = 1;
                            borrowC[i]++;
                            break;
                        }else  if (bookNames[i] !=null && bookNames[i].equals(borrowName) && states[i] ==1){
                            isBorrow = true;
                            System.out.println("書已借出臣樱,不能重復(fù)借閱靶擦!");
                            break;
                        }
                    }
                    if (!isBorrow){
                        System.out.println("抱歉,找不到該書雇毫!");
                        break;
                    }break;
                case 4:
                    System.out.println("4.歸還圖書");
                    System.out.println("請(qǐng)輸入你要?dú)w還的圖書名字:");
                    String returnName = sc.next();
                    boolean isReturn = false;
                    for (int i=0;i<bookNames.length;i++){
                        if (bookNames[i] !=null && bookNames[i].equals(returnName) && states[i] == 1){
                            isReturn = true;
                            System.out.println("請(qǐng)輸入歸還日期:");
                            int returnRiQi = sc.nextInt();
                            while (returnRiQi<1 || returnRiQi>31 || returnRiQi<borrowD[i]){
                                if (returnRiQi<1 || returnRiQi >31){
                                    System.out.println("輸入錯(cuò)誤奢啥,請(qǐng)重新輸入:");
                                    returnRiQi = sc.nextInt();
                                }else if(returnRiQi<borrowD[i]){
                                    System.out.println("歸還日期必須大于借閱日期,請(qǐng)重新輸入:");
                                    returnRiQi=sc.nextInt();
                                }
                            }
                            System.out.println("歸還成功嘴拢!");
                            states[i]=0;
                            break;
                        }else if (bookNames[i] !=null && bookNames[i].equals(returnName) && states[i] == 0){
                            isBorrow = true;
                            System.out.println("書可借閱,不能歸還寂纪!");
                            break;
                        }
                    }
                    if (!isReturn){
                        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;
                    for (int i=0;i<bookNames.length;i++){
                        if (bookNames[i] !=null && bookNames.equals(deleteName) && states[i] == 1){
                            isDelete = true;
                            System.out.println("書已借出孝冒,不能刪除柬姚!");
                            break;
                        }else if (bookNames[i] != null && bookNames[i].equals(deleteName) && states[i] == 0){
                            isDelete = true;
                            int index = -1;
                            if(bookNames[i].equals(deleteName)){
                                index = i;
                            }
                            if(index != -1){
                                for(i = index;i<bookNames.length-1;i++){
                                    bookNames[i] = bookNames[i+1];
                                    borrowD[i] = borrowD[i+1];
                                    borrowC[i] = borrowC[i+1];
                                    states[i] = states[i+1];

                                    bookNames[bookNames.length-1] = null;
                                    borrowD[bookNames.length-1] = 0;
                                    borrowC[bookNames.length-1] = 0;
                                    states[bookNames.length-1] = 0;
                                }
                            }
                            System.out.println("刪除圖書成功!");
                            break;
                        }
                    }
                    if(!isDelete){
                        System.out.println("不是本圖書館的書庄涡,不能刪除");
                        break;
                    }
                    break;
                case 6:
                    flag = false;
                    break;
                default:
                    flag = false;
                    break;
            }
            if(flag){
                System.out.print("\n輸入0返回:");
                num = sc.nextInt();
            }else{
                break;
            }
        }while (flag);
        System.out.println("謝謝使用量承!");
    }
}
//這算是一個(gè)比較完整的圖書管理系統(tǒng)的Java代碼,感謝大家的支持與觀看穴店!
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末撕捍,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子泣洞,更是在濱河造成了極大的恐慌忧风,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,729評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件球凰,死亡現(xiàn)場(chǎng)離奇詭異狮腿,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)呕诉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門缘厢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人甩挫,你說(shuō)我怎么就攤上這事贴硫。” “怎么了捶闸?”我有些...
    開封第一講書人閱讀 169,461評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵夜畴,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我删壮,道長(zhǎng)贪绘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,135評(píng)論 1 300
  • 正文 為了忘掉前任央碟,我火速辦了婚禮税灌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘亿虽。我一直安慰自己菱涤,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評(píng)論 6 398
  • 文/花漫 我一把揭開白布洛勉。 她就那樣靜靜地躺著粘秆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪收毫。 梳的紋絲不亂的頭發(fā)上攻走,一...
    開封第一講書人閱讀 52,736評(píng)論 1 312
  • 那天殷勘,我揣著相機(jī)與錄音,去河邊找鬼昔搂。 笑死玲销,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的摘符。 我是一名探鬼主播贤斜,決...
    沈念sama閱讀 41,179評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼逛裤!你這毒婦竟也來(lái)了瘩绒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,124評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤别凹,失蹤者是張志新(化名)和其女友劉穎草讶,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體炉菲,經(jīng)...
    沈念sama閱讀 46,657評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡堕战,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拍霜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嘱丢。...
    茶點(diǎn)故事閱讀 40,872評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖祠饺,靈堂內(nèi)的尸體忽然破棺而出越驻,到底是詐尸還是另有隱情,我是刑警寧澤道偷,帶...
    沈念sama閱讀 36,533評(píng)論 5 351
  • 正文 年R本政府宣布缀旁,位于F島的核電站,受9級(jí)特大地震影響勺鸦,放射性物質(zhì)發(fā)生泄漏并巍。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評(píng)論 3 336
  • 文/蒙蒙 一换途、第九天 我趴在偏房一處隱蔽的房頂上張望懊渡。 院中可真熱鬧,春花似錦军拟、人聲如沸剃执。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)肾档。三九已至,卻和暖如春辫继,著一層夾襖步出監(jiān)牢的瞬間阁最,已是汗流浹背戒祠。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留速种,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,304評(píng)論 3 379
  • 正文 我出身青樓低千,卻偏偏與公主長(zhǎng)得像配阵,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子示血,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評(píng)論 2 361

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