版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1详细设计说明书1 引言1. 1 编写目的根据需求规格说明书 、概要设计说明书 ,在仔细考虑讨论之后,我们对图书管理系 统软件的功能划分、数据结构、软件总体结构的实现有了进一步的想法。我们将这些想法记 录下来,作为详细设计说明书,为进一步设计软件、编写代码打下基础。1.2背景随着社会信息量的与日俱增,作为信息存储的主要媒体之一图书,数量、规模比以往任何 时候都大的多,不论个人还是图书管理部门都需要使用方便而有效的方式来管理自己的书籍。 在计算机日益普及的今天, 对个人而言若采用一套行之有效的图书管理系统来管理自己的书籍, 会方便许多。对图书管理部门而言,以前单一的手工检索已不能满足人们的要求,
2、为了便于图 书资料的管理需要有效的图书管理软件。本图书管理系统软件是一套功能比较完善的数据管理软件,具有数据操作方便高效迅速等 优点。该软件采用功能强大的数据库软件开发工具进行开发,具有很好的可移植性,可在 应用范围较广的 DOS WINDOW系列等操作系统上使用1.3定义文档中采用的专门术语的定义及缩略词简要如下:LMS: Library Management System ,图书管理系统1.4参考资料1费贤举关于图书管理系统的批文2郑人杰,殷人昆,陶永雷。 实用软件工程 (第二版)。北京:清华大学出版社, 1997。3王立福,麻志毅。 软件工程 (第二版)。北京:北京大学出版社, 2001
3、。4唐学忠,王文。 Visual Basic 程序设计教程北京:中国电力出版社,2002。23程序(标识符)设计说明3.1主模块功能建立与数据库连接获取系统设置运行主对话框根据输入调用子模块退出系统时断开与数据库的连接 输入项目用户鼠标点击输入程序逻辑 见右图存储分配内部数据:数据库连接测试要点系统设置子对话框m_pC onn ectio n_Conn ectio nPtr数据库连接指针m_lsC onn ectedBOOL数据库连接指示m_MaxLBNumint可借图书数上限m_MaxLBDayint借书天数上限m_BookOutDlgCBookOutDlg借书对话框m_Bookl nDlg
4、CBookI nDlg还书对话框m_BookQuiryDlgCBookQuiryDlg图书查询对话框m_SysDlgCSysDlg系统操作对话框数据库连接情况:正常情况,数据库文件缺少,外部系统异常。对用户输入的响应:合法输入,能够正常调用子模块;非法输入,系统能否辨别,并作出响应(提出警告);2程序系统的结构系统设置获取:正常情况,外部系统异常。3子模块的异常状况,系统能否及时做出响应。3.2借书模块功能查验输入的读者证号运行借书对话框获取该读者的相关信息查验输入的图书号登记借书输入项目读者证号、图书书号(用户输入)输出项目读者信息(姓名);读者已借图书信息(书名、借书日期);程序逻辑接口调
5、用形式:void CBookDlg:Le ndBook(c onst _Conn ectio nPtr pConnection,const int MaxLBNum)传入参数:pCo nn ection数据库连接指针MaxLBNum 系统参数(可借图书上限)4传出参数:无存储分配内部数据:数据库m_pConnectionConnectionPtr数据库连接指针用户界面m_strReaderName CString读者姓名m_strLBInfCString已借图书信息m_strLBNumCString已借图书数显示m_lBookIDlong欲借图书书号内部参数m_lReaderIDlong当前读
6、者证号m_MaxLBNumint可借图书数上限测试要点模块正常运行流程用户输入数据检查 (读者证号、图书书号 ) ,包括数据合理性检查,以及合法性检查 数据库操作数据库连接异常时的响应情况3.2.1读者查验模块功能查验输入的读者证号是否合法 ( 即是否存在与该读者证号对应的读者记录)输入项目读者证号 (整型常数 ) ,读者姓名 ( 引用型字符串 )输出项目查验结果(BOOL值)程序逻辑生成数据库查询语句调用数据库查询模块IF 返回结果集为空 (不存在该读者证号 )置读者姓名字符串为空返回”非法读者证号”ELSE置读者姓名字符串 返回”合法读者证号” 接口 调用形式: BOOL CheckRea
7、der(const long ReaderID,CString &strReaderName) 传入参数: ReaderID( 常量参数传入 )待查验的读者证号m_pConnection( 借书模块内的全局变量 ) 数据库连接指针 传出参数:读者证号存在 / 不存在标志 ( 返回值 )strReaderName( 传入的引用参数 ) 读者证号对应的读者姓名( 读者证号不存在时置为空 )存储分配局部变量: 数据库pReaderRecordsetPtr数据库查询结果集指针查询参数vtQuiry_variant_t查询命令vNull_variant_t查询连接类型转换strQuiryCstring查
8、询命令类型转换vtempvariant t查询结果类型转换测试要点数据库连接正常时 输入合理合法参数 输入参数不合理 输入参数不合法 数据库连接异常;数据库数据异常( 读者姓名为空 )3.2.2图书查验模块功能 查验输入的图书书号是否合法 输入项目 图书书号 ( 整型常量 ) 输出项目5查验结果(BOOL值)程序逻辑生成数据库查询语句调用数据库查询模块IF 返回结果集为空 (不存在该图书书号 ) 返回”非法图书书号”ELSE返回”合法图书书号”存储分配局部变量 :数据库pBookRecordsetPtr数据库查询结果集指针查询参量vtQuiryvariant t查询字符串vNullvarian
9、t t查询连接参量类型转换strQuiryCstring查询命令类型转换测试要点 数据库连接正常 数据库数据正常 输入的书号合理合法 输入的书号不合理 输入的书号不合法 数据库数据异常 数据库连接异常3.2.3相关信息获取模块 功能 获取合法读者的借书记录 输入项目合法读者证号 (整型常量 ) ;读者已借图书信息 (引用型字符串 ) 输出项目查询操作结果(BOOL值)程序逻辑生成数据库查询语句 调用数据库查询模块 IF 操作成功WHILE 查询结果集未读至文件尾读取各项值 置入读者已借图书信息字符串 返回”操作成功” ELSE 置空读者已借图书信息字符串 返回”操作失败” 接口 调用形式: B
10、OOL GetLBInf(const long ReaderID,CString &strLBInf) 传入参量: ReaderID( 整型常量 ) 查询参数 strLBInf( 引用型字符串 ) 返回用的格式化的查询信息 传出参量:查询成功/失败标志(BOOL值)查询操作结果信息 存储分配局部变量 :数据库pRecordsRecordsetPtr数据库查询结果集指针查询参数vtQuiry_variant_t查询命令字符串vNullvariant t查询连接参量类型转换strQuiryCString查询命令类型转换测试要点 数据库连接正常 数据库数据正常 输入正常 ( 读者证号合法 ) 输入异
11、常 (读者证号非法 ) 数据库数据异常 数据库连接异常3.2.4借书登记模块功能登录借书信息输入项目读者证号 (整型常量 ) ;图书书号 (整型常量 )输出项目操作结果(BOOL值)程序逻辑生成数据库操作命令调用数据库操作模块IF 操作成功6返回”操作成功”ELSE返回”操作失败”接口调用形式: BOOL WriteBlrecord(const long ReaderID,const long BookID) 传入参数: ReaderID( 整型常量 )操作参数 ( 借阅者读者证号 )BookID( 整型常量 )操作参数 ( 借阅图书书号 )传出参数:操作成功 / 失败标志 ( 返回值 )存储
12、分配局部变量:操作命令参数vRecsAffected_varia nt_t操作影响vtComma nd_varia nt_t操作命令类型转换strComma ndCStri ng操作命令类型转换strTodayCStri ng借书日期类型转换oleTodayCOleDateTime丿借书日期测试要点数据库连接正常数据库操作正常输入参数合法输入参数非法数据库操作异常数据库连接异常4 还书模块功能运行还书对话框查验输入的图书书号对合法输入登录还书信息显示相关信息(本次还书操作信息,尚未归还图书的相关信息,读者信息)输入项目图书书号(用户输入)输出项目相关信息(本次还书操作信息,尚未归还的图书信息,
13、读者信息)程序逻辑7接口调用形式:CBookl nDlg:ReturnBook(co nst _Co nn ectio nPtr pConn ectio n,const int MaxLBDay)传入参量:pConnection(数据库连接指针常量)提供数据库连接MaxLBDay(整型常量)系统参数(借书天数上限)传出参量:无存储分配内部变量: 数据库m_pConnectionConnectionPtr数据库连接指针m_pRecordsRecordsetPtr数据库查询结果集指针用户界面m_lBookIDlong欲还图书书号m_strLenderIDCString借阅者图书证号显示m_strL
14、enderCString借阅者姓名m_strRBInfCString已还图书信息显示m_strNRBInfCString未还图书信息显示m_strRBNumCString已还图书数显示m_strNRBNumCString未还图书数显示内部参数m_lCurrIDlong当前还书者读者证号m_intRBNumint已还图书计数m_MaxLBDayint借书天数上限测试要点模块正常工作流程对输入的查验,包括输入值的合法性与合理性检验数据库连接异常能否做出适当处理 数据库数据异常时能否判断并给予适当处理4.1借书记录查验模块功能查验借书记录是否存在 ( 即是否存在与指定书号相对应的借书记录 ) 输入项
15、目 图书书号 ( 传入参数 ) 输出项目 查验结果 (返回值 ) ;查询结果集 (图书书号、书名、状态、出借日期 ) 程序逻辑 生成数据库查询语句 调用数据库查询模块 IF 操作成功IF 查询结果集不为空 ( 存在该借书记录 ) 返回”记录存在” ELSE 警告”记录不存在” ELSE 8警告”查询失败” 返回”记录不存在”接口调用形式: BOOL CheckBlrcord(const long BookID)传入参量: BookID( 整型常量 )传出参量:书号合法/非法标志(BOOL型)存储分配局部变量: 查询参数 vtQuiry_variant_t查询命令9vNull 类型转换 strQ
16、uiry 引用的全局变量: m_pConnection m_pRecords 测试要点 数据库连接正常 数据库数据正常 合法的图书书号 不合法的图书书号 数据库数据异常 数据库连接异常4.2相关信息获取模块功能 获取指定读者_variant_t查询连接CString查询命令类型转换_ConnectionPtr使用_RecordsetPtr写(打开)返回“真”查验结果 返回“假”查验结果,给出警告提示 返回“假”查验结果,给出数据异常警告 返回“假”查验结果,给出数据库连接异常警告( 读者证号 )的借书记录,获取的信息包括所借图书书名,借书日期以及所借图书的总本数。输入项目读者证号 (传入参数
17、) ;相关(借书)信息(公共变量 ) 输出项目 已借图书数 (返回值 )程序逻辑 生成数据库查询命令 IF 操作成功初始化 ( 相关信息字符串置为空 已借图书计数置为 0)WHILE 未读至查询结果集尾 置相关信息字符串 计数累加返回计数值ELSE置相关信息字符串为”操作异常” 返回”失败标志” (-1)接口调用形式: int GetLBInf(const long ReaderID)传入参数:ReaderID( 整型常量 )指定的读者证号传出参数:获取的相关记录数 (整型 )如发生异常,返回值置为负存储分配局部变量:查询参数 vtQuiry_variant_t查询命令vNull_varian
18、t_t查询连接类型转换 strQuiryCString查询命令类型转换vtempvariant t查询结果类型转换oleDateCOleDateTime借书时间类型转换记录计数 countint计算获取的记录数引用的全局变量 : m_pConnection_ConnectionPtr使用m_pRecords_RecordsetPtr写( 打开、关闭 )m_strNRBInfCString写10可获取的借书记录数为零可获取的借书记录数不为零数据库数据异常数据库连接异常返回结果为 0,引用字符串置空 返回记录数, 并将相关信息记录在引用字符 串中返回异常指示,给出警告返回异常指示,给出警告4.4还
19、书信息记录模块 功能 记录本次还书操作的信息,包括图书书名,超期天数。 输入项目包含相关信息 (书名、借书日期 ) 的查询结果集 (公共变量 ) 输出项目更新后的格式化还书信息 (公共变量 ) 程序逻辑WHILE 传入的查询结果集未读至文件尾读取书名 , 置入还书信息字符串 读取借书日期 计算超期天数 置入还书信息字符串 光标移至下一个记录 接口 调用形式: void SaveRBInf(void) 传入参数:无 传出参数:无 存储分配局部变量:类型转换vtempvariant t查询结果类型转换strExcessCString超期天数类型转换计算变量oleDateCOleDateTime借书
20、日期oleExcessCOleDateTimeSpan超期天数intExcessint超期天数引用的全局变量: m_pRecordsRecordsetPtr读( 关闭记录集 )m_strRBInfCString更新m_MaxLBDayint读测试要点 查询结果集正常 查询结果集异常4.5还书登记模块 功能 登记还书 ( 删除借书记录,更新图书状态 )测试要点 数据库连接正常 数据库数据正常11操作命令操作影响参数 操作命令类型转换 使用输入项目图书书号(输入参数)输出项目操作成功/失败标志(返回值)程序逻辑生成数据库操作命令(更新)IF操作成功生成数据库操作命令(删除)IF操作成功返回”操作成
21、功”返回”操作失败”接口调用形式:BOOL DelBlrecord(co nst long BookID) 传入参数:BookID(整型常量)返还图书书号传出参数:操作成功/失败标志(BOOL值) 存储分配局部变量:操作参数vtComma nd_varia nt_tvRecsAffected _varia nt_t 类型转换strComma ndCStri ng弓丨用的全局变量:m_pC onnection_ConnectionPtr测试要点数据库连接正常图书书号合法图书书号不合法数据库连接异常5图书查询模块功能根据给定查询条件,查询数据库,获取图书信息输入项目查询方式指定以及查询关键字输出项
22、目查询结果列表显示12接口调用形式:CBookQuiryDlg:QuiryBook(co nst _Co nn ectio nPtr pCo nn ectio n)传入参数:pConnection(数据库连接指针)传出参数: 无存储分配内部变量: 数据库m_pBooks_RecordsetPtr数据库查询结果集指针用户界面m_strAuthorCStri ng作者关键字m_bAuthorBOOL作者查询选择状态m_strBookNameCStri ng书名关键字m_bBookNameBOOL书名查询选择状态m_strPublisherCStri ng出版社关键字m_bPublisherBOOL
23、出版社查询选择状态mn tYear1int出版时间关键字mn tYear2int出版时间关键字mn tM on th1int出版时间关键字mn tM on th2int出版时间关键字m_bPubTimeBOOL出版时间查询选择状态mn tTimeTypeint出版时间查询方式选择局部变量: 查询参数vtQuiry_varia nt_t查询命令vNull_varia nt_t查询连接类型转换strQuiryCStri ng查询命令类型转换测试要点数据库连接正常数据库数据正常数据库数据异常数据库连接异常获得正确的查询结果并显示 厶人 I j给出警告i j给出警告5.1查询命令生成模块功能根据用户界
24、面的输入生成查询命令输入项目用户界面的输入值(公共变量)输出项目查询命令(返回值)程序逻辑读取各复选框的值IF选中AND关键字不为空生成查询条件生成数据库查询命令13局部变量:查询参数 vtQuiry vRecsAffected 引用的全局变量: m_pConnection m_pBooks 测试要点 数据库连接正常 输入查询命令合法varaint t数据库查询命令variant t数据库查询连接_ConnectionPtr使用_RecordsetPtr读返回生成的查询命令接口调用形式: CString GetQuiryString() 传入参数:无传出参数:查询命令 (CString)存储分
25、配局部变量: strQuiryCString查询命令字符串strTempCString临时字符串测试要点用户输入合理用户输入不合理 ( 没有指定查询方式,没有输入查询关键字 )5.2数据库查询模块功能 根据输入的查询命令查询数据库 输入项目查询命令 ( 传入参数 )输出项目数据库查询结果 (返回值) ;数据库查询结果集 (公共变量 ) 程序逻辑查询数据库IF 操作成功返回”操作成功”ELSE 返回”操作失败”接口调用形式: BOOL DBQuiry(const CString strQuiry)传入参数: strQuiry( 字符串型常量 ) 数据库查询命令 传出参数:查询操作成功/失败标志(
26、BOOL值)存储分配获取非空查询结果集 返回“真”返回值,查询结果保存在查询结果集中 获取空查询结果集 返回“真”返回值,查询结果集为空输入查询命令不合法数据库连接异常返回“假”返回值,查询结果集指针指向空,给出警告5.3数据显示模块功能14测试要点 查询结果正常查询结果集为空 查询结果集不为空 查询结果异常显示警告按一定格式列表显示查询结果,并根据用户要求重排列 输入项目查询结果集 ( 传入参数 ) ;输出项名称 (传入参数 ); 查询结果表参数,包括行数、列数 ( 传入参数 ) 输出项目用户界面显示程序逻辑初始化 ( 设置行数、列数、列名称,载入输入的查询结果集内的数据)显示列表WHILE
27、 用户未输入“返回”IF 用户拖动列的标题栏 重新设置列的位置 排序 刷新显示返回接口调用形式: CListShowDlg:ShowList(const _RecordsetPtr pRecords,CString *strArray, const int cols,const int rows)传入参数:pRecords( 数据库查询结果集指针 )需要显示的查询结果strArray(字符串数组头指针)显示项的名称 ( 列名)cols( 整型常量 )列表列数rows( 整型常量 )列表行数传出参数: 无存储分配内部数据: 数据库m_pRecordsRecordsetPtr数据库查询结果集内部参
28、数m_strArrayCString20列名存储数组m_intColsint列表列数m_intRowsint列表行数m_cltFGridCMSFlexGrid列表控件m_iMouseColint用户鼠标所在列显示消息框提示正常显示结果列表,并根据用户输入调整输出6 系统操作模块功能验证输入的系统操作员账号以及口令,完成权限管理运行系统操作对话框,根据用户输入 调用各子模块,完成:图书库操作 ( 浏览、修改、增加、删除 );读者库操作 ( 浏览、修改、增加、删除 );功能15返回操作取消c系统操作权限查验模块警告(账号口令错误? c返回数据统计;更改口令;系统管理 (修改系统设置,浏览、修改、增
29、加、删除系统操作员 输入项目数据库连接(传入参数)输出项目无程序逻辑初始化UNTIL输入”返回关闭对话框接口调用形式:CSysDlg:Ma nageSys(co nst _Co nn ectio nPtr pConn ectio n) 传入参数:pConnection (数据库连接指针)传出参数: :无存储分配内部数据: :数据库m_pC onn ectio n_Conn ectio nPtr数据库连接指针子模块m_BookDlgCBookDlg图书库操作子模块m_ReaderDlgCReaderDlg读者库操作子模块m_QuiryDlgCQuiryDlg数据统计子模块m_SysSetti n
30、gDIg CSysSett in gDlg系统设置子模块内部参数m_strCurrUserCStri ng当前操作者账号m_RightLevelint操作权限局部变量: :输入pwdDlgCPasswordDlg账号口令输入对话框测试要点数据库连接正常正常执行过程输入的账号口令合法根据权限进行显示控制,正常调用各子模块输入的账号口令不合法警告数据库连接异常6.1系统操作权限查验模块 查验输入的系统操作员账号以及口令是否合法,并返回合法操作员的权限级别 输入项目 系统操作员口令 ( 传入参数 )要求输入账号口令初始化系统操作对话框16输出项目 操作员权限级别 (返回值 )程序逻辑 生成数据库查询
31、命令 查询数据库IF 操作成功IF 查询结果集非空 返回权限级别ELSE 显示警告”非法的账号或口令” 返回 -1ELSE 显示警告”不能查询数据库” 返回 -1接口调用形式: CheckRight(const CString oldPwd)传入参数: oldPwd ( 字符串常量 ) 待查验的系统操作员口令传出参数: 系统操作权限( 整型 ,0-7)如口令非法,置为 -1存储分配局部变量: 数据库pTempRecordsetPtr数据库查询结果集指针查询参数vNullvariant t数据库查询连接vtQuiryvariant t数据库查询命令类型转换strQuiryCString查询命令类
32、型转换内部参数resultint权限级别引用的全局变量: m_pConnection_ConnectionPtr数据库连接指针m_strCurrUserCString当前操作员账号测试要点数据库连接正常数据库数据正常合法的账号口令获取相应的权限级别非法的账号口令返回错误指示,给出警告数据库数据异常数据库连接异常6.2图书库操作模块功能根据输入提供对图书库的浏览、数据修改、增加、删除记录等操作 增加记录时,提供对生成的图书书号的唯一性验证 删除记录时,提供对所删除记录的相关性检验输入项目 数据库连接 ( 传入参数 )输出项目无程序逻辑初始化 ( 获取数据库连接 , 显示对话框 )WHILE 用户
33、未输入退出IF 用户输入”下一个” 更新当前记录 移动至下一个记录 刷新显示IF 用户输入”上一个” 更新当前记录 移动至上一个记录 刷新显示IF 用户输入”移动到” 更新当前记录 要求输入图书书号 IF 该书号存在 移动到指定的记录 刷新显示ELSE 显示警告”该图书书号不存在”IF 用户输入”加入” 更新当前记录 要求输入图书书号 IF 该书号已存在 显示警告”该书号已存在”ELSE 插入指定图书书号的新记录 记录总数加一 光标移动至新记录处IF 用户输入”删除” 更新当前记录 给出警告”确定继续” IF 用户确认继续IF 该图书借出 给出警告”删除相关借书记录” IF 用户确认 删除相关
34、借书记录 ELSE中止操作 删除该图书记录 记录总数减一 IF 最后一条记录被删除 移动至前一条记录17ELSE移动至下一条记录显示刷新更新记录接口调用形式: CBookDlg:ManageBooks(const _ConnectionPtr pConnection) 传入参数: pConnection( 数据库连接指针 )传出参数:无存储分配内部数据:数据库m_pConnectionConnectionPtr数据库连接指针m_pRsRecordsetPtr数据库查询结果集指针用户界面m_lBookIDlong当前记录中书号项m_strAuthorCString当前记录中作者项m_strBoo
35、kNameCString当前记录中书名项m_strPublisherCString当前记录中出版社项m_uPublishYearUINT当前记录中出版年项m_uPublishMonth UINT当前记录中出版月项m_intStatusint当前记录中状态项m_fBookPricefloat当前记录中单价项m_strCurrentBookCString当前记录位置显示m_strTotalBookCString记录总数显示内部参数m_intPositionint当前记录位置计数m_lRecordCountlong记录总数计数测试要点数据库连接正常记录集为空 是否工作状态正常 记录集非空 对各种用户
36、输入的响应数据库连接异常6.2.1 获取图书记录集模块功能获取所有图书记录,置记录总数以及当前位置的初始值输入项目操作成功 / 失败标志 ( 返回值 )输出项目图书记录集 (公共变量 ) ;记录总数 (公共变量 ) ;当前位置 (公共变量 ) 程序逻辑生成数据库查询命令查询数据库IF 操作成功返回”成功”ELSE返回”失败”接口调用形式: BOOL OpenRecords()18图书记录集为空 图书记录集非空 数据库连接异常6.2.2更新显示模块 功能 更显当前显示 输入项目图书记录集 ( 公共变量 ) ;用户界面显示字符串 ( 公共变量 ) 输出项目更新后的用户界面显示字符串 ( 公共变量
37、)程序逻辑逐项读取记录中的数据域置入显示字符串中IF 当前记录为第一条 禁止”前一个”按钮IF 当前记录为最后一条 禁止”后一个”按钮IF 记录总数为 0 禁止”加入”以外的所有按钮 刷新显示界面 接口调用形式: void RefreshDataView() 传入参数:无传出参数:无传入参数:无 传出参数:操作成功 引用的全局变量:存储分配 局部变量:查询参数/失败标志(BOOL值)m_pRsm_intPosition m_lRecordCountvNullvtQuiry类型转换 strQuiry测试要点 数据库连接正常_RecordsetPtr int long_variant_t_vari
38、ant_tCString写(打开)写写查询连接查询命令 查询命令类型转换m_pRs_RecordsetPtr读m_lBookIDlong写m_strAuthorCString写m_strBookName CString写m_strPublisherCString写m_uPublishYearUINT写m_uPublishMonthUINT写m_intStatusint写m_fBookPricefloat写引用的全局变量:19写写记录集数据域类型转换m_strCurrentBook CString m_strTotalBook CString 存储分配 局部变量:类型转换 vtemp _vari
39、ant_t 测试要点 记录集正常 记录集为空 记录集非空 记录集异常6.2.3更新当前记录模块 功能 根据用户界面的输入更新当前记录 输入项目 用户界面的输入,即用户界面各显示变量的值 ( 公共变量 ) 输出项目数据库中更新后的图书记录 (存储文件 );操作成功 /失败标志 (返回值 ) 程序逻辑保存当前图书书号 读入界面的值IF 书号发生变化 给出警告”不能更改图书书号” 恢复图书书号的值生成数据库更新语句IF 更新操作成功 重新获取记录集 光标移动到原位置 返回”成功”ELSE 给出警告”操作失败” 返回”失败”接口调用形式: BOOL RefreshData() 传入参数:无传出参数:操
40、作成功/失败标志(BOOL值)m_pConnection_ConnectionPtr使用m_pRs_RecordsetPtr写m_lBookIDlong读写m_strAuthorCString读m_strBookNameCString读m_strPublisher CString读m_uPublishYearUINT读m_uPublishMonth UINT读m_intStatusint读引用的全局变量:20输入数据不合法 ( 更改图书书号 ) 数据库连接异常6.2.4获取相关记录模块功能 查验是否存在相关的借书记录 输入项目 图书书号 ( 传入参数 ) 输出项目 相关借书记录存在 / 不存在
41、标志 ( 返回值 ) 程序逻辑生成数据库查询命令 , 执行查询 IF 操作成功IF 查询结果集为空 返回”不存在”ELSE 返回”存在”ELSE 给出警告”不能查询数据库” 返回”存在”接口调用形式: BOOL RelatedExisted(const long BookID)传入参数:BookID( 整型常量 )待查验的图书书号传出参数: 查验结果(BOOL 值)引用的全局变量:m_pConnection使用存储分配局部变量: 数据库pLBookRecordsetPtr数据库查询结果集指针查询参数vtQuiry_variant_t查询命令vNull_variant_t查询连接类型转换 str
42、QuiryCString查询命令类型转换测试要点 数据库连接正常相关记录存在返回“真”m_fBookPricefloatm_strCurrentBookCStringm_strTotalBookCString存储分配局部变量:操作参数vtCommand_varaint_tvRecsAffected_variant_tstrCommandCString内部参数currBookIDlong测试要点数据库连接正常输入数据合法合理输入数据不合理读读读操作命令操作连接 操作命令类型转换当前图书书号保存21相关记录不存在返回“假”数据库连接异常6.3读者库操作模块功能 根据输入提供对读者库的浏览、数据修改
43、、增加、删除记录等操作 增加记录时,提供对生成的读者证号的唯一性验证 删除记录时,提供对所删除记录的相关性检验 输入项目数据库连接 ( 传入参数 ) 输出项目 无程序逻辑初始化 ( 获取数据库连接 , 显示对话框 ) WHILE 用户未输入退出IF 用户输入”下一个” 更新当前记录 移动至下一个记录 刷新显示IF 用户输入”上一个” 更新当前记录 移动至上一个记录 刷新显示IF 用户输入”第一个” 更新当前记录 移动至第一个记录 刷新显示IF 用户输入”最后一个” 更新当前记录 移动至最后一个记录 刷新显示IF 用户输入”移动到” 更新当前记录 要求输入读者证号 IF 该读者证号存在 移动到指
44、定的记录 刷新显示ELSE 显示警告”该读者证号不存在”IF 用户输入”加入” 更新当前记录 要求输入读者证号 IF 该读者证号已存在22接口 调用形式: 传入参数: 传出参数: 存储分配 内部变量:无数据库m_pConnectionConnectionPtr数据库连接指针m_pReadersRecordsetPtr数据库查询结果集指针用户界面m_lReaderIDlong当前记录中读者证号项m_strAttatchmentCString当前记录中联系方法项m_strReaderNameCString当前记录中读者姓名项m_strRelateInfCString当前记录相关信息显示m_strP
45、ositionCString当前记录位置显示m_strTotalNumCString记录总数显示内部数据 m_intPositionint当前记录位置计数m_lReaderNumlong记录总数计数程序正常运行流程,根据输入调用各子模块显示警告”该读者证号已存在”ELSE插入指定读者证号的新记录 记录总数加一 光标移动至新记录处 IF 用户输入”删除” 更新当前记录 给出警告”确定继续” IF 用户确认继续IF 该读者已借图书信息不为空 给出警告”有未还图书 , 不能删除”ELSE 删除该图书记录 记录总数减一 IF 最后一条记录被删除 移动至前一条记录ELSE 移动至下一条记录 显示刷新 更
46、新记录测试要点 数据库连接正常 数据库连接异常6.3.1 获取读者记录集模块 功能 获取所有读者记录 输入项目 无输出项目操作成功 /失败标志 (返回值 ) ;读者记录集 (公共变量 ) 程序逻辑生成数据库查询命令 查询数据库 IF 操作成功返回”成功”ELSE返回”失败”接口调用形式: BOOL OpenRs() 传入参数:无传出参数:操作成功/失败标志(BOOL值)引用的全局变量:m_pReaders_RecordsetPtr写m_intPositionint写m_lReaderNumlong写存储分配局部变量:查询参数bstrQuery_bstr_t查询命令vtNull_variant_
47、t查询连接测试要点 数据库连接正常记录集为空返回“真”,记录集为空,位置计数与记录总数为0记录集非空返回“真”,记录集非空,位置计数为 1数据库连接异常void CReaderDlg:ManageReader(const _ConnectionPtr pConnection) pConnection _ConnectionPtr 数据库连接指针236.3.2 更新显示模块功能更新当前记录的显示输入项目记录集当前记录各项值 ( 公共变量 ) ;未更新的用户界面显示字符串 ( 公共变量 ) 输出项目更新后的用户界面显示字符串 ( 公共变量 )程序逻辑 逐项读取记录中的数据域置入显示字符串中IF 当
48、前记录为第一条禁止”前一个”按钮、 ”第一个”按钮IF 当前记录为最后一条 禁止”后一个”按钮、 ”最后一个”按钮IF 记录总数为 0 禁止”加入”以外的所有按钮调用相关信息获取模块 , 置相关借书信息字符串 刷新显示界面接口调用形式: void RefreshDataView()传入参数:无传出参数:无引用的全局变量:m_pReaders_RecordsetPtr读m_lReaderIDlong写m_strReaderNameCString写m_strAttatchmentCString写m_lReaderNumlong读m_intPositionlong读m_strTotalNumCStr
49、ing写m_strPositionCString写m_strRelatedInfCString写存储分配局部变量:类型转换vtempvariant t记录数据域类型转换测试要点数据集正常获取相应的数据项,并显示数据集异常给出警告6.3.3更新当前记录模块功能 根据用户界面的输入,更新当前记录的各数据域 输入项目用户界面编辑变量值 ( 公共变量 )输出项目 更新后的数据域值 (存储文件 ) ;操作成功 / 失败标志 (返回值 ) 程序逻辑保存当前读者证号 读入界面的值IF 读者证号发生变化 给出警告”不能更改读者证号” 恢复读者证号的值生成数据库更新语句IF 更新操作成功 重新获取记录集 光标移
50、动到原位置 返回”成功”ELSE 给出警告”操作失败” 返回”失败”接口调用形式: BOOL RefreshData()传入参数:无传出参数:操作成功/失败标志(BOOL值)24引用的全局变量: m_pConnection _ConnectionPtr 使用 m_lReaderID long 读写25m_strReaderName m_strAttatchmentCStringCString存储分配局部变量:操作参数vtCommand_varaint_tvRecsAffected_variant_t类型转换strCommandCString数据保存CurrRIDlong读读操作命令操作结果影响
51、 操作命令类型转换 当前记录中读者证号保存测试要点 数据库连接正常输入数据合法根据输入数据更新数据库记录输入数据不合法 给出警告数据库连接异常6.3.4获取相关记录模块功能 获取相关的借书记录 输入项目 读者证号 ( 传入参数 ) 输出项目 操作成功 /失败标志 (返回值) ;相关记录信息 (公共变量 ) 程序逻辑 生成数据库查询命令IF 操作成功初始化 ( 相关信息字符串置为空 已借图书计数置为 0)WHILE 未读至查询结果集尾 置相关信息字符串 计数累加 置已借图书数字符串 返回”操作成功”ELSE 置相关信息字符串为”操作异常” 返回”操作失败”接口 调用形式: BOOL GetRel
52、atedInf(const long ReaderID) 传入参数: ReaderID( 整型常量 ) 指定的读者证号 传出参数:操作成功/失败标志(BOOL值)引用的全局变量: m_pConnectionm_strRelatedInf_ConnectionPtrCString使用写存储分配局部变量:数据库pBLentRecordsetPtr数据库查询结果集指针查询参数vtNull_variant_t查询连接vQuiry_variant_t查询命令类型转换 strQuiryCString查询命令类型转换vtemp_variant_t数据域读取类型转换oleDateCOleDateTime时间项
53、读取类型转换strDateCString时间项赋值类型转换内部参数 countint记录计数测试要点 数据库连接正常查询结果集为空返回“真”,信息字符串置为空查询结果集非空返回“真”,信息字符串记录查询结果数据库连接异常返回“假” ,信息字符串置为异常信息6.4数据统计模块 功能 根据输入的要求统计数据库中各种信息,生成结果列表显示 输入项目数据库连接 ( 传入参数 ) 输出项目无 程序逻辑初始化 ( 获取数据库连接 , 显示对话框 ) WHILE 用户未输入”返回”显示控制IF 用户输入”开始” 禁止”开始”按钮 生成数据库查询命令 查询数据库 显示查询结果 26使能”开始”按钮 关闭对话框
54、接口调用形式: void CQuiryDlg:QuiryInf(const 传入参数: pConnection( 数据库连接指针 传出参数:无存储分配内部数据:数据库 m_pResultsm_pConnection 用户界面 m_bAddress m_bAuthor m_bBookID m_bBookName m_bBooks m_bOutdate m_bPrice m_bPublisher m_bPubtimeConnectionPtr pConnection)RecordsetPtr数据库连接指针ConnectionPtr数据库查询结果集指针BOOL联系方法条件核选状态BOOL作者条件核选
55、状态BOOL图书书号条件核选状态BOOL书名条件核选状态BOOL图书相关条件核选状态BOOL借书日期条件核选状态BOOL单价条件核选状态BOOL出版社条件核选状态BOOL出版时间条件核选状态27m bReaderIDBOOLm bReaderNameBOOLm bReadersBOOLm bStatusBOOLm b2AddressBOOLm_b2AuthorBOOLm b2BookIDBOOLm b2BookNameBOOLm b2BooksBOOLm b2OutdateBOOLm b2PriceBOOLm b2PublisherBOOLm b2PubtimeBOOLm b2ReaderID
56、BOOLm b2ReaderName BOOLm b2ReadersBOOLm b2StatusBOOLm_comAddressCStringm comAuthorCStringm_comBookIDCStringm comBookName CStringm comOutdateCStringm comPriceCStringm_comPublisherCStringm comPubtimeCStringm comReaderIDCStringm comReaderNameCStringm comStatusCStringm_strAddressCStringm_oleOutdate1COle
57、DateTimem_oleOutdate2COleDateTimem_ lReaderIDlongm strReaderNameCStringm strAuthorCStringm strBookNameCStringm lBookIDlongm fPricefloatm_intPubMonth1UINTm_intPubMonth2UINTm_intPubYear1UINTm_intPubYear2UINTm intTypeintm strPublisherCString读者证号条件核选状态 读者姓名条件核选状态 读者相关条件核选状态 图书状态条件核选状态 联系方法输出核选状态 作者输出核选状
58、态 图书书号输出核选状态 书名条件输出状态 图书相关输出核选状态 借书日期输出核选状态 单价输出核选状态 出版社输出核选状态 出版时间输出核选状态 读者证号输出核选状态 读者姓名输出核选状态 读者相关输出核选状态 图书状态输出核选状态 联系方法条件选择 作者条件选择 图书书号条件选择 书名条件选择 借书日期条件选择 图书单价条件选择 出版社条件选择 出版时间条件选择 读者证号条件选择 读者姓名条件选择 图书状态条件选择 联系方法条件变量 借书日期条件变量 借书日期条件变量( 用于介于选项 ) 读者证号条件变量 读者姓名条件变量 图书作者条件变量 图书书名条件变量 图书书号条件变量 图书单价条件
59、变量 出版时间条件变量 出版时间条件变量 出版时间条件变量 出版时间条件变量 出版时间条件类型 出版社条件变量28int输出列计数CString20输出列名称记录CString 查询命令字符串long 列表行数计数内部参数 m_intColsm_strArray局部变量 :临时参数 strQuiryRowNum测试要点数据库连接正常模块正常流程,对用户界面的控制,对子模块的调用 数据库连接异常 给出警告6.4.1查询命令生成模块功能 根据用户界面的输入生成查询命令,并提供 输入项目 用户界面的各个输入变量 ( 公共变量 ) 输出项目数据库查询命令 (返回值 ) 程序逻辑读入界面的设置 生成查询
60、条件 生成输出项 生成查询语句 返回查询语句 接口 调用形式: CString GetQuiryString() 传入参数:无 传出参数:查询命令 (字符串 ) 引用的全局变量: m_strArray m_intCols 读取的用户界面输入 m_bBookID m_bBookName m_bAuthor m_bPrice m_bStatus m_bPublisher m_bPubtimem_intType m_bReaderID m_bReaderName m_bAddress m_bOutdate定的对输入数据的检验CString20写int写m_comBookID m_lBookID m_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年梧州医学高等专科学校马克思主义基本原理概论期末考试真题汇编
- 2025年沈阳城市学院马克思主义基本原理概论期末考试真题汇编
- 2024年天津市建筑工程职工大学马克思主义基本原理概论期末考试笔试真题汇编
- 2025年重庆工商大学派斯学院马克思主义基本原理概论期末考试真题汇编
- 2024年湖南工业职业技术学院马克思主义基本原理概论期末考试笔试题库
- 2025年北京理工大学珠海学院马克思主义基本原理概论期末考试参考题库
- 高中化学教学中元素周期表与物质性质的应用课题报告教学研究课题报告
- 高中历史课堂中社区驱动模式在数字教育资源开发中的应用效果分析教学研究课题报告
- 脑外伤后综合征
- 智能风控系统架构优化
- 2026年教师资格之中学综合素质考试题库500道及完整答案【名师系列】
- 招标人主体责任履行指引
- 财务审计工作程序及风险防范措施
- 健康管理师考试题库及答案题库大全
- 雨课堂学堂云在线《中国传统艺术-篆刻、书法、水墨画体验与欣赏(哈工 )》单元测试考核答案
- 公墓骨灰安葬协议书
- 2025国家粮食储备局考试真题与答案
- 2025年汽车后市场汽车维修行业技术更新换代趋势可行性研究报告
- 2024年一建网络图案例专题
- 2025深圳生物会考试卷及答案
- 水泥厂安全检查表
评论
0/150
提交评论