簡單的圖書管理系統

自寫的極其簡陋的圖書管理系統,代碼不太規範,在學習中慢慢改

如今還不能實現多用戶借書

  問題:A借走了書,B借書時會借走A的書java

數據存儲用的是map,若有疑問或建議歡迎留言


 

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;
    }
    
    
    
}
相關文章
相關標籤/搜索