大工面向对象编程基础C总结.pptx





《大工面向对象编程基础C总结.pptx》由会员分享,可在线阅读,更多相关《大工面向对象编程基础C总结.pptx(193页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、面向对象编程C程序设计2主要参考书面向对象建模与设计,Rumbaugh,电力出版社面向对象分析与设计,Grady Booch,机械工业出版社Thinking in C+,Bruce EckelC+Primer,Stanley B Lippman,中国电力出版社C+语言及其程序设计教程,张国峰,电子工业出版社C+程序设计教程,钱能,清华大学出版社深入浅出MFC,2Ed,侯俊杰(侯杰),松岗。Visual C+技术内幕,Microsoft,北京希望电子出版社3主要网络资源面向对象基本概念什么是软件开发?v软件开发的过程就是人们使用各种计算机语言将人们关心的现实世界映射到计算机世界的过程 现在的计算
2、机的数学理论基础是图灵于1937年提出的图灵机模型,1945年,电子计算机诞生。现代电子计算机的体系结构及实际计算模型来自冯.诺依曼的思想。1946年他和他的同事们提出了程序放入内存,顺序执行的思想,这样,当算一道新题时就只需采取改变计算机中的程序的“软”的方法英国的科学家维尔克斯实现了冯.诺依曼的思想,领导研制了“艾克萨克”。计算机开发语言v机器语言、汇编语言、高级语言,高级语言可能有几千种v计算机语言都是某种程度的形式语言v软件开发的过程就是程序员对客观世界问题域形式化的过程现实世界的问题域建立模型编程实现计算机世界执行求解v计算机高级语言的历史1945年德国人楚译为其Z4设计的Plan
3、Calcu1。1952年美国尤尼法克公司的Short Code(在计算机上实现的第一个)由美国科学家巴科斯设计,1956年在IBM计算机上实现的FORTRAN。70年代以来的PASCAL80年代,C语言80年代后期,C+90年代以来,语言不仅要OO,而且要Visual,更要Web,Java快速推广。v计算机语言的变化和发展,反映了人们在计算机领域认识论的发展。vPO方法:现实世界 流程图(变量,函数)PO语言 执行求解 vOO方法:现实世界 类图(对象,方法)OO语言 执行求解OO作为一种思想及编程语言,为软件开发的整个过程:分析、设计到coding,提供了一个完整解决方案。C+,smallt
4、alk,simula等语言,Use Case方法,ROSE工具,Jacboson 和Rational公司从PO到OO9面向过程思想问题域(Domain)以问题域的系统流程为中心分析Sub1Sub2Subn.各子流程实现-函数化Func1Func2Funcn.根据系统的流程组建软件,通过函数的调用实现10面向对象思想问题域(Domain)以问题域中的事物为中心思考问题Object1Object2Objectn.对象归类-抽象化Class1Class2Classn.类实例化:定义对象,构建系统,形成解决方案11面向对象的特点封装(Encapsulation)通过定义类实现继承(Inheritanc
5、e)通过派生新类实现多态性(Morphism)虚拟函数实现v从软件工程的发展历史来看:为解决“软件危机”,人们尝试从2个方向努力:从管理的角度,希望实现软件开发过程的工程化,提出了各种各样的软件生命周期模型,最著名的是瀑布模型:分析 设计 编码 测试 维护 对软件开发过程中分析、设计的方法的研究70年代的结构化开发方法,即PO计算机世界中的抽象层次 XO(X?-Oriented)最高的抽象层次SO(Service-Oriented),OO(对象、类)PO(过程、函数、变量)变量、运算、表达式、语句字节(4位、8位、16位、32位、64位)二进制串 最低的抽象层次OO之后是什么?13第一部分 C
6、+语言及程序设计本部分主要内容包括:C+基本语法类的定义类的继承对象的定义及应用异常处理流类库14第一章 概述C语言语言19721972年由年由Dennis Richie在在AT&T设计设计为解决为解决C语言存在的问题研制语言存在的问题研制-“-“带类的带类的C”,1983命名为命名为C+对对C的类型系统改进和扩充的类型系统改进和扩充(更安全更安全)支持面向对象支持面向对象C+保持与保持与C兼容兼容(快速普及快速普及)C+不是纯粹的面向对象的语言不是纯粹的面向对象的语言1.1 C+的起源和特点151.2 程序的编译过程161.3 C+的词法记号关键字关键字各种常量各种常量操作符操作符标识符标识
7、符(由字母、数字、下划线组成,字(由字母、数字、下划线组成,字母和下划线开头)母和下划线开头)分隔符分隔符171.4 C+程序的结构18注释注释(有有/和和/*/*/两种)两种)输入和输出输入和输出函数函数(一个(一个C C程序至少包含一个函数,即程序至少包含一个函数,即mainmain函数)函数)变量(对象)变量(对象)符号常量符号常量表达式表达式语句语句19第二章 基本数据类型和表达式2.1C+的基本数据类型202.2文字量(常量)整数常量整数常量:无符号、有符号:无符号、有符号浮点常量浮点常量:浮点数据:浮点数据字符常量字符常量:一个字符,单引号:一个字符,单引号字符串常量字符串常量:赋
8、值、内存空间占用情况:赋值、内存空间占用情况布尔常量布尔常量:truetrue、falsefalse;TRUETRUE、FALSEFALSE,零、非零。零、非零。212.3对象声明基本语法如下:数据类型 标识符1,标识符2,。标识符n;初始化数据类型 标识符1(初始值1),标识符2(初始值2),。标识符n(初始值n);数据类型 标识符1=初始值1,标识符2=初始值2,。标识符n=初始值n;赋值I=10;222.4枚举类型定义:定义:通过枚举一个类型的值域来定义一个数据类型,通过枚举一个类型的值域来定义一个数据类型,值域是通过在枚举声明时所指定的一组文字量值域是通过在枚举声明时所指定的一组文字量
9、(又称枚举常量)指定的。(又称枚举常量)指定的。语法形式:语法形式:enum enum 标识符标识符 标识符标识符1 1,标识符,标识符2 2,标识符,标识符3 3,。,。标识符。标识符n;n;23举例:enum color RED,BLUE,GREEN,YELLOW;enum color RED,BLUE,GREEN,YELLOW;enum color enum color BLACK,GREEN,BLUE,RED=4,YELLOW;BLACK,GREEN,BLUE,RED=4,YELLOW;/YELLOW=5/YELLOW=5enum status FALSE,TRUE,FAIL=0;en
10、um status FALSE,TRUE,FAIL=0;注意:枚举文字量的值缺省从0开始,依次类推。可以为枚举文字量指定特定的值。枚举文字量的值可以重复。242.5表达式文字或标识对象的标识符是最简单的表达文字或标识对象的标识符是最简单的表达式,其值就是文字或对象的值。式,其值就是文字或对象的值。一个表达式的值可以用来参与其他操作,一个表达式的值可以用来参与其他操作,即用作其他操作符的操作数。即用作其他操作符的操作数。括号中的表达式仍然是表达式。其值不变。括号中的表达式仍然是表达式。其值不变。25表达式由操作数和操作符组成,操作符分:表达式由操作数和操作符组成,操作符分:算术操作符算术操作符:
11、+、-、*、/、%关系操作符关系操作符:、=、=、=intchar,short-intint-unsigned-long-unsigned int-unsigned-long-unsigned long-doublelong-doublefloat-doublefloat-double27赋值类型强制赋值类型强制右边的表达式类型映射成左值的类型。右边的表达式类型映射成左值的类型。强制类型转换强制类型转换static_cast(E)static_cast(E)T(E)T(E)(T)E(T)E28类型强制举例类型强制举例j=k+d;j=k+d;static_cast(f)static_cast(f
12、)int(f)int(f)(int)f(int)f292.8常量表达式为计算表达式值所需信息在编译时都能获为计算表达式值所需信息在编译时都能获得。得。例:例:34/5.8*4.534/5.8*4.540*40*sizeof(int)sizeof(int)PI*4.0*4.0PI*4.0*4.030第三章 控制结构顺序结构顺序结构表达式语句表达式语句空语句空语句块语句块语句选择结构选择结构循环结构循环结构313.1顺序结构表达式语句表达式语句:由一个表达式构成的简单语:由一个表达式构成的简单语句。句。空语句空语句:由一个分号构成的简单语句。:由一个分号构成的简单语句。块语句块语句:由一组具有逻辑
13、关系的语句构成:由一组具有逻辑关系的语句构成的组合语句。的组合语句。323.2 选择结构ififif-elseif-elseexprstatement非0=0exprstatement1statement2非0=033expr1statemnt1非0=0expr2expr3statemntnstatemnt3statemnt2非0非0=0=0If expr1 statement1else if expr2statement2else if expr3statement3elsestatement4If else 嵌套要注意其对应关系(同一块中最接近的)34expr1statemnt1非0=0e
14、xpr2expr3statemntnstatemnt3statemnt2非0非0=0=0If expr1 statement1else if expr2statement2else if expr3statement3elsestatement435switch语句(开关分支语句)一般形式:switch(expression)case const expr1:statement group 1;break;case const expr2:statement group 2;break;.case const expr n:statement group n;break;default:sta
15、tement group;break;36执行过程:switchexpr语句组1语句组2语句组n语句组.const 1const 2const ndefaultcase 37说明:lswitch后表达式和常量表达式可以为任何类型l每个case的常量表达式值必须互不相同lcase出现顺序不影响执行结果l“case 常量表达式”只起语句标号作用,找到匹配入口后,会依次执行下去。所以必须用break语句跳出switch 结构ldefault可省略,一般将default放于最后,此时default后可以不加breaklcase后可包含多个可执行语句,且不必加 l多个case可共用一组执行语句如:cas
16、e A:case B:case C:printf(“score60n”);break;.383.3循环结构39while语句一般形式:while(expression)循环体语句;执行流程:expr循环体假(0)真(非0)while40while语句一般形式:while(expression)循环体语句;执行流程:expr循环体假(0)真(非0)while41dowhile语句一般形式:do 循环体语句;while(expression);执行流程:do循环体expr真(0)假(非0)while42特点:先执行循环体,后判断表达式说明:ldowhile循环至少要执行一次循环体ldowhile可
17、转化成while结构l一般若dowhile与while的循环体相同,结果也一样;但当while后的表达式一开始就为0,则两者结果不同ldowhile是“直到型”循环,但与until型循环不同ldowhile循环中,while(expression)后面有分号(;)expr循环体假(0)真(非0)循环体While循环43for语句一般形式:for(expr1;expr2;expr3)循环体语句;执行流程:expr2循环体假(0)真(非0)forexpr1expr344for语句一般形式:for(expr1;expr2;expr3)循环体语句;执行流程:expr2循环体假(0)真(非0)forex
18、pr1expr345for语句一般应用形式:for(循环变量赋初值;循环条件;循环变量增值)循环体语句;说明:lfor语句中expr1,expr2,expr3 都可以省略,但分号(;)不可省lexpr1,expr3可以是与循环变量无关的任何式子,也可以是逗号表达式lexpr2一般是关系表达式或逻辑表达式,但也可以是数值或字符表达式;只要非0,就执行循环体lfor语句可以转换成while结构expr1;while(expr2)循环体语句;expr3;46几种循环的比较一般情况下,四种循环结构可相互代替;但一般不提倡goto型循环while和dowhile结构的循环体中包含使循环趋于结束的语句;f
19、or循环一般在expr3中包含使循环趋于结束的语句,但也可以放在循环体中,或将循环体放在expr3中while和dowhile结构的循环变量初始化应在while和dowhile语句之前完成;for循环一般放在expr1中while和for先判断表达式,后执行语句,循环体被执行0次或n次;dowhile循环先执行语句,后判断表达式,循环体至少执行1次while,dowhile和for循环可用break跳出循环,continue结束本次循环;而goto型循环不能用break和continue 控制47嵌套循环循环是可以嵌套的483.4辅助控制语句gotogoto语句break语句功能:可用在for
20、,while,dowhile循环语句和switch选择语句中来终止它们的执行(即跳出循环体结束循环,或跳出switch结构,执行switch语句下面的一个语句说明:在多层嵌套的循环或选择语句中,break终止并跳出最近那一层的结构break不能用于循环语句和switch语句之外的任何其它语句之中continue语句49exprbreak;假(0)真(非0)whiledobreak;.expr真(0)假(非0)while50expr2break;.假(0)真(非0)forexpr1expr3switchexpr语句组1break;语句组2break;语句组nbreak;语句组break;.con
21、st 1const 2const ndefaultcase 51continue语句功能:仅用于循环语句中。结束本次循环,跳出循环体中尚未执行的语句,接着进行下一次是否执行循环体的判断exprcontinue;假(0)真(非0)while假(非0)docontinue;.expr真(0)whileexpr2continue;.假(0)真(非0)forexpr1expr3524.1 函数的基本概念完成特定功能的一段代码完成特定功能的一段代码具有合法的名称具有合法的名称具有一定返回类型具有一定返回类型可以多次调用可以多次调用基本形式:基本形式:返回类型返回类型 函数名(形式参数函数名(形式参数1
22、1,形式参数形式参数2 2,。,形式参数,。,形式参数n)n)函数体;函数体;函数的返回类型可以是:各种数据类型、指针类型或函数的返回类型可以是:各种数据类型、指针类型或voidvoid第四章 函数534.2 参数的传递值调用值调用544.2 参数的传递引用调用引用调用554.3 内联函数函数调用需要建立环境、进行参数传递函数调用需要建立环境、进行参数传递等工作,对于一些简单的函数,可以采等工作,对于一些简单的函数,可以采用内联函数的方式用内联函数的方式使用使用inlineinline关键字定义的函数是内联函关键字定义的函数是内联函数。数。注意:注意:内联函数中不能包含内联函数中不能包含swi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大工 面向 对象 编程 基础 总结

限制150内