《面向对象VC++课程论文-工作备忘录管理系统.doc》由会员分享,可在线阅读,更多相关《面向对象VC++课程论文-工作备忘录管理系统.doc(40页珍藏版)》请在三一文库上搜索。
1、工作备忘录管理系统 面向对象VC+课程论文题 目: 工作备忘录管理系统 姓 名: 学 院: 通信与信息工程学院 学 号: 电 话: 授课教师: 完成时间: 2011年12月20日 2011年 12月 20日摘要:近年来,计算机技术日趋成熟,数据库技术不断发展,管理信息系统的应用已延伸到社会的各个领域。结合管理信息系统的开发方法及步骤,以此为理论基础,开发出一个小型的信息管理系统工作备忘录管理系统。工作备忘录管理系统是典型的信息管理系统,它的设计开发制作包含数据库支撑系统的建立和维护以及用户界面的开发两个部分。对于前者要求建立起数据一致性强、数据安全性好的数据库。而对于后者则要求应用程序功能完备
2、,易使用等特点。本论文主要阐述以面向对象的程序开发语言VC+为开发工具,结合Access数据库,设计一个简单实用的工作备忘录管理系统。关键词:信息管理系统 VC+ 数据库Abstract: in recent years, computer technology matures, database technology development, management information system applications already extended to society in all areas. Combined with the management information
3、system development methods and steps to as the theoretical basis, and developed a small information management system-a memorandum management system. Memos management system is the typical information management system, the design and development of making it includes database support system set up
4、and maintenance of the user interface and the development of the two parts. The former required to set up consistency of the data is strong, the data security good database. For the latter requires the application program function complete, easy to use, etc. This paper mainly expounds the developmen
5、t of procedures on object-oriented language VC+ as a development tool, combined with the Access database, design a simple and practical work memo management system.Keywords: information management system VC+ database1 引言1.1 课题研究背景及意义现代科学的发展,使计算机进入了几乎一切领域。从科学研究到工农业生产,从企业生产管理到家庭生活,各行各业都广泛地使用着计算机。当今社会的
6、数据信息管理离不开计算机技术的支持。如何实现对数据信息快捷、有效、实用的管理,是软件开发业追求的目标。 随着当今社会的快速发展,人们的压力也日渐增大,当人们在工作或学习繁忙时,经常会忘记这样那样的事情,并不是说明这个人懒散,而是因为人的思维习惯就是这样,是属于“模糊记忆”的思维。什么是“模糊记忆”?模糊记忆是指记忆任何东西,只能记住概要框架或者一小部分重点或突出的内容,而没有办法进行全部记忆,例如,你看过一部小说,记下来没有?可以说没有记下,也就是不能完整地背下整篇小说,但可以将整篇小说的概要讲出来,甚至可以讲一些很经典的情节描述,但绝对不可能一字不漏,包括标点符号都记下来。能否有“一字不漏,
7、包括标点符号都记下来”的方法呢?当然有,但不是使用人脑,而是使用计算机,计算机就能达到“准确记忆”的效果。工作备忘录管理系统也就是将计算机“准确记忆”的信息进行一个整理并管理的软件工具。2 系统开发环境和工具2.1 硬件环境Inter(R) Core(TM)2 Duo CPU T8100 主频:2.10GHz内存:2.00GB硬盘:160G2.2 软件环境操作系统:Microsoft Windows XP Professional数据库:Microsoft Office Access开发语言:C+开发工具:Microsoft Visual C+其他辅助软件:Microsoft Word等2.3
8、 开发工具与技术简介(1)Microsoft Visual C+简介Microsoft Visual C+是Microsoft公司推出的开发Win32环境程序,面向对象的可视化集成编程系统。它不但具有程序框架自动生成、灵活方便的类管理、代码编写和界面设计集成交互操作、可开发多种程序等优点,而且通过简单的设置就可使其生成的程序框架支持数据库接口、OLE2,WinSock网络、3D控制界面。 它以拥有“语法高亮”,IntelliSense(自动编译功能)以及高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译
9、及建置系统以预编译头文件、最小重建功能及累加连结著称。这些特征明显缩短程式编辑、编译及连结的时间花费,在大型软件计划上尤其显著。VC+是微软公司开发的一个IDE(集成开发环境),换句话说,就是使用c+的一个开发平台.有些软件就是这个编出来的,另外还有VB、VF,只是使用不同语言。VC+是Windows平台上的C+编程环境,学习VC要了解很多Windows平台的特性并且还要掌握MFC、ATL、COM等的知识,难度比较大。Windows下编程需要了解Windows的消息机制以及回调(callback)函数的原理;MFC是Win32API的包装类,需要理解文档视图类的结构,窗口类的结构,消息流向等等
10、;COM是代码共享的二进制标准,需要掌握其基本原理等等。VC作为一个主流的开发平台一直深受编程爱好者的喜爱,但是很多人却对它的入门感到难于上青天,究其原因主要是大家对他错误的认识造成的,严格的来说VC+不是门语言,虽然它和C+之间有密切的关系,如果形象点比喻的话,可以把C+看作为一种“工业标准”,而VC+则是某种操作系统平台下的“厂商标准”,而“厂商标准”是在遵循“工业标准”的前提下扩展而来的。VC+应用程序的开发主要有两种模式,一种是WIN API方式,另一种则是MFC方式,传统的WIN API开发方式比较繁琐,而MFC则是对WIN API再次封装,所以MFC相对于WIN API开发更具备效
11、率优势。(2)Microsoft Office Access简介Access 是微软公司推出的基于Windows的桌面关系数据库管理系统(RDBMS,即Relational Database Management System),是Office系列应用软件之一。它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。 Access能够存取 Access/Jet、Microsoft SQL Ser
12、ver、Oracle(甲骨文软件公司),或者任何 ODBC 兼容数据库内的资料。熟练的软件设计师和资料分析师利用它来开发应用软件,而一些不熟练的程序员和非程序员的进阶用户则能使用它来开发简单的应用软件。虽然它支援部分面向对象(OOP)技术,但是未能成为一种完整的面向对象开发工具。 Microsoft Access在很多地方得到广泛使用,例如小型企业,大公司的部门,和喜爱编程的开发人员专门利用它来制作处理数据的桌面系统。它也常被用来开发简单的WEB应用程序这些应用程序都利用ASP技术在Internet Information Services运行比较复杂的WEB应用程序则使用PHP/MySQL或
13、者ASP/Microsoft SQL Server 它的使用方便程度和强大的设计工具为初级程序员提供许多功能。不过,这种便于使用可能使人误解。这类开发者都是没有在应用或者数据设计方面训练的办公室从业人员。因此许多人以为这样的开发者能够创造可用的系统,但也有很多人认为工具本身的局限性产生了这样的误导。 一些专业的应用程序开发人员使用 Access 用作快速应用开发,特别是给街道上的推销员制作一个初型或独立应用程序的工具。可是如果是透过网络存取数据的话,Access 的可扩放性并不高。因此当程序被较多使用者使用时,他们的选择多会是倾向于一些客户端-服务器为本的方案,例如 Oracle、DB2、Mi
14、crosoft SQL Server、Windows SharePoint Services、PostgreSQL、MySQL、Alpha Five、MaxDB,或者Filemaker。无论如何,不少 Access 的功能(表单,报告,序列和VB代码)可以用作其他数据库的后期应用,包括 JET(档案为主的数据库引擎,Access 缺省使用)、Microsoft SQL Server、Oracle和任何其他跟ODBC兼容的产品。这种方法允许开发者把一个成熟的应用的数据移动到一台更大功率的服务器而没有已经在适当的位置牺牲发展。(3)C+ 简介美国AT&T贝尔实验室的本贾尼斯特劳斯特卢普(Bjarn
15、e Stroustrup)博士在20世纪80年代初期发明并实现了C+(最初这种语言被称作“C with Classes”)。一开始C+是作为C语言的增强版出现的,从给C语言增加类开始,不断的增加新特性。虚函数(virtual function)、运算符重载(operator overloading)、多重继承(multiple inheritance)、模板(template)、异常(exception)、RTTI、命名空间(name space)逐渐被加入标准。1998年国际标准组织(ISO)颁布了C+程序设计语言的国际标准ISO/IEC 1988-1998。C+是具有国际标准的编程语言,通
16、常称作ANSI/ISOC+。 1998年是C+标准委员会成立的第一年,以后每5年视实际需要更新一次标准。C+0x最终国际投票已于2011年8月10日结束,所有国家都投出了赞成票,C+0x已经毫无疑义地成为正式国际标准。先前被临时命名为C+0x的新标准将被称为C+ 2011。C+ 2011将取代现行的C+标准ISO/IEC 14882,它公开于1998年并于2003年更新,通称C+98以及C+03。国际标准化组织于2011年9月1日出版发布ISO/IEC 14882:2011,名称是:Information technology - Programming languages - C+ Edit
17、ion: 3。C+是一种绝对不会试图迎合某个模子的语言。特别是它的形式可以变化多端,以解决不同类型的问题。这主要反映在象Microsoft Visual C+和Borland C+Builder那样的工具身上。它们将库、组件模型以及代码生成工具等合成到一起,以开发视窗化的末端用户应用(用于Microsoft Windows操作系统)。3 系统分析系统设计和分析是系统开发最为关键的一环,系统设计好了,后面的代码设计就不会偏离方向。通过系统的设计,开发人员能够更好的把握系统的需求,了解各系统的功能模块。3.1 系统的设计思想根据模块化的设计思想,系统可以划分为若干个独立的模块,主要包括添加备忘事情
18、,修改备忘事情,读取备忘事情,删除备忘事情,然后利用C+编程语言对各模块进行编程实现。系统结构如图3-1所示:添加备忘事情修改备忘事情读取备忘事情删除备忘事情User 图 3-1我的主要任务是完成这4个模块的设计与实现。3.2 系统需求分析在现代信息社会里,人们越来越重视信息的交流和沟通,更加注重时间的有效利用,其中个人信息量也在高速增长,因此个人信息的管理在日常工作和生活中成为一项必不可少的内容,方便实用的工作备忘录管理系统对于提高信息利用效率具有重要意义。随着个人电脑的普及,简单实用的工作备忘录管理系统成为人们日常个人信息管理的不错选择。使用者可以通过工作备忘录管理系统对日常工作和生活琐事
19、等方面进行更有效的管理,主要是为使用者提供对工作信息更方便的记录和查询功能,为使用者在工作信息管理上带来更多的便利。3.3 系统功能描述备忘录的主要功能还是在于可以登记事情,并且可以随时查看未来或过去登记的事情,当然,如果更强大些,如安装在手机里面的软件,可以设置闹钟功能,那当然最好,在本次的系统开发中,开发PC机的备忘录,将开发以下功能:新增备忘事情:选择日期,输入备忘的事情和一些备注信息,以便将来查阅。当人们在工作繁忙的时候,就会有许多的事情要去做,许多的事情要去安排,这时候,可以用备忘录的新增备忘事情功能,选择事情要办的日期,并输入要备忘的事情,当然可以添加一些备注信息,比如某天某时要去
20、开一个会议,就可以在备注的信息里面添加会议的主题以及参加会议的领导。新增备忘的时候还可以选择事情的重要程度,当两件事在同一时间发生冲突时,可以根据事情的重要程度做出选择。删除备忘录事情:有些事情已经完成或不再需要记录,可以通过备忘录软件进行删除。有些事情已经提前完成了,或者说已经备忘的事情不需要去做了,这时候可以用到备忘录删除的功能,当这件备忘的事情删除时,在数据库的表格中就不会有这件事的任何数据了。修改备忘录:修改备忘录的方式有两种,一种是直接修改该元组,不改变该元组的ID号,另外一种是直接删除需要修改的备忘录元组,再新建一个备忘录元组,由于新增的ID号是递增的,因此ID号必然会改变。当我们
21、想改变已经备忘的事情时,就可以用到备忘录的修改功能,我们既可以修改事情的时间,也可以修改事情的备注,以达到我们预期的结果。读取备忘事情:根据用户选择的日期读取备忘的事情。当我们想知道明天或者后天有什么安排时,我们就可以根据日期来查询已经备忘的事情,从而可以合理的安排时间。4 系统设计与实现4.1 功能模块设计从上面的功能描述中,可以把工作备忘录系统分为四个模块:新增备忘录事情、读取备忘录事情、删除备忘录事情和修改备忘录事情。工作备忘录管理系统的功能模块图如图4-1所示:备忘录管理系统新增备忘事情读取备忘事情删除备忘事情修改备忘事情 图 4-1我的主要任务是对各模块进行设计和实现,新增备忘录的事
22、情:可以传递SQL语句进行Insert操作。读取备忘事情:要实现该项技术,使用GetCollect()函数即可。删除备忘录的事情:可以传递SQL语句进行Delete操作。修改备忘录的事情:可以重复删除和新增备忘录的事情,也可以传递SQL语句进行Update操作。4.2 数据库的设计数据库设计是系统开发中非常重要的一个环节。数据库结构设计的好坏将直接影响到系统的效率和功能的实现。在设计数据库之前,要了解数据库的需求,从而确定数据库的结构。否则如果在代码实现过程中再修改数据库的结构,将会带来巨大人力和物力的浪费。4.2.1 数据库的需求分析一般而言,基于数据库的应用系统可以分为两个层次。应用程序层
23、:功能性的应用程序,用于控制数据库访问等。数据库层:用于存储数据和管理数据。数据库层是不与用户直接打交道的,用户通过应用程序来访问数据库,因此,数据库可以看作是整个数据库应用系统的“后台”,而应用程序所展示的界面可以看作是该系统的“前台”。因此,设计好后台,直接关系到整个系统的稳定性和应用程序设计的方便与否。概念模型就是对信息世界的抽象建模,狭义的信息世界可以专指数据库中的数据,那么概念模型就可以理解为对数据库数据的抽象建模。概念模型最常用的描述方法是E-R图(“实体联系”图)描述法【3】。本系统的E-R图如图4-2所示:MemoryNoteID重要程度备注事情日期 图 4-24.2.2 数据
24、库表的设计通过数据库的需求,可以创建以下数据表:字段名称数据类型说明ID自动编号日期日期/时间备忘录的日期重要程度文本一般,重要,特别重要事情文本描述备忘的事情备注备注描述备忘事情的细节 表 4-1通过表4-1可以看出,数据库表设置了4个属性:日期:记录备忘录中进行备忘的事项的日期。重要程度:用于标记该事情的紧急重要性。事情:用于存储具体的事情。备注:用于存储备忘事件需要注意的事项。4.2.3 数据库表的创建数据库作为数据库应用程序的后台数据基础,是必不可少的系统组成部分,数据库创建过程如下【5】。(1)使用Microsoft Office Access新建一个数据库“MemoryNote”,
25、并放在F盘的根目录下,如图4-3所示: 图 4-3(2)使用设计器创建表,根据数据库的需求,添加数据表的属性列,并在保存时创建自动递增的主键ID,如图4-4所示: 图4-44.3 系统各模块的设计 完成了系统的需求分析和功能模块的划分,以及数据库表的设计,接下来就是各模块的详细设计了,当然在设计各模块之前要先创建应用程序。4.3.1 创建应用程序 运行Visual C+,选择File下的New命令,弹出New对话框,从Projects列表中选择MFC AppWizard(exe)向导,在Location文本框中选择项目工程的目录“F:MEMORANDUM”,在Project name文本框中输
26、入工程文件的名称Memorandum,如图4-5所示: 图 4-5单击OK按钮,进入MFC AppWizard-step 1页面,从应用程序的类型中选择Single document,语言列表默认为中文,单击Finish按钮,选择OK。Memoradum的应用程序就创建完毕了。4.3.2 创建主对话框界面应用程序创建完成之后,需要对主对话框的界面进行设计,根据前面的系统分析可以看出,由于系统分为了四个模块:添加备忘事情,修改备忘事情,读取备忘事情,删除备忘事情,所以要针对这四个模块设计四个对应的按钮,所以主界面的布局设计如图4-6所示: 图4-6运行结果如图4-7所示,因为还没有对按钮添加消息
27、的定义,所以按钮是显示灰色的。 图 4-7 4.3.3 新增备忘事项新增备忘事项是通过一个菜单功能来实现的,然后通过这个菜单来调用一个对话框,通过对话框中的控件来输入备忘事项和其他信息,具体步骤如下所示:(1)在资源编辑器中新建一个对话框资源。(2)设计新的对话框,使之符合插入备忘录的需求,如图所示。 图 4-8(3)新增对话框类。为了使对话框中的数据能够顺利的在控件和程序中处理,必须为之添加一个C+类。首先在当前的设计界面中,选择“Insert”中的“New Class”选项。然后,填写类名并选择基类为“CDialog”,如图所示。 图 4-9(4)为每个控件添加控件的变量。使用ClassW
28、izard为每个控件添加控件的变量,如图4-10所示。 图 4-10(5)添加“提交”按钮的消息处理函数。在对话框资源编辑器中,双击“提交”按钮控件,添加该按钮的消息处理函数。void CInsertContent:OnInsert() UpdateData(1); /临时变量用于构造SQL语句CString temp = ;tryADOCG:_RecordsetPtr m_pRecordset; /数据集对象m_pRecordset.CreateInstance(_uuidof(ADOCG:Recordset);m_pRecordset-Open(SELECT * FROM menoryNo
29、te,_variant_t(IDispatch*)m_pConnection,true),ADOCG:adOpenStatic,ADOCG:adLockOptimistic,ADOCG:adCmdText);_variant_t GoalDpt; _variant_t vRecords; /用于执行函数的参数传递CString strTime ; /日期的字符串变量strTime.Format(%d-%d-%d,m_InsertDate.GetYear(),m_InsertDate.GetMonth(),m_InsertDate.GetDay();CString sql = insert in
30、to menoryNote(日期,重要程度,事情,备注) values (;if(m_strList=|m_strMatter=|m_strContent=)MessageBox(不能出现空输入框!);return ;sql += temp + strTime + temp + ,;sql += temp + m_strList + temp + ,;sql += temp + m_strMatter + temp + , ;sql += temp + m_strContent + temp + ) ;MessageBox(sql); /测试是否是正确的SQL语句m_pConnection-E
31、xecute(sql.AllocSysString(),&vRecords,ADOCG:adCmdText);m_pRecordset-Update(); /更新数据集if(m_pConnection-State) /查看数据连接对象的状态m_pConnection-Close(); /关闭数据连接对象m_pConnection= NULL; /链接指针赋值为NULLcatch(_com_error e)AfxMessageBox(插入异常 !);CDialog:OnOK();上述代码,将连接数据库的SQL语句编好,并交给连接对象进行执行,也可以定义命令对象,由命令对象进行执行,它们的效果是一
32、样的,只是连接对象进行执行后,要更新数据集,命令对象执行后,可以不更新数据集,因为命令对象直接对数据库进行操作,而连接对象是对数据集进行操作,操作完后需要更新并且写回到数据库中【5】。(6)添加“新增备忘事项”菜单消息处理函数。使用ClassWizard新增“新增备忘事项”菜单的命令消息处理函数,代码如下:void CMemorandumView:OnMenuitemInsert() CInsertContent DlgInsert ;if(!DlgInsert.DoModal()return;本模块的运行结果如图4-11所示: 图 4-11当点击提交按钮后,数据库的数据更新,结果如下图所示:
33、 图 4-12从数据库的表中可以看出,ID为34的数据信息已经添加成功。4.3.4 读取备忘事情备忘事情的显示将显示在视图区域中,具体步骤如下:(1)新增一个对话框资源,并将ID设置为“IDD_DIALOG_MEMO”。然后设计对话框的界面如图4-13所示: 图 4-13(2)为新建的对话框新增一个与之关联的类,并命名为“CDlgMemo”,并且设置该类的父类为“CDialog”类。为日期控件添加相应的变量。将日期的下拉控件添加一个变量m_selectDate,该变量是标记当前选定的日期,如图4-14所示: 图 4-14(5)编写处理代码。首先,添加记录查询所用的选定日期的值。该值是为了方便在
34、控件和视图类中使用,因此,使用一个全局变量最合适。为项目添加一个“Globals.cpp”源文件,并添加以下代码:#include stdafx.h /获得MFC的支持#include globals.h /可以定义一些全局结构体等CTime globalDate ; /全局的日期变量然后,编写“OK”按钮的消息处理函数,将当前选择的日期,也就是m_selectDate赋值给全局变量globalDate,globalDate在“Globals.cpp”源文件中已经定义。消息处理函数的代码如下:void CDlgMemo:OnOK() UpdateData();globalDate = m_se
35、lectDate ;/当前选择的日期赋值给全局变量,以便其他地 /方使用CDialog:OnOK();“查看备忘记录”的菜单命令消息处理函数代码如下:void CMemorandumView:OnMemoShow() CDlgMemo Dlg ; /备忘查询日期选择的对话框类对象 if(!Dlg.DoModal() /生成对话框return ;flag = 1 ; /备忘录显示状态设置为1读取备忘事情时,需要将备忘的事情展示出来,编写备忘录展示的代码如下所示:void CMemorandumView:ShowMomo()/获取当前的设备环境对象指针CDC * pDC = this-GetDC(
36、);/临时字符串变量,用于构造SQL语句CString temp ;CString strDate ;/逐步打印年月日temp.Format(%d年,globalDate.GetYear();pDC-TextOut(100,0,temp);temp.Format(%d月,globalDate.GetMonth();pDC-TextOut(150,0,temp);temp.Format(%d日,globalDate.GetDay();pDC-TextOut(200,0,temp); /自定义的打开数据函数openDatabase();_variant_t vRecords;tryADOCG:_R
37、ecordsetPtr m_pRecordset;m_pRecordset.CreateInstance(_uuidof(ADOCG:Recordset);CString sql = SELECT * FROM menoryNote where 日期=#;CString temp;temp.Format(%d-%d-%d#,globalDate.GetYear(),globalDate.GetMonth(),globalDate.GetDay();sql += temp; /选择特定的数据集m_pRecordset-Open(sql.AllocSysString(),_variant_t(ID
38、ispatch*)m_pConnection,true),ADOCG:adOpenStatic,ADOCG:adLockOptimistic,ADOCG:adCmdText); /整型变量i用于打印距离间隔变量int i = 0 ;/用于打印备忘录事情的详细信息while(!m_pRecordset-EndOfFile)pDC-TextOut(50,100 + i,事情:);vRecords = m_pRecordset-GetCollect(事情);pDC-TextOut(150,100 + i,CString(vRecords.bstrVal);i+=100;pDC-TextOut(50,
39、100 + i,备注:);vRecords = m_pRecordset-GetCollect(备注);pDC-TextOut(150,100 + i,CString(vRecords.bstrVal);i+=100;pDC-TextOut(50,100 + i,重要程度:);vRecords = m_pRecordset-GetCollect(重要程度);pDC-TextOut(150,100 + i,CString(vRecords.bstrVal);i+=100;/移动到下一条记录m_pRecordset-MoveNext();if(m_pConnection-State)/关闭数据链接
40、对象m_pConnection-Close();m_pConnection= NULL;catch(_com_error e)MessageBox(信息展示出现异常);UpdateData();而在视图类OnDraw()中调用ShowMomo()显示查询的结果,当用户单击了“查看备忘记录”菜单项时,flag的值会置1,当flag的值为1时会调用展示备忘事项的函数。代码如下:void CMemorandumView:OnDraw(CDC* pDC)CMemorandumDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);if(flag = 1)ShowMom
41、o();本模块的运行结果如图4-15所示: 图 4-154.3.5 删除备忘事项 信息管理系统中的数据删除是常见的功能,但涉及到如何实现删除,界面实现有很多方式,主要有:a. 通过展示的信息,然后选取展示的信息,单击相关的删除按钮。b. 通过输入相关的条件,如删除从2011年08月10日至2011年12月10日的全部数据。c. 通过输入主键进行删除,如输入特定的ID号。这些都是界面设计问题,本系统从功能实现方面上手,选择具体的ID号进行删除,掌握删除的方法后,则可以实现其他更复杂的删除操作,具体的开发步骤如下:(1)为“删除备忘记录”菜单添加命令消息处理函数OnDelete()。(2)新建一个
42、对话框资源,设计界面如图所示: 图 4-16(3)新建一个对话框的类。设置新类的名字为CDeleteItem,设置其基类为CDialog,为Dialog的ID“IDD_DIALOG_DEL”添加变量。调用ClassWizard为“ID”编辑框添加变量为“m_IDnum”,如图所示: 图 4-17(4)编写“删除备忘记录”菜单添加命令信息处理函数OnDelete(),代码如下所示:void CMemorandumView:OnDelete() CDeleteItem dlg; /创建删除对话框的对象if(!dlg.DoModal() /生成对话框return;(5)在删除记录对话框双击“OK”按钮,并添加如下所示的代码,该代码实现了根据用户输入的ID号来删除该ID号代表的元组的信息。void CDeleteItem:OnOK