• 第二十五章《图书管理系统》第1节:图书管理系统简介


    图书管理系统具有图书信息管理、读者信息管理和借阅信息管理三大功能模块,本小节将从软件功能、数据库系统设计和项目结构几个方面介绍该软件系统的设计方案。

    25.1.1系统功能简介

    图书管理系统第一大功能模块是图书信息管理,这个模块的软件界面如图25-1所示。

    图25-1图书信息管理界面

    从图25-1可以看出:图书信息管理模块能够完成图书的新增、修改、删除、借阅登记等常规的信息管理工作,并且还能以多种方式对图书进行检索。

    新增图书信息对话框如图25-2所示。

    图25-2新增图书信息对话框

    在这个对话框中,用户正确填写关于图书的各项信息,之后单击“确定”按钮就可以完成新增图书的操作。从图25-2可以看出:图书类型和出版社这两项信息并不是由用户手动填写的,而是从下拉框中选择的。这两个下拉框中的选项也是可以编辑和维护的,在图25-1所示的界面中单击“图书类型设置”和“出版社管理”按钮即可打开维护这两个下拉框选项的对话框,图书类型设置对话框如图25-3所示。

    图25-3图书类型设置对话框

    在这个对话框中可以对图书类型进行新增、修改、删除的操作。用户所设置的图书类型都会出现在图24-2所示窗体的图书类型下拉框中。同样,用户所设置的出版社信息,这些出版社信息也都会出现在图24-2所示窗体的出版社下拉框中。

    当用户在图书列表中选中一条图书信息后单击“借阅”按钮,即可打开借阅登记对话框,这个对话框如图24-4所示。

    图24-4借阅登记对话框

    在图24-4所示的借阅登记对话框中会自动显示出读者所选定图书的编号和书名,并且还会显示出借书日期和最晚归还日期。借书日期就是当前日期,而最晚归还日期是当前日期后的第60天。操作人员只需要在这个对话框中填写读者编号,并单击“确定”按钮即可完成图书借阅操作。当完成图书借阅操作后,在借阅信息管理界面中就会出现一条借阅信息。

    图书管理系统的第二个模块是读者信息管理,该模块的界面如图24-5所示。

    图25-5读者信息管理界面

    在读者信息管理界面中显示了读者的各项信息,其中读者编号与他的图书证编号是一致的,因此每条读者信息与其图书证上的信息也是一致的。在这个界面中可以完成读者信息的查询、新增、修改等操作,此外,如果有读者出现多次逾期未还图书、丢失图书等情况,还可以对其进行停用操作,只需要在列表中选中一个读者,然后单击“停用”按钮即可,处于停用状态的读者不能再次借阅本系统中的图书,但可以进行归还图书的操作。被停用的读者还可以被恢复正常状态,只需要从列表中选定被停用的读者后单击“恢复”按钮即可。读者信息不能被删除,这是为了在系统中保留所有注册过的读者信息。

    图书管理系统的第三个模块是借阅信息管理,这个模块的界面如图25-6所示。

    图25-6借阅信息管理界面

    在借阅信息管理模块中显示出了图书的借阅信息,这些信息的最后一列显示出了图书的归还状态,每条借阅信息根据图书是否归还以及是否超过归还日期分为未还、逾期未还、按时归还和逾期归还4种状态。每次打开该模块时,系统都会自动更新状态,并且界面左下角还设置了“刷新”按钮用来手动更新状态,例如登录图书管理系统时是2022年10月5日,但一直到10月6日还没有退出系统,在这种情况下可能某些图书在10月5日还属于“未还”状态,但到了10月6日就变成了“逾期未还”状态,而单击“刷新”按钮就能够即时更新状态。

    当操作人员选定一条借阅信息并单击“还书”按钮后,能够完成还书操作,但在真正还书之前系统会弹出确认对话框让操作人员确认图书信息和读者信息以避免出现操作错误的情况,还书确认对话框如图25-7所示。

    图25-7还书确认对话框

    25.1.2数据库表设计

    图书管理系统包含多种信息,它们分别是:图书类型、出版社、图书、读者、借阅记录,因此本系统总共有5张数据表,它们分别是:

    • book_type:存储图书类型信息。
    • publisher:存储出版社信息。
    • book:存储图书信息。
    • reader:存储读者信息。
    • record:存储借阅信息。

    在以上5张表中,book_type表和publisher表的结构完全相同,它们如表25-1所示。

    表25-1 book_type表和publisher表结构

    字段

    类型

    长度

    意义

    id

    varchar

    20

    编号

    name

    varchar

    20

    名称

    book表的结构如表25-2所示。

    表25-2 book表结构

    字段

    类型

    长度

    意义

    id

    varchar

    20

    图书编号

    book_type_id

    varchar

    20

    图书类型编号

    name

    varchar

    60

    书名

    author

    varchar

    20

    作者

    price

    varchar

    20

    价格

    publisher_id

    varchar

    20

    出版社编号

    position

    varchar

    20

    所在位置(书架)

    total_num

    int

    图书总数

    lend_num

    int

    外借数量

    info

    varchar

    100

    图书简介

    在表25-2中,表示价格的price字段被定义为varchar类型而不是decimal类型,这是因为在本系统中价格只需要记录而不需要计算,所以使用varchar类型更加方便操作。

    reader表的结构如表25-3所示。

    表25-3 reader表结构

    字段

    类型

    长度

    意义

    id

    varchar

    20

    读者编号

    name

    varchar

    20

    读者姓名

    sex

    char

    2

    读者性别

    phone

    char

    11

    读者手机号

    card_date

    varchar

    10

    办卡日期

    state

    varchar

    10

    状态

    record表的结构如表25-4所示。

    表25-4record表结构

    字段

    类型

    长度

    意义

    id

    varchar

    20

    借阅信息流水号

    reader_id

    varchar

    20

    读者编号

    book_id

    varchar

    20

    所借图书编号

    lend_date

    char

    10

    借书日期

    reg_return_date

    char

    10

    系统规定的最后归还日期

    act_return_date

    char

    10

    读者实际归还图书的日期

    state

    varchar

    10

    状态

    25.1.3项目结构简介

    图书管理系统的源代码所涉及的类更多,为了代码结构能更加清晰,本项目把类分成了多个包,这些包有以下几个:

    model:模型包,表示图书、读者等实体的类都在这个包下。

    dao:数据访问对象包,用以访问数据库的类都在这个包下。

    view:界面包,所有窗体类和自定义对话框都在这个包下。

    util:工具类包,访问数据库的工具类、处理日期时间的工具类都放在这个包下

    下面的表25-5展示了各个包下类的意义和作用。

    表25-5 图书管理系统所有类

    所在包

    类名称

    意义

    model

    BookType

    图书类型

    model

    Publisher

    出版社

    model

    Book

    图书

    model

    Reader

    读者

    model

    Record

    借阅记录

    dao

    BookTypeDao

    操作book_type表的类

    dao

    PublisherDao

    操作publisher表的类

    dao

    BookDao

    操作book表的类

    dao

    ReaderDao

    操作reader表的类

    dao

    RecordDao

    操作record表的类

    view

    LoginFrame

    登录窗体类

    view

    MainFrame

    主窗体类

    view

    BookPanel

    图书信息面板

    view

    BookTypeDailog

    图书详情对话框

    view

    BookTypeDailog

    图书类型管理对话框

    view

    PublisherDailog

    出版社管理对话框

    view

    ReaderPanel

    读者信息面板

    view

    ReaderDialog

    读者详情对话框

    view

    RecordPanel

    借阅信息面板

    view

    LendDialog

    登记借阅对话框

    util

    DBUtil

    数据库工具

    util

    DateUtil

    日期处理工具类

    util

    IDGenerator

    借阅流水号生成类

    Main

    系统启动类,包含main()方法

    除阅读文章外,各位小伙伴还可以点击这里观看我在本站的视频课程学习Java!

  • 相关阅读:
    潘多拉 IOT 开发板学习(HAL 库)—— 实验2 蜂鸣器实验(学习笔记)
    PMP每日一练 | 考试不迷路-11.18(包含敏捷+多选)
    零基础可以报考中级经济师吗?需要准备多久?
    调用WebAPI的提示:由于远程方已关闭传输流,身份验证失败。
    STM32的DAC
    AI推介-大语言模型LLMs论文速览(arXiv方向):2024.01.01-2024.01.10
    IP-Guard申请外发流程说明步骤
    业务效果提升10%,效率翻倍!PP-OCRv4助力提升政务文档处理能力
    FreeRTOS教程8 任务通知
    【ArcGIS微课1000例】0046:制图表达(1)---什么是制图表达?
  • 原文地址:https://blog.csdn.net/shalimu/article/details/128188671