版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第1章章 C+的初步知识的初步知识1.1 C+概述概述1.2 面向过程的结构化程序设计方法面向过程的结构化程序设计方法1.3 面向对象的方法面向对象的方法1.4 简单的简单的C+程序程序1.5 C+程序的构成和书写形式程序的构成和书写形式1.6 C+程序的开发步骤及开发环境程序的开发步骤及开发环境1.1 C+概述概述lC+语言是在语言是在C语言的基础上发展起来的,而语言的基础上发展起来的,而C语言语言是在是在20世纪世纪70年代的年代的B语言基础上开发出来的。语言基础上开发出来的。lC语言同当时常用的其它高级语言一样,都是语言同当时常用的其它高级语言一样,都是面向面向过程过程的。的。lC+作
2、为作为C的继承者,在支持面向过程的的程序设计的继承者,在支持面向过程的的程序设计的同时,又可以进行以抽象数据类型为特点的基于的同时,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点对象的程序设计,还可以进行以继承和多态为特点的的面向对象面向对象的程序设计。的程序设计。lC+是一种是一种程序设计语言。程序设计语言。C+标准标准lC+真正正式公布的标准就三个:真正正式公布的标准就三个:lC+98、C+03、C+11。l其中其中C+98是第一个正式是第一个正式C+标准,标准,C+03是在是在C+98上面进行了小幅度的修订,上面进行了小幅度的修订,C+11(2011年年
3、8月月12日公布)则是一次全面的大进化。日公布)则是一次全面的大进化。l其实其实C+在第一个标准在第一个标准C+98之前就已经广为使用之前就已经广为使用了。只不过那时候还没有一个官方的统一标准,后了。只不过那时候还没有一个官方的统一标准,后来才开始起草标准草案,直到来才开始起草标准草案,直到98年才最终发布。年才最终发布。1.2 面向过程的结构化程序设计方法面向过程的结构化程序设计方法l设计思路:设计思路: 采用模块分解与功能抽象,自顶向下,逐步求精的设计方法。l程序结构:程序结构: 按功能划分为若干个基本模块,形成一个树状结构。 各模块间的关系尽可能简单,功能上相对独立。 每一模块内部均是由
4、顺序、选择和循环三种基本结构组成。 其模块化实现的具体方法是使用子程序。l优点:优点: 有效地将一个复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。l缺点:缺点: 可重用性差,数据安全性差,难以开发图形界面的应用。1.3 面向对象的方法面向对象的方法l面向对象方法的特点:面向对象方法的特点: 将数据及对数据的操作方法封装在一起,作为一个相互依存,不可分离的整体对象。 对同类型对象抽象出其共性,形成类。 类通过一个简单的外部接口与外界发生联系。 对象与对象之间通过消息进行通讯。1.4 简单的简单的C+程序程序l#include /包含头文件包含头文件iostreamlus
5、ing namespace std; /*使用命名空间使用命名空间std*/lint main( )llcoutHello World!n;lreturn 0;llC+程序结构由程序结构由注释注释、编译预处理编译预处理和和程序主体程序主体组成。组成。l注释有两种形式:注释有两种形式:/、/*/ 。l每个以符号每个以符号“”开头的行称为编译预处理行。开头的行称为编译预处理行。l“include”称为文件包含预处理命令,称为文件包含预处理命令,“include ”的作用是在编的作用是在编译之前将文件译之前将文件“iostream”的内容增加(包含)到程序中,的内容增加(包含)到程序中,iostre
6、am是系统定义是系统定义的一个的一个“头文件头文件”,它设置了,它设置了C+的的I/O相关环境,定义输入输出流对象相关环境,定义输入输出流对象cout与与cin等。等。l“using namespace std”的意思是使用命名空间的意思是使用命名空间“std”。C+标准库中的类和标准库中的类和函数是在命名空间函数是在命名空间std中声明的,因此程序中如果需要用到这些类和函数,就需中声明的,因此程序中如果需要用到这些类和函数,就需要用要用“using namespace std; ”作声明,表示要用到命名空间作声明,表示要用到命名空间std中的内容。中的内容。l程序主体由一个或多个函数组成,有
7、且只有一个函数是程序执行的入口,这个程序主体由一个或多个函数组成,有且只有一个函数是程序执行的入口,这个函数称为主函数(函数称为主函数(main函数)。函数)。lmain函数的返回值函数的返回值l在标准在标准C+中,中,main函数的返回类型函数的返回类型必须必须为为int,这样,这样返回值才能传递给程序的激活者(如操作系统)。虽返回值才能传递给程序的激活者(如操作系统)。虽然在一些编译器中,然在一些编译器中,void main( ) 可以通过编译(如可以通过编译(如 vc6),但并非所有编译器都支持),但并非所有编译器都支持 void main ,如果,如果你想你的程序拥有很好的可移植性,你
8、想你的程序拥有很好的可移植性,请一定要用请一定要用 int main( )。l如果如果 main 函数的最后没有写函数的最后没有写 return 语句的话,语句的话,C+98规定编译器要自动在生成的目标文件中(如规定编译器要自动在生成的目标文件中(如 exe 文件)加入文件)加入return 0; ,表示程序正常退出,返回,表示程序正常退出,返回值非值非0则表示失败。注意则表示失败。注意vc6 也不支持这个特性,不也不支持这个特性,不会在目标文件中加入会在目标文件中加入return 0。例例 求求a和和b两个数之和。两个数之和。l/ 求两数之和求两数之和 (本行是注释行本行是注释行)l#inc
9、lude /预处理命令预处理命令lusing namespace std; /使用命名空间使用命名空间stdlint main( ) /主函数首部主函数首部l /函数体开始函数体开始lint a,b,sum; /定义变量定义变量lcinab; /输入语句输入语句lsum=a+b; /赋值语句赋值语句lcouta+b=sumendl; /输出语句输出语句lreturn 0; /如程序正常结束,向操作系统返回一个零值如程序正常结束,向操作系统返回一个零值l /函数结束函数结束例例 给两个数给两个数x和和y,求两数中的大者。,求两数中的大者。l#include /预处理命令预处理命令lusing n
10、amespace std;lint max(int x,int y); /声明声明max函数,函数值为整型,形式参数函数,函数值为整型,形式参数x,y为整型为整型lint main( ) /主函数主函数llint a,b,m; /变量声明变量声明lcinab; /输入变量输入变量a和和b的值的值lm=max(a,b); /调用调用max函数,将得到的值赋给函数,将得到的值赋给mlcoutmax=my) /if语句,如果语句,如果xy,则将,则将x的值赋给的值赋给z,否则,将,否则,将y的值赋给的值赋给zl z=x; lelsel z=y; lreturn(z); /将将z的值返回,通过的值返回
11、,通过max带回调用处带回调用处l /max函数结束函数结束例例 包含类的包含类的C+程序。程序。#include / 预处理命令预处理命令using namespace std;class Student / 声明一个类,类名为声明一个类,类名为Studentprivate: / 以下为类中的私有部分以下为类中的私有部分int num; / 私有变量私有变量numint score; / 私有变量私有变量scorepublic: / 以下为类中的公用部分以下为类中的公用部分void setdata( ) / 定义公用函数定义公用函数setdata cinnum; / 输入输入num的值的值c
12、inscore; / 输入输入score的值的值void display( ) / 定义公用函数定义公用函数displaycoutnum=numendl; / 输出输出num的值的值coutscore=scoreendl; /输出输出score的值的值; 在一个类中包含两种成员: 数据和函数,分别称为数据成员和成员函数。在C+中把一组数据和有权调用这些数据的函数封装在一起,组成一种称为“类(class)”的数据结构。数据成员是类的属性,成员函数是用来对数据成员进行操作的。Student stud1,stud2; /定义定义stud1和和stud2为为Student类的变量,称为对象类的变量,称
13、为对象int main( ) / 主函数首部主函数首部stud1.setdata( ); / 调用对象调用对象stud1的的setdata函数函数stud2.setdata( ); / 调用对象调用对象stud2的的setdata函数函数stud1.display( ); / 调用对象调用对象stud1的的display函数函数stud2.display( ); / 调用对象调用对象stud2的的display函数函数return 0;程序运行情况如下:程序运行情况如下: 1001 98.5 (输入学生输入学生1的学号和成绩的学号和成绩)1002 76.5 (输入学生输入学生2的学号和成绩的学
14、号和成绩)num=1001 (输出学生输出学生1的学号的学号)score=98.5 (输出学生输出学生1的成绩的成绩)num=1002 (输出学生输出学生2的学号的学号)score=76.5 (输出学生输出学生2的成绩的成绩)具有“类”类型特征的变量称为“对象”(object)。l在一个类中包含两种成员:在一个类中包含两种成员: 数据和函数,分数据和函数,分别称为别称为数据成员数据成员和和成员函数成员函数。在。在C+中把一中把一组数据和有权调用这些数据的函数封装在一组数据和有权调用这些数据的函数封装在一起,组成一种称为起,组成一种称为“类类(class)”的数据结构。的数据结构。l类可以体现数
15、据的封装性和信息隐蔽。在上类可以体现数据的封装性和信息隐蔽。在上面的程序中,在声明面的程序中,在声明Student类时,把类中的类时,把类中的数据和函数分为两大类:数据和函数分为两大类: private(私有的私有的)和和public(公用的公用的)。把全部数据。把全部数据(num,score)指指定为私有的,把全部函数定为私有的,把全部函数(setdata,display)指定为公用的。在大多数情况下,会把所有指定为公用的。在大多数情况下,会把所有数据指定为私有,以实现信息隐蔽。数据指定为私有,以实现信息隐蔽。1.5 C+程序的构成和书写形式程序的构成和书写形式lC+程序的结构和书写格式归纳
16、如下:程序的结构和书写格式归纳如下: l 一个一个C+程序可以由一个程序单位或多个程序单程序可以由一个程序单位或多个程序单位构成。每一个程序单位作为一个文件。在程序编位构成。每一个程序单位作为一个文件。在程序编译时,编译系统分别对各个文件进行编译,因此,译时,编译系统分别对各个文件进行编译,因此,一个文件是一个编译单元一个文件是一个编译单元。l 在一个程序单位中,可以包括以下几个部分:在一个程序单位中,可以包括以下几个部分: 预处理命令。上节4个程序中都包括#include命令。 全局声明部分(在函数外的声明部分)。在这部分中包括对用户自己定义的数据类型的声明和程序中所用到的变量的定义。 函数
17、。函数是实现操作的部分,因此函数是程序中必须有的和最基本的组成部分。每一个程序必须包括一个或多个函数,其中必须有一个(而且只能有一个)主函数(main函数)。 但是并不要求每一个程序文件都必须具有以上3个部分,可以缺少某些部分(包括函数)。l 一个函数由两部分组成一个函数由两部分组成: 函数首部,即函数的第一行。包括函数名、函数类型、函数属性、函数参数(形参)名、参数类型。 一个函数名后面必须跟一对圆括号, 函数参数可以缺省,如int main( )。 函数体,即函数首部下面的大括号内的部分。如果在一个函数中有多个大括号,则最外层的一对 为函数体的范围。 函数体一般包括:l局部声明部分 (在函
18、数内的声明部分)。包括对本函数中所用到的类型、函数的声明和变量的定义。l对数据的声明既可以放在函数之外(其作用范围是全局的),也可以放在函数内(其作用范围是局部的,只在本函数内有效)。l执行部分。由若干个执行语句组成,用来进行有关的操作,以实现函数的功能。l 语句包括两类。一类是声明语句,另一类是执行语句包括两类。一类是声明语句,另一类是执行语句。语句。 C+对每一种语句赋予一种特定的功能。语对每一种语句赋予一种特定的功能。语句是实现操作的基本成分,显然,没有语句的函数句是实现操作的基本成分,显然,没有语句的函数是没有意义的。是没有意义的。C+语句必须以分号结束。语句必须以分号结束。l 一个一
19、个C+程序总是程序总是从从main函数开始执行函数开始执行的,而不的,而不论论main函数在整个程序中的位置如何。函数在整个程序中的位置如何。l 类类(class)是是C+新增加的重要的数据类型,是新增加的重要的数据类型,是C+对对C的最重要的发展。有了类,就可以实现面向的最重要的发展。有了类,就可以实现面向对象程序设计方法中的封装、信息隐蔽、继承、派对象程序设计方法中的封装、信息隐蔽、继承、派生、多态等功能。在一个类中可以包括数据成员和生、多态等功能。在一个类中可以包括数据成员和成员函数,他们可以被指定为私有的成员函数,他们可以被指定为私有的(private)和公和公用的用的(public)
20、属性。私有的数据成员和成员函数只能属性。私有的数据成员和成员函数只能被本类的成员函数所调用。被本类的成员函数所调用。l C+程序书写格式自由,一行内可以写几个语句,程序书写格式自由,一行内可以写几个语句, 一个语句可以分写在多行上一个语句可以分写在多行上。C+程序没有行号,程序没有行号,也不像也不像FORTRAN或或COBOL那样严格规定书写格式那样严格规定书写格式(语句必须从某一列开始书写语句必须从某一列开始书写)。l 一个好的、有使用价值的源程序都应当加上必要一个好的、有使用价值的源程序都应当加上必要的注释,以增加程序的可读性。的注释,以增加程序的可读性。C+还保留了还保留了C语言语言的注
21、释形式,可以用的注释形式,可以用“/*/”对对C+程序中的任程序中的任何部分作注释。在何部分作注释。在“/*”和和“*/”之间的全部内容作为之间的全部内容作为注释。注释。l用用“/”作注释时,有效范围只有一行,即本行有效,作注释时,有效范围只有一行,即本行有效,不能跨行。而用不能跨行。而用“/*/”作注释时有效范围为多作注释时有效范围为多行。只要在开始处有一个行。只要在开始处有一个“/*”,在最后一行结束处,在最后一行结束处有一个有一个“*/”即可。因此,即可。因此,一般习惯是:一般习惯是: 内容较少的内容较少的简单注释常用简单注释常用“/”,内容较长的常用,内容较长的常用“/*/ ”。1.6 C+程序的开发步骤及开发环境程序的开发步骤及开发环境l开发步骤开发步骤l编辑编辑l把按照把按照
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年辽宁省盖州市高二生物下册期末考试试卷带答案(B卷)
- 2026年青海省格尔木市高二生物下册期末考试试卷【A卷】附答案
- 2026年福建省永安市高二生物下册期末考试检测卷含答案(轻巧夺冠)
- 2026年云南省弥勒市高二生物下册期末考试检测卷(网校专用)附答案
- 2026年山西省古交市高二生物下册期末考试模拟卷含答案【培优A卷】
- 2026年云南省芒市高二生物下册期末考试试卷及参考答案【典型题】
- 2026年山东省海阳市高二生物下册期末考试试卷及答案【基础+提升】
- 2026年吉林省扶余市高二生物下册期末考试考试卷附参考答案【黄金题型】
- 2026年四川省什邡市高二生物下册期末考试考试卷(基础题)附答案
- 2026年河北省涿州市高二生物下册期末考试考试卷含答案【能力提升】
- 电商和厂家供货合同协议
- 引导接车课件
- 【MOOC】国际名酒知识与品鉴-暨南大学 中国大学慕课MOOC答案
- HG/T 4339-2024 机械设备用涂料(正式版)
- 唐诗宋词人文解读智慧树知到期末考试答案章节答案2024年上海交通大学
- 完美着装智慧树知到期末考试答案章节答案2024年武汉纺织大学
- 小学科学常考的38个实验及结论
- 宁波外国语学校小升初入学考试(附带答案)
- 2024届河北省石家庄市第四十中学数学七下期末检测试题含解析
- 数学与人体解剖学的结合课件
- 《工程项目投资与融资》 课后习题及答案--王乐 第1-11章
评论
0/150
提交评论