1 / 23

第 1 章 C++ 编程体系概述

第 1 章 C++ 编程体系概述. 1. 内容提要. 本章主要介绍编程语言的产生历史,着重介绍 C 语言的产生过程和 C++ 语言的产生过程。 总体上介绍目前常见编程语言的体系划分,介绍 C++ 语言的优势、 C++ 语言包括的内容、 C++ 的编译工具以及学习方法。 为了熟悉编程工具,利用程序说明 C++ 语言编写、编译和执行的过程。. 编程语言的产生. 最早的计算机是机器语言(也称为第一代语言),完全由二进制数字 0 和 1 组成,能够被计算机直接识别和执行,具有灵活、速度快等优点。 但是,程序员要熟悉全部的指令及其含义,手工处理每条指令和每个数据。.

gurit
Download Presentation

第 1 章 C++ 编程体系概述

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第1章 C++编程体系概述 1

  2. 内容提要 • 本章主要介绍编程语言的产生历史,着重介绍C语言的产生过程和C++语言的产生过程。 • 总体上介绍目前常见编程语言的体系划分,介绍C++语言的优势、C++语言包括的内容、C++的编译工具以及学习方法。 • 为了熟悉编程工具,利用程序说明C++语言编写、编译和执行的过程。

  3. 编程语言的产生 • 最早的计算机是机器语言(也称为第一代语言),完全由二进制数字0和1组成,能够被计算机直接识别和执行,具有灵活、速度快等优点。 • 但是,程序员要熟悉全部的指令及其含义,手工处理每条指令和每个数据。

  4. C语言的产生 • 1967年剑桥大学学者Richard在CPL语言的基础上推出了BCPL语言。1970年美国贝尔实验室对BCPL语言进行了简化,并取BCPL的第一个字母“B”作为新语言的名称。 • 1972年,贝尔实验室的Kernighan和Ritchie对“B”语言进行了完善和扩充,在保留强大的硬件处理能力的基础上,扩充了数据类型,恢复了通用性,并取“BCPL”的第二个字母作为新语言的名称——这就是著名的C语言。 • 此后两个人采用C语言重写了UNIX操作系统,随着UNIX的广泛应用,C语言成为一种极受欢迎的计算机语言。1987年美国标准化协会(ANSI)制定了C语言标准,也就是ANSI C。

  5. C++语言的产生 • 1982年,美国AT&T公司贝尔实验室的Bjarne Stroustrup博士在C语言的基础上,扩充了Simula67语言中面向对象的概念,发明了一种新的语言,这种新语言被命名为C++语言。 • 1990年,Bjarne Stroustrup博士出版了The Annotated C++ Reference Manual(ARM),由于当时还没有出台C++标准,ARM成为事实上的标准。1990年,C++引入了模板和异常的概念,使C++具备了泛型编程和更好的错误处理能力。 • 1993年,运行时类型识别(RTTI)和命名空间(Namespace)的概念被加入到C++中。1998年,ANSI和ISO先后批准C++语言成为美国国家标准和国际标准。

  6. 编程语言的体系划分 • 目前流行两大语法体系:Basic语系和C语系。同一个语系下语言的基本语法是一样。两大语系如图

  7. 程序设计方法 • 用计算机语言为计算机编写程序,解决某种问题,称之为程序设计。程序设计需要一定的方法来指导,以便提高程序的可维护性、可读性、稳定性以及编程效率。 • 目前有两种重要的程序设计方法:结构化程序设计方法和面向对象程序设计方法。

  8. 结构化程序设计方法 • 结构化程序设计有两个主要特征: • (1)总是由三种基本结构组成,即由顺序结构、选择结构和循环结构构成。这三种结构都是单入口/单出口的程序结构。 • (2)自顶向下、逐步求精和模块化是结构化程序设计方法中最典型、最具有代表性的方法。 • 结构化程序设计的缺点是: • (1)数据与处理数据的方法(函数)相分离,这使得对函数的理解变得很难。 • (2)可重用性差。希望程序设计具有可重用性,能够使用已经设计好的代码。

  9. 面向对象程序设计方法 • 面向对象程序设计语言的三个主要特征是:封装性、继承性和多态性。 • l封装性:也叫数据隐藏,用户无需知道内部工作流程,只要知道接口和操作就可以,一般用类来实现封装。 • l继承性:一种支持重用的思想,用现有的类型派生出新的子类,例如新型电视机在原有型号的电视机基础上,增加若干中功能,新型电视机是原有电视机的派生,继承了原由电视机的属性,并增加了新的功能。 • l多态性::指在类中定义的属性或行为,被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。

  10. C++语言编程体系 • C语言是一种简单的语言。它真正提供的只有宏、指针、结构、数组和函数。不管什么问题,C语言都靠宏、指针、结构、数组和函数来解决。 • C++不是这样。宏、指针、结构、数组和函数当然还存在,此外还有私有和保护型成员、函数重载、缺省参数、构造和析构函数、自定义操作符、内联函数、引用、友元、模板、异常、命名空间,等等。用C++比用C具有更宽广的空间,因为设计时有更多的选择可以考虑。

  11. C++语言的优势 • 总的来说,C++语言具有4个方面的优点。 • (1)降低程序开发和维护的成本。 • (2)比用C语言编写的程序更加有效率。 • (3)C++允许程序员更自由地使用各种库。 • (4)C++的异常处理机制能够保证在运行期间检查到错误,并转至相应的处理程序,减少了代码的长度和复杂度。

  12. C++语言的内容 • C++语言是一门难学易用的语言,C++的难学,不仅在其广博的语法、语法背后的语义、语义背后的深层思维、深层思维背后的程序模型 • 还在于它提供了四种不同的程序设计思维模式:基于过程程序设计(Procedural-based),基于对象程序设计(Object-based),面向对象程序设计(Object-Oriented)和基于泛型程序设计(Generic Paradigm)。

  13. C++程序结构初步 • 从总体上看,C++程序文件一般可以分成4个部分:预处理指令、全局说明、程序的主函数和用户自定义函数。预处理指令就是源程序中所包含的各种编译指令。 • 所有的预处理指令都以“#”开始。 • 全局说明一般包括一些程序所要使用的全局变量、类说明等等;任何一个C++程序都有且仅有一个主函数main()。

  14. 预处理指示符初步 • 头文件通过include预处理指令(Preprocessor include directive)而成为程序的一部分。预处理指令用“#”标识。 • #include指示符读入指定文件的内容,有两种格式: • #include <somefile.h> • #include "myfile.h"

  15. 注释 • 注释是用来帮助程序员读程序,用来概括程序的算法、标识变量的意义或者阐明一段比较难懂的代码。注释不会增加程序的可执行代码。在代码生成以前,编译器会将注释从程序删除。 • C++有两种注释符号,一种是注释对(/*,*/),与C语言中的一样。编译器把“/*”和“*/”之间的代码当作注释。注释可以放在程序的任意位置,可以跨越多行程序。 • 另一种注释是双斜线(//),用来注释一个单行,程序行注释符右边的内容都被当作注释而被编译器忽略。

  16. 使用C++语言编写简单代码 • C++语言经过不断的发展,大体经过四个主要的阶段。 • 1、面向过程的C语言。 • 2、面向对象的C++语言。 • 3、SDK(Software Development Kit)编程。 • 4、MFC编程(Microsoft Foundation Class:微软基类库)。

  17. 面向过程的C语言 案例名称:使用C语言编程 程序名称:proj1_02.cpp #include <stdio.h> main() { printf("Hello C\n"); }

  18. 面向过程的C++语言 案例名称:读取命令行参数 程序名称:proj1_03.cpp #include <iostream.h> int main(int argc, char *argv[ ]) { int i; for (i = 1; i < argc; i++) { cout<<argv[i]<<endl; } return 0; }

  19. 面向对象的C++语言 案例名称:在C++中使用类 程序名称:proj1_04.cpp #include <iostream.h> class person { public: int heart; char *name; int run() //定义成员函数run() { heart = heart + 20; return heart; } }; void main() { int iRunStop; person ZhangSan; ZhangSan.name = "张三"; ZhangSan.heart = 72; cout<< "姓名:" <<ZhangSan.name <<endl; cout<< "跑步前心跳" <<ZhangSan.heart<<endl; //run()为对象的方法 iRunStop = ZhangSan.run(); cout<< "跑步后心跳" <<iRunStop<<endl; }

  20. 小结 • 本章需要了解C语言和C++语言的产生和发展,熟悉两种常用的程序设计方法 • 熟悉面向对象程序设计方法优于结构化程序设计方法原因。 • 熟悉C++语言的优势以及内容。掌握编程工具VC++6.0的使用方法。 • 熟悉C++程序的结构,掌握使用VC++6.0编写简单的C++程序。

  21. 本章习题 • 一、选择题 • 1、最初的计算机编程语言是___________。 • A) 机器语言B) 汇编语言 • C) 高级语言D) 低级语言 • 2、下列各种高级语言中,___________是面向对象编程语言。 • A) BASIC B) C语言 • C) C++语言D) Pascal语言 • 3、结构化程序设计的基本结构不包含___________。 • A) 顺序B) 选择 • C) 跳转D) 循环 • 4、___________不是面向对象程序设计的主要特征。 • A) 封装B) 继承 • C) 多态D) 结构 • 5、关于C++与C语言的关系的描述中,___________是错误的。 • A) C语言是C++的一个子集。B) C语言与C++是兼容的 • C) C++对C语言进行了一些改进D) C++和C语言都是面向对象的

  22. 二、填空题 • 1、目前,有两种重要的程序设计方法,分别是___________和___________。 • 2、C++程序一般可以分成4个部分,它们分别是___________、___________、___________和___________。 • 3、目前流行两大语法体系:___________和___________。 • 4、C++提供了四种不同的程序设计思维模式:___________,___________,___________,___________。 • 5、学习编程需要经历三大步:___________;___________;___________。 • 6、C++有两种注释符号,一种是__________,另一种是___________。

  23. 三、简答题和程序设计题 • 1、简述C语言和C++包含的内容有何不同。 • 2、简述C++语言的优势。 • 3、编写程序,并利用VC++6.0编译成可执行文件,读取命令行参数。

More Related