目录

一.Main函数二.用户类三.普通用户类四.管理员类五.图书类六.书架类七.操作类1.操作接口2.增加操作3.删除操作4.查找操作5.展示操作6.借阅操作7.归还操作8.退出系统

总结

这篇图书管理系统是对JavaSE知识总结复习的一个小作业,检测自己对知识的掌握程度。

一.Main函数

public class Main {

public static User login(){

System.out.println("输入你的姓名:");

Scanner scanner = new Scanner(System.in);

String name = scanner.nextLine();

System.out.println("1.管理员 2.普通用户");

System.out.println("输入你的身份");

int choice = scanner.nextInt();

if (choice == 1){

return new Admin(name);

}else

{

return new NormalUser(name);

}

}

public static void main(String[] args) {

BookList bookList = new BookList();

User user = login();

while (true){

int choice = user.menu();

user.doOperation(choice,bookList);

}

}

}

二.用户类

public abstract class User {

private String name;

protected IOperation[] iOperations;

public User(String name){

this.name = name;

IOperation[] iOperations;

}

public abstract int menu();

public void doOperation(int choice,BookList bookList){

IOperation iOperation = iOperations[choice];

iOperation.work(bookList);

}

}

三.普通用户类

public class NormalUser extends User{

public NormalUser(String name) {

super(name);

this.iOperations =new IOperation[]{

new ExitOperation(),

new FindOperation(),

new BorrowOperation(),

new ReturnOperation()

};

}

@Override

public int menu() {

System.out.println("*******管理员菜单*********");

System.out.println("*******1.查找图书*********");

System.out.println("*******2.借阅图书*********");

System.out.println("*******3.归还图书*********");

System.out.println("***0.退出系统****");

System.out.println("请输入你的操作:");

Scanner scanner = new Scanner(System.in);

int choice = scanner.nextInt();

return choice;

}

}

四.管理员类

public class Admin extends User{

public Admin(String name) {

super(name);

this.iOperations =new IOperation[] {

new ExitOperation(),

new FindOperation(),

new AddOperation(),

new DeleOperation(),

new ShouwOperation()

};

}

@Override

public int menu() {

System.out.println("*******管理员菜单*********");

System.out.println("*******1.查找图书*********");

System.out.println("*******2.增加图书*********");

System.out.println("*******3.删除图书*********");

System.out.println("*******4.显示图书*********");

System.out.println("***0.退出系统****");

System.out.println("请输入你的操作:");

Scanner scanner = new Scanner(System.in);

int choice = scanner.nextInt();

return choice;

}

}

五.图书类

public class Book{

//书名 作者 价格 类型 是否借出

private String name;

private String author;

private int price;

private String type;

private Boolean isBorrowed = false;

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 int getPrice() {

return price;

}

public void setPrice(int price) {

this.price = price;

}

public String getType() {

return type;

}

public void setType(String type) {

this.type = type;

}

public Boolean getBorrowed() {

return isBorrowed;

}

public void setBorrowed(Boolean borrowed) {

isBorrowed = borrowed;

}

public Book(String name, String author, int price, String type) {

this.name = name;

this.author = author;

this.price = price;

this.type = type;

}

@Override

public String toString() {

return "Book{" +

"name='" + name + '\'' +

", author='" + author + '\'' +

", price=" + price +

", type='" + type + '\'' +

", isBorrowed=" + isBorrowed +

'}';

}

}

六.书架类

public class BookList {

public Book[] books;

public int usedSize;

public BookList(){

this.books = new Book[10];

books[0] = new Book("三国演义","罗贯中",46,"小说");

books[1] = new Book("水浒传","施耐庵",37,"小说");

books[2] = new Book("红楼梦","曹雪芹",76,"小说");

books[3] = new Book("西游记","吴承恩",88,"小说");

usedSize = 4;

}

public Book getBook(int pos) {

return books[pos];

}

public void setBook(Book book,int pos) {

this.books[pos] = book;

}

public int getUsedSize() {

return usedSize;

}

public void setUsedSize(int usedSize) {

this.usedSize = usedSize;

}

}

七.操作类

1.操作接口

public interface IOperation {

void work(BookList bookList);

Scanner scanner = new Scanner(System.in);

}

2.增加操作

public class AddOperation implements IOperation{

@Override

public void work(BookList bookList) {

System.out.println("请输入你要增加图书的书名");

String name = scanner.nextLine();

System.out.println("请输入你要添加书的作者");

String author = scanner.nextLine();

System.out.println("请输入你要添加书的价格");

int price = scanner.nextInt();

System.out.println("请输入你要添加书的类型");

scanner.nextLine();

String type = scanner.nextLine();

int currentSize = bookList.getUsedSize();

for (int i = 0; i < currentSize; i++) {

if(bookList.getBook(i).getName().equals(name)){

System.out.println("该书已经存在,无法添加!");

return;

}

}

//书不存在 进行添加操作

Book book = new Book(name,author,price,type);

bookList.setBook(book,currentSize);

bookList.setUsedSize(currentSize+1);

}

}

3.删除操作

public class DeleOperation implements IOperation{

@Override

public void work(BookList bookList) {

System.out.println("请输入你要删除书的书名:");

String name = scanner.nextLine();

int index = -1;

int i =0;

int currentSize = bookList.getUsedSize();

for ( i = 0; i < currentSize; i++) {

Book book = bookList.getBook(i);

if (book.getName().equals(name)){

index = i;

break;

}

}

if (i >= currentSize){

System.out.println("要删除的书不存在!");

return;

}

for (int j = index; j < currentSize-1; j++) {

Book book = bookList.getBook(j+1);

bookList.setBook(book,j);

}

bookList.setBook(null,currentSize);

bookList.setUsedSize(currentSize-1);

System.out.println("删除成功!!!");

}

}

4.查找操作

public class FindOperation implements IOperation{

@Override

public void work(BookList bookList) {

System.out.println("请输入你要查找的书的书名:");

String name = scanner.nextLine();

int currentSize = bookList.getUsedSize();

for (int i = 0; i < currentSize; i++) {

Book book = bookList.getBook(i);

if (book.getName().equals(name)){

System.out.println(book);

return;

}

}

System.out.println("图书馆没有你要寻找的书!");

}

}

5.展示操作

public class ShouwOperation implements IOperation{

@Override

public void work(BookList bookList) {

System.out.println("展示所有图书!");

int currentSize = bookList.getUsedSize();

for (int i = 0; i < currentSize; i++) {

Book book = bookList.getBook(i);

System.out.println(book);

}

}

}

6.借阅操作

public class BorrowOperation implements IOperation{

@Override

public void work(BookList bookList) {

System.out.println("图书馆的书如下:");

int currentSzie = bookList.getUsedSize();

for (int i = 0; i < currentSzie; i++) {

Book book = bookList.getBook(i);

System.out.println(book.getName());

}

System.out.println("请输入你要外借的图书的书名:");

String name = scanner.nextLine();

for (int i = 0; i < currentSzie; i++) {

Book book = bookList.getBook(i);

if(book.getName().equals(name)){

if (book.getBorrowed()){

System.out.println("该书已被借出,换本书吧!");

return;

}else {

book.setBorrowed(true);

System.out.println("借阅成功");

System.out.println("该书的信息如下");

System.out.println(book);

return;

}

}

}

System.out.println("你想借阅的图书不存在!");

}

}

7.归还操作

public class ReturnOperation implements IOperation{

@Override

public void work(BookList bookList) {

System.out.println("归还图书");

System.out.println("请输入你要归还的图书的书名");

String name = scanner.nextLine();

int currentSize = bookList.getUsedSize();

for (int i = 0; i < currentSize; i++) {

Book book = bookList.getBook(i);

if (book.getName().equals(name)){

book.setBorrowed(false);

System.out.println("归还成功!");

return;

}

}

System.out.println("不存在你要归还的图书!");

}

}

8.退出系统

public class ExitOperation implements IOperation{

@Override

public void work(BookList bookList) {

System.out.println("退出系统!");

System.exit(0);

}

}

总结

以上就是图书管理系统的所有知识,有些地方还是需要思考去巧妙地设计使得文章更加简洁明了。冰冻三尺,非一日之寒。水滴石穿,非一日之功。坚持把每一个知识点搞清楚,并进行总结,形成属于自己的知识框架,会让你的学习更加轻松。

文章来源

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: