图书管理系统(简易版)

这篇具有很好参考价值的文章主要介绍了图书管理系统(简易版)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、该图书管理系统涉及Java的知识点

二、该图书管理系统包含的功能


一、该图书管理系统涉及Java的知识点,如下:

  1. 数组的增删查
  2. 抽象类
  3. 接口
  4. 面向对象的封装、继承和多态

二、该图书管理系统包含的功能,如下:

  1. 图书管理系统的使用人群分为两种:①管理人员,②普通用户
  • 具体实现:抽象类的继承

User类(父类):

public abstract class User {
    protected String name;
    protected IOperation[] iOperations;

    public User(String name){
        this.name=name;
    }
    public abstract int  menu();
    public void doWork(int choice, BooklList booklList){
        iOperations[choice].work(booklList);
    }
}

AdminUser类(管理员)

public class AdminUser extends User {
    public AdminUser(String name){
        super(name);
        this.iOperations=new IOperation[] {
                new ExitOperation(),
                new FindOperation(),
                new AddOperation(),
                new DelOperation(),
                new DisplayOperation()

        };
    }
    public int  menu(){
        System.out.println("========管理员菜单========");
        System.out.println("hello  "+this.name  +"欢迎使用图书管理系统");
        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;
    }
}

 NormalUser类(普通用户类)

public class NormalUser extends User {
    public NormalUser(String name){
        super(name);
        this.iOperations=new IOperation[]{
                new ExitOperation(),
                new FindOperation(),
                new BorrowOperation(),
                new ReturnOperation()
        };
    }
    public int menu(){
        System.out.println("========普通用户菜单========");
        System.out.println("hello  "+this.name  +"欢迎使用图书管理系统");
        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;
    }
}

注:需要把上述的三各类放在同一个包里图书管理系统(简易版)

 2. 设计一个Book类存放书的属性,设计一个BookList类存放书的位置

具体实现:在Book类中给所有的私有属性提供了公共的接口,在BookList类中创建了一个名为books的数组并存放三本图书另外设计了一个BookList的成员名为UsedSize来表示在books数组中存放书的数量。

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, String type) {
        this.name = name;
        this.author = author;
        this.price = price;
        this.type = type;
    }

    public String getName() {
        return name;
    }

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

    public String getAuthor() {
        return author;
    }

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

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

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

    @Override
    public String toString() {
        return "Book{" +
                "name='" + name + '\'' +
                ", author='" + author + '\'' +
                ", price=" + price +
                ", type='" + type + '\'' +
                ((isBorrowed==true)?" 已经被借出 ":" 未被借出 ")+
                '}';
    }
}

BookList类

public class BooklList {
    private Book[] books=new Book[1024];
    private int usedSize;
    public BooklList(){
        books[0]=new Book("数据库应用原理","张三",45,"计算机");
        books[1]=new Book("红楼梦","曹雪芹",56,"小说");
        books[2]=new Book("唐诗三百首","孙洙",35,"古诗词");
        this.usedSize=3;
    }

    public int getUsedSize() {
        return usedSize;
    }

    public void setUsedSize(int usedSize) {
        this.usedSize = usedSize;
    }

    /**
     * 获得pos位置的一本书
     * @param pos
     * @return
     */
    public Book getPos(int pos){
        if(pos>=0&&pos<books.length){
            return this.books[pos];
        }else
            System.out.println("pos位置不合法");
        return this.books[pos];
    }

    /**
     * 添加pos下标的一本书
     * @param pos
     * @param book
     */
    public void setBook(int pos,Book book){
        this.books[pos]=book;
    }
}

注: 需要把上述两个类放在当一个包里图书管理系统(简易版)

3.  分别设计了七个类,每一个类实现一种功能;设计了一个接口把七个类串接起来

具体实现:AddOperation(增加操作)、BorrowOperation(借阅操作)、DelOperation(删除操作)、DisplayOperation(显示操作)、ExitOperation(退出系统)、FindOperation(查找操作)、ReturnOperation(归还操作)和接口IOperation

AddOperation(增加操作)

public class AddOperation implements IOperation{
   public void work(BooklList booklList){
       System.out.println("新增图书!");
       System.out.println("请输入图书的名字:");
       String name=scanner.nextLine();
       System.out.println("请输入图书的作者");
       String author=scanner.nextLine();
       System.out.println("请输入图书类型");
       String type=scanner.nextLine();
       System.out.println("请输入图书价格");
       int price=scanner.nextInt();
       scanner.nextLine();

       Book book=new Book(name,author,price,type);
       int size=booklList.getUsedSize();
       booklList.setBook(size,book);
       booklList.setUsedSize(size+1);
       System.out.println("新增图书成功!");


   }
}

 BorrowOperation(借阅操作)

public class BorrowOperation implements IOperation {
    public void work(BooklList booklList) {
        System.out.println("借阅图书!");
        System.out.println("请输入你想借阅的图书名字");
        String name = scanner.nextLine();
        int size = booklList.getUsedSize();
        for (int i = 0; i < size; i++) {
            Book book = booklList.getPos(i);
            if (name.equals(book.getName())) {
                book.setBorrowed(true);
                System.out.println("借阅成功!!!");
                System.out.println("借阅图书信息如下:" + book);
                return;
            }
        }
        System.out.println("没有找到你要借阅的图书!!!");
    }
}

DelOperation(删除操作)

public class DelOperation implements IOperation {
    public void work(BooklList booklList) {
        System.out.println("删除图书!");
        System.out.println("请输入你要删除的图书的名字");
        String name = scanner.nextLine();
        int currentSize = booklList.getUsedSize();
        int index = 0;
        int i = 0;
        for (; i < currentSize; i++) {
            Book book=booklList.getPos(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=booklList.getPos(j+1);
            booklList.setBook(j,book);
        }
        booklList.setBook(currentSize-1,null);
        booklList.setUsedSize(currentSize-1);
        System.out.println("删除成功!!!");
    }

}

 DisplayOperation(显示操作)


public class DisplayOperation implements IOperation{
    public void work(BooklList booklList){
        System.out.println("打印图书!");
        int size=booklList.getUsedSize();
        for (int i = 0; i <size ; i++) {
            Book  book=booklList.getPos(i);
            System.out.println(book);

        }
    }
}

 ExitOperation(退出系统)

public class ExitOperation implements IOperation{
    public void work(BooklList booklList){
        System.out.println("退出系统!");
        System.exit(0);
    }
}

 FindOperation(查找操作)

public class FindOperation implements IOperation{
    public void work(BooklList booklList){
        System.out.println("查找图书!");
        System.out.println("请输入你要查找的图书名字");
        String  name=scanner.nextLine();
        int size=booklList.getUsedSize();
        for (int i = 0; i <size ; i++) {
            Book book=booklList.getPos(i);
            if (name.equals(book.getName())) {
                System.out.println("找到了这本书,信息如下:");
                System.out.println(book);
                return;
            }
        }
        System.out.println("没有找到你需要借阅的图书!!!");
    }
}

 ReturnOperation(归还操作)

public class ReturnOperation implements IOperation {
    public void work(BooklList booklList) {
        System.out.println("归还图书!");
        System.out.println("请输入你要图书的名字");
        String name = scanner.nextLine();
        int size = booklList.getUsedSize();
        for (int i = 0; i < size; i++) {
            Book book = booklList.getPos(i);
            if (name.equals(book.getName())) {
                book.setBorrowed(false);
                System.out.println("归还成功!!!");
                System.out.println("归还图书信息如下:"+book);
                return;
            }
        }
        System.out.println("没有你要归还的图书!!!");
    }
}

接口IOperation

public interface IOperation {
    void work(BooklList booklList);
    Scanner scanner=new Scanner(System.in);
}

注:上述的七个类和一个接口需要放在同一个包里

          图书管理系统(简易版)                                               图书管理系统(简易版)

3. 主类Main,包含一个静态方法Login

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——》普通用户");
        int choice=scanner.nextInt();
        if(choice==1){
           return new AdminUser(name);
        }else {
            return new NormalUser(name);
        }
    }

    public static void main(String[] args) {
        BooklList booklList=new BooklList();
        User user=login();//向上转型
        while (true) {
            int choice = user.menu();//动态绑定,根据choice选择合适的操作
            user.doWork(choice, booklList);
        }


    }
}

4.结果图演示 

管理员功能演示

图书管理系统(简易版)

 普通用户功能演示

图书管理系统(简易版)

 文章来源地址https://www.toymoban.com/news/detail-472412.html

到了这里,关于图书管理系统(简易版)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于java和sqlserver建立的简易图书管理系统

    游览所有图书、查找书籍、建立新图书,借出和归还图书,删除某一图书 选择需要的操作 释放连接 Idea,JDK13,驱动包Microsoft JDBC Driver 8.2.2 for SQL Server 数据库:sqlserver2019 Database:library Table:Book Book:书籍编号,书籍名称,书籍作者,库存量 管理员名:sa 密码:123456 官网下

    2024年02月08日
    浏览(44)
  • JavaWeb阶段案例--简易版管理图书系统(增删改查)

      在WEB-INF下创建一个lib包,并导入以下jar包:(导入后,鼠标右键选中lib文件夹,单击“add as lib...”  注:使用Lombok包时,除了需要导入jar包还需要从idea中下载Lombok插件 file -- setting -- plugins -- 搜Lombok -- 勾选上 -- Apply -- OK file -- setting -- Build Exec.....  -- Compiler -- Annotation Pro

    2024年02月08日
    浏览(43)
  • 【JAVA】 图书管理系统(javaSE简易版 内含画图分析) | 期末大作业&课程设计

    作者主页:paper jie 的博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文录入于《JAVA》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造,将javaSE基础知识一网打尽,希望可以帮到读者们哦。 其他专栏:《算法详

    2024年02月09日
    浏览(49)
  • 图书管理借阅系统【Java简易版】Java三大特征封装,继承,多态的综合运用

    前言 前几篇文章讲到了Java的基本语法规则,今天我们就用前面学到的数组,类和对象,封装,继承,多态,抽象类,接口等做一个图书管理借阅系统。 Java语言是面向对象的,所以首先要分析完成这个图书管理系统,有哪些对象: 👱使用者User 📘书Book 📲操作Operation 使用者

    2024年02月14日
    浏览(44)
  • django的简易的图书管理系统jsp书店进销存源代码MySQL

    本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 django的简易的图书管理系统 系统有1权限:管理员 用所技术 python3.10 django mysql5.6 注册登录和书籍信息的增删

    2024年02月11日
    浏览(52)
  • Java web图书管理系统、在线图书借阅管理系统(带文档)

     大家好,我是DeBug,很高兴你能来阅读!作为一名热爱编程的程序员,我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里,我将会结合实际项目经验,分享编程技巧、最佳实践以及解决问题的方法。无论你是初学者还是有一定经验的程序员,我都希望能够为你

    2024年01月23日
    浏览(50)
  • 图书管理系统|基于Springboot的图书管理系统设计与实现(源码+数据库+文档)

    图书管理系统目录 目录 基于Springboot的图书管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、个人中心 2、管理员管理 3、用户管理 4、图书出版社管理 四、数据库设计 1、实体ER图 五、核心代码  六、论文参考 七、最新计算机毕设选题推荐 八、源码获取:

    2024年03月26日
    浏览(90)
  • 【JAVASE】图书管理系统

    ⭐ 作者:小胡_不糊涂 🌱 作者主页:小胡_不糊涂的个人主页 📀 收录专栏:浅谈Java 💖 持续更文,关注博主少走弯路,谢谢大家支持 💖 图书管理系统的使用者有两类,一类是图书管理员,一类是借书用户。 他们在管理系统中的需求与操作是不同的,所以要分别进行设计

    2024年02月07日
    浏览(48)
  • 图书管理系统项目测试

    添加依赖如下: 在被测试类中使用快捷键 Ctrl+Shift+T,选择要测试的方法,编写测试类,完成单元测试。 (1)登录: 1.输入正确的账号密码,是否正确登录并跳转至主页面 2.账号为空,输入密码,是否提示输入密码 3.输入账号,密码为空,是否提示输入用户名 4.账号密码均为

    2024年02月11日
    浏览(43)
  • C++图书管理系统

           设计一个图书信息管理系统,实现以下功能:系统以菜单方式工作,图书信息录入功能(图书信息用文件保存) ;图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等;图书信息浏览功能(输出所有图书信息);查询和排序功能:按书名查询

    2024年02月04日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包