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

下载本文档

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

文档简介

VC+综合实训报告实训名称:VC+综合实训 专 业:移动应用开发班 级:姓 名: 指导老师:实训时间:2011.2.21-2011.3.4目 录1实训目标22实训过程22.1第一章22.2第二章32.3第三章32.4第四章43FDraw的测试54总结51 实训目标(1)掌握C+程序的基本组成、数据类型和表达式、程序的基本控制结构;(2)掌握全局变量、局部变量、静态变量的使用方法;(3)掌握OOP中的类、继承、封装和多态的实现方法;(4)熟练运用构造函数、析构函数和虚函数;(5)熟练运用输入输出流的基本用法;(6)掌握MFC的应用程序框架生成过程和应用MFC的应用程序框架设计;(7)掌握文档的定义、使用,文档视结构的生成、滚动与文档交互的方法;(8)理解图形设备环境GDI的基本知识;(9)理解MFC消息映射机制;(10)熟练运用VC+6.0调试代码的基本方法,包括设置断点、step into、step over的使用。2 实训过程2.1 第一章1、 实训内容2011年2月21日课时量4实训内容第一章OOP基础详细内容1.C/C+入门程序分析2.输入并运行Simple.cpp3.数据类型与变量定义4.C/C+基础样板程序分析5.宏与常量定义6.自定义数据类型7.函数的默认变元8.指针与变量引用9.函数重载与函数模板10.变量的存储位置11.变量的作用域体会和收获通过这一章的学习对C+的知识又有了巩固,同时又有了新的了解。当编译一个C+程序时计算机的内存被分为四个区域:程序代码区、全局变量区、堆栈区和堆区。还对函数模板有了了解,函数模板不是真正的函数,它只是C+编译器生成具体函数的一个模子。C+中的变量可以分为全局变量、静态全局变量、静态局部变量和局部变量。其中,全局变量、静态全局变量和静态局部变量都存放在内存的静态存储区、局部变量存放在内存的栈区。2、 思考题的解答1)、如何使用冒泡排序算法重新改写源程序1-3中的函数sortArray(int intArry,int n)?答:void sortArray (int intArr, int n)int i,j,temp;for(i=0;in;i+)for(j=i+1;jintArrj)temp=intArri;intArri=intArrj;intArrj=temp;for(i=0;in;i+) coutintArri ;cout 继承的分析:1、第1181行定义和实现了3个类:Location-Point-Circle,即Location派生出Point类,Point类又派生出Cricle类,也可以说Circle类是Point类的子类,Point类是Circle类的父类,Point类是Location的子类。2、第78行定义了基类Location的成员变量x和y,用来刻画平面上一个位置的坐标,第10行定义了构造函数Location,第1114行定义了查看和改变成员变量x、y值的接口函数,第1516行申明了两个屏幕显示和隐藏的行为刻画函数框架。第6177行是这些成员函数的实现代码。3、第21行的类Point是由Location类采用public方式派生的,在继承Location类的所有成员变量和成员函数的基础上,第2328行新增加了用来进一步刻画平面上一个点的可见性、点的类型和实例个数的3个成员变量Visible、PTye和NumOflnstances,新增加了点的移动行为刻画成员函数MovTo|、获得点实例可见性的接口函数GetVisible和获取实例个数的静态接口函数getNumPflnstances等。4、第47行的类Circle是由Point类采用public方式派生的,在继承Point类的所有成员变量和成员函数的基础上,第50行新增加了用来进一步刻画平面上一个园的大小的成员变量Radius,新增加了园的缩放行为刻画成员函数Expand、获取园半径的接口函数GetRadius等。2 多态机制:答:1、通过虚函数实现多态性2、通过构造函数重载实现多态性3、通过成员函数重载实现多态2)、什么是友元函数?类的成员函数和友元函数有什么区别?答:友元函数不是成员函数,而是类在定义时声明的“朋友”函数,表明它不受访问控制的约束,可以访问类的全部成员。除可以将一个函数定义为一个类的友元函数外,还可以将一个类定义为另一个类的友元类。如一个类A是类B的友元类,则类A的所有成员函数在对B类实例进行操作时,可以不受控制的访问B类的多有成员。友元的关系是单向的,而不是双向的,友元的关系不能传递。区别:成员函数是要受访问控制的约束,而友元函数不受约束。3)、什么是异常?C+如何处理异常?答:程序语句的语法正确是编译通过的前提条件,但有些语句在运行时的某些特殊情况下,如系统资源短缺、参数取值越界、指针非法指向、外部控制设备出错等,会导致系统运行时产生错误称为异常或异常错误。规范化异常处理的基本规则是:危险语句监督执行,尝试异常报告错误,所有同类型异常错误集中处理。异常处理的实现步骤:1、 定义异常(try语句块),将那些有可能产生错误的语句框定在try块中;2、 抛掷异常(throw语句块),当异常产生时,抛掷异常代码;3、 处理异常(catch),将特定异常处理的语句放在catch语句块中,以便异常被捕获石处理。4)、通过前两章内容的学习,总结C+代码重用的常用方法。答:代码重用主要分为源代码的级别重用和目标代码级别的重用,源代码级别重用虽然简单,只要将源代码一起编译即可,但它是最低级的重用方式;目标代码级重用是将常用的一些功能模块集中起来,经过编译独立存放在一个二进制文件中,一般以库的方式来体现2.3 第三章1、实训内容2011年2月23日课时量实训内容第3章输入/输出与C+流详细内容1、 C+流的概念2、 输入/输出流1. 标准输入流2. 标准输出流3、 文件流1. ASCII文件的操作2. 二进制文件的操作4、 字符串流体会和收获文件流的标准输出与输入方式,以及ASCII与二进制的性质。字符串流有相应的缓冲区,初始状态下流缓冲区是空的,如果向字符数组存入数据,随着不断向流插入数据,流缓冲区中的数据不断增加,代缓冲区满后,一起存入字符数组。如果是从字符数组读取数据,则先将字符数组中的数据送到流缓冲区,然后从缓冲区提取数据赋给有关变量。字符串流类没有成员函数,因此在建立字符串流对象时,通过给定参数来确定字符串流与字符数组的关联,即通过调用构造函数来解决问题。三曲2、思考题的解答1)、什么是ASCII文件?什么是二进制文件?两者之间有什么区别?答:二进制文件是按二进制的编码方式来存放文件的。信息在计算机上是用二进制表示的,这种表示法让人理解就很困难。因此计算机上都配有输入和输出设备,这些设备的主要目的就是,以一种人类可阅读的形式将信息在这些设备上显示出来供人阅读理解。为保证人类和ASCII码表,它的全称是“美国信息交换标准代码”。ASCII文件就是文本文件,最后保存后的文件是可读出来的,二进制文件最后保存出来的文件是乱码的,如果你的文件不想让别人看到就可以用二进制文件去保存,可以先输出ASCII文件,自己先看,然后改为二进制文件就没错了2)、C+通过什么方法设置输出流的格式?答:在输出数据时,往往不指定输出格式,由系统采取默认的格式。但有时需要指定输出的格式,通常有两种方法:一种是使用控制符的方法;另一种是使用流对象的有关成员函数。2.4 第四章1、实训内容2011年 月 日课时量 实训内容第4章基础GUI的VC+实现详细内容1、 基于MFC的GUI样板程序演示与分析1. FDraw简介2. FDraw的安装步骤2、 基于MFC的应用程序框架1.利用AppWizard为FDraw生成应用程序框架2.FDraw项目的观察3、 生成文档-视图4、 构造基本界面5、 对话框的设计与实现6、 视图的分割与滚动7、 打印与打印预览8、 联机帮助的实现体会和收获2、思考题的解答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实现称为“串行化”,它是用于在工作任务和程序之间会话时保证文档数据的一致性的一种机制。框架程序代码自动提供5)、分析成员函数CStroke:FinishStroke的流程,说明m_rectBounding的作用是什么?UpdateAllViews的作用是什么?该成员函数和CFDrawView:OnUpdate有什么关系?3 FDraw的测试4 总结在为期两周的VC+实训中,我发现了很多的问题,同时也学到很多的东西。 我基本把第一、二、三章的程序都演示了一遍,有时候输出的结果与预想的结果不一样,但是在不断的调试与运行中,发现问题,最终解决问题。重点:1、分支语句和循环语句的嵌套使用。(FOR语句和if语句的使用)2. C+程序的基本框架(结构程序设计框架、面向对象程序结构框架等)。 3. 能够使用Visual C+ 6.0集成开发环境编辑、编译、运行与调试程序,并掌握了快捷键的使用(包括运行(CTRL+F7)、编译(TRL+F5)。4. C+运算符的种类、运算优先级和结合性。5. 能熟练掌握C+表达式类型及求值规则(赋值运算,算术运算符和算术表达式,关系运算符和关系表达式,逻辑运算符和逻辑表达式,条件运算,指针运算,逗号表达式)。6. 掌握变量的定义与使用方法(变量的定义及初始化、全局变量、局部变量). 函数的定义方法和调用方法。2. 函数的类型和返回值。3. 变量的作用域、生存周期和存储类别(自动、静态、存储器、外部)。5. 递归函数。6. 函数重载。7. 内联函数。8. 带有缺省参数值的函数。能够使用格式控制数据的输入输出。重难点:1、指针与指针变量的概念,指针与地址运算符,指针与数组的结合和比较,以及基类指针与派生类指针的使用。2、数组的定义、初始化和访问,了解多维数组的定义、初始化和访问。3、指针的定义,引用4、字符串与字符数组的区别于使用,并记住常用字符串函数(strlen,strcpy,strcat,strcmp,strstr等)的使用。5、引用的基本概念,引用的定义与使用。6、形式参数与实在参数,参数值的传递。7、定义一个函数(有参数和无参数),实现其功能8、继承和派生的方式1. 类的定义方式、数据成员、成员函数及访问权限(public,private,protected)。2. 对象和对象指针的定义与使用。3. 构造函数、析构函数。4. 静态数据成员与静态成员函数的定义与使用方式。5. 常数据成员与常成员函数。6. This指针的使用。7. 友元函数和友元类。8. 对象数组与成员对象。【回顾实训过程做了哪些工作,在这个过程中遇到了哪些问题,解决方案是什么,通过实训掌握了哪些关键技术,有哪些收获和体

温馨提示

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

评论

0/150

提交评论