




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程名称:C+程序设计,主讲教师:冯玉芬E_mail:407877865,使用教材:C+语言程序设计(第3版)吕凤翥主编著电子工业出版社参考书:(1)吕凤翥著,C+语言基础教程(第2版),清华大学出版社(2)钱能著C+程序设计教程清华大学出版社(3)StanleyB.Lippman等著C+Primer2006年(4)谭浩强著,C+程序设计,清华大学出版社(5)王超著,C+程序设计,地质出版社,2006年,教材与参考书,本课程主要内容:,第1章C+语言概述第2章变量和常量第3章运算符和表达式第4章语句和预处理第5章函数和存储类第6章指针和引用第7章结构体和联合第8章类和简单对象第9章复杂对象第10章继承性和派生类第11章多态性和虚函数第12章C+语言的I/O流类库,教学目标:1.认识计算机程序概念和了解程序设计思想。2.理解和掌握C+语言的基本词法规则和语句,(变量、常量、数据类型类型、运算符、表达式、基本语句及语句的控制结构、函数的定义,函数的调用、变量的作用域、指针、结构体和联合体、类和对象的定义、类的继承性和派生、类的多态性)3.具备使用C+语言解决简单问题的能力,逐步提高学生的编程能力和调试程序的能力,为后面课程的学习打好基础。,第1章C+语言概述怎样学好C+程序设计语言,台湾知名技术专家蔡学镛先生写了一本编程ING,宣称“人人都能学会程序设计”,循序渐进,由浅入深,步步为营,兴趣导向。,第1章C+语言概述2.怎样学好C+程序设计语言,学习方法:1)学习每章内容时,注意对基本概念的理解,掌握每章的主要内容。注意了解、理解和掌握三个层次的要求;2)每堂结束布置的习题一定要独立完成。这是进一步掌握所学内容的一个重要途径;3)上机环境是VC6.0,要求进一步掌握对C+语言程序的调试方法。,要提高写程序的能力只能通过多读一些程序,多写和调试一些程序,多练习,从简单的做起,,第1章C+语言概述,1.1面向对象语言简介(了解)1.2C语言与C+语言的关系(了解)1.3C+语言的词法和词法规则(掌握)1.4C+程序结构上的特点(掌握)1.5C+程序的实现(掌握),第1章C+语言概述1.1面向对象语言简介,C+是一种面向对象的程序设计语言,它是在C语言基础上发展起来的,虽然它不是最早的面向对象的程序设计语言,但是它是目前使用较为广泛的面向对象的程序设计语言。,1.计算机的组成:,2.软件系统:,是由硬件系统和软件系统两大部分组成的,软件=程序+文档,3.什么是程序?,软件是程序以及开发、使用和维护所需要的所有文档的总称,而程序是软件的一部分。,程序设计就是把一堆指令放在一块实现某种功能,程序设计=数据结构+算法,4.什么是程序设计语言?,指令是用计算机程序设计语言编写的计算机可以识别的命令。,计算机只能识别一种语言,就是机器语言,是由0和1组成的指令,第1章C+语言概述1.1面向对象语言简介,机器语言汇编语言高级语言,机器语言由是用二进制代码表示的计算机能直接识别和执行的机器指令的集合。它是计算机设计者通过计算机硬件结构赋予计算机的功能。计算机发展的初期,软件工程师们只能用机器语言来编写程序。这一阶段,在人类的自然语言和计算机编程语言之间存在着巨大的鸿沟。如101111001111优点:直接执行,速度快缺点:难读、难编、难记,易出错和移植性差,第1章C+语言概述1.1面向对象语言简介,汇编语言为了克服机器语言难读、难编、难记和易出错的缺点,人们就用于代码指令含义相近的英文缩写词、字母或数字字符等符号来取代指令代码,于是就产生了汇编语言。汇编语言将机器指令映射为一些可以被人读懂的助记符,如ADD、SUB等。此时编程语言与人类自然语言间的鸿沟略有缩小,但仍与人类的思维相差甚远,是面向机器的计算机语言。因为它的抽象层次太低,程序员需要考虑大量的机器细节。如:ADDCXDX将DX的内容加进CX需要汇编,不能直接执行,由汇编程序,翻译成目标程序。优点:目标程序占用内存空间少,执行速度快,有着高级语言不可替代的用途缺点:使用起来比较繁琐,通用性差,是低级语言,第1章C+语言概述1.1面向对象语言简介,高级语言:不论是机器语言还是汇编语言都是面向硬件的具体操作,语言对机器过分依赖,要求使用者必须对硬件结构及其工作原理十分熟悉,这对非计算机专业人员是难以做到的,不利于计算机的推广应用,随着计算机技术的发展,促使人们去寻求一些与人类自然语言相近且能为计算机所接受的语意确定、规则明确、自然直观和通用易学的计算机语言。那么这种与自然语言接近,并为计算机所接受和执行的计算机语言就称为高级语言。高级语言屏蔽了机器的细节,是面向用户的计算机语言,第1章C+语言概述1.1面向对象语言简介,Fortran和Algol语言美国IBM公司约翰贝克斯(JohnBackus)针对汇编语言的缺点着手研究开发FORTRAN语言FORTRAN语言是世界上第一个被正式推广使用的高级语言。它是1954年被提出来的,1956年开始正式使用,至今已有五十多年的历史,但仍历久不衰,它始终是数值计算领域所使用的主要语言。FORTRAN语言是FormulaTranslation的缩写,意为“公式翻译”。它是为科学、工程问题或企事业管理中的那些能够用数学公式表达的问题而设计的,其数值计算的功能较强。1977JohnBackus因对可用的高级编程系统设计有深远和重大的影响而获图灵奖,ALGOL语言(ALGOrithmicLanguage)的缩写艾伦佩利(AlanJ.Perlis)在巴黎举行的有全世界一流软件专家参加的讨论会上,发表了算法语言Algol60报告1966A.J.Perlis因在新一代编程技术和编译架构方面的贡献而获图灵奖,第一代高级语言对数学表达式有很强的运算处理能力,JohnBackus,AlanJ.Perlis,第1章C+语言概述1.1面向对象语言简介,Pascal是最早出现的结构化编程语言,具有丰富的数据类型和简洁灵活的操作语句,适于描述数值和非数值的问题。瑞士NiklausWirth教授于六十年代末设计并创立。Pascal也可以是指人名,它的取名原本就是为了纪念十七世纪法国著名哲学家和数学家BlaisePascal,1984NiklausWirth因开发了EULER、ALGOL-W、MODULA和PASCAL一系列崭新的计算语言而获奖,C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。C语言是1972年由美国的DennisRitchie设计发明的,在1970年,AT960万平方公里;牡丹;义勇军进行曲;,第1章C+语言概述1.1面向对象语言简介,封装是一个面向对象程序设计语言的基础,它是关于对外部世界隐藏对象内部信息的把对象的属性和行为(数据和操作)结合成一个独立的封装体。封装具有隐蔽性,封装体外不可见的成员被隐藏起来,具有安全性。封装体与外界联系是通过称为接口的通道进行的。,封装,如手机等物品,内部的通讯过程很复杂,但是对使用者很易用,如定义一个用于处理发送短信的类,对外提供的方法只要求用户传递接受号码和短信内容,内部具体怎么把短信发送出去对于使用者不可见。,第1章C+语言概述1.1面向对象语言简介,聚合是类之间的一种包含关系。在处理复杂的问题时,常常把复杂的问题进行分解成若干个简单问题,逐个解决简单的问题来实现对复杂问题的解决,具体实现方法是在一个类中可以包含另一个类的对象。一个复杂的类可以是若干个简单类的对象组成。着这种方法称为聚合。飞机,机翼机身机尾发动机,聚合,第1章C+语言概述1.1面向对象语言简介,定义:特殊类的对象拥有其一般类的全部属性与行为,并且还有自己特殊的属性和行为,称作特殊类对一般类的继承。,继承,第1章C+语言概述1.1面向对象语言简介,22,生活中,继承的例子随处可见,父类更通用、子类更具体,有自身装备动力驱动的车辆。汽车的属性刹车、加速、油耗、速度、载重,用于载人及随身物品且座位布置在两车轴之间的汽车,载货汽车,5/25/2020,父类或基类,子类或派生类,子类或派生类,第1章C+语言概述1.1面向对象语言简介,23,5/25/2020,第1章C+语言概述1.1面向对象语言简介,24,单继承和多继承,老虎牙齿锋利,爪子大,身体上有斑纹会爬树,喜欢游泳,集力量速度于一身。,狮子雄狮拥有夸张的鬃毛,体型硕大,奔跑迅速,狮虎兽头上有狮子所拥有的鬃毛,身体上有老虎身上的斑纹,喜欢游泳,第1章C+语言概述1.1面向对象语言简介,继承对于软件复用有着重要意义,是面向对象技术能够提高软件开发效率的重要原因之一。继承对软件开发的意义:将已经开发好的类存放在类库里,开发新系统时,可直接使用或继承使用已有的类,减少编程的工作量,并提高编程质量,继承,第1章C+语言概述1.1面向对象语言简介,类的子类表现出的行为可以各不相同,这种特性称为类的多态性多态是指在一般类中定义的属性或行为,被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或行为在一般类及其各个特殊类中具有不同的语义。,交通工具都具备移动的能力和行为,但是不同的子类表现方式可以各不相同,多态性,第1章C+语言概述1.1面向对象语言简介,多态性指同一操作作用于不同的类的实例,将产生不同的执行结果,即不同类的对象收到相同的消息时,得到不同的结果,多态性(一对多的状态),Person,Student,Teacher,Student和Teacher类SayHi()的内容不同Person类,在这两种场合的行为不同,第1章C+语言概述1.1面向对象语言简介,封装要求一个对象应具备明确的功能,并具有接口以便和其他对象相互作用。继承就是一个对象可以获得另一个对象的特征。多态性不同的对象可以调用相同名称的函数,并可导致完全不同行为的现象称为多态性。面向对象的方法可归纳为如下几点(1)将客观事物中抽象出的数据和方法构成一个集合体,即对象(2)将相同类型的对象抽象出共性,形成类(3)类是一个封装体,数据通过类的方法来操作,数据在类外不可见,无法进行访问(4)类通过接口与外界发生联系(5)对象之间通过消息通信,第1章C+语言概述5.面向对象的程序设计语言,解释程序,运行结果,源程序,初始数据,源程序,编译程序,目标程序,初始数据,目标程序,运行结果,解释方式,编译方式,第1章C+语言概述5.面向对象的程序设计语言,1.2.1C+语言是对C语言的改进1)C+语言中增加了一些运算符(如:newdelete.*-*)2)C语言是一种弱类型语言,类型转换不够严格;3)引进了引用的概念,使用引用作为函数参数,克服了使用指针带来的不变;4)允许函数重载,允许设置默认参数,还引进了内联函数的概念5)对变量的说明更加灵活,不受C语言中某些规定的限制。,第1章C+语言概述1.2C语言与C+语言的关系(了解),第1章C+语言概述第2章变量和常量(C)第3章运算符和表达式(C)第4章语句和预处理(C)第5章函数和存储类(C)第6章指针和引用(C和C+)第7章结构体和联合(C)第8章类和简单对象(C+)第9章复杂对象(C+)第10章继承性和派生类(C+)第11章多态性和虚函数(C+)第12章C+语言的I/O流类库(C+),字符是语言中可以区分的最小符号1)C+语言的字符集组成1)大小写英文字母2)数字字符3)特殊符号:空格!#%?“()2)单词及词法规则(单词是由字符组成的具有一定意义的最小词法单元)a.标识符(程序员定义的实体名)可以由以大写字母、小写字母、下划线”_”或数字09组成以大写字母、小写字母或下划线”_”开始。大写字母和小写字母代表不同的标识符。在实际应用中,尽量使用有意义的单词作为表示符。用户定义标识符时,不要采用系统的保留字。,第1章C+语言概述1.3C+语言词法和词法规则(掌握),变量名,常量名,类名,对象名,类型名,函数名,b.关键字关键字是系统已经预定义的单词,在程序中有不同的用途autoboolbreakcasecharcatchclassconstcontinuedefaultdeletedodoubleelseenumexplicitexternfloatforfriendgotoifincludelongmutablenewoperatorprivateprotectpublicregisterreturnshortsignedsizeofstaticstatic_caststructswitchtemplatethisthrowtruetrytypedefunionunsignedusingvitualvoidvolatilewhilec.运算符是系统预定义的函数名字,这些函数作用于被操作的对象,将获得一个结果值d.分隔符标点符号用来分隔单词或程序正文的,用来表示一个程序体的结束或另外一个程序体的开始空格逗号分号冒号e.常量在程序中直接使用符号表示的数据,字符常量数字常量字符串常量f.注释符在程序中仅起到注释和说明作用,注释的目的是方便阅读,在程序编译的词法分析阶段,注释将从程序中删除。,第1章C+语言概述1.3C+语言词法和词法规则(掌握),(1)一个C+语言程序的例子/这是第一个C+程序#includevoidmain()couty;doublez=x+y;cout“x+y=”zendl;,/注释行,/预处理命令,/main函数定义,/声明变量语句,/输出语句,/输入语句,/声明变量在并为其初值,/输出语句,C+程序的组成部分预处理命令函数输出语句,输入语句变量声明语句,第1章C+语言概述1.4C+程序结构上的特点,(3)C+程序的书写格式,基本原则一行一般写一条语句书写程序时要尽量提高可读性每个大括号占一行,并与使用大括号的语句对齐。大括号里的语句采用缩格书写方式,一般缩进两个格如:#includevoidmain()inta,b;a=5;b=7;cout“a*b=”a*bendl;,第1章C+语言概述1.4C+程序结构上的特点,c+源程序的实现一般要经过编辑、编译、运行,源程序、目标程序、翻译程序三种不同类型的翻译程序:汇编程序、编译程序、解释程序程序的开发过程编辑、编译、连接、运行调试,第1章C+语言概述1.5C+程序的实现,基本术语,源程序:用源语言写的,有待翻译的程序目标程序:也称为结果程序,是源程序通过翻译程序加工以后所生成的程序。翻译程序:是指一个把源程序翻译成等价的目标程序的程序。,第1章C+语言概述1.5C+程序的实现,基本术语三种不同类型的翻译程序,汇编程序:其任务是把用汇编语言写成的源程序,翻译成机器语言形式的目标程序。编译程序:若源程序是用高级程序设计语言所写,经翻译程序加工生成目标程序,那么,该翻译程序就称为“编译程序”。解释程序:这也是一种翻译程序,同样是将高级语言源程序翻译成机器指令。它与编译程序不同点就在于:它是边翻译边执行的,即输入一句、翻译一句、执行一句,直至将整个源程序翻译并执行完毕。,第1章C+语言概述8.实现第一个C+程序,程序的开发实现过程,编辑将源程序输入到计算机中,生成后缀为cpp的磁盘文件。编译将程序的源代码转换为机器语言代码。将多个源程序文件以及库中的某些文件连在一起,生成一个后缀为exe的可执行文件。运行调试,第1章C+语言概述1.5C+程序的实现,第1章C+语言概述1.5C+程序的实现,否,否,否,1.写程序,在屏幕上输出图案2.写程序,从键盘上输入两个数,在屏幕上输出下面语句例如从键盘上输入234,456则在屏幕上输出234+456=690234-456=-222234*456=106704234/456=0.51,第1章C+语言概述上机操作,1.在c+中,实现封装性需要借助于()A)枚举B)类C)数组D)函数2)关于面向对象的程序设计方
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (2025年标准)赠予技术 股份 协议书
- 人工智能辅助智能孪生城市技术研发项目合作协议
- (2025年标准)社区公益装修协议书
- 2025年金融办还款协议书
- 等本过户合同(标准版)
- 2025年书法装裱合同协议书
- 单位绿化改造合同(标准版)
- 2025年新长期广告投放协议书
- 2025年平行单位安全协议书
- (2025年标准)投资终止协议书
- 眼的生物化学讲义
- GB/T 3098.15-2023紧固件机械性能不锈钢螺母
- 陈琦《教育心理学》课件
- 封头理论重量计算公式
- 护理副高职称答辩5分钟简述范文
- (3)-2-1-药物的跨膜转运
- 幼小衔接资料合集汇总
- 八年级数学平面直角坐标系测试题
- GB/T 28575-2020YE3系列(IP55)三相异步电动机技术条件(机座号63~355)
- 储油罐有限空间作业安全技术措施表
- 传媒公司员工劳动合同(标准版)
评论
0/150
提交评论