java一个简单的管理系统

                                           用java实现的简单管理系统

运行出来的状态

 

实现了新增、删除、借出、归还、排行榜简单的功能!

下面是简单的代码

首先定义一个书籍类,自己打开哦!

 1  public class Book implements Comparable{
 2     
 3      String name;
 4      String date;
 5      boolean state;
 6      int count;
 7      
 8      public Book(String name,boolean state,String date,int count){
 9          
10          this.name=name;
11          this.date=date;
12          this.state=state;
13          this.count=count;
14      }
15      //复写toString方法为了打印出书的具体属性
16      public String toString(){
17          
18          if(this.state==true){
19            return (this.name+"\t"+"已借出"+"\t"+this.date);
20          }else{
21             return (this.name+"\t"+"可借"+"\t"+" ");
22          }     
23      }
24      //复写equals方法为了比较对象
25      public boolean equals(Object obj){
26          
27          Book bk=(Book)obj;
28          if(this.name.equals(bk.name) && this.state==bk.state){
29               return true;
30          }else{
31              return false; 
32          }
33         // return this.name.equals(bk.name);
34      }
35      //复写了equlasf方法必须复写此方法
36      public int hashCode(){
37          return this.name.hashCode();
38      }
39      //复写compareTo方法,为对象规定排序规则
40      public int compareTo(Object obj){
41          
42          Book bk=(Book)obj;
43         return bk.count-this.count;
44          
45      }
46       
47 }
定义书籍类

然后定义一个书籍管理类,自己打开哦!

  1 import java.text.ParseException;
  2 import java.text.SimpleDateFormat;
  3 import java.util.ArrayList;
  4 import java.util.Collections;
  5 import java.util.Date;
  6 import java.util.InputMismatchException;
  7 import java.util.ListIterator;
  8 import java.util.Scanner;
  9 
 10 
 11 public class BookMgr {
 12     
 13       ArrayList<Book> book=new ArrayList<Book>();
 14         public void init(){
 15             
 16           book.add(new Book("java编程思想",true,"2016-11-20",20));
 17           book.add(new Book("java编程核心",false,"0",25));
 18           book.add(new Book("世界是数字的",false,"0",15));
 19           book.add(new Book("java从入门到精通",false,"0",18));
 20          }
 21         
 22       //操作菜单
 23         public void startMenu() {
 24 
 25              System.out.println("*******************************");
 26              System.out.println("*******欢迎使用迷你图书管理器********");
 27              System.out.println("******       1.新增书籍           ******");
 28              System.out.println("******       2.查看书籍           ******");
 29              System.out.println("******       3.删除书籍           ******");
 30              System.out.println("******       4.借出书籍            ******");
 31              System.out.println("******       5.归还书籍            ******");
 32              System.out.println("******       6.书籍排行榜        ******");
 33              System.out.println("******       7.退出                    ******");
 34              System.out.println("*********************************");
 35 
 36              Scanner input = new Scanner(System.in);
 37              System.out.println("请输入您的操作:");
 38              
 39              int option=0;
 40             //捕获异常,防止输入的是字符串,而不是数字
 41             try{
 42               option = input.nextInt();
 43              }catch(InputMismatchException e){
 44                 System.out.println("请输入数字,不能输入字母!");
 45             }
 46              switch(option){
 47 
 48                  case 1 :
 49                      addBook();
 50                      returnMenu();
 51                      break;
 52 
 53                  case 2 :
 54                      searchBook();
 55                      returnMenu();    
 56                      break;
 57                  case 3 :
 58                      deleteBook();
 59                      returnMenu();
 60                      break;
 61                  case 4 :
 62                      lendBook();
 63                      returnMenu();
 64                      break;
 65                  case 5 :
 66                      returnBook();
 67                      returnMenu();
 68                      break;
 69                  case 6:
 70                      Booklist();
 71                      returnMenu();
 72                      
 73                      break;
 74                  case 7:
 75                      System.out.println("谢谢使用,欢迎下次在来");
 76                      break;
 77                  default:
 78                      System.out.println("输入异常,请重新输入");
 79                      returnMenu();
 80                      break;
 81              }
 82              
 83          }
 84         
 85       //切换菜单
 86         public void returnMenu() {
 87             System.out.println("**************************************");
 88             System.out.println("输入0返回:");
 89             Scanner input = new Scanner(System.in);
 90             
 91             int option=1;
 92             //捕获异常,防止输入的是字符串,而不是数字
 93             try{
 94               option = input.nextInt();
 95              }catch(InputMismatchException e){
 96                 System.out.println("请输入数字,不能输入字母!");
 97             }
 98 
 99             if(option == 0){
100                 
101                 //在此进入菜单切换
102                 startMenu();
103             }else {
104             
105                 System.out.println("输入异常,请重新输入");
106                 // 递归调用。
107                 returnMenu();  
108             }
109         }
110         
111         //新增书籍
112         public void addBook(){
113               
114                 System.out.println("*************欢迎进入添加页面**************");
115                 System.out.println("请输入您要添加的书籍:");
116                 Scanner input = new Scanner(System.in);    
117                 String name = input.next();
118                 //新增书籍对象
119                 book.add(new Book(name,false,"0",0));
120                 
121                 System.out.println("恭喜您,添加书籍《"+name+"》成功了!");    
122          }
123         
124         //查看书籍
125         public void    searchBook(){
126             System.out.println("************欢迎进入查看页面**************");
127           System.out.println("序号\t名称\t\t状态\t借出时间\t");
128           //通过迭代器遍历
129             ListIterator<Book> it = book.listIterator();
130             int i=1;
131             while(it.hasNext()){
132               System.out.println(i+"\t"+it.next());
133               i++;
134             }        
135     
136         }
137         
138         //删除书籍
139         public void deleteBook(){
140             System.out.println("************欢迎进入删除页面**************");
141             System.out.println("请输入您要删除的书籍名称:");
142             Scanner input = new Scanner(System.in);
143             String name = input.next();
144             
145             for(int i=0;i<book.size();i++){
146                 //根据书名和借出状态啦删除书籍,借出的就不能删除了
147                 if(book.contains(new Book(name,false,"0",0))){
148                     
149                    book.remove(new Book(name,false,"0",0));
150                   System.out.println("删除《"+name+"》成功!");
151                   return;
152                 
153                }else if(book.contains(new Book(name,true,"0",0))){
154                    
155                    System.out.println("此书已借出,不能删除!");
156                    return;
157                }else{
158                  
159                    System.out.println("没有找到此书!");
160                    return;
161                }    
162             }
163       }
164         
165     //借书
166     public void lendBook(){
167             System.out.println("************欢迎进入借书页面************");
168             System.out.println("请输入您要借的书籍名称:");
169             Scanner input = new  Scanner(System.in);
170             String name = input.next();
171 
172             for(int i=0;i<book.size();i++){
173                 
174                 //根据书名和借出状态是判断是否可借
175                 if(book.contains(new Book(name,false,"0",0))){
176                     System.out.println("请输入您借书的时间格式(yyyy-MM-dd):");
177                     
178                     String date=input.next();
179                     //能找到输入的书籍就返回索引
180                 int index=book.indexOf(new Book(name,false,"0",0));
181                       //通过索引获取输入的书
182                      Book book2=book.get(index);
183                      //获取借书的次数使之加1
184                      int num=book2.count+1;
185                     //更新书 的状态
186                     book.set(index,new Book(name,true,date,num));
187                   System.out.println("恭喜您,租借《"+name+"》成功!");
188                   return;
189                 
190                }else if(book.contains(new Book(name,true,"0",0))){
191                    
192                    System.out.println("此书已借出,没有第二本了哦!");
193                    return;
194                }else{
195                  
196                    System.out.println("没有找到此书!");
197                    return;
198                }    
199             }    
200     }
201     
202     //归还书籍
203     public void returnBook(){
204         System.out.println("************欢迎进入归还书籍页面******************");
205         System.out.println("请输入归还书籍的名称:");
206         Scanner input = new Scanner(System.in);
207         double  price = 0.0;
208         String name = input.next();
209 
210         for(int i=0;i<book.size();i++){
211             if(book.contains(new Book(name,true,"0",0))){
212                 
213                 System.out.println("请输入您归还书籍的时间(格式:yyyy-MM-dd):");
214                 
215                   //能找到输入的书名就返回索引
216                   int index=book.indexOf(new Book(name,true,"0",0));
217                   //通过索引获取输入的书
218                   Book book2=book.get(index);
219                   //获取书籍借出去的时间
220                   String date1=book2.date;
221                   //获取书借出去的次数,借的时候已加1,所归还不需要加1了
222                   int num=book2.count;
223                   //获取时间差,为了计算租金
224                   int time=charge(date1,input.next());
225                   price=time*2;
226                   //通过索引更新书的状态
227                 book.set(index,new Book(name,false,"0",num));
228               System.out.println("恭喜您,《"+name+"》归还成功,您应付"+price+"元!");
229                    return;
230            }else if(book.contains(new Book(name,false,"0",0))){
231                
232                System.out.println("此书还没借出,您走错地方了吧!");
233                return;
234            }else{
235              
236                System.out.println("没有找到此书!");
237                return;
238            }    
239         }    
240    }
241     //做时间差
242         public int charge(String date1,String date2){
243             
244             //将string转为Date做计算
245             SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd");
246              int time=0;
247              try{
248                  Date d1=sd.parse(date1);
249                  Date d2=sd.parse(date2);
250                     //返回的时间是毫秒
251                  time=(int)((d2.getTime()-d1.getTime())/(1000*24*60*60));
252                  
253              }catch(ParseException e){
254                  System.out.println(e);
255              }
256             
257             return time;
258         }
259         
260         //排行榜
261         public void Booklist(){
262             
263             System.out.println("***********欢迎进入书籍排行榜**********");
264           
265             //为了排行榜的排序不影响正常的排序,所以重新创建个集合把book的元素添加到
266             //新的集合,如果不这样,正常的排序也会按排行榜的排序来排序
267             ArrayList bk=new ArrayList();
268             bk.addAll(book);
269             
270             //通过Collections工具类排序,因为对象不具备排序功能,所以复写了compareTo方法
271             Collections.sort(bk);
272             
273             System.out.println("序号\t名称\t\t状态\t借出时间\t");
274             ListIterator<Book> it = bk.listIterator();
275             int i=1;
276             while(it.hasNext()){
277               System.out.println(i+"\t"+it.next());
278               i++;
279             }        
280     }
281 }
书籍管理类

 

只是一些日常的学习哦,不喜勿愤!

posted @ 2016-12-05 17:31  黎明前D黑暗  阅读(1054)  评论(0编辑  收藏  举报