問題:A借走了書,B借書時會借走A的書java
LibMain.java緩存
package com.inclass.test; import java.util.Scanner; /* * * 圖書管理系統 * 1.登陸和註冊 * 2.登陸成功後 * a.顯示全部圖書列表 添加 查詢 修 刪除 * b.借閱圖書 須要綁定借閱人帳號 * c.查看已借閱圖書列表 歸還圖書 * 3.退出當前登陸的帳號 */ public class LibMain { public static void main(String[] args) { /* * 預約義 */ Libmanage lib = new Libmanage(); Scanner sc = new Scanner(System.in); //將會接收op1方法的返回值,是否進行下一階段 int Op1=0; //將用於接收對圖書的操做 int Op2=0; //用於第一個while循環————登陸註冊操做 int flag1=1; //用於第二個while循環————是否對圖書進行操做 int flag2=1; /* * 開始進入圖書館 */ System.out.println("歡迎來到網絡圖書館!"); while(flag1==1){ System.out.println("請輸入須要的操做:1.登陸2.註冊0.退出系統"); Op1 = lib.op1();//在op1方法中登陸成功,就會返回1,進入圖書操做界面 if(Op1==1){ flag2=1; while(flag2==1){ lib.show();//顯示操做菜單 Op2=sc.nextInt();//接收對圖書的操做 switch(Op2){ case 1: lib.addBook();//1.增長圖書 break; case 2: lib.delBook();//2.刪除圖書 break; case 3: lib.modBook();//3.修改圖書 break; case 4: lib.selBook();//4.查詢圖書信息 break; case 5: lib.showAllBook();//5.顯示可借閱圖書 break; case 6: lib.borBook();//6.借閱圖書 break; case 7: lib.showBorBook();//7.查看已經借閱的圖書 break; case 8: lib.huanBook();//8.歸還圖書 break; case 0: flag2=0;//0.返回上一級 break; default: break; } }//第二個while的大括號 }//執行圖書操做的if }//第一個while循環的大括號 } }
Libmanage.java網絡
package com.inclass.test; /** * 圖書和用戶的操做 * @author y * */ import java.util.Scanner; import java.util.TreeMap; public class Libmanage { Scanner sc = new Scanner(System.in); //將會接收登陸註冊指令 int op1=0; //成員變量————用戶 TreeMap<String, String> userMap = new TreeMap<>(); //成員變量————圖書 TreeMap<Integer, Library> bookMap = new TreeMap<>(); //圖書編號 int bno=0; //成員變量————用戶和借書的關係 TreeMap<Integer, Library> borBook = new TreeMap<>();//將會被借出去的書存在這個treemap裏,而後再與用戶關聯 TreeMap<Integer, Library> huanBook = new TreeMap<>();//要還的書的中介 TreeMap<String, TreeMap> userBook = new TreeMap<>(); //用於註冊或登陸的用戶名和密碼 String name=null,password=null; //用於圖書操做的屬性定義 String bname,bauther;//書名,書做者 double bprice;//書價格 /* * 登陸註冊選擇 */ public int op1(){ int fh=0; try{ op1 = sc.nextInt();//接收登陸註冊指令 if(op1==1){ int i=1; System.out.println("請輸入用戶名:"); name = sc.next(); for (String str : userMap.keySet()) { if(str.equals(name)){ fh=login(str);//登陸————登陸成功會返回1,失敗返回0 i=0;//若是沒有該用戶,那就會進行註冊,有,置爲0,不註冊 break; } } if(i==1){ System.out.println("沒有"+name+"用戶,請進行註冊!"); register();//跳到註冊界面 } }else if(op1==2){ register();//註冊 }else if(op1==0){ System.out.println("退出系統!..."); System.exit(0); }else{ System.out.println("輸入有誤請從新輸入"); } }catch(Exception e){ System.out.println("輸入有誤請從新輸入"); sc.next();//出現異常後,就不斷進行死循環的解決辦法(可想一想別的解決辦法) } return fh; } /* * 用戶註冊 * ->對密碼沒有要求 */ public int register(){ System.out.println("請輸入用戶名:"); name = sc.next(); System.out.println("請輸入密碼:"); password = sc.next(); for (String str : userMap.keySet()) { if(str.equals(name)){ System.out.println("已經存在該用戶!請從新註冊!"); return 0; } } userMap.put(name, password); System.out.println("註冊成功!"); return 1; } /* * 用戶登陸 * ->先判斷用戶名是否相同,而後再判斷密碼是否相同。沒有符合條件的就返回false,不然返回true */ public int login(String name){ System.out.println("請輸入密碼:"); password = sc.next(); if(password.equals(userMap.get(name))){ System.out.println("登錄成功!"); return 1; } System.out.println("用戶名或密碼錯誤!"); return 0; } /* *1.增長圖書 */ public void addBook(){ try { int x=0; System.out.println("請輸入圖書編號:"); bno = sc.nextInt(); for (int i : bookMap.keySet()) { if(i==bno){ x=1;//若是已有圖書,置爲1,告訴用戶不能添加 } } if(x==0){ System.out.println("請輸入書名:"); bname = sc.next(); System.out.println("請輸入做者:"); bauther = sc.next(); System.out.println("請輸入價格:"); bprice = sc.nextDouble(); bookMap.put(bno, new Library(bname,bauther,bprice)); System.out.println("增長成功!新添圖書的信息爲:"); System.out.println("編號:"+bno + " " + bookMap.get(bno)); }else if(x==1){ System.out.println("已經存在編號爲"+bno+"的書,請從新輸入"); } } catch (Exception e) { System.out.println("輸入有誤請從新輸入!"); } bno=0;//預防性措施 } /* * 2.刪除圖書 */ public void delBook(){ System.out.println("請輸入圖書編號:"); try { int x=0; bno=sc.nextInt(); for (int i : bookMap.keySet()) { if(bno==i){ x=1; } } if(x==1){ bookMap.remove(bno); System.out.println("刪除成功!"); }else{ System.out.println("沒有編號爲"+bno+"的書"); } } catch (Exception e) { System.out.println("輸入有誤請從新輸入!"); } bno=0;//預防性措施 } /* * 3.修改圖書信息 */ public void modBook(){ try { int x=0; System.out.println("請輸入須要修改的圖書編號:"); bno = sc.nextInt(); for (int i : bookMap.keySet()) { if(bno==i){ x=1; } } if(x==1){ System.out.println("請輸入修改後的書名:"); bname = sc.next(); System.out.println("請輸入修改後的做者:"); bauther = sc.next(); System.out.println("請輸入修改後的價格:"); bprice = sc.nextDouble(); bookMap.put(bno, new Library(bname,bauther,bprice)); System.out.println("修改爲功!修改後圖書的信息爲:"); System.out.println("編號:"+bno + " " + bookMap.get(bno)); }else{ System.out.println("沒有編號爲"+bno+"的書"); } } catch (Exception e) { System.out.println("輸入有誤請從新輸入!"); } bno=0;//預防性措施 } /* * 4.查詢圖書 */ public void selBook(){ int x=0; try { System.out.println("請輸入須要查詢的圖書編號:"); bno=sc.nextInt(); for (int i : bookMap.keySet()) { if(i==bno){ System.out.println(bookMap.get(i)); x=1; break; } } if(x==0){ System.out.println("沒有編號爲"+bno+"的書"); } } catch (Exception e) { System.out.println("輸入有誤請從新輸入!"); } bno=0;//預防性措施 } /* * 5.顯示全部可借閱的書 */ public void showAllBook(){ for (int i : bookMap.keySet()) { System.out.println(i +" "+ bookMap.get(i)); } } /* * 6.借書 */ public void borBook(){ try { int x=0; System.out.println("請輸入須要借閱圖書的編號:"); bno=sc.nextInt(); for (int i : bookMap.keySet()) { if(bno==i){ x=1; } } if(x==1){ borBook.put(bno, bookMap.get(bno));//中介 userBook.put(name, borBook);//用戶和借出去的書相關聯 bookMap.remove(bno);//把這本書從圖書館移除 //borBook.clear();//放棄了多用戶借書,若是這裏clear,用戶會借不到書 }else{ System.out.println("不存在"+bno+"的書,請從新輸入"); } } catch (Exception e) { System.out.println("輸入有誤請從新輸入!"); } bno=0;//預防性措施 } /* * 7.查看已經借出去的書 */ public void showBorBook(){ for (String str : userBook.keySet()) { System.out.println(str); System.out.println(" " + userBook.get(str)); } } /* * 8.還書 */ public void huanBook(){ try { System.out.println("請輸入須要歸還圖書的編號:"); bno=sc.nextInt(); huanBook.put(bno, (Library) userBook.get(name).get(bno));//中介 bookMap.put(bno, huanBook.get(bno));//向圖書館存書 userBook.remove(name, userBook.get(name).remove(bno));//將對應關係中的書刪除 huanBook.clear();//清除緩存 } catch (Exception e) { System.out.println("輸入有誤請從新輸入!"); } bno=0;//預防性措施 } /* * 顯示操做菜單 */ public void show(){ System.out.println("請輸入須要進行的操做:"); System.out.println("1.增長圖書"); System.out.println("2.刪除圖書"); System.out.println("3.修改圖書"); System.out.println("4.查詢圖書信息"); System.out.println("5.顯示可借閱圖書"); System.out.println("6.借閱圖書"); System.out.println("7.查看已經借閱的圖書"); System.out.println("8.歸還圖書"); System.out.println("0.返回上一級"); } {//事先存幾本書和一名用戶 bookMap.put(101, new Library("書1","做者1",12)); bookMap.put(102, new Library("書2","做者2",15)); bookMap.put(103, new Library("書3","做者3",17)); bookMap.put(104, new Library("書4","做者4",19)); userMap.put("aaa", "123"); } }
Library.javaide
/** * 圖書信息 * @author y * */ public class Library { //書名 private String bookName; //做者 private String bookAuther; //價格 private double bookPrice; /* * set&get */ public String getBookName() { return bookName; } public void setBookName(String bookName) { this.bookName = bookName; } public double getBookPrice() { return bookPrice; } public void setBookPrice(double bookPrice) { this.bookPrice = bookPrice; } public String getBookAuther() { return bookAuther; } public void setBookAuther(String bookAuther) { this.bookAuther = bookAuther; } /* * 構造方法 */ public Library() { super(); // TODO Auto-generated constructor stub } public Library(String bookName, String bookAuther, double bookPrice) { super(); this.bookName = bookName; this.bookAuther = bookAuther; this.bookPrice = bookPrice; } @Override public String toString() { return "書名:" + bookName + ",做者: " + bookAuther + ", 價格:" + bookPrice; } }