云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 面向对象程序设计教案

面向对象程序设计教案

  • 62 次阅读
  • 3 次下载
  • 2025/7/9 11:51:15

其中:

类型标识符 规定了函数的返回值类型。函数的返回值是返回给主调函数的处理结果,由函数体部分的return语句带回。无返回值的函数其类型标识符为void,不必有return语句。

形式参数表,简称形参表的内容如下:

类型l 形参名1,类型2 形参名2,?,类型n 形参名n

2.3.2 调用函数

调用函数必须遵守先定义后调用的原则,否则,需要在调用函数之前在主调函数中声明函数原型。函数原型声明形式为:

<类型标识符> <被调函数名>(含类型说明的形参表);

函数的调用形式:

<函数名>(实参1,实参2,。。。,实参n)

2.3.3 默认参数的函数

在函数定义中通过赋值运算就可指定默认参数值。一旦程序在调用该函数时,如果给出实参,则用实参初始化形参;如果没有给出实参,则C++编译系统自动以预先赋值的默认参数值作为传入数值。

需要特别注意:默认形参值必须按从右向左的顺序定义。在有默认值的形参右面,不能出现无默认值的形参。因为在调用时,实参初始化形参是按从左向右的顺序。

2.3.4 内联函数

内联函数与一般函数不同的是,它不是在调用时发生转移,而是在编译时将函数体嵌入在每一个调用语句处。这样就相对节省了参数传递、系统栈的保护与恢复等的开销。

内联函数的定义形式为:

<类型标识符> <被调函数名>(含类型说明的形参表) {

函数体 }

注意:

① 内联函数体内一般不能有循环语句和switch语句; ② 内联函数的定义必须出现在第一次被调用之前; ③ 对内联函数不能进行异常接口声明。

因此,只有很简单而使用频率很高的函数才被说明为内联函数。内联函数会扩大目标代码,使用时要谨慎。

例2-2 内联函数例题。 #include #include

inline int max(int a,int b)

9

{

if(a>b)

return a; else

return b;

}

void main() {

int a,b,c,d; a=210; b=150; c=20;

d=max(a,b); d=max(d,c);

//编译时两个调用处均被替换为max函数体语句。 cout<<\<

<

程序运行结果为:

The biggest of 210 150 20 is 210

2.3.5 系统函数的使用

系统函数的原型声明已经全部由系统提供了,并且已分类存在于不同的头文件中。程序员需要做的事情,就是用include指令嵌入相应的头文件,然后便可以使用系统函数。

2.4 数组

数组是一种构造数据类型,是具有统一名称和相同类型的一组数据元素的集合,它占用连续内存单元进行存储。组成数组的对象称为该数组的元素,数组元素可存储的数据类型由声明时指定的C++语言数据类型决定。

2.4.1 一维数组

数组在使用前必须先声明。声明一个一维数组的形式如下: <类型标识符> <数组名>[数组长度] 注意:数组长度是个常量表达式。

数组中的每个元素可以当成普通的变量使用。访问一维数组元素的形式如下:

10

<数组名>[下标]

注意:下标的值也是从0开始,不能超过该维的长度减1。

一维数组的初始化有如下两种形式:

形式1:

<类型标识符> <数组名>[数组长度]={第0个元素值,第1个元素值,?

,第n-1个元素值}

形式2:

<类型标识符> <数组名>[ ]={第0个元素值,第1个元素值,...,第n个元素值}

2.4.2 多维数组

多维数组的声明形式如下:

<类型标识符> <数组名>[长度1][长度2]?[长度n] 访问多维数组中的元素:

<数组名>[第1维下标][第2维下标]?[第n维下标] 二维数组的初始化形式如下: 形式1:

<类型标识符> <数组名>[第1维长度][第2维长度]={{第0个第2维数据组},

{第1个第2维数据组},?.,{ 第n-1个第2维数据组}}

其中:n等于第1维长度。

形式2:

<类型标识符> <数组名>[第1维长度][第2维长度]={{第0个元素值,

第1个元素值,?., 第m个元素值}

其中:m小于或等于第1维长度*第2维长度。

2.4.3 数组应用

1.排序

数组元素排序是与数组有关的最重要的算法。所谓数组元素排序,是指将数组中的所有元素的位置重新排列,使得数组元素的值按照递增或递减有序排列。排序有很多方法,常用的有选择排序法和冒泡排序法。

选择排序法是很朴素的排序方法,它的思想很简单:先找到数组中最大的元素,将这个元素放到数组的最前端;然后在剩下的数组元素中再找出最大的元素,把它放在剩下的这些元素的最前端,如此下来,就能使数组中的元素以递减序排列了。

冒泡排序法是交换排序法的一种,其基本思路是:两两比较待排序的序列中的相邻元素,如果不满足顺序要求,就交换这两个元素,这样,第1轮比较完毕后,数组中的最大(或最小)元素就像气泡一样“冒”到数组的最尾部,可以认为由这个元素组成的只有一个元素的子序列是已经排好序的;然后对剩下的元素继续上述过程,直到全部元素有序。

11

例2-3 已知一个一维数组中的元素为:1、7、3、22、9、5,现要求以递增顺序对这个数组中的元素进行排列,结果为1、3、5、7、9、22,下面给出冒泡排序法的程序代码。

#include void main() {

int a[6]={1,7,3,22,9,5}; int i,j,t,flag; for(i=0;i<6;i++) {

flag=0;

for(j=0;j<6-i-1;j++) if(a[j]>a[j+1]) {

t=a[j];

a[j]=a[j+1]; a[j+1]=t; flag=1; }

if(flag==0) break; }

cout<<\排序后的数组为:\\n\ for(i=0;i<6;i++)

cout<<\}

2.查找

数组元素查找是与数组有关的另一种重要算法。常用的查找方法有顺序查找法和二分查找法。顺序查找法的思路很朴素,也容易实现,但效率不高:二分查找法的效率很高,但要求数组在查找前已经排好序。

顺序查找法的思路:按顺序逐个访问数组元素,并将其同要找的值比较,直到找到与要查找的值相同的元素。

二分查找法的思路:首先假设数组已经按增序排好序。取位于数组中间的元素同要查找的值比较,如果待查值等于这个元素的值,则查找结束。如果待查值小于这个元素的值,则要查找的元素肯定在数组的左半边,将数组左半边看成完整的数组,继续使用二分查找法查找。如果待查值大于这个元素的值,则要查找的元素肯定在数组的右半边,将数组右半边看成完整的数组,继续使用二分查找法查找。

二分法查找函数代码: #include

12

搜索更多关于: 面向对象程序设计教案 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

其中: 类型标识符 规定了函数的返回值类型。函数的返回值是返回给主调函数的处理结果,由函数体部分的return语句带回。无返回值的函数其类型标识符为void,不必有return语句。 形式参数表,简称形参表的内容如下: 类型l 形参名1,类型2 形参名2,?,类型n 形参名n 2.3.2 调用函数 调用函数必须遵守先定义后调用的原则,否则,需要在调用函数之前在主调函数中声明函数原型。函数原型声明形式为: (含类型说明的形参表); 函数的调用形式: (实参1,实参2,。。。,实参n) 2.3.3 默认参数的函数 在函数定义中通过赋值运算就可指定默认参数值。一旦程序在调用该函数时,如果给出实参,则用实参

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com