您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 第1章-C++语言概述
课程名称:《C++程序设计》主讲教师:冯玉芬E_mail:fengyufen@tom.com•使用教材:《C++语言基础教程》(第2版)吕凤翥主编著清华大学出版社•参考书:(1)谭浩强著,C程序设计(第二版),清华大学出版社,2003年(2)《C++程序设计教程》钱能著清华大学出版社(3)邵维忠,杨芙清,面向对象的系统分析清华大学出版,1998(4)BruceEckel著,刘宗田等译,C++编程思想(ThinkinginC++),机械工业出版社,2004(5)王超著,C++程序设计,地质出版社,2006年教材与参考书1.建立基本的计算机程序设计概念体系和基本的程序设计方法2.理解和掌握C++语言的基本语法和语义,掌握面向对象的思想,掌握面向对象程序设计的方法。3.逐步提高学生的编程能力和调试程序的能力,为后面课程的学习打好基础。教学目标学习方法•学习每章内容时,注意对基本概念的理解,掌握每章的主要内容。注意了解、理解和掌握三个层次的要求;•每堂结束布置的习题一定要独立完成。这是进一步掌握所学内容的一个重要途径;•上机环境是VC6.0,要求进一步掌握对C++语言程序的调试方法。课程内容:1.C++语言概述2.数据类型和表达式3.预处理和语句4.函数和作用域5.类与对象6.继承性和派生类7.多态性和虚函数8.C++语言的I/O流库1)面向对象程序设计的有关概念(理解)2)C++语言是一种面向对象的程序设计语言(了解)3)C++语言的词法及语法规则(掌握)4)C++程序结构的特点(掌握)5)C++程序的实现(掌握)1.C++语言概述返回课程内容:1)基本数据类型(掌握)2)常量和变量(掌握)3)数组(掌握)4)枚举数据类型(掌握)5)指针和引用(掌握)6)运算符(掌握)7)表达式(掌握)8)类型定义(掌握)9)结构和联合(掌握)2.数据类型和表达式返回课程内容:1)预处理功能(理解)2)语句(掌握)3)选择语句(掌握)4)循环语句(掌握)5)转向语句3.预处理和语句返回课程内容:1)函数的定义与说明(掌握)2)函数的调用(掌握)3)函数参数(掌握)4)内联函数(掌握)5)函数重载(掌握)6)函数的嵌套调用和递归调用(掌握)7)作用域(掌握)8)使用C++系统函数(掌握)9)函数模板(掌握)4.函数和作用域返回课程内容:1)类的定义(掌握)2)对象的定义(掌握)3)对象的初始化(掌握)4)成员函数的特性(掌握)5)静态成员(掌握)6)友元(掌握)7)类的作用域(理解)8)局部类和嵌套类(了解)9)对象的生存期(理解)10)对象指针和对象引用(理解)11)对象数组和对象指针数组(理解)12)常类型(理解)13)子对象和堆对象(了解)14)类型转换(了解)15)类模板(了解)5.类与对象返回课程内容:1)基类和派生类(掌握)2)单继承(掌握)3)多继承(理解)4)虚基类(了解)6.继承性和派生类返回课程内容:1)函数重载(掌握)2)运算符号重载(掌握)3)静态联编和动态联编(了解)4)虚函数(了解)5)纯虚函数和抽象类(了解)7.多态性和虚函数返回课程内容:1)屏幕输出(掌握)2)键盘输入(掌握)3)插入符和提取符的重载(理解)4)格式化输入和输出(理解)5)磁盘文件的输入和输出(掌握)6)字符串流(理解)8.C++语言的I/O流库返回课程内容:本章教学内容:1.计算机程序设计语言的发展(了解)2.程序设计方法的发展(了解)3.面向对象的基本概念(理解)4.信息的表示与存储(理解)5.C++语言的词法及语法规则(掌握)6.编写第一个C++程序(掌握)7.程序的实现过程(理解)1.计算机程序设计语言的发展1.计算机程序设计语言的发展•计算机的工作是用程序来控制的•程序是指令的集合。•指令是计算机可以识别的命令。机器语言汇编语言高级语言机器语言•由计算机硬件系统可以识别的二进制指令组成的语言称为机器语言。计算机发展的初期,软件工程师们只能用机器语言来编写程序。这一阶段,在人类的自然语言和计算机编程语言之间存在着巨大的鸿沟。如101111001111缺点:难懂不易修改移植性差1.计算机程序设计语言的发展汇编语言•汇编语言将机器指令映射为一些可以被人读懂的助记符,如ADD、SUB等。此时编程语言与人类自然语言间的鸿沟略有缩小,但仍与人类的思维相差甚远。因为它的抽象层次太低,程序员需要考虑大量的机器细节。•如:ADDCXDX将DX的内容加进CX需要汇编,变成目标程序。1.计算机程序设计语言的发展高级语言屏蔽了机器的细节,提高了语言的抽象层次,程序中可以采用具有一定涵义的数据命名和容易理解的执行语句。这使得在书写程序时可以联系到程序所描述的具体事物。如:if(y3)z=x+y;第一代语言对数学表达式有很强的运算处理能力Fortran和Algol60第二代语言如何有效地表达算法Pascal和C语言第三代语言引入抽象数据类型的程序设计语言Ada第四代语言面向对象程序设计语言面向对象的语言更接近于自然语言。20世纪60年代开发的simula67,是面向对象语言的鼻祖C++、Java高级语言1.计算机程序设计语言的发展•出发点:–更直接地描述客观世界中存在的事物(对象)以及它们之间的关系。•特点:–是高级语言。–将客观事物看作具有属性和行为的对象。–通过抽象找出同一类对象的共同属性和行为,形成类。–通过类的继承与多态实现代码重用•优点:–使程序能够比较直接地反问题域的本来面目,软件开发人员能够利用人类认识事物所采用的一般思维方法来进行软件开发。面向对象的语言1.计算机程序设计语言的发展语言的鸿沟计算机客观世界机器语言汇编语言结构化语言面向对象的语言自然语言对问题的认识(人)语言的鸿沟编程(人)程序的理解和执行(机器)解释方式和编译方式解释程序运行结果源程序初始数据源程序编译程序目标程序初始数据目标程序运行结果1.计算机程序设计语言的发展2.程序设计方法的发展•程序的目的:用于数学计算•主要工作:设计求解问题的过程•缺点:对于庞大、复杂的程序难以开发和维护——面向过程的结构化程序设计方法面向过程的结构化设计是一种软件开发方法•结构化程序设计的核心思想–功能分解、逐步求精。采用模块分解与功能抽象,自顶向下、分而治之。•程序结构:–按功能划分为若干个基本模块,形成一个树状结构。–各模块间的关系尽可能简单,功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成。–其模块化实现的具体方法是使用子程序。2.程序设计方法的发展•函数的调用关系•C++程序的结构化程序设计框架函数1声明函数2声明……函数n声明主函数main()函数1定义函数2定义……函数n定义因此在c++的结构化程序设计中,程序基本组成单元是函数函数5主函数main()函数1函数2函数3函数42.程序设计方法的发展例如:#includeiostream.h#includemath.hdoublediantance(doublea1,doubleb1,doublea2,doubleb2);voidmain(){intx1,y1,x2,y2;doubledx1,dy1,dx2,dy2,d1,d2;cout请输入两个数点:;cinx1y1x2y2;d1=diantance(x1,y1,x2,y2);cout两个整数点的距离:d1endl;}doublediantance(doublea1,doubleb1,doublea2,doubleb2){returnsqrt((a1-a2)*(a1-a2)+(b1-b2)*(b1-b2));}2.程序设计方法的发展•缺点:可重用性差、数据安全性差、难以开发图形界面的应用–把数据和处理数据的过程分离为相互独立的实体。–当数据结构改变时,所有相关的处理过程都要进行相应的修改。–每一种相对于老问题的新方法都要带来额外的开销。–图形用户界面的应用,很难用过程来描述和实现,开发和维护都很困难。——面向过程的结构化程序设计方法2.程序设计方法的发展——面向对象的方法•面向对象是一种软件开发方法,这种新概念、新方法包括对象•、类、封装、聚合、继承、多态等•将数据及对数据的操作方法封装在一起,作为一个相互依存、不可分离的整体——对象。•对同类型对象抽象出其共性,形成类。•类通过一个简单的外部接口,与外界发生关系。•对象与对象之间通过消息进行通讯。2.程序设计方法的发展——面向对象的方法•优点:–程序模块间的关系更为简单,程序模块的独立性、数据的安全性就有了良好的保障。–通过继承与多态性,可以大大提高程序的可重用性,使得软件的开发和维护都更为方便。2.程序设计方法的发展3.面向对象的基本概念•一般意义上的对象:–是客观世界中实际存在的某种事物的抽象,即描述客观事物的一个实体。–可以是有形的(比如一辆汽车),也可以是无形的(比如一项计划)。–是构成客观世界的一个独立单位,具有:•静态特征:可以用某种数据来描述•动态特征:对象所表现的行为或具有的功能——对象•面向对象方法中的对象:–对象是一组属性和一组行为的集合–属性:用来描述对象静态特征,使用若干数据来表示。–行为:用来描述对象动态特征,使用若干操作来表示。–因此对象是数据和操作的集合3.面向对象的基本概念——对象•分类是人类认识客观事物的一种常用的思维方法•分类所依据的原则——抽象–忽略事物的非本质特征,只注意那些与当前目标有关的本质特征,从而找出事物的共性,把具有共同性质的事物划分为一类,得出一个抽象的概念。–例如,石头、树木、汽车、房屋等都是人们在长期的生产和生活实践中抽象出的概念。3.面向对象的基本概念——类•面向对象方法中的类–具有相同属性和行为的若干对象的统一描述体。–类与对象的关系:犹如模具与铸件之间的关系,一个属于某类的对象称为该类的一个实例。集合-----成员抽象描述-------具体实例3.面向对象的基本概念——类•把对象的属性和行为(数据和操作)结合成一个独立的封装体。•封装具有隐蔽性,封装体外不可见的成员被隐藏起来,具有安全性。•封装体与外界联系是通过称为接口的通道进行的。——封装3.面向对象的基本概念3.面向对象的基本概念聚合是类之间的一种包含关系。在处理复杂的问题时,常常把复杂的问题进行分解成若干个简单问题,逐个解决简单的问题来实现对复杂问题的解决,具体实现方法是在一个类中可以包含另一个类的对象。一个复杂的类可以是若干个简单类的对象组成。着这种方法称为聚合。飞机——聚合机翼机身机尾发动机3.面向对象的基本概念•继承对于软件复用有着重要意义,是面向对象技术能够提高软件开发效率的重要原因之一。•定义:特殊类的对象拥有其一般类的全部属性与行为,并且还有自己特殊的属性和行为,称作特殊类对一般类的继承。•例如:将轮船作为一个一般类,客轮便是一个特殊类。继承对软件开发的意义:将已经开发好的类存放在类库里,开发新系统时,可直接使用或继承使用已有的类,减少编程的工作量,并提高编程质量——继承3.面向对象的基本概念哺乳动物热血、有毛发、用奶哺育幼仔狗有犬牙、食肉、特定骨骼结构苛利狗尖鼻子、身体颜色红白相间、适合放牧3.面向对象的基本概念多继承的关系雇员销售人员经理销售经理3.面向对象的基本概念•多态是指在一般类中定义的属性或行为,被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。并在运行中进行联编。这使得同一个属性或行为在一般类及其各个特殊类中具有不同的语义。•例如:数的加法-实数的加法-复数的加法。——多态性(一对多的状态)3.面向对象的基本概念封装要求一个对象应具备明确的功能,并具有接口以便和其他对象相互作用。继承就是一个对象可以获得另一个对象的特征。多态性不同的对象可以调用相同名称的函数,并可导致完全不同行为的现象称为多态性。面向对象的方法可归纳为如下几点(1)将客观事物中抽象出的数据和方法构成一个集合体,即对象(2)将相同类型的对象抽象出共性,形成类(3)类是一个封装体,数据通过类的方法来操作,数据在类外不可
本文标题:第1章-C++语言概述
链接地址:https://www.777doc.com/doc-6287027 .html