C++程序设计 教学课件 ppt 作者 连卫民 何樱 韩彦锋 等 第5章 复杂数据的程序设计

上传人:E**** 文档编号:89389720 上传时间:2019-05-24 格式:PPT 页数:49 大小:2.47MB
返回 下载 相关 举报
C++程序设计  教学课件 ppt 作者 连卫民 何樱 韩彦锋 等 第5章  复杂数据的程序设计_第1页
第1页 / 共49页
C++程序设计  教学课件 ppt 作者 连卫民 何樱 韩彦锋 等 第5章  复杂数据的程序设计_第2页
第2页 / 共49页
C++程序设计  教学课件 ppt 作者 连卫民 何樱 韩彦锋 等 第5章  复杂数据的程序设计_第3页
第3页 / 共49页
C++程序设计  教学课件 ppt 作者 连卫民 何樱 韩彦锋 等 第5章  复杂数据的程序设计_第4页
第4页 / 共49页
C++程序设计  教学课件 ppt 作者 连卫民 何樱 韩彦锋 等 第5章  复杂数据的程序设计_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《C++程序设计 教学课件 ppt 作者 连卫民 何樱 韩彦锋 等 第5章 复杂数据的程序设计》由会员分享,可在线阅读,更多相关《C++程序设计 教学课件 ppt 作者 连卫民 何樱 韩彦锋 等 第5章 复杂数据的程序设计(49页珍藏版)》请在金锄头文库上搜索。

1、C+程序设计,连卫民 主编,中国铁道出版社 2008.9,第5章 复杂数据的程序设计,本章主要内容: 5.1 复杂数据概述 5.2 数组(重点) 5.3 结构体(重点) 5.4 联合体(重点) 5.5 综合应用实例 5.6 上机实训 本章教学目标: 了解复杂数据的形式和表示方法 熟悉数组、结构体和联合体数据类型的定义与特点 掌握对复杂数据的编程方法,5.1 复杂数据概述,使用构造类型的数据,可以解决更为复杂的数据处理问题。 5.1.1 引入复杂数据的目的 基本的数据类型只能处理由一个数据项组成的数据,由多个数据项组成的数据可以永复杂数据表示。 复杂数据:数组、结构体、联合体等,这些统称为构造的

2、数据类型,也称为用户自定义类型。 5.1.2 构造数据类型的分类 数组:主要表示类型相同的一组数。 结构体:主要表示类型不同的一组数。 联合体:主要存储类型不同的一组数,以节省存储空间。 枚举:主要表示其值可以限定的数据。,第5章 复杂数据的程序设计,5.2 数组,5.2.1 数组概述 1.数组的概念 数组是类型相同的一组数据,用一个统一的名字表示这组数据,用序号或下标来区分各个数据。 数组中的成员称为数组元素,数组元素的特点: 类型相同。 每个元素在数组中有一个序号(也称下标)表示该元素在数组中的位置,在程序中正是通过下标来识别数组中的每个元素。 数组元素称为下标变量,同其他基本变量一样,可

3、以被赋值或在表达式中使用。,第5章 复杂数据的程序设计,5.2 数组,2.与数组有关的概念 数组名,数组是用数组名来表示的。数组名的命名规则与变量名相同,数组名就代表整个数组的首地址。 数组类型,即数组中各个数组元素的类型。 数组维数,即标识数组元素所需的下标个数。根据数组下标的多少,数组可分为一维数组、二维数组和多维数组。 数组长度,又称为数组的大小,即数组中包含的数组元素的个数。,第5章 复杂数据的程序设计,5.2 数组,5.2.2 一维数组 1.定义方式 格式:类型名 数组名常量表达式; 例如:int a10; 说明: 类型名确定了所有数组元素的类型,可以是除了void以外的任意数据类型

4、。 数组名后面的常量表达式必须用方括号括起来,不能使用其他符号。 常量表达式表示数组元素的个数,即数组长度。C+规定数组元素的下标从0开始,下标最大值为数组长度减1。,第5章 复杂数据的程序设计,5.2 数组,5.2.2 一维数组 2.数组元素的引用 对数组的引用主要是通过引用数组元素实现的。 引用格式:数组名下标 例如:a0 a1 a2 等; 说明: 数组元素由数组名和下标来表示。下标表示该元素在数组中的位置,它可以是整型常量、整型变量或整型表达式。 数组元素也是一种变量,称为下标变量,可以像一个独立的简单变量来使用。 要注意数组定义和引用时的区别。例如:int a5; 与 a4=10;,第

5、5章 复杂数据的程序设计,5.2 数组,5.2.2 一维数组 3.一维数组的初始化 数组的初始化是指在定义数组的同时对数组元素赋初值。 格式:类型名 数组名元素个数=初值1,初值2,初值3,; 例如:int a10=0,1,2,3,4,5,6,7,8,9; 或: int a =0,1,2,3,4,5,6,7,8,9; 说明: 当“ ”中提供的初值个数多于数组元素的个数时,系统编译时将会出错。,第5章 复杂数据的程序设计,5.2 数组,5.2.2 一维数组 4.用赋值语句或输入语句赋值 在程序执行过程中用赋值语句或输入语句给数组元素赋值的方法叫做动态赋值。 例如: int a5; a0=a1=6

6、; / 用赋值语句赋值 cina2a3a4; / 用输入语句赋值 说明: 如果给数组元素赋的值相同或有规律,或由键盘任意输入多个元素值,则用循环控制较方便。 【例5-1】定义一维数组a10,使a0a9的值为09,然后按逆序输出。 【例5-2】编写一个程序将10个整数由小到大排序。,第5章 复杂数据的程序设计,5.2 数组,5.2.3 二维数组 1.定义 格式:类型名 数组名行数列数; 例如:int a34; 说明: 二维数组元素的每一维下标均从0开始。第一维下标又称为行下标,第二维下标又称为列下标。 二维数组所包含的元素个数行数列数。如前面定义的二维数组 a共有12个元素。 行数和列数要分别放

7、在两个中括号中,注意不要写成:int a3,4,b5,5;asdf,第5章 复杂数据的程序设计,5.2 数组,5.2.3 二维数组 2.数组元素的引用 对数组的引用主要是通过引用数组元素实现的。 引用格式:数组名行下标列下标 例如:a23表示第2行第3列的元素。 说明: 下标可以是整型表达式,例如a3-22*2-1(等价于a13)。 数组元素可以出现在表达式中,也可以被赋值。例如:a23=a12/2;。 在使用数组元素时,注意下标值应在已定义的数组大小的范围内。,第5章 复杂数据的程序设计,5.2 数组,5.2.3 二维数组 3.二维数组的存储形式 二维数组理解为一种特殊的一维数组:它的数组元

8、素又是一个一维数组。 在内存中,二维数组元素的存放顺序是:按行存放,即首先顺序存放第一行的元素,再顺序存放第二行的元素,依此类推。如图5-3所示。,第5章 复杂数据的程序设计,5.2 数组,5.2.3 二维数组 4.二维数组的初始化 定义二维数组的同时给数组元素赋值,称为二维数组初始化。 例如: int a34=1,2,3,4,5,6,7,8,9,10,11,12;/ 按行初始化 int a34=1,2,3,4,5,6,7,8,9,10,11,12; / 依次对数组元素初始化 int a34=1,5,6,9; / 按行给部分元素赋初值,其余元素的值为0 说明: 第一维长度可以省略,但第二维长度

9、不能省略。 在给全部元素赋初值时,可以省略第一维长度,但第二维长度(即列数)已知。,第5章 复杂数据的程序设计,5.2 数组,5.2.2 二维数组 5.用赋值语句或输入语句赋值 例如: int a34; a00=1; a01=2; cina10a11; 说明: 也可以利用双重循环给二维数组的元素赋值,这种方法适用于给所有元素赋值或赋值是有规律的情况。 【例5-3】二维数组元素的输出。 【例5-4】在二维数组a中选出各行最大的元素组成一个一维数组b。,第5章 复杂数据的程序设计,5.2 数组,5.2.4 字符数组 1.定义 字符数组中每一个元素存放一个字符,字符数组主要用来保存字符串。 格式:c

10、har 数组名数组长度; 例如:char b10; 表示数组b有10个元素,每个元素是一个字符型数据,可存放一个字符常量(包括转义字符)。,第5章 复杂数据的程序设计,5.2 数组,5.2.4 字符数组 2.字符数组的初始化 字符数组的初始化与一般数组的初始化相同,即定义字符数组的同时给数组元素赋值。 例如: char b10=T,h,a,n,k,y,o,u,!; char c = “Thank you!“; char d10= “Turbo C“;,第5章 复杂数据的程序设计,第5章 复杂数据的程序设计,5.2 数组,5.2.4 字符数组 3.字符数组的赋值与引用 同其他类型的数组一样,只能

11、对字符数组的元素赋值,而不能用赋值语句对整个数组赋值。 引用字符数组是指引用数组元素, 引用格式:字符数组名下标 4.字符串和字符串结束标志 使用字符数组存储字符串时,系统会自动在字符串尾部加上字符串结束标志(即0)。 在定义字符数组来存储字符串时,应保证数组长度始终大于字符串的实际长度。,第5章 复杂数据的程序设计,5.2 数组,5.2.4 字符数组 5.字符数组的输入与输出 在C+中,可以使用cin和cout、scanf( )和printf( )、getchar( )和putchar( )以数组元素为对象进行输入和输出。 【例5-5】从键盘输入一个字符串,并在屏幕上输出。 分析:该字符串是

12、一个一个字符进行处理的,可以使用标准输入输出函数scanf()和printf()实现,也可以使用getchar()和putchar()实现。 思考: 字符的输入和输出用scanf()、printf()或getchar()、putchar()函数,如何实现?,第5章 复杂数据的程序设计,5.2 数组,5.2.4 字符数组 6.字符串处理函数 由于字符串应用广泛,C+提供了一些函数使用户能够更方便地对字符串进行处理,这些函数集中包含在头文件string.h中。 (1)字符串连接函数strcat() (2)字符串复制函数strcpy() (3)字符串比较函数strcmp() (4)字符串长度函数st

13、rlen(),注意: - 1.函数的功能 2.函数的格式 3.函数值的类型,第5章 复杂数据的程序设计,5.2 数组,(1)字符串连接函数strcat() 格式:char *strcat(char,const char) 作用:是将第二个字符数组中的字符串连接到第一个字符数组字符串的后面。 说明: 函数值即为第一个字符数组的地址。 第一个数组的长度要定义的足够大,以保证满足连接后的字符串长度需要。 例如: char stra15=“Good “; char strb=“morning!“; coutstrcat(stra,strb); 输出结果为: Good morning!,第5章 复杂数据

14、的程序设计,5.2 数组,(2)字符串字符串复制函数strcpy() 格式:char *strcpy(char,const char) 作用:是将第二个字符数组中的字符串复制到第一个字符数组中,如果第一个字符数组中原本包含字符,则相应字符被覆盖。 说明: 该函数的返回值是字符指针,该指针指向复制后的字符串。 使用本函数时,字符数组1的长度必须大于或等于字符数组2的长度。 只能使用函数strcpy()将一个字符串赋值给另一字符数组,而不能用赋值语句将一个字符串常量或字符数组直接赋给一个字符数组。 例如: char stra10=“hello“,strb10=“ok“; strcpy(stra,s

15、trb); coutstra; 输出结果为: ok,第5章 复杂数据的程序设计,5.2 数组,(3)字符串字符串比较函数strcmp() 格式:int strcmp(const char,const char) 作用:是比较两个字符串,函数值为比较的结果。具体分为三种情况:如果字符串1=字符串2,函数值为0;如果字符串1字符串2,函数值为一正整数;如果字符串10) coutstrb; else if(x=0) coutstra=strb; else coutstrastrb; coutnstrcmp(“banana”,“apple”); / 判断两个字符串的大小关系 输出结果为: hellook 1,第5章 复杂数据的程序设计,5.2 数组,(4)字符串长度函数strlen() 格式:int strlen(const char) 作用:是测试字符串的长度,函数值为字符串的实际长度。 说明: 字串长度不包括0在内。 例如: char str10=“Hello“; coutstrlen(str); 输出结果为: 5,第5章 复杂数据的程序设计,5.2 数组,5.2.5 数组应用实例 1.一维数组的应用实例 一维数组的编程主要是通过控制下标来实现对数组元素

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号