C语言程序设计课件源程序及习题答案第8章结构体和共用体及其应用.ppt

C语言程序设计课件源程序及习题答案第8章结构体和共用体及其应用.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 结构体与共用体及其应用 学习目标 1 使用结构体变量处理“记录”类数据; 2 使用结构体类型数组处理多个“记录”类数据; 3 在函数中使用结构体数据 4 使用共用体类型变量 * 8.1 结构体变量的应用 学一学 结构体是若干个类型相同或不同的数据项的集合。定义一个结构体类型的一般形式为: struct 结构体类型名 { 数据类型 成员1; 数据类型 成员2; …… 数据类型 成员n; }; 结构体变量的定义 struct 结构体类型名 变量名; 结构体变量中成员的引用 结构体变量名. 成员名 * 问题8.1 考试结束后老师登记学生成绩,一个学生的基本信息包括姓名(chName)、期中成绩(iMiddle)、期末成绩(iFinal)和总评成绩(fAve),编写程序存储成绩,并打印出来。 上 * 问题8.2: 扩展问题8.1,要求输入两个同学的期中、期末成绩,将平均分数较高的同学的成绩单输出。 * 流程图 * 问题8.3 现有一个同学的原始成绩单,内容包括学号、姓名、英语成绩、高等数学、程序设计三门课的成绩以及出生年月,请将其拷贝入另一个结构体变量进行备份,并且将数据输出进行核对是否备份正确 * 小结:结构体类型和结构体变量 结构体可以表达类似于数据库中“记录”的数据,使用结构体来表达数据,必须先定义结构体类型,再用此类型定义结构体变量。结构体中的每个数据叫做成员,在进行输入输出等操作时要用成员引用符号“.”引用到具体成员。 定义一个结构体变量,系统分配的内存空间是该结构体变量中所有成员占据内存空间的总和。 * 8.2 结构体数组的应用 :学一学 1.结构体数组的定义与结构体变量类似,只需说明其为数组即可。 struct 结构体类型名 { 数据类型 成员1; 数据类型 成员2; …… 数据类型 成员n; }; struct 结构体类型名 数组名[数组长度]; 2.结构体数组元素也是通过数组名和下标来引用的,但其元素是结构体类型的数据,因此,对结构体数组元素的引用与对结构体变量的引用一样,也是逐级引用,只能对最低级的成员进行存取和运算。 一般的引用形式为: 数组名[下标].成员名 * 问题8.4:试一试 一个学习小组有N名学生,学生的信息包含学号、姓名、语文、数学、英语三门课的成绩,从键盘上输入N名学生的信息,要求统计总成绩并显示总分最高的学生信息。 * 解题步骤 1. 以学生的信息数据项为成员,定义结构体类型和相应的结构体数组 2. 循环输入每个学生的信息,统计总成绩,存储在结构体数组中 3. 循环比较求出总分最高的学生,并显示 * 练一练 扩展问题8.4,请按总分从高到低将学生的信息排序输出,每行输出一个学生的信息。 * 小结:结构体数组 结构体数组的每一个元素,都是结构体类型数据,均含结构体类型的所有成员。 结构体数组元素通过数组名和下标来引用,但其元素是结构体体类型的数据,因此,对结构体数组元素的引用与对结构体变量的引用一样,也是逐级引用,只能对最低级的成员进行存取和运算。一般的引用形式为: 数组名[下标].成员名 * 8.3 结构体在函数中的应用 学一学 结构体变量作为一个整体可以传递给函数以及由函数返回,作为函数参数时形参实参都应是结构体类型,返回值为结构体类型时,函数应定义为结构体类型,声明方式如下: struct 结构体类型 函数名( 结构体类型参数,结构体类型参数2); 如无返回值则函数定义为void 类型。 * 试一试 问题8.5: 修改问题8.2,要求在函数中实现计算、比较平均分并且显示平均分数较高的学生信息的功能。 * 问题8.6: 修改问题8.4,在函数中将N个学生的数据输入并统计总分和求出最高分的学生并显示。 * 主函数流程图 * 想一想 在问题8.3的代码中,如果要求对输入数据对输入的年、月、日进行合法性校验,比如年是在1989-2019年之间,月是在1-12之间,日是1-30之间,怎么解决?如果进一步要求根据月份而确定每月的天数,又该怎么办呢 * 练一练 尝试编写学生管理系统,定义学生信息的结构体类型,分别用函数实现数据输入、数据输出、计算每个人的平均分,进行排序和成绩插入等操作。 * 小结:函数中的结构体 结构体变量可以传递给函数以及由

文档评论(0)

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

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

1亿VIP精品文档

相关文档