java實現簡易的圖書館管理系統


比較適合新手練手的一個簡易項目

直接上源碼

Book

package code;
/**
 * @author ztr
 * @version 創建時間:2021年3月4日 下午8:21:40
 * 類說明
 */
public class Book {
    private String name;
    private String author;
    private double price;
    private String type;
//    有參構造器
    public Book(String name, String author, double price, String type) {
        super();
        this.name = name;
        this.author = author;
        this.price = price;
        this.type = type;
    }

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAuthor() {
        return author;
    }
    public void setAuthor(String author) {
        this.author = author;
    }
    public double getPrice() {
        return price;
    }
    public void setPrice(double price) {
        this.price = price;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    
}

Cuser

package code;

import java.util.Iterator;
import java.util.List;
import java.util.Scanner;

/**
 * @author ztr
 * @version 創建時間:2021年3月4日 下午8:32:15 類說明
 */
public class Cuser extends User {
    Scanner sc = new Scanner(System.in);
    public Cuser(String name, String sex, int age) {
        super(name, sex, age);
    }
//    查找書籍
    @Override
    public void serach(List<Book> LibraryBookDate) {
//        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入你想要查詢的書籍名稱");
        String name = sc.next();
        for (int i = 0; i < LibraryBookDate.size(); i++) {
            if (name != null) {
                if (LibraryBookDate.get(i).getName().equals(name)) {
                    System.out.println("查詢成功");
                    System.out.println(LibraryBookDate.get(i).getName() + " "
                            + LibraryBookDate.get(i).getAuthor() + " "
                            + LibraryBookDate.get(i).getPrice() + " "
                            + LibraryBookDate.get(i).getType());
                }
            } else {
                System.out.println("沒有此書");
            }
        }
        

    }
//遍歷圖書
    @Override
    public void display(List<Book> LibraryBookDate) {
        // 使用lambda表達式
        Iterator<Book> it = LibraryBookDate.iterator();
        while (it.hasNext()) {
            // 因為it.next()返回的是object類型所以需要進行類型強轉
            Book book = (Book) it.next();
            System.out.println(book.getName() + " " + book.getAuthor() + " "
                    + book.getPrice() + " " + book.getType());
        }
    }
//借閱書籍
    @Override
    public void borrow(List<Book> LibraryBookDate) {
//        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入你想要借閱的書籍書名:");
        String name = sc.next();
        // 獲取集合的迭代器
        Iterator<Book> it = LibraryBookDate.iterator();
        while (it.hasNext()) {
            Book book = (Book) it.next();
            if (book.getName().equals(name)) {
                System.out.println(book.getName() + " " + book.getAuthor()
                        + " " + book.getPrice() + " " + book.getType());
                UserBookDate.userdateBooks.add(book);
                it.remove();
            } else {
                System.out.println("沒有該書籍");
            }
        }
        
    }
//    歸還書籍
    public void revert(List<Book> LibraryBookDate){
//        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入需要歸還的書籍:");
        String name = sc.next();
        Iterator<Book> it = UserBookDate.userdateBooks.iterator();
        while(it.hasNext()){
            Book book = (Book)it.next();
            if(book.getName().equals(name)){
                it.remove();
                LibraryBookDate.add(book);
            }            
        }
        
    }
}

LibraryBookDate

package code;

import java.util.ArrayList;
import java.util.List;



/**
 * @author ztr
 * @version 創建時間:2021年3月4日 下午9:21:13
 * 類說明
 */
public class LibraryBookDate {
    static List<Book> LibraryBookDate = new ArrayList<Book>();
    
}

Menu

ackage code;

import java.util.Scanner;

/**
 * @author ztr
 * @version 創建時間:2021年3月6日 下午4:28:07 類說明
 */
public class Menu {
    public void menuRuser() {
        Ruser ruser = new Ruser("ztr", "man", 20);
        System.out.println("1.查閱書籍" + "/n" + "2.遍歷書籍" + "/n" + "3.刪除書籍"
                + "4.添加書籍" + "5.返回上一層");
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        switch (n) {

        case 1:
            ruser.serach(LibraryBookDate.LibraryBookDate);
            menuRuser();
            break;
        case 2:
            ruser.display(LibraryBookDate.LibraryBookDate);
            menuRuser();
            break;
        case 3:
            ruser.borrow(LibraryBookDate.LibraryBookDate);
        
            menuRuser();
            break;
        case 4:
            ruser.insert(LibraryBookDate.LibraryBookDate);        
            menuRuser();
            break;
        case 5:
            menu();
            break;
        default:
            System.out.println("請重新輸入:");
            menuRuser();
            break;
        }
        sc.close();
    }

    public void menuCuser() {
        Cuser cuser = new Cuser("x", "man", 10);
        System.out.println("1.查閱書籍" + "/n" + "2.遍歷書籍" + "/n" + "3.借閱書籍"
                + "4.歸還書籍" + "5.返回上一層");
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        switch (n) {

        case 1:
            cuser.serach(LibraryBookDate.LibraryBookDate);
            menuCuser();
            break;
        case 2:
            cuser.display(LibraryBookDate.LibraryBookDate);
            menuCuser();
            break;
        case 3:
            cuser.borrow(LibraryBookDate.LibraryBookDate);
            menuCuser();
            break;
        case 4:
            cuser.revert(LibraryBookDate.LibraryBookDate);
            menuCuser();
            break;
        case 5:
            menu();
            break;
        default:
            System.out.println("請重新輸入:");
            menuCuser();
            break;
        }
        sc.close();
    }

    public void menu() {
        System.out.println("====圖書館管理系統===");
        System.out.println("1.用戶  2.管理員  3.退出");
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        switch (n) {
        case 1:
            menuCuser();
            break;
        case 2:
            menuRuser();
        case 3:
            break;
        default:
            System.out.println("請重新輸入");
            break;
        }
        sc.close();
    }

}

Operate

package code;

import java.util.List;

/**
 * @author ztr
 * @version 創建時間:2021年3月4日 下午8:25:01
 * 類說明
 */
public interface Operate {
    public void serach(List<Book> LibraryBookDate);
    public void display(List<Book> LibraryBookDate);
    public void borrow(List<Book> LibraryBookDate);
}

Ruser

package code;

import java.util.Iterator;
import java.util.List;
import java.util.Scanner;

/**
 * @author ztr
 * @version 創建時間:2021年3月6日 下午3:56:25 類說明
 */
public class Ruser extends User {
    Scanner sc = new Scanner(System.in);
    public Ruser(String name, String sex, int age) {
        super(name, sex, age);
    }

    // 查找書籍
    @Override
    public void serach(List<Book> LibraryBookDate) {
//        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入你想要查找的書籍書名:");
        String name = sc.next();
        // 獲取集合的迭代器
        Iterator<Book> it = LibraryBookDate.iterator();
        while (it.hasNext()) {
            Book book = (Book) it.next();
            if (book.getName().equals(name)) {
                System.out.println(book.getName() + " " + book.getAuthor()
                        + " " + book.getPrice() + " " + book.getType());
                UserBookDate.userdateBooks.add(book);
            } else {
                System.out.println("沒有該書籍");
            }
        }
    

    }

    // 遍歷圖書
    @Override
    public void display(List<Book> LibraryBookDate) {
        // 使用lambda表達式
        Iterator<Book> it = LibraryBookDate.iterator();
        while (it.hasNext()) {
            // 因為it.next()返回的是object類型所以需要進行類型強轉
            Book book = (Book) it.next();
            System.out.println(book.getName() + " " + book.getAuthor() + " "
                    + book.getPrice() + " " + book.getType());
        }
    }

    // 刪除圖書
    @Override
    public void borrow(List<Book> LibraryBookDate) {
//        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入你要刪除書籍的書名:");
        String name = sc.next();
        // 獲取集合的迭代器
        Iterator<Book> it = LibraryBookDate.iterator();
        while (it.hasNext()) {
            Book book = (Book) it.next();
            if (book.getName().equals(name)) {
                System.out.println(book.getName() + " " + book.getAuthor()
                        + " " + book.getPrice() + " " + book.getType());
                it.remove();
            } else {
                System.out.println("沒有該書籍");
            }
        }
    }

    // 添加圖書
    public void insert(List<Book> libraryBookDate) {
//        Scanner sc = new Scanner(System.in);
        System.out.println("請依次輸入鎖添加書籍的信息:1.書名2.作者3價格4類型");
        String name = sc.next();
        String author = sc.next();
        double price = sc.nextDouble();
        String type = sc.next();
        Book book = new Book(name, author, price, type);
        libraryBookDate.add(book);
        
    }
}

User

package code;
/**
 * @author ztr
 * @version 創建時間:2021年3月4日 下午8:24:46
 * 類說明
 */
public abstract class User implements Operate{
    private String name;
    private String sex;
    private int age;
    
    public User(String name, String sex, int age) {
        super();
        this.name = name;
        this.sex = sex;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    
}

UserBookDate

package code;

import java.util.ArrayList;
import java.util.List;

/**
 * @author ztr
 * @version 創建時間:2021年3月6日 下午2:07:20
 * 類說明
 */
public class UserBookDate {
    static List<Book> userdateBooks = new ArrayList<Book>();
}

Test

package code;
/**
 * @author ztr
 * @version 創建時間:2021年3月6日 下午4:47:25
 * 類說明
 */
public class Test {
    public static void main(String[] args){
        Menu menuone = new Menu();
        menuone.menu();
    }
}

Fileio

package FileIo;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;

import code.Book;
import code.LibraryBookDate;

/**
 * @author ztr
 * @version 創建時間:2021年3月6日 下午9:29:18 類說明
 */
public class Fileio {
    public void fileread() {
        // 創建字符緩沖流對象
        BufferedReader br = null;
        try {
            br = new BufferedReader(new FileReader("src/book.txt"));

            String line;
            while ((line = br.readLine()) != null) {
                // 把讀取到的字符串數據存儲到集合中
                String[] strArray = line.split(" ");
                String name = strArray[0];
                String author = strArray[1];
                double price = Double.parseDouble(strArray[2]);
                String type = strArray[3];
                // 創建書本對象
                Book book = new Book(name, author, price, type);
                LibraryBookDate.LibraryBookDate.add(book);
            }
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {// 寫文件是會有IO異常
            // TODO: handle exception
            e.printStackTrace();
        } finally {
            // 為了保障close一定執行
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    public void filewrite() {
        // 創建輸出緩沖流對象
        BufferedWriter bw = null;
        try {
            bw = new BufferedWriter(new FileWriter("src/book.txt"));
            // 遍歷集合
            Iterator<Book> iterator = LibraryBookDate.LibraryBookDate
                    .iterator();
            while (iterator.hasNext()) {
                Book book = (Book) iterator.next();
                bw.write(book.getName() + " ");
                bw.write(book.getAuthor() + " ");
                bw.write(String.valueOf(book.getPrice()) + " ");
                bw.write(book.getType() + " ");
                bw.newLine();
                // 強制數據輸出
                bw.flush();
            }
        } catch (FileNotFoundException e) {
            // TODO: handle exception
        } catch (IOException e) {
            e.printStackTrace();
            // TODO: handle exception
        } finally {
            if (bw != null) {
                try {
                    bw.close();
                } catch (IOException e2) {
                    // TODO: handle exception
                    e2.printStackTrace();
                }
            }
        }
    }
}

 

功能非常簡單,但可以自己進行功能的擴展


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM