《程序设计》cs.sjtu2005.9 第9章 数据封装一结构体 结构体的概述 结构体类型的定义 结构体类型的变量 结构体数组 结构体作为函数的参数 必链表 程序设计-1
《程序设计》 cs.sjtu 2005.9 程序设计 - 1 v 结构体的概述 v 结构体类型的定义 v 结构体类型的变量 v 结构体数组 v 结构体作为函数的参数 v 链表
《程序设计》cs.sjtu2005.9 结构体的概念 打印学生成绩单,格式如下: 学号 姓名 语文成绩 数学成绩 英语成绩 00001 张三 96 94 88 00003 李四 89 70 76 00004 王五 90 87 78 如何在程序中表示学生信息? 程序设计-2
《程序设计》 cs.sjtu 2005.9 程序设计 - 2 v 打印学生成绩单 ,格式如下: 学号 姓名 语文成绩 数学成绩 英语成绩. 00001 张三 96 94 88 00003 李四 89 70 76 00004 王五 90 87 78 如何在程序中表示学生信息?
《程序设计》cs.sjtu2005.9 可选方案 用二维的数组来信息 >该方案不可行,因为这些信息有不同的类 型 每一列用一个一维数组来表示,这种方 法称为并联数组。 >要保证每位学生信息的正确性很难 程序设计-3
《程序设计》 cs.sjtu 2005.9 程序设计 - 3 v 用二维的数组来信息 Ø 该方案不可行,因为这些信息有不同的类 型 v 每一列用一个一维数组来表示,这种方 法称为并联数组。 Ø 要保证每位学生信息的正确性很难
《程序设计》cs.sjtu2005.9 为什么要使用记录 8 当我们考虑怎么逻辑地组织数据时,应该将 个人的所有信息项放在一起,即保持相关性。 学号 姓名 语文成绩 数学成绩 英语成绩 00001 张三 96 94 88 00003 李四 89 70 76 00004 王五 90 87 78 程序设计-4
《程序设计》 cs.sjtu 2005.9 程序设计 - 4 v 当我们考虑怎么逻辑地组织数据时,应该将一 个人的所有信息项放在一起,即保持相关性。 学号 姓名 语文成绩 数学成绩 英语成绩. 00001 张三 96 94 88 00003 李四 89 70 76 00004 王五 90 87 78
《程序设计》cs.sjtu2005.9 00001 学生一 张三 记录 96 94 在C++中称为结构体 我们希望的结构 88 00003 学生二 李四 7 76 00004 学生三 王五 90 878 程序设计-5
《程序设计》 cs.sjtu 2005.9 程序设计 - 5 学生一 00001 张三969488 学生二 00003 李四897076 学生三 00004 王五908778 记录在C++中称为结构体
《程序设计》cs.sjtu2005.9 结构体类型作用 冬结构体类型允许程序员把一些分量聚合 成一个整体,用一个变量表示。 一个结构体的各个分量都有名字,把这 些分量称为成员(member)。 由于结构体的成员可以是各种类型的, 程序员能创建适合于问题的数据聚合。 程序设计-6
《程序设计》 cs.sjtu 2005.9 程序设计 - 6 v 结构体类型允许程序员把一些分量聚合 成一个整体,用一个变量表示。 v 一个结构体的各个分量都有名字,把这 些分量称为成员(member)。 v 由于结构体的成员可以是各种类型的, 程序员能创建适合于问题的数据聚合
《程序设计》cs.sjtu2005.9 结构体的使用 定义一个新的结构体类型 定义新类型的变量 访问结构体变量 程序设计-7
《程序设计》 cs.sjtu 2005.9 程序设计 - 7 v 定义一个新的结构体类型 v 定义新类型的变量 v 访问结构体变量
《程序设计》cs.sjtu2005.9 第9章 数据封装一结构体 结构体的概述 结构体类型的定义 结构体类型的变量 结构体数组 结构体作为函数的参数 必链表 程序设计-8
《程序设计》 cs.sjtu 2005.9 程序设计 - 8 v 结构体的概述 v 结构体类型的定义 v 结构体类型的变量 v 结构体数组 v 结构体作为函数的参数 v 链表
《程序设计》cs.sjtu2005.9 结构体类型的定义 定义结构体类型中包括哪些分量 格式: 如: struct结构体类型名{ struct studentT char no[10]; 字段声明; char name[10]; int chinese; int math; int english; ; 程序设计-9
《程序设计》 cs.sjtu 2005.9 程序设计 - 9 v 定义结构体类型中包括哪些分量 v 格式: struct 结构体类型名{ 字段声明; }; 如: struct studentT { char no[10]; char name[10]; int chinese; int math; int english; };
《程序设计》cs.sjtu2005.9 注意 字段名可与程序中的变量名相同 在不同的结构体中可以有相同的字段名 结构体成员的类型可以是任意类型,当 然也可以是结构体类型 程序设计-10
《程序设计》 cs.sjtu 2005.9 程序设计 - 10 v 字段名可与程序中的变量名相同 v 在不同的结构体中可以有相同的字段名 v 结构体成员的类型可以是任意类型,当 然也可以是结构体类型