第9章结构体课件.pptx

上传人(卖家):晟晟文业 文档编号:4638914 上传时间:2022-12-28 格式:PPTX 页数:33 大小:213.89KB
下载 相关 举报
第9章结构体课件.pptx_第1页
第1页 / 共33页
第9章结构体课件.pptx_第2页
第2页 / 共33页
第9章结构体课件.pptx_第3页
第3页 / 共33页
第9章结构体课件.pptx_第4页
第4页 / 共33页
第9章结构体课件.pptx_第5页
第5页 / 共33页
点击查看更多>>
资源描述

1、 滁州学院 计算机与信息工程学院第章结构体第 章 结 构 体 滁州学院 计算机与信息工程学院本章主要内容本章主要内容l 结构体类型的概念与定义。l 结构体变量的定义、初始化及结构成员的引用。l 结构体数组的定义及其使用。l 结构体类型指针的定义及其使用。l 结构体变量作为函数的参数。l 返回结构体类型值的函数。l 单链表及其应用。滁州学院 计算机与信息工程学院本章学习目标本章学习目标l 理解结构体类型的概念及其定义方法。l 掌握结构体变量的定义和初始化。l 掌握结构体成员的引用方法。l 掌握结构体数组的定义和使用。l 掌握结构体在函数中的应用。l 理解链表的概念及其基本操作。滁州学院 计算机与

2、信息工程学院目录目录 引例 结构体的概念与定义 结构体变量的定义和引用 结构体数组 结构体变量与指针 结构体与函数 单链表及其应用 实例 滁州学院 计算机与信息工程学院 引例引例引例:假设学生的基本信息包括学号、姓名、三门课程成绩以及个人平均成绩。要求输入个学生信息,计算并输出平均分最高的学生信息。学生n学生2学生1学号姓名英语数学物理平均问题:不能用二维数组,因为每个成员的类型不一致。问题:如果定义多个相互独立的一维数组,则难以反映出同一名学生各成员数据之间的内在联系。内存分布图解决方案:引入结构体数据类型 滁州学院 计算机与信息工程学院 结构体的概念与定义结构体的概念与定义结构体是一种允许

3、程序员把一些数据分量(结构成员)聚合成一个整体的数据类型。学号姓名英语数学物理平均成员单元数组的所有元素的数据类型必须相同,而结构体类型所包含的成员数据类型可以互不相同。结构体类型的概念结构体与数组的区别结构体类型的定义 结构体类型名类型名 成员名;类型名 成员名;类型名 成员名;练习 滁州学院 计算机与信息工程学院 结构体的概念与定义嵌套定义结构体的概念与定义嵌套定义增加一个结构体生日类型结构体类型嵌套定义 ;练习 滁州学院 计算机与信息工程学院 结构体变量的定义和引用定义结构体变量的定义和引用定义 ;,*;先定义结构体类型,然后定义结构体变量 ;,*;结构体变量定义同时定义结构体类型和结构

4、体变量直接定义结构体变量 ;,;,*;推荐使用这种形式的定义 滁州学院 计算机与信息工程学院 结构体变量的定义和引用初始化结构体变量的定义和引用初始化结构体变量初始化 ;,;,;,;滁州学院 计算机与信息工程学院;(,);结构体变量的定义和引用引用结构体变量的定义和引用引用 ;结构体变量成员引用s成员如何表示?结构体变量名.成员名s.nums.names.math s.average举例说明结构体成员赋值801Zhang808992结构体变量赋值 ;滁州学院 计算机与信息工程学院 结构体变量的定义和引用例结构体变量的定义和引用例例例 阅读程序,理解结构体变量的定义和引用,给出运行结果阅读程序,

5、理解结构体变量的定义和引用,给出运行结果 ;(),;();(,);();();();18M1.7570.5ZhangSanp118M1.7268WangMingp3 滁州学院 计算机与信息工程学院 结构体变量的定义和引用输入输出结构体变量的定义和引用输入输出(,);结构体变量数据输入 ;s数据如何输入输出?结构体变量数据输出(,);注意:没有符号 滁州学院 计算机与信息工程学院 结构体变量的定义和引用例分析结构体变量的定义和引用例分析例例 假设学生的基本信息包括学号、姓名、三门课程成绩以及个人平均成绩。假设学生的基本信息包括学号、姓名、三门课程成绩以及个人平均成绩。输入个学生的成绩信息,计算并

6、输出平均分最高的学生信息。输入个学生的成绩信息,计算并输出平均分最高的学生信息。学生n学生2学生1学号姓名英语数学物理平均所有学生共用存储单元存储分析算法设计定义结构体类型和变量循环输入每一个学生的信息,计算平均成绩,判断是否是最高分输出最高分的学生信息 滁州学院 计算机与信息工程学院 结构体变量的定义和引用例程序结构体变量的定义和引用例程序例例 假设学生的基本信息包括学号、姓名、三门课程成绩以及个人平均成绩。假设学生的基本信息包括学号、姓名、三门课程成绩以及个人平均成绩。输入个学生的成绩信息,计算并输出平均分最高的学生信息。输入个学生的成绩信息,计算并输出平均分最高的学生信息。;();,;(

7、);(,);()();();(,);();练习 滁州学院 计算机与信息工程学院 结构体数组结构体数组结构体数组定义结构体类型名 数组名数组长度;结构体数组初始化 ,;滁州学院 计算机与信息工程学院 结构体数组例分析结构体数组例分析例例 编写一个可以统计候选人得票数的程序。设有个候选人,人投票,每次输编写一个可以统计候选人得票数的程序。设有个候选人,人投票,每次输入一个得票的候选人的名字,要求最后输出各人得票结果。入一个得票的候选人的名字,要求最后输出各人得票结果。候选人3候选人2候选人1姓名票数存储分析算法设计定义结构体类型、结构体数组并初始化循环输入每个人投票的候选人姓名,根据姓名增加对应的

8、选票数循环输出每个候选人的得姓名及其选票数 滁州学院 计算机与信息工程学院 结构体数组例程序结构体数组例程序 ;,;();()()();();(num sp-namesp-mathsp-average 滁州学院 计算机与信息工程学院 结构体变量与指针结构体数组结构体变量与指针结构体数组 ;s结构体变量指针的定义结构体类型名*结构体指针变量名;*;sp如何间接访问?成员引用(*sp).num(*sp).name(*sp).math(*sp).averagesp-num sp-namesp-mathsp-average;滁州学院 计算机与信息工程学院 结构体变量与指针例结构体变量与指针例例例 阅读

9、程序,理解指向结构体数组指针的应用,给出运行结果阅读程序,理解指向结构体数组指针的应用,给出运行结果 ;();,;*;(;spspspspsp练习 滁州学院 计算机与信息工程学院t分配新空间 结构体与函数结构体与函数 结构体变量作为函数参数结构体变量作为函数参数主调函数被调函数回顾函数的传值调用 ;s1001 滁州学院 计算机与信息工程学院 结构体与函数例结构体与函数例例例 一个复数包括实部和虚部,请定义一个复数结构体一个复数包括实部和虚部,请定义一个复数结构体,并调用,并调用 (,)计算并返计算并返回两个复数的乘积。回两个复数的乘积。算法设计定义结构体类型定义主函数完成变量定义、输入、调用函

10、数、结果输出定义子函数计算两个复数的乘积并返回结果 ;();();();(,);*;*;滁州学院 计算机与信息工程学院 结构体与函数结构体与函数 结构体指针变量作为函数参数结构体指针变量作为函数参数回顾函数的传地址调用 ;主调函数被调函数s1001sp分配一个地址空间实现间接访问优点:分配少量空间以及传递少量的数据可以传递结构体数组名EX9.9EX9.8 滁州学院 计算机与信息工程学院 结构体与函数例结构体与函数例例例 输入个学生的成绩信息,再输入一个学生的学号、课程序号以及成绩,在输入个学生的成绩信息,再输入一个学生的学号、课程序号以及成绩,在自定义函数中修改该学生指定课程的成绩。自定义函数

11、中修改该学生指定课程的成绩。算法设计定义结构体类型定义主函数完成变量定义、输入、调用函数、结果输出定义子函数完成修改学生指定课程的成绩 ;();();(*);();();();pppp练习 滁州学院 计算机与信息工程学院 单链表及其应用动态存储分配25动态存储分配动态存储分配;(“”);?无法实现按需分配存储单元无法实现按需分配存储单元举例说明(*)(*();(*)(,();(*)(*();();p01234567#include freemalloc,calloc,realloc0127879 滁州学院 计算机与信息工程学院 单链表及其应用例算法设计定义结构体类型和指针变量申请空间数据输入、

12、数据输出释放空间 ;*;()*;();();(*)();例例 动态分配一块区域,输入输出一个学生数据。动态分配一块区域,输入输出一个学生数据。滁州学院 计算机与信息工程学院 单链表及其应用单链表基本概念27;01234567存在问题存储空间不能进行动态伸缩插入、删除元素需要移动大量的元素使用链式存储结构:链表(本教材只介绍单链表)使用链式存储结构:链表(本教材只介绍单链表)单链表基本概念结点头指针空指针数据域指针域问题1.结点类型如何定义?2.单链表如何建立?3.单链表如何遍历?A135612491249headB14751356C10211475DNULL10211021tail尾指针 滁州

13、学院 计算机与信息工程学院 单链表及其应用结点类型定义结点数据域指针域A135612491249headB14751356C10211475DNULL1021 ;*;递归定义课堂练习:定义一个结点类型,要求有学生的学号、姓名和成绩成员。;*;滁州学院 计算机与信息工程学院 单链表及其应用建立链表算法设计29 ;*;学生结点类型定义 *();函数首部算法设计定义头指针变量和尾指针变量并进行初始化输入数据申请空间并赋值尾部插入(分情况)返回头指针循环处理A135612491249headB14751356C10211475DNULL10211021tail 滁州学院 计算机与信息工程学院 单链表及

14、其应用建立链表函数代码30 *()*,*,*;();();()(*)();();();();NULLNULLheadpNULLheadtailNULLpNULLtail 滁州学院 计算机与信息工程学院 单链表及其应用链表遍历算法设计31A135612491249headB14751356C10211475DNULL10211021tail31 *(*);函数首部算法设计定义指针变量初始化指针变量输出数据移动指针变量循环处理headheadheadhead 滁州学院 计算机与信息工程学院 单链表及其应用链表遍历函数代码(*)*;(;)();()*;();();滁州学院 计算机与信息工程学院本章小结本章小结本章主要内容有结构体类型的概念与定义,结构体变量的定义和使用,结构体数组的定义和使用,结构体类型指针变量的定义和使用,结构体变量、结构体指针变量和数组作为函数的参数和返回值,单链表的基本概念及其建立和遍历操作等。通过本章的学习,使学生掌握定义结构体类型的方法,能够根据需要正确定义和使用结构体变量、结构体数组和结构体指针,能够使用结构体和链表编写较复杂的综合程序。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(第9章结构体课件.pptx)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|