软件工程及应用第7章.ppt

上传人:hs****ma 文档编号:568617278 上传时间:2024-07-25 格式:PPT 页数:30 大小:264.16KB
返回 下载 相关 举报
软件工程及应用第7章.ppt_第1页
第1页 / 共30页
软件工程及应用第7章.ppt_第2页
第2页 / 共30页
软件工程及应用第7章.ppt_第3页
第3页 / 共30页
软件工程及应用第7章.ppt_第4页
第4页 / 共30页
软件工程及应用第7章.ppt_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《软件工程及应用第7章.ppt》由会员分享,可在线阅读,更多相关《软件工程及应用第7章.ppt(30页珍藏版)》请在金锄头文库上搜索。

1、第7章图书馆管理系统实现n7.1创建工程n7.2数据库操作n7.3模块实现7.1创建工程1.启动VisualC+6.0,选择“File/New”菜单,打开“New”对话框,如图7.1所示。图7.1新建工程2.在“New”对话框总选择“MFCAppWizard(exe)”选项,在“Location”中输入保存工程的路径“D:vc”,在“ProjectName”中输入工程名称“Library”。AppWizard是一个自动化程序生成工具,它通过提示用户一系列对话框,来指定将要生成的应用程序的特性,然后自动生成相应的代码。3.点击“OK”进入下一个对话框,进入下一个对话框“MFCAppWizard-

2、Step1”。在这个对话框中,可以指定生成框架的类型,包括SingleDocument(单文档),MultipleDocument(多文档),DialogBased(基于对话框)三种。还可以从下拉列表框中选择语言,指定程序资源文件使用的语言类型。本系统选择SingleDocument,此时AppWizard将生成一个单文档的应用程序框架,如图7.2所示。7.1创建工程图7.2选择单文档应用程序框架7.1创建工程4.在后面出现的对话框中,全部按默认设置进行,直到出现“MFCAppWizard-Step6of6”对话框,如下图7.3所示。图7.3完成创建7.1创建工程5.最后点击Finish按钮并

3、确认,即完成了整个系统的框架创建。AppWizard为我们创建了基本的单文档应用程序框架代码以及相应的资源。7.1创建工程7.2数据库操作nODBCn一个完整的ODBC由下列几个部件组成:n应用程序(Application)。nODBC管理器(Administrator)。驱动程序管理器nODBCAPI。nODBC驱动程序。是一些DLL,提供了nODBC和数据库之间的接口。n数据源。各部件之间的关系如图下图7.4所示:7.2数据库操作nADOnADO的具有如下几个特点:n由于封装了许多底层工作,使用ADO与使用ODBC几乎是一样n方便。nADO不仅具有ODBC的主要功能,而且ADO适用的数据源

4、的范围n要大的多。n在定义ADO记录集变量和数据库表字段绑定类时,要求记录集n的字段变量、状态变量与数据库表字段的个数、顺序必须相同。nADO允许同一Connection实例下有多个Recordset实例。nADO允许进行批更新(使用的UpdateBatch方法),这样将大大n减轻网络负担,提高数据库处理效率。7.2数据库操作nADO在VisualC+中使用的基本步骤1.使用import指令引入ADO2组件2.定义CADORecordBinding的派生类,用于程序与数据库表字段的交互,该类的定义可参见icrsint.h。3.调用CoInitialize初始化COM:CoInitialize(

5、NULL);4.声明ADO的Connection对象指针和Recordset对象指针并初始化。5.定义CADORecordBinding派生类的实例及其Bind接口指针。6.产生Connection对象实例和Recordset对象实例。7.连接到数据库并打开Recordset对象,其中open函数的参数的使用方法可参见微软MSDN中ADO相应对象参数的Basic描述。8.将CADORecordBinding派生类的实例联编到Recordset对象的Bind接口。9.对Recordset对象实例进行操作。10.关闭Recordset对象并释放Bind接口;关闭连接pConnection1-Clo

6、se();调用CoUnitialize释放COM资源:CoUninitialize();7.2数据库操作n数据库操作的封装在VC工具下使用ADO的相关数据库操作非常复杂。为了在本系统中方便地使用ADO的功能,本文对ADO的相关方法重新封装,提供了一个操作数据库的统一接口。该接口已经在本系统中成功地得到应用,同时读者也可以应用在其他系统中。本接口主要用到了CADODatabase和CADORecordset,CADODatabase主要用来连接和关闭数据块,CADORecordset主要用来操作记录集。7.2数据库操作7.3模块实现n主模块n主模块即为系统的主应用程序框架,负责运行主界面、连接数

7、据库以及接受来自用户的输入并启动其他模块。系统启动时的主界面如图7.6所示。n登陆模块在登陆模块的具体实现中,我们采用对话框来实现管理员帐号和密码的验证。创建登陆对话框;7.3模块实现生成对话框基本代码n在VisualC+6.0中我们可以用ClassWizard工具为对话框创建相关的对话框类,这些生成的对话框类都是继承CDialog类。登陆对话框生成的类CLoginDlg与CDialog的关系如下:nclassCLoginDlg:publicCDialognnn生成的登陆对话框代码主要有两个文件组成:LoginDlg.h和LoginDlg.cpp文件。LoginDlg.h是CLoginDlg的

8、类定义文件;LoginDlg.cpp是CLoginDlg的类实现文件。7.3模块实现添加验证函数nvoidCLoginDlg:OnConfirm()nnCStringmSqlStr;nUpdateData(TRUE);nmSqlStr=SELECT*FROMCLERKWHERENAME=;nmSqlStr=mSqlStr+m_strName;nmSqlStr=mSqlStr+ANDPASSWORD=;nmSqlStr=mSqlStr+m_strPassword;nmSqlStr=mSqlStr+;nCMainFrame*pWnd=(CMainFrame*)this-GetParent();nC

9、ADODatabase*pDB=pWnd-GetDatabase();nCADORecordsetrst(pDB);nif(!rst.Open(mSqlStr.GetBuffer(mSqlStr.GetLength ()nn7.3模块实现AfxMessageBox(CLERK表打开失败!);nreturn;nif(!rst.IsEOF()nn/Openallfunctionforusernm_bSuccess=TRUE;nCDialog:OnOK();nnelsennAfxMessageBox(登录失败!);nm_strUSERID=_T();nreturn;nn7.3模块实现在主框架中调用登

10、陆模块n用ClassWizard工具为登陆菜单生成一个消息命令函数,具体代码如下:nvoidCMainFrame:OnLoginIn()nnCLoginDlgmDlg;nif(mDlg.DoModal()=IDOK)nnm_bLogin=TRUE;nnelsennm_bLogin=FALSE;nn7.3模块实现n借书模块在借书模块的具体实现中,我们采用对话框来实现读者的借书过程。创建借书对话框7.3模块实现生成对话框基本代码在VisualC+6.0中我们可以用ClassWizard工具为对话框创建相关的对话框类CLendOutDialog,生成的借书对话框代码主要有两个文件组成:LendOut

11、Dlg.h和LendOutDlg.cpp文件。7.3模块实现添加借书函数nvoidCLendOutDlg:OnConfirm()nnUpdateData(TRUE);nCStringstrSql;n/确认读者是否以及借满nintnBorrowed=0;nintmaxBorrow=10;n/从Reader表中获取可借数量nstrSql=SELECT*FROMReaderWHEREReaderId=+m_strReaderID+;npRst-Open(strSql.GetBuffer(strSql.GetLength();nif(!pRst-IsEOF()nnpRst-GetFieldValue(

12、MaxBorrow,maxBorrow);nn7.3模块实现nelsennMessageBox(读者不存在!);nreturn;nnpRst-Close();nn/从Borrow表中获取已借数量nstrSql=SELECTCOUNT(*)FROMBorrowWHEREState=0ANDReaderId=+m_strReaderID+;npRst-Open(strSql.GetBuffer(strSql.GetLength();npRst-GetFieldValue(0,nBorrowed);npRst-Close();nn7.3模块实现if(nBorrowed=maxBorrow)Messa

13、geBox(读者可借书已满!);return;strSql=INSERTINTOBorrow(ReaderId,BookId,State)VALUES(+m_strReaderID+,+m_strBookID+,0);CMainFrame*pWnd=(CMainFrame*)this-GetParent();CADODatabase*pDB=pWnd-GetDatabase();if(!pDB-Execute(strSql)MessageBox(借书失败!);return;7.3模块实现nelsennMessageBox(借书成功!);nm_strBookID=_T();nUpdateData

14、(FALSE);n7.3模块实现在主框架中调用借书模块借书对话框完成之后,主框架中需要在菜单中能调用它。首先用ClassWizard工具为借书菜单生成一个消息命令函数nVoidCMainFrame:OnLendOut()nnCLendOutDlgmDlg;nmDlg.DoModal();n7.3模块实现n还书模块类似于借书模块,在还书模块的具体实现中,我们也采用对话框来实现读者的还书过程。创建还书对话框7.3模块实现生成对话框基本代码在VisualC+6.0中我们可以用ClassWizard工具为对话框创建相关的对话框类CRetrunBookDialog,生成的还书对话框代码主要有两个文件组成

15、:RetruenBookDlg.h和ReturnBookDlg.cpp文件。7.3模块实现添加还书函数nvoidCReturnBookDlg:OnConfirm()nnUpdateData(TRUE);nCStringstrSql;nstrSql=SELECT*FROMBORROWWHEREState=0ANDBookId=+m_Book_ID+;npRst-Open(strSql.GetBuffer(strSql.GetLength();nif(!pRst-IsEOF()nnpRst-GetFieldValue(BookId,m_Book_ID);npRst-GetFieldValue(Bo

16、rrowDate,m_BorrowDate);npRst-GetFieldValue(ReaderId,m_ReaderId);nUpdateData(FALSE);n7.3模块实现nelsennMessageBox(记录不存在!);nreturn;nnstrSql=UPDATEBORROWSETState=1WHEREState=0ANDBookId=+m_Book_ID+;nCMainFrame*pWnd=(CMainFrame*)this-GetParent();nCADODatabase*pDB=pWnd-GetDatabase();npRst=newCADORecordset(pDB);nif(!pDB-Execute(strSql)nnMessageBox(还书失败!);nreturn;nn7.3模块实现elsenMessageBox(还书成功!);nSetTxtNull();7.3模块实现在主框架中调用还书模块n还书对话框完成之后,主框架中需要在菜单中能调用它。首先用ClassWizard工具为还书菜单生成一个消息命令函数nvoidCMainFrame:OnReturnBack()nnCReturnBookDlgmDlg;nmDlg.DoModal();n7.3模块实现

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号