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 }
书籍管理类
只是一些日常的学习哦,不喜勿愤!
转载于:https://www.cnblogs.com/zxdbky/p/6134780.html
java一个简单的管理系统相关推荐
- SharpDevelop 5.1 调试一个简单会员管理系统
下面使用SharpDevelop 5.1 调试一个简单会员管理系统,源码来自 http://www.softhy.net/soft/35411.htm 在SharpDevelop 5.1打开,运行该项 ...
- 一个简单图书管理系统TSGL的应用数据库
简单图书管理系统的应用数据库 一.摘要 这个项目是学校结课要求的项目,所以采用的是SQL sever2008来完成的,并不是mysql来完成的,SQL sever2008与mysql就基础知识没有什么 ...
- Java实现简单图书馆管理系统
编写图书馆管理系统 源码https://github.com/Hu1Wence/Learn_Java/tree/master/BookManage 思路 要编写这个程序我们首相要清楚这个程序中有哪些对 ...
- java继承类型转换_#java 一个简单的例子理解java继承、成员函数重写、类型转换...
一个简单的例子理解java继承.成员函数重写.类型转换 1.继承简介 举一个简单的例子:笔分为很多种,比如毛笔.钢笔.圆珠笔等等,这些笔都有一些相同的属性比如长度.笔迹的粗细等等:但他们也有不同的特点 ...
- 一个简单仓库管理系统的设计与实现--需求篇
去年12月份,帮助一个老乡完成了一份大作业,使用VB+ACCESS实现一个简单的仓库管理系统,现做一下总结并进一步完善,分为三部分:需求.设计.实现. 需求篇 项目需求: 一.控件技术要求: 1.Ac ...
- 如何使用Access创建一个简单MIS管理系统_Access
Access 数据库入门的极好手段. 转载自 http://www.mb5u.com/biancheng/access/access_28527.html 经过实际操作,是可行的. 你家中的CD.VC ...
- springboot+mybatis+thymeleaf学习一个简单的管理系统
在淘宝上买的课程的一个例子,看了视频,抄了一遍代码,那时候刚开始学springboot,所以感觉没什么用,然后就又学习了一段时间.最近回想起来有这样的一个系统符合我现阶段的学习程度,然后就又写了一遍. ...
- Java一个简单的爬虫:爬去网页代码
源码网址,版权归该作者所有,在此做转载声明 import java.io.BufferedReader; import java.io.InputStreamReader; import java.n ...
- 学生档案信息管理系统java_基于JAVA的简单档案管理系统
基于java的档案管理系统 项目技术组成:(Spring+SpringMVC+MyBatis+shiro+vue等等) [if !supportLists]1. [endif]系统管理 [if !su ...
- Java 一个简单的绘制类似花瓣的程序
绘制椭圆说一下: ellipse = new Ellipse2D.Float(10, 0, 50, 15);// 创建椭圆对象 (10,0) 为椭圆外接矩形左上角坐标,50 为外接矩形的长,15为宽 ...
最新文章
- img-responsive class图片响应式
- 所有企业要注意了,你随时可能掉进GDPR这个坑里!
- vs2008环境下MFC对注册表的读写操作
- MFC——在视图窗口加载背景图片
- 美国教授北大演讲:并不是每个人都适合做学术
- ARC和MRC 兼容的单例模式
- Python 的post请求 get请求实例
- ARM MMU工作原理剖析
- Tab选项卡界面(1)
- 如何更新 OpenStack 组件?- 每天5分钟玩转 OpenStack(161)
- Django使用Channels实现WebSSH网页终端,实现SSH堡垒机雏形
- 负指数分布的性质_负指数分布.ppt
- iphone快捷指令蚂蚁森林能量_iPhone「快捷指令」怎么玩?玩法太多,别让这个功能吃灰...
- Hive中sort by、distribute by、cluster by的区别及用法
- 12c rac在安装grid软件执行root.sh脚本的时候出现PRCT-1431,CLSRSC-180
- 实操:怎么从数据切入私域长效运营?可以这样做
- C语言结构体数组,结构体数组的定义,结构体数组的输出,结构体的应用
- 虚拟机能ping主机,主机ping虚拟机请求超时
- 生态圈——小组制组织结构思考
- Efficient Fully Homomorphic Encryption from (Standard) LWE 论文理解