用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一个简单的管理系统相关推荐

  1. SharpDevelop 5.1 调试一个简单会员管理系统

    下面使用SharpDevelop 5.1 调试一个简单会员管理系统,源码来自 http://www.softhy.net/soft/35411.htm 在SharpDevelop 5.1打开,运行该项 ...

  2. 一个简单图书管理系统TSGL的应用数据库

    简单图书管理系统的应用数据库 一.摘要 这个项目是学校结课要求的项目,所以采用的是SQL sever2008来完成的,并不是mysql来完成的,SQL sever2008与mysql就基础知识没有什么 ...

  3. Java实现简单图书馆管理系统

    编写图书馆管理系统 源码https://github.com/Hu1Wence/Learn_Java/tree/master/BookManage 思路 要编写这个程序我们首相要清楚这个程序中有哪些对 ...

  4. java继承类型转换_#java 一个简单的例子理解java继承、成员函数重写、类型转换...

    一个简单的例子理解java继承.成员函数重写.类型转换 1.继承简介 举一个简单的例子:笔分为很多种,比如毛笔.钢笔.圆珠笔等等,这些笔都有一些相同的属性比如长度.笔迹的粗细等等:但他们也有不同的特点 ...

  5. 一个简单仓库管理系统的设计与实现--需求篇

    去年12月份,帮助一个老乡完成了一份大作业,使用VB+ACCESS实现一个简单的仓库管理系统,现做一下总结并进一步完善,分为三部分:需求.设计.实现. 需求篇 项目需求: 一.控件技术要求: 1.Ac ...

  6. 如何使用Access创建一个简单MIS管理系统_Access

    Access 数据库入门的极好手段. 转载自 http://www.mb5u.com/biancheng/access/access_28527.html 经过实际操作,是可行的. 你家中的CD.VC ...

  7. springboot+mybatis+thymeleaf学习一个简单的管理系统

    在淘宝上买的课程的一个例子,看了视频,抄了一遍代码,那时候刚开始学springboot,所以感觉没什么用,然后就又学习了一段时间.最近回想起来有这样的一个系统符合我现阶段的学习程度,然后就又写了一遍. ...

  8. Java一个简单的爬虫:爬去网页代码

    源码网址,版权归该作者所有,在此做转载声明 import java.io.BufferedReader; import java.io.InputStreamReader; import java.n ...

  9. 学生档案信息管理系统java_基于JAVA的简单档案管理系统

    基于java的档案管理系统 项目技术组成:(Spring+SpringMVC+MyBatis+shiro+vue等等) [if !supportLists]1. [endif]系统管理 [if !su ...

  10. Java 一个简单的绘制类似花瓣的程序

    绘制椭圆说一下: ellipse = new Ellipse2D.Float(10, 0, 50, 15);// 创建椭圆对象 (10,0) 为椭圆外接矩形左上角坐标,50 为外接矩形的长,15为宽 ...

最新文章

  1. img-responsive class图片响应式
  2. 所有企业要注意了,你随时可能掉进GDPR这个坑里!
  3. vs2008环境下MFC对注册表的读写操作
  4. MFC——在视图窗口加载背景图片
  5. 美国教授北大演讲:并不是每个人都适合做学术
  6. ARC和MRC 兼容的单例模式
  7. Python 的post请求 get请求实例
  8. ARM MMU工作原理剖析
  9. Tab选项卡界面(1)
  10. 如何更新 OpenStack 组件?- 每天5分钟玩转 OpenStack(161)
  11. Django使用Channels实现WebSSH网页终端,实现SSH堡垒机雏形
  12. 负指数分布的性质_负指数分布.ppt
  13. iphone快捷指令蚂蚁森林能量_iPhone「快捷指令」怎么玩?玩法太多,别让这个功能吃灰...
  14. Hive中sort by、distribute by、cluster by的区别及用法
  15. 12c rac在安装grid软件执行root.sh脚本的时候出现PRCT-1431,CLSRSC-180
  16. 实操:怎么从数据切入私域长效运营?可以这样做
  17. C语言结构体数组,结构体数组的定义,结构体数组的输出,结构体的应用
  18. 虚拟机能ping主机,主机ping虚拟机请求超时
  19. 生态圈——小组制组织结构思考
  20. Efficient Fully Homomorphic Encryption from (Standard) LWE 论文理解

热门文章

  1. 广度搜索 -- 9.1 Word Ladder -- 求是否有解 -- 图解
  2. java中连接数据库
  3. [转帖]java必备的开发知识和技能
  4. 在Eclipse或工作空间中 ,复制或修改项目后,把项目部署后发现还是原来的项目名称...
  5. 1.6 使用电脑测试MC20的读取带中文短信功能
  6. opencv学习之路(9)、对比度亮度调整与通道分离
  7. javasript深度拷贝
  8. 5、使用Libgdx设计一个简单的游戏------雨滴
  9. 安装浏览器的vue插件
  10. sourcetree windows下中文乱码