圖書管理類

package edu.xcdq;

import com.sun.deploy.security.AbstractBrowserAuthenticator;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.Scanner;

// 圖書管理類
public class LibraryManage {
    Scanner scanner = new Scanner(System.in);
    BookSet bookSet = new BookSet();
    //這一行代碼確立了轉(zhuǎn)換的格式伴鳖,其中 yyyy 是完整的公元年,MM 是月份璧瞬,dd 是日期
    SimpleDateFormat outBookDate = new SimpleDateFormat("yyyy-MM-dd");
    // 初始化倉庫
    public void initial() {
        Book java = new Book();// new一個圖書對象
        java.bookSet("java基礎(chǔ)教程",false,"2015-7-1",1);// 用bookSet方法給java對象傳入數(shù)據(jù)

        Book mysql = new Book();
        mysql.bookSet("數(shù)據(jù)庫技術(shù)",true,"",0);


        Book renYue = new Book();
        renYue.bookSet("人月神話",true,"",0);

        // 把圖書信息對象傳入圖書倉庫內(nèi)
        bookSet.book[0] = java;
        bookSet.book[1] = mysql;
        bookSet.book[2] = renYue;
    }

    // 開始菜單
    public void startMenu() throws ParseException {
        boolean flag1 = true;
        int choose;
        int fanhui;
        stopStartMenu:do {
            System.out.println("歡迎使用圖書管理系統(tǒng)");
            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("請選擇:");
            choose = scanner.nextInt();
            switch (choose) {
                case 1:
                    System.out.println("---> 新增圖書");
                    add();
                    break;
                case 2:
                    System.out.println("---> 查看圖書");
                    chakan();
                    break;
                case 3:
                    System.out.println("---> 刪除圖書");
                    delete();
                    break;
                case 4:
                    System.out.println("---> 借出圖書");
                    out();
                    break;
                case 5:
                    System.out.println("---> 歸還圖書");
                    returnBook();
                    break;
                case 6:
                    System.out.println("---> 退   出");
                    break stopStartMenu;
            }
            System.out.print("輸入0返回:");
            fanhui = scanner.nextInt();


        }while( fanhui == 0 ) ;
    }

    // 新增圖書
    private void add() {
        System.out.print("請輸入圖書名稱:");
        String name = scanner.next();
        boolean flagDelete = true;
        int count = 0;
        String date = "";
        
        Book newBook = new Book();
        newBook.bookSet(name,flagDelete,date,count);
        // 循環(huán)找到第一個不為null的對象類數(shù)組栈暇,并給他存入這個新增的對象麻裁,然后結(jié)束循環(huán)
        for (int i = 0; i < bookSet.book.length; i++) {
            if ( bookSet.book[i] == null ) {
                bookSet.book[i] = newBook;
                break;
            }
        }
        System.out.println("增加" + newBook.name + "成功");
    }
    // 查看圖書
    private void chakan() {
        System.out.println("序號 \t狀 態(tài) \t  名稱  \t\t借出日期");
        // 循環(huán)找到并打印不為null的對象
        for (int i = 0; i < bookSet.book.length; i++) {
            if ( bookSet.book[i] != null) {
                bookSet.book[i].print( i+1 );
            }
        }
        System.out.println("***********************************");
    }
    // 刪除圖書
    private void delete() {
        System.out.println("請輸入你要刪除圖書的名稱:");
        String deleteBookName = scanner.next();
        // 循環(huán)找到要刪除圖書的名稱
        for (int i = 0; i < bookSet.book.length; i++) {
            if ( bookSet.book[i] != null ) {
                if ( deleteBookName.equals(bookSet.book[i].name) ) {
                    if (bookSet.book[i].flag ) {
                        int j = i;
                        while ( bookSet.book[j+1] != null ) {// 循環(huán)把要刪除的圖書后面的每一位不為null的對象的屬性給到前一位
                            bookSet.book[j] = bookSet.book[j+1];
                            j++;
                        }
                        /*
                        這時bookSst.book[j]已經(jīng)是除去null最后一個有值的對象,前一位對象的屬性與當(dāng)前對象的屬性相同源祈,
                        這個對象就多余了煎源,所以把他的值為null
                         */
                        bookSet.book[j] = null;
                        System.out.println("刪除成功");
                        break;
                    }else {
                        System.out.println("已借出的書不能刪除");
                    }
                }else {
                    System.out.println("圖書館不存在此書");
                    break;
                }

            }

        }


        }
    // 借出圖書
    private void out(){
        System.out.print("請輸入圖書名稱:");
        String bookName = scanner.next();
        String outDate;// 借出圖書日期
        // 循環(huán)找到要借的書的名字,并讓用戶輸入借出的日期香缺,然后用bookSet方法修改圖書的狀態(tài)和借出次數(shù)
        for (int i = 0; i < bookSet.book.length; i++) {
            if ( bookSet.book[i] !=null && bookName.equals(bookSet.book[i].name) ) {
                if ( bookSet.book[i].flag ) {
                    System.out.print("請輸入借出日期(年-月-日):");
                    outDate = scanner.next();
                    bookSet.book[i].count = bookSet.book[i].count + 1;

                    bookSet.book[i].bookSet(bookName,false,outDate,bookSet.book[i].count);
                    System.out.println("借出成功");
                    break;
                }else {
                    System.out.println("此書已被借走");
                }

            }
        }
    }
    // 歸還圖書
    private void returnBook() throws ParseException{
        System.out.print("請輸入圖書名稱:");
        String returnBook = scanner.next();
        String guihuanBookDate;// 歸還日期
        /*
            循環(huán)找到歸還圖書名稱是否與圖書館內(nèi)圖書名字是否相同手销,并查詢此圖書狀態(tài)(借出/ 未借出),
            如果借出那么就讓用戶輸入歸還日期,并計算應(yīng)付金額(1天/1元)
         */

        for (int i = 0; i < bookSet.book.length; i++) {

            if ( returnBook.equals(bookSet.book[i].name) ) {
                if ( bookSet.book[i].flag ) {
                    System.out.println(bookSet.book[i].name + "未借出");
                }else {
                    System.out.println("請輸入歸還日期(年/月/日):");
                    guihuanBookDate = scanner.next();
                    System.out.println("歸還《" + bookSet.book[i].name + "》成功!");
                    bookSet.book[i].flag = true;// 借出狀態(tài)換為未借出
                    System.out.println("借出日期為:" + bookSet.book[i].date);
                    System.out.println("歸還日期為:" + guihuanBookDate);

                    Date d1 = outBookDate.parse(bookSet.book[i].date);
                    Date d2 = outBookDate.parse(guihuanBookDate);
                    //使用 getTime() 方法獲取兩個日期(自1970年1月1日經(jīng)歷的毫秒數(shù)值)图张,然后比較這兩個值锋拖。
                    long daysBetween = (d2.getTime()-d1.getTime()) / (24*60*60*1000);

                    System.out.println("應(yīng)付租金(元)" + daysBetween + "元");
                    bookSet.book[i].date = "";// 借出日期重置
                    break;
                }

            }else {
                System.out.println("圖書館不存在此書");
                break;
            }
        }

    }

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市祸轮,隨后出現(xiàn)的幾起案子兽埃,更是在濱河造成了極大的恐慌,老刑警劉巖适袜,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件柄错,死亡現(xiàn)場離奇詭異,居然都是意外死亡苦酱,警方通過查閱死者的電腦和手機售貌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來疫萤,“玉大人颂跨,你說我怎么就攤上這事「” “怎么了毫捣?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵详拙,是天一觀的道長。 經(jīng)常有香客問我蔓同,道長饶辙,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任斑粱,我火速辦了婚禮弃揽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘则北。我一直安慰自己矿微,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布尚揣。 她就那樣靜靜地躺著涌矢,像睡著了一般。 火紅的嫁衣襯著肌膚如雪快骗。 梳的紋絲不亂的頭發(fā)上娜庇,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天,我揣著相機與錄音方篮,去河邊找鬼名秀。 笑死,一個胖子當(dāng)著我的面吹牛藕溅,可吹牛的內(nèi)容都是我干的匕得。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼巾表,長吁一口氣:“原來是場噩夢啊……” “哼汁掠!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起攒发,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤调塌,失蹤者是張志新(化名)和其女友劉穎晋南,沒想到半個月后惠猿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡负间,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年偶妖,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片政溃。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡趾访,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出董虱,到底是詐尸還是另有隱情扼鞋,我是刑警寧澤申鱼,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站云头,受9級特大地震影響捐友,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜溃槐,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一匣砖、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧昏滴,春花似錦猴鲫、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至姻几,卻和暖如春匣缘,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鲜棠。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工肌厨, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人豁陆。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓柑爸,卻偏偏與公主長得像,于是被迫代替她去往敵國和親盒音。 傳聞我的和親對象是個殘疾皇子表鳍,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,527評論 2 349

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