圖書管理系統(tǒng)

筆記

package 圖書管理系統(tǒng);

import java.lang.reflect.Array;
import java.util.Scanner;

public class BookMgr {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        
        //數(shù)據(jù)初始化通贞,最多6本書
        //圖書:圖書名稱   圖書借閱狀態(tài)  圖書借閱日期  圖書借閱次數(shù)
        String[] names = new String[6];
        int[] states = new int[6];  //0可借   1已借出
        int[] dates = new int[6];
        int[]counts = new int[6];
        
        names[0] = "白雪公主";
        dates[0] = 5;
        states[0] = 1;
        counts[0] = 10;
        
        names[1] = "mybook";
        dates[1] = 0;
        states[1] = 0;
        counts[1] = 16;
        
        names[2] = "舒克貝塔";
        dates[2] = 0;
        states[2] = 0;
        counts[2] = 78;
        
        //用戶是否退出系統(tǒng)
        boolean flag = true;
        //用戶輸入0返回主菜單
        int num = 0;
        //圖書管理相關(guān)操作:查看圖書信息   新增圖書    借閱圖書    歸還圖書    刪除圖書    退出系統(tǒng)
        do 
        {
            System.out.println("**********歡迎使用迷你圖書管理系統(tǒng)**********");
            System.out.println("1.查看圖書");
            System.out.println("2.新增圖書");
            System.out.println("3.借閱圖書");
            System.out.println("4.歸還圖書");
            System.out.println("5.刪除圖書");
            System.out.println("6.退出系統(tǒng)");
            System.out.print("請選擇您的操作:");
            int choose = in.nextInt();
            switch ( choose )
            {
                case 1:
                    //查看圖書
                    System.out.println("\n圖書信息列表-->");
                    System.out.println("圖書序號\t圖書名稱\t圖書狀態(tài)\t借閱日期\t借閱次數(shù)");
                    for ( int i=0; i<names.length; i++ )
                    {
                        if( names[i] != null )
                        {
                            String state = ( states[i] == 0 ) ? "可借閱" : "已借出";
                            String date = ( dates[i] == 0 ) ? "" : dates[i]+"日";
                            String count = counts[i] + "次";
                            System.out.println( ( i+1 ) + "\t" + names[i] + "\t" + state + "\t" +  date + "\t" + count );
                        }
                        else
                        {
                            //遇到第一個為null的圖書名稱榔组,意味著后面的圖書名稱也為null,不必要循環(huán)了
                            break;
                        }
                    }
                    break;
                case 2:
                    //新增圖書
                    System.out.println("\n新增圖書-->");
                    System.out.println("請輸入新增圖書名稱:");
                    String name = in.next();
                    //是否能新增圖書,如果貨架滿了(6)朋凉,則無法添加false,反之羽圃,則能添加true
                    boolean flagAdd = false;
                    for ( int i=0; i<names.length; i++ )
                    {
                        if ( names[i] == null )
                        {
                            flagAdd = true ;
                            names[i] = name;
                            System.out.println("圖書《"+name+"》添加成功");
                            break;
                        }
                    }
                    if ( !flagAdd )
                    {
                        System.out.println("對不起,貨架已滿,無法添加圖書切心!");
                    }
                    break;
                case 3:
                    //借閱圖書
                    System.out.println("\n借閱圖書圖書-->");
                    System.out.println("請輸入借閱圖書的名稱:");
                    String want = in.next();
                    for ( int i=0; i<names.length; i++ )
                    {
                        if ( names[i] == null )
                        {
                            //沒有找到你要的書
                            System.out.println("沒有找到您要借的書!");
                            break;
                        }
                        else if ( names[i].equals(want) && states[i] == 0 )
                        {
                            //找到了您要借的書片吊,書的狀態(tài)是可借的绽昏,可以借
                            System.out.println("請輸入借閱日期:");
                            dates[i] = in.nextInt();
                            while ( dates[i]<1 || dates[i]>31 )
                            {
                                System.out.println("數(shù)字格式不正確,請輸入1-31之間的數(shù)字:");
                                dates[i] = in.nextInt();
                            }
                            System.out.println("借出《"+want+"》成功俏脊!");
                            states[i] = 1;  //將書的狀態(tài)修改為已借出
                            counts[i]++;    //將書的借閱次數(shù)累加
                            break;
                        }
                        else if ( names[i].equals(want) && states[i] == 1 )
                        {
                            //找到了您要借的書全谤,書的狀態(tài)是已借出的,不可以借
                            System.out.println("該書已經(jīng)借出去了爷贫!");
                            break;
                        }
                    }
                    break;
                case 4:
                    //歸還圖書
                    System.out.println("\n歸還圖書-->");
                    System.out.println("請輸入歸還圖書名稱-->");
                    String returnBook = in.next();
                    for ( int i=0; i<names.length; i++ )
                    {
                        if ( names[i] == null )
                        {
                            //沒有找到你要的書
                            System.out.println("這不是我們的書不用歸還");
                            break;
                        }
                        else if ( names[i].equals( returnBook ) && states[i] == 1 )
                        {
                            System.out.println("請輸入歸還日期:");
                            int date = in.nextInt();
                            while ( date<1 || date>31 || date<dates[i] )
                            {
                                if ( date<1 || date>31 )
                                {
                                    System.out.println("數(shù)字格式不正確认然,請輸入1-31之間的數(shù)字:");
                                    date = in.nextInt();
                                }
                                else if ( date<dates[i] )
                                {
                                    System.out.println("歸還日期不能小于借閱日期,請重新輸入:");
                                    date = in.nextInt();
                                }
                                
                            }
                            
                            System.out.println("歸還《"+returnBook+"》成功漫萄!");
                            states[i] = 0;  //重新設(shè)置借閱狀態(tài)
                            //計算租金
                            int rent = ( date-dates[i] )*1;
                            System.out.println("應(yīng)付租金(元):"+rent);
                            dates[i] = 0;   //重新設(shè)置借閱日期
                            break;
                        }
                        else if ( names[i].equals( returnBook ) && states[i] == 0 )
                        {
                            //找到了您要借的書卷员,書的狀態(tài)是已借出的,不可以借
                            System.out.println("該書尚未借出卷胯,無需歸還子刮!");
                            break;
                        }
                    }
                    break;
                case 5:
                    //刪除圖書
                    System.out.println("\n刪除圖書-->");
                    System.out.println("請輸入刪除圖書名稱-->");
                    String deleteBook = in.next();
                    //要刪除圖書的位置
                    int index = -1;
                    for ( int i=0; i<names.length; i++ )
                    {
                        if ( names[i] == null )
                        {
                            //沒找到要刪除的書
                            System.out.println("沒找到你要刪除的書,刪不了");
                            break;
                        }
                        else if ( names[i].equals(deleteBook) && states[i] == 1 )
                        {
                            //找到了你要刪的書窑睁,但是該書已經(jīng)借出去了
                            System.out.println("該書已經(jīng)借出去了挺峡,無法刪除!");
                            break;
                        }
                        else if ( names[i].equals(deleteBook) && states[i] == 0 )
                        {
                            //找到了要刪除的書担钮,并且沒借出去
                            //記錄該書的位置
                            index = i;
                            break;
                        }
                    }
                    //index可能依然是-1橱赠,也可能是一個正常的位置
                    //根據(jù)圖書的位置進行刪除,后續(xù)的圖書位置依次往前覆蓋
                    if ( index != -1 ) 
                    {
                        //從index-數(shù)組的最后一本書一次往前覆蓋
                        for ( int i=index; i<names.length; i++ )
                        {
                            if ( i != names.length-1)
                            {
                                names[i] = names[i+1];
                                counts[i] = counts[i+1];
                                dates[i] = dates[i+1];
                                states[i] = states[i+1];
                            }
                            //將最后一個元素置空
                            names[names.length-1] = null;
                            counts[names.length-1] = 0;
                            dates[names.length-1] = 0;
                            states[names.length-1] = 0;
                        }
                        System.out.println("刪除成功");
                    }
                    
                    break;
                case 6:
                    //跳出循環(huán)
                    flag = false;
                    break;
                default:
                    //輸入了錯誤數(shù)字
                    flag = false;
                    break;
                        
            }
            //如果flag == false,則結(jié)束循環(huán)箫津,跳出系統(tǒng)
            if ( !flag )
            {
                //跳出循環(huán)
                break;
            }
            else
            {
                //用戶不結(jié)束使用系統(tǒng)狭姨,代表用戶想返回主菜單繼續(xù)操作
                System.out.println("請輸入0返回");
                num = in.nextInt();
            }
            
        }
        while( num == 0 );
        System.out.println("謝謝,歡迎使用苏遥!");
        
    }

}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末饼拍,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子田炭,更是在濱河造成了極大的恐慌师抄,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件教硫,死亡現(xiàn)場離奇詭異叨吮,居然都是意外死亡辆布,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門茶鉴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來锋玲,“玉大人,你說我怎么就攤上這事涵叮〔氧澹” “怎么了?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵割粮,是天一觀的道長剿干。 經(jīng)常有香客問我,道長穆刻,這世上最難降的妖魔是什么置尔? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮氢伟,結(jié)果婚禮上榜轿,老公的妹妹穿的比我還像新娘。我一直安慰自己朵锣,他們只是感情好谬盐,可當(dāng)我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著诚些,像睡著了一般飞傀。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上诬烹,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天砸烦,我揣著相機與錄音,去河邊找鬼绞吁。 笑死幢痘,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的家破。 我是一名探鬼主播颜说,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼汰聋!你這毒婦竟也來了门粪?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤烹困,失蹤者是張志新(化名)和其女友劉穎玄妈,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡措近,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了女淑。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瞭郑。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖鸭你,靈堂內(nèi)的尸體忽然破棺而出屈张,到底是詐尸還是另有隱情,我是刑警寧澤袱巨,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布阁谆,位于F島的核電站,受9級特大地震影響愉老,放射性物質(zhì)發(fā)生泄漏场绿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一嫉入、第九天 我趴在偏房一處隱蔽的房頂上張望焰盗。 院中可真熱鬧,春花似錦咒林、人聲如沸熬拒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽澎粟。三九已至,卻和暖如春欢瞪,著一層夾襖步出監(jiān)牢的瞬間活烙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工遣鼓, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留瓣颅,地道東北人。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓譬正,卻偏偏與公主長得像宫补,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子曾我,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,486評論 2 348