版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、详细设计说明书 1 引言 1. 1 编写目的 根据需求规格说明书 、概要设计说明书 ,在仔细考虑讨论之后,我们对图书管理系 统软件的功能划分、数据结构、软件总体结构的实现有了进一步的想法。我们将这些想法记 录下来,作为详细设计说明书,为进一步设计软件、编写代码打下基础。 1.2 背景 随着社会信息量的与日俱增,作为信息存储的主要媒体之一图书,数量、规模比以往任何 时候都大的多,不论个人还是图书管理部门都需要使用方便而有效的方式来管理自己的书籍。 在计算机日益普及的今天, 对个人而言若采用一套行之有效的图书管理系统来管理自己的书籍, 会方便许多。对图书管理部门而言,以前单一的手工检索已不能满足人
2、们的要求,为了便于图 书资料的管理需要有效的图书管理软件。 本图书管理系统软件是一套功能比较完善的数据管理软件,具有数据操作方便高效迅速等 优点。该软件采用功能强大的数据库软件开发工具进行开发,具有很好的可移植性,可在 应用范围较广的 DOS WINDOW系列等操作系统上使用 1.3 定义 文档中采用的专门术语的定义及缩略词简要如下: LMS: Library Management System ,图书管理系统 1.4 参考资料 1 费贤举关于图书管理系统的批文 2 郑人杰,殷人昆,陶永雷。 实用软件工程 (第二版)。北京:清华大学出版社, 1997。 3 王立福,麻志毅。 软件工程 (第二版
3、)。北京:北京大学出版社, 2001。 4 唐学忠,王文。 Visual Basic 程序设计教程北京:中国电力出版社,2002。 14 2程序系统的结构 3程序(标识符)设计说明 3.1主模块 功能 建立与数据库连接 获取系统设置 运行主对话框 根据输入调用子模块 退出系统时断开与数据库的连接 输入项目 用户鼠标点击输入 程序逻辑 见右图 存储分配 内部数据:数据库连接 测试要点 系统设置 子对话框 m_pC onn ectio n _Conn ectio nPtr 数据库连接指针 m_lsC onn ected BOOL 数据库连接指示 m_MaxLBNum int 可借图书数上限 m_M
4、axLBDay int 借书天数上限 m_BookOutDlg CBookOutDlg 借书对话框 m_Bookl nDlg CBookI nDlg 还书对话框 m_BookQuiryDlg CBookQuiryDlg 图书查询对话框 m_SysDlg CSysDlg 系统操作对话框 数据库连接情况:正常情况,数据库文件缺少,外部系统异常。 对用户输入的响应: 合法输入,能够正常调用子模块; 系统设置获取:正常情况,外部系统异常。 非法输入,系统能否辨别,并作出响应(提出警告); 子模块的异常状况,系统能否及时做出响应。 3.2借书模块 功能 查验输入的读者证号 运行借书对话框 获取该读者的相
5、关信息 查验输入的图书号 登记借书 输入项目 读者证号、图书书号(用户输入) 输出项目 读者信息(姓名);读者已借图书信息(书名、借书日期); 程序逻辑 接口 调用形式: void CBookDlg:Le ndBook(c onst _Conn ectio nPtr pConnection, const int MaxLBNum) 传入参数: pCo nn ection数据库连接指针 MaxLBNum 系统参数(可借图书上限) 传出参数:无 存储分配 内部数据: 数据库 m_pConnection ConnectionPtr 数据库连接指针 用户界面 m_strReaderName CStri
6、ng 读者姓名 m_strLBInf CString 已借图书信息 m_strLBNum CString 已借图书数显示 m_lBookID long 欲借图书书号 内部参数 m_lReaderID long 当前读者证号 m_MaxLBNum int 可借图书数上限 测试要点 模块正常运行流程 用户输入数据检查 (读者证号、图书书号 ) ,包括数据合理性检查,以及合法性检查 数据库操作 数据库连接异常时的响应情况 3.2.1 读者查验模块 功能 查验输入的读者证号是否合法 ( 即是否存在与该读者证号对应的读者记录) 输入项目 读者证号 (整型常数 ) ,读者姓名 ( 引用型字符串 ) 输出项
7、目 查验结果(BOOL值) 程序逻辑 生成数据库查询语句 调用数据库查询模块 IF 返回结果集为空 (不存在该读者证号 ) 置读者姓名字符串为空 返回”非法读者证号” ELSE 置读者姓名字符串 返回”合法读者证号” 接口 调用形式: BOOL CheckReader(const long ReaderID,CString &strReaderName) 传入参数: ReaderID( 常量参数传入 )待查验的读者证号 m_pConnection( 借书模块内的全局变量 ) 数据库连接指针 传出参数:读者证号存在 / 不存在标志 ( 返回值 ) strReaderName( 传入的引用参数 )
8、 读者证号对应的读者姓名 ( 读者证号不存在时置为空 ) 存储分配 局部变量: 数据库 pReader RecordsetPtr 数据库查询结果集指针 查询参数 vtQuiry _variant_t 查询命令 vNull _variant_t 查询连接 类型转换 strQuiry Cstring 查询命令类型转换 vtemp variant t 查询结果类型转换 测试要点 数据库连接正常时 输入合理合法参数 输入参数不合理 输入参数不合法 数据库连接异常;数据库数据异常( 读者姓名为空 ) 3.2.2 图书查验模块 功能 查验输入的图书书号是否合法 输入项目 图书书号 ( 整型常量 ) 输出项
9、目 查验结果(BOOL值) 程序逻辑 生成数据库查询语句 调用数据库查询模块 IF 返回结果集为空 (不存在该图书书号 ) 返回”非法图书书号” ELSE 返回”合法图书书号” 存储分配 局部变量 : 数据库 pBook RecordsetPtr 数据库查询结果集指针 查询参量 vtQuiry variant t 查询字符串 vNull variant t 查询连接参量 类型转换 strQuiry Cstring 查询命令类型转换 测试要点 数据库连接正常 数据库数据正常 输入的书号合理合法 输入的书号不合理 输入的书号不合法 数据库数据异常 数据库连接异常 3.2.3 相关信息获取模块 功能
10、 获取合法读者的借书记录 输入项目 合法读者证号 (整型常量 ) ;读者已借图书信息 (引用型字符串 ) 输出项目 查询操作结果(BOOL值) 程序逻辑 生成数据库查询语句 调用数据库查询模块 IF 操作成功 WHILE 查询结果集未读至文件尾 读取各项值 置入读者已借图书信息字符串 返回”操作成功” ELSE 置空读者已借图书信息字符串 返回”操作失败” 接口 调用形式: BOOL GetLBInf(const long ReaderID,CString &strLBInf) 传入参量: ReaderID( 整型常量 ) 查询参数 strLBInf( 引用型字符串 ) 返回用的格式化的查询信
11、息 传出参量:查询成功/失败标志(BOOL值)查询操作结果信息 存储分配 局部变量 : 数据库 pRecords RecordsetPtr 数据库查询结果集指针 查询参数 vtQuiry _variant_t 查询命令字符串 vNull variant t 查询连接参量 类型转换 strQuiry CString 查询命令类型转换 测试要点 数据库连接正常 数据库数据正常 输入正常 ( 读者证号合法 ) 输入异常 (读者证号非法 ) 数据库数据异常 数据库连接异常 3.2.4 借书登记模块 功能 登录借书信息 输入项目 读者证号 (整型常量 ) ;图书书号 (整型常量 ) 输出项目 操作结果(
12、BOOL值) 程序逻辑 生成数据库操作命令 调用数据库操作模块 IF 操作成功 返回”操作成功” ELSE 返回”操作失败” 接口 调用形式: BOOL WriteBlrecord(const long ReaderID,const long BookID) 传入参数: ReaderID( 整型常量 )操作参数 ( 借阅者读者证号 ) BookID( 整型常量 )操作参数 ( 借阅图书书号 ) 传出参数:操作成功 /失败标志 (返回值) 存储分配 局部变量: 操作命令参数 vRecsAffected _varia nt_t 操作影响 vtComma nd _varia nt_t 操作命令 类型
13、转换 strComma nd CStri ng 操作命令类型转换 strToday CStri ng 借书日期类型转换 oleToday COleDateTime 丿借书日期 测试要点 数据库连接正常 数据库操作正常 输入参数合法 输入参数非法 数据库操作异常 数据库连接异常 4 还书模块 功能 运行还书对话框 查验输入的图书书号 对合法输入登录还书信息 显示相关信息(本次还书操作信息,尚未归还图书的相关信息,读者信息) 输入项目 图书书号(用户输入) 输出项目 相关信息(本次还书操作信息,尚未归还的图书信息,读者信息) 程序逻辑 接口 调用形式:CBookl nDlg:ReturnBook(
14、co nst _Co nn ectio nPtr pConn ectio n, const int MaxLBDay) 传入参量:pConnection(数据库连接指针常量)提供数据库连接 MaxLBDay(整型常量)系统参数(借书天数上限) 传出参量:无 存储分配 内部变量: 数据库 m_pConnection ConnectionPtr 数据库连接指针 m_pRecords RecordsetPtr 数据库查询结果集指针 用户界面 m_lBookID long 欲还图书书号 m_strLenderID CString 借阅者图书证号显示 m_strLender CString 借阅者姓名
15、m_strRBInf CString 已还图书信息显示 m_strNRBInf CString 未还图书信息显示 m_strRBNum CString 已还图书数显示 m_strNRBNum CString 未还图书数显示 内部参数 m_lCurrID long 当前还书者读者证号 m_intRBNum int 已还图书计数 m_MaxLBDay int 借书天数上限 测试要点 模块正常工作流程 对输入的查验,包括输入值的合法性与合理性检验 数据库连接异常能否做出适当处理 数据库数据异常时能否判断并给予适当处理 4.1 借书记录查验模块 功能 查验借书记录是否存在 ( 即是否存在与指定书号相对
16、应的借书记录 ) 输入项目 图书书号 ( 传入参数 ) 输出项目 查验结果 (返回值 ) ;查询结果集 (图书书号、书名、状态、出借日期 ) 程序逻辑 生成数据库查询语句 调用数据库查询模块 IF 操作成功 IF 查询结果集不为空 ( 存在该借书记录 ) 返回”记录存在” ELSE 警告”记录不存在” ELSE 警告”查询失败” 返回”记录不存在” 接口 调用形式: BOOL CheckBlrcord(const long BookID) 传入参量: BookID( 整型常量 ) 传出参量:书号合法/非法标志(BOOL型) 存储分配 局部变量: 查询参数 vtQuiry_variant_t查询
17、命令 vNull 类型转换 strQuiry 引用的全局变量: m_pConnection m_pRecords 测试要点 数据库连接正常 数据库数据正常 合法的图书书号 不合法的图书书号 数据库数据异常 数据库连接异常 4.2 相关信息获取模块 功能 获取指定读者 _variant_t 查询连接 CString 查询命令类型转换 _ConnectionPtr 使用 _RecordsetPtr 写(打开) 返回“真”查验结果 返回“假”查验结果,给出警告提示 返回“假”查验结果,给出数据异常警告 返回“假”查验结果,给出数据库连接异常警告 ( 读者证号 )的借书记录,获取的信息包括所借图书书名
18、,借书日期以及所借 图书的总本数。 输入项目 读者证号 (传入参数 ) ;相关(借书)信息(公共变量 ) 输出项目 已借图书数 (返回值 ) 程序逻辑 生成数据库查询命令 IF 操作成功 初始化 ( 相关信息字符串置为空 已借图书计数置为 0) WHILE 未读至查询结果集尾 置相关信息字符串 计数累加 返回计数值 ELSE 置相关信息字符串为”操作异常” 返回”失败标志” (-1) 接口 调用形式: int GetLBInf(const long ReaderID) 传入参数: ReaderID( 整型常量 ) 指定的读者证号 传出参数: 获取的相关记录数 (整型 ) 如发生异常, 返回值置
19、为负 存储分配 局部变量: 查询参数 vtQuiry _variant_t 查询命令 vNull _variant_t 查询连接 类型转换 strQuiry CString 查询命令类型转换 vtemp variant t 查询结果类型转换 oleDate COleDateTime 借书时间类型转换 记录计数 count int 计算获取的记录数 引用的全局变量 : m_pConnection _ConnectionPtr 使用 m_pRecords _RecordsetPtr 写( 打开、关闭 ) m_strNRBInf CString 写 测试要点 数据库连接正常 数据库数据正常 可获取的
20、借书记录数为零 可获取的借书记录数不为零 数据库数据异常 数据库连接异常 返回结果为 0,引用字符串置空 返回记录数, 并将相关信息记录在引用字符 串中 返回异常指示,给出警告 返回异常指示,给出警告 4.4 还书信息记录模块 功能 记录本次还书操作的信息,包括图书书名,超期天数。 输入项目 包含相关信息 (书名、借书日期 ) 的查询结果集 (公共变量 ) 输出项目 更新后的格式化还书信息 (公共变量 ) 程序逻辑 WHILE 传入的查询结果集未读至文件尾 读取书名 , 置入还书信息字符串 读取借书日期 计算超期天数 置入还书信息字符串 光标移至下一个记录 接口 调用形式: void Save
21、RBInf(void) 传入参数:无 传出参数:无 存储分配 局部变量: 类型转换 vtemp variant t 查询结果类型转换 strExcess CString 超期天数类型转换 计算变量 oleDate COleDateTime 借书日期 oleExcess COleDateTimeSpan 超期天数 intExcess int 超期天数 引用的全局变量: m_pRecords RecordsetPtr 读( 关闭记录集 ) m_strRBInf CString 更新 m_MaxLBDay int 读 测试要点 查询结果集正常 查询结果集异常 4.5 还书登记模块 功能 登记还书 (
22、 删除借书记录,更新图书状态 ) 输入项目 图书书号(输入参数) 输出项目 操作成功/失败标志(返回值) 程序逻辑 生成数据库操作命令(更新) IF操作成功 生成数据库操作命令(删除) IF操作成功 返回”操作成功” 返回”操作失败” 接口 调用形式:BOOL DelBlrecord(co nst long BookID) 传入参数:BookID(整型常量)返还图书书号 操作命令 操作影响参数 操作命令类型转换 使用 传出参数:操作成功/失败标志(BOOL值) 存储分配 局部变量:操作参数vtComma nd_varia nt_t vRecsAffected _varia nt_t 类型转换s
23、trComma ndCStri ng 弓丨用的全局变量:m_pC onnection_ConnectionPtr 测试要点 数据库连接正常 图书书号合法 图书书号不合法 数据库连接异常 5图书查询模块 功能 根据给定查询条件,查询数据库,获取图书信息 输入项目 查询方式指定以及查询关键字 输出项目 查询结果列表显示 接口 调用形式:CBookQuiryDlg:QuiryBook(co nst _Co nn ectio nPtr pCo nn ectio n) 传入参数: pConnection(数据库连接指针) 传出参数: 无 存储分配 内部变量: 数据库 m_pBooks _Recordse
24、tPtr数据库查询结果集指 针 用户界面 m_strAuthor CStri ng 作者关键字 m_bAuthor BOOL 作者查询选择状态 m_strBookName CStri ng 书名关键字 m_bBookName BOOL 书名查询选择状态 m_strPublisher CStri ng 出版社关键字 m_bPublisher BOOL 出版社查询选择状态 mn tYear1 int 出版时间关键字 mn tYear2 int 出版时间关键字 mn tM on th1 int 出版时间关键字 mn tM on th2 int 出版时间关键字 m_bPubTime BOOL 出版时间
25、查询选择状态 mn tTimeType int 出版时间查询方式选择 局部变量: 查询参数 vtQuiry _varia nt_t 查询命令 vNull _varia nt_t 查询连接 类型转换 strQuiry CStri ng 查询命令类型转换 测试要点 数据库连接正常 数据库数据正常 数据库数据异常 数据库连接异常 获得正确的查询结果并显示 厶人 I j 给出警告 i j 给出警告 5.1查询命令生成模块 功能 根据用户界面的输入生成查询命令 输入项目 用户界面的输入值(公共变量) 输出项目 查询命令(返回值) 程序逻辑 读取各复选框的值 IF选中AND关键字不为空 生成查询条件 生成
26、数据库查询命令返回生成的查询命令 接口 调用形式: CString GetQuiryString() 传入参数:无 传出参数:查询命令 (CString) 存储分配 局部变量: strQuiryCString查询命令字符串 strTempCString临时字符串 测试要点 用户输入合理 用户输入不合理 ( 没有指定查询方式,没有输入查询关键字 ) 5.2 数据库查询模块 功能 根据输入的查询命令查询数据库 输入项目 查询命令 ( 传入参数 ) 输出项目 数据库查询结果 (返回值) ;数据库查询结果集 (公共变量 ) 程序逻辑 查询数据库 IF 操作成功 返回”操作成功” ELSE 返回”操作失
27、败” 接口 调用形式: BOOL DBQuiry(const CString strQuiry) 传入参数: strQuiry( 字符串型常量 ) 数据库查询命令 传出参数:查询操作成功/失败标志(BOOL值) 存储分配 局部变量:查询参数 vtQuiry vRecsAffected 引用的全局变量: m_pConnection m_pBooks 测试要点 数据库连接正常 输入查询命令合法 varaint t 数据库查询命令 variant t 数据库查询连接 _ConnectionPtr 使用 _RecordsetPtr 读 获取非空查询结果集 返回“真”返回值,查询结果保存在查询结果集中
28、获取空查询结果集 返回“真”返回值,查询结果集为空 输入查询命令不合法 数据库连接异常 返回“假”返回值,查询结果集指针指向空,给出警告 5.3 数据显示模块 功能按一定格式列表显示查询结果,并根据用户要求重排列 输入项目 查询结果集 ( 传入参数 ) ;输出项名称 (传入参数 ); 查询结果表参数,包括行数、列数 ( 传入参数 ) 输出项目 用户界面显示 程序逻辑 初始化 ( 设置行数、列数、列名称,载入输入的查询结果集内的数据) 显示列表 WHILE 用户未输入“返回” IF 用户拖动列的标题栏 重新设置列的位置 排序 刷新显示 返回 接口 测试要点 查询结果正常 查询结果集为空 查询结果
29、集不为空 查询结果异常 调用形式: CListShowDlg:ShowList(const _RecordsetPtr pRecords, CString *strArray, const int cols,const int rows) 传入参数: pRecords ( 数据库查询结果集指针 ) 需要显示的查询结果 strArray (字符串数组头指针 ) 显示项的名称 ( 列名) cols ( 整型常量 ) 列表列数 rows ( 整型常量 ) 列表行数 传出参数: 无 存储分配 内部数据: 数据库 m_pRecords RecordsetPtr 数据库查询结果集 内部参数 m_strAr
30、ray CString20 列名存储数组 m_intCols int 列表列数 m_intRows int 列表行数 m_cltFGrid CMSFlexGrid 列表控件 m_iMouseCol int 用户鼠标所在列 显示消息框提示 显示 警告 正常显示结果列表,并根据用户输入调整输出 6 系统操作模块 功能 验证输入的系统操作员账号以及口令,完成权限管理运行系统操作对话框,根据用户输入 调用各子模块,完成: 图书库操作 ( 浏览、修改、增加、删除 ); 读者库操作 ( 浏览、修改、增加、删除 ); 数据统计;更改口令;系统管理 (修改系统设置,浏览、修改、增加、删除系统操作员 输入项目
31、数据库连接(传入参数) 输出项目 无 程序逻辑 返回 操作取消c 系统操作权限查验模块 警告 (账号口令错误? c 返回 要求输入账号口令 初始化系统操作对话框 初始化 UNTIL输入”返回 关闭对话框 接口 调用形式:CSysDlg:Ma nageSys(co nst _Co nn ectio nPtr pConn ectio n) 传入参数:pConnection (数据库连接指针) 传出参数: :无 存储分配 内部数据: :数据库 m_pC onn ectio n _Conn ectio nPtr 数据库连接指针 子模块 m_BookDlg CBookDlg 图书库操作子模块 m_Rea
32、derDlg CReaderDlg 读者库操作子模块 m_QuiryDlg CQuiryDlg 数据统计子模块 m_SysSetti ngDIg CSysSett in gDlg 系统设置子模块 内部参数 m_strCurrUser CStri ng 当前操作者账号 m_RightLevel int 操作权限 局部变量: :输入 pwdDlg CPasswordDlg 账号口令输入对话框 测试要点 数据库连接正常 正常执行过程 输入的账号 口令合法 根据权限进行显示控制, 正常调用各子模块 输入的账号 口令不合法 警告 数据库连接异常 6.1系统操作权限查验模块 查验输入的系统操作员账号以及口
33、令是否合法,并返回合法操作员的权限级别 输入项目 系统操作员口令 ( 传入参数 ) 输出项目 操作员权限级别 (返回值 ) 程序逻辑 生成数据库查询命令 查询数据库 IF 操作成功 IF 查询结果集非空 返回权限级别 ELSE 显示警告”非法的账号或口令” 返回 -1 ELSE 显示警告”不能查询数据库” 返回 -1 接口 调用形式: CheckRight(const CString oldPwd) 传入参数: oldPwd ( 字符串常量 ) 待查验的系统操作员口令 传出参数: 系统操作权限 ( 整型 ,0-7) 如口令非法, 置为 -1 存储分配 局部变量: 数据库 pTemp Recor
34、dsetPtr 数据库查询结果集指针 查询参数 vNull variant t 数据库查询连接 vtQuiry variant t 数据库查询命令 类型转换 strQuiry CString 查询命令类型转换 内部参数 result int 权限级别 引用的全局变量: m_pConnection _ConnectionPtr 数据库连接指针 m_strCurrUser CString 当前操作员账号 测试要点 数据库连接正常 数据库数据正常 合法的账号 口令 获取相应的权限级别 非法的账号 口令 返回错误指示,给出警告 数据库数据异常 数据库连接异常 6.2 图书库操作模块 功能 根据输入提供
35、对图书库的浏览、数据修改、增加、删除记录等操作 增加记录时,提供对生成的图书书号的唯一性验证 删除记录时,提供对所删除记录的相关性检验 输入项目 数据库连接 ( 传入参数 ) 输出项目 无 程序逻辑 初始化 ( 获取数据库连接 , 显示对话框 ) WHILE 用户未输入退出 IF 用户输入”下一个” 更新当前记录 移动至下一个记录 刷新显示 IF 用户输入”上一个” 更新当前记录 移动至上一个记录 刷新显示 IF 用户输入”移动到” 更新当前记录 要求输入图书书号 IF 该书号存在 移动到指定的记录 刷新显示 ELSE 显示警告”该图书书号不存在” IF 用户输入”加入” 更新当前记录 要求输
36、入图书书号 IF 该书号已存在 显示警告”该书号已存在” ELSE 插入指定图书书号的新记录 记录总数加一 光标移动至新记录处 IF 用户输入”删除” 更新当前记录 给出警告”确定继续” IF 用户确认继续 IF 该图书借出 给出警告”删除相关借书记录” IF 用户确认 删除相关借书记录 ELSE 中止操作 删除该图书记录 记录总数减一 IF 最后一条记录被删除 移动至前一条记录 ELSE 移动至下一条记录 显示刷新 更新记录 接口 调用形式: CBookDlg:ManageBooks(const _ConnectionPtr pConnection) 传入参数: pConnection( 数
37、据库连接指针 ) 传出参数:无 存储分配 内部数据:数据库 m_pConnection ConnectionPtr 数据库连接指针 m_pRs RecordsetPtr 数据库查询结果集指针 用户界面 m_lBookID long 当前记录中书号项 m_strAuthor CString 当前记录中作者项 m_strBookName CString 当前记录中书名项 m_strPublisher CString 当前记录中出版社项 m_uPublishYear UINT 当前记录中出版年项 m_uPublishMonth UINT 当前记录中出版月项 m_intStatus int 当前记录中
38、状态项 m_fBookPrice float 当前记录中单价项 m_strCurrentBook CString 当前记录位置显示 m_strTotalBook CString 记录总数显示 内部参数 m_intPosition int 当前记录位置计数 m_lRecordCount long 记录总数计数 测试要点 数据库连接正常 记录集为空 是否工作状态正常 记录集非空 对各种用户输入的响应 数据库连接异常 6.2.1 获取图书记录集模块 功能 获取所有图书记录,置记录总数以及当前位置的初始值 输入项目 操作成功 / 失败标志 ( 返回值 ) 输出项目 图书记录集 (公共变量 ) ;记录总
39、数 (公共变量 ) ;当前位置 (公共变量 ) 程序逻辑 生成数据库查询命令 查询数据库 IF 操作成功 返回”成功” ELSE 返回”失败” 接口 调用形式: BOOL OpenRecords() 28 传入参数:无 传出参数:操作成功 引用的全局变量: 存储分配 局部变量:查询参数 /失败标志(BOOL值) m_pRs m_intPosition m_lRecordCount vNull vtQuiry 类型转换 strQuiry 测试要点 数据库连接正常 _RecordsetPtr int long _variant_t _variant_t CString 写(打开) 写 写 查询连接
40、 查询命令 查询命令类型转换 图书记录集为空 图书记录集非空 数据库连接异常 6.2.2 更新显示模块 功能 更显当前显示 输入项目 图书记录集 ( 公共变量 ) ;用户界面显示字符串 ( 公共变量 ) 输出项目 更新后的用户界面显示字符串 ( 公共变量 ) 程序逻辑 逐项读取记录中的数据域置入显示字符串中 IF 当前记录为第一条 禁止”前一个”按钮 IF 当前记录为最后一条 禁止”后一个”按钮 IF 记录总数为 0 禁止”加入”以外的所有按钮 刷新显示界面 接口 调用形式: void RefreshDataView() 传入参数:无 传出参数:无 m_pRs _RecordsetPtr 读
41、m_lBookID long 写 m_strAuthor CString 写 m_strBookName CString 写 m_strPublisher CString 写 m_uPublishYear UINT 写 m_uPublishMonth UINT 写 m_intStatus int 写 m_fBookPrice float 写 引用的全局变量: 写 写 记录集数据域类型转换 m_strCurrentBook CString m_strTotalBook CString 存储分配 局部变量:类型转换 vtemp _variant_t 测试要点 记录集正常 记录集为空 记录集非空 记
42、录集异常 6.2.3 更新当前记录模块 功能 根据用户界面的输入更新当前记录 输入项目 用户界面的输入,即用户界面各显示变量的值 ( 公共变量 ) 输出项目 数据库中更新后的图书记录 (存储文件 );操作成功 /失败标志 (返回值 ) 程序逻辑 保存当前图书书号 读入界面的值 IF 书号发生变化 给出警告”不能更改图书书号” 恢复图书书号的值 生成数据库更新语句 IF 更新操作成功 重新获取记录集 光标移动到原位置 返回”成功” ELSE 给出警告”操作失败” 返回”失败” 接口 调用形式: BOOL RefreshData() 传入参数:无 传出参数:操作成功/失败标志(BOOL值) m_p
43、Connection _ConnectionPtr 使用 m_pRs _RecordsetPtr 写 m_lBookID long 读写 m_strAuthor CString 读 m_strBookName CString 读 m_strPublisher CString 读 m_uPublishYear UINT 读 m_uPublishMonth UINT 读 m_intStatus int 读 引用的全局变量: m_fBookPrice float m_strCurrentBook CString m_strTotalBook CString 存储分配 局部变量:操作参数 vtComm
44、and _varaint_t vRecsAffected _variant_t strCommand CString 内部参数 currBookID long 测试要点 数据库连接正常 输入数据合法合理 输入数据不合理 读 读 读 操作命令 操作连接 操作命令类型转换 当前图书书号保存 输入数据不合法 ( 更改图书书号 ) 数据库连接异常 6.2.4 获取相关记录模块 功能 查验是否存在相关的借书记录 输入项目 图书书号 ( 传入参数 ) 输出项目 相关借书记录存在 / 不存在标志 ( 返回值 ) 程序逻辑 生成数据库查询命令 , 执行查询 IF 操作成功 IF 查询结果集为空 返回”不存在”
45、 ELSE 返回”存在” ELSE 给出警告”不能查询数据库” 返回”存在” 接口 调用形式: BOOL RelatedExisted(const long BookID) 传入参数: BookID( 整型常量 ) 待查验的图书书号 传出参数: 查验结果 (BOOL 值) 引用的全局变量: m_pConnection 使用 存储分配 局部变量: 数据库 pLBook RecordsetPtr 数据库查询结果集指针 查询参数 vtQuiry _variant_t 查询命令 vNull _variant_t 查询连接 类型转换 strQuiry CString 查询命令类型转换 测试要点 数据库连
46、接正常 相关记录存在返回“真” 相关记录不存在返回“假” 数据库连接异常 6.3 读者库操作模块 功能 根据输入提供对读者库的浏览、数据修改、增加、删除记录等操作 增加记录时,提供对生成的读者证号的唯一性验证 删除记录时,提供对所删除记录的相关性检验 输入项目 数据库连接 ( 传入参数 ) 输出项目 无 程序逻辑 初始化 ( 获取数据库连接 , 显示对话框 ) WHILE 用户未输入退出 IF 用户输入”下一个” 更新当前记录 移动至下一个记录 刷新显示 IF 用户输入”上一个” 更新当前记录 移动至上一个记录 刷新显示 IF 用户输入”第一个” 更新当前记录 移动至第一个记录 刷新显示 IF
47、 用户输入”最后一个” 更新当前记录 移动至最后一个记录 刷新显示 IF 用户输入”移动到” 更新当前记录 要求输入读者证号 IF 该读者证号存在 移动到指定的记录 刷新显示 ELSE 显示警告”该读者证号不存在” IF 用户输入”加入” 更新当前记录 要求输入读者证号 IF 该读者证号已存在 显示警告”该读者证号已存在” ELSE 插入指定读者证号的新记录 记录总数加一 光标移动至新记录处 IF 用户输入”删除” 更新当前记录 给出警告”确定继续” IF 用户确认继续 IF 该读者已借图书信息不为空 给出警告”有未还图书 , 不能删除” ELSE 删除该图书记录 记录总数减一 IF 最后一条
48、记录被删除 移动至前一条记录 ELSE 移动至下一条记录 显示刷新 更新记录 接口 调用形式: 传入参数: 传出参数: 存储分配 内部变量: 无 数据库 m_pConnection ConnectionPtr 数据库连接指针 m_pReaders RecordsetPtr 数据库查询结果集指针 用户界面 m_lReaderID long 当前记录中读者证号项 m_strAttatchment CString 当前记录中联系方法项 m_strReaderName CString 当前记录中读者姓名项 m_strRelateInf CString 当前记录相关信息显示 m_strPosition
49、CString 当前记录位置显示 m_strTotalNum CString 记录总数显示 内部数据 m_intPosition int 当前记录位置计数 m_lReaderNum long 记录总数计数 void CReaderDlg:ManageReader(const _ConnectionPtr pConnection) pConnection _ConnectionPtr 数据库连接指针 程序正常运行流程, 根据输入调用各子模块 测试要点 数据库连接正常 数据库连接异常 6.3.1 获取读者记录集模块 功能 获取所有读者记录 输入项目 无 输出项目 操作成功 /失败标志 (返回值 )
50、 ;读者记录集 (公共变量 ) 程序逻辑 生成数据库查询命令 查询数据库 IF 操作成功 返回”成功” ELSE 返回”失败” 接口 调用形式: BOOL OpenRs() 传入参数:无 传出参数: 操作成功 /失败标志(BOOL值) 引用的全局变量: m_pReaders _RecordsetPtr 写 m_intPosition int 写 m_lReaderNum long 写 存储分配 局部变量: 查询参数 bstrQuery _bstr_t 查询命令 vtNull _variant_t 查询连接 测试要点 数据库连接正常 记录集为空返回“真”,记录集为空,位置计数与记录总数为0 记录
51、集非空返回“真”,记录集非空,位置计数为 1 数据库连接异常 6.3.2 更新显示模块 功能 更新当前记录的显示 输入项目 记录集当前记录各项值 ( 公共变量 ) ;未更新的用户界面显示字符串 ( 公共变量 ) 输出项目 更新后的用户界面显示字符串 ( 公共变量 ) 程序逻辑 逐项读取记录中的数据域置入显示字符串中 IF 当前记录为第一条 禁止”前一个”按钮、 ”第一个”按钮 IF 当前记录为最后一条 禁止”后一个”按钮、 ”最后一个”按钮 IF 记录总数为 0 禁止”加入”以外的所有按钮 调用相关信息获取模块 , 置相关借书信息字符串 刷新显示界面 接口 调用形式: void Refresh
52、DataView() 传入参数:无 传出参数:无 引用的全局变量: m_pReaders _RecordsetPtr 读 m_lReaderID long 写 m_strReaderName CString 写 m_strAttatchment CString 写 m_lReaderNum long 读 m_intPosition long 读 m_strTotalNum CString 写 m_strPosition CString 写 m_strRelatedInf CString 写 存储分配 局部变量:类型转换 vtemp variant t 记录数据域类型转换 测试要点 数据集正常获
53、取相应的数据项,并显示 数据集异常给出警告 6.3.3 更新当前记录模块 功能 根据用户界面的输入,更新当前记录的各数据域 输入项目 用户界面编辑变量值 ( 公共变量 ) 输出项目 更新后的数据域值 (存储文件 ) ;操作成功 /失败标志 (返回值) 程序逻辑 保存当前读者证号 读入界面的值 IF 读者证号发生变化 给出警告”不能更改读者证号” 恢复读者证号的值 生成数据库更新语句 IF 更新操作成功 重新获取记录集 光标移动到原位置 返回”成功” ELSE 给出警告”操作失败” 返回”失败” 接口 调用形式: BOOL RefreshData() 传入参数:无 传出参数:操作成功/失败标志(
54、BOOL值) 引用的全局变量: m_pConnection _ConnectionPtr 使用 m_lReaderID long 读写 m_strReaderName m_strAttatchment CString CString 存储分配 局部变量:操作参数 vtCommand _varaint_t vRecsAffected _variant_t 类型转换 strCommand CString 数据保存 CurrRID long 读 读 操作命令 操作结果影响 操作命令类型转换 当前记录中读者证号保存 测试要点 数据库连接正常 输入数据合法 根据输入数据更新数据库记录 输入数据不合法 给
55、出警告 数据库连接异常 6.3.4 获取相关记录模块 功能 获取相关的借书记录 输入项目 读者证号 ( 传入参数 ) 输出项目 操作成功 /失败标志 (返回值) ;相关记录信息 (公共变量 ) 程序逻辑 生成数据库查询命令 IF 操作成功 初始化 ( 相关信息字符串置为空 已借图书计数置为 0) WHILE 未读至查询结果集尾 置相关信息字符串 计数累加 置已借图书数字符串 返回”操作成功” ELSE 置相关信息字符串为”操作异常” 返回”操作失败” 接口 调用形式: BOOL GetRelatedInf(const long ReaderID) 传入参数: ReaderID( 整型常量 )
56、指定的读者证号 传出参数:操作成功/失败标志(BOOL值) 引用的全局变量: m_pConnection _ConnectionPtr CString 使用 写 m_strRelatedInf 存储分配 局部变量: 数据库pBLent RecordsetPtr 数据库查询结果集指针 查询参数vtNull _variant_t 查询连接 vQuiry _variant_t 查询命令 类型转换 strQuiry CString 查询命令类型转换 vtemp _variant_t 数据域读取类型转换 oleDate COleDateTime 时间项读取类型转换 strDate CString 时间项
57、赋值类型转换 内部参数 count int 记录计数 测试要点 数据库连接正常 查询结果集为空 返回“真” ,信息字符串置为空 查询结果集非空 返回“真” ,信息字符串记录查询结果 数据库连接异常 返回“假” ,信息字符串置为异常信息 6.4 数据统计模块 功能 根据输入的要求统计数据库中各种信息,生成结果列表显示 输入项目 数据库连接 ( 传入参数 ) 输出项目 无 程序逻辑 初始化 ( 获取数据库连接 , 显示对话框 ) WHILE 用户未输入”返回” 显示控制 IF 用户输入”开始” 禁止”开始”按钮 生成数据库查询命令 查询数据库 显示查询结果 使能”开始”按钮 关闭对话框 接口 调用
58、形式: void CQuiryDlg:QuiryInf(const 传入参数: pConnection( 数据库连接指针 传出参数:无 存储分配 内部数据:数据库 m_pResults m_pConnection 用户界面 m_bAddress m_bAuthor m_bBookID m_bBookName m_bBooks m_bOutdate m_bPrice m_bPublisher m_bPubtime ConnectionPtr pConnection) ) RecordsetPtr 数据库连接指针 ConnectionPtr 数据库查询结果集指针 BOOL 联系方法条件核选状态 B
59、OOL 作者条件核选状态 BOOL 图书书号条件核选状态 BOOL 书名条件核选状态 BOOL 图书相关条件核选状态 BOOL 借书日期条件核选状态 BOOL 单价条件核选状态 BOOL 出版社条件核选状态 BOOL 出版时间条件核选状态 m bReaderID BOOL m bReaderName BOOL m bReaders BOOL m bStatus BOOL m b2Address BOOL m_ b2Author BOOL m b2BookID BOOL m b2BookName BOOL m b2Books BOOL m b2Outdate BOOL m b2Price BOO
60、L m b2Publisher BOOL m b2Pubtime BOOL m b2ReaderID BOOL m b2ReaderName BOOL m b2Readers BOOL m b2Status BOOL m_ comAddress CString m comAuthor CString m_ comBookID CString m comBookName CString m comOutdate CString m comPrice CString m_ comPublisher CString m comPubtime CString m comReaderID CString
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CSCMA 0007-2023出口二手汽车起重机质量与价值评估
- T/UNP 371-2024智能数字化矿山领域机器人
- T/GSEE 4-202210kV配网用交流电力电缆/高压开关柜/
- T/CI 835-2024光刻胶行业绿色工厂评价规范
- T/CAEE 7-2022有机固体废物热解处理工艺评价导则
- T/CSAE 325-2023动力电池信号采集板封装热压绝缘胶膜技术条件
- 2025~2026学年甘肃省天水市麦积区北道区新阳乡胡湾小学人教版三年级上册10月月考试卷数学试卷【附答案】
- 2025-2026学年河南省登封市初中数学九年级期末下册高分预测重点试题详细参考解析
- 2025-2026学年江西省南昌市初中政治九年级期末上册点睛提升黑金试题(详细参考解析)
- Photoshop中级职业技能考试试题(含详细答案解析)
- 血液透析患者皮肤瘙痒的护理
- 《GJB 1032A-2020 电子产品环境应力筛选方法》
- 2026年邮政银行秋招试题及答案
- T/ZSA 256-2024无负极锂金属电池及电池组
- 2026年湖北省教师职称试题(综合实践活动)(附答案)
- 论固定消防设施在扑救高层建筑火灾中的应用培训课件
- 2026新教科版科学六年级上册全套分组演示实验报告(共28个实验可用下料填写实验报告单)
- 肾内科科室规章制度
- 2026中国物流行业劳动用工现状及人力资源管理优化报告
- 中小学教师小课题研究申报书模板与填写示例
- 2026年创城知识测试题及答案
评论
0/150
提交评论