下载

1下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页
VC
C++类详解

C++类详解.doc

C++类详解

糊涂Always
2010-10-20 0人阅读 举报 0 0 0 暂无简介

简介:本文档为《C++类详解doc》,可适用于IT/计算机领域

简明英汉字典简明英汉字典、​ 需求分析​ 用例图​ 用例说明()​ 查询与显示:用户可查询某一单词显示单词信息()​ 选择查询方式:用户可选择英汉、汉英、字典结构、模糊查询等查询方式()​ 编辑、修改已有单词:用户可以修改查询到的英文单词。()​ 创建新单词:用户可以创建一个新的英文单词。()​ 删除已有单词:用户可以删除查询到的单词()​ 打印和打印预览:用户可以在当前查询方式下按格式打印和打印预览全部单词、​ 总体设计​ MFC程序的项目模式选择归纳需求分析中的功能要求该程序的工作特点是:选种某一单词并显示该单词信息编辑修改单词信息。因此选用MFC的文档–视图结构能方便地实现合理程序结构有利于模块化的MVC层次结构的实现。同时为了能满足选种单词并显示的功能所以决定选择MFC的单文档–视图(SDI)项目模式并使用静态切分视图并且采用CtreeView和CeditView分别为两个视图的基类创建“简明英汉词典程序”。程序的项目名命名为“Dictionary”​ 类的静态设计组成“简单绘图程序”的类可以分为程序框架类、数据类和交互界面类⑴程序框架类·应用程序类·主框架类·文档类·视图类·CWordView的派生关系图·CDicTreeView的派生关系图·CDicTreeView与CwordView的关联图⑵数据类·基本数据库类·单词记录集类·词义记录集类·词类记录集类·数据类的派生关系图⑶交互界面类·单词输入工具类·修改单词信息类·交互界面类的派生关系图·交互界面类与CMainFrame的关联图​ 类的动态设计()​ 查询与显示()​ 选择查询方式()​ 编辑、修改已有单词()​ 创建新单词()​ 删除已有单词()​ 打印和打印预览、​ 详细设计​ 应用程序类CDictionaryApp()​ 类的详细定义命名类型访问权限描述InitInstance(…)BOOLpublic程序开始运行时创建一个实例。​ 框架类CMainFrame()​ 类的详细设计命名类型访问权限描述AssertValid(…)voidpublic在调试状态下提供属性的合法性检查。Dump(…)voidpublic在调试状态下提供属性值的转储显示。OnCreate(…)intprotected创建应用程序框架。OnCreateClient(…)BOOLpublic主框架窗口创建之后创建视图窗口之前。OnDlgbar(…)voidprotected用户选“对话框栏”菜单项时被程序框架调用。OnUpdateDlgbar(…)voidprotected“查看”子菜单下拉时被程序框架调用。PreCreateWindow(…)BOOLpublic主窗口创建之前被程序框架调用。mwndSplitterCSplitterWndpublic存放分割信息。mdlgbarCDlgBarpublic与对话框栏绑定。mwndStatusBarCStaticBarprotected存放状态栏信息。mwndToolBarCToolBarprotected存放工具栏信息。()​ 类的发送消息表消息名通知码ID途经类目标类WMCREATECMainFrameCMainFrame()类的响应消息表消息名通知码ID消息源类响应函数WMCOMMANDONCOMMANDIDDLGBARCMainFrameOnDlgbarWMCOMMANDONUPDATECOMMANDUIIDDLGBARCMainFrameOnUpdateDlgbar​ 文档类CDictionaryDoc()​ 类的详细设计命名类型访问权限描述AssertValid(…)voidpublic在调试状态下提供属性的合法性检查。Dump(…)voidpublic在调试状态下提供属性值的转储显示。OnNewDocument()BOOLpublic创建新文档被程序框架调用。Serialize(…)voidpublic实现文档的持续化操作被程序框架调用。sCStringpublic存放两视图间交换信息的字符串。​ 视图类CDicTreeDraw()​ 类的详细设计命名类型访问权限描述AssertValid(…)voidpublic在调试状态下提供属性的合法性检查。Dump(…)voidpublic在调试状态下提供属性值的转储显示。GetDocument(…)CDictionaryDoc*public获取视图绑定的文档类对象地址。OnChieng(…)voidprotected用户选择“汉英查询”菜单项时被程序框架调用。OnPreparePrinting(…)voidprotected打印打印预览开始前被程序框架调用。OnBeginPrinting(…)voidprotected打印打印预览开始时被程序框架调用。OnPrint(…)voidprotected打印打印预览一页时被程序框架调用。PrintTitlePage(…)voidprotected由OnPrint调用打印打印预览封面页。PrintPageHeader(…)voidprotected由OnPrint调用打印打印预览页眉。PrintPageFoot(…)voidprotected由OnPrint调用打印打印预览页脚。OnEndPrinting(…)voidprotected打印打印预览结束时被程序框架调用。OnDraw(…)voidpublic当视图窗口被重画时被程序框架调用。OnInitialUpdate(…)voidprotected视图首次与一个文档关联时被程序框架调用。OnEditChange(…)voidprotected用户选“修改”菜单项时被程序框架调用。OnEditDelete(…)voidprotected用户选“删除”菜单项时被程序框架调用。OnEditNew(…)voidprotected用户选“新建”菜单项时被程序框架调用。OnEngchi(…)voidprotected用户选“英汉查询”菜单项时被程序框架调用。OnUpdateChieng(…)voidprotected“查询方式”子菜单下拉时被程序框架调用。OnIndex(…)voidprotected用户选“精确匹配”菜单项时被程序框架调用。OnUpdateEditChange(…)voidprotected“编辑”子菜单下拉时被程序框架调用。OnMouhu(…)voidprotected用户选“模糊查询”菜单项时被程序框架调用。OnUpdateEditDelete(…)voidprotected“编辑”子菜单下拉时被程序框架调用。OnUpdateEditNew(…)voidprotected“编辑”子菜单下拉时被程序框架调用。OnUpdateEngchi(…)voidprotected“查询方式”子菜单下拉时被程序框架调用。OnUpdateIndex(…)voidprotected“索引匹配”子菜单下拉时被程序框架调用。OnUpdateMouhu(…)voidprotected“索引匹配”子菜单下拉时被程序框架调用。OnUpdateStruct(…)voidprotected“查询方式”子菜单下拉时被程序框架调用。OnUpdateSynonym(…)voidprotected“同义词”子菜单下拉时被程序框架调用。OnUpdateType(…)voidprotected“查询方式”子菜单下拉时被程序框架调用。OnSelchanged(…)voidprotected用户选择某单词时被视图调用。OnStruct(…)voidprotected用户选“字典结构”菜单项时被程序框架调用。OnSynonym(…)voidprotected用户选“同义词”菜单项时被程序框架调用。OnType()voidprotected用户选“单词类型”菜单项时被程序框架调用。PreCreateWindow(…)BOOLpublic视图窗口创建之前被程序框架调用。mmethodintpublic存放当前是字典结构还是索引匹配。bDeleteBOOLpublic存放当前是否正在删除结点的标志。DeleteBOOLpublic存放当前是否为删除单词的标志。bEnglishintpublic存放当前主要查询方式(英汉、汉英、类型)。pViewCWordView*public存放CWordView的指针。()​ 类的发送消息表消息名通知码ID途经类目标类WMPAINTCMainFrameCDicTreeView()​ 类的响应消息表消息名通知码ID消息源类响应函数WMNOTIFYREFLECTTVNSELCHANGEDCDicTreeViewOnSelchangedWMCOMMANDONCOMMANDIDINDEXCMainFrameOnIndexWMCOMMANDONUPDATECOMMANDUIIDINDEXCMainFrameOnUpdateIndexWMCOMMANDONCOMMANDIDSTRUCTCMainFrameOnStructWMCOMMANDONUPDATECOMMANDUIIDSTRUCTCMainFrameOnUpdateStructWMCOMMANDONCOMMANDIDFILEPRINTCMainFrameCTreeView::OnFilePrintWMCOMMANDONCOMMANDIDFILEPRINTDIRECTCMainFrameCTreeView::OnFilePrintWMCOMMANDONCOMMANDIDFILEPRINTPREVIEWCMainFrameCTreeView::OnFilePrintPreviewWMCOMMANDONCOMMANDIDMOUHUCMainFrameOnMouhuWMCOMMANDONUPDATECOMMANDUIIDMOUHUCMainFrameOnUpdateMouhuWMCOMMANDONCOMMANDIDEDITCHANGECMainFrameOnEditChangeWMCOMMANDONUPDATECOMMANDUIIDEDITCHANGECMainFrameOnUpdateEditChangeWMCOMMANDONCOMMANDIDEDITDELETECMainFrameOnEditDeleteWMCOMMANDONUPDATECOMMANDUIIDEDITDELETECMainFrameOnUpdateEditDeleteWMCOMMANDONCOMMANDIDEDITNEWCMainFrameOnEditNewWMCOMMANDONUPDATECOMMANDUIIDEDITNEWCMainFrameOnUpdateEditNewWMCOMMANDONCOMMANDIDCHIENGCMainFrameOnChiengWMCOMMANDONUPDATECOMMANDUIIDCHIENGCMainFrameOnUpdateChiengWMCOMMANDONCOMMANDIDENGCHICMainFrameOnEngchiWMCOMMANDONUPDATECOMMANDUIIDENGCHICMainFrameOnUpdateEngchiWMCOMMANDONCOMMANDIDCSYNONYMCMainFrameOnSysnonymWMCOMMANDONUPDATECOMMANDUIIDCSYNONYMCMainFrameOnUpdateSysnonymWMCOMMANDONCOMMANDIDTYPECMainFrameOnTypeWMCOMMANDONUPDATECOMMANDUIIDTYPECMainFrameOnUpdateType()​ ()​ 关键算法解析​ 查询单词并显示信息voidOnSelchanged(INOUTNMHDR*pNMHDR,INOUTLRESULT*pResult)参数说明:INOUTpNMHDR描述消息详细信息的结构指针。INOUTpResult返回结果的指针返回说明:无返回值BEGINCTreeCtrltreeCtrl=GetTreeCtrl()HTREEITEMhitem=treeCtrlGetSelectedItem()if((选中的结点的父结点不是根结点||当前查询方式为精确匹配||查询方式为模糊查询||查询方式为汉英||查询方式为单词类型)非删除结点状态)thenstr=treeCtrlGetItemText(hitem)if(str!="简明英汉字典"str!="简明汉英字典")thenif(bEnglish==即英汉查询)thenCStringwhere="Name="where="'"where=str"'"通过单词名查询Words数据表找到该单词索引通过索引查询Acceptation数据表找到该单词每条词义对应的类型索引通过索引查询Types数据表找到类型名。将查询到的单词名、类型、词义加入到字符串pDoc>s=strelseif(bEnglish==即汉英查询)thenCStringwhere="Chinese="where="'"where=str"'"通过词义查询Acceptation数据表找到符合该词义的每个单词通过单词索引查询Words数据表找到单词。将查询到的中文单词、英文单词、同义词加入到字符串。pDoc>s=strelseCStringwhere="Name="where="'"where=str"'"通过类型名查询Types数据表找到类型索引通过类型索引查找Acceptation数据表找到每一个符合该类型的记录通过单词索引查找Words数据表找到该单词。将查询到的类型名、单词名、词义加入到字符串。pDoc>s=strendif::SendMessage(pview>GetSafeHwnd(),WMVIEW,,)endifendifEND​ 修改单词算法voidOnEditChange()参数说明:无参数返回说明:无返回BEGINCEDITDLGdlginti=IDOKCTreeCtrltreeCtrl=GetTreeCtrl()HTREEITEMhitem=treeCtrlGetSelectedItem()if((选中的结点的父结点不是根结点||当前查询方式为精确匹配||查询方式为模糊查询)非删除结点状态)thenCStringstrstr=treeCtrlGetItemText(hitem)if(str!="简明英汉字典"str!="简明汉英字典")thenCStringwhere="Name="where="'"where=str"'"根据单词名查找Words数据表找到当前单词的索引根据索引查找Acceptation表查找该单词的信息。while(i==IDOK)if(未到记录集尾)then查找到该单词的所有信息将该单词的信息加入到对话框变量中UpdateData(FALSE)if(dlgDoModal()==IDOK)thenif(不删除该单词信息)then将对话框中的信息寸入数据库elseacceSetdeletecurrecord()endifi=MessageBox("是否修改下一条")if(i==IDOK!(acceSetis()))thenacceSetMoveNext()endifelsebreakendifendwhileendifendifEND​ 创建新单词的算法voidOnEditNew()参数说明:无参数返回说明:无返回BEGINinti=IDOKCTreeCtrltreeCtrl=GetTreeCtrl()while(i==IDOK)if(dlgDoModal()==IDOK)then查找Words数据表看是否为已有单词if(Words中无此单词)then在单词表中加入该单词并在树形控件上加入该单词。endifendifi=MessageBox("是否添加下一条",,MBOKCANCEL)endwhileEND​ 删除单词的算法voidOnEditDelete()参数说明:无参数返回说明:无返回BEGINinti=MessageBox("确定删除吗?",,MBOKCANCEL)if((父结点不是根结点||精确匹配||模糊查询)i==IDOK)thenCStringstrstr=treeCtrlGetItemText(hitem)if(str!="简明英汉字典"str!="简明汉英字典")then在Words表中删除该单词并在Acceptation表中删除该单词的所有词义treeCtrlDeleteItem(hitem)endifendifEND​ 视图类CwordView()​ 类的详细定义命名类型访问权限描述AssertValid(…)voidpublic在调试状态下提供属性的合法性检查。Dump(…)voidpublic在调试状态下提供属性值的转储显示。GetDocument(…)CDictionaryDoc*public获取视图绑定的文档类对象地址。OnActivateView(…)voidprotected视图被激活或不活动时被程序框架调用。OnDraw(…)voidpublic当视图窗口被重画时被程序框架调用。OnInitialUpdate(…)voidprotected视图首次与一个文档关联时被程序框架调用。view(…)voidprotected在视图上显示信息。()​ 类的发送消息表消息名通知码ID途经类目标类WMVIEWCDicTreeViewCWordView​ 基本数据类()​ 类的详细定义命名类型访问权限描述deletecurrecord()boolpublic删除当前记录。deleteallrecord()voidpublic删除所有记录。is()boolpublic记录集是否为空。getnumrecord()(…)longpublic返回记录集的记录数。Move(…)voidpublic移动记录指针。MoveFirst(…)voidpublic移动到第一条记录。MovePrev(…)voidpublic移动到上一条记录。MoveNext(…)voidpublic移动到下一条记录。MoveLast(…)voidpublic移动到最后一条记录。lookup(…)voidpublic查询记录集。refresh(…)voidpublic刷新记录集。bof(…)boolpublic是否到记录集头。eof(…)boolpublic是否到记录集尾。mpConnectionConnectionPtrprotected存放数据库指针。mpRecordsetRecordsetPtrprotected存放记录集指针。mTBNameCStringprotected存放数据表名称。mwhereCStringprotected存放where子句。morderbyCStringprotected存放排序子句。​ 单词记录集类()​ 类的详细定义命名类型访问权限描述getcurrecord()boolpublic读取当前记录。editcurrecord()boolpublic编辑当前记录。newcurrecord()boolpublic插入新记录。()​ 关键算法解析​ 读取当前记录的算法boolgetcurrecord(INOUTWords*record)参数说明:INOUTrecord存放记录信息的结构体返回说明:是否读取成功BEGINif(!is()!bof()!eof())thenvarianttvarvar=mpRecordset>GetCollect("Index")record>Index=varlValvar=mpRecordset>GetCollect("Name")if(varvt!=VT)thenrecord>Name=(LPCTSTR)(bstrt)varendifreturnTRUEelsereturnFALSEendifEND​ 编辑当前记录的算法booleditcurrecord(INWordsrecord)参数说明:INrecord存放记录信息的结构体返回说明:是否修改成功BEGINif(!is())thentry{mpRecordset>PutCollect("Name",variantt(recordName))mpRecordset>Update()}catch(comerror*e){AfxMessageBox(e>ErrorMessage())returnFALSE}returnTRUEelsereturnFALSEendifEND​ 插入新记录的算法boolnewcurrecord(INWordsrecord)参数说明:INrecord存放记录信息的结构体返回说明:是否修改成功BEGINtry{mpRecordset>AddNew()mpRecordset>PutCollect("Name",variantt(recordName))mpRecordset>Update()}catch(comerror*e){AfxMessageBox(e>ErrorMessage())returnFALSE}returnTRUEEND​ 词类记录集类()​ 类的详细定义命名类型访问权限描述getcurrecord()boolpublic读取当前记录。​ 词义记录集类()​ 类的详细定义命名类型访问权限描述getcurrecord()boolpublic读取当前记录。editcurrecord()boolpublic编辑当前记录。newcurrecord()boolpublic插入新记录。​ 单词输入工具类()​ 类的详细定义命名类型访问权限描述DoDataExchange()voidprotected信息交换。OnChangeEdit()voidprotected文本框中的数据改变时被程序框架调用。()​ 类的响应消息表消息名通知码ID消息源类响应函数WMCOMMANDENCHANGEIDCEDITCDlgBarOnChangeEdit()​ 关键算法解析文本框中的信息改变的算法voidOnChangeEdit()参数说明:无参数返回说明:无返回BEGIN获得CDicTreeView的树形控件的引用获得当前的状态if((精确匹配||模糊查询)不在删除结点)then删除原有结点if(英汉查询)thenUpdateData(TRUE)CStringstr=mwordif(str=="")thenwordSetlookup("","NameASC")elseCStringstrif(精确匹配)thenstr="Namelike'"elsestr="Namelike'"endifstr=strstr="'"wordSetlookup(str,"NameASC")endif查询满足条件的所有单词并加入到树形控件中elseif(汉英查询)thenUpdateData(TRUE)CStringstr=mwordif(str=="")thenacceSetlookup("","ChineseASC")elseCStringstrif(精确匹配)thenstr="Chineselike'"elsestr="Chineselike'"endifstr=strstr="'"wordSetlookup(str,"NameASC")endif查找所有单词并加入到树形控件中endifendifEND​ 输入单词信息类CEDITDLG()​ 类的详细定义命名类型访问权限描述DoDataExchange()voidprotected信息交换。OnDelete()voidprotected单击删除按钮时被程序框架调用。OnInitDialog()BOOLprotected初始化对话框()​ 类的响应消息表消息名通知码ID消息源类响应函数WMCOMMANDBNCLICKEDIDCDELETECEDITDLGOnDelete

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

评分:

/18

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利