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的环境。