1引言1、1课题背景现代图书馆管理的本质在于创新,以往的图书馆管理完全手工操做,通过卡片记录信息,既浪费时间,又浪费人工、纸张,而且书籍与读者的信息查询比较麻烦,不能提供领导管理上需要的各种信息如本馆各种资料分布及借阅(流通)情况。
随着电子信息技术的飞速发展,图书馆的工作也发生了实质性的进展与变化。
现代化的服务手段逐渐替代传统的手工操作,计算机编目、光盘数据库与网络检索技术等新型的项目开始在图书馆领域普及。
在计算机技术、网络技术的进一步冲击下,图书馆随着教育教学改革的深入与素质教育的全面推动,逐渐演变形成数字化图书管理,其作用也越来越重要了[1]。
为了使图书馆的管理更科学、更规范,减少重复劳动,节省图书馆建设与管理中的人力、财力,方便读者查询与借阅书籍,所以有必要建立一个图书馆管理系统。
1、2课程设计目的图书馆每天都有很多的书出借归还,使用图书馆管理系统可以大大地提高工作效率,减少工作中可能出现的错误,就是提高图书馆办公自动化水平的重要手段之一。
其开发主要包括后台数据库的建立与维护以及前端应用程序界面开发两个方面。
在中国软件行业日益进步的今天,如何利用这些资源来帮助管理员可以快速的管理,让管理员以及借书者有利用更多的时间去从事其她的事情已成为一个非常注重的事情。
因而设计一个好的图书馆管理信息系统,能提高图书馆的管理效率,有利于对图书信息的统计。
论文旨在论述图书馆管理系统的设计与开发。
通过图书馆管理信息系统的设计,熟练掌握Visual C++、Access 2003等工具软件,系统地掌握需求分析、数据库设计、编码实现、测试等软件开发的流程,提高自身分析问题、解决问题的能力[2]。
1、3课程设计任务本课程设计任务就是通过开发一个数据库图书馆管理信息系统,学习数据库系统的设计与开发,采用Visual C++与Access 2003等软件为开发工具。
通过对计算机硬件与软件解决方案的论证,对应用领域进行调查分析,参考各种资料与进行数据库系统开发实践。
在指导老师的帮助下,已经基本上成功地实现了设计任务书的要求,使得设计的数据库系统能够实现一般数据库的管理。
2 系统分析2、1 功能需求分析该项目系统包含的功能有:图书信息管理、读者信息管理、借书服务管理,还书服务管理,其中每个功能由若干个相关联的子功能模块组成。
如图所示:图2、1 系统功能模块(1)图书信息管理“图书信息管理”功能模块用于管理图书的相关信息,包括浏览、查询、添加、修改与删除功能。
在进行图书信息的添加时,系统会自动检测所添加的图书信息中的书籍条码在书籍表中就是否已经存在,如果存在,会提示用户该书已经存在。
在进行图书信息的删除时,要首先弹出提示窗口让用户确认就是否删除,只有用户确认后才能进行图书信息的删除。
在进行图书修改时,不准用户修改书籍条码,因为书籍条码作为数据库中书籍表的主键就是不同书籍的唯一标识,不准修改书籍条码可以防止不经意将书籍条码改错;如果确实要修改书籍条码,可以通过数据库管理员来实现,也可以先将错误书籍条码信息删除再添加正确的书籍信息,这样在删除时会弹出提示窗口让用户确认就是否删除,给用户以提示,防止意外错误[3]。
其模块如下图所示:“图书信息查询”功能模块用于查询图书的相关信息,包括书籍条码(BOOK_ID)、书名、出版社、作者、出版日期、尚能否借出。
(2) 读者信息管理“读者信息管理”功能模块用于管理与读者相关的信息,包含的子功能模块如下图所示:“读者信息查询”功能模块用于查询读者的相关信息,包括读者条码、读者姓名、性别、证件号码。
“读者信息添加”功能模块用于添加新近读者的相关信息,包括读者条码、读者姓名、性别、证件号码。
“读者信息修改”功能模块用于修改已存读者的需修改的信息。
图2、3 “读者信息管理”功能模图2、2 “图书信息管理”功能模块“读者信息删除”功能模块用于删除读者的所有信息。
(3)借书服务管理模块图书馆管理员通过此模块来进行借书操作。
在进行借书信息的添加时,系统会自动检测该读者就是否有权借书(过去借书历史中有超期未还的现象),所借书就是否在馆内未被借出,只要有一个条件不满足,就会提示出错。
“借书服务管理”用于登记读者借阅图书的记录并减少在库图书的库存量,登记内容包括读者编号、书籍条码(BOOK_ID)。
(4)还书服务管理模块图书馆管理员通过此模块来进行还书操作。
在进行还书信息的添加时,系统会自动检测此次还书就是否在规定的时间内,若超期,则锁定该读者,并给出提示信息。
“还书服务管理”功能用于登记读者归还图书的记录并增加在库图书的库存量,登记内容包括读者姓名、书籍条码(BOOK_ID)、借书日期、归还时间、超期天数。
2、2 系统流程图在用户需求分析的基础上把系统划分为三个子模块:读者信息管理、图书信息管理、图书流通管理。
这三个模块之间,紧密结合,共享信息资源,形成一种完美的学校图书管理系统流程图[4]。
如下图所示:图2、4 系统流程图3 数据库设计根据系统功能需求,数据库采用Microsoft Access 2003建立。
Microsoft Access 2003就是一个桌面级的数据库管理系统,简单易用,功能强大。
支持的数据类型较丰富,操作简单,维护费用比较低[5]。
3、1 概念结构设计概念结构设计就是指对用户的需求进行综合、归纳与抽象,形成一个独立于具体DBMS 的概念模型,就是整个数据库设计的关键。
系统基本E-R图(1)图书管理系统基本E-R图如下所示:图3、1系统基本E-R图(2) 各子系统功能E-R图1、图书信息管理所需管理的内容E-R图如下所示:图3、2图书信息管理E-R图2、读者信息管理所需管理的内容E-R图如下所示:图3、3读者信息管理E-R图3、借、还书服务管理所需管理的内容E-R图如下所示:图3、4图书信息管理E-R图3、2 逻辑结构设计逻辑设计阶段的任务就是把概念结构转换为选用DBMS(数据库管理系统)所支持的模式[6]。
根据模块的设计,以及根据规范化的设计要求,该系统的数据库设计如表3-1至3-5所示,表3-1主要用来存放管理员的登录信息,表3-2主要用来存放可借的书籍信息,表3-3用来存放读者信息,表3-4就是借书信息表,表3-5就是借还历史表。
表3-1 登录信息表(CLERK)字段名称数据类型字段属性字段大小描述必填字段索引就是主键否Name 文本8 管理员ID 就是有(无重复) 就是PassWord 文本8 管理员密码就是无否字段名称数据类型字段属性字段大小描述必填字段索引就是主键否BOOK_ID 文本30 书籍条目就是有(无重复) 就是BOOK_N文本50 书籍名称就是无否AMEAUTHOR 文本30 作者否无否PRESS 文本50 出版社否无否PRESS_D文本50 出版日期否无否表3-4 借书信息表(BORROW)续表4 系统实现4、1登录模块实现(1)模块功能该功能模块实现的功能就是实现管理员到图书管理系统的登录操作,登录信息(用户名、密码)。
(2)界面设计【系统登录】对话框界面如图4、1所示。
图4、1【系统登录】对话框界面其中主要控件的属性设置及功能如表4-1所示。
表4-1 对话框IDD_ DIALOG_LOGIN中的主要控件核心代码如下:void CLoginDlg::OnConfirm(){CClerkDataSet mrsDataSet; /*声明记录集*/CString mSqlStr;UpdateData(TRUE);if (m_strName、IsEmpty()) /*判断用户名信息就是否为空*/{AfxMessageBox("请输入用户名!");return;}if (!mrsDataSet、Open(AFX_DB_USE_DEFAULT_TYPE, mSqlStr)){AfxMessageBox("CLERK表打开失败!");return;}(3)主界面当管理员登录信息正确时,将登录到主界面,该模块中有“图书资料” ,“读者资料” ,“借书管理”,“还书管理”功能模块。
如下图所示:图4、2 主界面主界面的控件设置与说明表4-2所示。
表4-2主界面控件设置及其说明控件ID号说明IDC_BUTTON_BOOK “图书资料”按钮IDC_BUTTON_READER “读者资料”按钮IDC_BUTTON_BORROW “借书管理”按钮IDC_BUTTON_RETURN “还书管理”按钮IDC_BUTTON_GOODBYE “退出”按钮核心代码如下:CLoginDlg Dlg;if (Dlg、DoModal() == IDOK){{m_strUserName = Dlg、m_strName ;CLibraryDlg Dlg;Dlg、DoModal();}}4、2图书资料模块实现在进入该功能模块后,我们可以瞧到库存图书的详细信息。
在该模块中还包含有对新图书的入库功能(添加新图书的记录),对已有图书资料的注销功能(删除已有图书的记录),对已有图书信息的修改功能,以及按书名与书籍条码等搜索的功能[7]。
如图所示:图4、3 “图书信息”界面界面的控件设置与说明表4-3所示。
表4-3对话框控件设置及其说明控件ID号说明IDC_STATIC 表示“书名”静态文本框IDC_STATIC 表示“书籍条码”静态文本框IDC_STATIC 表示“作者”静态文本框IDC_STATIC 表示“出版社”静态文本框IDC_STATIC 表示“书籍条码”静态文本框IDC_STATIC 表示“出版日期”静态文本框IDC_STATIC 表示“尚能借出”静态文本框IDC_STATIC 表示“Y/M/D”静态文本框IDC_FIRST “第一条[&F]”按钮IDC_PRIOR “上一条(&P]”按钮IDC_NEXT “下一条[&N]”按钮IDC_LAST “末一条(&L]”按钮IDC_NEW “增加[&N]”按钮IDC_EDIT “修改[&E]”按钮IDC_DELETE “删除[&D]”按钮IDC_ENQUERY “查询[&Q]”按钮IDC_SA VE “保存[&S]”按钮IDC_CANCEL_REC “取消[&C]”按钮IDC_EXIT “退出[&X]”按钮IDC_BOOKNAME 书名编辑框IDC_AUTHOR 作者编辑框IDC_PRESS 出版社编辑框IDC_BOOKID 书籍条码编辑框IDC_PRESSDATE 出版日期编辑框IDC_FLAG_BORROW 尚能借出编辑框核心代码如下:void CBookDataSet::AssertValid() const{CRecordset::AssertValid();}void CBookDataSet::Dump(CDumpContext& dc) const{CRecordset::Dump(dc);}4、3读者资料模块实现该模块主要实现对已存在的读者信息进行管理,主要有对新增加读者信息的添加功能,对已存在读者信息的修改功能,对已存在读者信息按读者编号进行删除的功能,以及对已存在读者信息按读者条码或姓名模糊查找功能。