图书管理系统(借还图书)--Java实现(附源码)

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

目录

图书管理系统权限

图书管理系统程序框图

图书管理系统架构

管理员执行流程

学生执行流程

详细代码

源码获取

毕设专栏


图书管理系统(借还图书)--Java实现(附源码)

图书管理系统权限

  • 管理员:具有  1、查找图书 2、增加图书 3、删除图书 4、显示图书 等功能
  • 学生:具有  1、查找图书 2、借阅图书 3、归还图书 4、显示图书 等功能

图书管理系统程序框图

图书管理系统(借还图书)--Java实现(附源码)

图书管理系统架构

图书管理系统(借还图书)--Java实现(附源码)

管理员执行流程

图书管理系统(借还图书)--Java实现(附源码)

学生执行流程

图书管理系统(借还图书)--Java实现(附源码)

详细代码

Book

package book;

public class Book {
    /*一本书的属性包括书名,作者,价格,类型,编号,以及状态*/
    private String name;
    private String author;
    private int price;
    private String type;
    private int num;
    private boolean status;

    //提供构造方法
    public Book(String name, String author, int price, String type, int num) {
        this.name = name;
        this.author = author;
        this.price = price;
        this.type = type;
        this.num = num;
    }

    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 int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }

    public boolean isStatus() {
        return status;
    }

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

    //toString 方法打印
    @Override
    public String toString() {
        return "Book{" +
                "name='" + name + '\'' +
                ", author='" + author + '\'' +
                ", price=" + price +
                ", type='" + type + '\'' +
                ", num=" + num +
                ((status == true) ? " 已借出 " : " 未借出 ") +
                '}';
    }
}

BookList

package book;

public class BookList {
    //书都是同一类型的元素,创建一个Book类型的数组
    private Book[] books;
    private int size;

    //先给书架放三本书
    public BookList() {
        this.books = new Book[10];
        books[0] = new Book("狂人日记","鲁迅",10,"小说",1);
        books[1] = new Book("将进酒","李白",23,"诗",3);
        books[2] = new Book("清明上河图","张择端",20,"书法",2);
        this.size = 3;
    }


    public int getSize() {
        return size;
    }

    public void setSize(int size) {
        this.size = size;
    }

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

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

AddOperation

package operation;

import book.Book;
import book.BookList;

import java.util.Scanner;

public class AddOperation implements IOperation {
    @Override
    public void work(BookList bl) {
        Scanner sc = new Scanner(System.in);
        System.out.println("添加图书");
        System.out.println("请输入图书的名字:");
        String name = sc.nextLine();
        System.out.println("请输入图书的作者:");
        String author = sc.nextLine();
        System.out.println("请输入图书价格:");
        int price = sc.nextInt();
        System.out.println("请输入图书的类型:");
        String type = sc.next();
        System.out.println("请输入图书的编号:");
        int num = sc.nextInt();

        Book book = new Book(name,author,price,type,num);
        int curSize = bl.getSize();//拿到长度
        bl.setBooks(curSize,book);
        bl.setSize(curSize+1);
        System.out.println("添加成功!");
    }
}

BorrOperation

package operation;

import book.Book;
import book.BookList;

import java.util.Scanner;

public class BorrOperation implements IOperation{
    @Override
    public void work(BookList bl) {
        System.out.println("借阅书籍");
        System.out.println("请输入需要借阅的书籍名字:");
        Scanner sc = new Scanner(System.in);
        String name = sc.nextLine();
        for (int i = 0; i < bl.getSize(); i++) {
            Book book = bl.getBook(i);
            if(book.getName().equals(name)) {
                System.out.println("请取走您要的书籍!");
                book.setStatus(true);
                System.out.println(book);
                return;
            }
        }
        System.out.println("没有你需要的书籍!");
    }
}


DelOperation

package operation;

import book.Book;
import book.BookList;

import java.util.Scanner;

public class DelOperation implements IOperation{
    @Override
    public void work(BookList bl) {
        System.out.println("删除图书");
        System.out.println("请输入需要删除的书籍名字:");
        Scanner sc = new Scanner(System.in);
        String name = sc.nextLine();
        int i = 0;
        for (; i < bl.getSize(); i++) {
            Book book = bl.getBook(i);
            if(book.getName().equals(name)){
                break;
            }
        }
        if(i >= bl.getSize()){
            System.out.println("没有找到此书籍");
            return;
        }
        int j = i;
        for(; j < bl.getSize() - 1; j++){
            Book book = bl.getBook(j + 1);
            bl.setBooks(j,book);
        }
        int cueSize = bl.getSize();
        bl.setSize(cueSize-1);
        System.out.println("成功删除此书籍!");
    }
}

DisOperation

package operation;

import book.Book;
import book.BookList;

public class DisOperation implements IOperation{
    @Override
    public void work(BookList bl) {
        System.out.println("显示图书");
        for (int i = 0; i < bl.getSize(); i++) {
            Book book = bl.getBook(i);
            System.out.println(book);
        }
    }
}

ExiOperation

package operation;

import book.BookList;

public class ExiOperation implements IOperation{
    @Override
    public void work(BookList bl) {
        System.out.println("退出系统");
        System.exit(0);
    }
}

Finoperation

package operation;

import book.Book;
import book.BookList;

import java.util.Scanner;

public class FinOperation implements IOperation{
    @Override
    public void work(BookList bl) {
        System.out.println("查找书籍");
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要查找的书籍名字:");
        String name = sc.next();
        for (int i = 0; i < bl.getSize(); i++) {
            Book book = bl.getBook(i);
            if(book.getName().equals(name)){
                System.out.println("有此书籍!");
                System.out.println(book);
                return;
            }
        }
        System.out.println("未找的您需要的书籍!");
    }
}

IOperation

package operation;

import book.BookList;

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

RetOperation

package operation;

import book.Book;
import book.BookList;

import java.util.Scanner;

public class RetOperation implements IOperation{
    @Override
    public void work(BookList bl) {
        System.out.println("归还图书");
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入您要归还的书籍名字!");
        String name = sc.nextLine();
        for (int i = 0; i < bl.getSize(); i++) {
            Book book = bl.getBook(i);
            if(book.getName().equals(name)) {
                book.setStatus(false);
                System.out.println(book);
                return;
            }
        }
    }
}

Administrator

package user;

import operation.*;

import java.util.Scanner;

public class Administrator extends User{

    public Administrator(String name) {
        super(name);
        this.operation = new IOperation[]{new ExiOperation(),new FinOperation(),new AddOperation(),new DelOperation(),new DisOperation()};
    }

    @Override
    public int menu() {
        System.out.println("欢迎" + this.name + "进入图书管理系统!");
        Scanner sc = new Scanner(System.in);
        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("=============");
        int choice = sc.nextInt();
        return choice;
    }
}

Ordinary

package user;

import operation.*;

import java.util.Scanner;

public class Ordinary extends User {

    public Ordinary(String name) {
        super(name);
        this.operation = new IOperation[]{new ExiOperation(),new FinOperation(),new BorrOperation(),new RetOperation(),new DisOperation()};
    }

    @Override
    public int menu() {
        System.out.println("欢迎" + this.name + "同学进入图书管理系统!");
        Scanner sc = new Scanner(System.in);
        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("==============");
        int choice = sc.nextInt();
        return choice;
    }
}

User

package user;

import book.BookList;
import operation.IOperation;
//抽象类,主要为了被继承
public abstract class User {
    public String name;
    public IOperation[] operation;

    public User(String name) {
        this.name = name;
    }

    public abstract int menu();

    public void doOperation(int choice, BookList bl) {
        this.operation[choice].work(bl);
    }
}

Main

import book.BookList;
import user.Administrator;
import user.Ordinary;
import user.User;

import java.util.Scanner;

public class Main {
    public static User login() {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入姓名:");
        String name = sc.next();
        System.out.println("请确认您的身份:1 > 管理员  0 > 学生");
        int choice = sc.nextInt();
        if(choice == 1){
            return new Administrator(name);
        }else{
            return new Ordinary(name);
        }
    }
    public static void main(String[] args) {
        BookList bl = new BookList();
        //登录
        User user = login();
        //选择菜单
        while(true){
            int choice = user.menu();
            user.doOperation(choice,bl);
        }

    }
}

以上为全部源码,有不太明白的同学可以去下载链接直接获取源码

源码获取

毕设专栏

图书管理系统(借还图书)--Java实现(附源码)

 https://download.csdn.net/download/m0_54925305/86236726

https://blog.csdn.net/m0_54925305/category_11702151.html?spm=1001.2014.3001.5482文章来源地址https://www.toymoban.com/news/detail-479749.html

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

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

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

相关文章

  • java毕业设计——基于java+Java Swing+sqlserver的图书馆书库管理系统设计与实现(毕业论文+程序源码)——图书馆书库管理系统

    大家好,今天给大家介绍基于java+Java Swing+sqlserver的图书馆书库管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴,可以进入我的博客主页查看左侧最下面栏目中的自助下载方法哦 文章目录: 毕业

    2024年02月03日
    浏览(33)
  • 基于Java的图书管理系统的设计与实现(附源码网盘链接)

    源码已开源可自取,链接在文末 随着信息技术的不断发展,图书管理系统已经成为现代图书馆不可或缺的一部分。传统的手工管理方式已经无法满足图书管理的需求,因为它们缺乏效率和准确性,并且很难应对大量读者和图书的管理。根据图书管理的现状,设计一款在线图书

    2024年02月04日
    浏览(37)
  • 基于Java的图书商城管理系统设计与实现(源码+lw+部署文档+讲解等)

    💗 博主介绍 :✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 👇🏻 精彩专栏 推荐订阅 👇🏻 2023-2024年最值得选的微信小程序毕业设

    2024年02月07日
    浏览(36)
  • 图书管理系统(Java实现,十个数据表,含源码、ER图,超详细报告解释,2020.7.11更新)...

    图书管理系统数据库设计实验报告 2020.7.11 修改了表的结构,表之间增加了外键联系,更加完整且符合第三范式。 数据库设计实验报告 疫情期间,大家都只能够在家里,不能去到学校,此时需要在图书馆借书,就是只能通过网络来操作了。因此,网上图书馆就此诞生了,有了

    2024年02月05日
    浏览(105)
  • java项目-图书馆管理系统源码

    作者主页:夜未央5788  简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码   项目介绍 本毕业设计运用了使用技术:spring mvc+spring+hibernate,数据库使用了当前较为流行的Mysql5.7。根据本校图书馆的工作流程与实际的需求和特色,本系统需满足以下几个方

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

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

    2024年03月26日
    浏览(78)
  • 用Python实现一个图书管理系统(附带源码)

    目录 一、题目信息 二、分析 三、主函数 四、总结 实现一个图书管理系统,要求有学生信息管理、图书信息管理和图书借阅管理三大功能。 创建一个LMS类 1.学生信息管理:具有添加学生和删除学生两个功能,并将学生存在Student列表中。在删除学生时,如果学生还有未归还书

    2024年02月11日
    浏览(33)
  • 毕业设计 基于java web的在线图书管理系统(源码+论文)

    🔥 Hi,各位同学好呀,这里是L学长! 🥇今天向大家分享一个今年(2022)最新完成的毕业设计项目作品 基于java web的在线图书管理系统 🥇 学长根据实现的难度和等级对项目进行评分(最低0分,满分5分) 难度系数:3分 工作量:3分 创新点:3分 项目获取: https://gitee.com/sinonfin

    2024年02月10日
    浏览(42)
  • 【源码篇】基于SpringBoot+thymeleaf实现的图书管理系统

    系统介绍 基于SpringBoot+thymeleaf实现的图书管理系统分为管理员、读者两个登录角色,一共是8个功能模块 管理员权限 图书管理: 添加图书:书名、作者、出版社、ISBM、简介、价格、出版日期、分类、数量 查询图书:根据书名或分类查询 删除图书:点击删除按钮即可 修改图

    2024年02月07日
    浏览(36)
  • 【Java】实现图书管理系统

    随着社会的发展和科技的进步,图书馆的规模和藏书量都在不断扩大,图书的管理和维护变得越来越复杂。传统的图书管理方式已经无法满足现代图书馆的需求,因此需要开发一种高效、便捷的图书管理系统来提高图书管理效率和读者的借阅体验。 在这种背景下,我们设计了

    2024年02月20日
    浏览(46)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包