zoukankan      html  css  js  c++  java
  • 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+"	"+"已借出"+"	"+this.date);
    20          }else{
    21             return (this.name+"	"+"可借"+"	"+" ");
    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("序号	名称		状态	借出时间	");
    128           //通过迭代器遍历
    129             ListIterator<Book> it = book.listIterator();
    130             int i=1;
    131             while(it.hasNext()){
    132               System.out.println(i+"	"+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("序号	名称		状态	借出时间	");
    274             ListIterator<Book> it = bk.listIterator();
    275             int i=1;
    276             while(it.hasNext()){
    277               System.out.println(i+"	"+it.next());
    278               i++;
    279             }        
    280     }
    281 }
    书籍管理类

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

  • 相关阅读:
    F
    D
    J
    M
    H
    L
    Android线程之间的通讯
    Java4Android基础学习之异常
    Java4Android基础学习之接口
    Java4Android基础学习之包与访问权限
  • 原文地址:https://www.cnblogs.com/zxdbky/p/6134780.html
Copyright © 2011-2022 走看看