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();
                }
            }
        }
    }
}

 

功能非常简单,但可以自己进行功能的扩展

posted @ 2021-03-06 17:21  zou-ting-rong  阅读(3502)  评论(0编辑  收藏  举报