图书管理系统 源代码 Java初级小项目

  今天博主再给你们分享一个小项目:MiNi图书管理系统。用的是Java语言开发的,代码很少,大概260行左右吧,系统是实现图书的新增图书、删除图书、借阅图书、归还图书、查看图书等简单的功能(后附源代码)!java

  首先展现一下运行界面效果图:运行代码后,会在控制台显示以下界面:

 

 

   而后让用户选择,若是用户不当心或者误输入了错误的数,会再次让用户进行输入。数组

  当用户输入2后,能够查看图书,会显示已有的图书:

包括图书书名、借阅状态、借阅次数、借阅日期等信息。

 

 

   当用户输入1后,能够新增图书,再次让用户输入新增的图书名字,这里博主用mybook,效果以下:

 

 

   当用户输入3后,能够借阅图书。让用户再次输入借阅的图书名,若是输入的名字没在图书馆,则不能够借阅;若是在馆,且状态是已借出,也不能再次借阅;若是在馆,且状态是可借阅,则能够进行借阅。

 

 

   当用户输入4后,能够归还图书。再次让用户输入归还的图书名,同理,若是图书馆找不到该名字,提示用户不是本图书馆的书,不用归还;若是找到该书的名字,且状态是可借阅的,也不能归还;若是找到该书,且状态是已借出,则能够进行图书的归还。同时,还要让用户输入归还的日期,并对归还的日期进行判断,若是日期小于借阅的日期,则提示用户归还日期必须大于借阅日期,让用户再次输入,输入成功后,则显示归还成功。

 

 

   当用户输入5后,能够进行删除图书的操做。若是该馆找不到用户输入的书名,则提示用户不是本图书馆的书,不用归还;若是找到,且状态是已借出,则不能归还;若是找到该书,且书的状态是可借阅的,则能够进行删除图书的操做。

 

 

   当用户输入6后,就退出系统。

 

 

   源代码以下:

 1 package cn.kgc.sg.MiTuSys;  2 
 3 import java.util.Scanner;  4 
 5 public class MiNiBookMgrSys {  6     public static void main(String[] args) {  7         Scanner sc = new Scanner(System.in);  8         //初始化书本信息
 9         String[] bookNames = new String[6];  10         int[] borrowDates = new int[6];  11         int[] borrowCounts = new int[6];  12         int[] states = new int[6];  13         
 14         //初始化三本书
 15         bookNames[0] = "安徒生童话";  16         borrowDates[0] = 15;  17         borrowCounts[0] = 16;  18         states[0] = 0;//0:可借阅 1:已借出
 19         
 20         bookNames[1] = "格林童话";  21         borrowDates[1] = 0;  22         borrowCounts[1] = 0;  23         states[1] = 1;//0:可借阅 1:已借出
 24         
 25         bookNames[2] = "Java开发";  26         borrowDates[2] = 0;  27         borrowCounts[2] = 0;  28         states[2] = 0;//0:可借阅 1:已借出
 29         
 30         int num = -1;//初始化用户输入的数字
 31         boolean flag = true;//true:不退出系统 false:退出系统
 32         do{  33             System.out.println("************欢迎使用MiNi图书管理系统**********");  34             System.out.println("\t\t\t\t\t1.新增图书");  35             System.out.println("\t\t\t\t\t2.查看图书");  36             System.out.println("\t\t\t\t\t3.借阅图书");  37             System.out.println("\t\t\t\t\t4.归还图书");  38             System.out.println("\t\t\t\t\t5.删除图书");  39             System.out.println("\t\t\t\t\t6.退出系统");  40             
 41             System.out.print("\n请选择:");  42             int choose = sc.nextInt();  43             while(choose<0 || choose>6){  44                 System.out.print("输入有误,从新输入:");  45                 choose = sc.nextInt();  46  }  47             switch(choose){  48                 case 1:  49                     System.out.println("************1.新增图书**********");  50                     System.out.print("请输入新增图书的名字:");  51                     String addBook = sc.next();  52                     boolean isAdd = false;//false:不能添加图书 true:能够添加图书  53                     //遍历数组,查找新增图书的位置
 54                     for(int i =1;i<bookNames.length;i++){  55                         //数组没满,能够新增图书
 56                         if(bookNames[i] == null){  57                             isAdd = true;  58                             bookNames[i] = addBook;  59                             System.out.println("新增图书成功!!!");  60                             break;  61                         }else{  62                             isAdd = false;  63  }  64  }  65                     //循环遍历输出数组内图书信息
 66                     for(int i = 0;i<bookNames.length;i++){  67                         //若是为空,不输出
 68                         if(bookNames[i] != null){  69                             String state = (states[i]==0)?"可借阅":"已借出";  //把借阅状态的0 1 变成易看的“可借阅 已借出”
 70                             String borrowCount = borrowCounts[i]+"次";  71                             String borrowDate = borrowDates[i] + "日";  72                             System.out.println((i+1)+"\t\t"+bookNames[i]+"\t\t"+state+"\t\t"+
 73                         borrowCount+"\t\t"+borrowDate);  74  }  75  }  76                     if(!isAdd){  77                         System.out.println("对不起,图书已满,不能新增!");  78                         break;  79  }  80                     break;  81                 case 2:  82                     System.out.println("2.查看图书");  83                     System.out.println("序号"+"\t\t\t"+"书名"+"\t\t\t"+"借阅状态"+"\t\t"+"借阅次数"+
 84                     "\t\t"+"借阅日期");  85                     //循环遍历输出数组内图书信息
 86                     for(int i = 0;i<bookNames.length;i++){  87                         //若是为空,不输出
 88                         if(bookNames[i] != null){  89                             String state = (states[i]==0)?"可借阅":"已借出";  //把借阅状态的0 1 变成易看的“可借阅 已借出”
 90                             String borrowCount = borrowCounts[i]+"次";  91                             String borrowDate = borrowDates[i] + "日";  92                             System.out.println((i+1)+"\t\t"+bookNames[i]+"\t\t"+state+"\t\t"+
 93                         borrowCount+"\t\t"+borrowDate);  94  }  95  }  96                     break;  97                 case 3:  98                     System.out.println("3.借阅图书");  99                     System.out.print("请输入您要借阅图书的名字:"); 100                     String borrowName = sc.next(); 101                     boolean isBorrow = false;//true:能借阅
102                     for(int i = 0;i<bookNames.length;i++){ 103                         //若是能够找到书,且书的状态是可借阅,就能够借阅
104                         if(bookNames[i] != null && bookNames[i].equals(borrowName) && states[i] == 0){ 105                             isBorrow = true; 106                             //输入借阅日期
107                             System.out.print("请输入借阅的日期:"); 108                             int borrowRiQi = sc.nextInt(); 109                             //判断输入的借阅日期是否合法
110                             while(borrowRiQi < 1 || borrowRiQi > 31){ 111                                 System.out.print("输入有误,从新输入:"); 112                                 borrowRiQi = sc.nextInt(); 113  } 114                             System.out.println("借阅成功!!!"); 115                             //更改借阅日期
116                             borrowDates[i] = borrowRiQi; 117                             //更新借阅状态
118                             states[i] = 1; 119                             //更新借阅次数
120                             borrowCounts[i]++; 121                             break; 122                         }else if(bookNames[i] != null && bookNames[i].equals(borrowName) && states[i] == 1){ 123                             //若是能够找到书,且书的状态是已借出,不能借阅
124                             isBorrow = true; 125                             System.out.println("书已经借出,不能重复借阅!"); 126                             break; 127                         //if(bookNames[i] == null) 128                         //if(!bookNames[i].equals(borrowName))
129                         }/*else if(bookNames[i] == null){ 130  isBorrow = false; 131  break; 132  }*/
133  } 134                     if(!isBorrow){ 135                         //bookNames[i] == null,说明 找不到书
136                         System.out.println("抱歉,找不到该书!!!"); 137                         break; 138  } 139                     break; 140                 case 4: 141                     System.out.println("4.归还图书"); 142                     System.out.print("请输入您要归还图书的名字:"); 143                     String returnName = sc.next(); 144                     boolean isReturn = false;//true:能归还
145                     for(int i = 0;i<bookNames.length;i++){ 146                         //if(!bookNames[i].equals(borrowName))
147                         /*if(bookNames[i] == null){ 148  //找不到书 149  isReturn = false; 150  break; 151  }else*/ 
152                         //若是能够找到书,且书的状态是已借出,就能够归还
153                         if(bookNames[i]!=null && bookNames[i].equals(returnName) && states[i] == 1){ 154                             isReturn = true; 155                             //输入归还日期
156                             System.out.print("请输入归还的日期:"); 157                             int returnRiQi = sc.nextInt(); 158                             //判断输入的归还日期是否合法
159                             while(returnRiQi < 1 || returnRiQi > 31 || returnRiQi<borrowDates[i]){ 160                                 //输入的归还日期不合法
161                                 if(returnRiQi < 1 || returnRiQi > 31){ 162                                     System.out.print("输入的日期有误,从新输入:"); 163                                     returnRiQi = sc.nextInt(); 164                                 }else if(returnRiQi<borrowDates[i]){ 165                                     System.out.print("归还日期必须大于借阅日期,重新输入:"); 166                                     returnRiQi = sc.nextInt(); 167  } 168  } 169                             System.out.println("归还成功!!!"); 170                             //更新借阅状态
171                             states[i] = 0; 172                             /*//更新借阅次数 173  borrowCounts[i]++;*/
174                             break; 175                         }else if(bookNames[i]!=null && bookNames[i].equals(returnName) && states[i] == 0){ 176                             //若是能够找到书,且书的状态是可借阅,不能归还
177                             isReturn = true; 178                             System.out.println("书可借阅,不能归还!"); 179                             break; 180  } 181  } 182                     if(!isReturn){ 183                         //bookNames[i] == null.说明找不到书,不能够归还
184                         System.out.println("抱歉,不是本图书馆的书,不用归还!!!"); 185                         break; 186  } 187                     break; 188                 case 5: 189                     System.out.println("5.删除图书"); 190                     System.out.print("请输入您要删除图书的名字:"); 191                     String deleteName = sc.next(); 192                     boolean isDelete = false;//true:能删 false:不能删
193                     for(int i = 0;i<bookNames.length;i++){ 194                         /*//if(!bookNames[i].equals(borrowName)) 195  if(bookNames[i] == null){ 196  //找不到书,不能删 197  isDelete = false; 198  break; 199  }else*/ 
200                         if(bookNames[i] != null && bookNames[i].equals(deleteName) && states[i] == 1){ 201                             //若是能够找到书,且书的状态是已借出,不能删除
202                             isDelete = true; 203                             System.out.println("书已借出,不能删除!"); 204                             break; 205                         }else if(bookNames[i] != null && bookNames[i].equals(deleteName) && states[i] == 0){ 206                             //若是能够找到书,且书的状态是可借阅,能够删除
207                             isDelete = true; 208                             //初始化呢index,用来记录下须要删除的位置
209                             int index = -1; 210                             if(bookNames[i].equals(deleteName)){ 211                                 index = i; 212  } 213                             //判断index是-1仍是i
214                             if(index != -1){ 215                                 //index不是-1,说明找到了图书,能够删除
216                                 for(i = index;i<bookNames.length-1;i++){ 217                                     //从下标index1开始,后面的总体向前移一位
218                                     bookNames[i] = bookNames[i+1]; 219                                     borrowDates[i] = borrowDates[i+1]; 220                                     borrowCounts[i] = borrowCounts[i+1]; 221                                     states[i] = states[i+1]; 222                                     
223                                     //最后一位置空
224                                     bookNames[bookNames.length-1] = null; 225                                     borrowDates[bookNames.length-1] = 0; 226                                     borrowCounts[bookNames.length-1] = 0; 227                                     states[bookNames.length-1] = 0;//0:可借阅 1:已借出
228  } 229  } 230                             System.out.println("删除图书成功!"); 231                             break; 232  } 233  } 234                     if(!isDelete){ 235                         //bookNames[i] == null.说明找不到书,不能删除
236                         System.out.println("不是本图书馆的书,不能删除"); 237                         break; 238  } 239                     break; 240                 case 6: 241                     flag = false; //退出系统
242                     break; 243                 default: 244                     flag = false; //退出系统
245                     break; 246  } 247             if(flag){ 248                 System.out.print("\n输入0返回:"); 249                 num = sc.nextInt(); 250             }else{ 251                 break; 252  } 253         }while(num == 0); 254         System.out.println("谢谢使用!!!"); 255  } 256 }

  ps:本人也在学Java开发,也是刚入门不久,因此也有些Java开发的资料,以及计算机相关的电子书等资料,因此有想要的小伙伴能够多多互动哦,一块儿多交流交流!!!O(∩_∩)Ospa

相关文章
相关标签/搜索