欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    C语言结构体ppt课件.ppt

    • 资源ID:2052611       资源大小:188KB        全文页数:33页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言结构体ppt课件.ppt

    1,Chap 9 结构,9.1 输出平均分最高的学生信息9.2 学生成绩排序9.3 修改学生成绩,2,本章要点,什么是结构?结构与数组有什么差别?有几种结构的定义形式,它们之间有什么不同?什么是结构的嵌套?什么是结构变量和结构成员变量?如何引用结构成员变量?结构变量如何作为函数参数使用?什么是结构数组?如何定义和使用结构数组?什么是结构指针?它如何实现对结构分量的操作?结构指针是如何作为函数的参数的?,3,9.1输出平均分最高的学生信息,9.1.1 程序解析9.1.2 结构的概念与定义9.1.3 结构的嵌套定义9.1.4 结构变量的定义和初始化9.1.5 结构变量的使用,4,9.1.1 程序解析,例9-1 输出平均分最高的学生信息 假设学生的基本信息包括学号、姓名、三门课程成绩以及个人平均成绩。输入 个学生的成绩信息,计算并输出平均分最高的学生信息。,5,9.1.1 程序解析,#includestruct student/*学生信息结构定义*/int num;/*学号*/char name10;/*姓名*/int computer,english,math;/*三门课程成绩*/double average;/*个人平均成绩*/;,6,int main(void)int i,n;struct student s1,max;/*定义结构变量*/printf(Input n:);scanf(%d,7,9.1.2 结构的概念与定义,使用结构来表示学生信息:struct student int num;/*学号*/char name10;/*姓名*/int computer,english,math;/*三门课程成绩*/double average;/*个人平均成绩*/;结构是C语言中一种新的构造数据类型,它能够把有内在联系的不同类型的数据统一成一个整体,使它们相互关联结构又是变量的集合,可以按照对基本数据类型的操作方法单独使用其变量成员。,结构与数组比较:都是构造类型,是多个变量的集合数组成员类型相同,结构成员类型不同,8,9.1.2 结构的概念与定义,结构类型定义的一般形式为:struct 结构名 类型名 结构成员名1;类型名 结构成员名2;类型名 结构成员名n;;,结构的定义以分号结束,C语言中把结构的定义看作是一条语句,关键字struct和它后面的结构名一起组成一个新的数据类型名,9,9.1.2 结构的概念与定义,例如,平面坐标结构:struct point float x;float y;,虽然x、y的类型相同,也可以用数组的方式表示,但采用结构进行描述,更贴近事物本质,从而增加了程序的可读性,使程序更易理解,结构适合用于描述具有多个属性的实体或对象,10,9.1.3 结构的嵌套定义,在我们的实际生活中,一个较大的实体可能由多个成员构成,而这些成员中有些又有可能是由一些更小的成员构成。在学生信息中可以再增加一项:“通信地址”,它又可以再划分为:城市、街道、门牌号、邮政编码。,11,9.1.3 结构的嵌套定义,由此,我们可以对其结构类型进行如下重新定义:struct address char city10;char street20;int code;int zip;,struct nest_student int num;char name10;struct address addr;int computer,english,math;double average;,在定义嵌套的结构类型时,必须先定义成员的结构类型,再定义主结构类型。,12,9.1.4 结构变量的定义和初始化,在语言中定义结构变量的方式有三种:1.单独定义:先定义一个结构类型,再定义一个具有这种结构类型的变量 struct student int num;/*学号*/char name10;/*姓名*/int computer,english,math;/*三门课程成绩*/double average;/*个人平均成绩*/;struct student s1,s2;,13,9.1.4结构变量的定义和初始化,2.混合定义:在定义结构类型的同时定义结构变量 struct student int num;/*学号*/char name10;/*姓名*/int computer,english,math;/*三门课程成绩*/double average;/*个人平均成绩*/s1,s2;3.无类型名定义:在定义结构变量时省略结构名struct int num;/*学号*/char name10;/*姓名*/int computer,english,math;/*三门课程成绩*/double average;/*个人平均成绩*/s1,s2;,14,9.1.4结构变量的定义和初始化,结构变量的初始化 struct student s1=101,Zhang,78,87,85;,15,9.1.5 结构变量的使用,1.结构变量成员的引用在C语言中,使用结构成员操作符“.”来引用结构成员,格式为:结构变量名.结构成员名s1.num=101;strcpy(s1.name,Zhang);nest_s1.addr.zip=310015;,16,9.1.5 结构变量的使用,2.结构变量的整体赋值具有相同类型的结构变量可以直接赋值。赋值时,将赋值符号右边结构变量的每一个成员的值都赋给了左边结构变量中相应的成员。struct student s1=101,Zhang,78,87,85,s2;s2=s1;,17,9.1.5 结构变量的使用,3.结构变量作为函数参数如果一个C程序的规模较大,功能较多,必然需要以函数的形式进行功能模块的划分和实现如果程序中含有结构数据,则就可能需要用结构变量作为函数的参数或返回值,以在函数间传递数据。例:double count_average(struct student s)main:s1.average=count_average(s1);,特点:可以传递多个数据且参数形式较简单 缺点:对于成员较多的大型结构,参数传递时所进行的结构数据复制使得效率较低,18,9.2 学生成绩排序,9.2.1 程序解析9.2.2 结构数组操作,19,9.2.1 程序解析,例9-2 输入n(n50)个学生的成绩信息,按照学生的个人平均成绩从高到低输出他们的信息。struct student students50,temp;/*定义结构数组*/*输入*/,20,9.2.1 程序解析,/*结构数组排序,选择排序法*/for(i=0;i studentsindex.average)/*比较平均成绩*/index=j;temp=studentsindex;/*交换数组元素*/studentsindex=studentsi;studentsi=temp;/*输出排序后的信息*/printf(numt namet averagen);for(i=0;i n;i+)printf(%dt%st%.2lfn,studentsi.num,studentsi.name,studentsi.average);,21,一个结构变量只能表示一个实体的信息,如果有许多相同类型的实体,就需要使用结构数组。结构数组是结构与数组的结合,与普通数组的不同之处在于每个数组元素都是一个结构类型的变量。,9.2.2 结构数组操作,22,结构数组的定义方法与结构变量类似 struct student students50;,结构数组students,它有50个数组元素,从students0到students49,每个数组元素都是一个结构类型struct student的变量,9.2.2 结构数组操作,23,9.2.2 结构数组操作,结构数组的初始化 struct student students50=101,zhang,76,85,78,102,wang,83,92,86;,24,结构数组元素的成员引用,其格式为:结构数组名下标.结构成员名 使用方法与同类型的变量完全相同:studentsi.num=101;strcpy(studentsi.name,zhang);studentsi=studentsk,9.2.2 结构数组操作,25,9.3 修改学生成绩,9.3.1 程序解析 9.3.2 结构指针的概念9.3.3 结构指针作为函数参数,26,9.3.1程序解析,例9-3 输入n(n50)个学生的成绩信息,再输入一个学生的学号、课程以及成绩,在自定义函数中修改该学生指定课程的成绩。,int main(void)int course,i,n,num,pos,score;struct student students50;/*定义结构数组*/*输入n个学生信息*/*输入待修改学生信息*/*调用函数,修改学生成绩*/pos=update_score(students,n,num,course,score);/*输出修改后的学生信息*/.,27,9.3.1程序解析,/*自定义函数,修改学生成绩*/int update_score(struct student*p,int n,int num,int course,int score)int i,pos;for(i=0;i num=num)break;if(i math=score;break;case 2:p-english=score;break;case 3:p-computer=score;break;pos=i;/*被修改学生在数组中的下标*/else/*无此学号*/pos=-1;return pos;,28,9.3.2结构指针的概念,指针可以指向任何一种变量,而结构变量也是C语言中的一种合法变量,因此,指针也可以指向结构变量,这就是结构指针。结构指针就是指向结构类型变量的指针,29,9.3.2结构指针的概念,struct student s1=101,zhang,78,87,85,*p;p=,P,30,9.3.2结构指针的概念,结构指针的使用(1)用*p访问结构成员。如:(*p).num=101;(2)用指向运算符“-”访问指针指向的结构成员。如:p-num=101;,当p指向结构变量s1时,下面三条语句的效果是一样的:s1.num=101;(*p).num=101;p-num=101;,31,9.3.3结构指针作为函数参数,结构指针的操作是非常灵活的,如果将结构指针作为函数的参数,可以完成比基本类型指针更为复杂的操作。例9-3main:pos=update_score(students,n,num,course,score);自定义函数:int update_score(struct student*p,int n,int num,int course,int score),函数update_score运行完毕返回主函数后,主函数中的结构数组students中的值已被修改,32,9.3.3结构指针作为函数参数,与结构变量作为函数参数相比,用结构指针作为函数参数的效率更高。就例-3 而言,在函数update_score()中需要修改主函数中结构数组students的数据,根据第 8章介绍的知识,在此处也只能使用指针作为函数参数的方式才能通过间接访问操作来实现程序功能。,33,本章总结,结构的概念与定义(含嵌套结构)结构变量定义初始化使用(成员引用、相互赋值、作为函数参数)结构数组定义、初始化、结构数组成员引用结构指针概念结构指针操作结构指针作为函数参数,能够根据实际情况合理定义结构能够使用结构变量与结构数组进行熟练编程 掌握结构指针的操作,并应用于函数参数传递,

    注意事项

    本文(C语言结构体ppt课件.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开