第8数据封装结构体.ppt
《第8数据封装结构体.ppt》由会员分享,可在线阅读,更多相关《第8数据封装结构体.ppt(64页珍藏版)》请在三一文库上搜索。
1、第8章 数据封装结构体,结构体的概述 结构体类型的定义 结构体类型的变量 结构体数组 结构体作为函数的参数 链表,结构体的概念,打印学生成绩单 ,格式如下:,如何在程序中表示这组学生信息?,可选方案,用二维的数组来表示 该方案不可行,因为这些信息有不同的类型 每一列用一个一维数组来表示,这种方法称为并联数组。 要保证每位学生信息的正确性很难,为什么要使用记录,当我们考虑怎么逻辑地组织数据时,应该将一个人的所有信息项放在一起,即保持相关性。,我 们 希 望 的 结 构,记录 在C+中称为结构体,结构体类型作用,结构体类型允许程序员把一些分量聚合成一个整体,用一个变量表示。 一个结构体的各个分量都
2、有名字,把这些分量称为成员(member)。 由于结构体的成员可以是各种类型的,程序员能创建适合于问题的数据聚合。,结构体的使用,定义一个新的结构体类型 定义新类型的变量 访问结构体变量,第8章 数据封装结构体,结构体的概述 结构体类型的定义 结构体类型的变量 结构体数组 结构体作为函数的参数 链表,结构体类型的定义,定义结构体类型中包括哪些分量 格式: struct 结构体类型名 字段声明; ;,如: struct studentT char no10; char name10; int chinese; int math; int english; ;,注意,字段名可与程序中的变量名相同
3、在不同的结构体中可以有相同的字段名 结构体成员的类型可以是任意类型,当然也可以是结构体类型,struct dateT int month; int day; int year; ; struct studentT . dateT birthday; ;,第8章 数据封装结构体,结构体的概述 结构体类型的定义 结构体类型的变量 结构体数组 结构体作为函数的参数 链表,结构体类型的变量,结构体变量的定义 结构体类型的引用 指向结构体的指针 动态分配结构体的空间,结构体变量的定义,结构体变量的定义和普通的变量定义一样。如定义了结构体类型studentT,就可以定义结构体变量: studentT st
4、udent1; 一旦定义了一个结构体类型的变量,系统在分配内存时就会分配一块连续的空间,依次存放它的每一个分量。这块空间总的名字就是结构体变量的名字。内部还有各自的名字,结构体变量的初始化,studentT student1= “00001”,“张三” ,87,90,77;,定义结构体类型的同时定义变量,struct 结构体类型名 字段声明; 结构体变量;,struct 字段声明; 结构体变量;,区别:前者可以继续用结构体类型名定义变量,结构体类型的变量,结构体变量的定义 结构体类型的引用 指向结构体的指针 动态分配结构体的空间,结构体变量的访问,成员的表示:,结构变量名.成员名,如: stu
5、dent1.name,如结构中还有结构,则一级一级用”.”分开 ,如,如:student1.birthday.year,对结构体类型变量的引用一般为引用他的成员,结构变量的赋值,结构体是一个统称。每个结构体类型在使用前都要先定义自己有哪些分量。系统事先无法知道如何处理他。 因此,结构体变量的赋值通常是通过对它的每一个成员的赋值而实现。如:输入student1的内容可用: cin student1.no student1.name student1.chinese student1.math student1.english student1.birthday.year student1.bir
6、thday.month student1.birthday.day; 同类型的结构变量之间可以相互赋值,如 Student1 = student2; 将student2的成员对应赋给student1的成员,结构变量的输出,结构体变量的输出通常是通过输出它的每一个成员而实现。如:输出student1的内容可用: cout student1.no student1.name student1.chinese student1.math student1.english student1.birthday.year student1.birthday.month student1.birthday.
7、day;,结构体类型的变量,结构体变量的定义 结构体类型的引用 指向结构体的指针 动态分配结构体的空间,指向记录的指针,直接定义指针变量 studentT *sp; 也可以在定义结构体类型的同时定义指向结构体的指针,struct 结构体类型名 字段声明; *结构体指针;,通过指针操作记录,给结构体指针赋值,如: sp = 结构体指针的引用:,(*指针).成员 如:(*sp).name,指针-成员 如:sp-name,student1.成员, -是所有运算符中优先级最高的,通常程序员习惯使用第二种方法,结构体类型的变量,结构体变量的定义 结构体类型的引用 指向结构体的指针 动态分配结构体的空间,
8、动态分配结构体的空间,指向结构体指针的另一种用法是存储动态申请到的内存的首地址。用法和申请普通的动态变量一样。如: studentT *sp; sp = new studentT;,第8章 数据封装结构体,结构体的概述 结构体类型的定义 结构体类型的变量 结构体数组 结构体作为函数的参数 链表,结构体数组,用于描述个体的集合 定义格式: studentT studentArraySIZE;,结构体数组的引用,引用数组的某一成员的成员 studentArray3.name 数组成员之间相互赋值 studentArray4 = studentArray2 结构数组的初始化 studentT stu
9、dentArray5 = “00001”, 张三“, 80, 90,98 , , , ;,统计候选人得票。设有三个候选人,每次输入一个 得票的候选人名字,要求最后输出各人得票结果。,struct personT int id; int count; leader3= 0, 0, 1, 0, 2, 0;,int main() int i, j, inputID; for (i=1; i inputID; if (inputID 2) cout “废票”;continue; leaderinputID.count += 1; cout endl; for (i=0; i3; +i) cout le
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 封装 结构
链接地址:https://www.31doc.com/p-2552552.html