当前位置:首页 » 《关于电脑》 » 正文

Java-图书管理系统

4 人参与  2024年10月28日 09:20  分类 : 《关于电脑》  评论

点击全文阅读


我的个人主页

欢迎来到我的Java图书管理系统,接下来让我们一同探索如何书写图书管理系统吧!
在这里插入图片描述

1管理端和用户端

2建立相关的三个包(book、operation、user)

3建立程序入口Main类

4程序运行

1.首先图书馆管理系统分为管理员端用户端

1.1管理员端:AdminUser::menu()
------------------------------------------------------管理员菜单------------------------------------------------------

1.查找图书2.新增图书3.删除图书4.显示图书0.退出图书
------------------------------------------------------------------------------------------------------------------------

1.2用户端:NormalUser::menu()

------------------------------------------------------用户端----------------------------------------------------------

1.查找图书2.借阅图书3.归还图书0.退出系统
------------------------------------------------------------------------------------------------------------------------

2.建立三个包(book(书相关的包),operation(操作相关的包),user(使用者相关的包))

2.1再在book包里面建立Book(书籍对象)和BookList(书架)类
Book

package book;/** * Created with IntelliJ IDEA. * Description: * User:Lenovo * Date:2024-10-26 * Time:12:39 */public class Book{    private String name;//书籍名称    private String author;//作者    private int price;//价格    private String taye;//类型    private boolean isBorrowed;;//是否被借出    public Book(String name, String author, int price, String taye) {        this.name = name;        this.author = author;        this.price = price;        this.taye = taye;    }    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;    }

这里可以通过快捷键alt+insert快速构造成员方法,也可以快速构建get和set
在这里插入图片描述
在这里插入图片描述

BookList

package book;import java.security.PrivilegedAction;/** * Created with IntelliJ IDEA. * Description: * User:Lenovo * Date:2024-10-26 * Time:12:38 */public class BookList {    private Book[] books; //存放书籍    private static final int DEFAULT_SIZE = 10;    private int usedSize; // 有效书籍的个数    //private int xxxx;    public BookList() {        this.books = new Book[DEFAULT_SIZE];        //预先存3本书        this.books[0] = new Book("三国演义","罗贯中",19,"武侠");        this.books[1] = new Book("西游记","吴承恩",20,"神话");        this.books[2] = new Book("红楼梦","曹雪芹",15,"小说");        this.usedSize = 3;    }    public Book[] getBooks() {        return books;    }    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) {        books[pos] = book;    }}

2.2在operation包里面建立AddBook、 BorrowedBook、DelBook、ExitBook、FindBook ReturnBook、ShowBook类,IOPeration(接口);
AddBook

package operation;import book.Book;import book.BookList;import java.util.Scanner;/** * Created with IntelliJ IDEA. * Description: * User:Lenovo * Date:2024-10-26 * Time:13:17 */public class AddBook implements IOPeration{    @Override    public void work(BookList bookList) {        System.out.println("新增图书....");        /*if(isFull(bookList)) {            System.out.println("书架满了....");            return;        }*/       /* if(isFull(bookList)) {            //扩容的代码 Arrays.copyOf();        }*/        //1. 整理书籍的信息        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();        scanner.nextLine();        System.out.println("请输入书籍的类型:");        String type = scanner.nextLine();        Book book = new Book(name,author,price,type);        //2.如果书架有这本书 则不能上架        int currentSize = bookList.getUsedSize();        for (int i = 0; i < currentSize; i++) {            Book tmp = bookList.getBook(i);            if(tmp.getName().equals(name)) {                System.out.println("有这本书,可以不上架!!");                return;            }        }        //3.没有这本书 则放到书籍数组当中        bookList.setBooks(currentSize,book);        bookList.setUsedSize(currentSize+1);    }    private boolean isFull(BookList bookList) {        return bookList.getBooks().length ==                bookList.getUsedSize();    }}

BorrowedBook

package operation;import book.Book;import book.BookList;import java.util.Scanner;/** * Created with IntelliJ IDEA. * Description: * User:Lenovo * Date:2024-10-26 * Time:13:22 */public class BorrowedBook implements IOPeration{    @Override    public void work(BookList bookList) {        System.out.println("借阅图书....");        System.out.println("请输入你要借阅的图书:");        Scanner scanner = new Scanner(System.in);        String name = scanner.nextLine();        //1.先遍历数组 查找是否存在要借阅的图书        int currentSize = bookList.getUsedSize();        for (int i = 0; i < currentSize; i++) {            Book book = bookList.getBook(i);            if(book.getName().equals(name)) {                //2.如果存在 检查 是否已经被借出                if(book.isBorrowed()) {                    System.out.println("这本书已经被借出了!");                }else {                    //3. 如果没有借出 可以借                    book.setBorrowed(true);                    System.out.println(book);                    System.out.println("借阅成功!!");                }                return;            }        }        //4.如果不存在 则不能借阅        System.out.println("没有你要找的这本书,无法借阅!!");    }}

DelBook

package operation;import book.Book;import book.BookList;import java.util.Scanner;/** * Created with IntelliJ IDEA. * Description: * User:Lenovo * Date:2024-10-26 * Time:13:24 */public class DelBook implements IOPeration{    @Override    public void work(BookList bookList) {        System.out.println("删除图书....");        Scanner scanner = new Scanner(System.in);        //1、输入你要删除的图书名称:        System.out.println("请输入要删除书籍的名称:");        String name = scanner.nextLine();        //2.查看当前书籍是否存在        int index = -1;        int i = 0;        int currentSize = bookList.getUsedSize();        for (; i < currentSize; i++) {            Book tmp = bookList.getBook(i);            if(tmp.getName().equals(name)) {                index = i;                break;            }        }        //没有遇到break        if(i >= currentSize) {            System.out.println("没有你要删除的书....");            return;        }        //遇到break  此时开始真正删除        for (int j = index; j < currentSize-1; j++) {            //bookList[j] = bookList[j+1]; error            Book tmp = bookList.getBook(j+1);            bookList.setBooks(j,tmp);        }        //修改usedSize的值        bookList.setUsedSize(currentSize-1);        bookList.setBooks(currentSize-1,null);        System.out.println("删除图书成功了.....");    }}

ExitBook

package operation;import book.BookList;/** * Created with IntelliJ IDEA. * Description: * User:Lenovo * Date:2024-10-26 * Time:13:12 */public class ExitBook implements IOPeration{    @Override    public void work(BookList bookList) {        System.out.println("退出系统.....");        int currentSize = bookList.getUsedSize();        for (int i = 0; i < currentSize; i++) {            //bookList[i] = null;            bookList.setBooks(i,null);        }        bookList.setUsedSize(0);        System.exit(0);    }}

FindBook

package operation;import book.BookList;import book.Book;import java.util.Scanner;/** * Created with IntelliJ IDEA. * Description: * User:Lenovo * Date:2024-10-26 * Time:13:25 */public class FindBook implements IOPeration{    @Override    public void work(BookList bookList) {        System.out.println("查找图书...");        Scanner scanner = new Scanner(System.in);        System.out.println("请输入你要查找的图书的名字:");        String name = scanner.nextLine();        //1.先确定  当前数组当中 有效的书籍个数        int currentSize = bookList.getUsedSize();        for (int i = 0; i < currentSize; i++) {            Book book = bookList.getBook(i);            if(book.getName().equals(name)) {                System.out.println("找到这本书籍了,书籍内容如下:");                System.out.println(book);                return;            }        }        System.out.println("没有你要查找的图书的书籍!!");    }}

ReturnBook

package operation;import book.Book;import book.BookList;import java.util.Scanner;/** * Created with IntelliJ IDEA. * Description: * User:Lenovo * Date:2024-10-26 * Time:13:27 */public class ReturnBook implements IOPeration{    @Override    public void work(BookList bookList) {        System.out.println("归还图书....");        System.out.println("请输入你要归还的图书:");        Scanner scanner = new Scanner(System.in);        String name = scanner.nextLine();        //1.先遍历数组 查找是否存在要归还的图书        int currentSize = bookList.getUsedSize();        for (int i = 0; i < currentSize; i++) {            Book book = bookList.getBook(i);            if(book.getName().equals(name)) {                if(!book.isBorrowed()) {                    System.out.println("这本书没有被借出过,不用还!");                }else {                    System.out.println("归还成功");                    book.setBorrowed(false);                    System.out.println(book);                }                return;            }        }        //4.如果不存在 则不能归还        System.out.println("没有你要找的这本书,无法归还!!");    }}

ShowBook

package operation;import book.Book;import book.BookList;/** * Created with IntelliJ IDEA. * Description: * User:Lenovo * Date:2024-10-26 * Time:13:27 */public class ShowBook implements IOPeration{    @Override    public void work(BookList bookList) {        System.out.println("打印图书....");        int currentSize = bookList.getUsedSize();        for (int i = 0; i < currentSize; i++) {            Book tmp = bookList.getBook(i);            System.out.println(tmp);        }    }}

IOPeration

package operation;import book.BookList;/** * Created with IntelliJ IDEA. * Description: * User:Lenovo * Date:2024-10-26 * Time:13:09 */public interface IOPeration {    void work(BookList books);}

2.3 user包中建立AdminUser、NormalUser、User类;
AdminUser

package user;import operation.*;import java.util.Scanner;/** * Created with IntelliJ IDEA. * Description: * User:Lenovo * Date:2024-10-26 * Time:12:43 */public class AdminUser extends User{    public AdminUser(String name) {        super(name);        this.ioPerations = new IOPeration[]{                new ExitBook(),                new FindBook(),                new AddBook(),                new DelBook(),                new ShowBook()        };    }    @Override    public int menu() {        System.out.println("欢迎 "+this.name+" 来到图书管理系统!");        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("*****************************");        System.out.println("请输入你的操作:");        Scanner scanner = new Scanner(System.in);        int choice = scanner.nextInt();        return choice;    }}

NormalUser

package user;import operation.*;import java.util.Scanner;/** * Created with IntelliJ IDEA. * Description: * User:Lenovo * Date:2024-10-26 * Time:12:42 */public class NormalUser extends User{    public NormalUser(String name) {        super(name);        this.ioPerations = new IOPeration[]{                new ExitBook(),                new FindBook(),                new BorrowedBook(),                new ReturnBook()        };    }    @Override    public int menu() {        System.out.println("欢迎 "+this.name+" 来到图书管理系统!");        System.out.println("**********普通用户菜单*********");        System.out.println("1. 查找图书");        System.out.println("2. 借阅图书");        System.out.println("3. 归还图书");        System.out.println("0. 退出系统");        System.out.println("*****************************");        System.out.println("请输入你的操作:");        Scanner scanner = new Scanner(System.in);        int choice = scanner.nextInt();        return choice;    }}

User

package user;import book.BookList;import operation.IOPeration;/** * Created with IntelliJ IDEA. * Description: * User:Lenovo * Date:2024-10-26 * Time:12:42 */public abstract class User {    public String name;    public IOPeration[] ioPerations; //没有初始化    public User(String name) {        this.name = name;    }    public abstract int menu();    public void doOperations(int choice, BookList books) {        //return this.ioPerations[choice];        IOPeration ioPeration = this.ioPerations[choice];        //IOPeration ioPeration =  new FindBook();        ioPeration.work(books);    }}

3整个程序的入口Main类
Main

/** * Created with IntelliJ IDEA. * Description: * User:Lenovo * Date:2024-10-26 * Time:12:44 */import book.BookList;import user.AdminUser;import user.NormalUser;import user.User;import java.util.Scanner;public class Main {    public static User login(){        Scanner scanner=new Scanner(System.in);        System.out.println("请输入你的姓名: ");        String name=scanner.nextLine();        System.out.println("请输入你的身份:1:管理员   2:普通用户 ");        int choice=scanner.nextInt();        if(choice==1){            return new AdminUser(name);        }else{            return new NormalUser(name);        }    }    public static void main(String[] args) {        BookList bookList=new BookList();       /* Book[] books=new Book[10];        books[0]=new Book{"三国演义","罗贯中",19,"武侠"};        books[1]=new Book{"西游记","吴承恩",20,"神话"};        books[2]=new Book{"红楼梦","曹雪芹",15,"小说"};        usedsize=3;*/        User user=login();        while(true){            int choice=user.menu();            user.doOperations(choice,bookList);        }    }}

这样一个简单的图书管理系统就实现了

4程序运行:
4.1以管理员身份运行:

4.2以用户身份运行:
在这里插入图片描述
这次的图书管理系统之旅就到这里了;


点击全文阅读


本文链接:http://zhangshiyu.com/post/178820.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1