文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java实现图书馆借阅系统

2024-04-02 19:55

关注

本文实例为大家分享了Java实现图书馆借阅系统的具体代码,供大家参考,具体内容如下

Main.java

package com.src1.booksystem;

import com.src1.booksystem.booklist.BookList;
import com.src1.booksystem.users.AdminUser;
import com.src1.booksystem.users.NormalUser;
import com.src1.booksystem.users.User;


import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        //1.准备书籍
        BookList bookList = new BookList();
        //2登录
        User user = login();
        while ( true ) {
            int chioce = user.menu();
            //3.根据选择调用方法
            user.doOperation(chioce, bookList);
        }
    }
    public static User login() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入用户名:");
        String name = scanner.nextLine();
        if ( "admin".equals(name) ) {
            System.out.println("请输入管理员密码:");
            String password = scanner.nextLine();
            if ( "admin".equals(password) ) {
                System.out.println("hello! 尊敬的管理员! 欢迎来到藏经阁");
                return new AdminUser(name);
            } else {
                System.out.println("密码错误,进入用户端!");
                System.out.println("hello! "+ name+" 欢迎来到藏经阁");
                return new NormalUser(name);
            }
        }else {
            System.out.println("hello! "+ name+" 欢迎来到藏经阁");
            return new NormalUser(name);
        }
    }
}

package user

AdminUser.java

package com.src1.booksystem.users;

import com.src1.booksystem.operation.*;

import java.util.Scanner;


public class AdminUser extends User {
    @Override
    public int menu() {
        Scanner scanner = new Scanner(System.in);


        System.out.println("1.查找图书");
        System.out.println("2.新增书籍");
        System.out.println("3.删除书籍");
        System.out.println("4.书籍列表");
        System.out.println("0.退出系统");

        int chioce = scanner.nextInt();
        return chioce;
    }

    public AdminUser(String name) {
        super(name);
        this.operations = new IOperation[] {
                new ExitOperation(),
                new FindOperation(),
                new AddOperation(),
                new DelOperation(),
                new DisplayOperation()
        };
    }
}

NormalUser.java

package com.src1.booksystem.users;

import com.src1.booksystem.operation.*;

import java.util.Scanner;

public class NormalUser extends User {
    @Override
    public int menu() {
        Scanner scanner = new Scanner(System.in);


        System.out.println("1.查找图书");
        System.out.println("2.借阅书籍");
        System.out.println("3.归还书籍");
        System.out.println("4.书籍列表");
        System.out.println("0.退出系统");

        int chioce = scanner.nextInt();
        return chioce;

    }

    public NormalUser(String name) {
        super(name);
        this.operations = new IOperation[] {
                new ExitOperation(),
                new FindOperation(),
                new BorrowOperation(),
                new ReturnOperation(),
                new DisplayOperation()
        };
    }
}

User.java

package com.src1.booksystem.users;

import com.src1.booksystem.booklist.BookList;
import com.src1.booksystem.operation.IOperation;

abstract public class User {
    public String name;
    public IOperation[] operations;
    
    public abstract int menu() ;
    public void doOperation(int chioce, BookList bookList){
        //数组当中元素的对象,通过.调用对应operation方法
        operations[chioce].work(bookList);
    }
    public User(String name) {
        this.name = name;
    }

}

package book

book.java

package com.src1.booksystem.book;

public class Book {
    private String name;
    private String author;
    private int price;
    private String type;
    private boolean isBorrowed;

    public Book(String name, String author, int price) {
        this.name = name;
        this.author = author;
        this.price = price;
    }


    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 boolean isBorrowed() {
        return isBorrowed;
    }

    public void setBorrowed(boolean borrowed) {
        isBorrowed = borrowed;
    }

    @Override
    public String toString() {
        return "[" +
                "书名:" + name +
                ", 作者:" + author +
                ", 价格:" + price + ","+
                (isBorrowed ? "已借出":"未借出")+"]";

    }
}

package booklist

BookList.java

package com.src1.booksystem.booklist;
import com.src1.booksystem.book.Book;
public class BookList {
    private   Book[] books;
    private int usedSize;

    public BookList() {
        this.books = new Book[10];
        this.books[0] = new Book("西游记","吴承恩",13);
        this.books[1] = new Book("水浒传","施耐庵",14);
        this.books[2] = new Book("三国演义","罗贯中",15);
        this.usedSize = 3;
    }

    public int getUsedSize() {
        return usedSize;
    }

    public  void setUsedSize(int usedSize) {
        this.usedSize = usedSize;
    }
    public Book getBook(int pos) {
        return books[pos];
    }

    public void setBooks(int pos,Book book) {
        this.books[pos] = book;
    }

}

package operation

AddOperation

package com.src1.booksystem.operation;

import com.src1.booksystem.book.Book;
import com.src1.booksystem.booklist.BookList;

import java.util.Scanner;

public class AddOperation implements  IOperation{
    @Override
    public void work(BookList bookList) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入书名");
        String name = scanner.nextLine();
        System.out.println("请输入作者");
        String author = scanner.nextLine();

        System.out.println("请输入价格");
        int price = scanner.nextInt();

            Book book = new Book(name, author, price);
            int curSize = bookList.getUsedSize();
            bookList.setBooks(curSize, book);
            bookList.setUsedSize(curSize + 1);
            System.out.println("新增成功");


    }
}

BorrowOperation

package com.src1.booksystem.operation;

import com.src1.booksystem.book.Book;
import com.src1.booksystem.booklist.BookList;

import java.util.Scanner;


public class BorrowOperation implements IOperation {
    @Override
    public void work(BookList bookList) {
        System.out.println("借阅书籍");
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你要借阅的图书:");
        String name = scanner.nextLine();

        for (int i = 0; i < bookList.getUsedSize(); i++) {
            Book book = bookList.getBook(i);
            if(book.getName().equals(name)) {
                if(book.isBorrowed()) {
                    System.out.println("此书已经借出了!");
                    return;
                }
                book.setBorrowed(true);
                System.out.println("借阅成功!");
                return;
            }
        }
        System.out.println("没系统未收录这本书!");
    }
}

DelOperation

未完善

package com.src1.booksystem.operation;

import com.src1.booksystem.booklist.BookList;

import java.util.Scanner;
import com.src1.booksystem.book.Book;

public class DelOperation implements IOperation{
    @Override
    public void work(BookList bookList) {
        System.out.println("请输入要删除的书名:");
        Scanner scanner = new Scanner(System.in);
        String delbook = scanner.nextLine();
        int size = bookList.getUsedSize();

        for (int i = 0; i < size; i++) {
            Book book = bookList.getBook(i);
            if(book.getName().equals(delbook)) {
                if(i+1<size) {
                    bookList.setBooks(i, bookList.getBook(i + 1));
                }
                bookList.setUsedSize(size-1);
                if(i+2 < size) {
                    bookList.setBooks(i+1, bookList.getBook(i + 2));
                }
            }
        }
        System.out.println("删除成功!");
    }
}

修改

public class DelOperation implements IOperation{
    @Override
    public void work(BookList bookList) {
        System.out.println("请输入要删除的书名:");
        Scanner scanner = new Scanner(System.in);
        String delbook = scanner.nextLine();
        int size = bookList.getUsedSize();
        int pos = 0;
        int i = 0;
        for ( i = 0; i < size; i++) {
            Book book = bookList.getBook(i);
            if(book.getName().equals(delbook)) {
                pos = i;
                break;
            }
        }
        if(i == size){
            System.out.println("系统中没有这本书");
            return;
        }
        for(int j = pos; j < size-1; j++) {
            bookList.setBooks(j, bookList.getBook(j + 1));
        }
        bookList.setUsedSize(size-1);
        System.out.println("删除成功!");
    }
}

DisplayOperation

import com.src1.booksystem.booklist.BookList;

public class DisplayOperation implements IOperation{
    @Override
    public void work(BookList bookList) {
        for (int i = 0; i < bookList.getUsedSize(); i++) {
            System.out.println(bookList.getBook(i));
        }
    }
}

ExitOperation

package com.src1.booksystem.operation;

import com.src1.booksystem.booklist.BookList;


public class ExitOperation implements IOperation {
    @Override
    public void work(BookList bookList) {
        System.exit(0);
    }
}

FindOperation

package com.src1.booksystem.operation;

import com.src1.booksystem.book.Book;
import com.src1.booksystem.booklist.BookList;

import java.util.Scanner;


public class FindOperation implements IOperation{
    @Override
    public void work(BookList bookList) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要查找的书名");
        String name = scanner.nextLine();
        for( int i = 0; i < bookList.getUsedSize(); i++) {
            Book book = bookList.getBook(i);
            if(book.getName().equals(name)) {
                System.out.println(book);

                return;
            }

        }
    }
}

ReturnOperation

package com.src1.booksystem.operation;

import com.src1.booksystem.book.Book;
import com.src1.booksystem.booklist.BookList;

import java.util.Scanner;

public class ReturnOperation implements IOperation {
    @Override
    public void work(BookList bookList) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你要归还的书名:");
        String name = scanner.nextLine();

        for (int i = 0; i < bookList.getUsedSize(); i++) {
            Book book = bookList.getBook(i);
            if(book.getName().equals(name)) {
                //说明有这本书
                book.setBorrowed(false);
                System.out.println("归还成功!");
                return;
            }
        }
        System.out.println("系统未找到本书的相关信息!");
    }
}

接口 IOperation

package com.src1.booksystem.operation;

import com.src1.booksystem.booklist.BookList;


public interface IOperation {
     void work(BookList bookList);
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯