c++Chapter1 new.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《c++Chapter1 new.ppt》由会员分享,可在线阅读,更多相关《c++Chapter1 new.ppt(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1.1 C+1.1 C+语言的起源语言的起源语言的起源语言的起源1.2 C+1.2 C+语言与语言与语言与语言与C C语言的关系语言的关系语言的关系语言的关系1.3 C+1.3 C+语言与面向对象的程序设计语言与面向对象的程序设计语言与面向对象的程序设计语言与面向对象的程序设计1.4 C+1.4 C+程序的开发步骤程序的开发步骤程序的开发步骤程序的开发步骤1.5 1.5 简单的简单的简单的简单的C+C+程序程序程序程序1.6 1.6 基本输入、输出基本输入、输出基本输入、输出基本输入、输出1.1.7 7 注释注释注释注释第第 1 章章概概 述述 C+C+C+C+语言是一种已得到广泛使用的面向对
2、象的程序设计语言。本章回顾语言是一种已得到广泛使用的面向对象的程序设计语言。本章回顾语言是一种已得到广泛使用的面向对象的程序设计语言。本章回顾语言是一种已得到广泛使用的面向对象的程序设计语言。本章回顾C+C+C+C+语言的发展历史,讨论语言的发展历史,讨论语言的发展历史,讨论语言的发展历史,讨论C+C+C+C+语言与语言与语言与语言与C C C C语言的关系及其对面向对象程序设计语言的关系及其对面向对象程序设计语言的关系及其对面向对象程序设计语言的关系及其对面向对象程序设计的支持;介绍用的支持;介绍用的支持;介绍用的支持;介绍用C+C+C+C+语言开发程序的基本步骤及简单语言开发程序的基本步骤
3、及简单语言开发程序的基本步骤及简单语言开发程序的基本步骤及简单C+C+C+C+程序的组成。程序的组成。程序的组成。程序的组成。2020世纪世纪世纪世纪6060年代年代年代年代 Martin Richards Martin Richards 设计出设计出设计出设计出BCPLBCPL语言,它被用于在开发语言,它被用于在开发语言,它被用于在开发语言,它被用于在开发软件系统时作为记述语言。软件系统时作为记述语言。软件系统时作为记述语言。软件系统时作为记述语言。Ken Thompson Ken Thompson 在在在在BCPLBCPL的基础上开发了的基础上开发了的基础上开发了的基础上开发了B B语言语
4、言语言语言,美国美国美国美国DECDEC公司的公司的公司的公司的PDP-7PDP-7计算机中的计算机中的计算机中的计算机中的UNIXUNIX操作系统就是用操作系统就是用操作系统就是用操作系统就是用B B语言语言语言语言开发的。开发的。开发的。开发的。19701970年年年年 Dennis RitchieDennis Ritchie等在为等在为等在为等在为PDP-11PDP-11计算机开发计算机开发计算机开发计算机开发UNIXUNIX操作系统操作系统操作系统操作系统时,对时,对时,对时,对B B语言做了进一步的改进,推出了更加通用的语言做了进一步的改进,推出了更加通用的语言做了进一步的改进,推出
5、了更加通用的语言做了进一步的改进,推出了更加通用的C C语言。语言。语言。语言。19721972年年年年【1.1 C+1.1 C+语言的起源语言的起源语言的起源语言的起源 】兼有高级语言与汇编语言的优点:兼有高级语言与汇编语言的优点:兼有高级语言与汇编语言的优点:兼有高级语言与汇编语言的优点:vv 语言简洁语言简洁语言简洁语言简洁,数据类型丰富数据类型丰富数据类型丰富数据类型丰富vv 程序执行效率高程序执行效率高程序执行效率高程序执行效率高vv 可直接访问物理地址可直接访问物理地址可直接访问物理地址可直接访问物理地址vv 具有良好的可读性和可移植性,具有良好的可读性和可移植性,具有良好的可读性
6、和可移植性,具有良好的可读性和可移植性,并得到了广泛使用并得到了广泛使用并得到了广泛使用并得到了广泛使用 C C语言的优点语言的优点语言的优点语言的优点 C C语言只是一种面向过程的编程语言只是一种面向过程的编程语言只是一种面向过程的编程语言只是一种面向过程的编程语言,已经无法满足运用面向对象方语言,已经无法满足运用面向对象方语言,已经无法满足运用面向对象方语言,已经无法满足运用面向对象方法开发软件的需要。为此,法开发软件的需要。为此,法开发软件的需要。为此,法开发软件的需要。为此,AT&TAT&T贝贝贝贝尔实验室的尔实验室的尔实验室的尔实验室的Bjarne Stroustrup Bjarne
7、 Stroustrup 博士在博士在博士在博士在C C语言的基础上对其进行了改进和扩语言的基础上对其进行了改进和扩语言的基础上对其进行了改进和扩语言的基础上对其进行了改进和扩充,开发出支持面向对象程序设计的充,开发出支持面向对象程序设计的充,开发出支持面向对象程序设计的充,开发出支持面向对象程序设计的C+C+语言。语言。语言。语言。C+C+语言的来由语言的来由语言的来由语言的来由【1.1 C+1.1 C+语言的起源语言的起源语言的起源语言的起源 】C+C+语言与语言与语言与语言与C C语言的本质区别语言的本质区别语言的本质区别语言的本质区别C+C+语言支持面向对象的程序设计语言支持面向对象的程
8、序设计语言支持面向对象的程序设计语言支持面向对象的程序设计 C C语言仅支持面向过程的程序设计语言仅支持面向过程的程序设计语言仅支持面向过程的程序设计语言仅支持面向过程的程序设计 C+C+语言与语言与语言与语言与C C语言的关系语言的关系语言的关系语言的关系C+C+语言语言语言语言C C语言语言语言语言 与与与与C C语言兼容语言兼容语言兼容语言兼容 是是是是C C语言的一个超集语言的一个超集语言的一个超集语言的一个超集 绝大多数绝大多数绝大多数绝大多数C C语言代码无须语言代码无须语言代码无须语言代码无须 修改就可以直接在修改就可以直接在修改就可以直接在修改就可以直接在C+C+程序中使用程序
9、中使用程序中使用程序中使用 支持面向对象程序设计支持面向对象程序设计支持面向对象程序设计支持面向对象程序设计支持面向过程支持面向过程支持面向过程支持面向过程的程序设计的程序设计的程序设计的程序设计学好学好学好学好C+C+语言的语言的语言的语言的关键关键关键关键掌握好面向对象的程序设计思想掌握好面向对象的程序设计思想掌握好面向对象的程序设计思想掌握好面向对象的程序设计思想【1.2 C+1.2 C+语言与语言与语言与语言与C C语言的关系语言的关系语言的关系语言的关系】面向对象的程序设计是在吸收结构化程序设计的一切优点的基础上发面向对象的程序设计是在吸收结构化程序设计的一切优点的基础上发面向对象的
10、程序设计是在吸收结构化程序设计的一切优点的基础上发面向对象的程序设计是在吸收结构化程序设计的一切优点的基础上发展起来的一种新的程序设计方法,其本质是把数据和处理数据的过程抽象展起来的一种新的程序设计方法,其本质是把数据和处理数据的过程抽象展起来的一种新的程序设计方法,其本质是把数据和处理数据的过程抽象展起来的一种新的程序设计方法,其本质是把数据和处理数据的过程抽象成一个具有特定身份和某些属性的自包含实体成一个具有特定身份和某些属性的自包含实体成一个具有特定身份和某些属性的自包含实体成一个具有特定身份和某些属性的自包含实体对象。对象。对象。对象。面向对象系统最突出特点是封装性、继承性和多态性。面
11、向对象系统最突出特点是封装性、继承性和多态性。面向对象系统最突出特点是封装性、继承性和多态性。面向对象系统最突出特点是封装性、继承性和多态性。多态性是指相多态性是指相多态性是指相多态性是指相同的消息为不同的同的消息为不同的同的消息为不同的同的消息为不同的对象接收到时,可对象接收到时,可对象接收到时,可对象接收到时,可能导致不同的动作。能导致不同的动作。能导致不同的动作。能导致不同的动作。【1.3 C+1.3 C+语言与面向对象的程序设计语言与面向对象的程序设计语言与面向对象的程序设计语言与面向对象的程序设计】在面向对象的程序在面向对象的程序在面向对象的程序在面向对象的程序设计中,封装是一种数设
12、计中,封装是一种数设计中,封装是一种数设计中,封装是一种数据隐藏技术,它通过把据隐藏技术,它通过把据隐藏技术,它通过把据隐藏技术,它通过把一组数据和与数据有关一组数据和与数据有关一组数据和与数据有关一组数据和与数据有关的操作集合放在一起形的操作集合放在一起形的操作集合放在一起形的操作集合放在一起形成对象来实现。对象通成对象来实现。对象通成对象来实现。对象通成对象来实现。对象通过操作过操作过操作过操作接口接口接口接口与外部发生与外部发生与外部发生与外部发生联系,而内部的具体细联系,而内部的具体细联系,而内部的具体细联系,而内部的具体细节则被隐藏起来,对外节则被隐藏起来,对外节则被隐藏起来,对外节
13、则被隐藏起来,对外是不可见的。是不可见的。是不可见的。是不可见的。在面向对象的程序在面向对象的程序在面向对象的程序在面向对象的程序设计中,同样有着继承设计中,同样有着继承设计中,同样有着继承设计中,同样有着继承的机制。通过继承,程的机制。通过继承,程的机制。通过继承,程的机制。通过继承,程序可以在扩展现有类的序可以在扩展现有类的序可以在扩展现有类的序可以在扩展现有类的基础上声明新类。其中基础上声明新类。其中基础上声明新类。其中基础上声明新类。其中新类被称作原有类的新类被称作原有类的新类被称作原有类的新类被称作原有类的子子子子类或派生类,类或派生类,类或派生类,类或派生类,原有类称原有类称原有类
14、称原有类称作作作作基类基类基类基类,又叫,又叫,又叫,又叫父类父类父类父类。面向过程与面向对象的程序设计方法面向过程与面向对象的程序设计方法面向过程与面向对象的程序设计方法面向过程与面向对象的程序设计方法结构化程序设计基本思想自顶向下逐步求精模块化设计结构化编码问题:验证哥德巴赫猜想任意一个大于2的偶数都可以分解成两个素数之和。自顶向下、逐步求精1.首先将问题分解成判断每个大于2的偶数n能否分解成两个素数之和2.对上述问题进一步求精,问题的求解方法变成为选一个小于n的素数x,判断n-x是否为素数3.问题简化为怎样判断一个数是素数4.问题进一步简化为怎样判断一个数是否为另一个数所整除5.到此,问
15、题的求解过程已经完全清楚模块化设计、结构化编码步骤1和步骤2可以用一个函数模块proveGoldbach实现,模块中采用双重循环结构,外层循环n从4开始,每次加2。内层循环x从2开始,每次加1直到n/2。函数模块的功能是判断x和n-x是否都是素数。步骤3用函数模块isPrime实现,模块内用循环结构步骤4用函数模块isDividable实现,模块内用选择结构主函数模块main直接调用proveGoldbach模块,proveGoldbach模块调用isPrime模块,isPrime模块调用isDividable模块mainmainmainmainproveGoldbachproveGoldba
16、chproveGoldbachproveGoldbachisPrimeisPrimeisPrimeisPrimeisDividableisDividableisDividableisDividable结构化程序设计举例结构化程序设计举例内聚与耦合内聚与耦合衡量结构化程序设计的好坏有两个指标:1.内聚度:指同一个模块中各个步骤之间的关联程度2.耦合度:表示被调用函数与调用函数之间的接口复杂程度质量高的程序应该内聚度要高内聚度要高,耦合度要低。耦合度要低。#include /筛法求素数筛法求素数#define MAX_NUM 1000 void main()unsigned char sieveM
17、AX_NUM+1;long i,j,k=0;for(i=2;i=MAX_NUM;i+)/将全部数放进筛子将全部数放进筛子 sievei=1;for(i=2;i=MAX_NUM;i+)if(sievei=1)/如果如果i在筛子里,也即在筛子里,也即i是素数是素数 k+;printf(“%ld,“,i);if(k%15=0)printf(“n”);k=0;for(j=i*i;j=MAX_NUM;j+=i)/将素数将素数i的倍数从筛子中取出的倍数从筛子中取出 sievej=0;printf(“n”);存在的问题存在的问题存在的问题存在的问题:信息隐藏性不好信息隐藏性不好信息隐藏性不好信息隐藏性不好.
18、主函数既包括主函数既包括主函数既包括主函数既包括问题的具体解决过程问题的具体解决过程问题的具体解决过程问题的具体解决过程,叉涉及叉涉及叉涉及叉涉及具体的数据和对数据进行处理具体的数据和对数据进行处理具体的数据和对数据进行处理具体的数据和对数据进行处理的算法的算法的算法的算法解决方法解决方法解决方法解决方法:用函数封装具体的数据和对数用函数封装具体的数据和对数用函数封装具体的数据和对数用函数封装具体的数据和对数据处理的方法据处理的方法据处理的方法据处理的方法内聚与耦合内聚与耦合(续续)改进一改进一:缺点缺点:findPrimeAndPrint()函数内聚度较低。既包含求素数函数内聚度较低。既包含
19、求素数的功能的功能,又要打印素数又要打印素数参考代码参考代码改进二改进二:findPrimeAndPrint()函数分解成函数分解成findPrime()和和printPrime()两个高内聚的函数,但由于两个高内聚的函数,但由于sieve数组成为全局变量,这两个数组成为全局变量,这两个函数的耦合度增强了。函数的耦合度增强了。参考代码参考代码结构化程序设计的缺点结构化程序设计的缺点程序设计以功能为中心(而不是以数据为中心)、按步骤来进行。程序由一组相互协作的函数组成数据与处理数据的函数之间是分离的很难同时做到高内聚低耦合大型软件的编写比较复杂,软件开发和维护的费用比较高软件危机问题面向对象程序
20、设计面向对象程序设计基本原理:1.将数据和对数据进行操作(输入、访问、修改、输出等)的函数绑定封装在一个称为类的数据类型中。2.程序设计以数据为中心,程序由一组相互协作的对象组成。基本概念:对象对象:客观世界中任何一个事物都可以看成一个对象,对象可大可小,例如学校是一个对象,一个班级也是一个对象,一个学生也是一个对象。任何一个对象都应当具有这两个要素:1.属性 2.行为面向对象程序设计举例面向对象程序设计举例优点优点:1.1.采用动态数组实现内存的按需分配采用动态数组实现内存的按需分配2.2.主函数不涉及问题具体的解决方法以及问题所涉及的主函数不涉及问题具体的解决方法以及问题所涉及的数据的组织
21、形式和处理算法数据的组织形式和处理算法3.3.数据及对数据处理的函数聚集在类这样一个数据类型数据及对数据处理的函数聚集在类这样一个数据类型中,数据受到了保护中,数据受到了保护4.4.用类较好地实现了结构化程序设计中高内聚低耦合的用类较好地实现了结构化程序设计中高内聚低耦合的思想思想参考代码参考代码抽象性抽象性信息隐藏与数据封装构成了面向对象程序设计的基础。信息隐藏信息隐藏处理某个数据的所有相关函数都集中在一起。数据封装数据封装数据在类这个封装体的外部不可能被访问。继承性继承性提供类复合的实现机制,有助于实现代码的重用。继承性是面向对象程序设计的关键。多态性多态性提供类对象接口与其具体实现相分离
22、的手段多态性是面向对象程序设计的补充。函数重载函数重载用不同的接口访问同名的函数。运算符重载运算符重载扩充运算符的功能。接口重用接口重用用同样的接口访问功能不同的函数。面向对象程序设计基本思想面向对象程序设计基本思想每个部门有自己的数据和处理数据的方法人事档案财务报表销售数据每个部门的数据不对外公开部分之间通过发送消息获取对方的数据抽象性举例抽象性举例 一个公司的组织机构及其运作方式一个公司的组织机构及其运作方式继承性继承性体现在产品的更新换代多态性多态性体现在不同类型的手机采用不同的界面来实现同一个功能继承性和多态性举例继承性和多态性举例 C+C+C+C+语言是一种计算机编程语言,利用它编写
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+Chapter1 new Chapter1
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内