1、 m_IsConnected BOOL 数据库连接指示 系统设置 m_MaxLBNum int 可借图书数上限 m_MaxLBDay int 借书天数上限 子对话框 m_BookOutDlg CBookOutDlg 借书对话框 m_BookInDlg CBookInDlg 还书对话框 m_BookQuiryDlg CBookQuiryDlg 图书查询对话框 m_SysDlg CSysDlg 系统操作对话框 测试要点数据库连接情况:正常情况,数据库文件缺少,外部系统异常。系统设置获取:正常情况,外部系统异常。对用户输入的响应: 合法输入,能够正常调用子模块; 非法输入,系统能否辨别,并作出响应(
2、提出警告); 子模块的异常状况,系统能否及时做出响应。3.2借书模块 功能查验输入的读者证号运行借书对话框获取该读者的相关信息查验输入的图书号登记借书读者证号、图书书号(用户输入) 输出项目读者信息(姓名);读者已借图书信息(书名、借书日期); 接口调用形式:void CBookDlg:LendBook(const _ConnectionPtr pConnection, const int MaxLBNum)传入参数:pConnection 数据库连接指针 MaxLBNum 系统参数(可借图书上限)传出参数:无 数据库 m_pConnection _ConnectionPtr 数据库连接指针
3、用户界面 m_strReaderName CString 读者姓名 m_strLBInf CString 已借图书信息 m_strLBNum CString 已借图书数显示 m_lBookID long 欲借图书书号 内部参数 m_lReaderID long 当前读者证号 m_MaxLBNum int 可借图书数上限模块正常运行流程用户输入数据检查(读者证号、图书书号),包括数据合理性检查,以及合法性检查数据库操作数据库连接异常时的响应情况3.2.1 读者查验模块查验输入的读者证号是否合法(即是否存在与该读者证号对应的读者记录)读者证号(整型常数),读者姓名(引用型字符串)查验结果(BOOL
4、值)生成数据库查询语句调用数据库查询模块IF返回结果集为空(不存在该读者证号) 置读者姓名字符串为空返回”非法读者证号”ELSE 置读者姓名字符串返回”合法读者证号”BOOL CheckReader(const long ReaderID,CString &strReaderName)ReaderID(常量参数传入) 待查验的读者证号 m_pConnection(借书模块内的全局变量) 数据库连接指针读者证号存在/不存在标志(返回值) strReaderName(传入的引用参数) 读者证号对应的读者姓名(读者证号不存在时置为空)局部变量:数据库 pReader _RecordsetPtr 数据
5、库查询结果集指针 查询参数 vtQuiry _variant_t 查询命令 vNull _variant_t 查询连接 类型转换 strQuiry Cstring 查询命令类型转换 vtemp _variant_t 查询结果类型转换数据库连接正常时输入合理合法参数输入参数不合理输入参数不合法数据库连接异常;数据库数据异常(读者姓名为空)3.2.2 图书查验模块查验输入的图书书号是否合法图书书号(整型常量)IF返回结果集为空(不存在该图书书号)返回”非法图书书号”返回”合法图书书号”调用形式: BOOL CheckBook(const long BookID)传入参数: BookID(整型常量)
6、 带查验的图书书号传出参数: 书号合法/不合法标志(返回值) 查验结果局部变量: 数据库 pBook _RecordsetPtr 数据库查询结果集指针 查询参量 vtQuiry _variant_t 查询字符串 vNull _variant_t 查询连接参量 类型转换 strQuiry Cstring 查询命令类型转换数据库连接正常数据库数据正常输入的书号合理合法输入的书号不合理输入的书号不合法数据库数据异常数据库连接异常3.2.3 相关信息获取模块获取合法读者的借书记录合法读者证号(整型常量);读者已借图书信息(引用型字符串)查询操作结果(BOOL值)IF 操作成功 WHILE 查询结果集未
7、读至文件尾 读取各项值 置入读者已借图书信息字符串 返回”操作成功” 置空读者已借图书信息字符串 返回”操作失败”BOOL GetLBInf(const long ReaderID,CString &strLBInf)传入参量:ReaderID(整型常量) 查询参数 strLBInf(引用型字符串) 返回用的格式化的查询信息传出参量:查询成功/失败标志(BOOL值) 查询操作结果信息 数据库 pRecords _RecordsetPtr 数据库查询结果集指针 查询参数 vtQuiry _variant_t 查询命令字符串 类型转换 strQuiry CString 查询命令类型转换输入正常(读
8、者证号合法)输入异常(读者证号非法)3.2.4 借书登记模块登录借书信息读者证号(整型常量);操作结果(BOOL值)生成数据库操作命令调用数据库操作模块 返回”操作成功” 返回”操作失败”BOOL WriteBlrecord(const long ReaderID,const long BookID)ReaderID(整型常量) 操作参数(借阅者读者证号) BookID(整型常量) 操作参数(借阅图书书号)操作成功/失败标志(返回值) 操作命令参数 vRecsAffected _variant_t 操作影响 vtCommand _variant_t 操作命令 类型转换 strCommand C
9、String 操作命令类型转换 strToday CString 借书日期类型转换 oleToday COleDateTime 借书日期数据库操作正常输入参数合法输入参数非法数据库操作异常4 还书模块运行还书对话框查验输入的图书书号对合法输入登录还书信息显示相关信息(本次还书操作信息,尚未归还图书的相关信息,读者信息)图书书号(用户输入)相关信息(本次还书操作信息,尚未归还的图书信息,读者信息)CBookInDlg:ReturnBook(const _ConnectionPtr pConnection,const int MaxLBDay)pConnection(数据库连接指针常量) 提供数据
10、库连接 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 CStrin
11、g 未还图书数显示 内部参数 m_lCurrID long 当前还书者读者证号 m_intRBNum int 已还图书计数 m_MaxLBDay int 借书天数上限模块正常工作流程对输入的查验,包括输入值的合法性与合理性检验数据库连接异常能否做出适当处理数据库数据异常时能否判断并给予适当处理4.1 借书记录查验模块查验借书记录是否存在(即是否存在与指定书号相对应的借书记录)图书书号(传入参数)查验结果(返回值);查询结果集(图书书号、书名、状态、出借日期)IF查询结果集不为空(存在该借书记录)返回”记录存在” ELSE 警告”记录不存在” 警告”查询失败”返回”记录不存在”BOOL Chec
12、kBlrcord(const long BookID)BookID(整型常量)书号合法/非法标志(BOOL型) 查询参数 vtQuiry _variant_t 查询命令 类型转换 strQuiry CString 查询命令类型转换引用的全局变量:m_pConnection _ConnectionPtr 使用m_pRecords _RecordsetPtr 写(打开) 合法的图书书号 返回“真”查验结果 不合法的图书书号 返回“假”查验结果,给出警告提示 数据库数据异常 返回“假”查验结果,给出数据异常警告数据库连接异常 返回“假”查验结果,给出数据库连接异常警告4.2 相关信息获取模块获取指定
13、读者(读者证号)的借书记录,获取的信息包括所借图书书名,借书日期以及所借图书的总本数。读者证号(传入参数);相关(借书)信息(公共变量)已借图书数(返回值)生成数据库查询命令 初始化(相关信息字符串置为空 已借图书计数置为0)WHILE 未读至查询结果集尾 置相关信息字符串 计数累加返回计数值 置相关信息字符串为”操作异常”返回”失败标志”(-1)int GetLBInf(const long ReaderID)ReaderID(整型常量) 指定的读者证号获取的相关记录数(整型) 如发生异常,返回值置为负查询参数 vtQuiry _variant_t 查询命令 vNull _variant_t
14、 查询连接 类型转换 strQuiry CString 查询命令类型转换 vtemp _variant_t 查询结果类型转换 oleDate COleDateTime 借书时间类型转换 记录计数 count int 计算获取的记录数引用的全局变量: m_pConnection _ConnectionPtr 使用 m_pRecords _RecordsetPtr 写(打开、关闭) m_strNRBInf CString 写可获取的借书记录数为零 返回结果为0,引用字符串置空可获取的借书记录数不为零 返回记录数,并将相关信息记录在引用字符串中 数据库数据异常 返回异常指示,给出警告数据库连接异常
15、返回异常指示,给出警告4.4 还书信息记录模块记录本次还书操作的信息,包括图书书名,超期天数。包含相关信息(书名、借书日期)的查询结果集(公共变量)更新后的格式化还书信息(公共变量)WHILE 传入的查询结果集未读至文件尾 读取书名,置入还书信息字符串 读取借书日期 计算超期天数 置入还书信息字符串 光标移至下一个记录void SaveRBInf(void) 类型转换 vtemp _variant_t 查询结果类型转换 strExcess CString 超期天数类型转换 计算变量 oleDate COleDateTime 借书日期 oleExcess COleDateTimeSpan 超期天
16、数 intExcess int 超期天数m_pRecords _RecordsetPtr 读(关闭记录集) m_strRBInf CString 更新 m_MaxLBDay int 读查询结果集正常查询结果集异常4.5 还书登记模块登记还书(删除借书记录,更新图书状态)图书书号(输入参数)生成数据库操作命令(更新) 生成数据库操作命令(删除) IF 操作成功返回”操作失败”BOOL DelBlrecord(const long BookID)BookID(整型常量) 返还图书书号操作成功/失败标志(BOOL值) 操作参数 vtCommand _variant_t 操作命令 vRecsAffec
17、ted _variant_t 操作影响参数 类型转换 strCommand CString 操作命令类型转换m_pConnection _ConnectionPtr 使用图书书号合法图书书号不合法5 图书查询模块根据给定查询条件,查询数据库,获取图书信息查询方式指定以及查询关键字查询结果列表显示程序逻辑CBookQuiryDlg:QuiryBook(const _ConnectionPtr pConnection)pConnection(数据库连接指针)数据库 m_pBooks _RecordsetPtr 数据库查询结果集指针 用户界面 m_strAuthor CString 作者关键字 m_
18、bAuthor BOOL 作者查询选择状态 m_strBookName CString 书名关键字 m_bBookName BOOL 书名查询选择状态 m_strPublisher CString 出版社关键字 m_bPublisher BOOL 出版社查询选择状态 m_intYear1 int 出版时间关键字 m_intYear2 int 出版时间关键字 m_intMonth1 int 出版时间关键字 m_intMonth2 int 出版时间关键字 m_bPubTime BOOL 出版时间查询选择状态 m_intTimeType int 出版时间查询方式选择 类型转换 strQuiry CS
19、tring 查询命令类型转换 数据库数据正常 获得正确的查询结果并显示 数据库数据异常 给出警告数据库连接异常 给出警告5.1 查询命令生成模块根据用户界面的输入生成查询命令用户界面的输入值(公共变量)查询命令(返回值)读取各复选框的值IF 选中 AND 关键字不为空 生成查询条件返回生成的查询命令CString GetQuiryString()查询命令(CString) strQuiry CString 查询命令字符串 strTemp CString 临时字符串用户输入合理用户输入不合理(没有指定查询方式,没有输入查询关键字)5.2 数据库查询模块根据输入的查询命令查询数据库查询命令(传入参
20、数)数据库查询结果(返回值);数据库查询结果集(公共变量)查询数据库BOOL DBQuiry(const CString strQuiry)strQuiry(字符串型常量) 数据库查询命令查询操作成功/失败标志(BOOL值)查询参数 vtQuiry _varaint_t 数据库查询命令 vRecsAffected _variant_t 数据库查询连接m_pConnection _ConnectionPtr 使用 m_pBooks _RecordsetPtr 读输入查询命令合法 获取非空查询结果集 返回“真”返回值,查询结果保存在查询结果集中 获取空查询结果集 返回“真”返回值,查询结果集为空输
21、入查询命令不合法 返回“假”返回值,查询结果集指针指向空,给出警告5.3 数据显示模块按一定格式列表显示查询结果,并根据用户要求重排列查询结果集(传入参数);输出项名称(传入参数);查询结果表参数,包括行数、列数(传入参数)用户界面显示初始化(设置行数、列数、列名称,载入输入的查询结果集内的数据)显示列表WHILE 用户未输入“返回” IF 用户拖动列的标题栏 重新设置列的位置 排序 刷新显示返回CListShowDlg:ShowList(const _RecordsetPtr pRecords,CString *strArray,const int cols,const int rows)pRecords (数据库查询结果集指针) 需要显示的查询结果 strArray (字符串数组头指针) 显示项的名称(列名) cols (整型常量) 列表列数 rows (整型常量) 列表行数数据库 m_pRecords _RecordsetPtr 数据库查询结果集 内部参数 m_strArray CString20 列名存储数组 m_intCols int 列表列数 m_intRows int 列表行数 m_cltFGrid
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1