230 likes | 372 Views
第 1 ç« C++ 编程体系概述. 1. 内容æè¦. æœ¬ç« ä¸»è¦ä»‹ç»ç¼–程è¯è¨€çš„产生历å²ï¼Œç€é‡ä»‹ç» C è¯è¨€çš„产生过程和 C++ è¯è¨€çš„产生过程。 总体上介ç»ç›®å‰å¸¸è§ç¼–程è¯è¨€çš„ä½“ç³»åˆ’åˆ†ï¼Œä»‹ç» C++ è¯è¨€çš„优势〠C++ è¯è¨€åŒ…括的内容〠C++ 的编译工具以åŠå¦ä¹ 方法。 为了熟悉编程工具,利用程åºè¯´æ˜Ž C++ è¯è¨€ç¼–写ã€ç¼–译和执行的过程。. 编程è¯è¨€çš„产生. 最早的计算机是机器è¯è¨€ï¼ˆä¹Ÿç§°ä¸ºç¬¬ä¸€ä»£è¯è¨€ï¼‰ï¼Œå®Œå…¨ç”±äºŒè¿›åˆ¶æ•°å— 0 å’Œ 1 组æˆï¼Œèƒ½å¤Ÿè¢«è®¡ç®—机直接识别和执行,具有çµæ´»ã€é€Ÿåº¦å¿«ç‰ä¼˜ç‚¹ã€‚ 但是,程åºå‘˜è¦ç†Ÿæ‚‰å…¨éƒ¨çš„指令åŠå…¶å«ä¹‰ï¼Œæ‰‹å·¥å¤„ç†æ¯æ¡æŒ‡ä»¤å’Œæ¯ä¸ªæ•°æ®ã€‚.
E N D
内容提要 • 本章主要介绍编程语言的产生历史,着重介绍C语言的产生过程和C++语言的产生过程。 • 总体上介绍目前常见编程语言的体系划分,介绍C++语言的优势、C++语言包括的内容、C++的编译工具以及学习方法。 • 为了熟悉编程工具,利用程序说明C++语言编写、编译和执行的过程。
编程语言的产生 • 最早的计算机是机器语言(也称为第一代语言),完全由二进制数字0和1组成,能够被计算机直接识别和执行,具有灵活、速度快等优点。 • 但是,程序员要熟悉全部的指令及其含义,手工处理每条指令和每个数据。
C语言的产生 • 1967年剑桥大学学者Richard在CPL语言的基础上推出了BCPL语言。1970年美国贝尔实验室对BCPL语言进行了简化,并取BCPL的第一个字母“B”作为新语言的名称。 • 1972年,贝尔实验室的Kernighan和Ritchie对“B”语言进行了完善和扩充,在保留强大的硬件处理能力的基础上,扩充了数据类型,恢复了通用性,并取“BCPL”的第二个字母作为新语言的名称——这就是著名的C语言。 • 此后两个人采用C语言重写了UNIX操作系统,随着UNIX的广泛应用,C语言成为一种极受欢迎的计算机语言。1987年美国标准化协会(ANSI)制定了C语言标准,也就是ANSI C。
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++语言成为美国国家标准和国际标准。
编程语言的体系划分 • 目前流行两大语法体系:Basic语系和C语系。同一个语系下语言的基本语法是一样。两大语系如图
程序设计方法 • 用计算机语言为计算机编写程序,解决某种问题,称之为程序设计。程序设计需要一定的方法来指导,以便提高程序的可维护性、可读性、稳定性以及编程效率。 • 目前有两种重要的程序设计方法:结构化程序设计方法和面向对象程序设计方法。
结构化程序设计方法 • 结构化程序设计有两个主要特征: • (1)总是由三种基本结构组成,即由顺序结构、选择结构和循环结构构成。这三种结构都是单入口/单出口的程序结构。 • (2)自顶向下、逐步求精和模块化是结构化程序设计方法中最典型、最具有代表性的方法。 • 结构化程序设计的缺点是: • (1)数据与处理数据的方法(函数)相分离,这使得对函数的理解变得很难。 • (2)可重用性差。希望程序设计具有可重用性,能够使用已经设计好的代码。
面向对象程序设计方法 • 面向对象程序设计语言的三个主要特征是:封装性、继承性和多态性。 • l封装性:也叫数据隐藏,用户无需知道内部工作流程,只要知道接口和操作就可以,一般用类来实现封装。 • l继承性:一种支持重用的思想,用现有的类型派生出新的子类,例如新型电视机在原有型号的电视机基础上,增加若干中功能,新型电视机是原有电视机的派生,继承了原由电视机的属性,并增加了新的功能。 • l多态性::指在类中定义的属性或行为,被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。
C++语言编程体系 • C语言是一种简单的语言。它真正提供的只有宏、指针、结构、数组和函数。不管什么问题,C语言都靠宏、指针、结构、数组和函数来解决。 • C++不是这样。宏、指针、结构、数组和函数当然还存在,此外还有私有和保护型成员、函数重载、缺省参数、构造和析构函数、自定义操作符、内联函数、引用、友元、模板、异常、命名空间,等等。用C++比用C具有更宽广的空间,因为设计时有更多的选择可以考虑。
C++语言的优势 • 总的来说,C++语言具有4个方面的优点。 • (1)降低程序开发和维护的成本。 • (2)比用C语言编写的程序更加有效率。 • (3)C++允许程序员更自由地使用各种库。 • (4)C++的异常处理机制能够保证在运行期间检查到错误,并转至相应的处理程序,减少了代码的长度和复杂度。
C++语言的内容 • C++语言是一门难学易用的语言,C++的难学,不仅在其广博的语法、语法背后的语义、语义背后的深层思维、深层思维背后的程序模型 • 还在于它提供了四种不同的程序设计思维模式:基于过程程序设计(Procedural-based),基于对象程序设计(Object-based),面向对象程序设计(Object-Oriented)和基于泛型程序设计(Generic Paradigm)。
C++程序结构初步 • 从总体上看,C++程序文件一般可以分成4个部分:预处理指令、全局说明、程序的主函数和用户自定义函数。预处理指令就是源程序中所包含的各种编译指令。 • 所有的预处理指令都以“#”开始。 • 全局说明一般包括一些程序所要使用的全局变量、类说明等等;任何一个C++程序都有且仅有一个主函数main()。
预处理指示符初步 • 头文件通过include预处理指令(Preprocessor include directive)而成为程序的一部分。预处理指令用“#”标识。 • #include指示符读入指定文件的内容,有两种格式: • #include <somefile.h> • #include "myfile.h"
注释 • 注释是用来帮助程序员读程序,用来概括程序的算法、标识变量的意义或者阐明一段比较难懂的代码。注释不会增加程序的可执行代码。在代码生成以前,编译器会将注释从程序删除。 • C++有两种注释符号,一种是注释对(/*,*/),与C语言中的一样。编译器把“/*”和“*/”之间的代码当作注释。注释可以放在程序的任意位置,可以跨越多行程序。 • 另一种注释是双斜线(//),用来注释一个单行,程序行注释符右边的内容都被当作注释而被编译器忽略。
使用C++语言编写简单代码 • C++语言经过不断的发展,大体经过四个主要的阶段。 • 1、面向过程的C语言。 • 2、面向对象的C++语言。 • 3、SDK(Software Development Kit)编程。 • 4、MFC编程(Microsoft Foundation Class:微软基类库)。
面向过程的C语言 案例名称:使用C语言编程 程序名称:proj1_02.cpp #include <stdio.h> main() { printf("Hello C\n"); }
面向过程的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; }
面向对象的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; }
小结 • 本章需要了解C语言和C++语言的产生和发展,熟悉两种常用的程序设计方法 • 熟悉面向对象程序设计方法优于结构化程序设计方法原因。 • 熟悉C++语言的优势以及内容。掌握编程工具VC++6.0的使用方法。 • 熟悉C++程序的结构,掌握使用VC++6.0编写简单的C++程序。
本章习题 • 一、选择题 • 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语言都是面向对象的
二、填空题 • 1、目前,有两种重要的程序设计方法,分别是___________和___________。 • 2、C++程序一般可以分成4个部分,它们分别是___________、___________、___________和___________。 • 3、目前流行两大语法体系:___________和___________。 • 4、C++提供了四种不同的程序设计思维模式:___________,___________,___________,___________。 • 5、学习编程需要经历三大步:___________;___________;___________。 • 6、C++有两种注释符号,一种是__________,另一种是___________。
三、简答题和程序设计题 • 1、简述C语言和C++包含的内容有何不同。 • 2、简述C++语言的优势。 • 3、编写程序,并利用VC++6.0编译成可执行文件,读取命令行参数。