清华大学谭浩强教授的C教程第1章

上传人:e****s 文档编号:242762841 上传时间:2024-09-03 格式:PPT 页数:33 大小:486.50KB
返回 下载 相关 举报
清华大学谭浩强教授的C教程第1章_第1页
第1页 / 共33页
清华大学谭浩强教授的C教程第1章_第2页
第2页 / 共33页
清华大学谭浩强教授的C教程第1章_第3页
第3页 / 共33页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版副标题样式,C+,程序设计,中国高等院校计算机根底教育课程体系规划教材,谭浩强 编著,总 目 录,第1篇 基 本 知 识,第1章,C+,的初步知识,第2章 数据类型与表达式,第2篇 面向过程的程序设计,第3章 程序设计初步,第4章 函数与预处理,第5章 数组,第6章 指针,第7章 自定义数据类型,第3篇 基于对象的程序设计,第8章 类和对象,第9章 关于类和对象的进一步讨论,第10章 运算符重载,第4篇 面向对象的程序设计,第11章 继承与派生,第12章 多态性与虚函数,第13章 输入输出流,第14章,C+,工具,第1章,C+,的初步知识,第2章 数据类型与表达式,第1篇基 本 知 识,第1章,C+,的初步知识,*1.1,从,C,到,C+,*1.2,最简单的,C+,程序,1.3,C+,程序的构成和书写形式,1.4,C+,程序的编写和实现,1.5 关于,C+,上机实践,计算机诞生初期,人们要使用计算机必须用机器语言或汇编语言编写程序。世界上第一种计算机高级语言诞生于1954年,它是FORTRAN语言。先后出现了多种计算机高级语言。其中使用最广泛、影响最大的当推BASIC语言和C语言。,BASIC语言是1964年在FORTRAN语言的根底上简化而成的,它是为初学者设计的小型高级语言。,C语言是1972年由美国贝尔实验室的研制成功的。它不是为初学者设计的,而是为计算机专业人员设计的。大多数系统软件和许多应用软件都是用C语言编写的。,*1.1 从,C,到,C+,但是随着软件规模的增大,用C语言编写程序渐渐显得有些吃力了。,C+是由AT&T Bell(贝尔)实验室的Bjarne Stroustrup博士及其同事于20世纪80年代初在C语言的根底上开发成功的。C+保存了C语言原有的所有优点,增加了面向对象的机制。,C+是由C开展而来的,与C兼容。用C语言写的程序根本上可以不加修改地用于C+。从C+的名字可以看出它是C的超集。C+既可用于面向过程的结构化程序设计,又可用于面向对象的程序设计,是一种功能强大的混合型的程序设计语言。,例1.1 输出一行字符: “This is a C+ program.。,程序如下:,#include /包含头文件iostream,using namespace std; /使用命名空间std,int main( ),coutab; /,输入语句,sum=a+b; /,赋值语句,couta+b=sumy) z=x; /if语句,如果xy,那么将x的值赋给z,else z=y; /否那么,将y的值赋给z,return(z); /将z的值返回,通过max带回调用处, /max函数结束,int main( ) /主函数, /主函数体开始,int a,b,m; /,变量声明,cinab; /,输入变量,a,和,b,的值,m=max(a,b); /,调用,max,函数,将得到的值赋给,m,coutmax=mab;,c=max(a,b); /,调用,max,函数,coutmax=cy) z=x;,else z=y;,return(z);,只要在被调用函数的首部的末尾加一个分号,就成为对该函数的函数声明。函数声明的位置应当在函数调用之前。,下面举一个包含类(class)和对象(object)的C+程序,目的是使读者初步了解C+是怎样表达面向对象程序设计方法的。,例1.4 包含类的C+程序。,#include / 预处理命令,using namespace std;,class Student / 声明一个类,类名为Student,private: / 以下为类中的私有局部,int num; / 私有变量num,int score; / 私有变量score,public: / 以下为类中的公用局部,void setdata( ) / 定义公用函数setdata,cinnum; / 输入num的值,cinscore; / 输入score的值,void display( ) /,定义公用函数,display,coutnum=numendl; /,输出,num,的值,coutscore=scoreendl; /,输出,score,的值,;,; / 类的声明结束,Student stud1,stud2; /,定义,stud1,和,stud2,为,Student,类的变量,称为对象,int main( ) /,主函数首部,stud1.setdata( ); /,调用对象,stud1,的,setdata,函数,stud2.setdata( ); /,调用对象,stud2,的,setdata,函数,stud1.display( ); /,调用对象,stud1,的,display,函数,stud2.display( ); /,调用对象,stud2,的,display,函数,return 0;,在一个类中包含两种成员: 数据和函数,分别称为数据成员和成员函数。在C+中把一组数据和有权调用这些数据的函数封装在一起,组成一种称为“类(class)的数据结构。在上面的程序中,数据成员num,score和成员函数setdata,display组成了一个名为Student的“类类型。成员函数是用来对数据成员进行操作的。也就是说,一个类是由一批数据以及对其操作的函数组成的。,类可以表达数据的封装性和信息隐蔽。在上面的程序中,在声明Student类时,把类中的数据和函数分为两大类: private(私有的)和public(公用的)。把全部数据(num,score)指定为私有的,把全部函数(setdata,display)指定为公用的。在大多数情况下,会把所有数据指定为私有,以实现信息隐蔽。,具有“类类型特征的变量称为“对象(object)。,程序中第1824行是主函数。,程序运行情况如下:,1001 98.5 (输入学生1的学号和成绩),1002 76.5 (输入学生2的学号和成绩),num=1001 (输出学生1的学号),score=98.5 (输出学生1的成绩),num=1002 (输出学生2的学号),score=76.5 (输出学生2的成绩),C+程序的结构和书写格式归纳如下:,1 一个C+程序可以由一个程序单位或多个程序单位构成。每一个程序单位作为一个文件。在程序编译时,编译系统分别对各个文件进行编译,因此,一个文件是一个编译单元。,(2) 在一个程序单位中,可以包括以下几个局部:, 预处理命令。上节4个程序中都包括#include命令。, 全局声明局部(在函数外的声明局部)。在这局部中包括对用户自己定义的数据类型的声明和程序中所用到的变量的定义。,1.3,C+,程序的构成和书写形式, 函数。函数是实现操作的局部,因此函数是程序中必须有的和最根本的组成局部。每一个程序必须包括一个或多个函数,其中必须有一个(而且只能有一个)主函数(main函数)。,但是并不要求每一个程序文件都必须具有以上3个局部,可以缺少某些局部(包括函数)。,(3) 一个函数由两局部组成:, 函数首部,即函数的第一行。包括函数名、函数类型、函数属性、函数参数(形参)名、参数类型。,一个函数名后面必须跟一对圆括号, 函数参数可以缺省,如int main( )。, 函数体,即函数首部下面的大括号内的局部。如果在一个函数中有多个大括号,那么最外层的一对 为函数体的范围。,函数体一般包括:,局部声明局部 (在函数内的声明局部)。包括对本函数中所用到的类型、函数的声明和变量的定义。,对数据的声明既可以放在函数之外(其作用范围是全局的),也可以放在函数内(其作用范围是局部的,只在本函数内有效)。,执行局部。由假设干个执行语句组成,用来进行有关的操作,以实现函数的功能。,4 语句包括两类。一类是声明语句,另一类是执行语句。 C+对每一种语句赋予一种特定的功能。语句是实现操作的根本成分,显然,没有语句的函数是没有意义的。C+语句必须以分号结束。,(5) 一个C+程序总是从main函数开始执行的,而不管main函数在整个程序中的位置如何。,(6) 类(class)是C+新增加的重要的数据类型,是C+对C的最重要的开展。有了类,就可以实现面向对象程序设计方法中的封装、信息隐蔽、继承、派生、多态等功能。在一个类中可以包括数据成员和成员函数,他们可以被指定为私有的(private)和公用的(public)属性。私有的数据成员和成员函数只能被本类的成员函数所调用。,(7)C+程序书写格式自由,一行内可以写几个语句, 一个语句可以分写在多行上。C+程序没有行号,也不像FORTRAN或COBOL那样严格规定书写格式(语句必须从某一列开始书写)。,(8) 一个好的、有使用价值的源程序都应当加上必要的注释,以增加程序的可读性。C+还保存了C语言的注释形式,可以用“/*/对C+程序中的任何局部作注释。在“/*和“*/之间的全部内容作为注释。,用“/作注释时,有效范围只有一行,即本行有效,不能跨行。而用“/*/作注释时有效范围为多行。只要在开始处有一个“/*,在最后一行结束处有一个“*/即可。因此,一般习惯是: 内容较少的简单注释常用“/,内容较长的常用“/*/ 。,一个程序从编写到最后得到运行结果要经历以下一些步骤。,1. 用C+语言编写程序,用高级语言编写的程序称为“源程序source program。C+的源程序是以.cpp作为后缀的(cpp是c plus plus 的缩写)。,2. 对源程序进行编译,为了使计算机能执行高级语言源程序,必须先用一种称为“编译器(complier)的软件(也称编译程序或编译系统),把源程序翻译成二进制形式的“目标程序(object program)。,1.4,C+,程序的编写和实现,编译是以源程序文件为单位分别编译的。目标程序一般以.obj或.o作为后缀(object 的缩写)。编译的作用是对源程序进行词法检查和语法检查。编译时对文件中的全部内容进行检查,编译结束后会显示出所有的编译出错信息。一般编译系统给出的出错信息分为两种,一种是错误(error);一种是警告(warning) 。,3. 将目标文件连接,在改正所有的错误并全部通过编译后,得到一个或多个目标文件。此时要用系统提供的“连接程序(linker)将一个程序的所有目标程序和系统的库文件以及系统提供的其他信息连接起来,最终形成一个可执行的二进制文件,它的后缀是.exe,是可以直接执行的。,4. 运行程序,运行最终形成的可执行的二进制文件(.,exe,文件),得到运行结果。,5. 分析运行结果,如果运行结果不正确,应检查程序或算法是否有问题。,图1.1,在了解了C+语言的初步知识后,读者最好尽快在计算机上编译和运行C+程序,以加深对C+程序的认识,并初步掌握C+的上机操作。,读者可以使用不同的C+编译系统,在不同的环境下编译和运行一个C+程序。但是需要强调的是,我们学习的是C+程序设计,应当掌握的是标准C+,而不应该只了解某一种“方言化的C+。不应当只会使用一种C+编译系统,只能在一种环境下工作,而应当能在不同的C+环境下运行自己的程序,并且了解不同的C+编译系统的特点和使用方法,在需要时能将自己的程序方便地移植到不同的平台上。,1.5 关于,C+,上机实践,在本书的参考书?C+程序设计题解与上机指导?一书中简单介绍了在Visual C+ 6.0和GCC两种典型的环境下运行C+程序的方法。,请读者选择一种(如能做到两种更好) C+编译系统,在该环境下输入和运行习题中的程序,掌握上机的方法和步骤。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 商业计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!