面向对象程序设计第1章.ppt_第1页
面向对象程序设计第1章.ppt_第2页
面向对象程序设计第1章.ppt_第3页
面向对象程序设计第1章.ppt_第4页
面向对象程序设计第1章.ppt_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

声明 使用本课件至少128M内存,并使用office 2000以上版本或使用自带播放工具pptview。 使用本课件请配合选用人民邮电出版社出 版 的c/c+程序设计教程。 如有任何意见和建议请发电子邮件件到 或 1 七、函数初步七、函数初步 八、八、C/C+C/C+程序上机步骤简介程序上机步骤简介 2 七、函数初步 C/C+程序通过函数运转,函数操作数据和变量。 程序根据源代码出现的先后次序一个一个语句地顺序往 后执行,称为顺序流程结构。 遇到函数调用则流程转入被调用的函数体,然后从被调 函数返回,执行函数调用的下一条语句。 在编辑输入上面的代码时请注意: 新的集成开发环境支 持汉字出现在字符串中,但汉字环境的标点符号与英文环境 的标点符号其编码是不一样的,因此在字符串之外的标点符 号一定要保证在英文环境中输入,否则导致源代码的语法错 误。 3 例 C流文件及函数调用实现顺序流程 #include /void型函数vf的定义,放置于主控函数前 void vf (int x, int y, int s) / void表示函数没有返回值,形参x,y,z是int型的变量 printf (“%d, %dn“, x+y, s); /花括号包含的语句表示函数体 int Add (int ,int ); /Add函数原型说明,表示入口形参为2个int型数据,返回int型数据 void Show() /圆括号中一无所有表示入口无参,void Show()相当于 void Show (void) printf (“输入两个整数t“); 4 int main (void) /圆括号中的void表示main函数此时没有入口参数,返回int型数据 int i, j, sum; /*变量定义语句*/ Show () ; /*提示输入两个整数*/ scanf (“%d, %d“, /*读入整数分别给变量j,k*/ sum = Add (i, j); /*函数调用求和*/ printf (“Sum is %dt“, sum); /*屏幕上显示出和*/ vf (i, j, Add (i, j); /vf(i,j,Add(i,j)等价于vf (i, j, sum); return 1; /*返回信息给操作系统是好的编程风格*/ 5 int Add (int l, int m) /*定义Add函数,函数的返回类型为整型*/ /*入口参数 l,m是整型*/ return l+m ; /*直接返回l,m数的和*/ / 函数调用Add(i,j)根据返回类型确定为int型的表达式 执行程序得到: 输入两个整数 5,6 Sum is 11 11,11 6 在编辑输入上面的代码时请注意,新的集成开发环境支 持汉字出现在字符串中,但汉字环境的标点符号与英文环境 的标点符号其编码是不一样的,因此在字符串之外的标点符 号一定要保证在英文环境中输入,否则导致源代码的语法错 误。 本程序包括用户定义的函数:主函数main()和普通的函 数Add以及vf。另外借用了系统提供的库函数。 在“stdio.h“给出了标准输入函数scanf标准输出函数 printf的原型说明。 Add函数的作用是求两个整型变量的和,return关键字 所引出的语句将整型变量l和m的和返回给主函数main,返 回值是通过函数调用的方式进行的。 7 程序主要包括如下6个步骤: 1. 变量的定义 2. 变量的初始化过程 3. 用户与计算机实时交互 4. 算法的模块化处理函数 5. 函数调用的虚实结合匹配 6. 控制权的带信息返回 8 C/C+程序设计中变量必须明显地定义才能使用,这 一点区别于FORTRAN语言存在变量的隐含说明。 语句“int i, j, sum; “称为变量定义语句,“int“是系统保 留的关键字,“i, j, sum“则是用户引入的变量,变量定义语 句通知编译器为这些变量分配内存空间。 对引入的变量赋予初值,称为变量的初始化。变量初始 化的位置和时刻是灵活的,变量的初始值可以位于本程序段 内、硬盘上或动态交互输入。 函数调用的虚实结合匹配是指函数定义部分的形参与函 数调用时的实参一对一的呼应和结合过程,这一过程涉及到 语言隐含的函数调用机制。 9 C语言中的函数调用机制为变量的数值传递,因此虚实 结合匹配的时候采用了一个中转站这就是变量的地址。 通过中转站间接的完成被调函数对变量的赋值或改变。 输入语句“scanf (“%d, %d“, “在屏幕上读变量i 和j的值,变量i和j之前分别加上了取地址运算符 “的变量 sum前则没有取地址运算符 /l, m是形参, 2. 函数原型说明 int Add (int l, int m); /形参的初始值在虚实结合时得到 3. 函数调用虚实结合匹配 sum = Add (i, j); /i, j是匹配形参l, m的实参 11 函数定义对应函数的某种执行动作,函数定义由标题头 和函数体构成,标题头由返回类型、函数名和形参列表构 成。 例如: int Add (int l, int m)是标题头,return l+m; 是函数体 函数原型表明函数的接口要求,虚实结合匹配在函数调 用点进行,函数调用时将实参i, j 的值赋值给相应形参l, m; 相当于l=i, m=j。 函数的返回类型int与return中的表达式匹配。 一般地,C/C+程序是通过变量和函数来组织的。变量 用于识别内存的数据,函数则对这些数据进行操作和转换处 理。 12 文本编辑器 编译器 源文件1.cpp头文件2.h头文件1.h源文件2.cpp 连接器 库文件.lib 其它目标文件.obj 目标文件1.obj目标文件2.obj 编译错 执行程序.exe 连接错 预处理器 运行错 成功! 修改当前 的源文件错 误 解决各文件 名称唯一性 或遗漏 排除逻辑错 误或越界、 内存冲突等 图 C/C+程序的开发过程 13 一般地,C/C+程序是通过变量和函数来组织的。变 量用于识别内存的数据,函数则对这些数据进行操作和转换 处理。函数根据返回类型是否有值分两类,其定义格式分两 种: 1. 不返回值的函数,称为void型的函数 void vf (类型1 形参1,类型2 形参2,.,类型n 形参n) 语句序列; return; /函数体 例: void vf (int x, int y, int s) printf (“%d, %dn“, x+y, s); 14 2. 返回确定类型值的函数 type f (T1 v1, T2 v2 ,., Tn vn) /*返回类型 函数名(形参列表)*/ 语句序列; return expre; 例: int Add (int l, int m) int z=l + m; return z; type表函数的返回类型,T1,T2,Tn表示形参的类型名, 它们可以是int,double 以及结构名等; f, vf, Add是函数名。 15 “返回类型 函数名(形参列表)“ 称为函数定义的标题 头,标题头圆括号中形参类型后的参数 v1,v2,.,vn为形式 参数,简称形参。 类型名、函数名和形参名遵循标识符的命名约定。将标 题头拷贝过来,末尾添一个分号得到函数原型,其中的形参 v1,v2,vn可省略,格式为(左边为抽象的原型描述,右边 为具体的举例): type f (T1 v1,T2 v2 ,.,Tn vn); int Add (int , int); 函数的标题头和函数体构成函数定义,紧接着右圆括 号”)”的最外层花括号包含的部分为函数体。 函数体由若干语句构成,也可以根本没有语句,此时 称为空函数。 16 函数定义时标题头的形参可以省略而仅有类型,此时表 示函数简单的提供一个接口准备。 也可以根本没有入口参数。 例如: void Show () printf ( “输入两个整数t“); 。 expre是可以转换为 type类型的表达式。type如果是 int,则函数运算的结果返回int型整数。 形参是入口,可以是各种类型的变量,也可以是指向这 些变量的指针。 函数返回的数据为出口,函数可以返回变量,也可以返 回指针,指针是特殊的变量。 17 如果return之后跟随表达式语句,表示将表达式的值转 送给上层函数,此时函数返回确定类型的数据。 如果return 语句之后紧贴一个分号或函数体中无return 语句,这样的函数的返回类型则写为void,表示函数不返回 值而仅执行特定的运算或动作。 函数调用点实际代替形参的变量或表达式称为实际参 数,简称实参。实参是调用段可以求值的表达式。 函数调用由函数名、圆括号对和逗号依次分隔开的若干 实参构成。函数名与圆括号对是必不可少的,在无参调用时 没有实参。 例如: Show(); 18 函数调用就是用具体的实参代替形参的过程,实参x1, x2,xn应与形参列表的形参v1,v2,vn在位置、类型和个 数上一一匹配。 实参是形参的数据来源,是形参的初值。 在函数调用点相当于执行了v1=x1,v2=x2,vn=xn的 初始化赋值运算。 不返回值的函数vf单独调用 : vf (x1, x2, , xn); 例: vf (i, j, sum); vf (i, j, Add ( i, j ); void类型的函数一般仅独立调用,由此构成函数调用 语句。 19 返回值的函数调用是表达式,简称函数调用是表达式。 返回值的函数调用归属于表达式,可以说C/C+语言是一种 构筑于表达式之上的语言。 表达式是求值的基本单位,变量和常数是最简单的表达 式。变量和常数与运算符的组合可构成复杂的表达式。 例如: l+m, sum=Add (i, j), 7+m/2*3 是表达式。 表达式之后加一个分号形成表达式语句,例如: sum=Add (i , j); 是表达式语句。可多次在赋值运算符 = 左边出现的表达式 是左值表达式,否则是右值表达式。变量是左值,常数是右 值。Add (i, j) 是右值。 20 返回值的函数调用f (x1, x2 ,., xn) 携带 “return expre;“返回的值。表达式expre能够出现的地方, f (x1, x2, ., xn)几乎可以等价的出现。 但C语言返回算术表达式或返回指针表达式的函数调用 构成右值。C+增添了返回左值的函数调用,这才是全部等 价的映射。 出现在函数体中函数调用里的函数名视为被调函数,函 数体所隶属的函数名则称为主控函数。如函数名Add出现在 main函数体中,因此Add函数是main函数的被调函数, main函数是Add函数的主控函数。 如果Add函数体中调用其它的函数如add1,则Add函 数是add1函数的主控函数。 21 C+中函数调用可以出现在main函数体之外的初始化 语句,此时函数被系统直接调用。主控函数也称为主调函 数。 函数定义或函数原型引入或说明函数名称。函数定义提 供函数体中的执行代码。C/C+中函数名具有全局作用范 围。 函数体中不能定义函数,仅在函数体外定义函数。每一 个函数定义是独立的,函数的定义次序不影响函数调用。 函数可以调用任何函数包括自身。函数调用索引函数名称。 名称先说明后索引。C+中每个函数调用都必须有一个 函数原型,除非函数定义直接放置于主控函数前。 22 八、C/C+程序上机步骤简介 本节简单介绍用Microsoft Visual C+提供的开发工具 生成console即字符方式的应用程序,如果使用其它厂商的 编译器,细节会略有不同,但编辑、编译、连接和运行的四 个步骤是必不可少的。 可以一气呵成地执行整套动作,也可以选择性地实施其 中一个环节下面简要地说明程序产生的步骤(以微软的 Developer Studio集成应用程序为例): 1. 启动Microsoft Visual C+编译系统 2. 从菜单上选择File-New,或按Ctrl+N打开New对话框 23 3. 选取或激活New对话框的Projects工程项目,以便. 生成. dsw(Developer Studio workspace)文件。 4. 进一步鼠标点击程序类型 Win32 Console Application,在Project name下键入工程 名如:dosApp1,将该工程文件置于一合适的磁盘路径 Location下,如: c:mydocdosApp, 最后单击New对话框的OK按钮。此时弹出一个对话框。 5. 在四个选项中单选 An empty project ,然后点取 Finish按钮,在弹出的信息对话框中,鼠标点击OK按钮。 到此系统生成

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论