VC++综合实训报告.doc_第1页
VC++综合实训报告.doc_第2页
VC++综合实训报告.doc_第3页
VC++综合实训报告.doc_第4页
VC++综合实训报告.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VC VC 综合实训报告综合实训报告 专 业 国际外包 学 号 41134X16 姓 名 樊荣 指导教师 高云 1 实验一实验一 实验名称第一章 OOP 基础实验课时6 实 验 过 程 与 体 会 实验过程 实验过程 1 阅读并理解本章内容 2 进行例题代码调试 3 根据后面知识点加以巩固 实验体会 实验体会 重新阅读看过之后对 C 的知识又有了巩固 同时又有了新的 了解 本章较为基础 所以看过之后一般没什么疑难问题 把 知识部分加以巩固就可以了 对函数模板有了了解 函数模板 不是真正的函数 它只是 C 编译器生成具体函数的一个模子 C 中的变量可以分为全局变量 静态全局变量 静态局部变 量和局部变量 实验二实验二 实验名称第二章 OOP 实现实验课时6 实 验 过 程 与 体 会 实验过程 实验过程 1 阅读并理解本章内容 2 进行例题代码调试 3 询问老师一些关于构造函数的代码注意点 4 根据后面知识点加以巩固 实验体会 实验体会 在此章知道了异常的处理方法 如果哦仔细的巩固 一般来说 这章的内容还是比较容易的 在定义构造函数与析构函数时 不能为它们指定返回类型 构造函数的作用是在对象被建立时 自动地对对象进行初始化 如为指针数据成员建立该成员所指 向的对象 2 实验三实验三 实验名称第 3 章输入 输出与 C 流实验课时6 实 验 过 程 与 体 会 实验过程 实验过程 1 阅读并理解本章内容 2 进行例题代码调试 3 连同后面知识点加以理解 实验体会 实验体会 此章只需仔细阅读知识点就可以 没什么疑难问题 理解字符 串流有相应的缓冲区 初始状态下流缓冲区是空的 如果向字 符数组存入数据 随着不断向流插入数据 流缓冲区中的数据 不断增加 代缓冲区满后 一起存入字符数组 如果是从字符 数组读取数据 则先将字符数组中的数据送到流缓冲区 然后 从缓冲区提取数据赋给有关变量 实验四实验四 实验名称第 4 章基础 GUI 的 VC 实现实验课时10 实 验 过 程 与 体 会 实验过程 实验过程 1 基于 MFC 的 GUI 样板程序演示与分析 2 阅读并理解本章内容 3 进行例题代码调试 4 根据后面知识点加以巩固 5 联机帮助的实现 实验体会 实验体会 这时一个全新的内容 一开始都不知道怎么着手 但是后来的 阅读中看出 这只是按部敲代码 但是这么看是简单的事 却 一点不简单 总会出现这样那样的错误 有时候是很多 但是 只要有什么不懂的问一下别人 慢慢地就可以理解进入状态了 3 实验总结实验总结 通过以下思考题 使得自己对各知识点能够更好的整合运用 此次实训 让自己对 程序编写有了更深的认识 而且让自己的编程能力得到了一些长足的进步 能够尽早的 接触比较正规化的实训 让自己更能体会到与课堂不一样的感觉 总之此次实训收益颇 丰 第一章第一章 思考题的解答 1 如何使用冒泡排序算法重新改写 源程序 1 3 中的函数 sortArray int intArry int n 答 void sortArray int intArr int n int i j temp for i 0 i n i for j i 1 jintArr j temp intArr i intArr i intArr j intArr j temp for i 0 i n i cout intArr i cout 继承的分析 1 第 1 181 行定义和实现了 3 个类 Location Point Circle 即 Location 派生出 Point 类 Point 类又派生出 Cricle 类 也可以说 Circle 类是 Point 类的子类 Point 类是 Circle 类的 父类 Point 类是 Location 的子类 2 第 7 8 行定义了基类 Location 的成员变量 x 和 y 用来刻画平面上一个位置的坐 标 第 10 行定义了构造函数 Location 第 11 14 行定义了查看和改变成员变量 x y 值的 接口函数 第 15 16 行申明了两个屏幕显示和隐藏的行为刻画函数框架 第 61 77 行是 这些成员函数的实现代码 3 第 21 行的类 Point 是由 Location 类采用 public 方式派生的 在继承 Location 类的 所有成员变量和成员函数的基础上 第 23 28 行新增加了用来进一步刻画平面上一个点 的可见性 点的类型和实例个数的 3 个成员变量 Visible PTye 和 NumOflnstances 新增加 了点的移动行为刻画成员函数 MovTo 获得点实例可见性的接口函数 GetVisible 和获取 实例个数的静态接口函数 getNumPflnstances 等 4 第 47 行的类 Circle 是由 Point 类采用 public 方式派生的 在继承 Point 类的所有 成员变量和成员函数的基础上 第 50 行新增加了用来进一步刻画平面上一个园的大小的 成员变量 Radius 新增加了园的缩放行为刻画成员函数 Expand 获取园半径的接口函数 GetRadius 等 5 2 多态机制 答 1 通过虚函数实现多态性 2 通过构造函数重载实现多态性 3 通过成员函数重载实现多态 2 什么是友元函数 类的成员函数和友元函数有什么区别 答 友元函数不是成员函数 而是类在定义时声明的 朋友 函数 表明它不受访问控 制的约束 可以访问类的全部成员 除可以将一个函数定义为一个类的友元函数外 还 可以将一个类定义为另一个类的友元类 如一个类 A 是类 B 的友元类 则类 A 的所有成 员函数在对 B 类实例进行操作时 可以不受控制的访问 B 类的多有成员 友元的关系是 单向的 而不是双向的 友元的关系不能传递 区别 成员函数是要受访问控制的约束 而友元函数不受约束 3 什么是异常 C 如何处理异常 答 程序语句的语法正确是编译通过的前提条件 但有些语句在运行时的某些特殊情况 下 如系统资源短缺 参数取值越界 指针非法指向 外部控制设备出错等 会导致系 统运行时产生错误称为异常或异常错误 规范化异常处理的基本规则是 危险语句监督执行 尝试异常报告错误 所有同类型异 常错误集中处理 异常处理的实现步骤 1 定义异常 try 语句块 将那些有可能产生错误的语句框定在 try 块中 2 抛掷异常 throw 语句块 当异常产生时 抛掷异常代码 3 处理异常 catch 将特定异常处理的语句放在 catch 语句块中 以便异常被捕获石 处理 4 通过前两章内容的学习 总结 C 代码重用的常用方法 答 代码重用主要分为源代码的级别重用和目标代码级别的重用 源代码级别重用虽然 简单 只要将源代码一起编译即可 但它是最低级的重用方式 目标代码级重用是将常 用的一些功能模块集中起来 经过编译独立存放在一个二进制文件中 一般以库的方式 来体现 第三章第三章 思考题的解答 1 什么是 ASCII 文件 什么是二进制文件 两者之间有什么区别 答 二进制文件是按二进制的编码方式来存放文件的 信息在计算机上是用二进制表示 的 这种表示法让人理解就很困难 因此计算机上都配有输入和输出设备 这些设备的 主要目的就是 以一种人类可阅读的形式将信息在这些设备上显示出来供人阅读理解 6 为保证人类和 ASCII 码表 它的全称是 美国信息交换标准代码 ASCII 文件就是文本文件 最后保存后的文件是可读出来的 二进制文件最后保存出来的 文件是乱码的 如果你的文件不想让别人看到就可以用二进制文件去保存 可以先输出 ASCII 文件 自己先看 然后改为二进制文件就没错了 2 C 通过什么方法设置输出流的格式 答 在输出数据时 往往不指定输出格式 由系统采取默认的格式 但有时需要指定输 出的格式 通常有两种方法 一种是使用控制符的方法 另一种是使用流对象的有关成 员函数 第四章第四章 思考题的解答 1 分析 CFDrawView 类的 OnLButtonUp OnLButtonDown 和 OnMouse Move 的消息处 理流程 说明 FDraw 是如何通过鼠标进行绘图的 答 对于 FDraw 而言 用户将在成员函数中填写初始笔画绘图 种植笔画绘图 当鼠标 按键按下时的绘图代码 通过消息映射来调用 OnLButtonDown 成员函数 该函数以一个新画笔开始 添加鼠标当 前位置到笔画中 并将笔画加入文档的笔画列表中 然后 OnLButtonDown 函数捕捉鼠 标事件 知道函数左键释放时结束笔画 初始笔画绘图是 OnLButtonDown 函数 终止笔 画绘图是 OnLButtonUp 函数 当鼠标按键按下时绘图为 OnLButtonUp 函数 2 什么是设备坐标 什么是逻辑坐标 两者之间通过什么函数转换 答 在 Windows 中 文档坐标系列称为逻辑坐标系 试图坐标系称为设备坐标系 逻辑 坐标按照坐标设置方式 有称为映射模式 可分为 8 种 一般使用的映射模式是 MM TEXT 这也是默认设置 在该模式下 坐标原点在工作区左上角 而 x 坐标值是向 右递增 y 坐标值是向下递增 单位值 1 代表 1 像素 设备上下文类 CDC 提供了两个成员函数 LPToD 和 PDPToLP 完成逻辑坐标和设备坐标之 间的转换工作 如其名称 LPToDP 将逻辑坐标转换为设备坐标 DPToLP 将设备坐标转 换为逻辑坐标 3 以成员函数 CFDrawDoc OnPenWidths 的实现为例 说明 MESSAGE MAP 中 ON COMMAND ID PEN WIDTHS OnPenWidth 语句的含义是什么 答 绘画过程中 用于改变画笔的粗细 4 什么是串行化 FDraw 如何实现绘图笔画的串行化 答 MFC 中默认的 I O 实现称为 串行化 它是用于在工作任务和程序之间会话时保证 文档数据的一致性的一种机制 框架程序代码自动提供相应代码 用户不必为串行化函 数添加任何代码 要让用户定义的类支持串行化 一般有以下几步 1 从 CObject 或其派生类派生出用户的类 7 2 重载 Serialize 成员函数 加入必要的代码 用户保存对象的数据成员到 CAchive 对 象以及从 CArchive 对象载入对象的数据成员状态 3 在类声明文件中 加入 DECLARE SERLAL 宏 编译时 编译器将扩充该宏 这是 串行化对象所必须的 4 定义一个不带参数的构造函数 5 在实现文件中加入 IMPLEMENT SERIAL 宏 5 分析成员函数 CStroke FinishStroke 的流程 说明 m rectBounding 的作用是什么 答 成员函数 FinishStroke 用于计算机笔画的边界矩形 在此函数中 笔画对象重复其点 数组 测试每一点的位置 如果一点位于当前边界矩形之外 笔画对象将扩大边界矩形 来包含该点 边界矩形每一条边再由画笔宽度来扩充 保护型成员变量 m rectBounding 是一个保存边界矩形的 CRect 对象 6 UpdateAllViews 的作用是什么 该成员函数和 CFDrawView OnUpdate 有什么关系 答 视图调用 UpdateAll views 传递两个变元 一个是 this 指针 用于确

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论