好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

c语言ppt谭浩强教材配套版第14章.ppt

54页
  • 卖家[上传人]:tian****1990
  • 文档编号:72962188
  • 上传时间:2019-01-24
  • 文档格式:PPT
  • 文档大小:348.81KB
  • / 54 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 14.1 C++的特点 14.2 最简单的C++程序 14.3 C++的输入输出 14.4 函数的重载 14.5 带缺省参数的函数 14.6 变量的引用类型5 14.7 内置函数 14.8 作用域运算符 14.9 动态分配/撤销内存的运算符new和delete 14.10 小结,第14章 C++对C的扩充,14.1 C++的特点 C语言是结构化和模块化的语言,它是面向过程的在处理较小规模的程序时,程序员用C语言较得心应手但是当问题比较复杂、程序的规模比较大时,结构化程序设计方法就显出它的不足C程序的设计者必须细致地设计程序中的每一个细节,准确地考虑到程序运行时每一时刻发生的事情,例如各个变量的值是如何变化的,什么时候应该进行哪些输入,在屏幕上应该输出什么等这对程序员的要求是比较高的,如果面对的是一个复杂问题,程序员往往感到力不从心当初提出结构化程序设计方法的目的是解决软件设计危机,但是这个目标并未完全实现为了解决软件设计危机,在20世纪80年代提出了面向对象的程序设计(Object-Oriented programming,简称OOP) ,在这种形势下,C++应运而生C++是由贝尔实验室的Bjarne Stroustrup博士及其同事在C语言的基础上开发成功的。

      C++保留了C语言原有的所有优点,增加了面向对象的机制C++与C完全兼容,用C语言写的程序可以不加修改地用于C++从C++名字可以看出它是对C的扩充,是C的超集它既可以用于结构化程序设计,又可用于面向对象的程序设计,因此它是一个功能强大的混合型的程序设计语言使用C++必须事先安装C++编译系统,在DOS系统下可以使用Turbo C++或Borland C++C源程序的后缀一般为.c,而C++的后缀一般为.cpp(为C plus plus的缩写,即C++)在Borland C++开发环境中,既可以使用C语言,也可以使用C++语言它有两个编译系统,根据源程序文件名的后缀是.c还是.cpp来决定使用哪个编译系统如上所述,面向对象程序设计方法主要是解决大型软件的设计问题只有编写过大型程序的人才会体会到C的不足和C++的优点C++是一种大型语言,其功能、概念和语法规定都比较复杂,要深入掌握它需要花较多的时间,尤其是需要有较丰富的实践经验用C++编程的主要是软件专业人员学校里一般专业的程序设计课程任务主要是进行程序设计的基本训练,因此,我们认为当前对大多数学生来说,应先掌握好C语言程序设计有了C语言的基础在需要时再学习C++不会太困难。

      为了使读者对C++有初步的了解,以便为今后学习C++打下基础,我们在进行本书的修订时特地增加了第14章和第15章,介绍C++的初步知识C++对C的“增强”,表现在两个方面: (1) 在原来面向过程的机制基础上,对C语言的功能做了不少扩充 (2) 增加了面向对象的机制 本章介绍C++对C功能的扩充第15章介绍有关面向对象的内容14.2 最简单的C++程序 例14.1 输出一行字符 #include #include /* 本程序的作用是输出一行字符 */ void main( ) { printf(“This is a c++ program.\ n“); cout “ This is a c++ program.\ n“ ; //本行输出一行字符 } 本程序和以前见过的C程序有什么不同?,(1) 在C++程序中一般习惯在主函数main前面加了一个类型声明符void,表示main函数没有返回值 (2) 除了可以用 /*……*/ 形式的注释行外,还允许使用以// 开头的注释从程序最后一行中可以看到:以//开头的注释可以不单独占一行,它出现在语句之后编译系统将// 以后到本行末尾的所有字符都作为注释。

      应注意:它是单行注释,不能跨行C++的程序设计人员多愿意用这种注释方式,它比较灵活方便 (3) 除了可以用printf函数输出信息外,还可以用cout进行输出cout要与运算符配合使用,程序中cout的作用是将运算符右侧的内容送到输出设备中输出4) 使用cout需要用到头文件iostream.h,在程序的第一行用#include命令将该头文件“包含”进来 程序运行时输出:This is a c++ program. This is a c++ program.可以看到程序中最后两个语句的作用相同,都是输出This is a c++ program.14.3 C++的输入输出 在C语言中文件不是由记录构成的对文件的存取是以字节为单位的,对一个C文件的输入和输出是一个字节流输入和输出的数据流的开始和结束只受程序控制而不受物理符号(如回车换行符)的控制这种文件称为流式文件在输入操作中,字节从输入设备流向内存,在输出操作中,字节从内存流向输出设备C++为了方便使用,除了可以利用printf和scanf函数进行输出和输入外,还增加了标准输入输出流cout和cincout是由c和out两个单词组成的,代表C++的输出流,cin是由c和in两个单词组成的,代表C++的输入流。

      它们是在头文件iostream.h中定义的在键盘和显示器上的输入输出称为标准输入输出,标准流是不需要打开和关闭文件即可直接操作的流式文件C++预定义的标准流如表14.1所示 表14.1,14.3.1 用cout进行输出 cout必须和输出运算符一起使用 在这里不作为位运算的左移运算符,而是起插入的作用,例如:cout“Hello!\n“;的作用是将字符串“Hello!\n” 插入到输出流cout中,也就是输出在标准输出设备上 也可以不用\n控制换行,在头文件iostream.h中定义了控制符endl代表回车换行操作,作用与\n相同endl的含义是end of line,表示结束一行 可以在一个输出语句中使用多个运算符 将多个输出项插入到输出流cout中,运算符的结合方向为自左向右,因此各输出项按自左向右顺序插入到输出流中例如:,for (i=1; i=3;i++) cout“count=“iendl; 输出结果为: count=1 count=2 count= 3 注意:每输出一项要用一个 符号不能写成 couta,b,c,“A“; 形式 用cout和 可以输出任何类型的数据,如: float a=3.45; int b=5; char c=′A′; cout“a=“a“,““b=“b“,““c=“cendl;,输出结果为 a=3.45,b=5,c=A 可以看到在输出时并未指定数据的类型(如实型、整型),系统会自动按数据的类型进行输出。

      这比用printf函数方便,在printf函数中要指定输出格式符(如%d,%f,%c等) 如果要指定输出所占的列数,可以用控制符setw设置(注意:若使用setw,必须包含头文件 iomanip.h),如setw(5) 的作用是为其后面一个输出项预留5列,如输出项的长度不足5列则数据向右对齐,若超过5列则按实际长度输出如将上面的输出语句改为:cout“a=“setw(6)aendl“b=“setw(6)bendl“c=“setw(6)cendl;,输出结果为 a=3.45 b=5 c=A 在C++中将数据送到输出流称为“插入”(inserting) ,或“放到”(putting) 常称为“插入运算符”14.3.2 用cin进行输入 输入流是指从输入设备向内存流动的数据流标准输入流cin是从键盘向内存流动的数据流用 运算符从输入设备键盘取得数据送到输入流cin中,然后送到内存在C++中,这种输入操作称为“提取”(extracting) 或“得到”(getting) 常称为“提取运算符” cin要与 配合使用例如: int a; float b; cinab; //输入一个整数和一个实数。

      注意不要写成cina,b; 可以从键盘输入: 20 32.45 (数据间以空格分隔),a和b分别获得值20和32.45用cin和 输入数据同样不需要在本语句中指定数据类型(用scanf函数输入时要根据数据类型指定输入格式符,如%d,%c等) 例14.2 cin与cout一起使用 #include void main( ) {coutname; cinage; cout“your name is “nameendl; cout“your age is “ ageendl; },运行情况如下: please enter your name and age: Wang-li↙ 19 ↙ your name is Wang-li your age is 19 程序中对变量的定义放在执行语句之后C语言是不允许这样的,它要求声明部分必须在执行语句之前而C++允许对变量的声明放在程序的任何位置(但必须在使用该变量之前)这是C++对C限制的放宽 C++为流输入输出提供了格式控制,如:dec(用十进制形式),hex(用十六进制形式),oct(用八进制形式), 还可以控制实数的输出精度等14.4 函 数 的 重 载 在上一节用到了插入运算符。

      这两个运算符本来是左移运算符和右移运算符,现在把它作为输入输出运算符即允许一个运算符用于不同场合,有不同的含义,这就叫运算符的“重载”(overloading),即重新赋予它新的含义其实就是“一物多用” 函数也可以重载用C语言编程时,有时会发现有几个不同名的函数,实现的是同一类的操作例如要求从3个数中找出其中最大者,而这3个数的类型事先不确定,可以是整数、实数或长整数程序设计者必须分别设计出3个函数,其原型为:,int max1(int a, int b, int c); (求3个整数中的最大者) float max2(float a, float b, float c); (求3个实数中的最大者) long max3(long a, long b, long c); (求3个长整数中的最大者) C语言规定在同一作用域(如同一文件模块中)中不能有同名的函数,因此3个函数的名字不相同 C++允许在同一作用域中用同一函数名定义多个函数,这些函数的参数个数和参数类型不同这就是函数的重载,即一个函数名多用 对上面的问题可以编写如下的C++程序 例14.3 求3个数中最大的数(分别考虑整数、实数、长整数的情况)。

      include int max(int a, int b, int c) //求3个整数中的最大者 { if (ba) a=b; if (ca) a=c; return a; } float max(float a,float b, float c) //求3个实数中的最大者 { if (ba) a=b; if (ca) a=c; return a; } long max(long a,long b,long c) //求3个长整数中的最大者 { if (ba) a=b; if (ca) a=c; return a; } void main( ) {int a,b,c; float d,e,f; long g,h,i; cinabc; cindef; cinghi; int m; m= max(a,b,c); //函数值为整型 cout “max-i=“mendl; float n; n=max(d,e,f); //函数值为实型,cout“max-f=“nendl; long int p; p=max(g,h,i); //函数值为长整型 cout“max-l=“pendl; } 运行情况如下: 85-6↙ 56.990.76543.1↙ 67543-56778123↙ max-i=8 (3个整数的最大值) max-f=90.765 (3个实数的最大值) max-l=78123 (3个长整数的最大值) main函数3次调用m。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.