亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JAVA初級項目——實現(xiàn)圖書管理系統(tǒng)

 更新時間:2020年06月28日 09:24:30   作者:你是人間四月天丿  
這篇文章主要介紹了JAVA如何實現(xiàn)圖書管理系統(tǒng),文中示例代碼非常詳細,供大家參考和學(xué)習(xí),感興趣的朋友可以了解下

  今天博主再給大家分享一個小項目:MiNi圖書管理系統(tǒng)。用的是Java語言開發(fā)的,代碼不多,大概260行左右吧,系統(tǒng)是實現(xiàn)圖書的新增圖書、刪除圖書、借閱圖書、歸還圖書、查看圖書等簡單的功能(后附源代碼)!

  首先展示一下運行界面效果圖:運行代碼后,會在控制臺顯示如下界面:

       然后讓用戶選擇,如果用戶不小心或者誤輸入了錯誤的數(shù),會再次讓用戶進行輸入。

  當用戶輸入2后,可以查看圖書,會顯示已有的圖書:包括圖書書名、借閱狀態(tài)、借閱次數(shù)、借閱日期等信息。

   當用戶輸入1后,可以新增圖書,再次讓用戶輸入新增的圖書名字,這里博主用mybook,效果如下:

   當用戶輸入3后,可以借閱圖書。讓用戶再次輸入借閱的圖書名,如果輸入的名字沒在圖書館,則不可以借閱;如果在館,且狀態(tài)是已借出,也不能再次借閱;如果在館,且狀態(tài)是可借閱,則可以進行借閱。

   當用戶輸入4后,可以歸還圖書。再次讓用戶輸入歸還的圖書名,同理,如果圖書館找不到該名字,提示用戶不是本圖書館的書,不用歸還;如果找到該書的名字,且狀態(tài)是可借閱的,也不能歸還;如果找到該書,且狀態(tài)是已借出,則可以進行圖書的歸還。同時,還要讓用戶輸入歸還的日期,并對歸還的日期進行判斷,如果日期小于借閱的日期,則提示用戶歸還日期必須大于借閱日期,讓用戶再次輸入,輸入成功后,則顯示歸還成功。

   當用戶輸入5后,可以進行刪除圖書的操作。如果該館找不到用戶輸入的書名,則提示用戶不是本圖書館的書,不用歸還;如果找到,且狀態(tài)是已借出,則不能歸還;如果找到該書,且書的狀態(tài)是可借閱的,則可以進行刪除圖書的操作。

   當用戶輸入6后,就退出系統(tǒng)。

   源代碼如下:

package cn.kgc.sg.MiTuSys;

import java.util.Scanner;

public class MiNiBookMgrSys {
  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請選擇:");
      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("請輸入新增圖書的名字:");
          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("新增圖書成功!??!");
              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("對不起,圖書已滿,不能新增!");
            break;
          }
          break;
        case 2:
          System.out.println("2.查看圖書");
          System.out.println("序號"+"\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("請輸入您要借閱圖書的名字:");
          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("請輸入借閱的日期:");
              int borrowRiQi = sc.nextInt();
              //判斷輸入的借閱日期是否合法
              while(borrowRiQi < 1 || borrowRiQi > 31){
                System.out.print("輸入有誤,重新輸入:");
                borrowRiQi = sc.nextInt();
              }
              System.out.println("借閱成功!!!");
              //更改借閱日期
              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("抱歉,找不到該書!??!");
            break;
          }
          break;
        case 4:
          System.out.println("4.歸還圖書");
          System.out.print("請輸入您要歸還圖書的名字:");
          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("請輸入歸還的日期:");
              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("歸還成功?。?!");
              //更新借閱狀態(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("請輸入您要刪除圖書的名字:");
          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,用來記錄下需要刪除的位置
              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++){
                  //從下標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("謝謝使用!?。?);
  }
}

  ps:本人也在學(xué)Java開發(fā),也是剛?cè)腴T不久,所以也有些Java開發(fā)的資料,以及計算機相關(guān)的電子書等資料,所以有想要的小伙伴可以多多互動哦,一起多交流交流?。。(∩_∩)O

以上就是JAVA初級項目——實現(xiàn)圖書管理系統(tǒng)的詳細內(nèi)容,更多關(guān)于JAVA 圖書管理系統(tǒng)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • SpringCloud之服務(wù)注冊與發(fā)現(xiàn)Spring Cloud Eureka實例代碼

    SpringCloud之服務(wù)注冊與發(fā)現(xiàn)Spring Cloud Eureka實例代碼

    這篇文章主要介紹了SpringCloud之服務(wù)注冊與發(fā)現(xiàn)Spring Cloud Eureka實例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • SpringBoot調(diào)用公共模塊的自定義注解失效的解決

    SpringBoot調(diào)用公共模塊的自定義注解失效的解決

    這篇文章主要介紹了SpringBoot調(diào)用公共模塊的自定義注解失效的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • 利用?SpringBoot?在?ES?中實現(xiàn)類似連表查詢功能

    利用?SpringBoot?在?ES?中實現(xiàn)類似連表查詢功能

    這篇文章主要介紹了如何利用?SpringBoot?在?ES?中實現(xiàn)類似連表的查詢功能,本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • Spring的Aware接口你知道多少

    Spring的Aware接口你知道多少

    這篇文章主要為大家詳細介紹了Spring的Aware接口,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • 詳解springboot測試類注解

    詳解springboot測試類注解

    這篇文章主要介紹了springboot測試類注解,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • 運行時常量池和字符串常量池的區(qū)別及說明

    運行時常量池和字符串常量池的區(qū)別及說明

    這篇文章主要介紹了運行時常量池和字符串常量池的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Java后臺與微信小程序的數(shù)據(jù)交互實現(xiàn)

    Java后臺與微信小程序的數(shù)據(jù)交互實現(xiàn)

    這篇文章主要介紹了Java后臺與微信小程序的數(shù)據(jù)交互實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Java并發(fā)編程-volatile可見性詳解

    Java并發(fā)編程-volatile可見性詳解

    這篇文章主要介紹了Java并發(fā)編程-volatile可見性詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • SpringBoot集成RabbitMQ和概念介紹

    SpringBoot集成RabbitMQ和概念介紹

    這篇文章主要介紹了SpringBoot集成RabbitMQ和概念介紹,RabbitMQ即一個消息隊列,主要是用來實現(xiàn)應(yīng)用程序的異步和解耦,同時也能起到消息緩沖,消息分發(fā)的作用。更多相關(guān)內(nèi)容需要的小伙伴可以參考一下下面文章內(nèi)容
    2022-05-05
  • 史上最全最強SpringMVC詳細示例實戰(zhàn)教程(圖文)

    史上最全最強SpringMVC詳細示例實戰(zhàn)教程(圖文)

    這篇文章主要介紹了史上最全最強SpringMVC詳細示例實戰(zhàn)教程(圖文),需要的朋友可以參考下
    2016-12-12

最新評論