用户自己建立数据类型选编.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
案例 1 :学生成绩管理 ? 有 N 个学生,每个学生的数据包括学号、班级、 姓名、三门课成绩。从键盘输入 N 个学生数据, 要求打印出每个学生三门课的平均成绩,以及 平均分最高分学生数据(包括学号、班级、姓 名、三门课成绩,平均分)。 ? 要求: 1 、 定义学生结构体。 2 、 用一个函数实现 N 个学生数据的输入,用 另一个函数负责求每个学生三门课程的平均成 绩,再用一个函数求出平均分最高的学生并输 出该学生的数据。要求平均分和平均分最高的 学生数据都在主函数中输出。 共用体 ? 共用体的概念 ? 有时需要使几种不同类型的变量存放到同 一段内存单元中。 ? 例如,可把一个整型变量、一个字符型变 量、一个双精度型变量放在同一个地址开 始的内存单元中。 ? 使几个不同的变量共占同一段内存的结构,称为共 用体 (union) 类型的结构。 ? 声明共用体类型的一般形式为 union 共用体类型名 {成员表列 }; ? 定义共用体变量的一般形式为 共用体类型名 共用体变量名 ; ? 当然也可在声明共用体类型的同时定义共用体变量, 也可没有共用体类型名而直接定义共用体变量。 ? 例如 ? “共用体”与“结构体”的定义形式相似。但含义 是不同的。 ? 结构体变量所占内存长度是各成员占的内存长度之 和。每个成员分别占有其自己的内存单元。 ? 共用体变量所占的内存长度等于最长的成员的长度。 union data { int i; char ch; double d; } a,b,c ; ( 有共用体类型名 ) union { int i; char ch; double d; }a,b,c ; ( 无共用体类型名 ) 对共用体变量的访问方式 ? 不能引用共用体变量,而只能引用共用体变量中的成 员。 ? 例如,下面的引用方式是正确的: a.i (引用共用体变量中的整型成员 i ) a.ch (引用共用体变量中的字符型成员 ch ) a.f (引用共用体变量中的双精度型成员 d ) 共用体类型数据的特点 ? 使用共用体变量的目的是希望用同一个内存段存放 几种不同类型的数据。但请注意: 在每一瞬时只 能存放其中一种,而不是同时存放几种。 ? 能够访问的是共用体变量中最后一次被赋值的成员, 在对一个新的成员赋值后原有的成员就失去作用。 ? 共用体变量的地址和它的各成员的地址都是同一地 址。 ? 不能对共用体变量名赋值;不能企图引用变量名来 得到一个值;不能在定义共用体变量时对它初始化; 不能用共用体变量名作为函数参数 例 9.5 设有若干个人员的数据,其中有学生和教师。 学生的数据中包括: 姓名、号码、性别、职业、年 级。教师的数据包括: 姓名、号码、性别、职业、 职务。可以看出,学生和教师所包含的数据是不同 的。现要求把它们放在同一表格中。 要求输入人员的数据,然后再输出。为简化起见, 只设两个人(一个学生、一个教师)。 程序如下: struct { int num; char name[10]; char sex; char job; union P // 声明共用体类型 { int grade; // 年级 char position[10]; // 职务 }category; // 成员 category 为共用体变量 }person[2]; // 定义共用体数组 person ,含两个元素 第 9 章 自定义数据类型 主要内容 ? 结构体类型及其应用 ? 共用体 ? 枚举类型 ? 用 typedef 声明类型 ? 学习目标 ? 掌握结构体的定义和应用 ? 了解公用体和枚举类型的定义和应用 ? 重点难点 ? 重点:结构体变量的定义和引用;枚举类型; typedef 声明类型。 ? 难点:结构体变量的定义和引用。 问题:通讯录管理 ? 每个人的记录由编号、姓名、电话、 E-mail

文档评论(0)

magui + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8140007116000003

1亿VIP精品文档

相关文档