[工学]高级语言程序设计_第9章_用户自定义数据类型.ppt

[工学]高级语言程序设计_第9章_用户自定义数据类型.ppt

  1. 1、本文档共57页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]高级语言程序设计_第9章_用户自定义数据类型

第九章 主要内容: 结构体类型 共用体类型 枚举类型 链表 问题的提出: §9.1 定义和使用结构体变量 §9.1 定义结构体类型变量 (2)在声明类型的同时定义变量 (3) 直接定义结构体类型变量 关于结构体的几点说明: (3)成员也可以是一个结构体变量。 §9.1.3 结构体变量的初始化和引用 结构体变量的引用 几点说明: 几点说明: 几点说明: 5. C99标准允许对某一成员初始化,如: struct Student b={.name=“Zhang Fang”}; 其它未被初始化的数值型成员置0,字符型成员置’\0’,指针成员被系统初始化为NULL. 6. 同类的结构体变量可以互相赋值,如: stu_1=stud2; 例9.2 输入两个学生的学号、姓名和成绩,输出成绩较高的学生的信息。 §9.2 结构体数组 结构体数组的定义 结构体数组的初始化 例9.3对候选人得票的统计程序。设有3个候选人,每次输入一个得票的候选人的名字,要求最后输出各人得票结果。 9.3 结构体指针 9.3.1 指向结构体变量的指针 一个结构体变量的起始地址就是这个结构体变量的指针。如果把一个结构体变量的地址存放在一个指针变量中,那么,这个指针变量就指向该结构体变量。 例 9.5 通过指向结构体变量的指针变量输出结构体变量中成员的信息。 9.3.2 指向结构体数组的指针 可以用指针变量指向结构体数组的元素。 例9.6 有三个学生的信息,放在结构体数组中,要求输出全部学生的信息。 9.3.3 用结构体变量和结构体变量的指针作函数参数 结构体变量的成员作参数 结构体变量做实参 指向结构体变量的指针作实参 共用体类型数据结构 问题的提出:一个学校人员的通用管理程序中,一般使用下列数据: 1.编号;2.姓名;3.性别;4.年龄;5.职业; 6.级别:学生:grade(取值:1、2、3、4) 教师:title(取值:教授、副教授、讲师、助教) 职员:post(校长、处长、科长、科员) 这里grade、title、post虽然类型不同,但不同时出现。如何编写程序, 分别输入和输出学生、教师和职员各人的信息? 共用体变量的定义 共用体类型数据的特点 共用体类型数据的特点 例:编写程序,分别输入和输出学生、教师和职员各人的信息 §3 枚举类型 说明: 例子:从键盘输入一个今天是星期几的整数,程序输出与之对应的今天是星期几的英文字母 § 9.4 用指针处理链表 9.4.2 建立简单的静态链表 9.4.3 建立动态链表 所谓建立动态链表是指在程序执行过程中从无到有地建立起一个链表,即一个一个地开辟结点和输入各结点数据,并建立起前后相链的关系 例11.5 写一函数建立一个有3名学生数据的单向动态链表. 算法的实现: 算法的实现: 算法的实现: 算法的实现: 建立链表的函数如下: 子函数: 9.4.4 输出链表 例9.10 编写一个输出链表的函数print. 对链表的删除操作 例:写一函数以删除动态链表中指定的结点. 例如,要求删除学号为10103的结点。 对链表的插入操作 例:插入结点的函数insert如下。 对链表的综合操作:将以上建立、输出、删除、插入的函数组织在一个C程序中,用main函数作主调函数。 修改main函数,使之能删除多个结点(直到输入要删的学号为0),能插入多个结点(直到输入要插入的学号为0) 用typedef定义类型 用typedef声明新的类型名来代替已有的类型名 typedef int Integer; int i; 与Integer i; 等价 typedef struct{ int month;int day;int year}Date; Date biethday; Date *p; typedef int Num[100]; Num a; 按定义变量的方式,把变量名换上新类型名,并且在 最前面加teypedef, 就声明了新类型名代表原来的类型。 使用typedef有利于程序的通用与移植。 作业: 1. 修改链表的综合操作的main函数,使之能删除多个结点(直到输入要删的学号为0),能插入多个结点(直到输入要插入的学号为0) 在C编译中,对枚举元素按常量处理,故称枚举 常量。它们不是变量,不能对它们赋值。 (2) 枚举元素作为常量,它们是有值的,C语言编译 按定义时的顺序使它们的值为0,1,2… (3) 枚举值可以用来作判断比较。 (4) 一个整数不能直接赋给一个枚举变量。 § 9.4.1 什么是链表 链表是一种常见的重要的数据结构,是动

文档评论(0)

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

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

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档