《《C编程简介》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《C编程简介》PPT课件.ppt(22页珍藏版)》请在金锄头文库上搜索。
1、第第1 1章章 C+C+编程简介编程简介C+语语言言程程序序设设计计教教程程第第1章章C+编编程程简简介介主讲:尚明生 电子科技大学计算机学院 C+语语言言程程序序设设计计教教程程第第1章章C+编编程程简简介介第第1 1章章 C+C+编程简介编程简介学习目标 1.初步理解面向对象程序设计的基本概念和思想;2.分析面向过程的结构化程序设计语言及面向对象程序设计语言的特点的异同;3.熟悉C+程序的一般开发过程;4.了解C+程序的结构,理解C+源程序、头文件、可执行程序的概念;5.理解名字空间的概念,会运用名字空间;6.能够编写一个简单的C+程序,输入数据,输出结果.C+语语言言程程序序设设计计教教
2、程程第第1章章C+编编程程简简介介1.1 计算机程序设计语言CPU指令系统,由0、1序列构成的指令码组成如:10000000 加 10010000 减用助记符号描述的指令系统如 ADD AX, BX面向机器的语言程序设计依赖解决问题的过程客观事物描述成具有属性和行为的对象对象; ; 同一类对象的共同属性和行为形成类类; ; 封装对象间通过发送和接受消息消息发生联系; 类的继承继承与多态性多态性可以提供使用现成类的机制,从而实现代码的重用. 程序设计关键是定义类,并由类实例化成对象接近人的自然语言习惯,如:100+200 C+语语言言程程序序设设计计教教程程第第1章章C+编编程程简简介介基本思想
3、: 采用了模块分解与功能抽象,自顶向下、分而治之的方法,将程序按功能划分成若干模块,这些模块形成调用的层次树状结构;模块间的关联尽可能简单,模块的功能相对独立;优点: 将一个复杂的系统分解成易于实现和控制的子任务,显著减少了软件开发的复杂性,提高软件的可靠性、可测试性和可维护性。 缺点: 当问题比较复杂、程序规模比较大时,结构化程序设计就显得有些力不从心; 把数据和数据处理过程分离成相互独立的实体,当数据结构改变时,所有相关 的处理过程都要进行相应的修改,程序的可重用性差; 目前,各种图形用户界面(Graphics User Interface,GUI)软件的应用日益 广泛,要求应用软件必须随
4、时响应用户的各种操作,因此软件的功能很难用 过程来描述与实现,如果仍然使用面向过程的方法与语言,软件的开发和维 护将陷入难以克服的困境;面向过程的程序设计 C+语语言言程程序序设设计计教教程程第第1章章C+编编程程简简介介 面向对象的程序设计语言是为了支持面向对象程序设计方法而设计的,它与以往各种编程语言的根本不同点在于:其设计的出发点就是为了能更加直接地描述客观世界中存在的事物以及它们之间的相互关系。 面向对象的程序设计语言支持抽象数据类型,并且提供了封装性、继承性、多态性等机制,使得类和类库成为可重用的模块。 1.2 面向对象的程序设计语言 LISPLISPLISPLISP语言语言语言语言
5、 ModulaModulaModulaModula语言语言语言语言 SmalltalkSmalltalk语言语言语言语言 C+C+C+C+语言语言语言语言 JavaJavaJavaJava语言语言语言语言 C C C C# # # #语言语言语言语言 C+语语言言程程序序设设计计教教程程第第1章章C+编编程程简简介介 利用计算机解决现实世界中的问题,就是要将现实世界的问题经过抽 象转换为计算机程序或软件; 现实世界是本质上是由对象所组成,而不是由“各种过程”所组成; 软件开发的目的是为了解决现实世界中的问题,这些问题都是由对象 所组成; 面向对象的方法强调直接以问题域(现实世界)中的事物为中心
6、来思 考问题、认识问题,并根据这些事物的本质特征,把它们抽象地表示 为软件系统中的对象; 面向对象方法使软件系统直接映射现实世界的问题域,保持问题域中 事物及其相互关系的本来面貌,从而能够更准确地进行软件的分析与 设计; 1.2 面向对象的软件开发 为什么要采用面向对象的程序设计方法?为什么要采用面向对象的程序设计方法? C+语语言言程程序序设设计计教教程程第第1章章C+编编程程简简介介 对象是软件开发所涉及的问题域中一些事物的抽象,是一些属性、操作和方 法的封装体,它具有唯一的标识; 对象是用来描述客观事物的一个实体,它是构成系统的一个基本单位; 对象具有静态特征和动态特征,静态特征是可以用
7、数据来描述的特征,动态 特征为对象所表现的行为或具有的功能。对象由一组属性和对这组属性进行 操作的一组服务构成。属性是用来描述对象静态特征的数据项。服务是用来 描述对象动态特征(行为)的操作序列; 复杂的对象可以由相对比较简单的各种对象以组合的方式构成。不同对象的 组合及相互作用就构造为软件系统; 对象是有生命的,每个对象都有自己的生命周期; 对象与对象之间通过消息(message)进行相互通信; 通过抽象找出同一类对象的共同属性(静态特征)和行为(动态特征),形 成类。类通过一个简单的外部接口与外界发生关系; 1.2 面向对象的软件开发 对象(对象(Object)C+语语言言程程序序设设计计
8、教教程程第第1章章C+编编程程简简介介 从现实世界中存在的事物(即对象)出发来设计或构造软件系统,将软件开 发所涉及的各种操作对象和要解决的问题抽象为离散的,相互联系并且可以 相互通信的对象集合,称之为“类”; 类是具有相同属性和行为特征的一组对象的集合,它为属于该类的全部对象 提供了抽象的描述,包括属性(attribute)和方法(method)两个主要部 分。属性是类的静态特征,用一个数据单元表示,属性可以用属性名、属性 类型、可修改型、可见性等进行描述。方法是类的某种操作行为的实现,是 说明实现该行为的算法或过程; 类与对象的概念是紧密联系在一起的。类是对具有相同属性和行为的一组对 象的
9、抽象;任何一个对象都是某个类的一个具体实例(instance); 类实际上是一种具有特定数据成员和功能(属性)的复杂数据类型,而对象 则是该“类”(数据类型)的一个变量;1.2 面向对象的软件开发 类(类(Class) C+语语言言程程序序设设计计教教程程第第1章章C+编编程程简简介介面向对象的基本概念面向对象的基本概念 对象对象是用来描述客观事物的一个实体张三李四抽象类类是具有相同属性和服务的一组对象的概括属性服务性别,年龄说话,行走具体化继承新类新类人说话,行走性别,年龄大学生性别,年龄,专业说话,行走,学习消息C+语语言言程程序序设设计计教教程程第第1章章C+编编程程简简介介 封装是把对
10、象的属性和服务结合成一个独立的系统单位(即对象); 封装将尽可能隐蔽对象的内部细节,对外形成一个边界(或者说一道 屏障),只保留有限的对外接口使之与外部发生联系; 封装可以有效地控制一个对象内部发生变化时对其它对象的影响; 封装能够通过对象接口简化对象的使用; 封装便于通过继承机制实现代码重用;1.2 面向对象的软件开发 封装(封装(encapsulation) C+语语言言程程序序设设计计教教程程第第1章章C+编编程程简简介介 继承是面向对象方法的基本特征之一,也是面向对象方法能够提高软件开 发效率的重要原因; 继承是指特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对一 般类的继承;
11、继承意味着特殊类中不必重新定义已在它的一般类中定义过的属性和行为 ,而它却自动地、隐含地拥有其一般类的所有属性与行为。通常将一般类 称为基类(base class)或父类(super class),将特殊类称为派生类 (derived class)或子类(subclass); 继承简化了人们对客观事物的认识和描述。采用继承机制之后,在定义特 殊类时,只需要声明它是继承自哪个类,并增加它自己的特殊属性与行为 ,而且继承机制具有传递性,可以被一层一层的不断继承下去,实现代码 重用,这将明显减轻程序开发工作的强度,提高程序开发的效率。1.2 面向对象的软件开发 继承:继承: C+语语言言程程序序设设
12、计计教教程程第第1章章C+编编程程简简介介 多态性也是面向对象方法的重要特征; 多态性的实现是以继承为基础的; 多态性是指在一般类中定义的属性或行为,被特殊类继承之后,可 以具有不同的数据类型或表现出不同的行为,这使得同一个属性或 行为在一般类及其各个特殊类中具有不同的语义,即具有继承关系 的不同对象接收到同一消息时有不同的行为; 多态性可以为具有继承关系的不同类所形成的类族(具有继承关系 的类的树状层次集合)提供统一的外部接口。 1.2 面向对象的软件开发 多态性:C+语语言言程程序序设设计计教教程程第第1章章C+编编程程简简介介 面向对象的软件开发面向对象的软件开发: 就是将面向对象的思想
13、应用于软件开发过程中的各个阶段。 其主要过程为:首先从实际问题出发,用面向对象的方法分析用户需求,建立分析模型;其次进行面向对象的设计,建立系统的设计模型;然后用面向对象的程序设计语言进行编程,实现软件系统;随后进行面向对象的测试;最后进行面向对象的维护。1.2 面向对象的软件开发 面向对象的分析面向对象的分析面向对象的分析面向对象的分析 面向对象的设计面向对象的设计面向对象的设计面向对象的设计 面向对象的编程面向对象的编程面向对象的编程面向对象的编程 面向对象的测试面向对象的测试面向对象的测试面向对象的测试 面向对象的维护面向对象的维护面向对象的维护面向对象的维护 C+语语言言程程序序设设计
14、计教教程程第第1章章C+编编程程简简介介1.3 C+语言程序设计C+语言的产生语言的产生 1983加入类CC+ANSI C+1994标准化C+语言的特点语言的特点 支持面向对象的程序设计支持面向对象的程序设计 支持泛型程序设计支持泛型程序设计 功能强大的标准模板库功能强大的标准模板库 C+ C+语言是一种更好的语言是一种更好的“ “CC语言语言” ” C+语语言言程程序序设设计计教教程程第第1章章C+编编程程简简介介1.4 C+程序开发过程 程序代码的录入、修改执行预处理指令,词法分析、语法分析后生成目标程序与其它目标程序或库连接,生成可执行程序C+语语言言程程序序设设计计教教程程第第1章章C
15、+编编程程简简介介1.5 C+程序结构 /*/* * 程序文件名程序文件名: p1_1.cpp *: p1_1.cpp * * 本程序显示本程序显示: Hello C+! *: Hello C+! * * 设计者设计者: : 杨进才杨进才 时时 间间: 8-8-2009 *: 8-8-2009 */*/#include / #include / 载入头文件载入头文件using namespace std; / using namespace std; / 使用命名空间使用命名空间stdstdint main( ) int main( ) / / 程序入口程序入口 cout Hello C+!e
16、ndl; cout Hello C+!endl; return 0; return 0; 预处理命令预处理命令主函数主函数主函数名主函数名函数开始函数开始函数体函数体语句结束标志语句结束标志函数结束函数结束 运行结果运行结果运行结果运行结果: Hello C+!Hello C+!注释块注释块注释行注释行一个简单的一个简单的C+程序程序 在在C+C+程序中,注释块由程序中,注释块由“/*/*”开始,由开始,由“* */ /”结束,可以实现多行注释结束,可以实现多行注释 。 也可使用也可使用“/”进行单行注释。进行单行注释。 C+C+语言的预处理命令都是以语言的预处理命令都是以“# #”号开头。号
17、开头。iostream是一个头文件是一个头文件, ,系统系统头文件不带头文件不带.h.h后缀后缀 coutcout为标准输出流对象,它与显示器相连。为标准输出流对象,它与显示器相连。 是插入操作是插入操作符,符,endlendl为换行符号。整个语句的功能是将为换行符号。整个语句的功能是将”Hello C+ Hello C+ ! !”字符串与字符串与endlendl依次插入到依次插入到coutcout中中 mainmain是主函数名,一个是主函数名,一个C+C+语言程序有且仅有语言程序有且仅有一个一个mainmain函数。函数。C+C+程序执行时就是从程序执行时就是从mainmain函函数开始数
18、开始. . C+C+语言规定:语句以分号结束语言规定:语句以分号结束 C+语语言言程程序序设设计计教教程程第第1章章C+编编程程简简介介使用名字空间使用名字空间 ?为什么?为什么: 标准C+库提供的对象等都放在标准名字空间std中,要使用它们, 必须要声明使用标准名字空间std。使用标准名字空间使用标准名字空间stdstd有有3 3种方式种方式:整体声明 using namespace std; 使用时单个对象临时声明 std:coutHello C+std:endl;单个对象使用前声明 using std:cout; 整体声明整体声明#include using namespace std;
19、 int main( ) cout Hello C+!endl; return 0; 单个对象临时声明单个对象临时声明# include int main ( ) std:cout”Hello C+!”std:endl; return 0; 单个对象使用前声明单个对象使用前声明# include using std:cout;using std:endl;int main ( ) cout”Hello C+!” cin 对象对象1 1 对象对象2.2.对象对象n n; cout 对象对象1 对象对象2.连用,使用格式为:该语句是从标准输入流对象键盘上提取n个数据分别给对象1、对象2、.、对象n
20、。 C+中使用对象cout作为标准输出流对象,通常代表显示设备,cout与插入操作符连用,使用格式为:该语句是依次从将对象1、对象2、.、对象n插入到标准输出流对象中,从而实现了对象在显示器上的输出。C+ C+ 输入输入/ /输出简介输出简介C+语语言言程程序序设设计计教教程程第第1章章C+编编程程简简介介输入输出举例输入输出举例123456789101112131415/* 程序文件名: p1_2.cpp * 功能: 求三个数的平均值,演示C+的简单I/O */#include using namespace std;int main( ) float num1, num2, num3; /
21、定义三个数 cout num1 num2num3;cout The average of num1, num2 and num3;cout is: (num1+num2+num3)/3 endl; return 0; Please input three numbers: Please input three numbers: 101 201 300101 201 300The average of 101,201 and 300 is: 200.667The average of 101,201 and 300 is: 200.667 C+语语言言程程序序设设计计教教程程第第1章章C+编编程
22、程简简介介常用的操纵符常用的操纵符 操纵符操纵符作用作用说明说明oct数据以8进制形式输出 作用范围为后续输出的整数对象,小数不起作 用。dec数据以10进制形式输出(默认)hex数据以16进制形式输出endl换行并刷新输出流setw(n)设置输出宽度需包括头文件iomanip,仅对后一个对象起作用setprecision(n)设置输出小数位数(默认为6)需包括头文件iomanip,作用范围为后续对象F注意注意: :在使用setw(n)与setprecision(n)时,还需要包含输入/输出操纵符头文件iomanip, iomanip意为input and output manipulate
23、(操纵).setprecision(n)仅对带有小数的数有效,n为整数与小数但不包括小数点的位数。 C+语语言言程程序序设设计计教教程程第第1章章C+编编程程简简介介常用的操纵符使用举例常用的操纵符使用举例 1234567891011121314151617/* 程序文件名: p1_3.cpp * 功能: 求三个数的平均值,演示C+简单I/O格式控制 * */#include #include using namespace std;int main( ) float num1, num2, num3; /定义三个数 cout num1 num2num3; coutsetw(8)setprec
24、ision(12); cout The average of num1 , num2 and num3; cout is:setw(20)(num1+num2+num3)/3 endl; return 0;运行结果运行结果Please input three numbers: 101 201 300 The average of 101 , 201 and 300 is: 200.666671753C+语语言言程程序序设设计计教教程程第第1章章C+编编程程简简介介1.6 本章小结 程序设计语言经历了从机器语言、汇编语言、高级语言、到面向对象的语言的发展过程,使得编程语言与人的自然语言越来越接近
25、,编程效率越来越高。 程序设计方法经历了面向过程的方法、结构化的方法、面向对象的方法的发展过程。 C+语言兼容C语言,具有面向对象的特点,支持面向对象程序设计方法。 面向对象的基本概念有:对象、类、封装、继承、消息、多态性。 面向对象的软件开发包括面向对象的分析、面向对象的设计、面向对象的编程、面向对象的测试和面向对象的维护。 C+程序设计的主要步骤:程序编辑、预编译、编译、连接、调试与运行。 程序注释有两种方法,应培养给程序写注释的好习惯。 预处理指令include在编译的预处理阶段将头文件搬到程序中,包含头文件是 C+程序的必不可少的部分。 标准C+的类库定义在名字空间std中,可以通过3种方法使用名字空间。 输入输出格式中,各种控制符作用和范围不同。