[计算机软件及应用]结构体.pptVIP

  • 4
  • 0
  • 约8.13千字
  • 约 38页
  • 2018-03-04 发布于浙江
  • 举报
[计算机软件及应用]结构体

在解决实际问题时,有时需要将多个不同类型的数据组合在一起表达一个整体的信息。 例如:在对某班学生C语言课程成绩进行处理时描述一个学生的完整信息时,有学号、姓名、年龄、成绩、家庭地址等项。 这些项目之间是彼此联系的,所以我们在做项目二时的定义方法显然不合理,它们应组织定义成一个组合项,统一表示和使用,而这些项的数据类型不尽相同, 参见下例: 结构体类型举例 课程项目案例三 学生成绩管理 /*计算每个学生的总成绩和平均成绩*/ for(i=0;iN;i++) { stu[i].total = stu[i].score.chinese + stu[i].score.math +stu[i].score .physics ; stu[i].ave = stu[i].total/3; } /*输出*/ printf(“#######################所有学生成绩信息 ##########################\n); printf(学号\t姓名\t\t语文\t数学\t物理\t总分\t平均分\n); for(i=0; iN; i++) printf(%8s\t%-16s%.1f\t%.1f\t%.1f\t%.1f\t%.2f\n, stu[i].num,stu[i].name,stu[i].score.chinese, stu[i].score.math,stu[i].score.physics,stu[i].total,stu[i].ave); printf(#################################################################\n); } 〖运行结果〗: 2.结构体数组与函数 即 以函数调用方式编程实现对结构体数组的操作。 形参:指向结构体数组的指针变量(定义成数组形式) 实参:数组的首地址(即数组名) 程序代码框架参见文件:成绩管理2.0框架.c 程序运行效果参考可执行程序:成绩管理2.0.exe * 第5章 结构体、共用体与枚举 教学目标:   通过本章学习,要求学生能熟练运用结构体这一新的数据结构编制较复杂的应用程序。同时掌握用户自定义类型typedef的使用方法。 本讲重点: 1.结构体变量的定义、引用、初始化; 2.typedef自定义结构体类型的方法。 教学方法:   理论教学与实践教学相结合。 第5章 结构体、共用体与枚举 5.1 结构体类型与变量 5.2 结构体数组 5.3 结构体与指针 5.4 自定义类型 5.1 结构体类型与变量 辽宁锦州 86 20 女 李华 1003 某一个学生的具体信息表示: 地址addr 成绩score 年龄age 性别 sex 姓名name 学号 num 字符数组 字符数组 字符数组 整型 实型 字符数组 注意:一个汉字占两个字节的存储空间。所以性别不能定义成char类型 那么这样一组类型不同又相关的数据如何来处理呢? C引入一种能集中不同数据类型于一体的组合数据类型—结构体类型 ,该类型由用户自己定义。 使用时应先定义结构体类型结构,然后再定义该类型变量,才能使用。 5.1.1 结构体类型定义 结构体类型定义的一般形式为: struct [结构体类型名] { 类型1 成员变量1; 类型2 成员变量2; …… …… 类型n 成员变量n; } ; 例如: struct student { char num[10]; char name[20]; char sex[3]; int age; float score; char addr[30]; }; 结构体类型 地址addr 成绩score 年龄age 性别 sex 姓名name 学号 num 字符数组 字符数组 字符数组 整型 实型 字符数组 说明: 结构体类型由“struct 结构体类型名”说明和引用。 相同类型的成员可以合在一个类型下说明。如 struct student { char num[10], name[20 ],sex[3],addr[30]; int age; float score; }; 3. 类型定义不分配内存。 结构体类型定义描述结构的组织形式,不分配内存。 4. 结构体类型可以嵌套定义,即在结构体类型定义

文档评论(0)

1亿VIP精品文档

相关文档