2005-4-28 1 C++大学基础教程 第1章 C++初步 北京邮电大学电信工程学院 计算机技术中心 C++语言是一门优秀的程序设 计语言,在计算机科学领域 中有着广泛的应用。 第一章 C++入门 1.1 程序设计语言的发展 1.2 面向过程的程序设计 1.3 面向对象的程序设计 1.4 C++的诞生 1.5 程序开发过程 1.6 简单的C++程序 1.1 程序设计语言的发展 2005-4-28 北京邮电大学电信工程学院计算机技术中心 -5- 1.1 程序设计语言的发展 机器语言 简单的 “0”和 “1”的组合,硬件相关。 汇编语言 将机器语言映射为一些可以被人们读懂的助 记符,如 “ADD”、 “SUB”等,与硬件相关。 高级语言 接近自然语言,与硬件相关 。 2005-4-28 北京邮电大学电信工程学院计算机技术中心 -6- 1.1 程序设计语言的发展 高级语言: 1、面向过程的语言 BASIC、PASCAL、C 2、面向对象的语言 C++、JAVA 2005-4-28 北京邮电大学电信工程学院计算机技术中心 -7- 1.1 程序设计语言的发展 例如:要向屏幕打印一个 “A”字符 1、 BASIC语言: PRINT “A” 2、 PASCAL语言: writeln(‘A’); 3、 C语言: printf(“A”); 4、 C++语言: cout << “A”; 5、 JAVA语言: System.out.print("A "); 1.2 面向过程的程序设计 1.2 面向过程的程序设计 基本结构 1、顺序 2、分支 3、循环 开始 执行 1 执行 2 执行 3 结束 开始 条件 执行 2执行 1 结束 是否 开始 执行 1 执行 2 条件 结束 是 否 2005-4-28 北京邮电大学电信工程学院计算机技术中心 -10- 1.2 面向过程的程序设计 模块的单入 指的是该模块被哪些模块所调用; 模块的单出 指的是该模块调用了哪些模块。 2005-4-28 北京邮电大学电信工程学院计算机技术中心 -11- 1.2 面向过程的程序设计 主要思想 自顶向下 逐步求精 一个计算机程序可以看成是由一系列任务组成 的,任何一项任务如果过于复杂就将其分 解成 一系 列 较小 的子 任务,直至每一项任务都很小,很容易解 决 。 1.2 面向过程的程序设计 计算每门课的平均成绩 多少门课 学生人数 每门课总分 每门课总分 /学生人数 选课学生档案 每个学生该 门课的成绩 累加 选择一门课 选课的学生 读数据 2005-4-28 北京邮电大学电信工程学院计算机技术中心 -13- 1.2 面向过程的程序设计 不足: 1、结构化编程将数据和过程相分离; 2、结构化编程对代码重用支持不够。 可重用思想就是创建一些已知属性的组件, 然后插入到自己的程序中。 1.3 面向过程的程序设计 2005-4-28 北京邮电大学电信工程学院计算机技术中心 -15- 1.3 面向过程的程序设计 面向对象的程序设计将数据和处理数据的 过程当成一个整体 ——对象。 1)封装 由对象的概念支持。只需知道外部接口, 不需知道内部实现,就可以使用的特性。 2)继承 由类的概念支持。利用已有的成果进行扩 展,充分体现了代码重用。 3)多态 运行时特性。 1.4 C++的诞生 2005-4-28 北京邮电大学电信工程学院计算机技术中心 -17- 1.4 C++的诞生 C++语言从C语言的基础上发展起来的 C语言 历史: 1、贝尔实验室的 Dennis Ritchie开发 2、在 B语言 的基础 3、作为 Unix操作系统的开发语言 优点: 1、与 硬件 无关 2、设计严谨 2005-4-28 北京邮电大学电信工程学院计算机技术中心 -18- 1.4 C++的诞生 1978年, Brian Kernighan与 Dennis Ritchie 出版了 《 The C Programming Language》 是最 早的经典 传统 C语言 的书,很薄,只有两百多 页,所以这本 C语言的圣经又称 `K&R“。 当时很快出现了多个不兼容的 C语言版 本,因此需要制订一种标准 C。所以 1988年, 第二版 《 The C Programming Language》 ,是 最经典的标准 C的书籍。 2005-4-28 北京邮电大学电信工程学院计算机技术中心 -19- 1.4 C++的诞生 C语言之父 dennis Ritchie The C Programming Language 2005-4-28 北京邮电大学电信工程学院计算机技术中心 -20- 1.4 C++的诞生 C语言是一门面向过程的程序语言 优点: 1、可直接访问内存 2、程序运行效率高 3、可移植性好 缺点: 1、类型检查机制较弱 2005-4-28 北京邮电大学电信工程学院计算机技术中心 -21- 1.4 C++的诞生 C++语言的 优点: 1、 简化 程序复杂性 2、促进 代码重用 3、使用先进的 面向对象技术 Bjarne出版了的经典 C++著作 《 The C ++ Programming Language 》 , 1991年第 2版, 1997年第 3版, 2000年特别版,他被 誉为 C++之 父。 2005-4-28 北京邮电大学电信工程学院计算机技术中心 -22- 1.4 C++的诞生 C++之父 Bjarne stroustrup The C ++ Programming Language 2005-4-28 北京邮电大学电信工程学院计算机技术中心 -23- 1.4 C++的诞生 C++语言是从 C语言发展演变而来。 C++包 含了整个 C, C是建立 C++的基础。 C++包含 C 的所有特征、属性、优缺点,并添加了 面向对 象 的支持。 C++语言 C语言 面向对象 1.5 程序开发过程 1.5 程序开发过程 源程序: .cpp compile(Ctrl+F7) 目标程序: .obj Build(F7) 可执行程序: .exe 1.6 简单的C++程序 1.6 简单的C++程序 /*************************************** 程序文件: ch1_1.cpp 程序功能:在屏幕上输出 hello world! 作者 :XXX 创建时间: XX年 XX月 XX日 ***************************************/ #include <iostream> using namespace std; void main() { cout<<"Welcome to Bupt!“<<endl; } 注释 编译预处理 程序主体 2005-4-28 北京邮电大学电信工程学院计算机技术中心 -28- 1.6 简单的C++程序 “注释 ” 是程序员为读者作的说明,用来提 高程序的可读性, C++程序在编译过程中 忽略 注释。 1、 “//” 用来注释一行说明,在 “//”之后的文字直到 换行都为注释。一 般用来对于程序中难懂的代 码进行说明。 2、 “/*”和 “*/” 用来注释一段说明,在 “/*”和 “*/”之间的部 分,不管多长都为注释。 2005-4-28 北京邮电大学电信工程学院计算机技术中心 -29- 1.6 简单的C++程序 所有以 “#”开头的代码,称为编译预处理。 #include <iostream> 每次启动编译器时,先运行预处理器,预处 理器找到所有以 “#”开头的代码行进行处理。 include是一条预处理指令,意思是 “后面跟的是一 个文件名,请找到该文件并将其加入。 ” iostream是系统定义的一个 “头文件 ”,它设置 了 C++的 I/O相关环境,并定义了输入输出流对象 cout和 cin等。 2005-4-28 北京邮电大学电信工程学院计算机技术中心 -30- 1.6 简单的C++程序 using namespace std; 1998年批准的标准 C++使用 namespace命名 空间标准。 iostream是一个标准函数库, cout是 标准库函数提供的一个对象,标准库函数在 namespace说明书中被指定为 “std”。因此这句 代码的意思是使用标准命名空间 std中的函数。 2005-4-28 北京邮电大学电信工程学院计算机技术中心 -31- 1.6 简单的C++程序 正式的程序从代码 “void main()”开始,它 包含一个名为 main()的函数,也称为主函数。 每个 C++程序有且仅有一个 main()函 数,程序在 开始运行时会自动调用 main()函数。 main()前面的 void表示函数的返回值的类 型,意味着程序执 行结束后无需向操作系统返 回 。 函数:是指能实现一个或多个功能的代码 块。 2005-4-28 北京邮电大学电信工程学院计算机技术中心 -32- 1.6 简单的C++程序 所有的函数都以左大括号 {开始,右大括 号 } 结束,在大括号 {}之间的部分称为函数体。 cout<<” Hello World!”<<endl; 1、 cout:标准输出流对象, 2、 <<: 插 入操作符可以连续使用 3、 endl:代表换行符 意思是使用 cout将 “<<”后面的内容打印在屏 幕上。 在 函 数 体 的 每 一句代码后面都有一个分号 “;” 表示一个 C++语句的结束。 2005-4-28 北京邮电大学电信工程学院计算机技术中心 -33- 1.6 简单的C++程序 操作步骤 1、新建一个工程 1) 启动 VC++ 6.0 2) 新建一个 console工程 3) 编写源程序 2、编译和连接 编译: compile(Ctrl+F7) 链接: Build(F7) 3、运行 使用的命令: Ctrl+F5 总结 1、 程序设计语言的发展过程 机器语言、汇编语言和高级语言。 2、C和C++的关系 3、如何编写、编译、运行一个C++程序 作业 熟悉 VC++ 6.0的环境。