Java——课设——图书管理系统实现 2.0

Java——图书管理系统

系统简介

1.本系统存有书籍信息与管理员、用户账号。管理员与用户(教师、学生)可以使用本系统。
2.系统数据存有以学号、工号为编号的空账号,用户可以输入工号、学号进行注册,管理员账号无法在本级系统注册,用户账号与管理员账号的默认密码都是编号,即工号、学号。
3.用户可以对书籍进行检索、借阅、归还,管理员可以对书籍进行检索、增加、删除、更改。管理员可以更改用户账号密码和信息。

系统功能

在这里插入图片描述

代码模块

在这里插入图片描述

Book类
属性:编号、书名、作者、是否在馆状态
方法:获取与设置属性

package com.LibraryManagementSystem.Book;

import java.io.Serializable;

//书
public class Book implements Serializable {

    private String Num;    //书籍编号
    private String Name;    //书名
    private String Author;  //作者
    private boolean Status; //是否在馆中的状态

    public Book (String Num, String Name, String Author, boolean Status) {    //构造方法传入属性
        this.Num = Num;
        this.Name = Name;
        this.Author = Author;
        this.Status = Status;
    }

    //获取与设置书本属性的方法
    public void setNum(String num) {   //设置与获取属性的方法
        this.Num = num;
    }

    public String getNum() {
        return Num;
    }

    public void setName(String name) {
        this.Name = name;
    }

    public String getName() {
        return Name;
    }

    public void setAuthor(String author) {
        this.Author = author;
    }

    public String getAuthor() {
        return Author;
    }

    public void setStatus(boolean status) {
        this.Status = status;
    }

    public boolean getStatus() {
        return Status;
    }

    @Override
    public String toString() {
        return "书 { " +
                "编号: " + Num +
                " , 书名: 《 " + Name +
                " 》 , 作者: " + Author +
                " , 是否在馆: " + Status +
                " }";
    }

}



用户

学生用户

Student类
属性:学号、姓名、学院、专业
方法:获取与设置属性

package com.LibraryManagementSystem.User.Student;

import java.io.Serializable;

//学生用户类
public class Student implements Serializable {

    //学生用户有学号、密码、姓名、学院、专业属性
    private String Id;
    private String key;
    private String name;
    private String college;
    private String major;


    //构造方法
    public Student(String Id, String key, String name, String college, String major) {
        this.Id = Id;
        this.key = key;
        this.name = name;
        this.college = college;
        this.major = major;
    }

    //获取、设置属性的方法
    public String getId() {
        return Id;
    }

    public void setId(String Id) {
        this.Id = Id;
    }

    public String getKey() {
        return key;
    }

    public void setKey(String key) {
        this.key = key;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getCollege() {
        return college;
    }

    public void setCollege(String college) {
        this.college = college;
    }

    public String getMajor() {
        return major;
    }

    public void setMajor(String major) {
        this.major = major;
    }



    @Override
    public String toString() {
        return "学生用户 { " +
                "编号 : " + Id +
                " , 姓名 : " + name +
                " , 学院 :" + college +
                " , 专业 :" + major +
                " }";
    }

}

教师用户

Teacher类
属性:工号、姓名、部门
方法:获取与设置属性

package com.LibraryManagementSystem.User.Teacher;

import java.io.Serializable;

//教师用户类
public class Teacher implements Serializable {

    //教师用户有工号、密码、姓名、部门属性
    private String Id;
    private String key;
    private String name;
    private String apartment;


    //构造方法
    public Teacher(String Id, String key, String name, String apartment) {
        this.Id = Id;
        this.key = key;
        this.name = name;
        this.apartment = apartment;
    }

    public String getId() {
        return Id;
    }

    public void setId(String id) {
        this.Id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getKey() { return key; }

    public void setKey(String key) { this.key = key; }

    public String getApartment() {
        return apartment;
    }

    public void setApartment(String apartment) {
        this.apartment = apartment;
    }

    @Override
    public String toString() {
        return "教师用户 { " +
                "编号 : " + Id +
                " , 姓名 : " + name+
                " , 部门 : " + apartment
                + " } ";
    }
}

管理员

Librarian 类
属性:工号、姓名
方法:获取与设置属性、整理书籍、更改用户密码、更改用户信息
管理员独有方法
1.整理书籍
----将书架的书籍按编号进行排序
2.更改用户密码
----先选择要更改的账号是教师用户账号还是学生用户账号,再输入工号或者学号找到要更改的账号,输入并设置新密码
3.更改用户信息
----先选择要更改的账号是教师用户账号还是学生用户账号,再输入工号或者学号找到要改改账号,选择要更改的属性,输入并设置新属性

package com.LibraryManagementSystem.User.Librarian;

import java.io.Serializable;

//管理员用户类
public class Librarian implements Serializable {

    //管理员用户有工号、密码、姓名属性
    private String Id;
    private String name;
    private String key;

    //构造方法
    public Librarian(String Id, String name, String key) {
        this.Id = Id;
        this.name = name;
        this.key = key;

    }

    //获取、设置属性的方法
    public String getId() {
        return Id;
    }

    public void setId(String id) {
        Id = id;
    }

    public String getKey() {
        return key;
    }

    public void setKey(String key) {
        this.key = key;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "管理员 {" +
                " 编号: " + Id +
                " , 姓名: " + name+ " } " ;
    }

}



数据的储存

书架

BookList类
属性:books ( Book 类型数组 —— 存储 Book 对象 )
方法:操作 ( Book 类型数组 —— 存储 Book 对象 )

package com.LibraryManagementSystem.Book;

import java.io.Serializable;

public class BookList implements Serializable {

    //序列化版本号
    private static final long serialVersionUID = 1L;

    //书都是同一类型的元素,创建一个数组来存储书
    private Book[] books;
    private int count;

    //书架先放四本书
    public BookList(){
        this.books = new Book[10];
        books[0] = new Book("1001","Java从入门到精通","明日科技",true);
        books[1] = new Book("1002","浮生六记","沈复",true);
        books[2] = new Book("1003","What Life Should Mean to You","Alfred Adler",true);
        books[3] = new Book("1004","飘","简·爱",true);
        count = 4;
    }


    //获取书架、数量、容量、属性和设置属性的方法
    public Book[] getBooks() { return books; }

    public void setCount(int count) {
        this.count = count;
    }

    public int getCount() {
        return count;
    }

    public void setBooks(int num,Book book) {
        books[num] = book;
        count++;
    }

    public Book getBook(int num) {
        return this.books[num];
    }

    public int getSIZE() {
        return this.books.length;
    }
}

学生用户名单

StudentList类
属性:students ( Student 数组——存储 Student 对象 )
方法:操作 students ( Student 数组——存储 Student 对象 )

package com.LibraryManagementSystem.User.Student;

import java.io.Serializable;

//学生用户名单
public class StudentList implements Serializable {

    //序列化版本号
    private static final long serialVersionUID = 3L;

    //学生都是同一类型的元素,创建一个数组来存储学生用户
        private Student[] students;
        private int count;

        //学生用户名单先放五个学生
        public StudentList() {
            this.students = new Student[5000];
            students[0] = new Student("300001","300001","朱自清","文学院","汉语言文学");
            students[1] = new Student("300002","300002","毕加索","美术学院","中国画");
            students[2] = new Student("300003","300003","颜回","历史与文化学院","古代文化");
            students[3] = new Student("300004","300004","司马光","数学与统计学院","数学师范");
            students[4] = new Student("300005","300005","富兰克林","文理学院","实验班");
            count = 5;
            }

    //获取学生用户及名单、数量、容量、属性和设置属性的方法
    public Student[] getStudents() {
        return students;
    }

    public Student getStudent(int num) { return students[num]; }


    public void setStudents(Student[] students) {
        this.students = students;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }


    public int getSIZE() { return this.students.length; }

    //删除学生用户的方法
    public void remove(Student student) {
            student.setName(null);
            student.setCollege(null);
            student.setMajor(null);
    }

}

教师用户名单

StudentList类
属性:students ( Student 数组——存储 Student 对象 )
方法:操作 students ( Student 数组——存储 Student 对象 )

package com.LibraryManagementSystem.User.Teacher;

import java.io.Serializable;

//教师用户名单
public class TeacherList implements Serializable {

    //序列化版本号
    private static final long serialVersionUID = 4L;

    //教师都是同一类型的元素,创建一个数组来存储教师
    private Teacher[] teachers;
    private int count=4;

    //教师用户名单先放四个教师用户
    public TeacherList() {
        this.teachers = new Teacher[500];
        teachers[0] = new Teacher("200001","200001","朱自清","文学院");
        teachers[1] = new Teacher("200002","200002","齐白石","美术学院");
        teachers[2] = new Teacher("200003","200003","陈演恪","历史与文化学院");
        teachers[3] = new Teacher("200004","200004","罗华庚","数学与统计学院");
        count = 4;

    }

    //获取教师用户及名单、数量、容量、属性和设置属性的方法
    public Teacher getTeacher(int num) { return teachers[num]; }

    public Teacher[] getTeachers() {
        return teachers;
    }

    public void setTeachers(Teacher[] teachers) {
        this.teachers = teachers;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }


    public int getSIZE() { return this.teachers.length; }

    //删除教师用户的方法
    public void remove(Teacher teacher) {
        teacher.setName(null);
        teacher.setApartment(null);
    }


}

管理员名单

LibrarianList类
属性:librarians ( Librarian 类型数组——存储 Librarian 对象 )
方法:操作 librarians ( Librarian 类型数组——存储 Librarian 对象 )

package com.LibraryManagementSystem.User.Librarian;

import java.io.Serializable;

//管理员用户名单
public class LibrarianList implements Serializable {

    //序列化版本号
    private static final long serialVersionUID = 2L;

    //管理员都是同一类型的元素,创建一个数组来存储管理员
    private Librarian[] librarians;
    private int count;

    //管理员名单先放四个默认管理员
    public LibrarianList() {
        this.librarians = new Librarian[50];
        librarians[0] = new Librarian("100001","小萌","100001");
        librarians[1] = new Librarian("100002","小赵","100002");
        librarians[2] = new Librarian("100003","大刘","100003");
        librarians[3] = new Librarian("100004","明明","100004");
        count = 4;
    }



    //获取管理员用户及名单、数量、容量、属性和设置属性的方法
    public Librarian getLibrartian( int num ) { return this.librarians[num]; }

    public Librarian[] getLibrarians() {
        return librarians;
    }

    public void setLibrarians(Librarian[] librarians) {
        this.librarians = librarians;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public int getSIZE() { return this.librarians.length; }

}


对图书的操作

查询书籍

输入书籍名字,在书架中找到这本书,展示

package com.LibraryManagementSystem.BookOperation;

import com.LibraryManagementSystem.Book.Book;
import com.LibraryManagementSystem.Book.BookList;

import java.io.Serializable;
import java.util.Scanner;

//查找一本书
public class SearchBook implements Serializable {
    Scanner in = new Scanner(System.in);


    public void work(BookList bookList) {
        System.out.println("查找书籍");
        Book[] books = bookList.getBooks(); //获取书架中存储书的数组
        while (true) {
            System.out.println("请输入你想要查找的书籍的书名,或者输入 0 退出");
            String name = in.next();
            if(name.equals("0")) {
                System.out.println("退出");
                break;
            }
            else {
                int i;
                for(i=0;i<bookList.getCount();i++) {
                    //找到了要查找的书籍
                    if (books[i].getName().equals(name)) {
                        System.out.println("小图在书架找到了这本书,"+'\n'+books[i]);
                        break;
                    }
                    //没有找到
                    else if(i == bookList.getCount()-1) {
                        System.out.println("非常抱歉,小图没有在书架找到这本书,请你重新输入书名:");
                        break;
                    }
                }
            }
        }
        System.out.println("本次查找操作结束,请告诉小图接下来的指示:");
         return;
    }
}


展示书架

展示书架的所有书

package com.LibraryManagementSystem.BookOperation;

import com.LibraryManagementSystem.Book.Book;
import com.LibraryManagementSystem.Book.BookList;

import java.io.Serializable;
import java.util.Scanner;

//展示书架所有书籍
public class ShowBookList implements Serializable {
    Scanner in = new Scanner( System.in );

    public void work(BookList bookList) {
        Book[] books = bookList.getBooks(); //获取存储书本的数组
        System.out.println("书架所有书籍展示如下:");
        for (int i = 0; i < bookList.getCount(); i++) {
//            books[i].showBook();          输出结果没有对齐
//            System.out.println();
            System.out.println(books[i]);
        }
        System.out.println("本次展示操作完成,请告诉小图接下来的指示:");
    }

}

借阅书籍

输入书籍名字,在书架找到这本书,设置这本书的是否在馆状态为 False

package com.LibraryManagementSystem.BookOperation;

import com.LibraryManagementSystem.Book.Book;
import com.LibraryManagementSystem.Book.BookList;

import java.io.Serializable;
import java.util.Scanner;

//借阅书架中的一本书
public class BorrowBook implements Serializable {
    Scanner in = new Scanner(System.in);

    public void work(BookList bookList) {
        Book[] books = bookList.getBooks(); //获取书架中存储书的数组
        while (true) {
            System.out.println("请输入你想要借阅的书籍的书名,或者输入 0 返回");
            String name = in.next();
            if(name.equals("0")) {
                System.out.println("返回");
                break;
            }
            else {
                int i=0;
                for(i=0;i<bookList.getCount();i++) {
                    //找到了要借阅的书籍
                    if (books[i].getName().equals(name)) {
                        System.out.println("小图找到了这本书:"+'\n'+books[i]);
                        //如果这本书已经被借出
                        if( ! books[i].getStatus() ) {
                            System.out.println("非常抱歉,这本书已经被借出,不在馆内");
                        }
                        //如果这本书没有被借出
                        else {
                            System.out.println("请选择是否要借阅这本书:    任意内容 > 借阅 , 0 > 取消");
                             String choice = in.next();
                            if(choice.equals("0")) {
                                System.out.println("好了,已经取消,请告诉小图接下来的指示:");
                            }
                            else {
                                System.out.println("好了,你借阅这本书成功,请告诉小图接下来的指示:");
                                books[i].setStatus(false);
                                System.out.println(books[i]);
//                                //跳出找书的for循环
//                                i=bookList.getCount();
                            }
                        }
                        break;
                    }
                    //没有找到
                    else if(i == bookList.getCount()-1) {
                        System.out.println("非常抱歉,小图没有在书库找到这本书,请你重新输入书名:");
                        break;
                    }
                }
            }
        }
        System.out.println("本次借阅操作结束");
        return;
    }
}

归还书籍

输入书籍名字,在书架找到这本书,设置这本书的是否在馆状态为 True

package com.LibraryManagementSystem.BookOperation;

import com.LibraryManagementSystem.Book.Book;
import com.LibraryManagementSystem.Book.BookList;

import java.io.Serializable;
import java.util.Scanner;

//归还一本书
public class ReturnBook implements Serializable {
    Scanner in = new Scanner(System.in);

    public void work(BookList bookList) {
        Book[] books = bookList.getBooks(); //获取书架中存储书的数组
        while (true) {
            System.out.println("请输入你想要归还的书籍的书名,或者输入 0 返回");
            String name = in.next();
            if(name.equals("0")) {
                System.out.println("返回");
                break;
            }
            else {
                int i=0;
                for(i=0;i<bookList.getCount();i++) {
                    //找到了要归还的书籍
                    if (books[i].getName().equals(name)) {
                        System.out.println("小图在书架找到了这本书:"+'\n'+books[i]);
                        //如果这本书原已经在馆内
                        if( books[i].getStatus() ) {
                            System.out.println("这本书正在馆内,无需归还哦");
                            break;
                        }
                        //如果这本书不在馆内
                        else {
                            System.out.println("确认现在归还这本书吗:    任意内容 > 归还 , 0 > 取消");
                            String choice = in.next();
                            if(choice.equals("0")) {
                                System.out.println("已经取消,请告诉小图接下来的指示:");
//                                //跳出找书的for循环
//                                i=bookList.getCount();
                            }
                            else {
                                System.out.println("好了,归还这本书成功,请告诉小图接下来的指示:");
                                books[i].setStatus(true);
                                System.out.println(books[i]);
//                                //跳出找书的for循环
//                                i=bookList.getCount();
                            }
                        }
                        break;
                    }
//                    //如果书本已经在馆内
//                    if( k!=-1 && books[k].getStatus() ) {
//                        break;
//                    }
                    //没有找到
                    else if(i == bookList.getCount()-1) {
                        System.out.println("没有找到这本书!请重新输入书名:");
                        break;
                    }
                }
            }
        }
        System.out.println("本次归还操作结束,请告诉小图接下来的指示:");
        return;
    }
}

增加书籍

输入书的编号、名字、作者,新建对应的书籍对象,设置是否在馆状态为是,将其加入书架

package com.LibraryManagementSystem.BookOperation;

import com.LibraryManagementSystem.Book.Book;
import com.LibraryManagementSystem.Book.BookList;

import java.io.Serializable;
import java.util.Scanner;

//增加一本书到书架中
public class AddBook implements Serializable {

    Scanner in = new Scanner(System.in);

    public void work(BookList bookList) {
        System.out.println("增加书籍");
        int count = bookList.getCount();
        int size = bookList.getSIZE();
//        int bookNum=-1; //默认输入的编号有误
//        int choice=-1;  //默认输入的命令有误
        if (count == size) {
            System.out.println("当前书架已满,无法添加书籍");
        } else {
            while (true) {
//                while(true) {
//

                System.out.println("是否要添加一本书籍进入书架:    任意内容 > 添加  ,  0 > 返回");
                String choice = in.next();
                if (choice.equals("0")) {
                    System.out.println("返回");
                    break;
                }
//                else if (choice.equals("1")) {
                System.out.println("你选择了添加:");
                System.out.println("请输入要添加的书籍的编号:");
                String bookNum = in.next();
                System.out.println("请输入要添加的书籍的书名:");
                String bookName = in.next();
                System.out.println("请输入要添加的书籍的作者:");
                String bookAuthor = in.next();
                Book book = new Book(bookNum, bookName, bookAuthor, false);
                System.out.println(book);
                System.out.println("是否确定添加这本书到书架中?   任意内容 > 添加  ,  0 > 取消Add");
                String choice1 = in.next();
                if(choice1.equals("0")){
                    System.out.println("取消成功,请选择下一步操作:");

                }
                else {
                    bookList.setBooks(count++, book);
                    book.setStatus(true);
                    System.out.println(bookList.getBook(count - 1));
                    System.out.println("好了,小图已经把这本书放入书架了,请选择下一步操作:");
                }
            }
        }
        System.out.println("本次添加书籍操作结束");
        return;
    }

}

//  此处用if-else语句更便捷。switch语句不方便退出外部的while循环,需要在switch外加if判断是否需要退出while循环



//                    switch (choice) {
//                        case "0" :
//                            System.out.println("你选择了不添加!");
//                            break;
//                        case "1" :
//                            System.out.println("你选择了添加:");
//                            System.out.println("请输入要添加的书籍的编号:");
//                            String bookNum  = in.next();
//                            System.out.println("请输入要添加的书籍的书名:");
//                            String bookName = in.next();
//                            System.out.println("请输入要添加的书籍的作者:");
//                            String bookAuthor = in.next();
//                            Book book = new Book(bookNum,bookName,bookAuthor,true);
//                            bookList.setBooks(count++,book);
//                            System.out.println(bookList.getBook(count-1));
//                            System.out.println("添加此书成功!   请选择下一步操作:");
//                            break;
//                        default :
//                            System.out.println("未读取到有效命令,请重新输入:");
//                            break;


//
//                    System.out.println("你输入的 "+unusage+" 不是可用命令,请重新输入!");
//
//
//                            System.out.println("你输入的编号 "+unusage+" 不是数字,请重新输入!");

//                    try {
//                    } catch(Exception e) {
//
//                    }
//                    finally {
//                        if(choice!=-1){
//                            break;
//                        }
//                        String unusage = in.next();
//                        }
//                }
//                if(choice == 0) {
//                    choice=-1;  //恢复输入的命令有误的默认
//                    break;
//                }
//                else {
//                    while(true) {
//
//                        try {
//                            bookNum = in.nextInt();
//                        } catch(Exception e) {
//
//                        }
//                        finally {
//                            if(bookNum!=-1){
//                                bookNum=-1; //恢复输入的编号有误的默认
//                                break;
//                            }
//                            String unusage = in.next();
//                        }
//                    }


//                    System.out.println("请输入要添加的书籍的书名:");
//                    String bookName = in.next();
//                    System.out.println("请输入要添加的书籍的作者:");
//                    String bookAuthor = in.next();
//                    Book book = new Book(bookNum,bookName,bookAuthor,true);
//                    bookList.setBooks(count++,book);
//                    System.out.println(bookList.getBook(count-1));
//                    System.out.println("本次添加书籍成功!   请选择下一步操作:");
//                    choice = -1;    //恢复输入的命令有误的默认

删除书籍

输入书籍名字,在书架找到这本书,设置这本书编号外的属性为空

package com.LibraryManagementSystem.BookOperation;

import com.LibraryManagementSystem.Book.Book;
import com.LibraryManagementSystem.Book.BookList;

import java.io.Serializable;
import java.util.Scanner;

//删除书架中的一本书
public class DeleteBook implements Serializable {
    Scanner in = new Scanner(System.in);

    public void work(BookList bookList) {
        Book[] books = bookList.getBooks(); //获取书架中存储书的数组
        while (true) {
            System.out.println("请输入你想要删除的书籍的书名,或者输入 0 返回");
            String name = in.next();
            if(name.equals("0")) {
                System.out.println("返回");
                break;
            }
            else {
                int i;
                for( i=0 ; i<bookList.getCount() ; i++ ) {
                    if (books[i].getName().equals(name)) { //找到了要删除的书籍
                        System.out.println("小图在书架找到了这本书:"+'\n'+books[i]);
                        System.out.println("请选择是否要删除这本书:1 > 删除 , 任意内容 > 取消");
                        String choice = in.next();
                        if(choice.equals("1")) {
                            System.out.println("好了,删除成功,请告诉小图接下来的指示:");    //删除数组元素(被删除的元素的后面的元素前移)
                            for( int j=i+1 ; j<bookList.getCount() ; j++ ) {
                                books[i++] = books[j++];
                            }
                            int temp = bookList.getCount()-1;
                            bookList.setCount(temp);
                        }
                        else {
                            System.out.println("好了,已经取消,请告诉小图接下来的指示:");
                        }
                        break;
                    }
                    else if(i == bookList.getCount()-1) {    //没有找到这本书
                        System.out.println("非常抱歉,小图没有在书架上找到这本书,请你重新输入书名:");
                        break;
                    }
                }
            }
        }
        System.out.println("本次删除操作结束,请告诉小图接下来的指示:");
        return;
    }
}

改动书籍

输入书的名字,在书架中找到这本书,选择更改其属性

package com.LibraryManagementSystem.BookOperation;

import com.LibraryManagementSystem.Book.Book;
import com.LibraryManagementSystem.Book.BookList;

import java.io.Serializable;
import java.util.Scanner;

//改动书架中的一本书
public class AlterBook implements Serializable {
    Scanner in = new Scanner(System.in);

    public void work(BookList bookList) {
        Book[] books = bookList.getBooks(); //获取书架中存储书的数组
         while (true) {
             System.out.println("请输入你想要更改的书籍的书名,或者输入 0 返回");
             String name = in.next();
             if(name.equals("0")) {
                 System.out.println("返回");
                 break;
             }
             for(int i=0;i<bookList.getCount();i++) {
                 //找到了要改动的书籍
                 if (books[i].getName().equals(name)) {
                     System.out.println("小图在书架找到了这本书:"+'\n'+books[i]);
                     while(true) {
                         System.out.println("请选择你要对这本书进行的更改:    1 > 更改编号, 2 > 更改书名, 3 > 更改作者, 4 > 更改是否在库状态 , 任意内容 > 不更改");
                         String choice = in.next();
                                 switch (choice) {
                                     case "1" :
                                         System.out.println("目前编号为:"+books[i].getNum()+" ,请输入你要为其更改到的编号:");
                                         String bookNum = in.next();
                                         books[i].setNum(bookNum);
                                         System.out.println("成功将《"+books[i].getName()+"》的编号改为"+bookNum);
                                         System.out.println("目前这本书的信息:");
                                         System.out.println(books[i]);
                                         break;
                                     case "2" :
                                         System.out.println("目前书名为:"+books[i].getName()+" ,请输入你要为其更改到的书名:");
                                         String bookName = in.next();
                                         String formalBookName = books[i].getName();
                                         books[i].setName(bookName);
                                         System.out.println("成功将《"+formalBookName+"》的书名改为"+bookName);
                                         System.out.println("目前这本书的信息:");
                                         System.out.println(books[i]);
                                         break;
                                     case "3" :
                                         System.out.println("目前作者为:"+books[i].getAuthor()+" ,请输入你要为其更改到的作者:");
                                         String bookAuthor = in.next();
                                         books[i].setAuthor(bookAuthor);
                                         System.out.println("成功将《"+books[i].getName()+"》的作者改为"+bookAuthor);
                                         System.out.println("目前这本书的信息:");
                                         System.out.println(books[i]);
                                         break;
                                     case "4" :
                                         System.out.println("目前是否在库状态为:"+books[i].getStatus()+" ,请输入你要为其更改到的是否在库状态:");
                                         boolean bookStatus = in.nextBoolean();
                                         books[i].setStatus(bookStatus);
                                         System.out.println("成功将《"+books[i].getName()+"》的是否在库状态改为"+bookStatus);
                                         System.out.println("目前这本书的信息:");
                                         System.out.println(books[i]);
                                         break;
                                     default :
                                         System.out.println("好了,不对这本书进行更改,请告诉小图接下来的指示:");
                                         work(bookList);
                                         break;
                                 }
                                 break;
                      }
                 }
                 //没有找到
                 else if(i == bookList.getCount()) {
                     System.out.println("非常抱歉,小图没有在书架没有找到这本书");
                     break;
                 }
             }
         }
         return;
    }
}


用户的操作

学生用户操作菜单

package com.LibraryManagementSystem.UserOperation;

import com.LibraryManagementSystem.Book.BookList;
import com.LibraryManagementSystem.BookOperation.BorrowBook;
import com.LibraryManagementSystem.BookOperation.ReturnBook;
import com.LibraryManagementSystem.BookOperation.SearchBook;
import com.LibraryManagementSystem.BookOperation.ShowBookList;
import com.LibraryManagementSystem.User.Librarian.LibrarianList;
import com.LibraryManagementSystem.User.Student.StudentList;
import com.LibraryManagementSystem.User.Teacher.TeacherList;

import java.util.Scanner;

public class StudentChooseOperations {

    Scanner in = new Scanner(System.in);

    //操作方法
    ShowBookList showBookList = new ShowBookList();
    SearchBook searchBook = new SearchBook();
    BorrowBook borrowBook = new BorrowBook();
    ReturnBook returnBook = new ReturnBook();
    Exit exit = new Exit();


    //选择做操作的方法
    public void work(BookList bookList, LibrarianList librarianList, TeacherList teacherList, StudentList studentList ) {

        while( true ) {
            System.out.println("===================================================================================================");
            System.out.println("    请输入序号选择你要进行的操作: 1 > 展示书架 , 2 > 查询书籍 , 3 > 借阅书籍 , 4 > 归还书籍 , 0 > 退出");
            System.out.println("===================================================================================================");
            String choice = in.next();
            switch ( choice ) {
                case "0" :
                    exit.work(bookList,librarianList,teacherList,studentList);
                    break;
                case "1" :
                    showBookList.work(bookList);
                    break;
                case "2" :
                    searchBook.work(bookList);
                    break;
                case "3" :
                    borrowBook.work(bookList);
                    break;
                case "4" :
                    returnBook.work(bookList);
                    break;
                case "逍遥游" :
                    showXiaoYaoYou();
                    break;
                case "滕王阁序" :
                    showTengWangGeXu();
                    break;
                case "孔雀东南飞" :
                    showKongQueDongNanFei();
                    break;
                default:
                    System.out.println("小图没有获取到有效命令,请小主重新输入:");
                    break;
            }
        }
    }

    //彩蛋《逍遥游》
    public void showXiaoYaoYou() {
        System.out.println();
        System.out.println("《逍遥游》————庄子");
        System.out.println();
        System.out.println("  北冥有鱼,其名为鲲。鲲之大,不知其几千里也;化而为鸟,其名为鹏。鹏之背,不知其几千里也;怒而飞,其翼若垂\n" +
                "天之云。是鸟也,海运则将徙于南冥。南冥者,天池也。《齐谐》者,志怪者也。《谐》之言曰:“鹏之徙于南冥也,水击三千里,抟扶摇\n" +
                "而上者九万里,去以六月息者也。”野马也,尘埃也,生物之以息相吹也。天之苍苍,\n" +
                "其正色邪?其远而无所至极邪?其视下也,亦若是则已矣。且夫水之积也不厚,则其负大舟也无力。覆杯水于坳堂之上,则芥为之舟;置\n" +
                "杯焉则胶,水浅而舟大也。风之积也不厚,则其负大翼也无力。故九万里,则风斯在下矣,而后乃今培风;背负青天,而莫之夭阏者,而\n" +
                "后乃今将图南。蜩与学鸠笑之曰:“我决起而飞,抢榆枋而止,时则不至,\n" +
                "而控于地而已矣,奚以之九万里而南为?”适莽苍者,三餐而反,腹犹果然;适百里者,宿舂粮;适千里者,三月聚粮。之二虫又何知!\n" +
                "小知不及大知,小年不及大年。奚以知其然也?朝菌不知晦朔,蟪蛄不知春秋,此小年也。楚之南有冥灵者,以五百岁为春,五百岁为秋\n" +
                ";上古有大椿者,以八千岁为春,八千岁为秋。此大年也。而彭祖乃今以久\n" +
                "特闻,众人匹之,不亦悲乎?\n" +
                "\n" +
                "  汤之问棘也是已:“穷发之北,有冥海者,天池也。有鱼焉,其广数千里,未有知其修者,其名为鲲。有鸟焉,其名为鹏,背若泰山,\n" +
                "翼若垂天之云;抟扶摇羊角而上者九万里,绝云气,负青天,然后图南,且适南冥也。斥鷃笑之曰:‘彼且奚适也?我腾跃而上,不过数\n" +
                "仞而下,翱翔蓬蒿之间,此亦飞之至也。而彼且奚适也?’”此小大之辩也。\n" +
                "\n" +
                "  故夫知效一官、行比一乡、德合一君、而征一国者,其自视也,亦若此矣。而宋荣子犹然笑之。且举世誉之而不加劝,举世非之而不\n" +
                "加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世,未数数然也。虽然,犹有未树也。夫列子御风而行,泠然善也,旬有五日而后\n" +
                "反。彼于致福者,未数数然也。此虽免乎行,犹有所待者也。若夫乘天地之\n" +
                "正,而御六气之辩,以游无穷者,彼且恶乎待哉?故曰:至人无己,神人无功,圣人无名。\n" +
                "\n" +
                "  尧让天下于许由,曰:“日月出矣,而爝火不息;其于光也,不亦难乎?时雨降矣,而犹浸灌;其于泽也,不亦劳乎?夫子立而天下治,\n" +
                "而我犹尸之;吾自视缺然,请致天下。”许由曰:“子治天下,天下既已治也;而我犹代子,吾将为名乎?名者,实之宾也;吾将为宾乎?\n" +
                "鹪鹩巢于深林,不过一枝;偃鼠饮河,不过满腹。归休乎君,予无所用天\n" +
                "下为!庖人虽不治庖,尸祝不越樽俎而代之矣!”\n" +
                "\n" +
                "  肩吾问于连叔曰:“吾闻言于接舆,大而无当,往而不反。吾惊怖其言。犹河汉而无极也;大有径庭,不近人情焉。”连叔曰:“其言谓\n" +
                "何哉?”曰:“藐姑射之山,有神人居焉。肌肤若冰雪,淖约若处子,不食五谷,吸风饮露,乘云气,御飞龙,而游乎四海之外;其神凝,\n" +
                "使物不疵疠而年谷熟。吾以是狂而不信也。”连叔曰:“然。瞽者无以与乎文\n" +
                "章之观,聋者无以与乎钟鼓之声。岂唯形骸有聋盲哉?夫知亦有之!是其言也,犹时女也。之人也,之德也,将旁礴万物以为一,世蕲乎乱,\n" +
                "孰弊弊焉以天下为事!之人也,物莫之伤:大浸稽天而不溺,大旱金石流,土山焦而不热。是其尘垢秕糠将犹陶铸尧舜者也,孰肯以物为事?\n" +
                "”宋人资章甫而适诸越,越人断发文身,无所用之。尧治天下之民,平\n" +
                "海内之政,往见四子藐姑射之山,汾水之阳,窅然丧其天下焉。\n" +
                "\n" +
                "  惠子谓庄子曰:“魏王贻我大瓠之种,我树之成,而实五石。以盛水浆,其坚不能自举也。剖之以为瓢,则瓠落无所容。非不呺然大也\n," +
                "吾为其无用而掊之。”庄子曰:“夫子固拙于用大矣。宋人有善为不皲手之药者,世世以洴澼絖为事。客闻之,请买其方百金。聚族而谋\n" +
                "曰:‘我世世为洴澼絖,不过数金,今一朝而鬻技百金,请与之。’客得之,以\n" +
                "说吴王。越有难,吴王使之将,冬,与越人水战,大败越人。裂地而封之。能不皲手一也,或以封,或不免于洴澼絖,则所用之异也。\n" +
                "今子有五石之瓠,何不虑以为大樽,而浮乎江湖,而忧其瓠落无所容?则夫子犹有蓬之心也夫!”\n" +
                "\n" +
                "  惠子谓庄子曰:“吾有大树,人谓之樗。其大本拥肿而不中绳墨,其小枝卷曲而不中规矩,立之途,匠者不顾。今子之言大而无用,\n" +
                "众所同去也。”庄子曰:“子独不见狸狌乎?卑身而伏,以候敖者;东西跳梁,不辟高下;中于机辟,死于罔罟。今夫斄牛,其大若垂天\n" +
                "之云。此能为大矣,而不能执鼠。今子有大树,患其无用,何不树之于无何有之乡\n" +
                ",广莫之野,彷徨乎无为其侧,逍遥乎寝卧其下。不夭斤斧,物无害者,无所可用,安所困苦哉!”");
        System.out.println();
        return;
    }

    //彩蛋《滕王阁序》
    public void showTengWangGeXu() {
        System.out.println();
        System.out.println("《滕王阁序》————王勃");
        System.out.println();
        System.out.println("  豫章故郡,洪都新府。星分翼轸,地接衡庐。襟三江而带五湖,控蛮荆而引瓯越。物华天宝,龙光射牛斗之墟;人杰地灵,\n" +
                "徐孺下陈蕃之榻。雄州雾列,俊采星驰。台隍枕夷夏之交,宾主尽东南之美。都督阎公之雅望,棨戟遥临;宇文新州之懿范,襜帷暂驻。\n" +
                "十旬休假,胜友如云;千里逢迎,高朋满座。腾蛟起凤,孟学士之词宗;紫电青霜,王将军之武库。家君作宰,路出名区;童子何知,\n" +
                "躬逢胜饯。(豫章故郡 一作:南昌故郡;青霜 一作:清霜)\n" +
                "  时维九月,序属三秋。潦水尽而寒潭清,烟光凝而暮山紫。俨骖騑于上路,访风景于崇阿。临帝子之长洲,得天人之旧馆。层峦耸翠,\n" +
                "上出重霄;飞阁流丹,下临无地。鹤汀凫渚,穷岛屿之萦回;桂殿兰宫,即冈峦之体势。(天人 一作:仙人;层峦 一作:层台;即冈, \n" +
                "一作:列冈;飞阁流丹 一作:飞阁翔丹)\n" +
                "\n" +
                "  披绣闼,俯雕甍,山原旷其盈视,川泽纡其骇瞩。闾阎扑地,钟鸣鼎食之家;舸舰弥津,青雀黄龙之舳。云销雨霁,彩彻区明。落霞\n" +
                "与孤鹜齐飞,秋水共长天一色。渔舟唱晚,响穷彭蠡之滨,雁阵惊寒,声断衡阳之浦。(轴 通:舳;迷津 一作:弥津;云销雨霁,彩彻\n" +
                "区明 一作:虹销雨霁,彩彻云衢)\n" +
                "\n" +
                "  遥襟甫畅,逸兴遄飞。爽籁发而清风生,纤歌凝而白云遏。睢园绿竹,气凌彭泽之樽;邺水朱华,光照临川之笔。四美具,二难并。\n" +
                "穷睇眄于中天,极娱游于暇日。天高地迥,觉宇宙之无穷;兴尽悲来,识盈虚之有数。望长安于日下,目吴会于云间。地势极而南溟深,\n" +
                "天柱高而北辰远。关山难越,谁悲失路之人;萍水相逢,尽是他乡之客。怀帝阍而不见," +
                "奉宣室以何年?(遥襟甫畅 一作:遥吟俯畅)\n" +
                "\n" +
                "  嗟乎!时运不齐,命途多舛。冯唐易老,李广难封。屈贾谊于长沙,非无圣主;窜梁鸿于海曲,岂乏明时?所赖君子见机,达人知命。\n" +
                "老当益壮,宁移白首之心?穷且益坚,不坠青云之志。酌贪泉而觉爽,处涸辙以犹欢。北海虽赊,扶摇可接;东隅已逝,桑榆非晚。孟尝\n" +
                "高洁,空余报国之情;阮籍猖狂,岂效穷途之哭!(见机 一作:安贫;以犹欢 一作:" +
                "而相欢)\n" +
                "\n" +
                "  勃,三尺微命,一介书生。无路请缨,等终军之弱冠;有怀投笔,慕宗悫之长风。舍簪笏于百龄,奉晨昏于万里。非谢家之宝树,\n" +
                "接孟氏之芳邻。他日趋庭,叨陪鲤对;今兹捧袂,喜托龙门。杨意不逢,抚凌云而自惜;钟期既遇,奏流水以何惭?\n" +
                "\n" +
                "  呜呼!胜地不常,盛筵难再;兰亭已矣,梓泽丘墟。临别赠言,幸承恩于伟饯;登高作赋,是所望于群公。敢竭鄙怀,恭疏短引;\n" +
                "一言均赋,四韵俱成。请洒潘江,各倾陆海云尔。");
        System.out.println();
    }

    //彩蛋《孔雀东南飞》
    public void showKongQueDongNanFei() {
        System.out.println();
        System.out.println("《孔雀东南飞》————乐府诗集");
        System.out.println();
        System.out.println("  汉末建安中,庐江府小吏焦仲卿妻刘氏,为仲卿母所遣,自誓不嫁。其家逼之,乃投水而死。仲卿闻之,亦自缢于庭树。\n" +
                "时人伤之,为诗云尔。\n" +
                "\n" +
                "  孔雀东南飞,五里一徘徊。\n" +
                "\n" +
                "  “十三能织素,十四学裁衣。十五弹箜篌,十六诵诗书。十七为君妇,心中常苦悲。君既为府吏,守节情不移。贱妾留空房,相见常日稀。\n" +
                "鸡鸣入机织,夜夜不得息。三日断五匹,大人故嫌迟。非为织作迟,君家妇难为!妾不堪驱使,徒留无所施。便可白公姥,及时相遣归。”\n" +
                "\n" +
                "  府吏得闻之,堂上启阿母:“儿已薄禄相,幸复得此妇。结发同枕席,黄泉共为友。共事二三年,始尔未为久。女行无偏斜,何意致不厚。”\n" +
                "\n" +
                "  阿母谓府吏:“何乃太区区!此妇无礼节,举动自专由。吾意久怀忿,汝岂得自由!东家有贤女,自名秦罗敷。可怜体无比,阿母为汝求。\n" +
                "便可速遣之,遣去慎莫留!”\n" +
                "\n" +
                "  府吏长跪告:“伏惟启阿母。今若遣此妇,终老不复取!”\n" +
                "\n" +
                "  阿母得闻之,槌床便大怒:“小子无所畏,何敢助妇语!吾已失恩义,会不相从许!”\n" +
                "\n" +
                "  府吏默无声,再拜还入户。举言谓新妇,哽咽不能语:“我自不驱卿,逼迫有阿母。卿但暂还家,吾今且报府。不久当归还,还必相迎取。\n" +
                "以此下心意,慎勿违吾语。”\n" +
                "\n" +
                "  新妇谓府吏:“勿复重纷纭。往昔初阳岁,谢家来贵门。奉事循公姥,进止敢自专?昼夜勤作息,伶俜萦苦辛。谓言无罪过,供养卒大恩;\n" +
                "仍更被驱遣,何言复来还!妾有绣腰襦,葳蕤自生光;红罗复斗帐,四角垂香囊;箱帘六七十,绿碧青丝绳,物物各自异,种种在其中。\n" +
                "人贱物亦鄙,不足迎后人,留待作遗施,于今无会因。时时为安慰,久久莫相忘!”\n" +
                "\n" +
                "  鸡鸣外欲曙,新妇起严妆。著我绣夹裙,事事四五通。足下蹑丝履,头上玳瑁光。腰若流纨素,耳著明月珰。指如削葱根,口如含朱丹。\n" +
                "纤纤作细步,精妙世无双。\n" +
                "\n" +
                "  上堂拜阿母,阿母怒不止。“昔作女儿时,生小出野里。本自无教训,兼愧贵家子。受母钱帛多,不堪母驱使。今日还家去,念母劳家里。\n" +
                "”却与小姑别,泪落连珠子。“新妇初来时,小姑始扶床;今日被驱遣,小姑如我长。勤心养公姥,好自相扶将。初七及下九,嬉戏莫相忘。”\n" +
                "出门登车去,涕落百余行。\n" +
                "\n" +
                "  府吏马在前,新妇车在后。隐隐何甸甸,俱会大道口。下马入车中,低头共耳语:“誓不相隔卿,且暂还家去。吾今且赴府,不久当还归。\n" +
                "誓天不相负!”\n" +
                "\n" +
                "  新妇谓府吏:“感君区区怀!君既若见录,不久望君来。君当作磐石,妾当作蒲苇。蒲苇纫如丝,磐石无转移。我有亲父兄,性行暴如雷,\n" +
                "恐不任我意,逆以煎我怀。”举手长劳劳,二情同依依 。\n" +
                "\n" +
                "  入门上家堂,进退无颜仪。阿母大拊掌,不图子自归:“十三教汝织,十四能裁衣,十五弹箜篌,十六知礼仪,十七遣汝嫁,谓言无誓违。\n" +
                "汝今何罪过,不迎而自归?”兰芝惭阿母:“儿实无罪过。”阿母大悲摧。\n" +
                "\n" +
                "  还家十余日,县令遣媒来。云有第三郎,窈窕世无双。年始十八九,便言多令才。\n" +
                "\n" +
                "  阿母谓阿女:“汝可去应之。”\n" +
                "\n" +
                "  阿女含泪答:“兰芝初还时,府吏见丁宁,结誓不别离。今日违情义,恐此事非奇。自可断来信,徐徐更谓之。”\n" +
                "\n" +
                "  阿母白媒人:“贫贱有此女,始适还家门。不堪吏人妇,岂合令郎君?幸可广问讯,不得便相许。”\n" +
                "\n" +
                "  媒人去数日,寻遣丞请还,说有兰家女,承籍有宦官。云有第五郎,娇逸未有婚。遣丞为媒人,主簿通语言。直说太守家,有此令郎君,\n" +
                "既欲结大义,故遣来贵门。\n" +
                "\n" +
                "  阿母谢媒人:“女子先有誓,老姥岂敢言!”\n" +
                "\n" +
                "  阿兄得闻之,怅然心中烦。举言谓阿妹:“作计何不量!先嫁得府吏,后嫁得郎君。否泰如天地,足以荣汝身。不嫁义郎体,其往欲何云?”\n" +
                "  兰芝仰头答:“理实如兄言。谢家事夫婿,中道还兄门。处分适兄意,那得自任专!虽与府吏要,渠会永无缘。登即相许和,便可作婚姻。”\n" +
                "\n" +
                "  媒人下床去。诺诺复尔尔。还部白府君:“下官奉使命,言谈大有缘。”府君得闻之,心中大欢喜。视历复开书,便利此月内,六合正相应。\n" +
                "良吉三十日,今已二十七,卿可去成婚。交语速装束,络绎如浮云。青雀白鹄舫,四角龙子幡。婀娜随风转,金车玉作轮。踯躅青骢马,\n" +
                "流苏金镂鞍。赍钱三百万,皆用青丝穿。杂彩三百匹,交广市鲑珍。从人四五百,郁郁登郡门。\n" +
                "\n" +
                "  阿母谓阿女:“适得府君书,明日来迎汝。何不作衣裳?莫令事不举!”\n" +
                "\n" +
                "  阿女默无声,手巾掩口啼,泪落便如泻。移我琉璃榻,出置前窗下。左手持刀尺,右手执绫罗。朝成绣夹裙,晚成单罗衫。晻晻日欲暝,\n" +
                "愁思出门啼。\n" +
                "\n" +
                "  府吏闻此变,因求假暂归。未至二三里,摧藏马悲哀。新妇识马声,蹑履相逢迎。怅然遥相望,知是故人来。举手拍马鞍,嗟叹使心\n" +
                "伤:“自君别我后,人事不可量。果不如先愿,又非君所详。我有亲父母,逼迫兼弟兄。以我应他人,君还何所望!”\n" +
                "\n" +
                "  府吏谓新妇:“贺卿得高迁!磐石方且厚,可以卒千年;蒲苇一时纫,便作旦夕间。卿当日胜贵,吾独向黄泉!”\n" +
                "\n" +
                "  新妇谓府吏:“何意出此言!同是被逼迫,君尔妾亦然。黄泉下相见,勿违今日言!”执手分道去,各各还家门。生人作死别,恨恨那\n" +
                "可论?念与世间辞,千万不复全!\n" +
                "\n" +
                "  府吏还家去,上堂拜阿母:“今日大风寒,寒风摧树木,严霜结庭兰。儿今日冥冥,令母在后单。故作不良计,勿复怨鬼神!命如南山石,\n" +
                "四体康且直!”\n" +
                "\n" +
                "  阿母得闻之,零泪应声落:“汝是大家子,仕宦于台阁。慎勿为妇死,贵贱情何薄!东家有贤女,窈窕艳城郭,阿母为汝求,便复在旦夕。”\n" +
                "\n" +
                "  府吏再拜还,长叹空房中,作计乃尔立。转头向户里,渐见愁煎迫。\n" +
                "\n" +
                "  其日牛马嘶,新妇入青庐。奄奄黄昏后,寂寂人定初。“我命绝今日,魂去尸长留!”揽裙脱丝履,举身赴清池。\n" +
                "\n" +
                "  府吏闻此事,心知长别离。徘徊庭树下,自挂东南枝。\n" +
                "\n" +
                "  两家求合葬,合葬华山傍。东西植松柏,左右种梧桐。枝枝相覆盖,叶叶相交通。中有双飞鸟,自名为鸳鸯。仰头相向鸣,夜夜达五更。\n" +
                "行人驻足听,寡妇起彷徨。多谢后世人,戒之慎勿忘。");
        System.out.println();
    }

}

教师用户操作菜单

package com.LibraryManagementSystem.UserOperation;

import com.LibraryManagementSystem.Book.BookList;
import com.LibraryManagementSystem.BookOperation.BorrowBook;
import com.LibraryManagementSystem.BookOperation.ReturnBook;
import com.LibraryManagementSystem.BookOperation.SearchBook;
import com.LibraryManagementSystem.BookOperation.ShowBookList;
import com.LibraryManagementSystem.User.Librarian.LibrarianList;
import com.LibraryManagementSystem.User.Student.StudentList;
import com.LibraryManagementSystem.User.Teacher.TeacherList;

import java.util.Scanner;

public class TeacherChooseOperations {

    Scanner in = new Scanner(System.in);


    //存储操作方法的数组
    ShowBookList showBookList = new ShowBookList();
    SearchBook searchBook = new SearchBook();
    BorrowBook borrowBook = new BorrowBook();
    ReturnBook returnBook = new ReturnBook();
    Exit exit = new Exit();


    //选择做操作的方法
    public void work(BookList bookList, LibrarianList librarianList, TeacherList teacherList, StudentList studentList) {
        while( true ) {
            System.out.println("================================================================================================");
            System.out.println("    请输入序号选择你要进行的操作: 1 > 展示书架 ,2 > 查询书籍 ,3 > 借阅书籍 ,4 > 归还书籍 , 0 > 退出");
            System.out.println("================================================================================================");
            String choice = in.next();
            switch ( choice ) {
                case "0" :
                    exit.work(bookList,librarianList,teacherList,studentList);
                    break;
                case "1" :
                    showBookList.work(bookList);
                    break;
                case "2" :
                    searchBook.work(bookList);
                    break;
                case "3" :
                    borrowBook.work(bookList);
                    break;
                case "4" :
                    returnBook.work(bookList);
                    break;
                case "逍遥游" :
                    showXiaoYaoYou();
                    break;
                case "滕王阁序" :
                    showTengWangGeXu();
                    break;
                case "孔雀东南飞" :
                    showKongQueDongNanFei();
                    break;
                default:
                    System.out.println("小图没有获取到有效命令,请小主重新输入:");
                    break;
            }
        }
    }

    //彩蛋《逍遥游》
    public void showXiaoYaoYou() {
        System.out.println();
        System.out.println("《逍遥游》————庄子");
        System.out.println();
        System.out.println("  北冥有鱼,其名为鲲。鲲之大,不知其几千里也;化而为鸟,其名为鹏。鹏之背,不知其几千里也;怒而飞,其翼若垂\n" +
                "天之云。是鸟也,海运则将徙于南冥。南冥者,天池也。《齐谐》者,志怪者也。《谐》之言曰:“鹏之徙于南冥也,水击三千里,抟扶摇\n" +
                "而上者九万里,去以六月息者也。”野马也,尘埃也,生物之以息相吹也。天之苍苍,\n" +
                "其正色邪?其远而无所至极邪?其视下也,亦若是则已矣。且夫水之积也不厚,则其负大舟也无力。覆杯水于坳堂之上,则芥为之舟;置\n" +
                "杯焉则胶,水浅而舟大也。风之积也不厚,则其负大翼也无力。故九万里,则风斯在下矣,而后乃今培风;背负青天,而莫之夭阏者,而\n" +
                "后乃今将图南。蜩与学鸠笑之曰:“我决起而飞,抢榆枋而止,时则不至,\n" +
                "而控于地而已矣,奚以之九万里而南为?”适莽苍者,三餐而反,腹犹果然;适百里者,宿舂粮;适千里者,三月聚粮。之二虫又何知!\n" +
                "小知不及大知,小年不及大年。奚以知其然也?朝菌不知晦朔,蟪蛄不知春秋,此小年也。楚之南有冥灵者,以五百岁为春,五百岁为秋\n" +
                ";上古有大椿者,以八千岁为春,八千岁为秋。此大年也。而彭祖乃今以久\n" +
                "特闻,众人匹之,不亦悲乎?\n" +
                "\n" +
                "  汤之问棘也是已:“穷发之北,有冥海者,天池也。有鱼焉,其广数千里,未有知其修者,其名为鲲。有鸟焉,其名为鹏,背若泰山,\n" +
                "翼若垂天之云;抟扶摇羊角而上者九万里,绝云气,负青天,然后图南,且适南冥也。斥鷃笑之曰:‘彼且奚适也?我腾跃而上,不过数\n" +
                "仞而下,翱翔蓬蒿之间,此亦飞之至也。而彼且奚适也?’”此小大之辩也。\n" +
                "\n" +
                "  故夫知效一官、行比一乡、德合一君、而征一国者,其自视也,亦若此矣。而宋荣子犹然笑之。且举世誉之而不加劝,举世非之而不\n" +
                "加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世,未数数然也。虽然,犹有未树也。夫列子御风而行,泠然善也,旬有五日而后\n" +
                "反。彼于致福者,未数数然也。此虽免乎行,犹有所待者也。若夫乘天地之\n" +
                "正,而御六气之辩,以游无穷者,彼且恶乎待哉?故曰:至人无己,神人无功,圣人无名。\n" +
                "\n" +
                "  尧让天下于许由,曰:“日月出矣,而爝火不息;其于光也,不亦难乎?时雨降矣,而犹浸灌;其于泽也,不亦劳乎?夫子立而天下治,\n" +
                "而我犹尸之;吾自视缺然,请致天下。”许由曰:“子治天下,天下既已治也;而我犹代子,吾将为名乎?名者,实之宾也;吾将为宾乎?\n" +
                "鹪鹩巢于深林,不过一枝;偃鼠饮河,不过满腹。归休乎君,予无所用天\n" +
                "下为!庖人虽不治庖,尸祝不越樽俎而代之矣!”\n" +
                "\n" +
                "  肩吾问于连叔曰:“吾闻言于接舆,大而无当,往而不反。吾惊怖其言。犹河汉而无极也;大有径庭,不近人情焉。”连叔曰:“其言谓\n" +
                "何哉?”曰:“藐姑射之山,有神人居焉。肌肤若冰雪,淖约若处子,不食五谷,吸风饮露,乘云气,御飞龙,而游乎四海之外;其神凝,\n" +
                "使物不疵疠而年谷熟。吾以是狂而不信也。”连叔曰:“然。瞽者无以与乎文\n" +
                "章之观,聋者无以与乎钟鼓之声。岂唯形骸有聋盲哉?夫知亦有之!是其言也,犹时女也。之人也,之德也,将旁礴万物以为一,世蕲乎乱,\n" +
                "孰弊弊焉以天下为事!之人也,物莫之伤:大浸稽天而不溺,大旱金石流,土山焦而不热。是其尘垢秕糠将犹陶铸尧舜者也,孰肯以物为事?\n" +
                "”宋人资章甫而适诸越,越人断发文身,无所用之。尧治天下之民,平\n" +
                "海内之政,往见四子藐姑射之山,汾水之阳,窅然丧其天下焉。\n" +
                "\n" +
                "  惠子谓庄子曰:“魏王贻我大瓠之种,我树之成,而实五石。以盛水浆,其坚不能自举也。剖之以为瓢,则瓠落无所容。非不呺然大也\n," +
                "吾为其无用而掊之。”庄子曰:“夫子固拙于用大矣。宋人有善为不皲手之药者,世世以洴澼絖为事。客闻之,请买其方百金。聚族而谋\n" +
                "曰:‘我世世为洴澼絖,不过数金,今一朝而鬻技百金,请与之。’客得之,以\n" +
                "说吴王。越有难,吴王使之将,冬,与越人水战,大败越人。裂地而封之。能不皲手一也,或以封,或不免于洴澼絖,则所用之异也。\n" +
                "今子有五石之瓠,何不虑以为大樽,而浮乎江湖,而忧其瓠落无所容?则夫子犹有蓬之心也夫!”\n" +
                "\n" +
                "  惠子谓庄子曰:“吾有大树,人谓之樗。其大本拥肿而不中绳墨,其小枝卷曲而不中规矩,立之途,匠者不顾。今子之言大而无用,\n" +
                "众所同去也。”庄子曰:“子独不见狸狌乎?卑身而伏,以候敖者;东西跳梁,不辟高下;中于机辟,死于罔罟。今夫斄牛,其大若垂天\n" +
                "之云。此能为大矣,而不能执鼠。今子有大树,患其无用,何不树之于无何有之乡\n" +
                ",广莫之野,彷徨乎无为其侧,逍遥乎寝卧其下。不夭斤斧,物无害者,无所可用,安所困苦哉!”");
        System.out.println();
        return;
    }

    //彩蛋《滕王阁序》
    public void showTengWangGeXu() {
        System.out.println();
        System.out.println("《滕王阁序》————王勃");
        System.out.println();
        System.out.println("  豫章故郡,洪都新府。星分翼轸,地接衡庐。襟三江而带五湖,控蛮荆而引瓯越。物华天宝,龙光射牛斗之墟;人杰地灵,\n" +
                "徐孺下陈蕃之榻。雄州雾列,俊采星驰。台隍枕夷夏之交,宾主尽东南之美。都督阎公之雅望,棨戟遥临;宇文新州之懿范,襜帷暂驻。\n" +
                "十旬休假,胜友如云;千里逢迎,高朋满座。腾蛟起凤,孟学士之词宗;紫电青霜,王将军之武库。家君作宰,路出名区;童子何知,\n" +
                "躬逢胜饯。(豫章故郡 一作:南昌故郡;青霜 一作:清霜)\n" +
                "  时维九月,序属三秋。潦水尽而寒潭清,烟光凝而暮山紫。俨骖騑于上路,访风景于崇阿。临帝子之长洲,得天人之旧馆。层峦耸翠,\n" +
                "上出重霄;飞阁流丹,下临无地。鹤汀凫渚,穷岛屿之萦回;桂殿兰宫,即冈峦之体势。(天人 一作:仙人;层峦 一作:层台;即冈, \n" +
                "一作:列冈;飞阁流丹 一作:飞阁翔丹)\n" +
                "\n" +
                "  披绣闼,俯雕甍,山原旷其盈视,川泽纡其骇瞩。闾阎扑地,钟鸣鼎食之家;舸舰弥津,青雀黄龙之舳。云销雨霁,彩彻区明。落霞\n" +
                "与孤鹜齐飞,秋水共长天一色。渔舟唱晚,响穷彭蠡之滨,雁阵惊寒,声断衡阳之浦。(轴 通:舳;迷津 一作:弥津;云销雨霁,彩彻\n" +
                "区明 一作:虹销雨霁,彩彻云衢)\n" +
                "\n" +
                "  遥襟甫畅,逸兴遄飞。爽籁发而清风生,纤歌凝而白云遏。睢园绿竹,气凌彭泽之樽;邺水朱华,光照临川之笔。四美具,二难并。\n" +
                "穷睇眄于中天,极娱游于暇日。天高地迥,觉宇宙之无穷;兴尽悲来,识盈虚之有数。望长安于日下,目吴会于云间。地势极而南溟深,\n" +
                "天柱高而北辰远。关山难越,谁悲失路之人;萍水相逢,尽是他乡之客。怀帝阍而不见," +
                "奉宣室以何年?(遥襟甫畅 一作:遥吟俯畅)\n" +
                "\n" +
                "  嗟乎!时运不齐,命途多舛。冯唐易老,李广难封。屈贾谊于长沙,非无圣主;窜梁鸿于海曲,岂乏明时?所赖君子见机,达人知命。\n" +
                "老当益壮,宁移白首之心?穷且益坚,不坠青云之志。酌贪泉而觉爽,处涸辙以犹欢。北海虽赊,扶摇可接;东隅已逝,桑榆非晚。孟尝\n" +
                "高洁,空余报国之情;阮籍猖狂,岂效穷途之哭!(见机 一作:安贫;以犹欢 一作:" +
                "而相欢)\n" +
                "\n" +
                "  勃,三尺微命,一介书生。无路请缨,等终军之弱冠;有怀投笔,慕宗悫之长风。舍簪笏于百龄,奉晨昏于万里。非谢家之宝树,\n" +
                "接孟氏之芳邻。他日趋庭,叨陪鲤对;今兹捧袂,喜托龙门。杨意不逢,抚凌云而自惜;钟期既遇,奏流水以何惭?\n" +
                "\n" +
                "  呜呼!胜地不常,盛筵难再;兰亭已矣,梓泽丘墟。临别赠言,幸承恩于伟饯;登高作赋,是所望于群公。敢竭鄙怀,恭疏短引;\n" +
                "一言均赋,四韵俱成。请洒潘江,各倾陆海云尔。");
        System.out.println();
    }

    //彩蛋《孔雀东南飞》
    public void showKongQueDongNanFei() {
        System.out.println();
        System.out.println("《孔雀东南飞》————乐府诗集");
        System.out.println();
        System.out.println("  汉末建安中,庐江府小吏焦仲卿妻刘氏,为仲卿母所遣,自誓不嫁。其家逼之,乃投水而死。仲卿闻之,亦自缢于庭树。\n" +
                "时人伤之,为诗云尔。\n" +
                "\n" +
                "  孔雀东南飞,五里一徘徊。\n" +
                "\n" +
                "  “十三能织素,十四学裁衣。十五弹箜篌,十六诵诗书。十七为君妇,心中常苦悲。君既为府吏,守节情不移。贱妾留空房,相见常日稀。\n" +
                "鸡鸣入机织,夜夜不得息。三日断五匹,大人故嫌迟。非为织作迟,君家妇难为!妾不堪驱使,徒留无所施。便可白公姥,及时相遣归。”\n" +
                "\n" +
                "  府吏得闻之,堂上启阿母:“儿已薄禄相,幸复得此妇。结发同枕席,黄泉共为友。共事二三年,始尔未为久。女行无偏斜,何意致不厚。”\n" +
                "\n" +
                "  阿母谓府吏:“何乃太区区!此妇无礼节,举动自专由。吾意久怀忿,汝岂得自由!东家有贤女,自名秦罗敷。可怜体无比,阿母为汝求。\n" +
                "便可速遣之,遣去慎莫留!”\n" +
                "\n" +
                "  府吏长跪告:“伏惟启阿母。今若遣此妇,终老不复取!”\n" +
                "\n" +
                "  阿母得闻之,槌床便大怒:“小子无所畏,何敢助妇语!吾已失恩义,会不相从许!”\n" +
                "\n" +
                "  府吏默无声,再拜还入户。举言谓新妇,哽咽不能语:“我自不驱卿,逼迫有阿母。卿但暂还家,吾今且报府。不久当归还,还必相迎取。\n" +
                "以此下心意,慎勿违吾语。”\n" +
                "\n" +
                "  新妇谓府吏:“勿复重纷纭。往昔初阳岁,谢家来贵门。奉事循公姥,进止敢自专?昼夜勤作息,伶俜萦苦辛。谓言无罪过,供养卒大恩;\n" +
                "仍更被驱遣,何言复来还!妾有绣腰襦,葳蕤自生光;红罗复斗帐,四角垂香囊;箱帘六七十,绿碧青丝绳,物物各自异,种种在其中。\n" +
                "人贱物亦鄙,不足迎后人,留待作遗施,于今无会因。时时为安慰,久久莫相忘!”\n" +
                "\n" +
                "  鸡鸣外欲曙,新妇起严妆。著我绣夹裙,事事四五通。足下蹑丝履,头上玳瑁光。腰若流纨素,耳著明月珰。指如削葱根,口如含朱丹。\n" +
                "纤纤作细步,精妙世无双。\n" +
                "\n" +
                "  上堂拜阿母,阿母怒不止。“昔作女儿时,生小出野里。本自无教训,兼愧贵家子。受母钱帛多,不堪母驱使。今日还家去,念母劳家里。\n" +
                "”却与小姑别,泪落连珠子。“新妇初来时,小姑始扶床;今日被驱遣,小姑如我长。勤心养公姥,好自相扶将。初七及下九,嬉戏莫相忘。”\n" +
                "出门登车去,涕落百余行。\n" +
                "\n" +
                "  府吏马在前,新妇车在后。隐隐何甸甸,俱会大道口。下马入车中,低头共耳语:“誓不相隔卿,且暂还家去。吾今且赴府,不久当还归。\n" +
                "誓天不相负!”\n" +
                "\n" +
                "  新妇谓府吏:“感君区区怀!君既若见录,不久望君来。君当作磐石,妾当作蒲苇。蒲苇纫如丝,磐石无转移。我有亲父兄,性行暴如雷,\n" +
                "恐不任我意,逆以煎我怀。”举手长劳劳,二情同依依 。\n" +
                "\n" +
                "  入门上家堂,进退无颜仪。阿母大拊掌,不图子自归:“十三教汝织,十四能裁衣,十五弹箜篌,十六知礼仪,十七遣汝嫁,谓言无誓违。\n" +
                "汝今何罪过,不迎而自归?”兰芝惭阿母:“儿实无罪过。”阿母大悲摧。\n" +
                "\n" +
                "  还家十余日,县令遣媒来。云有第三郎,窈窕世无双。年始十八九,便言多令才。\n" +
                "\n" +
                "  阿母谓阿女:“汝可去应之。”\n" +
                "\n" +
                "  阿女含泪答:“兰芝初还时,府吏见丁宁,结誓不别离。今日违情义,恐此事非奇。自可断来信,徐徐更谓之。”\n" +
                "\n" +
                "  阿母白媒人:“贫贱有此女,始适还家门。不堪吏人妇,岂合令郎君?幸可广问讯,不得便相许。”\n" +
                "\n" +
                "  媒人去数日,寻遣丞请还,说有兰家女,承籍有宦官。云有第五郎,娇逸未有婚。遣丞为媒人,主簿通语言。直说太守家,有此令郎君,\n" +
                "既欲结大义,故遣来贵门。\n" +
                "\n" +
                "  阿母谢媒人:“女子先有誓,老姥岂敢言!”\n" +
                "\n" +
                "  阿兄得闻之,怅然心中烦。举言谓阿妹:“作计何不量!先嫁得府吏,后嫁得郎君。否泰如天地,足以荣汝身。不嫁义郎体,其往欲何云?”\n" +
                "  兰芝仰头答:“理实如兄言。谢家事夫婿,中道还兄门。处分适兄意,那得自任专!虽与府吏要,渠会永无缘。登即相许和,便可作婚姻。”\n" +
                "\n" +
                "  媒人下床去。诺诺复尔尔。还部白府君:“下官奉使命,言谈大有缘。”府君得闻之,心中大欢喜。视历复开书,便利此月内,六合正相应。\n" +
                "良吉三十日,今已二十七,卿可去成婚。交语速装束,络绎如浮云。青雀白鹄舫,四角龙子幡。婀娜随风转,金车玉作轮。踯躅青骢马,\n" +
                "流苏金镂鞍。赍钱三百万,皆用青丝穿。杂彩三百匹,交广市鲑珍。从人四五百,郁郁登郡门。\n" +
                "\n" +
                "  阿母谓阿女:“适得府君书,明日来迎汝。何不作衣裳?莫令事不举!”\n" +
                "\n" +
                "  阿女默无声,手巾掩口啼,泪落便如泻。移我琉璃榻,出置前窗下。左手持刀尺,右手执绫罗。朝成绣夹裙,晚成单罗衫。晻晻日欲暝,\n" +
                "愁思出门啼。\n" +
                "\n" +
                "  府吏闻此变,因求假暂归。未至二三里,摧藏马悲哀。新妇识马声,蹑履相逢迎。怅然遥相望,知是故人来。举手拍马鞍,嗟叹使心\n" +
                "伤:“自君别我后,人事不可量。果不如先愿,又非君所详。我有亲父母,逼迫兼弟兄。以我应他人,君还何所望!”\n" +
                "\n" +
                "  府吏谓新妇:“贺卿得高迁!磐石方且厚,可以卒千年;蒲苇一时纫,便作旦夕间。卿当日胜贵,吾独向黄泉!”\n" +
                "\n" +
                "  新妇谓府吏:“何意出此言!同是被逼迫,君尔妾亦然。黄泉下相见,勿违今日言!”执手分道去,各各还家门。生人作死别,恨恨那\n" +
                "可论?念与世间辞,千万不复全!\n" +
                "\n" +
                "  府吏还家去,上堂拜阿母:“今日大风寒,寒风摧树木,严霜结庭兰。儿今日冥冥,令母在后单。故作不良计,勿复怨鬼神!命如南山石,\n" +
                "四体康且直!”\n" +
                "\n" +
                "  阿母得闻之,零泪应声落:“汝是大家子,仕宦于台阁。慎勿为妇死,贵贱情何薄!东家有贤女,窈窕艳城郭,阿母为汝求,便复在旦夕。”\n" +
                "\n" +
                "  府吏再拜还,长叹空房中,作计乃尔立。转头向户里,渐见愁煎迫。\n" +
                "\n" +
                "  其日牛马嘶,新妇入青庐。奄奄黄昏后,寂寂人定初。“我命绝今日,魂去尸长留!”揽裙脱丝履,举身赴清池。\n" +
                "\n" +
                "  府吏闻此事,心知长别离。徘徊庭树下,自挂东南枝。\n" +
                "\n" +
                "  两家求合葬,合葬华山傍。东西植松柏,左右种梧桐。枝枝相覆盖,叶叶相交通。中有双飞鸟,自名为鸳鸯。仰头相向鸣,夜夜达五更。\n" +
                "行人驻足听,寡妇起彷徨。多谢后世人,戒之慎勿忘。");
        System.out.println();
    }


}

管理员用户操作菜单

package com.LibraryManagementSystem.UserOperation;

import com.LibraryManagementSystem.Book.BookList;
import com.LibraryManagementSystem.BookOperation.*;
import com.LibraryManagementSystem.User.Librarian.LibrarianList;
import com.LibraryManagementSystem.User.Student.StudentList;
import com.LibraryManagementSystem.User.Teacher.TeacherList;

import java.util.Scanner;

public class LibrarianChooseOperations {

    Scanner in = new Scanner(System.in);

    //操作方法
    ShowBookList showBookList = new ShowBookList();
    SearchBook searchBook = new SearchBook();
    AddBook addBook = new AddBook();
    DeleteBook deleteBook = new DeleteBook();
    AlterBook alterBook = new AlterBook();
    SortBook sortBook = new SortBook();
    SetUserKey setUserKey = new SetUserKey();
    SetUser setUser = new SetUser();
    DeleteUser deleteUser = new DeleteUser();
    Exit exit = new Exit();

    //选择做操作的方法
    public void work(BookList bookList, LibrarianList librarianList, TeacherList teacherList, StudentList studentList) {
        while( true ) {
            System.out.println("===========================================================================================================================================================================");
            System.out.println("    请输入序号选择你要进行的操作: 1 > 展示书架 ,2 > 查询书籍 ,3 > 增加书籍 ,4 > 删除书籍 ,5 > 改动书籍信息 ,6 > 整理书架  7 > 更改用户密码 ,8 > 更改用户属性 9 > 删除用户账号 , 0 > 退出 ");
            System.out.println("===========================================================================================================================================================================");
            String choice = in.next();
            switch ( choice ) {
                case "0" :
                    exit.work(bookList,librarianList,teacherList,studentList);
                    break;
                case "1" :
                    showBookList.work(bookList);
                    break;
                case "2" :
                    searchBook.work(bookList);
                    break;
                case "3" :
                    addBook.work(bookList);
                    break;
                case "4" :
                    deleteBook.work(bookList);
                    break;
                case "5" :
                    alterBook.work(bookList);
                    break;
                case "6" :
                    sortBook.work(bookList);
                    break;
                case "7" :
                    setUserKey.work(teacherList,studentList);
                    break;
                case "8" :
                    setUser.work(teacherList,studentList);
                    break;
                case "9" :
                    deleteUser.work(teacherList,studentList);
                    break;
                default:
                    System.out.println("小图没有获取到有效命令,请小主重新输入:");
                    break;
            }
        }
    }
}

修改用户属性

package com.LibraryManagementSystem.UserOperation;

import com.LibraryManagementSystem.User.Student.StudentList;
import com.LibraryManagementSystem.User.Teacher.TeacherList;

import java.util.Scanner;

public class SetUser {

    Scanner in = new Scanner(System.in);

    //更改用户属性的方法
    public void work(TeacherList teacherList, StudentList studentList) {
        System.out.println("请选择要更改属性的用户类型:  1 > 教师用户 , 2 > 学生用户  , 任意内容 > 取消");
        String choice = in.next();

        //更改教师用户属性
        if(choice.equals("1")) {
            while(true) {
                System.out.println("请输入教师工号:");
                String teacherId = in.next();
                for(int i=0;i< teacherList.getCount();i++) {
                    //找到了该用户
                    if (teacherId.equals(teacherList.getTeacher(i).getId())) {
                        System.out.println(teacherList.getTeachers()[i]);
                        while (true) {
                            System.out.println("请选择要更改的属性:  1 > 编号 , 2 > 姓名 , 3 > 部门 , 任意内容 > 取消");
                            String choice11 = in.next();
                            switch (choice11) {
                                case "1" :
                                    System.out.println("请输入要改到的编号:");
                                    String newId = in.next();
                                    teacherList.getTeacher(i).setId(newId);
                                    System.out.println("更改成功:");
                                    System.out.println(teacherList.getTeacher(i));
                                    break;
                                case "2" :
                                    System.out.println("请输入要改到的名字:");
                                    String newName = in.next();
                                    teacherList.getTeacher(i).setName(newName);
                                    System.out.println("更改成功:");
                                    System.out.println(teacherList.getTeacher(i));
                                    break;
                                case "3" :
                                    System.out.println("请输入要改到的部门:");
                                    String newApartment = in.next();
                                    teacherList.getTeacher(i).setApartment(newApartment);
                                    System.out.println("更改成功:");
                                    System.out.println(teacherList.getTeacher(i));
                                    break;

                                default :
                                    System.out.println("取消成功,返回:");
                                    break;
                            }
                            break;
                        }
                        //找到了就for循环并且返回调用方法
                        return;
                    }
                    else if(i==teacherList.getCount()-1) {
                        System.out.println("未找到该教师用户,请重试:");
                        break;
                    }
                }
            }
        }

        //更改学生用户属性
        if(choice.equals("2")) {
            while(true) {
                System.out.println("请输入学生学号:");
                String studentId = in.next();
                for(int i=0;i< studentList.getCount();i++) {
                    //找到了该用户
                    if (studentId.equals(studentList.getStudent(i).getId())) {
                        System.out.println(studentList.getStudents()[i]);
                        System.out.println("请选择要更改的属性:  1 > 编号 , 2 > 姓名 , 3 > 学院 , 4 > 专业 , 任意内容 > 取消");
                        String choice11 = in.next();
                        switch (choice11) {
                            case "1" :
                                System.out.println("请输入要改到的编号:");
                                String newId = in.next();
                                studentList.getStudent(i).setId(newId);
                                System.out.println("更改成功:");
                                System.out.println(studentList.getStudent(i));
                                break;
                            case "2" :
                                System.out.println("请输入要改到的名字:");
                                String newName = in.next();
                                studentList.getStudent(i).setName(newName);
                                System.out.println("更改成功:");
                                System.out.println(studentList.getStudent(i));
                                break;
                            case "3" :
                                System.out.println("请输入要改到的学院:");
                                String newCollege = in.next();
                                studentList.getStudent(i).setCollege(newCollege);
                                System.out.println("更改成功:");
                                System.out.println(studentList.getStudent(i));
                                break;
                            case "4" :
                                System.out.println("请输入要改到的学专业:");
                                String newMajore = in.next();
                                studentList.getStudent(i).setMajor(newMajore);
                                System.out.println("更改成功:");
                                System.out.println(studentList.getStudent(i));
                                break;
                            default :
                                System.out.println("取消成功,返回:");
                                break;
                        }

                        //找到了就跳出for循环并且返回调用方法
                        return;
                    }
                    if(i==studentList.getCount()-1) {
                        System.out.println("未找到该学生用户,请重试:");
                        break;
                    }
                }
            }
        }

    }
}

修改用户密码

package com.LibraryManagementSystem.UserOperation;

import com.LibraryManagementSystem.User.Student.StudentList;
import com.LibraryManagementSystem.User.Teacher.TeacherList;

import java.util.Scanner;

public class SetUserKey {

    Scanner in = new Scanner(System.in);

    //更改用户密码的方法
    public void work(TeacherList teacherList, StudentList studentList) {
        System.out.println("更改用户密码:");
        System.out.println("请选择用户种类:    1 > 教师用户 , 2 > 学生用户");
        String choice = in.next();
        //更改教师用户密码
        if(choice.equals("1")) {
            System.out.println("请输入该教师用户的工号:");
            String TeacherId = in.next();
            for(int i=0;i< teacherList.getCount();i++) {
                //找到了该用户
                if(TeacherId.equals(teacherList.getTeacher(i).getId())) {
                    System.out.println(teacherList.getTeachers()[i]);
                    System.out.println("请输入该用户的新密码:");
                    String newKey = in.next();
                    teacherList.getTeachers()[i].setKey(newKey);
                    System.out.println("设置新密码成功,返回:");
                    break;
                }
                if(i == teacherList.getCount()-1 )  {
                    System.out.println("未找到该教师用户,请重新输入:");
                    break;
                }
            }
        }
        //更改学生用户密码
        else if(choice.equals("2")) {
            System.out.println("请输入该学生用户的学号:");
            String studentId = in.next();
            for(int i=0;i<studentList.getCount();i++) {
                //找到了该用户
                if(studentId.equals(studentList.getStudents()[i].getId())) {
                    System.out.println(studentList.getStudents()[i]);
                    System.out.println("请输入该用户的新密码:");
                    String newKey = in.next();
                    studentList.getStudents()[i].setKey(newKey);
                    System.out.println("设置新密码成功,返回:");
                    break;
                }
                else if(i == studentList.getCount()-1 )  {
                    System.out.println("未找到该学生用户,请重新输入:");
                    break;
                }
            }
        }
        else {
            System.out.println("未获取到有效指令,返回:");
        }

        return;
    }

}

删除用户

package com.LibraryManagementSystem.UserOperation;

import com.LibraryManagementSystem.User.Student.StudentList;
import com.LibraryManagementSystem.User.Teacher.TeacherList;

import java.util.Scanner;

public class DeleteUser {

    Scanner in = new Scanner(System.in);
    public void remove() {  }


    //删除用户账号的方法
    public void work(TeacherList teacherList, StudentList studentList) {
        System.out.println("删除用户:");
        System.out.println("请选择用户种类:    1 > 教师用户 , 2 > 学生用户");
        String choice = in.next();
        //删除教师用户
        if(choice.equals("1")) {
            System.out.println("请输入该教师用户的工号:");
            String TeacherId = in.next();
            for(int i=0;i< teacherList.getCount();i++) {
                //找到了要删除的用户
                if (teacherList.getTeachers()[i].getId().equals(TeacherId)) {
                    System.out.println("小图找到了这个账号:"+'\n'+teacherList.getTeachers()[i]);
                    System.out.println("请选择是否要删除这个账号:1 > 删除 , 任意内容 > 取消");
                    String choice1 = in.next();
                    if(choice1.equals("1")) {
                        System.out.println("好了,删除成功,请告诉小图接下来的指示:");    //删除数组元素(被删除的元素的后面的元素前移)
                        for( int j=i+1 ; j<teacherList.getCount() ; j++ ) {
                            teacherList.getTeachers()[i++] = teacherList.getTeachers()[j++];
                        }
                        int temp = teacherList.getCount()-1;
                        teacherList.setCount(temp);
                    }
                    else {
                        System.out.println("好了,已经取消,请告诉小图接下来的指示:");
                    }
                    break;
                }
                else if(i == teacherList.getCount()-1 )  {
                    System.out.println("未找到该教师用户,请重新输入:");
                    break;
                }
            }
        }
        //更改学生用户密码
        else if(choice.equals("2")) {
            System.out.println("请输入该学生用户的学号:");
            String studentId = in.next();
            for(int i=0;i<studentList.getCount();i++) {
                //找到了该用户
                if(studentId.equals(studentList.getStudents()[i].getId())) {
                    System.out.println("小图找到了这个账号:"+'\n'+studentList.getStudents()[i]);
                    System.out.println("请选择是否要删除这个账号:1 > 删除 , 任意内容 > 取消");
                    String choice2 = in.next();
                    if(choice2.equals("1")) {
                        System.out.println("好了,删除成功,请告诉小图接下来的指示:");    //删除数组元素(被删除的元素的后面的元素前移)
                        for( int j=i+1 ; j<studentList.getCount() ; j++ ) {
                            studentList.getStudents()[i++] = studentList.getStudents()[j++];
                        }
                        int temp = studentList.getCount()-1;
                        studentList.setCount(temp);
                    }
                    else {
                        System.out.println("好了,已经取消,请告诉小图接下来的指示:");
                    }
                    break;
                }
                else if(i == studentList.getCount()-1 )  {
                    System.out.println("未找到该学生用户,请重新输入:");
                    break;
                }
            }
        }
        else {
            System.out.println("未获取到有效指令,返回:");
        }

        return;
    }

}

引导、注册、登录与退出

引导

系统首页

package com.LibraryManagementSystem.Run;

import com.LibraryManagementSystem.Book.BookList;
import com.LibraryManagementSystem.User.Librarian.LibrarianList;
import com.LibraryManagementSystem.User.Student.StudentList;
import com.LibraryManagementSystem.User.Teacher.TeacherList;
import com.LibraryManagementSystem.UserOperation.Exit;

import java.util.Scanner;

//引导
public class Guide {

    Scanner in = new Scanner(System.in);

    //欢迎语
    static {
        System.out.println();
        System.out.println("    欢迎使用本图书馆管理系统,小图听候您的指令~");
        System.out.println("=========================================================================================");
    }

    //引导方法
    public void guide(BookList bookList, LibrarianList librarianList, TeacherList teacherList, StudentList studentList) {
        System.out.println( "请输入序号选择您要进行的操作: " +
                "1 > 登录 , " +
                "2 > 注册  , " +
                "0 > 退出系统");
        String choice = in.next();
        switch ( choice ) {
            case "0":
                Exit exit = new Exit();
                exit.work(bookList, librarianList, teacherList, studentList);
                break;
            case "1":
                new Enter().enter(bookList, librarianList, teacherList, studentList);
                break;
            case "2":
                new Registration().registration(bookList, librarianList, teacherList, studentList);
                break;
            default:
                System.out.println("小图没有获取到有效指令,请重新输入:");
                guide(bookList, librarianList, teacherList, studentList);
                break;
        }
    }

}

注册

1.管理员
----管理员账号无法在本系统注册,需要在上级管理系统进行设置
2.教师用户
----教师用户类型数组中,各教师用户账号已经设置好工号为编号,其他属性为空。教师用户注册时输入工号,系统找出对应的编号所在的账号,输入并设置其他属性,默认密码为账号的编号,即工号
3.学生用户
----学生用户类型数组中,各学生用户账号已经设置好学号为编号,其他属性为空。学生用户注册时输入学号,系统找出对应的学号所在的账号,输入并设置其他属性,默认密码为账号的编号,即学号

package com.LibraryManagementSystem.Run;

import com.LibraryManagementSystem.Book.BookList;
import com.LibraryManagementSystem.User.Librarian.LibrarianList;
import com.LibraryManagementSystem.User.Student.Student;
import com.LibraryManagementSystem.User.Student.StudentList;
import com.LibraryManagementSystem.User.Teacher.Teacher;
import com.LibraryManagementSystem.User.Teacher.TeacherList;

import java.util.Scanner;

//注册
public class Registration {

    Scanner in = new Scanner(System.in);

    //注册方法
    public  void registration(BookList bookList, LibrarianList librarianList, TeacherList teacherList, StudentList studentList) {
        System.out.println("注册:");
        System.out.println("请输入序号选择您的身份:1 > 教师 , 2 > 学生 , 0 > 取消 ");
        String choice = in.next();
        switch ( choice ) {
            case "0":
                System.out.println("好了,已经取消,请告诉小图接下来的指示:");
                new Guide().guide(bookList,librarianList,teacherList,studentList);
                break;

            //教师用户注册
            case "1":
                System.out.println("教师用户注册:");
                System.out.println("您获得的Id是:"+String.valueOf(Integer.valueOf(teacherList.getTeachers()[teacherList.getCount()-1].getId())+1));
                System.out.println("请输入您的名字:");
                String name = in.next();
                System.out.println("请输入您所在的部门:");
                String apartment = in.next();
                System.out.println("您将注册:");
                teacherList.getTeachers()[teacherList.getCount()] = new Teacher(String.valueOf(Integer.valueOf(teacherList.getTeachers()[teacherList.getCount()-1].getId())+1),String.valueOf(Integer.valueOf(teacherList.getTeachers()[teacherList.getCount()-1].getId())+1),name,apartment);
                System.out.println(teacherList.getTeachers()[teacherList.getCount()]);
                System.out.println("是否确定注册? 任意内容 > 确定, 0 > 取消 ");
                String choice1 = in.next();
                if( choice1.equals("0") ){
                    teacherList.remove(teacherList.getTeachers()[teacherList.getCount()]);
                    System.out.println("好了,已经取消此次注册,回到引导界面:");
                    new Guide().guide(bookList,librarianList,teacherList,studentList);
                }
                else {
                    int temp = teacherList.getCount()+1;
                    teacherList.setCount(temp);
                    System.out.println("初始密码是工号");
                    System.out.println("注册成功,进入登录界面:");
                    new Enter().enter(bookList,librarianList,teacherList,studentList);
                }
                break;

            //学生用户注册
            case "2":
                System.out.println("学生用户注册:");
                System.out.println("您的Id是:"+String.valueOf(Integer.valueOf(studentList.getStudents()[studentList.getCount()-1].getId())+1));
                System.out.println("请输入您的名字:");
                String studentName = in.next();
                System.out.println("请输入您所在的学院:");
                String college = in.next();
                System.out.println("请输入您所修的专业:");
                String stuMajor = in.next();
                System.out.println("您将注册:");
                studentList.getStudents()[studentList.getCount()] = new Student(String.valueOf(Integer.valueOf(studentList.getStudents()[studentList.getCount()-1].getId())+1),String.valueOf(Integer.valueOf(studentList.getStudents()[studentList.getCount()-1].getId())+1),studentName,college,stuMajor);
                System.out.println(studentList.getStudents()[studentList.getCount()]);
                System.out.println("是否确定注册? 任意内容 > 确定, 0 > 取消 ");
                String choice2 = in.next();
                if( choice2.equals("0") ){
                    studentList.remove(studentList.getStudents()[studentList.getCount()]);
                    System.out.println("好了,已经取消此次注册,回到引导界面:");
                    new Guide().guide(bookList,librarianList,teacherList,studentList);
                }
                else {
                    int temp = studentList.getCount()+1;
                    studentList.setCount(temp);
                    System.out.println("初始密码是学号");
                    System.out.println("注册成功,进入登录界面:");
                    new Enter().enter(bookList,librarianList,teacherList,studentList);
                }
                break;
        }
    }


}



登录

1.管理员登录
----管理员登录需要提供工号和密码,然后读出管理员类型数组中的所有管理员对象,先匹配管理员的工号,再对工号匹配的对象验证密码
2.教师登录
----教师用户登录需要提供工号和密码,然后读出教师类型数组中的所有教师对象,先匹配教师用户的工号,再对工号匹配的对象验证密码
3.学生登录
----学生用户登录需要提供学号和密码,然后读出学生类型数组中的所有学生对象,先匹配学生用户的学号,再对学号匹配的对象验证密码

 package com.LibraryManagementSystem.Run;

import com.LibraryManagementSystem.Book.BookList;
import com.LibraryManagementSystem.User.Librarian.LibrarianList;
import com.LibraryManagementSystem.User.Student.StudentList;
import com.LibraryManagementSystem.User.Teacher.TeacherList;
import com.LibraryManagementSystem.UserOperation.LibrarianChooseOperations;
import com.LibraryManagementSystem.UserOperation.StudentChooseOperations;
import com.LibraryManagementSystem.UserOperation.TeacherChooseOperations;

import java.util.Scanner;

//登录
public class Enter {

    Scanner in = new Scanner(System.in);
    //登录方法
    public void enter(BookList bookList, LibrarianList librarianList, TeacherList teacherList, StudentList studentList) {
        System.out.println("登录:");
        System.out.println("请输入序号选择您的身份:1 > 管理员 , 2 > 教师 , 3 > 学生 , 0 > 取消 ");
        String choice = in.next();
        switch ( choice ) {
            case "0":
                System.out.println("好了,已经取消,请告诉小图接下来的指示:");
                new Guide().guide( bookList,librarianList, teacherList, studentList );
                break;

            //管理员登录
            case "1":
                while(true) {
                    System.out.println("请输入您的管理员Id,或者输入 0 返回上一步");
                    String librarianId = in.next();
                    if( librarianId.equals("0") ) {
                        System.out.println("返回上一步:");
                        enter(bookList,librarianList, teacherList, studentList);
                    }
                    //在管理员名单中寻找尝试登陆的用户
                    for (int i = 0; i < librarianList.getCount(); i++) {
                        //找到了该管理员用户
                        if( librarianList.getLibrarians()[i].getId().equals(librarianId) ) {

                            //验证
                            System.out.println("请输入您的密码:");
                            String key1 = in.next();
                            if(!key1.equals(librarianList.getLibrarians()[i].getKey())) {
                                System.out.println("您输入的密码有误,请重试或者与管理员联系");
                                enter(bookList,librarianList,teacherList,studentList);
                                break;
                            }
                            System.out.println("=====================================================================");
                            System.out.println(librarianList.getLibrarians()[i]);
                            System.out.println("=====================================================================");
                            System.out.println("    "+librarianList.getLibrarians()[i].getName()+" ,欢迎您使用小图~");
                            new LibrarianChooseOperations().work(bookList,librarianList,teacherList,studentList);
                            break;
                        }
                    }
                    //没有找到
                    System.out.println("非常抱歉,小图没有找到您输入的Id,请您重新操作:");
                }

            //教师用户登录
            case "2":
                while(true) {
                    System.out.println("请输入您的用户Id,或者输入 0 返回上一步");
                    String teacherId = in.next();
                    if( teacherId.equals("0") ) {
                        System.out.println("返回上一步:");
                        enter(bookList,librarianList, teacherList, studentList);
                    }
                    //在教师用户名单中寻找尝试登陆的用户
                    int i;
                    for (i = 0; i < teacherList.getCount(); i++) {
                        //找到了该教师用户
                        if( teacherList.getTeachers()[i].getId().equals(teacherId) ) {

                            //验证
                            System.out.println("请输入您的密码:");
                            String key2 = in.next();
                            if(!key2.equals(teacherList.getTeachers()[i].getKey())) {
                                System.out.println("您输入的密码有误,请重试或者与管理员联系");
                                enter(bookList,librarianList,teacherList,studentList);
                                break;
                            }
                            System.out.println("=========================================================================");
                            System.out.println(teacherList.getTeachers()[i]);
                            System.out.println("=========================================================================");
                            System.out.println("    "+teacherList.getTeachers()[i].getName()+"老师 , 欢迎您使用小图~");
                            new TeacherChooseOperations().work(bookList,librarianList,teacherList,studentList);
                            break;
                        }
                    }
                    //没有找到
                    System.out.println("非常抱歉,小图没有找到您输入的Id,请您重新操作:");
                }

            //学生用户登录
            case "3":
                while(true) {
                    System.out.println("请输入您的用户Id,或者输入 0 返回上一步");
                    String studentId = in.next();
                    if( studentId.equals("0") ) {
                        System.out.println("返回上一步:");
                        enter(bookList,librarianList, teacherList, studentList);
                    }
                    //在学生用户名单中寻找尝试登陆的用户
                    for (int i = 0; i < studentList.getCount(); i++) {
                        //找到了该学生用户
                        if( studentList.getStudents()[i].getId().equals(studentId) ) {
                            //验证
                            System.out.println("请输入您的密码:");
                            String key3 = in.next();
                            if(!key3.equals(studentList.getStudents()[i].getKey())) {
                                System.out.println("您输入的密码有误,请重试或者与上级系统管理员联系");
                                enter(bookList,librarianList,teacherList,studentList);
                                break;
                            }
                            System.out.println("======================================================================");
                            System.out.println(studentList.getStudents()[i]);
                            System.out.println("=====================================================================");
                            System.out.println("    "+studentList.getStudents()[i].getName()+"同学 , 欢迎你使用小图~");
                            new StudentChooseOperations().work(bookList,librarianList,teacherList,studentList);
                            break;
                        }

                    }
                    //没有找到
                    System.out.println("非常抱歉,小图没有找到您输入的Id,请您重新操作:");

                }
        }

    }

}

            case "2":
                while(true) {
                    System.out.println("请输入您的用户Id,或者输入 0 返回上一步");
                    String teacherId = in.next();
                    if( teacherId.equals("0") ) {
                        System.out.println("返回上一步:");
                        Enter();
                    }
                    //在教师用户名单中寻找尝试登陆的用户
                    int i;
                    for (i = 0; i < teacherList.getCount(); i++) {
                    //找到了该教师用户
                         if( teachers[i].getId().equals(teacherId) ) {

                             //验证
                             System.out.println("请输入您的密码:");
                             String key2 = in.next();
                             if(!key2.equals(teachers[i].getKey())) {
                                 System.out.println("您输入的密码有误,请重试或者与管理员联系");
                                 break;
                             }

                            System.out.println("=========================================================================");
                            System.out.println(teachers[i]);
                            System.out.println("=========================================================================");
                            System.out.println("    "+teachers[i].getName()+"老师 , 欢迎您使用小图~");
                            teachers[i].doOperation(bookList);
                            break;
                        }
                        //没有找到
                        if( i == teacherList.getCount()-1 ) {
                            System.out.println("非常抱歉,小图没有找到您输入的Id,请您重新操作:");
                        }
                    }
                }

            case "3":
                while(true) {
                    System.out.println("请输入您的用户Id,或者输入 0 返回上一步");
                    String studentId = in.next();
                    if( studentId.equals("0") ) {
                        System.out.println("返回上一步:");
                        Enter();
                    }
                    //在学生用户名单中寻找尝试登陆的用户
                    for (int i = 0; i < studentList.getCount(); i++) {
                        //找到了该学生用户
                        if( students[i].getId().equals(studentId) ) {
                            //验证
                            System.out.println("请输入您的密码:");
                            String key3 = in.next();
                            if(!key3.equals(students[i].getKey())) {
                                System.out.println("您输入的密码有误,请重试或者与管理员联系");
                                break;
                            }

                            System.out.println("======================================================================");
                            System.out.println(students[i]);
                            System.out.println("=====================================================================");
                            System.out.println("    "+students[i].getName()+"同学 , 欢迎你使用小图~");
                            students[i].doOperation(bookList);
                            i++;
                            break;
                        }
                        //没有找到
                        else if( i == teacherList.getCount()-1 && !students[i].getId().equals(studentId) ){
                            System.out.println("非常抱歉,小图没有找到您输入的Id,请您重新操作:");
                        }
                    }
                }
        }

    }

退出

退出程序

package com.LibraryManagementSystem.Run;

import com.LibraryManagementSystem.Book.BookList;
import com.LibraryManagementSystem.Date.Serialization;
import com.LibraryManagementSystem.User.Librarian.LibrarianList;
import com.LibraryManagementSystem.User.Student.StudentList;
import com.LibraryManagementSystem.User.Teacher.TeacherList;
import java.io.File;
import java.io.Serializable;
import java.util.Scanner;

//退出程序
public class Exit implements Serializable {

    Scanner in = new Scanner( System.in );

    public void work(BookList bookList, LibrarianList librarianList, TeacherList teacherList, StudentList studentList) {
        System.out.println("亲,你确定要退出程序嘛? 请输入你的选择:  0 > 退出 , 任意内容 > 取消");
        String choice = in.next();
        switch (choice) {
            case "0" :
                System.out.println("好的,退出程序,本次操作结束!拜~~拜~");

                //退出前进行序列化,保存最新数据到硬盘文件中
                Serialization serialization = new Serialization();
                serialization.Serialize(bookList, new File("D://libraryDate//bookListDate.dat"));
                serialization.Serialize(librarianList, new File("D://libraryDate//librarianListDate.dat"));
                serialization.Serialize(teacherList, new File("D://libraryDate//teacherListDate.dat"));
                serialization.Serialize(studentList, new File("D://libraryDate//studentListDate.dat"));

                //退出
                System.exit(1);
            default  :
                System.out.println("已经取消,请告诉小图接下来的指示:");
                break;
        }
        return;
    }

}


数据的保存与读入

序列化:将内存中的数据写入到硬盘

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

//序列化类
public class Serialization {

    //无参构造方法
    public Serialization() {    }

    //序列化方法,传入要序列化的对象和目标文件
    public void Serialize(Object object, File file) {
        //创建对象输出流
        ObjectOutputStream oos = null ;
        //操作流
        try {
            //序列化,把传入方法中的对象写入到硬盘文件中
            oos = new ObjectOutputStream(new FileOutputStream(file));
            oos.writeObject(object);
            oos.flush();

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if(oos != null) {
                try {
                    oos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    }
}

反序列化:将硬盘中的数据读入到内存

package com.LibraryManagementSystem.Date;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;

//反序列化类
public class Deserialization {

    //无参构造方法
    public Deserialization() { }

    //反序列化方法,传入目标文件,返回反序列化的对象
    public Object deserialize(File file) {
        //创建空对象用于接受反序列化对象
        Object object=null;
        //创建对象输入流
        ObjectInputStream ois = null;
        //操作流
        try {
            //反序列化,把对象从硬盘文件读出到内存中
            ois = new ObjectInputStream(new FileInputStream(file));
            object = (Object) ois.readObject();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } finally {
            if (ois != null) {
                try {
                    ois.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        //返回反序列化出来的对象
        return object;
    }

}

测试

package com.LibraryManagementSystem.Test;

import com.LibraryManagementSystem.Run.Login;

import java.io.Serializable;

//测试
public class Main implements Serializable {

    public static void main(String[] args) {

        //进入系统
        Login login = new Login();
        login.login();

    }
}

运行结果

    欢迎使用本图书馆管理系统,小图听候您的指令~
=========================================================================================
请输入序号选择您要进行的操作: 1 > 登录 , 2 > 注册  , 0 > 退出系统
2
注册:
请输入序号选择您的身份:1 > 教师 , 2 > 学生 , 0 > 取消 
2
学生用户注册:
您的Id是:300005
请输入您的名字:
许疏鸿
请输入您所在的学院:
计算机科学与技术
请输入您所修的专业:
软件工程
您将注册:
学生用户 { 编号 : 300005 , 姓名 : 许疏鸿 , 学院 :计算机科学与技术 , 专业 :软件工程 }
是否确定注册? 任意内容 > 确定, 0 > 取消 
q
注册成功,进入登录界面:
登录:
请输入序号选择您的身份:1 > 管理员 , 2 > 教师 , 3 > 学生 , 0 > 取消 
2
请输入您的用户Id,或者输入 0 返回上一步
200001
请输入您的密码:
200001
=========================================================================
教师用户 { 编号 : 200001 , 姓名 : 朱自清 , 部门 : 文学院 } 
=========================================================================
    朱自清老师 , 欢迎您使用小图~
================================================================================================
    请输入序号选择你要进行的操作: 0 > 退出 , 1 > 展示书架 ,2 > 查询书籍 ,3 > 借阅书籍 ,4 > 归还书籍
================================================================================================
1
书架所有书籍展示如下:
书 { 编号: 1001 , 书名: 《 Java从入门到精通 》 , 作者: 明日科技 , 是否在馆: true }
书 { 编号: 1002 , 书名: 《 浮生六记 》 , 作者: 沈复 , 是否在馆: true }
书 { 编号: 1003 , 书名: 《 What Life Should Mean to You 》 , 作者: Alfred Adler , 是否在馆: true }
书 { 编号: 1004 , 书名: 《 飘 》 , 作者: 简·爱 , 是否在馆: true }
本次展示操作完成,请告诉小图接下来的指示:
================================================================================================
    请输入序号选择你要进行的操作: 0 > 退出 , 1 > 展示书架 ,2 > 查询书籍 ,3 > 借阅书籍 ,4 > 归还书籍
================================================================================================
2
查找书籍
请输入你想要查找的书籍的书名,或者输入 0 以取消本次查询操作:
浮生六记
小图在书架找到了这本书,
书 { 编号: 1002 , 书名: 《 浮生六记 》 , 作者: 沈复 , 是否在馆: true }
请输入你想要查找的书籍的书名,或者输入 0 以取消本次查询操作:
0
已经取消
本次查找操作结束,请告诉小图接下来的指示:
================================================================================================
    请输入序号选择你要进行的操作: 0 > 退出 , 1 > 展示书架 ,2 > 查询书籍 ,3 > 借阅书籍 ,4 > 归还书籍
================================================================================================
3
请输入你想要借阅的书籍的书名,或者输入 0 以取消本次借阅操作:
浮生六记
小图找到了这本书:
书 { 编号: 1002 , 书名: 《 浮生六记 》 , 作者: 沈复 , 是否在馆: true }
请选择是否要借阅这本书:    任意内容 > 借阅 , 0 > 取消
q
好了,你借阅这本书成功,请告诉小图接下来的指示:
书 { 编号: 1002 , 书名: 《 浮生六记 》 , 作者: 沈复 , 是否在馆: false }
请输入你想要借阅的书籍的书名,或者输入 0 以取消本次借阅操作:
0
已经取消
本次借阅操作结束,请告诉小图接下来的指示:
================================================================================================
    请输入序号选择你要进行的操作: 0 > 退出 , 1 > 展示书架 ,2 > 查询书籍 ,3 > 借阅书籍 ,4 > 归还书籍
================================================================================================
0
亲,你确定要退出程序嘛? 请输入你的选择:  0 > 退出 , 任意内容 > 取消
0
好的,退出程序,本次操作结束!拜~~拜~

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值