C 及Windows可视化程序设计第1章.ppt

上传人:marr****208 文档编号:133731423 上传时间:2020-05-30 格式:PPT 页数:224 大小:2.20MB
返回 下载 相关 举报
C 及Windows可视化程序设计第1章.ppt_第1页
第1页 / 共224页
C 及Windows可视化程序设计第1章.ppt_第2页
第2页 / 共224页
C 及Windows可视化程序设计第1章.ppt_第3页
第3页 / 共224页
C 及Windows可视化程序设计第1章.ppt_第4页
第4页 / 共224页
C 及Windows可视化程序设计第1章.ppt_第5页
第5页 / 共224页
点击查看更多>>
资源描述

《C 及Windows可视化程序设计第1章.ppt》由会员分享,可在线阅读,更多相关《C 及Windows可视化程序设计第1章.ppt(224页珍藏版)》请在金锄头文库上搜索。

1、C 及Windows可视化程序设计 总目录 第1章程序设计基础第2章结构化编程基础第3章构造类型初探第4章函数第5章对象和类第6章继承和派生类第7章多态性和虚函数 总目录 第8章类的成员和对象第9章运算符重载和流类库第10章面向对象课程设计第11章Windows程序基本风格第12章使用MFC类库编程第13章MFC文档 视结构第14章可视化设计实例 第1章这里是章的名称 1 1面向过程的程序设计方法1 2面向对象的程序设计方法1 3可视化程序设计1 4面向对象语言的发展1 5C 的面向过程和面向对象程序设计1 6C 的面向对象程序设计特点1 7数据对象和数据类型的属性 1 8C 的基本数据类型和

2、表达式1 9面向对象的标记图1 10使用类和对象实例1 11程序的编辑 编译和运行的基本概念1 12本书的结构实验习题 计算机科学发展的每一步 几乎都在软件设计和程序设计语言中得到充分体现 软件是一个发展的概念 随着软件开发规模的扩大和开发方式的变化 人们开始将程序设计语言作为一门科学来对待 程序设计方法和技术在各个时期的发展 不仅直接导致了一大批风格各异的程序设计语言的诞生 而且对计算机理论 硬件 软件以及计算机应用技术等多方面都产生了深远的影响 本章将使用伪码 以设计一个输入三角形的3个顶点坐标 计算3条边的长度的算法为例 分别介绍基于过程 面向对象和可视化程序设计的基本概念 引入面向对象

3、的概念并介绍C 程序和面向对象编程的基础知识 我们常常看到有人讲话很流利 但考虑问题时却很糊涂 这说明还需要具有正确的思维方法 尤其是在软件开发过程中 要求人们对问题域的理解 要比日常生活中对它的理解更深刻 更准确 这需要许多以软件专业知识为背景的思维方法 描述 是指用一种语言把人们对问题域中事物的认识 对问题及其解决方法的认识描述出来 最终的描述必须使用一种能够被机器读得懂的语言 即编程语言 直接使用机器语言来编写程序是一种相当复杂的手工劳动 它要求使用者熟悉计算机的有关细节 一般的工程技术人员难以掌握 汇编语言出现于20世纪50年代初期 其主要特征是可以用助记符来表示每一条机器指令 由于汇

4、编语言比机器语言容易记忆 编程效率就比机器语言前进了一大步 但汇编语言程序的大部分语句还是和机器指令一一对应的 与机器的相关性仍然很强 用汇编语言编好的程序需要由相应的翻译程序翻译成机器语言程序后方可执行 用程序设计语言写成的程序称为源程序 可以在具有该种语言编译系统的不同计算机上使用 源程序必须翻译成机器语言才能执行 逐条翻译并执行的翻译程序称为解释程序 例如BASIC语言解释程序 而将源程序一次翻译成目标程序然后再执行的翻译程序称为编译程序 例如FORTRAN C和C 编译程序 高级语言起始于20世纪50年代末期 因为它们更接近自然语言和数学语言 所以用它们编写的程序可读性强 交流较方便

5、60年代中期 FORTRAN COBOL LISP和ALGOL语言已相继出现 70年代以来 随着结构化程序设计思想的日益深入 使得这段时期问世的几种程序设计语言的控制结构大为简化 比较有代表性的有Pascal和C语言等 它们均属于面向过程的程序设计语言 从60年代起 ALGOL PL 1与COBOL都逐渐消失 尽管Pascal语言的许多结构用在Ada语言中 但它在70年代早期已度过了它的鼎盛时期 逐渐成为教学用语言 目前仍在使用的较老的语言都经历了阶段性的修改 以便反映来自其他计算机领域的明显影响 例如 FORTRAN90和Ada95 LISP更新为ScherneLISP 以后又改为Commo

6、nLISP 这些语言又称为面向过程的语言 较新的语言如C 则是从C语言演化而来的混合型面向对象语言 由此可见 人们借助自然语言所产生的对问题域的认识远远不能被机器理解和执行 而机器能够理解的编程语言又很不符合人的思维习惯 人们习惯使用的语言和计算机能够理解并执行的编程语言之间存在着很大的差距 称这种差距为 语言的鸿沟 程序设计语言发展的趋势就是为了使这种鸿沟变窄 图1 1给出了随着语言发展鸿沟变窄的示意图 图1 1语言的发展使鸿沟变窄 由于人的认识差距 所以问题域与自然语言之间也有缝隙 机器语言与自然语言的鸿沟最宽 随着编程语言由低级向高级的发展 它们与自然语言之间的鸿沟在逐渐变窄 C语言是美

7、国Bell实验室开发成功的 当时的高级语言基本上都不适合开发系统软件 而C语言却成功地开发了UNIX操作系统 它的表达式简洁 具有丰富的运算符和良好的控制结构与数据结构 目前 其应用领域已不限于系统软件的开发 而成为最流行的程序设计语言之一 C语言是典型的面向过程的语言 所谓 面向过程 就是不必了解计算机的内部逻辑 而把精力主要集中在对如何求解问题的算法逻辑和过程的描述上 通过编写程序 把解决问题的步骤告诉计算机 1 1 2面向过程与结构化程序设计 例1 1 给出输入三角形的3个顶点坐标 计算3条边的长度的过程算法描述 从面向过程的角度看 问题的实质是取得3个顶点的坐标 然后计算每两点之间的距

8、离 可以将求解过程简单地描述如下 输入 3个坐标 即6个数据 输出 3条边的长度 算法设计 接受3组数据 每组2个数据 x1 y1 第1组数据 x2 y2 第2组数据 x3 y3 第3组数据 计算每两点之间的距离AB x1 y1 与 x2 y2 之间的距离AC x1 y1 与 x3 y3 之间的距离BC x2 y2 与 x3 y3 之间的距离输出 AB AC BC 由此可见 这种算法的特点是按部就班地求解 而且条理清晰易懂 随着应用需求的扩大和变化 软件生产的方法和效率仍然远远跟不上社会发展的需要 软件工作者开始考虑如何提高软件质量和生产效率 即使用系统方法代替个人经验 智慧 技巧等 使建立软

9、件系统的过程遵从一系列规范化阶段 包括需求分析 概要设计 详细设计 实现 组装测试 运行和维护等 这就将软件设计工作推进到软件工程时代 结构化程序设计被称为软件发展中的第3个里程碑 其影响将比前两个里程碑 子程序 高级语言 更为深远 结构化程序设计的概念 最早是由Dijkstra提出的 他在1965年召开的IEIP会议上提出 GOTO语句可以从高级语言中取消 一个程序的质量与程序中所含的GOTO语句的数量成反比 Tom DeMarcod在 结构化分析与系统规格说明 教材中提出基于模型的软件工程概念 认为对于复杂软件系统的创建 必须首先为它们建立系统的书面模型 另一个有影响的软件理论是Nikla

10、nsWirth提出的 算法 数据结构 程序 将软件划分成若干个可以单独命名并分别编写的部分 称其为模块 模块化使软件能够有效地管理 维护 分析和处理复杂问题 在20世纪80年代 软件工作者普遍接受了模块化程序设计方法 接下来就是争论如何建立模块 有人认为最佳途径是使用函数 有人认为每个模块只应容纳一个数据结构 有人认为每个模块只应做一件事 还有人提出了事件驱动概念 这些代表性解决方案也促进了程序设计语言的发展 C语言是结构化程序设计语言 它的程序设计特点就是函数设计 所谓函数 就是模块的基本单位 是对处理问题的一种抽象 例如 将求绝对值的功能抽象为abs 参数 就有abs 5 5和abs 55

11、 55 称abs为求一个数的绝对值函数 而称5和 55为函数abs的参数 把一切逻辑功能完全独立的或相对独立的程序部分都设计成函数 并让每一个函数只完成一个功能 这样 一个函数就是一个程序模块 程序的各个部分除了必要的信息交流之外 互不影响 相互隔离的程序设计方法就是模块化程序设计方法 C语言的这种程序结构化和模块化设计方法 特别适合于大型程序的开发 它解决了过去组成大系统时所产生的多文件的组织与管理问题 在程序规模比较大时 一般是根据结构化程序设计方法将程序划分成多个源文件 在编译该程序时 可以按一个个源文件为单位 分别进行编译并产生与之对应的目标文件 然后再用连接程序把所生成的多个目标文件

12、连接成一个可执行文件 称C语言的这种编译过程为分块编译 C语言的这种分块编译处理方式可以使一个程序同时由多个人进行开发 为大型软件的集体开发提供了有力的支持 分块编译的优点还在于修改一个源文件中的程序后 并不需要把整个程序的所有文件重新编译 这就大大节省了时间 下面是用C 语言编写一个求三角形两点之间距离时面向过程的算法思想 输入 3个坐标 即6个数据 输出 3条边的长度 算法设计 接受3组数据 每组2个数据 x1 y1 第1组数据 x2 y2 第2组数据 x3 y3 第3组数据计算每两点之间的距离AB func x1 y1 x2 y2 AC func x1 y1 x3 y3 BC func

13、x2 y2 x3 y3 输出 AB AC BC 函数func的说明func a b c d 参数 a b c d功能 求 a c 2 b d 2的平方根函数func相当于C 函数库中的sqrt函数 可以直接使用sqrt函数求平方根 例如 AB sqrt x1 x2 x1 x2 y1 y2 y1 y2 由此可以看出 面向过程的程序设计的关键是考虑使用结构化设计方法 使程序模块化 因为它是以函数过程和数据结构为中心 所以不能直接反映出人类认识问题的过程 由此可见 现代计算机是面向算法的自动机 算法通过程序告诉计算机如何执行 构成程序的符号系统是语言 它是描述算法的工具 计算机语言 程序设计语言 的

14、发展过程就是其功能不断完善 描述问题的方法逐步接近人类思维方式的过程 在计算机语言的发展过程中 新技术和新思想也不断出现 因为C 是混合型语言 所以可以使用C 编译器所提供的对象 设计出更好的 面向过程的软件系统 程序设计语言是计算机科学中一个不断变化的领域 有的语言开始退出舞台 让位给新的语言 如ML Smalltalk Prolog 有的语言 如FORTRAN则不断地演化发展着 以巩固自己的地位 同时 人们又力求开发出更好的程序设计语言 1 2面向对象的程序设计方法 结构化程序设计技术是20世纪70年代研究的中心问题 而今天的热点则是面向对象程序设计语言 如Smalltalk Traits

15、 Eiffel和Java等语言都是面向对象的程序设计语言 C 则是在标准C语言的基础上 引入 面向对象 概念而扩充形成的混合型面向对象语言 面向对象的程序设计方法不是以函数过程和数据结构为中心 而是以对象代表求解问题的中心环节 它追求的是现实问题空间与软件系统解空间的近似和直接模拟 这就改变了原来计算机程序的分析 设计和实现的过程与方法之间的脱节和跳跃状态 从而使人们对复杂系统的认识过程与系统的程序设计实现过程尽可能地一致 面向对象方法的产生 是计算机科学发展的要求 20世纪80年代 特别是90年代以来 软件的规模进一步扩大 对软件可靠性和代码可重用性的要求也进一步提高 就是在这样的背景下 面

16、向对象的程序设计方法应运而生 和传统的程序设计方法相比 面向对象的程序设计具有抽象 封装 继承和多态性等特征 其实 面向对象 不仅仅作为一种技术 更作为一种方法论贯穿于软件设计的各个阶段 面向对象的技术在系统程序设计 数据库及多媒体开发等领域都得到广泛应用 专家们预测 面向对象的程序设计思想将会主导今后程序设计语言的发展 例1 2 给出输入三角形的3个顶点坐标 计算3条边的长度的面向对象的算法描述 根据 问题域 设计程序模块 这里首先从顶点坐标考虑 顶点坐标就是一个点 通过这个点 可以得到它与另一个点的距离 从而将平面抽象为点对象的集合 三角形的3个顶点就是点类的3个实际对象 求三角形的3条边的边长 就是求每两个点对象之间的距离 因此 重点应放在如何描述这个点类上 设计Point类 这个类的属性具有两个坐标值 x y 它表现的行为是能初始化这个点的属性值 对于不同的点的对象 具有不同的属性值 也就是不同的x和y值 这个点类能向外界提供自己的属性值 并能计算它与另一个对象之间的距离 由此推知 可以像图1 2那样描述这个类 图1 2point类示意图 第1个方框中是类名 第2个方框中是坐标

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号