const int MaxLBDay) 传入参量: cOnnection(数据库连接指针常量)提供数据库连接 MaxLBDay(整型常量) 系统参数(借书天数上限) 传出参量:无 存储分配 内部变量:数据库 m cOnnection_ ConnectionPtr数据库连接指针 数据库查询结果集指针 用户界面 m IBookId 欲还图书书号 m strLenderid CString 借阅者图书证号显示 trended 借阅者姓名 m strrbinf CString 已还图书信息显 未还图书信息显示 m strrBNum CString 已还图书数显示 m strNrBNum CString 未还图书数显示 内部参数 m cUrriN ong 当前还书者读者证号 int RANum int 已还图书计数 m MaxLBDay 借书天数上限 测试要点 模块正常工作流程 对输入的查验,包括输入值的合法性与合理性检验 数据库连接异常能否做出适当处理 数据库数据异常时能否判断并给予适当处理 3.1借书记录查验模块 功能 查验借书记录是否存在(即是否存在与指定书号相对应的借书记录 输入项目 图书书号(传入参数) 输出项目 查验结果(返回值):查询结果集(图书书号、书名、状态、出借日期) 程序逻辑 生成数据库查询语句 调用数据库査询模块 IF操作成功 IF查询结果集不为空(存在该借书记录) 返回”记录存在 警告”记录不存在” ELSE 警告”查询失败 返回”记录不存在 接口 调用形式: bool Checkblrcord( const long Book ID)
const int MaxLBDay) 传入参量:pConnection(数据库连接指针常量) 提供数据库连接 MaxLBDay(整型常量) 系统参数(借书天数上限) 传出参量:无 ⚫ 存储分配 内部变量:数据库 m_pConnection _ConnectionPtr 数据库连接指针 m_pRecords _RecordsetPtr 数据库查询结果集指针 用户界面 m_lBookID long 欲还图书书号 m_strLenderID CString 借阅者图书证号显示 m_strLender CString 借阅者姓名 m_strRBInf CString 已还图书信息显示 m_strNRBInf CString 未还图书信息显示 m_strRBNum CString 已还图书数显示 m_strNRBNum CString 未还图书数显示 内部参数 m_lCurrID long 当前还书者读者证号 m_intRBNum int 已还图书计数 m_MaxLBDay int 借书天数上限 ⚫ 测试要点 模块正常工作流程 对输入的查验,包括输入值的合法性与合理性检验 数据库连接异常能否做出适当处理 数据库数据异常时能否判断并给予适当处理 3.1 借书记录查验模块 ⚫ 功能 查验借书记录是否存在(即是否存在与指定书号相对应的借书记录) ⚫ 输入项目 图书书号(传入参数) ⚫ 输出项目 查验结果(返回值);查询结果集(图书书号、书名、状态、出借日期) ⚫ 程序逻辑 生成数据库查询语句 调用数据库查询模块 IF 操作成功 IF 查询结果集不为空(存在该借书记录) 返回”记录存在” ELSE 警告”记录不存在” ELSE 警告”查询失败” 返回”记录不存在” ⚫ 接口 调用形式:BOOL CheckBlrcord(const long BookID)
传入参量: BookID(整型常量 传出参量:书号合法/非法标志(BOL型) 存储分配 局部变量:查询参数 vtQuiry variant 查询命令 nUll variant t 查询连接 类型转换 strQuiry CString 查询命令类型转换 引用的全局变量: m cOnnection ConnectionPtr 使用 m rEcords Recordsetptr 写(打开) 测试要点 数据库连接正常 数据库数据正常 合法的图书书号 返回“真”查验结果 不合法的图书书号返回“假”查验结果,给出警告提示 数据库数据异常 返回“假”查验结果,给出数据异常警告 数据库连接异常 返回“假”查验结果,给出数据库连接异常警告 3.2相关信息获取模块 功能 获取指定读者(读者证号)的借书记录,获取的信息包括所借图书书名,借书日期以及所 借图书的总本数。 输入项目 读者证号(传入参数):相关(借书)信息(公共变量) 输出项目 已借图书数(返回值) 程序逻辑 生成数据库查询命令 IF操作成功 初始化(相关信息字符串置为空已借图书计数置为0) WHILE未读至查询结果集尾 置相关信息字符串 计数累加 返回计数值 ELSE 置相关信息字符串为操作异常 返回”失败标志”(-1) 接口 调用形式: int getlbinf( const long ReaderID) 传入参数: Readerld(整型常量) 指定的读者证号 传出参数:获取的相关记录数(整型)如发生异常,返回值置为负 存储分配 局部变量:查询参数 eqUiry variant t 查询命令 查询连接 类型转换 strQuiry CString 查询命令类型转换 vtemp varlan 查询结果类型转换
传入参量:BookID(整型常量) 传出参量:书号合法/非法标志(BOOL 型) ⚫ 存储分配 局部变量: 查询参数 vtQuiry _variant_t 查询命令 vNull _variant_t 查询连接 类型转换 strQuiry CString 查询命令类型转换 引用的全局变量:m_pConnection _ConnectionPtr 使用 m_pRecords _RecordsetPtr 写(打开) ⚫ 测试要点 数据库连接正常 数据库数据正常 合法的图书书号 返回“真”查验结果 不合法的图书书号 返回“假”查验结果,给出警告提示 数据库数据异常 返回“假”查验结果,给出数据异常警告 数据库连接异常 返回“假”查验结果,给出数据库连接异常警告 3.2 相关信息获取模块 ⚫ 功能 获取指定读者(读者证号)的借书记录,获取的信息包括所借图书书名,借书日期以及所 借图书的总本数。 ⚫ 输入项目 读者证号(传入参数);相关(借书)信息(公共变量) ⚫ 输出项目 已借图书数(返回值) ⚫ 程序逻辑 生成数据库查询命令 IF 操作成功 初始化(相关信息字符串置为空 已借图书计数置为 0) WHILE 未读至查询结果集尾 置相关信息字符串 计数累加 返回计数值 ELSE 置相关信息字符串为”操作异常” 返回”失败标志”(-1) ⚫ 接口 调用形式:int GetLBInf(const long ReaderID) 传入参数:ReaderID(整型常量) 指定的读者证号 传出参数:获取的相关记录数(整型) 如发生异常,返回值置为负 ⚫ 存储分配 局部变量:查询参数 vtQuiry _variant_t 查询命令 vNull _variant_t 查询连接 类型转换 strQuiry CString 查询命令类型转换 vtemp _variant_t 查询结果类型转换
oleAte COleDatetime借书时间类型转换 记录计数 count int 计算获取的记录数 引用的全局变量: m cOnnection ConnectionPtr 使用 rEcords RecordsetPtr 写(打开、关闭) m strNrBInf CString 测试要点 数据库连接正常 数据库数据正常 可获取的借书记录数为零 返回结果为0,引用字符串置空 可获取的借书记录数不为零 返回记录数,并将相关信息记录在引用 字符串中 数据库数据异常 返回异常指示,给出警告 数据库连接异常 返回异常指示,给出警告 3.3还书信息记录模块 功能 记录本次还书操作的信息,包括图书书名,超期天数。 输入项目 包含相关信息(书名、借书日期)的查询结果集(公共变量) 输出项目 更新后的格式化还书信息(公共变量) 程序逻辑 WHILE传入的查询结果集未读至文件尾 读取书名,置入还书信息字符串 读取借书日期 计算超期天数 置入还书信息字符串 光标移至下一个记录 接口 调用形式: void saverbinf(void 传入参数:无 传出参数:无 存储分配 局部变量:类型转换 variant t 查询结果类型转换 strExcess CString 超期天数类型转换 计算变量 oleAte COleDateTime 借书日期 oleExcess COleDateTime Span超期天数 inexcess int 超期天数 引用的全局变量: m rEcords RecordsetPtr 读(关闭记录集) CString 更新 m MaxLBDay 测试要点 查询结果集正常
oleDate COleDateTime 借书时间类型转换 记录计数 count int 计算获取的记录数 引用的全局变量: m_pConnection _ConnectionPtr 使用 m_pRecords _RecordsetPtr 写(打开、关闭) m_strNRBInf CString 写 ⚫ 测试要点 数据库连接正常 数据库数据正常 可获取的借书记录数为零 返回结果为 0,引用字符串置空 可获取的借书记录数不为零 返回记录数,并将相关信息记录在引用 字符串中 数据库数据异常 返回异常指示,给出警告 数据库连接异常 返回异常指示,给出警告 3.3 还书信息记录模块 ⚫ 功能 记录本次还书操作的信息,包括图书书名,超期天数。 ⚫ 输入项目 包含相关信息(书名、借书日期)的查询结果集(公共变量) ⚫ 输出项目 更新后的格式化还书信息(公共变量) ⚫ 程序逻辑 WHILE 传入的查询结果集未读至文件尾 读取书名,置入还书信息字符串 读取借书日期 计算超期天数 置入还书信息字符串 光标移至下一个记录 ⚫ 接口 调用形式:void SaveRBInf(void) 传入参数:无 传出参数:无 ⚫ 存储分配 局部变量: 类型转换 vtemp _variant_t 查询结果类型转换 strExcess CString 超期天数类型转换 计算变量 oleDate COleDateTime 借书日期 oleExcess COleDateTimeSpan 超期天数 intExcess int 超期天数 引用的全局变量:m_pRecords _RecordsetPtr 读(关闭记录集) m_strRBInf CString 更新 m_MaxLBDay int 读 ⚫ 测试要点 查询结果集正常