ImageVerifierCode 换一换
格式:DOC , 页数:118 ,大小:670KB ,
资源ID:29867812      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/29867812.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(【精品】《C++程序设计》教案.doc)为本站会员(zf)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

【精品】《C++程序设计》教案.doc

1、C+面向对象程序设计教案C+程序设计教案说明:本教案在编写过程中参考了教学大纲中所列的参考文献,在此特向这些文献的作者表示感谢。在教案的撰写过程中,得到了信息工程学院领导和教师的支持与帮助,在此也向他们表示感谢。第一章 C+语言概述本章要点: 1、C+源程序的结构和开发过程 2、C+语言对C语言在非面向对象方面的增强1.1 C+语言的起源及特点1.1.1 从C到C+ C语言最初是美国贝尔实验室的戴尼斯M利奇(Dennis.M.Ritchie)在B语言的基础上开发出来的,并于1972年在PDP-11计算机上实现了最初的C语言。C最初用作UNIX操作系统的描述语言,但由于它运算符和数据结构丰富,程

2、序执行效率高,语言简单灵活,可直接访问计算机的物理地址,有大量的库代码和较多的开发环境,具有良好的可读性和可移植性,支持结构化程序设计,所以很快广为流行,成为应用最广泛的程序设计语言之一。 然而,C语言仍存在一些局限: 1.C语言的类型检查机制相对较弱,使得程序中的一些错误不能在编译阶段由编译器检查出来。 2.C语言本身几乎没有支持代码重用的语言结构。 3.C语言不适合开发大型程序,当规模达到一定程度时,程序员就很难控制程序的复杂性。 4.C语言不支持面向对象的程序设计。 为了克服C语言的上述局限,1980年美国贝尔实验室的对C语言进行了扩充并命名为C+。1 1.2 C+的特点C+的特点主要表

3、现在两方面:一是全面兼容C;二是支持面向对象的方法。1.C+完全包含C,是一个更好的C。保持了C的简洁、高效和直接访问计算机的物理地址等优点,并对C的类型系统进行了改革和扩充,比C更可靠。2.它与C完全兼容,使得许多C代码不经修改就可为C+使用,用C编写的众多库函数和实用软件可以直接用在C+中。 3.用C+编写的程序可读性更好,代码结构更合理,可直接在程序中映射问题空间的结构。 4.生成的代码的质量高,软件的可重用性、可扩充性、可维护性和可靠性等方面有更大提高,使得大中型程序的开发变得更容易。 5.支持面向对象的机制,可方便地构造出模拟现实问题的实体和操作。1.2 C+源程序的结构1.2.1

4、C+程序的一般格式 通过下面的实例简单说明C+程序的一般格式。 例1.1 计算两个整数的和。 / sum.cpp /本程序的文件名 # include /C+的预编译命令,其中的iostream.h是C+/定义的一个头文件,设置C+风格的I/O环境 int add(int a, int b) /函数原型的声明 int main() /主函数 int x,y,sum; /定义三个整型变量 cout”Enter two number:”x; /从键盘输入变量x的值 ciny; /从键盘输入变量y的值 sum=add(x,y); /调用函数add计算x+y的值并将其/赋给sum cout”The s

5、um is:”sum”n”; /输出sum的值 return 0 int add(int a, int b) /定义add函数,函数值为整型 int c; /定义一个整型变量 c=a+b; /计算两个数的和 return c; /将C的值返回,通过add带回调用处 1.2.2 C+程序的结构特点 通过以上例子可以看出,C+程序的结构有以下特点: 1.C+程序通常由包括main()在内的一组函数组成,函数是构成C+程序的基本单位。其中名为main的函数称为主函数,可放在程序的前部、中部和后部,不论放在程序的什么部位,它总是第一个被执行的函数。因此,一个可运行的C+程序必须有主函数。其他函数都是被

6、调用函数,它们可以是系统提供的库函数,也可以是用户自己编写的函数。用户自己编写的函数在使用前应给予“声明”。可以说,C+是函数式的语言,程序的全部操作都是由函数完成的。 2.C+的函数有函数的说明部分和函数体两部分组成。 函数说明部分 包括函数名、函数类型、函数参数(形式参数)及其类型。如例1.1中add()函数的说明部分为: int add (int a, int b) 函数类型 函数名 形参类型 形式参数 形参类型 形式参数 函数类型是函数返回值的类型,如int、float等。无返回值的函数是void类型。main()函数是由操作系统调用的函数,其返回值是void型或int型。当其返回值为

7、int型时,可使用return语句从main()中返回一个值。例1.1中的返回值为零,意味着main()已被成功执行。函数参数可有可无,但函数后面的圆括号不能省略。 函数体 函数说明部分下面用花括号括起来的部分,它一般包括如下内容: 变量定义:如例1.1 main()中的int x,y,sum等。 执行部分:由若干语句组成,每条语句以分号结束。如例1.1 add函数中的”c=a+b;” 等。 在某些情况下,函数可以没有变量定义部分,甚至即可没有变量定义也可没有执行部分,此时,称该函数为空函数,它不执行任何操作,但合法。如: exem() 3.C+中的每条语句和变量定义必须以分号结束,即使是程序

8、中的最后一条语句,也必须以分号结束,分号是C+的组成部分之一。正因为如此,可用任何格式书写C+程序,一行内可以写多条语句,一条语句也可分写在多行上。 应注意的问题: C源程序的扩展名是.c,而C+源程序的扩展名是.cpp。 常用的C+版本如Turbo C+、Borland C+都带有C和C+两种编译器,当源程序的扩展名是.c时,启动C编译器,当源程序的扩展名是.cpp时,启动C+编译器。1.2.3 C+程序的开发过程 1.程序开发工具 编制计算机程序使用的工具称为应用程序开发工具,也称为开发环境。一个完整的程序开发工具至少应具备如下功能: 源文件编辑功能 接受键盘输入,显示输入内容,允许用户对

9、输入内容进行修改、编辑。 程序编译功能 必须有一个能把用户使用的高级语言程序变成机器语言程序的编译程序(也称为编译器或转换程序),该程序在编译的过程中具有发现程序语法错误的能力,该能力是评价编译程序的一个重要指标。 程序文件的连接功能 计算机程序由多个文件组成,它们可能是程序开发人员自己开发的,也可能是系统提供的,只有把它们按照程序的要求连接起来才能最终成为可执行文件。因此,开发工具必须具有程序文件的连接功能。 程序运行调试功能 应用程序中可能出现错误,开发工具必须具有程序的运行调试功能,并能及时反映调试信息,以便尽快修正错误。 程序文件管理功能 计算机程序由多个文件组成,开发工具应具有使用方

10、便的浏览、创建、删除、改名等管理功能。 2.C+程序的开发过程 选择开发工具 C+开发工具很多,如Turbo C+、Borland C+、Visual C+6.0等。这里选用较为广泛的Visual C+6.0(以下简称VC6.0)。 用VC6.0建立Workspace 进入VC6.0后,选择File菜单的New命令,在New对话框中选择Projects选项卡,在该卡上选择Win32ConsoleApplication(控制台程序)工程选项,在Project name框中添入工程名称,最后按OK按钮。在以后的话框中选用默认设置,直到建立了工作空间为止。 建立并编辑程序使用File菜单的New命令

11、,在New对话框中选择File选项卡,在该卡上选择SourceFile选项,在File框中添入文件名称,最后按OK按钮。此时,建立了一个扩展名为.cpp的空文件,可在此空文件上书写和编辑C+源文件。 编译源文件用工具栏中的编辑按钮编辑源文件。 连接用工具栏中的连接按钮连接文件。 运行用工具栏中的运行按钮运行文件。1.3 C+语言对C语言在非面向对象方面的增强 C+不但继承了传统C语言的精华,增加了面向对象的特征,还在非面向对象方面对C语言进行了增强。131 注释行 传统C语言提供的是块注释方式,其格式如下: /* explanation sentence */ C+中,除保留了C中的块注释方式

12、外,又增加了更为方便的单行注释方式,其形式如下: / explanation sentence1.3.2 灵活的局部变量说明 传统C语言中,局部变量说明必须放在可执行代码的前面,数据说明语句和可执行语句的混合将引发编译错误。而C+中,允许在程序代码的任何地方对局部变量进行说明,所说明变量的作用域是从该变量说明的地方开始到该变量所在的最小分程序的末尾。如 for(int i=5; i可以处理从键盘上进行的标准输入,其使用格式如下: cin存放输入数据的变量名; 2.cout 是标准输出流,在程序中cout代表标准输出设备屏幕。使用cout并结合运算符可以处理标准输出即屏幕显示,其使用格式如下:

13、cout 待输出的变量名或表达式; 3.运算符 运算符在C+中仍然保持C中“左移”和“右移”的功能,但当用于输入/输出时,通过重载扩充了他们的功能。重载后的运算符表示将从键盘上读取的数据传送给右面指定的变量,如:cinx;此时,从键盘输入的数值会自动转换为变量x的类型并存入x内。但应注意,变量x必须是基本数据类型,而不能是void类型。运算符允许连续输入一连串数据,例如:cinx y z;此时,它按书写顺序从键盘上提取所要求的数据并存入相应的变量中。应注意的是,连续输入的多个数据两两之间要用空白符(空格、会车或Tab键)隔开。 重载后的运算符表示将右面指定的变量的值显示在屏幕上。例如: cou

14、ta;仍然要求变量a必须是基本数据类型,而不能是void类型。运算符允许连续输出一连串数据,也可以输出表达式的值。例如: cout x+ya和cout和cout也可用指定格式精心进行输入/输出。 C中常用n来实现换行,C+仍可使用它。同时,C+又增加了一个换行控制符endl,其作用与n一样。如下面的两条语句是等价的: cout ”x+y=”x+yn;cout ”x+y=”x+yendl; 例1.2 使用cin 或cout进行I/O操作的例。 # include void main() int age; char name20; cout“你好,请输入你的姓名和年龄:” name age; co

15、ut“你的姓名和年龄是:” name “ ” age endl; return 0; 1.3.4 结构、联合和枚举名作为类型名 C+中,结构名、联合名、枚举名都可直接作为类型名,再定义变量时,不用再在结构名、联合名、枚举名前面冠以struct、union、enum。例如,定义结构和枚举如下: struct string char *ptr; int length; ; enum bool FALSE,TRUE; 当定义变量时,C中必须写成: struct string str; enum bool done; 而在C+中,结构名string、枚举名bool都被直接作为类型名用,可以直接声明为:

16、 string str; bool done;1.3.5 无名联合 无名联合是C+提供的一种特殊联合,用来说明一组无标记名的、共享统一内存地址的数据项。如: union int i; float f; ;他声明了变量i和f具有相同的存储地址。无名联合通过使用其中数据项名直接存取,如可直接使用上面无名联合的变量i和f: i=20; f=15.0;1.3.6 强制类型转换 C中如果要把整型数据转换成浮点型数据,必须用下面的格式: int i=10; float f=(float)i; C+保留了这种强制类型转换方式,还提供了另一种方法,即把类型名作为函数名使用,这样就使类型的转换变成了函数的调用,

17、不但方便,而且增强了可读性。使用这种方法,上面的语句就可改写为: int i=10; float f=float(i);1.3.7 const修饰符 C+除可用C中习惯使用的#define来定义常量外,还可使用const修饰符将一个标识符定以为常量,使该标识符的值在程序运行过程中不能以任何形式对其进行修改。例如: const int i=10;这时,标识符i被const声明为常量,它有类型,有地址,可用指针指向它,但不能修改它。 const可以和指针一起使用,有三种情况: 修饰指针所指向的变量,将该变量定义为常量。此时,指针变量的值可以改变,而指针所指向的变量的值不能改变。例如语句 const

18、 char *str=&c;声明了一个指针变量str,它指向变量c,但由于用const进行了修饰,所以,变量c变成了常量,其值不允许修改。而指针变量str的值可以修改。 将指针本身修饰为常指针,指针所指向的变量不受const修饰的影响,仍为变量。此时,指针变量的值不能改变,称为常指针,而指针所指向的变量的值可以改变。例如语句 char *const str=&c;声明了一个指针变量str,它指向变量c,但由于指针变量str用const进行了修饰,所以,变成了常量,其值不允许修改,而变量c的值可以修改。 将指针本身修饰为常指针,指针所指向的变量修饰为常量。此时,指针变量的值不能改变,被指针所指向

19、的变量的值也不能改变。例如语句 const char *const str=&c;声明的指针变量str和指针所指向的变量c都被定义成常量,它们的值都不允许改变。 几点说明: 如果用const定义的是整型常量,则关键字int可以省略。 常量一旦被建立,在程序的任何地方都不能被修改。 与#define定义的常量不同,const定义的常量可以有自己的数据类型,从而使C+的编译器可进行更加严格的类型检查,具有良好的编译检测性。 const的作用与#define相似,但使用#define可能会带来程序的不安全性,如下面的程序:例1.3 使用#define可能会带来程序的不安全性的例#includemai

20、n()int a=1;#define T1 a+a;#define T2 T1-T1;cout”T2 is:”T2endl;return 0;初看程序,输出的结果是:T2 is: 0实际的输出结果是:T2 is: 2究其原因,是编译系统将语句:cout”T2 is:”T2endl;解释为:cout”T2 is:”a+a-a+aendl;如果用const取代上例中的两个#define语句,将不会引起这个错误。请看下例:例1.4 使用const会消除#define不安全性的例。#includemain()int a=1;const T1=a+a;const T2=T1-T1;cout”T2 is:

21、”T2endl;return 0; 函数参数也可用const说明为常量,以保证实参在函数内部不被修改。 ANSI C标准也采用了const,但两者是有区别的,如下面的程序段在C+中是合法的,而在ANSI C中是不合法的:const int size=10;int chsize;另外,在ANSI C中const定义的常量是全局常量,而C+中const定义的常量要根据定义的位置来决定是局部的还是全局的。1.3.8 函数原型 C语言建议程序的编制者为程序中的每个函数建立原型,而C+则要求必须为每个函数建立原型,说明函数的返回值类型、函数名称、参数类型及个数。主要目的是在编译时检查调用函数是否与预先说

22、明的原型一致,以维护程序的正确性。函数原型的一般格式为: 返回类型 函数名(参数表);参数表包括所用的参数和他们的类型,参数之间用逗号分开。 例1.5 函数原型声明的例。 #include void print(char *s); void main() print(“hello, lanzhou!”); void print(char *s) couts; 使用函数原型时应注意以下问题: 函数原型是一条语句,必须以分号结束。 函数原型的参数表中可以不包括参数的名字而只包括它们的类型,如语句 long aree(int,char); 是合法的。但函数定义中函数说明部分的参数必须给出名字,并且不

23、能以分号结尾。 在程序中,函数原型要求出现在函数调用之前,但当一个函数的定义在前而调用在后时,可以不单独给出它的原型,此时的函数定义的说明部分就起到了函数原型的作用。 主函数不必说明原型,它被认为是一个自动说明原型的函数,且不存在被调用的问题。 C+的参数说明必须放在函数名后的括号内,不能放在函数说明部分与函数体之间,如下面的程序在编译时将会出错: #include void print(int,char); void main() print(“hello,china!”); void print(ch) char ch; /错误的参数说明方式 coutchendl; 原型中没有说明返回类型

24、的函数(包括主函数main),C+默认它的返回类型为int,因此,下面的圆形说明在C+中是等价的: cat(int,char); /默认返回整型数 int cat(int,char); /指明返回整型数 如果一个函数没有返回值,则必须在函数原型中注明返回类型为void。当主函数没有返回值时,可以在main()前注明void,这样主函数中就不必有“return 0”之类的返回语句了。 如果原型中没有注明参数,C+假定给函数的参数表为空(void),因此,下面的原型说明在C+中是完全一样的: f(); /表示该函数不带任何参数 f(void); /表示该函数不带任何参数但在C中,上述两个原型说明是

25、不同的: f(); /表示该函数的参数没有给出,它可能有多个参数 f(void); /表示该函数不带任何参数1.3.9 内联函数 C+提供了内联函数,在程序中调用内联函数时,编译器就用该函数的函数体中的代码替代函数调用表达式,这样,不但减少了函数调用时保留现场所用的开销,而且提高了程序的运行效率,同时消除了使用宏定义#define带来的不安全性(产生这个问题的原因是,C中宏定义#define的代码是被直接展开的,而C+的内联函数的代码是被替代的)。 要声明一个函数为内联函数,只要在函数说明的前面冠以关键字”inline”就行了。下面的程序中就定义了一个内联函数: #includeinline f

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1