C语言基础—结构体数据类型

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据类型2 成员2; ...... 数据类型n 成员n; };
清华大学出版社
7.1学生成绩管理系统V4.0
7.1.1 定义结构体类型
说明: (1) struct 是定义结构体的关键字,结构体名遵循标识符命名规则。 (2) 结构体有若干数据成员,用{ }括起来。数据成员格式:数据类型 成员 名;。数据成员可以是基本类型,也可以是派生类型,比如数组、结构体。 (3) 定义结构体类型,就是定义了一种数据类型,与先前所学的int、float 一样,只是结构体类型是一种复杂的数据类型,是基本数据类型的组合。
结构体变量名.成员名 说明:
(1) “.” 称为成员运算符,在所有运算符中优先级最高,与圆括号( )是一个级别。 (2) 不允许将结构体变量整体输入和输出,只能对结构体变量中的各个成员分别进 行输入、输出和运算。
例如:scanf("%d%s",&student1.num,);
"wanglei ",18,503, "Jining "}}; 18,73, “清Jin华ing大”}学}; 出版社
7.2学生成绩管理系统V4.1
7.2.1结构体数组
【示例7-2】候选人得票统计程序。每次输入一个得票的候选人的名字,票 数加1。要求最后输出各人的得票数(以3个候选人为例)。 #include <string.h> #include <stdio.h> Struct candi {
printf("学号
姓名 入学总成绩:\n");
printf("\n%d%6s%12.1f\n",student1.num,,student1.sc ore);
printf("\n%d%6s%12.1f\n",student2.num,,student2.sc
清华大学出版社
7.1学生成绩管理系统V4.0
7.1.14结构体变量的赋值
【示例7-1】使用结构体类型变量存储学生学号、姓名、入学成绩,并输出。
#include <stdio.h> int main() { struct student { int num;
char name[20]; float score; char addr[30]; }student1={20130101,"张琳",356, "山东"};/*初始化*/ printf("=====================================================\n"); printf("学号\t\t姓名\t入学总成绩\t地址\n"); printf("\n%d\t%s\t%.1f\t\t%s\n",student1.num,,student 1.score,student1.addr); printf("=====================================================\n"); return 0; }
scanf("%d%s%f",&student1.num,,&student1.score);
scanf("%d%s%f",&student2.num,,&student2.score);
printf("==================================\n");
printf("%d,%s",student1.num,);
student1.num =11303; student1.age++;
(3) 同一种类型的结构体变量之间可以直接赋值。 例如:student2=student1;
清华大学出版社
7.1学生成绩管理系统V4.0
7.1.14结构体变量的赋值
7.2学生成绩管理系统V4.1
7.2.1结构体数组
2.定义结构体的同时定义数组 例如:利用结构体数组来保存3个学生的信息。 struct student { int num;
char name[20]; int age; float score; char addr[30]; }stu[3]={{ 20050201,"zhangqiang",18,456, "Jining"},{20050202, "liling",19,406, "qufu"},{20050203,
7.1学生成绩管理系统V4.0
7.1.14结构体变量的赋值
2.用scanf( )函数给结构体变量的成员赋值。 例如: scanf("%d%s%d%f%s", &student1.num, , &student1.age,&student1.score,student1.addr);
清华大学出版社
7.1学生成绩管理系统V4.0
7.1.2定义结构体类型变量
1. 先定义结构体类型,再定义变量 例如:
struct student /*定义结构体类型struct student*/
{
int num;
char name[20];
int age;
float score;
char addr[40];
说明:定义struct student结构体类型变量student1,student2,
与上面方法等价。结构体变量所占的存储空间是其各个成员所占存储空间
的总和。
清华大学出版社
7.1学生成绩管理系统V4.0
7.1.3结构体变量的引用
在定义结构体变量以后,不能直接引用变量,而是引用该变量的成员,格式如下:
7.2学生成绩管理系统V4.1
7.2.1结构体数组
1.先定义结构体,再定义数组。
例如:利用结构体数组来保存3个学生的信息。
struct student
{ int num; char name[20]; int age; float score;
定义了结构体数组后, 可以采用“数组元素.成
员名”引用结构体数组 某个元素的成员。
1.结构体变量的初始化 结构体变量的初始化是指在定义结构体变量时即赋初值。例如: struct student
{ int num; char name[20]; char sex; int age; float score; char addr[30];
}student1={20050201,"zhangqiang",'M',18,456,"Jining guanghe 13"};
清华大学出版社 ore);
printf("==================================\n"); return 0;}
7.1学生成绩管理系统V4.0
7.1.5学生成绩管理系统V4.0设计
5. 输入、保存程序 程序输入,要保存后,再运行。 6. 运行、调试程序 运行程序,如果出错,检查程序,修改错误,并重新运行。 运行结果:
};
分号不能少!
struct student student1,student2 ;
清华大学出版社
7.1学生成绩管理系统V4.0
7.1.2定义结构体类型变量
2. 定义结构体类型的同时定义结构体变量 例如:
struct student { int num;
char name[20]; int age; float score; char addr[30]; } student1,student2;
储、管理学生学号、姓名、成绩等相关信息,利用函数 实现学生信息的输入、计算总成绩和平均成绩、输出、 修改、查询、排序功能。
清华大学出版社
7.1学生成绩管理系统V4.0
7.1.1 定义结构体类型
结构体是派生类型的一种自定义类型,遵循先定义后使用的规则。
定义结构体类型的格式: struct 结构体名 { 数据类型1 成员1;
结束
清华大学出版社
7.1学生成绩管理系统V4.0
7.1.5学生成绩管理系统V4.0设计
1.编写代码
#include <stdio.h>
struct student
{ int num;
char name[20];
float score;
} student1,student2;
int main() { printf("请输入2个学生的学号、姓名、入学总成绩:\n");
char addr[30];
};
struct student stu[3]=
{{ 20050201,“zhangqiang”,18,56, “Jining”},{20050202,
“liling”,
清华大学出版社
19,86, “qufu”},{20050203, “wanglei ”,18,73, “Jining ”}};
struct student
{ int num;
char name[20];
float score;
}
清华大学出版社
7.1学生成绩管理系统V4.0
7.1.5学生成绩管理系统V4.0设计
3. 逻辑设计 学生成绩管理系统4.0伪代码:
开始:main函数 定义struct student 结构体类型 定义2个struct student类型变量 输入两个学生信息 输出两个学生信息
char name[20]; int count; /*得票数用count来计数*/ }leader[3]={{"wang",0},{"liu",0},{"song",0}}; int main() { int i,j;
char name[20];
清华大学出版社
7.1学生成绩管理系统V4.0
7.1.14结构体变量的赋值
1.结构体变量的初始化 说明: 变量后面的一组数据用{ }括起来,其顺序要与结构体中的数据成员类型、顺 序保持一致。初始化后,student1.num的值是20050201,student1.age 的值是18。
清华大学出版社
清华大学出版社
7.1学生成绩管理系统V4.0
7.1.14结构体变量的赋值
【示例7-1】使用结构体类型变量存储学生学号、姓名、入学成绩,并输出。
#include <stdio.h> int main() { struct student { int num;
char name[20]; float score; char addr[30]; }student1={20130101,"张琳",356, "山东"};/*初始化*/ printf("=====================================================\n"); printf("学号\t\t姓名\t入学总成绩\t地址\n"); printf("\n%d\t%s\t%.1f\t\t%s\n",student1.num,,student 1.score,student1.addr); printf("=====================================================\n"); return 0; }
清华大学出版社
7.1学生成绩管理系统V4.0
7.1.14结构体变量的赋值成绩管理系统V4.0
7.1.5学生成绩管理系统V4.0设计
1. 明确功能 学生成绩管理系统V4.0功能:使用结构体类型及变量,实现学生学号、姓名 和入学总成绩等信息的输入和输出(以2个学生为例)。 2. 分析问题 定义struct student结构体类型,包括学号、姓名、成绩三个数据成员。 结构体定义如下:
清华大学出版社
7.2学生成绩管理系统V4.1
7.2.1结构体数组
结构体数组是指数组的类型为结构体类型,即数组的每个元素都是该结构 体类型的变量。
定义结构体数组和定义结构体变量的方法相同。结构体数组的初始化和结 构体变量的初始化方法相同,只是每个结构体数组元素的初始化值 “{}”括起 来。
清华大学出版社
C语言程序设计
清华清大华学大出学出版版社社
项目7 学生成绩管理系统4.X
本章学习目标
掌握结构体数据类型的定义 掌握结构体类型变量的定义、引用及初始化 掌握结构体类型数组的定义、引用及初始化 理解并掌握结构体数组编程
清华大学出版社
项目7:学生成绩管理系统4.X
学生成绩管理系统V4.X功能描述
学生成绩管理系统V4.X : 学生成绩管理系统V4.X,采用结构体数据类型,存
相关文档
最新文档