java一个简单的管理系统
Posted 为梦想而奋斗啊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 }
只是一些日常的学习哦,不喜勿愤!
以上是关于java一个简单的管理系统的主要内容,如果未能解决你的问题,请参考以下文章