版本号:V1.0文档名称:详细设计说明书项目名称:图书管理系统1.引言1.1编写目的根据《需求规格说明书》、《概要设计说明书》,在仔细考虑讨论之后,我们对《图书管理系统》软件的功能划分、数据结构、软件总体结构的实现有了进一步的想法。我们将这些想法记录下来,作为详细设计说明书,为进一步设计软件、编写代码打下基础。1.2项目背景随着社会信息量的与日俱增,作为信息存储的主要媒体之一图书,数量、规模比以往任何时候都大的多,不论个人还是图书管理部门都需要使用方便而有效的方式来管理自己的书籍。在计算机日益普及的今天,对个人而言若采用一套行之有效的图书管理系统来管理自己的书籍,会方便许多,这也充分应用硬件资源;对图书管理部门而言,以前单一的手工检索已不能满足人们的要求,为了便于图书资料的管理更为需要有效的图书管理软件。图书管理系统软件LMSV1.0是一功能比较完善的数据管理软件,具有数据操作方便高效迅速等优点。该软件采用功能强大的数据库软件开发工具进行开发,具有很好的可移植性,可在应用范围较广的DOS,WINDOWS系列等操作系统上使用。除此以外,LMSV1.0可通过访问权限控制以及数据备份功能,确保数据的安全性。1.3定义文档中采用的专门术语的定义及缩略词简要如下:LMS:LibraryManagementSystem,图书管理系统。1.4参考资料[1]郑人杰,殷人昆,陶永雷。《实用软件工程》(第二版)。北京:清华大学出版社,1997。[2]金勇华,曲俊生。《JAVA网络高级编程》。北京:人民邮电出版社,2001。[3]BorlandSoftwareCorporation。《JBUILDER培训教程》北京:机械工业出版社,2002。2总体设计1.软件结构主模块用户界面子模块调度用户输入图书查询还书输出借书系统操作借书模块读者身份查验用户界面图书查验输入输入获取相关信息输出数据库查询借书登记操作命令生成数据库操作还书模块借书记录查验记录还书信息数据库查询还书登记操作命令生成数据库操作用户界面输入获取相关信息输出计算超期系统操作模块系统设置系统操作权限查验更改口令子模块调度读者库操作数据统计用户界面输入输出图书库操作数据备份数据恢复获取记录数据库查询数据库操作图书库操作模块用户界面输入更新显示输出事务处理移动至上一个记录移动至下一个记录移动至最后记录移动至第一个记录加入记录删除记录移动至指定ID更新当前记录输入IDID查验借书记录查验数据库查询数据库操作更新当前记录输入IDID查验获取记录读者库操作模块事务处理移动至下一个记录移动至最后记录移动至第一个记录移动至上一个记录移动至指定ID删除记录加入记录用户界面输入更新显示输出获取相关信息数据统计/图书查询用户界面查询命令生成数据库查询结果显示输入输出生成结果列表输入排序结果列表显示系统设置模块用户界面输入更新显示输出系统设置获取操作员记录集获取数据库查询事务处理上一个操作员下一个操作员删除加入保存当前设置数据库操作更新当前记录3程序描述1.主模块功能建立与数据库连接获取系统设置运行主对话框根据输入调用子模块退出系统时断开与数据库的连接输入项目用户鼠标点击输入程序逻辑见右图存储分配内部数据:数据库连接m_pConnection_ConnectionPtr数据库连接指针m_IsConnectedBOOL数据库连接指示系统设置m_MaxLBNumint可借图书数上限m_MaxLBDayint借书天数上限子对话框m_BookOutDlgCBookOutDlg借书对话框m_BookInDlgCBookInDlg还书对话框m_BookQuiryDlgCBookQuiryDlg图书查询对话框m_SysDlgCSysDlg系统操作对话框测试要点数据库连接情况:正常情况,数据库文件缺少,外部系统异常。系统设置获取:正常情况,外部系统异常。对用户输入的响应:合法输入,能够正常调用子模块;非法输入,系统能否辨别,并作出响应(提出警告);子模块的异常状况,系统能否及时做出响应。2.借书模块功能查验输入的读者证号运行借书对话框获取该读者的相关信息查验输入的图书号登记借书输入项目读者证号、图书书号(用户输入)输出项目读者信息(姓名);读者已借图书信息(书名、借书日期);程序逻辑初始化借书模块还书模块图书查询模块系统查询模块接口调用形式:voidCBookDlg::LendBook(const_ConnectionPtrpConnection,constintMaxLBNum)传入参数:pConnection数据库连接指针MaxLBNum系统参数(可借图书上限)传出参数:无存储分配内部数据:数据库m_pConnection_ConnectionPtr数据库连接指针用户界面m_strReaderNameCString读者姓名m_strLBInfCString已借图书信息m_strLBNumCString已借图书数显示m_lBookIDlong欲借图书书号内部参数m_lReaderIDlong当前读者证号m_MaxLBNumint可借图书数上限测试要点模块正常运行流程用户输入数据检查(读者证号、图书书号),包括数据合理性检查,以及合法性检查数据库操作数据库连接异常时的响应情况2.1读者查验模块功能对话框初始化输入读者证号操作取消输入不合理查验借书对话框点击返回查验出错借书登记更新相关信息及显示关闭对话框查验输入的读者证号是否合法(即是否存在与该读者证号对应的读者记录)输入项目读者证号(整型常数),读者姓名(引用型字符串)输出项目查验结果(BOOL值)程序逻辑生成数据库查询语句调用数据库查询模块IF返回结果集为空(不存在该读者证号)置读者姓名字符串为空返回”非法读者证号”ELSE置读者姓名字符串返回”合法读者证号”接口调用形式:BOOLCheckReader(constlongReaderID,CString&strReaderName)传入参数:ReaderID(常量参数传入)待查验的读者证号m_pConnection(借书模块内的全局变量)数据库连接指针传出参数:读者证号存在/不存在标志(返回值)strReaderName(传入的引用参数)读者证号对应的读者姓名(读者证号不存在时置为空)存储分配局部变量:数据库pReader_RecordsetPtr数据库查询结果集指针查询参数vtQuiry_variant_t查询命令vNull_variant_t查询连接类型转换strQuiryCstring查询命令类型转换vtemp_variant_t查询结果类型转换测试要点数据库连接正常时输入合理合法参数输入参数不合理输入参数不合法数据库连接异常;数据库数据异常(读者姓名为空)2.2图书查验模块功能查验输入的图书书号是否合法输入项目图书书号(整型常量)输出项目查验结果(BOOL值)程序逻辑生成数据库查询语句调用数据库查询模块IF返回结果集为空(不存在该图书书号)返回”非法图书书号”ELSE返回”合法图书书号”接口调用形式:BOOLCheckBook(constlongBookID)传入参数:BookID(整型常量)带查验的图书书号传出参数:书号合法/不合法标志(返回值)查验结果存储分配局部变量:数据库pBook_RecordsetPtr数据库查询结果集指针查询参量vtQuiry_variant_t查询字符串vNull_variant_t查询连接参量类型转换strQuiryCstring查询命令类型转换测试要点数据库连接正常数据库数据正常输入的书号合理合法输入的书号不合理输入的书号不合法数据库数据异常数据库连接异常2.3相关信息获取模块功能获取合法读者的借书记录输入项目合法读者证号(整型常量);读者已借图书信息(引用型字符串)输出项目查询操作结果(BOOL值)程序逻辑生成数据库查询语句调用数据库查询模块IF操作成功WHILE查询结果集未读至文件尾读取各项值置入读者已借图书信息字符串返回”操作成功”ELSE置空读者已借图书信息字符串返回”操作失败”接口调用形式:BOOLGetLBInf(constlongReaderID,CString&strLBInf)传入参量:ReaderID(整型常量)查询参数strLBInf(引用型字符串)返回用的格式化的查询信息传出参量:查询成功/失败标志(BOOL值)查询操作结果信息存储分配局部变量:数据库pRecords_RecordsetPtr数据库查询结果集指针查询参数vtQuiry_variant_t查询命令字符串vNull_variant_t查询连接参量类型转换strQuiryCString查询命令类型转换测试要点数据库连接正常数据库数据正常输入正常(读者证号合法)输入异常(读者证号非法)数据库数据异常数据库连接异常2.4借书登记模块功能登录借书信息输入项目读者证号(整型常量);图书书号(整型常量)输出项目操作结果(BOOL值)程序逻辑生成数据库操作命令调用数据库操作模块IF操作成功返回”操作成功”ELSE返回”操作失败”接口调用形式:BOOLWriteBlrecord(constlongReaderID,constlongBookID)传入参数:ReaderID(整型常量)操作参数(借阅者读者证号)BookID(整型常量)操作参数(借阅图书书号)传出参数:操作成功/失败标志(返回值)存储分配局部变量:操作命令参数vRecsAffected_variant_t操作影响vtCommand_variant_t操作命令类型转换strCommandCString操作命令类型转换strTodayCString借书日期类型转换oleTodayCOleDateTime借书日期测试要点数据库连接正常数据库操作正常输入参数合法输入参数非法数据库操作异常数据库连接异常3.还书模块功能运行还书对话框查验输入的图书书号对合法输入登录还书信息显示相关信息(本次还书操作信息,尚未归还图书的相关信息,读者信息)输入项目图书书号(用户输入)输出项目相关信息(本次还书操作信息,尚未归还的图书信息,读者信息)程序逻辑接口调用形式:CBookInDlg::ReturnBook(const_ConnectionPtrpConnection,constintMaxLBDay)传入参量:pConnection(数据库连接指针常量)提供数据库连接MaxLBDay(整型常量)系统参数(借书天数上限)传出参量:无存储分配内部变量:数据库m_pConnection_ConnectionPtr数据库连接指针m_pRecords_RecordsetPtr数据库查询结果集指针用户界面m_lBookIDlong欲还图书书号m_strLenderIDCString借阅者图书证号显示m_strLenderCString借阅者姓名m_strRBInfCString已还图书信息显示m_strNRBInfCString未还图书信息显示m_strRBNumCString已还图书数显示m_strNRBNumCString未还图书数显示内部参数m_lCurrIDlong当前还书者读者证号m_intRBNumint已还图书计数初始对话框借书记录查验模块点击退出出错返回登记还书更新还书信息及显示关闭对话框m_MaxLBDayint借书天数上限测试要点模块正常工作流程对输入的查验,包括输入值的合法性与合理性检验数据库连接异常能否做出适当处理数据库数据异常时能否判断并给予适当处理3.1借书记录查验模块功能查验借书记录是否存在(即是否存在与指定书号相对应的借书记录)输入项目图书书号(传入参数)输出项目查验结果(返回值);查询结果集(图书书号、书名、状态、出借日期)程序逻辑生成数据库查询语句调用数据库查询模块IF操作成功IF查询结果集不为空(存在该借书记录)返回”记录存在”ELSE警告”记录不存在”ELSE警告”查询失败”返回”记录不存在”接口调用形式:BOOLChe