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 }

书籍管理类

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

时间: 2024-10-24 21:37:14

java一个简单的管理系统的相关文章

java写的一个简单学生管理系统[改进]

用Java写的一个简单学生管理系统 import java.util.*; public class student_cj {  public static void main(String[] args){      Scanner in=new Scanner(System.in);   System.out.print("请输入学生人数:");   int num=in.nextInt();//学生人数   String[] str=new String[num];//结合一行数

Java写一个简单学生管理系统

其实作为一名Java的程序猿,无论你是初学也好,大神也罢,学生管理系统一直都是一个非常好的例子,初学者主要是用数组.List等等来写出一个简易的学生管理系统,二.牛逼一点的大神则用数据库+swing来做一个有界面的学生管理系统.其实都并不会太难. 今天我就先写一个简单的用List来实现学生管理系统: 首先,管理系统是针对学生对象的,所以我们先把学生对象就写出来: package bean; public class Student { String name; String studentId;

Java一个简单的死锁例子

内容:一个简单的死锁例子,大概的思路:两个线程A和B,两把锁X和Y,现在A先拿到锁X,然后sleep()一段时间,我们知道sleep()是不会释放锁资源的.然后如果这段时间线程B拿到锁Y,也sleep()一段时间的话,那么等到两个线程都醒过来的话,那么将互相等待对方释放锁资源而僵持下去,陷入死锁.flag的作用就是让A和B获得不同的锁. public class TestDeadLock { public void run() { MyThread mt = new MyThread(); ne

用Java GUI做一个简单的管理系统

1.先完成主页面MainUI(代码如下) package com.pag_1;   import javax.swing.*;   import java.awt.*;   import java.awt.event.ActionEvent;   import java.awt.event.ActionListener;   public class MainUI extends JFrame implements ActionListener {       //定义组件        JBu

Java一个简单的重试工具包

在接口调用中由于各种原因,可能会重置失败的任务,使用Guava-Retrying可以方便的实现重试功能. 首先,需要引用Guava-Retrying的包 <dependency> <groupId>com.github.rholder</groupId> <artifactId>guava-retrying</artifactId> <version>2.0.0</version></dependency> 代

Java一个简单的文件工具集

class FileUtils { //文件目录下文件总数目 public static int fileNumber(File dir) { int filenumber = 0; if(dir.exists()) { for(File file:dir.listFiles()) { if(file.isDirectory()) { filenumber = filenumber+fileNumber(file); } else { filenumber++; } } } return fil

一个简单的java web 项目

本文实现一个简单的 java web 项目,包括以下5个功能: 1. 登录 用户默认主页index.jsp , 可选择登录功能,输入用户名和密码,若登录成功,则进入产品管理总页面main.jsp.若不成功仍退回index.jsp 2. 注册 用户默认主页index.jsp ,  可选择注册功能 ,若注册,则进入 register.jsp 3. 管理产品(增加,删除,查看) 登录成功后,进入产品管理总页面main.jsp.第一次进入main.jsp,默认显示所有产品列表.在此页面上更实现 查询某个

java开发简单的用户管理系统

学习完java基础后,自己练了练用MySql作为数据存储的简单用户管理系统,这是一个没有界面的管理系统,看起来比较枯燥,先给出几张截图吧. 首先预览一下包结构吧 主类是Start.java import com.menu.MainMenu; import com.nensoft.bean.Item; import com.nensoft.bean.Menu; import com.nensoft.bean.Userinfo; import com.utils.DBUtil2; public cl

一个简单的通讯服务框架(大家发表意见一起研究)JAVA版本

最近研究下java语言,根据一般使用的情况,写了个连接通讯服务的框架: 框架结构 C-Manager-S; 把所有通讯内容抽取成三个方法接口:GetData,SetData,带返还的Get; 所有数据都处理为byte[];客户端与服务端和管理器以及服务端有多重处理模式 管理信息: 1.不需要中心管理器:服务端启动时向客户端广播自己绑定的地址:接收数据:客户端使用时广播一次请求,向所有服务端获取服务信息: 2.管理中心:客户端向管理器请求服务信息:服务端向管理器注册地址:根据需要,可以把客户端传递