C++语言程序设计
培养目标:1.建立基本的计算机程序设计概念体系和基本的程序设计方法.
2.理解和掌握C++语言的基本语法和语义,初步理解面向对象的思想,
初步掌握面向对象程序设计的方法.
3.逐步提高学生的编程能力和调试程序的能力,为后面的学习打好基础.
第一章 绪论
1.计算机程序设计语言的发展.
2.面向对象的方法.
3面向对象的软件开发.
4.信息的表示与存储.
5.程序的开发过程.
1.1计算机语言的发展
计算机程序
1. 计算机的工作是用程序来控制的.
2. 程序是指令的集合.
3. 指令是计算机可以识别的指令.
机器语言
由计算机硬件系统可以识别的二进制指令制成的语言称为机器语言
计算机发展的初期,软件工程师们只能用机器语言来编程程序,这一阶段在人类的自然语言和计算机编程语言之间存在着巨大的鸿沟.
例如:1011 11111101
缺点:难懂,不易修改,移植性差.
汇编语言
汇编语言将机器语言指令映射为一些可以被人读懂的助记符,如ADD、SUB等.
此时汇编语言与人类自然语言间的鸿沟略微缩小,但仍与人类的思维相差甚远。因为它的抽象层次太低,程序员需要考虑大量的机器细节.
例如:ADD CX,DX
将DX的内容加进CX,不能立即执行,需要汇编,编程目标程序.
高级语言
高级语言屏蔽了机器的细节,提高了语言的抽象层次,程序中可以采用具有有一定涵义的数据命令和容易理解的执行语句。这使的在书写程序时可以联系到程序所描述的具体事物.
例如:if y<3
Z=x+y
类似英语和数学表达式.
高级语言分为解释方式与编译方式.
高级语言发展:
第一代语言是对数学表达式 有很强的运算处理能力.
代表是Fortran和Algol 60.
第二代语言的重点如何有效地表达算法.
代表是Pascal和C.
第三代语言引入抽象数据类型的程序设计语言.
代表是Ada被认为是基于对象的语言.
第四代面向对象程序设计语言.
代表是Smalltalk、Eiffel、C++、Java.
面向对象的语言
出发点:更直接地描述客观世界中存在的事物(对象)以及它们之间的关系.
特点:1.是高级语言.
2.将客观事物看作具有属性和行为的对象.
3.通过抽象找到同一类对象的共同属性和行为形成类.
4.通过类的继承与多态实现代码重用.
优点:
是程序能够比较直接地反问题域的本来面目,软件开发人员能够利用人类认识事物所采用的一般思维方法来进行软件开发.
1.2面向对象的方法
1.2.1面向对象方法的由来
一、程序设计方法的发展历程—————面向过程的程序设计方法
程序的目的:用于数学计算.
主要工作:设计求解问题的过程.
缺点:对于庞大、复杂的程序难以开发和维护.
二、程序设计方法的发展历程—————面向过程的结构化程序设计方法
设计思路:由顶向下、逐步求精,采用模块分解与功能抽象自顶向下、分而治之.
程序结构:按功能划分为若干个基本模块,形成一个树状结构.
各模块间的关系尽可能简单,功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成.
基本模块化实现的具体方法是使用于程序.
优点:有效地讲一个较复杂的程序系统设计任务分解成许多易于控制和处理的子程序,便于开发和维护.
缺点:数据安全性差,难以开发图形界面的应用.
把数据和处理数据的过程分离为相互独立的实体.
当数据结构变化时,所有相关的处理程序都要进行相应的修改.
每一种相对于老问题的新方法都要带来额外的开销.
图形用户的应用,很难用过程来描述和实现,开发和维护都很困难.
三、程序设计方法的发展历程—————面向对象的方法
将数据及数据的操作方法封装在一起,作为一个相互依存,不可分离的整体——对象.
对同类型对象抽象出其共性,形成类.
类通过一个简单的外部接口,与外界发生关系.
对象与对象之间,通过消息进行通讯.
优点:程序模块间的关系更为简单,程序模块的独立性、数据的安全性就有了良好的保障.
通过继承与多态性,可以大大提高程序的可用性,使得软件的开发和维护都更为方便.
1.2.2面向对象的基本概念——对象
一般意义上的对象:是实现世界中一个实际存在的事物
可以是有形的(例如一辆汽车),也可以是无形的(例如一项计划).
面向对象方法中的对象
是系统中用来描述客观事物的一个实体,它是用来构成系统的一个基本单位.对象由一组属性和一组行为构成.
属性:用来描述对象静态特征的数据项.
行为:用来描述对象动态特征的操作序列.
面向对象的基本概念——类
分类——人类通常的思维方法.
分类的依据的原则——抽象.
忽略事物的非本质特征,只注意那些与当前目标相当的本质特征,从而找出事物的共性,把具有共同性质的事物划分为一类,得出一个抽象的概念.
例如:石头,树木,汽车,房屋都是人们在长期的生产和生活实践中抽象出的概念.
面向对象方法中的“类”
1. 具有相同属性和服务的一组对象的集合.
2. 为属于该类的全部对象提供了抽象的描述,包括属性和行为两个主要部分.
3. 类与对象的关系:犹如模具与铸件之间的关系,一个属于某类的对象称为该类的一个实例.
集合——成员 抽象描述——具体事例
面向对象的基本概念—————封装
1. 把对象的属性和服务结合成一个独立的系统单位.
2. 尽可能隐蔽对象的内部细节,对外形成一个边界(或者说一道屏障),只保留有限的对外接口使之与外部发生关系.
面向对象的概念—————继承
1. 继承对于软件复用有着重要的作用,是面向对象技术能够提高软件开发效率的重要作用之一.
2. 定义:特殊类的对象拥有其一般类的全部的属性与服务,称作特殊类对一般类的继承.
3. 例如:将轮船作为一个一般类,客轮便是一个特殊类.
面向对象的基本概念—————多态性
多态性指在一般类中定义的属性或行为,被特殊类继承之后,可以是有不同的数据类型或表现出不同的行为,这使得同一个属性或行为在一般类及其各个特殊类中具有不同的语 义.
例如:数的加法—>实数的加法
—>复数的加法
例:动物叫……..