上游充通大皇 NGHA AO TONG UNIVEESITY 2006 C++程序设计与实践 上海交通大学 机械与动力工程学院 2014.9-2015.个 HA 1日日后 教师: 姓名: 何其昌 办公室: 机械楼A731 电话: 13916424312 E-mail: heqc@situ.edu.cn 助教: 姓名: 田力 实验室: 机械类D209 电话: 18818270826 E-mail: tiantangtl@sjtu.edu.cn 周上濟文通大¥ 2/65 1
1 C++程序设计与实践 上海交通大学 机械与动力工程学院 2014.9-2015.1 2/65 教师: 姓名: 何其昌 办公室: 机械楼A731 电话: 13916424312 E-mail: heqc@sjtu.edu.cn 助教: 姓名: 田力 实验室: 机械类D209 电话: 18818270826 E-mail: tiantangtl@sjtu.edu.cn
上游充通大¥ NGHA AO TONG UNIVERSITY 2006 第1讲C+语言概述及数据类型 1. 计算机的组成与软件系统 2.C++程序设计语言简介 3.C++语言的基本构成 4. Visual C.+集成开发环境 5. C+数据类型概述 6.关于本课程 HA 1日后 计算机的基本构成 源程序 和输入数据 取出数据”… 输入/输出 存储器 运算器 输出结果 设备 计算结果 存入数据 执行结果 输入输出 取出 存取命令 操作命令 命令 程序指令 使盘 控制器 CPU 口整个过程的执行者是硬件,但硬件是受软件控制的 口编程,就是编写计算机命令、指令程序,使硬件按照人 的意图工作 上濟克廷大¥ 4/65 2
2 1. 计算机的组成与软件系统 2. C++程序设计语言简介 3. C++语言的基本构成 4. Visual C++集成开发环境 5. C++数据类型概述 6. 关于本课程 第 1 讲 C++语言概述及数据类型 4/65 计算机的基本构成 输入/输出 设备 存储器 运算器 控制器 源程序 和输入数据 输出结果 取出数据 存入数据 存取命令 操作命令 取出 程序指令 输入输出 命令 计算结果 CPU 整个过程的执行者是硬件,但硬件是受软件控制的 编程,就是编写计算机命令、指令程序,使硬件按照人 的意图工作
计算机软件系统类型 口操作系统软件:用于管理计算机的资源和控制程序的运行。包括 处理器管理、存储管理、文件管理、设备管理和作业管理。 Vindows、Unix、Linux、Android、Mac OS等 口系统开发软件:用于将程序员编写的“源码程序”转化翻译成计 算机硬件可处理执行的机器语言。 Microsoft Visual C+、Borland C++、Gcc等 Matlab 口应用系统软件:是应用系统开发软件和相应的程序开发语言,专 门为某一应用目的而编制的软件。 Misrosoft Office(Word、Powerpoint、Exel) UGll、SolidWorks、AutoCAD QQ、MSN等 周上海文通大学 5/65 计算机软件系统间的关系 程 系统开发软件→应用系统软件 计语 操作系统软件 口计算机软件系统一般是用某种程序设计语言来实现的,通 常采用软件开发软件进行开发 口掌握一门程序设计语言是进行软件系统开发的基础 口学习如何开发应用软件是本课程的核心内容 周上泽文通大¥ 6/65 3
3 5/65 计算机软件系统类型 操作系统软件:用于管理计算机的资源和控制程序的运行。包括 处理器管理、存储管理、文件管理、设备管理和作业管理。 Windows、Unix 、Linux、Android 、Mac OS等 系统开发软件:用于将程序员编写的“源码程序”转化翻译成计 算机硬件可处理执行的机器语言。 Microsoft Visual C++、Borland C++、Gcc 等 Matlab 应用系统软件:是应用系统开发软件和相应的程序开发语言,专 门为某一应用目的而编制的软件。 Misrosoft Office (Word、Powerpoint、Exel) UGII、SolidWorks、AutoCAD QQ、MSN等 6/65 计算机软件系统间的关系 计算机软件系统一般是用某种程序设计语言来实现的,通 常采用软件开发软件进行开发 掌握一门程序设计语言是进行软件系统开发的基础 学习如何开发应用软件是本课程的核心内容 操作系统软件 系统开发软件 应用系统软件 程 序 设 计 语 言
上游充通大¥ 2006 第1讲C+语言概述及数据类型 1.计算机的组成与软件系统 2.C+程序设计语言简介 3.C++语言的基本构成 4.C++数据类型概述 5.Visual C++集成开发环境 6.关于本课程 1日日日 什么是计算机程序 口计算机的工作是用程序来控制的 口计算机程序是人们为了处理某个事务而编制的某种计算机语 言命令序列集合 计算机程序: 计算机程序经历了三代: >为解决某种问题 >机器语言 >由人编制; >汇编语言 >用计算机语言表达 >高级语言 >指令的序列 >由计算机执行 周上泽文通大¥ 8/65 4
4 1. 计算机的组成与软件系统 2. C++程序设计语言简介 3. C++语言的基本构成 4. C++数据类型概述 5. Visual C++集成开发环境 6. 关于本课程 第 1 讲 C++语言概述及数据类型 8/65 什么是计算机程序 计算机的工作是用程序来控制的 计算机程序是人们为了处理某个事务而编制的某种计算机语 言命令序列集合 计算机程序经历了三代: 机器语言 汇编语言 高级语言 计算机程序: 为解决某种问题 由人编制; 用计算机语言表达 指令的序列 由计算机执行
机器语言 口由计算机硬件系统可以识别的二进制指令组成的语言称为机 器语言 ▣ 直接操作计算机硬件。 ▣ 例如:机器语言的1+1程序 0 10111000 00000001 缺点:难懂,不易修改,移植 00000000 00000101 性差,但它是计算机硬件可以 00000001 00000000 直接执行的语言。 周上濟大道大学 9/65 汇编语言 口汇编语言将机器指令映射为一些可以被人读懂的助记符,替 代机器语言的二进制码。如ADD、SUB等。 口此时编程语言与人类自然语言间的鸿沟略有缩小,但仍需直 接操作计算机硬件。程序员需要考虑大量的机器细节。 口例如:汇编语言的1+1程序 缺点:难懂,不易修改,移植性差, MOV AX,1 需用汇编程序将汇编语言写的程序 ADD AX,1 翻译成机器语言的程序 周上濟文通大¥ 10/65 5
5 9/65 机器语言 10111000 00000001 00000000 00000101 00000001 00000000 由计算机硬件系统可以识别的二进制指令组成的语言称为机 器语言 直接操作计算机硬件。 例如:机器语言的1+1程序 缺点:难懂,不易修改,移植 性差,但它是计算机硬件可以 直接执行的语言。 10/65 汇编语言 缺点:难懂,不易修改,移植性差, 需用汇编程序将汇编语言写的程序 翻译成机器语言的程序 汇编语言将机器指令映射为一些可以被人读懂的助记符,替 代机器语言的二进制码。如ADD、SUB等。 此时编程语言与人类自然语言间的鸿沟略有缩小,但仍需直 接操作计算机硬件。程序员需要考虑大量的机器细节。 例如:汇编语言的1+1程序 MOV AX, 1 ADD AX, 1
高级语言 口类似于英语的语言和数学表达式,便于理解涵义 口屏蔽了机器的细节,提高了语言的抽象层次,移植性好 口例如if(y<3)z=x+y; 口需用软件开发熊将高级语言写的程序(源代码)翻译成机器语 言的程序(目标代码) 口常用高级编程语言: Basic、Pascal、C、C++、Java、C# C和C++语言是功能最强大、应用最广泛 的高级程序设计语言 周上濟大道大学 11/65 CC++语言的发展历史 口1954年,FORTRAN语言,第一种计算机高级语言,始终是数值计算领域 所使用的重要语言。 SECOND EDITION 1967年,剑桥大学的Martin Richardsi设计了 BCPL (Basic Combined Programming THE Language)高级语言。 口1970年,美国贝尔实验室以BCPL语言为基础 简化,得到简单且接近硬件的B语言,写了第 ANSI 一个UNIX操作系统。 口1973年,美国贝尔实验室的D.M.Ritchie丹尼 斯里奇设计了C语言,精练、接近硬件,且或 PROGRAMMING 补了B语言过于简单、数据无类型的不足。 LANGUAGE 口大多数系统软件和许多应用软件都是用C语言 BRIAN WKERNIGHAN 编写的。 DENNIS M RITCHIE 鲜hC线线上O相内性 周上濟文通大¥ 12/65 6
6 11/65 高级语言 类似于英语的语言和数学表达式,便于理解涵义 屏蔽了机器的细节,提高了语言的抽象层次,移植性好 例如 if ( y<3 ) z=x+y; 需用软件开发熊将高级语言写的程序(源代码)翻译成机器语 言的程序(目标代码) 常用高级编程语言: Basic、Pascal、C、C++、Java、C# C和C++语言是功能最强大、应用最广泛 的高级程序设计语言 12/65 C/C++语言的发展历史 1967年,剑桥大学的Martin Richards设计了 了BCPL(Basic Combined Programming Language)高级语言。 1970年,美国贝尔实验室以BCPL语言为基础, 简化,得到简单且接近硬件的B语言,写了第 一个UNIX操作系统。 1973年,美国贝尔实验室的D.M.Ritchie丹尼 斯·里奇设计了C语言,精练、接近硬件,且弥 补了B语言过于简单、数据无类型的不足。 大多数系统软件和许多应用软件都是用C语言 编写的。 1954年,FORTRAN语言,第一种计算机高级语言,始终是数值计算领域 所使用的重要语言
C/C++语言的特点 main()Line4 Col 2 Insert In printf("hello.worldt\n"): 1、简洁紧凑、灵活方便。只有32个关键字,9种控制 语句。把高级语言的基本结构和语句与低级语言的实 用性结合起来。 2、运算符丰富,表达式类型多样化。共有34种运算 符,可以实现复杂的运算。 3、数据类型丰富,引入了指针概念,使程序效率更高。 器 4、允许直接访问物理地址,对硬件进行操作。 F1-Help F5-2o0m F6-Switch F7-r 对位(bt)、字节和地址进行操作,而这三者是计算 机最基本的工作单元,可用来写系统软件。 口G语言是一种面向过程 6、生成目标代码质量高,程序执行效率高,只比汇编 的结构化程序设计语 程序生成的目标代码效率低10%~20%。 言:如缺少支持代码 7、可移植性好,不同机器上的编译程序,86%的代码 重用的结构;难以适 是公共的,可移植到另一个完全不同的环境中运行。 应开发特大型的程度 等等。 圆上海文通大学 13/65 C/C+语言的特点 口Ct+是由AT&T Bell(贝尔)实验室的jarne Stroustrup博士 及其同事于20世纪80年代初在C语言的基础上开发成功的。 C+保留了G语言原有的所有优点,增加了面向对象的机制。 口C+是由C发展而来的,与C兼容。用C语言写的程序基本上 可以不加修改地用于C+。C+是C的超集,既可用于面向过 程的结构化程序设计,又可用于面向对象的程序设计,是 一种功能强大的混合型的程序设计语言。 ▣VCr(Visual C+)、BC+(Bor land C+)、C#等。 图上海大通大学 14/65 7
7 13/65 C/C++语言的特点 1、简洁紧凑、灵活方便。只有32个关键字,9种控制 语句。把高级语言的基本结构和语句与低级语言的实 用性结合起来。 2、运算符丰富,表达式类型多样化。共有34种运算 符,可以实现复杂的运算。 3、数据类型丰富,引入了指针概念,使程序效率更高。 4、允许直接访问物理地址,对硬件进行操作。 对位(bit)、字节和地址进行操作,而这三者是计算 机最基本的工作单元,可用来写系统软件。 6、生成目标代码质量高,程序执行效率高,只比汇编 程序生成的目标代码效率低10%~20%。 7、可移植性好,不同机器上的编译程序,86%的代码 是公共的,可移植到另一个完全不同的环境中运行。 C语言是一种面向过程 的结构化程序设计语 言:如缺少支持代码 重用的结构;难以适 应开发特大型的程度 等等。 14/65 C/C++语言的特点 C++是由AT&T Bell(贝尔)实验室的Bjarne Stroustrup博士 及其同事于20世纪80年代初在C语言的基础上开发成功的。 C++保留了C语言原有的所有优点,增加了面向对象的机制。 C++是由C发展而来的,与C兼容。用C语言写的程序基本上 可以不加修改地用于C++。C++是C的超集,既可用于面向过 程的结构化程序设计,又可用于面向对象的程序设计,是 一种功能强大的混合型的程序设计语言。 VC++ (Visual C ++)、 BC++(Borland C ++)、C#等
上游充通大¥ 第1讲C+语言概述及数据类型 1.计算机的组成与软件系统 2.C+程序设计语言简介 3.C++语言的基本构成 4.Visual C++集成开发环境 5.C+数据类型概述 6.关于本课程 SHA 1日日 C++程序的基本构成一一个最简单的C+程序 注释或说明 /在屏幕上显示字符Velcome to C-+:程序 /编程:张三 包含头文件 #include 使用命 名空间 注释或说明 /使用命名空间std using namespace std; 开始 int mainO 主函数入口 屏幕显示一串字符 cout<<“Hello !n"; cout <<"Welcome to C++!\n"; 函数 结束 return 0; 程序执行完毕返回 图上海文通大学 16/65 8
8 1. 计算机的组成与软件系统 2. C++程序设计语言简介 3. C++语言的基本构成 4. Visual C++集成开发环境 5. C++数据类型概述 6. 关于本课程 第 1 讲 C++语言概述及数据类型 16/65 C++程序的基本构成-一个最简单的C++程序 //在屏幕上显示字符Welcome to C++!程序 //编程:张三 #include //使用命名空间std using namespace std; int main() { cout << “Hello !\n"; cout << "Welcome to C++!\n"; return 0; } 包含头文件 注释或说明 使用命 名空间 主函数入口 函数 开始 屏幕显示一串字符 程序执行完毕返回 函数 结束 注释或说明
C++程序的基本构成一一个最简单的C+程序 程序运行结果: Hello Welcome to C++! 周上海大通大学 17/65 C++程序的基本构成一一个最简单的C+程序详解 口注释或说明:以双反斜杠符号'开始,后面的文字是注解或说 明,帮助编程者和阅读程序者理解程序,记录一些信息。不被执行 口包含头文件:包含头文件(head files),iostream文件中包含了程 序中cout、是C++的一个预 处理命令,它以“#”开头以与C+语句相区别,行的末尾没有分 号。 口using namespace std;C+标准库中的类和函数是在命名空间std 中声明的,因此程序中如果需要用到C++标准库,就需要用 “using namespace std;”作声明。 周上泽文通大¥ 18/65 9
9 17/65 C++程序的基本构成-一个最简单的C++程序 程序运行结果: Hello ! Welcome to C++! 18/65 C++程序的基本构成-一个最简单的C++程序详解 注释或说明:以双反斜杠符号‘//’开始,后面的文字是注解或说 明,帮助编程者和阅读程序者理解程序,记录一些信息。不被执行 包含头文件:包含头文件(head files),iostream文件中包含了程 序中cout 、是C++的一个预 处理命令,它以“#”开头以与C++语句相区别,行的末尾没有分 号。 using namespace std; C++标准库中的类和函数是在命名空间std 中声明的,因此程序中如果需要用到C++标准库,就需要用 “using namespace std; ”作声明
C++程序的基本构成一一个最简单的C+程序详解 口主函数main:用main代表“主函数”的名字。每一个C++程序都 必须有一个main函数。main前面的int的作用是声明函数的类型 为整型。程序第6行的作用是向操作系统返回一个零值。如果程序 不能正常执行,则会自动向操作系统返回一个非零值,一般为-1。 口函数体是由大括号{}括起来的,成对出现。 口注意C++所有语句最后都应当有一个分号。 周上海大通大学 19/65 C++程序的基本构成一标准输入输出语句 口C+中没有专门的输入输出语句,C+的输出和输入是 用“流”(stream)的方式实现的。 输出流 插入 程序 cout > cin -“Hello!”= 键盘 通过流输入 图上濟文通大学 20/65 10
10 19/65 C++程序的基本构成-一个最简单的C++程序详解 主函数main:用main代表“主函数”的名字。每一个C++程序都 必须有一个 main 函数。main前面的int的作用是声明函数的类型 为整型。程序第6行的作用是向操作系统返回一个零值。如果程序 不能正常执行,则会自动向操作系统返回一个非零值,一般为-1。 函数体是由大括号{ }括起来的,成对出现。 注意C++所有语句最后都应当有一个分号。 20/65 C++程序的基本构成-标准输入输出语句 C++中没有专门的输入输出语句,C++的输出和输入是 用“流”(stream)的方式实现的。 通过流输出 通过流输入