ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:234.60KB ,
资源ID:3008873      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3008873.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(最新《C++程序设计案例教程》习题答案文档串行化编程.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

最新《C++程序设计案例教程》习题答案文档串行化编程.docx

1、最新C+程序设计案例教程习题答案文档串行化编程文档串行化编程将C+对象以字节流的形式保存在二进制文件中称为对象的串行化处理,经过串行化处理的称为持久对象,可以按需要在程序运行中存储和恢复。例4.1 日期对象的串行化SerialData应用程序串行化日期结构数据,用对话框修改数据,用编辑/修改菜单打开对话框。1. 用AppWizard建立一个普通单文档SerialDate工程2. 添加一个对话框资源:3. 用ClassWizard为三个编辑框添加变量m_Year, m_Month, m_Day4. 用ClassWizard添加类CDateDialog(其基类为CDialog)5. 在头文件Ser

2、ialDateDoc.h开头添加下面内容:struct Date int m_Year; int m_Month; int m_Day;#include DateDialog.hclass CSerialDateDoc : public CDocumentprotected: / create from serialization only CSerialDateDoc(); DECLARE_DYNCREATE(CSerialDateDoc)/ Attributespublic:Date date;6. 在“编辑”菜单中添加“修改”子菜单项ID_EDIT_MODIFY: 7. 将“修改”子菜单

3、项ID_EDIT_MODIFY消息映射到OnEditModify:8. 在SerialDateDoc.cpp中添加代码:CSerialDateDoc:CSerialDateDoc() date.m_Year=2002; date.m_Month=6; date.m_Day=1;void CSerialDateDoc:Serialize(CArchive& ar) if (ar.IsStoring() ardate.m_Year date.m_Month date.m_Year date.m_Month date.m_Day ; void CSerialDateDoc:OnEditModify(

4、) CDateDialog dlg; dlg.m_Year=date.m_Year; dlg.m_Month=date.m_Month; dlg.m_Day=date.m_Day; if(dlg.DoModal()=IDOK) date.m_Year=dlg.m_Year; date.m_Month=dlg.m_Month; date.m_Day=dlg.m_Day; UpdateAllViews(NULL); SetModifiedFlag(true);/关闭窗口时提示存盘9. 修改SerialDateView.cpp中的OnDraw代码void CSerialDateView:OnDraw

5、(CDC* pDC) CSerialDateDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); CString str; str.Format(Year:%d, pDoc-date.m_Year); pDC-TextOut(20,20,str); str.Format(Month:%d, pDoc-date.m_Month); pDC-TextOut(20,40,str); str.Format(Day:%d, pDoc-date.m_Day); pDC-TextOut(20,60,str);10. 编译运行程序初始界面:用编辑(E)修改(M)菜单命令

6、打开对话框修改日期:视图中显示的日期会作相应变化。程序退出时提示将修改后的日期数据存盘:选择“是”,将打开文件对话框:下次运行程序时可以通过打开文件恢复“无标题”文件中的日期。例4.2 矩形对象的串行化SerialRect应用程序串行化一个矩形数据,用对话框修改数据,用编辑/修改菜单打开对话框。1. 用AppWizard建立一个普通单文档SerialRect工程,在Step 6将CSerialRectView的基类设为CFormView。AppWizard创建如下初始界面的框架程序:2. 在Form上添加控件,定制界面:3. 添加变量Edit1Edit4整型(m_x1, m_y1, m_x2,

7、 m_y2),取值范围0300,Edit5为Control-CEdit型(m_Ctrl)。4. 用右键选择控件的Events修改Edit1的黙认EN_CHANGE消息处理OnChangeEdit1为自定义的OnChangeEdit。其他三个Edit也映射到这个函数。5. 在头文件SerialRectDoc.h中添加变量:class CSerialRectDoc : public CDocumentprotected: / create from serialization only CSerialRectDoc(); DECLARE_DYNCREATE(CSerialRectDoc)/ Att

8、ributespublic: int x1, y1, x2, y2;/ Operations6. 在SerialRectDoc.cpp的构造函数中初始化变量:CSerialRectDoc:CSerialRectDoc() / TODO: add one-time construction code here x1=y1=x2=y2=0;7. SerialRectView.cpp中添加下面内容:void CSerialRectView:OnChangeEdit() / TODO: Add your control notification handler code hereUpdateData(

9、); CSerialRectDoc* pDoc= GetDocument(); if(m_x1!=pDoc- x1) pDoc- x1 =m_x1; if(m_y1!=pDoc- y1) pDoc- y1 =m_y1; if(m_x2!=pDoc- x2) pDoc- x2 =m_x2; if(m_y2!=pDoc- y2) pDoc- y2 =m_y2; Invalidate(true);void CSerialRectView:OnInitialUpdate() CFormView:OnInitialUpdate(); GetParentFrame()-RecalcLayout(); Re

10、sizeParentToFit(); m_x1=GetDocument()-x1; m_x2=GetDocument()-x2; m_y1=GetDocument()-y1; m_y2=GetDocument()-y2; UpdateData(false);8. 在SerialRectDoc.cpp的串行化代码:void CSerialRectDoc:Serialize(CArchive& ar) if (ar.IsStoring() / TODO: add storing code here arx1y1x2x1y1x2y2; 9. 为CSerialRectView类添加OnDraw函数在工作区类视图中右键单击CSerialRectView类,选择Add Member Function弹出对话框:void CSerialRectView:OnDraw(CDC *pDC) m_Ctrl.UpdateWindow(); pDC=m_Ctrl.GetWindowDC(); pDC-Rectangle(m_x1,m_y1,m_x2,m_y2); UpdateData(false);10. 运行程序,可通过输入坐标值画出矩形,并可将所画的矩形存盘和恢复以前保存的矩形。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1