内容正文:
第八章 复杂数据类型--结构体与共用体
1
CONTENTS
目录
01
02
结构体变量定义、初始化及应用
结构体的认知
03
结构体数组及应用
04
共用体及其应用
C语言
知识树
My First Template
3、结构体数组及应用
C语言程序设计
4
C语言程序设计 结构体数组及其应用
C语言
知识回顾
结构体变量的定义
结构体变量的初始化
结构体变量的引用
My First Template
C语言
本次任务
利用结构体完成复杂学生信息的采集与输出
C语言程序设计 结构体数组及其应用
My First Template
C语言
步骤一:问题分析,这个过程基本就是问题的拆解与分析的过程,有些像高中解数学题时对问题的分析过程。
步骤二:算法设计,根据分析的结果建立数学模型和确定解决方案,详细规划解决问题的步骤,根据规划的步骤,绘制流程图。
说 明:流程图在本章最后进行详细介绍。
步骤三:程序编写,根据确定的算法,选择合适的语言(我们的选择当然是C语言),将算法所描述的步骤用C语言描述出来,形成C语言的源程序。程序编写的过程尽量采用模块化编程,加上适量的注释,因为一个复杂的程序如果没有合适的注释,不但别人看不懂,时间长了自己也未必能够看懂。对于小程序这一步可以理解为将流程图转换为C语言的程序。
步骤四:调试运行,谁写的程序也不可能保证没有任何错误,程序的调试是必须的,是排除错误与解决问题的过程。调试过程也不止是为了改错,还要针对不同的条件给出不同的数据输入,针对不同的情况进行测试与检验,因为程序没错不代表程序最终的运行结果是正确的。
任务描述
定义一个结构体数组stu[5],每个元素都含有学号、姓名、三门课成绩,要求编写input()和output()函数,分别实现输入和输出5个学生的数据记录。
C语言程序设计 结构体数组及其应用
My First Template
CONTENTS
内容
01
02
结构体数组
任务实现
8
结构体的数组
01
C语言
struct student
{
int num;
char* name;
char sex;
float score;
}stu[30];
元素为结构类型的数组称为结构数组。
在实际应用中,经常用结构数组来表示具有相同数据结构的一个群体。例如一个班的学员档案,一个公司的职工档案等。
定义了一个结构数组stu,共有30个元素,stu[0]~stu[29]。每个数组元素都具有struct student的结构形式。
结构数组
C语言程序设计 结构体数组及其应用
My First Template
C语言
结构体数组的定义
三种形式:
形式一:
struct student
{ int num;
char name[20];
char sex;
int age;
};
struct student stu[2];
形式二:
struct student
{ int num;
char name[20];
char sex;
int age;
}stu[2];
形式三:
struct
{ int num;
char name[20];
char sex;
int age;
}stu[2];
num
name
sex
age
num
name
sex
age
stu[0]
stu[1]
25B
结构体数组
C语言程序设计 结构体数组及其应用
My First Template
C语言
例 struct
{ int num;
char name[20];
char sex;
int age;
}stu[ ]={{……},{……},{……}};
结构体数组引用
引用方式: 结构体数组名[下标].成员名
struct student
{ int num;
char name[20];
char sex;
int age;
}stu[3];
stu[1].age++;
strcpy(stu[0].name,”ZhaoDa”);
结构体数组初始化
C语言程序设计 结构体数组及其应用
My First Template
任务实现
02
C语言
步骤一:问题分析,这个过程基本就是问题的拆解与分析的过程,有些像高中解数学题时对问题的分析过程。
步骤二:算法设计,根据分析的结果建立数学模型和确定解决方案,详细规划解决问题的步骤,根据规划的步骤,绘制流程图。
说 明:流程图在本章最后进行详细介绍。
步骤三:程序编写,根据确定的算法,选择合适的语言(我们的选择当然是C语言),将算法所描述的步骤用C语言描述出来,形成C语言的源程序。程序编写的过程尽量采用模块化编程,加上适量的注释,因为一个复杂的程序如果没有合适的注释,不但别人看不懂,时间长了自己也未必能够看懂。对于小程序这一步可以理解为将流程图转换为C语言的程序。
步骤四:调试运行,谁写的程序也不可能保证没有任何错误,程序的调试是必须的,是排除错误与解决问题的过程。调试过程也不止是为了改错,还要针对不同的条件给出不同的数据输入,针对不同的情况进行测试与检验,因为程序没错不代表程序最终的运行结果是正确的。
任务描述
定义一个结构体数组stu[5],每个元素都含有学号、姓名、三门课成绩,要求编写input()和output()函数,分别实现输入和输出5个学生的数据记录。
C语言程序设计 结构体数组及其应用
My First Template
C语言
任务实现
C语言程序设计 结构体数组及其应用
My First Template
C语言
图9-1 结构体实训1
运行结果
C语言程序设计 结构体数组及其应用
My First Template
$$