第五讲 C++ 语言初步

45
第第第 C++ 第第第第 5.1 C++ 第第第第第第第 5.2 C++ 第第第第第 5.3 C++ 第第第第第第 5.4 C++ 第第第第第

description

第五讲 C++ 语言初步. 5.1 C++ 语言的基本符号 5.2 C++ 语言的词汇 5.3 C++ 程序基本框架 5.4 C++ 程序的运行. 计算机语言与程序设计. 5.1 C++ 语言 的基本符号 5.2 C++ 语言 的词汇 5.3 C++ 程序 基本框架. 5.1 C++ 语言 的基本符号 5.2 C++ 语言 的词汇 5.3 C++ 程序 基本框架 5.4 C++ 程序 的运行. 所谓 语言 就是一个 字符集 加上一个 语法规则集合 ,按 规则 组成的 符号序列 就是 文章 。. - PowerPoint PPT Presentation

Transcript of 第五讲 C++ 语言初步

Page 1: 第五讲  C++ 语言初步

第五讲 C++语言初步5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 2: 第五讲  C++ 语言初步

计算机语言与程序设计 所谓语言就是一个字符集加上一个语法规则集合,按规则组成的符号序列就是文章。 计算机语言同样是一个基本符号集合和一个规则集合的组合,按规则组成的符号序列就是程序,这个组成过程就是进行程序设计。

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 3: 第五讲  C++ 语言初步

5.1.1 基本符号分类字母:由大小写英文字母共 52 个符号组成。数字:由 0 到 9 共 10 个符号组成。特殊符号:由 % , & 等 33 个符号组成。 (P26) 上述符号按 C++ 语法规则组成的符号序列就是 C++ 程序。

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 4: 第五讲  C++ 语言初步

5.1.2 基本符号的 ASCII 编码 ASCII 编码的中文名称是“美国标准信息交换码”。 ASCII 码表将 95 个基本符号 ( 可打印 ) 以及 33 个控制字符共 128 个字符和 0000000~1111111 共 128 个 7位二进制码建立对应关系。 (P27. 表 2.1) 计算机通过基本符号对应的 ASC II 码来识别基本符号。

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 5: 第五讲  C++ 语言初步

在 ASCII 编码中, 0000000~0011111 和 1111111 这 32 个二进制码是控制字符的编码。严格的讲,这些字符并不是 C++ 语言的一部分。 在 ASCII 编码中, 0100000~1111110 这 95 个可打印符号构成了 C++语言的基本字符集。

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 6: 第五讲  C++ 语言初步

不同的计算机使用不同的扩展ASCII 编码,符号和编码的对应关系需具体分析。

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 7: 第五讲  C++ 语言初步

词汇:由一个或者多个基本符号组成的符合规则的单词。 C++ 语言的词汇包括 5 类单词:

关键字 P28标识符 P30字面常量 P30运算符 P33分割符 P34

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 8: 第五讲  C++ 语言初步

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架

5.2.1 关键字 (Key word)关键字又被称为保留字 (Reserved word) , C++ 语言中的关键字不得移作它用。 (P29. 表 2.2)使用 C++ 语言编程前,应了解 C++语言的当前版本和应用领域,掌握关键字集合,避免在编程时误用。

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 9: 第五讲  C++ 语言初步

5.2.2 标识符 (Identifier)标识符是程序中各种成分的名字。标识符的组成规则:标识符以字母或下横线开始;由字母、数字、下横线组成;中间不能有空格。标识符不能是关键字。标识符区分大小写。标识符有效长度一定。

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 10: 第五讲  C++ 语言初步

最著名的命名法—“匈牙利”方法由微软公司推出。主要思想:在变量和函数名称中加入前缀以增强人们对程序的理解。例 1 :采用匈牙利法,所有的字符变量前用 ch 作为前缀;所有的指针变量前用 p 作为前缀。

char ch_c1,ch_c2;

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 11: 第五讲  C++ 语言初步

Windows 应用程序命名规则林锐博士对“匈牙利”命名规则做了合理简化。

【规则 1 】类名和函数名用大写字母开头的单词组合而成。class Node; // 类名class LeafNode; // 类名void Draw(void); // 函数名void SetValue(int value); // 函数名

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 12: 第五讲  C++ 语言初步

【规则 2 】变量和参数用小写字母开头的单词组合而成。BOOL flag;int drawMode;

【规则 3 】常量全用大写的字母,用下划线分割单词。const int MAX = 100;const int MAX_LENGTH = 100;

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 13: 第五讲  C++ 语言初步

【规则 4 】静态变量加前缀 s_ (表示static )。void Init(…) { static int s_initValue; // 静态变量 }【规则 5 】如果不得已使用全局变量,则加前缀 g_ (表示 global )。int g_howManyPeople; // 全局变量int g_howMuchMoney; // 全局变量

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 14: 第五讲  C++ 语言初步

【规则 6 】类的数据成员加前缀 m_(表示member ),这样可以避免数据成员与成员函数的参数同名。void Object::SetValue (int width, int height) { m_width = width; m_height = height; }

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 15: 第五讲  C++ 语言初步

其他常见的标识符命名方法: 下划线法 骆驼法

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 16: 第五讲  C++ 语言初步

5.2.3 字面常量 (literal constant)字面常量是程序处理的数据的值。字面常量分为 4 种:

int 型常量float 型常量char 型常量字符串常量

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 17: 第五讲  C++ 语言初步

5.2.3.1 int 型常量int 型常量即整型常量,即整数。C++ 程序中的 int 型常量:十进制整数:正常表示;基本字符 0~9 。如 4798 , -23 , 0 等。八进制整数:以 0 开始;基本字符 0 ~7 。如 02,017,0475 等。十六进制整数:以 0x 开始;基本字符0~9 , A~F( 大小写都可 ) 。如 0x3D 。

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 18: 第五讲  C++ 语言初步

5.2.3.2 float 型常量float 型常量即浮点常量。两种表示法:(1) 小数点表示法(2) 科学表示法

WeJ=Wx10J

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 19: 第五讲  C++ 语言初步

5.2.3.3 char 型常量char 型常量即字符常量。使用单引号括起来的基本符号就是字符常量。如’ A’,’g’,’3’,’!’ 等。 字符常量在计算机内部仍以整数形式存储。使用字符常量的优点是可增强程序的可移值性。

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 20: 第五讲  C++ 语言初步

5.2.3.4 字符串常量 使用双括号括起来的字符序列被称为字符串常量。

字符串常量的长度为该字符串中所有字符的个数加 1 。这里,“ 1” 是串尾符“ \0” 。

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 21: 第五讲  C++ 语言初步

5.2.4 运算符 (operator) 主要是由第 3 类基本符号构成;此外还包括个别关键字。 (P33)

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 22: 第五讲  C++ 语言初步

5.2.3.4 字符串常量 使用双括号括起来的字符序列被称为字符串常量。

字符串常量的长度为该字符串中所有字符的个数加 1 。这里,“ 1” 是串尾符“ \0” 。

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 23: 第五讲  C++ 语言初步

5.2.5 分割符 (separator) 分割符是用于界定或者分割其他语法成分的单词。 主要的分割符: (P34) ; 表示一个句子的结束。 ” 表示一个字符串的开始与结束。

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 24: 第五讲  C++ 语言初步

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架

C++ 语言同时支持结构程序设计 (SP) 和面向对象程序设计 (OOP)

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 25: 第五讲  C++ 语言初步

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架

5.3.1 C++ 程序的 SP 框架 结构程序设计 (SP) 的基本思想是自顶向下、逐步求精。编程时将复杂问题分解为若干子问题,使用独立的程序功能模块完成这些子问题。 C++ 语言中将基本的程序功能模块称为函数。函数和函数之间通过全局量、函数参数和函数返回值进行数据通信。

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 26: 第五讲  C++ 语言初步

例: SP 框架的 C++ 程序 ( 和 C 程序基本相似 )# include <iostream.h>void WriteM(int m){ cout<<"this is the value of m :"<<m<<"\n";}void WriteN(int n){ cout<<"this is the value of n :"<<n<<"\n";}void main ( ) { WriteM(30); WriteN(40);}

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 27: 第五讲  C++ 语言初步

SP 框架中 C++ 程序的组成部分5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架

主函数

用户定义函数

全局说明库函数

入口 出口5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 28: 第五讲  C++ 语言初步

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架

(1) 主函数:它是整个程序的主控制模块,也是整个程序的入口和出口。(2) 用户自定义函数:用户定义的一个或者多个函数,它们是 C++ 程序的主要部分。(3) 库函数:由系统提供的函数。(4) 全局说明:由各函数共同使用的常量、变量、自定义类型的说明以及已定义函数的原型。它是各函数之间的通信媒介。

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 29: 第五讲  C++ 语言初步

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架

(5) 注释:一个完整的 C++ 程序必须包含清楚、详细的注释。两种形式:处于符号 /* 和 */ 之间的全部符号。处于符号 // 右侧的全部符号 ( 本行 ) 。注释与程序的功能、编译及运行无关。

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 30: 第五讲  C++ 语言初步

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架

(6) 预处理命令:指出编译 C++ 程序之前应做的预处理工作。以 # 号开始。(P37)主要的预处理命令:文件嵌入命令(P37) 、宏定义命令 (P38) 和条件编译命令 (P40) 。优点:有助于各程序模块之间的协调和代码共享;有利于大型程序的组织和管理。

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 31: 第五讲  C++ 语言初步

(1) 文件嵌入命令 (#include)该命令要求系统在编译程序之前将其指定的文件嵌入到该命令当前位置。两种主要格式:#include < 文件名 >#include “ 文件名”如果要求嵌入系统头文件时,使用前者;如果要求嵌入自定义头文件时,使用后者。

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 32: 第五讲  C++ 语言初步

三点注意:(1) 每条文件嵌入命令只能指定一个文件。(2) 被包含文件可以嵌套,但应尽量避免。(3) 文件嵌入命令将两个或者多个程序模块组合成一个源程序,作为整体进行编译。

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 33: 第五讲  C++ 语言初步

(2) 宏定义命令 (#define); 取消宏定义命令 (#undef)该命令使用宏名代替一段字符串,这段字符串被称为宏替换体。格式:#define < 宏名 >< 宏替换体 >

例 :(P38)#define PI 3.14159#define ZERO 0.000001

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 34: 第五讲  C++ 语言初步

六点说明(1) 宏定义可作为常量说明,其作用类似于常量说明,但二者有区别。(2) 宏名也可出现在另一个宏定义的宏替换体中。(3) 宏替换体可以是符号或者字符串。(4) 宏替换体可以是可执行的表达式。(P38 第 4 个例子 )

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 35: 第五讲  C++ 语言初步

(5) 宏替换体可以为空。其作用是表明该宏名已经被定义。(6) 带参数的宏替换。格式: #define < 宏名 >< 形参 ><宏替换体 >这种宏替换实际效果相当于内联函数。C++ 语言中的宏定义命令从 C 语言继承而来。 C++ 语言中的 const 常量说明和 inline 函数可取代宏定义命令。因此,在 C++ 语言中,尽量避免使用宏定义命令。

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 36: 第五讲  C++ 语言初步

SP 方法的缺点:(1)SP 方法未能充分使用 C++ 语言的主要特征:类和对象。(2) 以函数为中心对程序进行模块划分,具有较大随意性。对程序可读性、可维护性和可重用性影响较大。(3) 除主函数之外,其余函数之间没有层次关系,不利于程序的编制、调试和重用。

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 37: 第五讲  C++ 语言初步

5.3.2 C++ 程序的 OOP 框架 按面向对象程序设计思想设计的C++ 程序,其主体为若干类定义的集合。5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架

通过逐一设计每个类,最终组合成一个完整程序,就好像通过逐一设计每个部件来设计机床、汽车等复杂产品。 类同结构化中使用的函数相比最大的优点就在于类的继承性,它使得OOP 程序具有可重用性好的特点。

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 38: 第五讲  C++ 语言初步

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架

类的说明部分: 类 C1 的说明 ;

类 C2 的说明 ;

。。。。 类 Cn 的说明 ;

主函数 main () ;

类成员函数的定义: 类 C1 的成员函数定义 ;

类 C2 的成员函数定义 ;

。。。。 类 Cn 的成员函数定义。

注意: VC++中采用 MFC 编程时,程序结构中省略了主函数。

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 39: 第五讲  C++ 语言初步

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架

#include<iostream.h>class one{ int m; double n; public: one(int a1) { m=a1;n=1.2; cout<<m<<" "<<n<<"\n";} one(double a2) { m=0;n=a2; cout<<m<<" "<<n<<"\n";}

};main(){ one obj1(5); one obj2(5.3); return 0;}

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

Page 40: 第五讲  C++ 语言初步

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

5.4.1 C++ 程序的编辑 编辑 C++ 程序的主要工作包括:创建、输入、浏览、修改、插入、删除等。Visual C++ , Borland C++ 都提供了集成开发环境 (Integrated Develop Environment, IDE) 。 IDE 能够提供编辑、文件管理、程序编译、链接以及项目管理等多种功能。

Page 41: 第五讲  C++ 语言初步

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

5.4.2 编译和链接 计算机无法直接运行 C++ 源程序,而只能直接运行由机器指令构成的目标程序。 C++ 源程序到目标程序之间的映射由编译系统 (co mpiler)实现。源程序

编译系统目标程序

Page 42: 第五讲  C++ 语言初步

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

源程序到目的程序之间的映射(1) 编译预处理:源程序被编译之前须经过“预处理”,即根据程序中预处理命令完成指定的预处理任务。(2) 链接:链接将编译好的目标程序和需共同运行的其它目标程序以及系统库程序链接起来,形成最终的可执行程序。

Page 43: 第五讲  C++ 语言初步

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

调试

C++ 源程序(.cpp 文件 )

C++ 预处理后的 C++ 源程序

目标程序(.obj 文件 )

可执行程序(. Exe 文件 )

运行

预处理程序

C++ 编译器

链接器

文本编辑器

Page 44: 第五讲  C++ 语言初步

5.1 C++ 语言的基本符号5.2 C++ 语言的词汇5.3 C++ 程序基本框架5.4 C++ 程序的运行

C++ 程序的一般实现过程(1) 将编辑的 C++ 源程序按” .cpp” 文件格式保存。(2) 编译预处理阶段不产生中间文件,自动进入编译阶段;编译后的目标文件一般为“ .obj” 文件。(3) 经过链接处理的可执行程序一般为“ .exe” 文件。(4) 计算机运行“ .exe” 文件。

Page 45: 第五讲  C++ 语言初步

作 业

思考题第 2,7 , 17 题。