450 likes | 579 Views
第五讲 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++ 程序 的运行. 所谓 语言 就是一个 字符集 加上一个 语法规则集合 ,按 规则 组成的 符号序列 就是 文章 。.
E N D
第五讲 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++程序 的运行 所谓语言就是一个字符集加上一个语法规则集合,按规则组成的符号序列就是文章。 计算机语言同样是一个基本符号集合和一个规则集合的组合,按规则组成的符号序列就是程序,这个组成过程就是进行程序设计。
5.1.1 基本符号分类 字母:由大小写英文字母共52个符号组成。 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行 数字:由0到9共10个符号组成。 特殊符号:由%,&等33个符号组成。(P26) 上述符号按C++语法规则组成的符号序列就是C++程序。
5.1.2 基本符号的ASCII编码 ASCII编码的中文名称是“美国标准信息交换码”。 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行 ASCII码表将95个基本符号(可打 印)以及33个控制字符共128个字符 和0000000~1111111共128个7位二 进制码建立对应关系。(P27.表2.1) 计算机通过基本符号对应的ASC II码来识别基本符号。
在ASCII编码中,0000000~001 1111和1111111这32个二进制码是 控制字符的编码。严格的讲,这些 字符并不是C++语言的一部分。 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行 在ASCII编码中,0100000~111 1110这95个可打印符号构成了C++ 语言的基本字符集。
不同的计算机使用不同的扩展 ASCII编码,符号和编码的对应关系 需具体分析。 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++程序 的运行 C++语言的词汇包括5类单词: • 关键字 P28 • 标识符P30 • 字面常量 P30 • 运算符 P33 • 分割符P34
5.2.1 关键字(Key word) 关键字又被称为保留字(Reserved word),C++语言中的关键字不得移 作它用。(P29.表2.2) 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行 使用C++语言编程前,应了解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++程序 的运行 标识符的组成规则: • 标识符以字母或下横线开始;由字母、数字、下横线组成;中间不能有空格。 • 标识符不能是关键字。 • 标识符区分大小写。 • 标识符有效长度一定。
最著名的命名法—“匈牙利”方法 • 由微软公司推出。 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行 • 主要思想:在变量和函数名称中加入前缀以增强人们对程序的理解。 例1:采用匈牙利法,所有的字符变量前用ch作为前缀;所有的指针变量前用p作为前缀。 char ch_c1,ch_c2;
Windows 应用程序命名规则 • 林锐博士对“匈牙利”命名规则做了合理简化。 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行 【规则1】类名和函数名用大写字母 开头的单词组合而成。 class Node; // 类名 class LeafNode; // 类名 void Draw(void); // 函数名 void SetValue(int value); // 函数名
【规则2】变量和参数用小写字 母开头的单词组合而成。 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行 BOOL flag; int drawMode; 【规则3】常量全用大写的字母,用 下划线分割单词。 const int MAX = 100; const int MAX_LENGTH = 100;
【规则4】静态变量加前缀s_(表示 static)。 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行 void Init(…) { static int s_initValue; // 静态变量 } 【规则5】如果不得已使用全局变 量,则加前缀g_(表示global)。 int g_howManyPeople; // 全局变量 int g_howMuchMoney; // 全局变量
【规则6】类的数据成员加前缀m_(表示member),这样可以避免数据成员与成员函数的参数同名。【规则6】类的数据成员加前缀m_(表示member),这样可以避免数据成员与成员函数的参数同名。 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行 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++程序 的运行
5.2.3 字面常量(literal constant) 字面常量是程序处理的数据的值。 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行 字面常量分为4种: • int型常量 • float型常量 • char型常量 • 字符串常量
5.2.3.1 int型常量 int型常量即整型常量,即整数。 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行 C++程序中的int型常量: 十进制整数:正常表示;基本字符0~9。如4798,-23,0等。 八进制整数:以0开始;基本字符0 ~7。如02,017,0475等。 十六进制整数:以0x开始;基本字符 0~9,A~F(大小写都可)。如0x3D。
5.2.3.2 float型常量 float型常量即浮点常量。 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行 两种表示法: (1)小数点表示法 (2)科学表示法 WeJ=Wx10J
5.2.3.3 char型常量 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行 char型常量即字符常量。 使用单引号括起来的基本符号就是字符常量。如’A’,’g’,’3’,’!’等。 字符常量在计算机内部仍以整数形式存储。使用字符常量的优点是可增强程序的可移值性。
5.2.3.4 字符串常量 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行 使用双括号括起来的字符序列被称为字符串常量。 字符串常量的长度为该字符串中所有字符的个数加1。这里,“1”是串尾符“\0”。
5.2.4 运算符(operator) 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行 主要是由第3类基本符号构成;此外还包括个别关键字。(P33)
5.2.3.4 字符串常量 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行 使用双括号括起来的字符序列被称为字符串常量。 字符串常量的长度为该字符串中所有字符的个数加1。这里,“1”是串尾符“\0”。
5.2.5 分割符(separator) 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行 分割符是用于界定或者分割其他语法成分的单词。 主要的分割符:(P34) ; 表示一个句子的结束。 ” 表示一个字符串的开始与结束。
5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行 C++语言同时支持结构程序设计(SP)和面向对 象程序设计(OOP)
5.3.1 C++程序的SP框架 结构程序设计(SP)的基本思想是自顶向下、逐步求精。编程时将复杂问题分解为若干子问题,使用独立的程序功能模块完成这些子问题。 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行 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++程序 的运行
入口 出口 全 局 说 明 主函数 库 函 数 用户定义函数 SP框架中C++程序的组成部分 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行
(1)主函数:它是整个程序的主控制模块,也是整个程序的入口和出口。(1)主函数:它是整个程序的主控制模块,也是整个程序的入口和出口。 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行 (2)用户自定义函数:用户定义的一个或者多个函数,它们是C++程序的主要部分。 (3)库函数:由系统提供的函数。 (4)全局说明:由各函数共同使用的常量、变量、自定义类型的说明以及已定义函数的原型。它是各函数之间的通信媒介。
(5)注释:一个完整的C++程序必须包含清楚、详细的注释。(5)注释:一个完整的C++程序必须包含清楚、详细的注释。 • 两种形式: • 处于符号/*和*/之间的全部符号。 • 处于符号//右侧的全部符号(本行)。 注释与程序的功能、编译及运行无关。 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行
(6)预处理命令:指出编译C++程序之前应做的预处理工作。以#号开始。(P37)(6)预处理命令:指出编译C++程序之前应做的预处理工作。以#号开始。(P37) 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行 主要的预处理命令:文件嵌入命令(P37)、宏定义命令(P38)和条件编译命令(P40)。 优点:有助于各程序模块之间的协调和代码共享;有利于大型程序的组织和管理。
(1)文件嵌入命令(#include) 该命令要求系统在编译程序之前将其指定的文件嵌入到该命令当前位置。 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行 两种主要格式: #include <文件名> #include “文件名” 如果要求嵌入系统头文件时,使用前者;如果要求嵌入自定义头文件时,使用后者。
三点注意: (1)每条文件嵌入命令只能指定一个文件。 (2)被包含文件可以嵌套,但应尽量避免。 (3)文件嵌入命令将两个或者多个程序模块组合成一个源程序,作为整体进行编译。 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行
(2)宏定义命令(#define); 取消宏定义命令(#undef) 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行 该命令使用宏名代替一段字符串,这段字符串被称为宏替换体。 格式: #define <宏名><宏替换体> 例:(P38) #define PI 3.14159 #define ZERO 0.000001
六点说明 (1)宏定义可作为常量说明,其作用类似于常量说明,但二者有区别。 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行 (2)宏名也可出现在另一个宏定义的宏替换体中。 (3) 宏替换体可以是符号或者字符串。 (4) 宏替换体可以是可执行的表达式。(P38第4个例子)
(5)宏替换体可以为空。其作用是表明该宏名已经被定义。(5)宏替换体可以为空。其作用是表明该宏名已经被定义。 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行 (6)带参数的宏替换。 格式: #define <宏名><形参><宏替换体> 这种宏替换实际效果相当于内联函数。 C++语言中的宏定义命令从C语言继承而来。C++语言中的const常量说明和inline函数可取代宏定义命令。因此,在C++语言中,尽量避免使用宏定义命令。
SP方法的缺点: (1)SP方法未能充分使用C++语言的主要特征:类和对象。 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行 (2)以函数为中心对程序进行模块划分,具有较大随意性。对程序可读性、可维护性和可重用性影响较大。 (3) 除主函数之外,其余函数之间没有层次关系,不利于程序的编制、调试和重用。
5.3.2 C++程序的OOP框架 按面向对象程序设计思想设计的C++程序,其主体为若干类定义的集合。 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行 通过逐一设计每个类,最终组合成一个完整程序,就好像通过逐一设计每个部件来设计机床、汽车等复杂产品。 类同结构化中使用的函数相比最大的优点就在于类的继承性,它使得OOP程序具有可重用性好的特点。
类的说明部分: 类C1的说明; 类C2的说明; 。。。。 类Cn的说明; 主函数main(); 类成员函数的定义: 类C1的成员函数定义; 类C2的成员函数定义; 。。。。 类Cn的成员函数定义。 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行 注意:VC++中采用MFC编程时,程序结构中省略了主函数。
#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.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行
5.4.1 C++程序的编辑 编辑C++程序的主要工作包括:创建、输入、浏览、修改、插入、删除等。 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行 Visual C++,Borland C++都提供了集成开发环境(Integrated Develop Environment, IDE)。IDE能够提供编辑、文件管理、程序编译、链接以及项目管理等多种功能。
源程序 目标程序 编译系统 5.4.2 编译和链接 计算机无法直接运行C++源程序,而只能直接运行由机器指令构成的目标程序。C++源程序到目标程序之间的映射由编译系统(co mpiler)实现。 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行
源程序到目的程序之间的映射 (1) 编译预处理:源程序被编译之前须经过“预处理”,即根据程序中预处理命令完成指定的预处理任务。 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行 (2) 链接:链接将编译好的目标程序和需共同运行的其它目标程序以及系统库程序链接起来,形成最终的可执行程序。
文本编辑器 C++源程序 (.cpp文件) 预处理程序 调试 C++预处理后 的C++源程序 C++编译器 目标程序 (.obj文件) 链接器 可执行程序 (. Exe文件) 运行 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行
C++程序的一般实现过程 (1)将编辑的C++源程序按”.cpp”文件格式保存。 5.1 C++语言 的基本符号 5.2 C++语言 的词汇 5.3 C++程序 基本框架 5.4 C++程序 的运行 (2)编译预处理阶段不产生中间文件,自动进入编译阶段;编译后的目标文件一般为“.obj”文件。 (3)经过链接处理的可执行程序一般为“.exe”文件。 (4) 计算机运行“.exe”文件。
作 业 思考题第2,7,17题。