




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉轻工大学 Windows编程实验报告题 目: 文档与视图 专 业: 软件工程 班 级: 软件工程1202 学 号: 1205110519 姓 名: 江师朗 指导老师: 刘文涛 2014年12月28日程序1: 文档数据和视图显示。编写单文档程序,为文档对象添加数据成员recno(int类型),表示学号,stuname(CString类型)表示姓名,并在视图中输出文档对象中的内容。要求当按向上箭头或按向下箭头时,学号每次递增1或递减1,能在视图中反映学号变化。实验步骤:(1)首先建立一个单文档程序。(2)在文档类添加类的成员变量。头文件:public:int recno;CString stuname;并在实现文件里构造函数中初始化:CDemo1Doc:CDemo1Doc()/ TODO: add one-time construction code hererecno=1;stuname=慕火; (3)在ClassWizard里面利用消息映射(Message Maps)在对应类中(如*View)添加对WM_KEYDOWN的响应函数。添加下面阴影部分的代码。void CDemo1View:OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) /获取文档类的指针CDemo1Doc* pDoc = GetDocument();switch(nChar)case VK_UP:/上/学号递增pDoc-recno+;break;case VK_DOWN: /下/学号递减pDoc-recno-;break;/刷新客户区,重新绘制Invalidate();CView:OnKeyDown(nChar, nRepCnt, nFlags);(4)在视图类的OnDraw函数实现在客户区显示姓名和学号。添加下面阴影的代码:void CDemo1View:OnDraw(CDC* pDC)CDemo1Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);CString message;message.Format(学号:%d,姓名:%s,pDoc-recno ,pDoc-stuname);/在客户区显示姓名和学号pDC-TextOut(0,0,message);(5)调试运行。按键盘里的向上键时学号递增,向下键时学号递减。【程序2:单文档综合程序】实验步骤:(1)添加一个描述学生信息的类。选择vc+的菜单project-Add to Project-New,新建一个头文件StudentInfo.hStudent代码:/StudentInfo.h 文件内容class CStudentInfo : public CObjectCString strName;/ 姓名CString strNO;/ 学号BOOLbMale;/ 性别,是否为男CTimetBirth;/ 出生年月CStringstrSpecial;/ 专业DECLARE_SERIAL(CStudentInfo)/ 序列化声明public:CStudentInfo() ;CStudentInfo(CString name, CString id, BOOL male, CTime birth, CString special);void Serialize(CArchive &ar);void Display(int y, CDC *pDC);/ 在坐标为(0,y)处显示数据;(2)选择vc+的菜单project-Add to Project-New,新建一个实现文件StudentInfo.cpp/StudentInfo.cpp 文件内容#include stdafx.h#include StudentInfo.hCStudentInfo:CStudentInfo(CString name, CString id, BOOL male, CTime birth, CString special)strName= name;strNO= id;bMale= male;tBirth= birth;strSpecial= special;void CStudentInfo:Display(int y, CDC *pDC)CString str, strSex(女);if (bMale) strSex = 男;str.Format(%s %s %s %s %s, strName, strNO,strSex, tBirth.Format(%Y-%m-%d), strSpecial);pDC-TextOut(0, y, str);IMPLEMENT_SERIAL(CStudentInfo, CObject, 1)/ 序列化实现void CStudentInfo:Serialize(CArchive &ar)if (ar.IsStoring()arstrNamestrNObMaletBirthstrNamestrNObMaletBirthstrSpecial;(3)添加用于学生基本信息记录输入的对话框在资源视图里,添加一个对话框资源,资源id为:IDD_DIALOG_student(4)向对话框资源里添加控件。(5)用classwizard绑定各个控件的变量。(6)添加并处理菜单项在Ex_SDI2Doc.cpp文件的开始处,添加包含CStuInfoDlg类的头文件包含。在菜单资源的主菜单中添加顶层菜单项“学生基本信息(&S)”,在该顶层菜单项中添加子菜单“添加(&A)”(ID_STUINFO_ADD)。用MFC ClassWizard为CEx_SDI2Doc类添加处理菜单项ID_STUINFO_ADD的COMMAND 消息,并添加代码:void CEx_SDI2Doc:OnStuinfoAdd() /打开添加学生信息的对话框CStuInfoDlg dlg;if (dlg.DoModal() != IDOK) return;/ 添加学生的一条记录 CStudentInfo *pStudent = new CStudentInfo(dlg.m_name, dlg.m_id, dlg.m_male, dlg.m_birth, dlg.m_special);m_stuObArray.Add(pStudent);SetModifiedFlag();/ 设置文档更改标志 UpdateAllViews(NULL); / 更新视图(7)修改CEx_StudentDoc类代码在Ex_SDI2Doc.h文件的class CEx_SDI2Doc前面,添加包含CStudentInfo类的头文件。#include StudentInfo.h为CEx_ SDI2Doc类添加下列成员变量:public: CObArray m_stuObArray; / 对象集合类对象为CEx_SDI2Doc类添加成员函数CStudentInfo* GetStudentInfoAt(int nIndex),用来获取m_stuObArray中指定索引号的CStudentInfo类指针。 为CEx_SDI2Doc类添加成员函数int GetAllRecNum(void),用于获取集合类中对象的个数其代码如下:在Ex_SDI2Doc.h头文件手工添加如下代码:public:CObArray m_stuObArray; / 对象集合类对象CStudentInfo* GetStudentInfoAt(int nIndex); /获取指定学生int GetAllRecNum(void); /获取学生个数在Ex_SDI2Doc.cpp实现文件手工添加如下代码:CStudentInfo* CEx_SDI2Doc:GetStudentInfoAt(int nIndex)/返回指定学生return (CStudentInfo *)m_stuObArraynIndex;int CEx_SDI2Doc:GetAllRecNum()/返回学生个数return m_stuObArray.GetSize(); (8) 在CEx_ SDI2Doc类析构函数CEx_ SDI2Doc添加下列代码:CEx_ SDI2Doc:CEx_ SDI2Doc()int nIndex = GetAllRecNum();while (nIndex-)delete m_stuObArray.GetAt(nIndex); / 删除并释放对象的内存空间m_stuObArray.RemoveAll();(9) 在CEx_ SDI2Doc:Serialize函数中添加下列代码,实现保存功能。void CEx_SDI2Doc:Serialize(CArchive& ar)if (ar.IsStoring() m_stuObArray.Serialize(ar);else m_stuObArray.Serialize(ar);(10)修改CEx_ SDI2View类代码将CEx_ SDI2View:OnDraw代码修改,用来将所有的学生基本信息记录显示在视图中:void CEx_ SDI2View:OnDraw(CDC* pDC)CEx_SDI2Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data hereint y = 0;for
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025资料员之资料员基础知识考前冲刺练习题(黄金题型)附答案详解
- 自考专业(国贸)模拟试题附完整答案详解【网校专用】
- 2024年安全员考试考前冲刺练习试题附答案详解【达标题】
- 2024-2025学年中医执业医师每日一练试卷附参考答案详解【研优卷】
- 医学检验(中级)测试卷含答案详解【培优A卷】
- 自考专业(建筑工程)考试黑钻押题附完整答案详解【夺冠】
- 2025中考数学总复习《锐角三角函数》能力检测试卷及完整答案详解【历年真题】
- 期货从业资格之《期货法律法规》题库(得分题)打印附答案详解
- 2025年传染病(性病)诊疗知识考试试题(附答案)
- 胃息肉护理业务查房范文
- 国开2025年《行政领导学》形考作业1-4答案
- 养老护理员中级考试题库2025年(附答案)
- 2024年河北石家庄交通投资发展集团有限责任公司招聘考试真题
- 公安援疆工作总结
- 云南昆明元朔建设发展有限公司招聘笔试题库2025
- 湖南省益阳市2026届高三9月教学质量监测数学试题(含答案)
- 第8课《网络新世界》第一课时-统编版《道德与法治》四年级上册教学课件
- 2025秋人教版美术七年级第一单元 峥嵘岁月第1课 情感表达2
- 装饰工程拆除施工方案(3篇)
- 2025至2030年中国车载摄像头行业市场调研及投资战略规划建议报告
- 2025年招聘市场年中洞察报告-瀚纳仕
评论
0/150
提交评论