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

时间:2023-01-05 18:04:57

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

25.1.1系统功能简介

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

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

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

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

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

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

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

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

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

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

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

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

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

图24-4借阅登记对话框

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

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

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

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

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

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

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

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

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

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

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

图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()方法

本文字版教程还配有更详细的视频讲解,小伙伴们可以点击这里观看。