已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
情境二 二维连续数据管理系统 任务一 第三单元 结构体和结构体数组,能用C语言设计和实现结构体 数组PDA描述算法的能力 能用C语言实现结构体数组 输入、访问、输出。,通过本次课的学习, 使学生掌握结构体 数组的定义、初始化、 赋值、引用,以及 数组元素成员的访问。,5/29/2019 11:24 PM,一、引入问题,5/29/2019 11:24 PM,一、引入问题,根据学生成绩表,统计出全班的最高成绩、最低成绩和每个人的平均成绩。,5/29/2019 11:24 PM,结构体类型的定义,定义一个结构体的一般形式为: struct 结构体名 成员表列 ; 成员表由若干个成员组成, 每个成员都是该结构的一个组成部分。对每个成员也必须作类型说明,其形式为: 类型说明符 成员名; 结构体名和成员名的命名应符合标识符的书写规定。,5/29/2019 11:24 PM,相关例题,例如: struct stu int num; char name20; char sex; float score; ; 由此可见, 结构是一种复杂的数据类型,是数目固定,类型不同的若干有序变量的集合。,结构体名,成员,5/29/2019 11:24 PM,结构体变量的定义,结构体变量有以下三种方法。 1先定义结构,再说明结构变量。 2在定义结构体类型的同时说明结构体变量。 3 直接说明结构变量。,5/29/2019 11:24 PM,先定义结构,再说明结构变量,例如: struct stu int num; char name20; char sex; float score; ; struct stu boy1,boy2; 说明了两个变量boy1和boy2为stu结构体类型。即图4-10所表示的数据结构。,5/29/2019 11:24 PM,定义结构体类型的同时说明结构体变量。,例如: struct stu int num; char name20; char sex; float score; boy1,boy2;,5/29/2019 11:24 PM,直接说明结构变量,例如: struct int num; char name20; char sex; float score; boy1,boy2; 第三种方法与第二种方法的区别在于:第三种方法中省去了结构体名,而直接给出结构体变量。,5/29/2019 11:24 PM,结构体变量的初始化,和其他类型变量一样,对结构体变量可以在定义时指定初始值。 【例4-18】外部结构体变量初始化。 源程序:,struct stu /* 定义结构 */ int num; char name20; char sex; float score; boy2,boy1=102,“Zhang ping“,M,78.5; void main() boy2=boy1; printf(“Number=%dnName=%sn“,boy2.num,); printf(“Sex=%cnScore=%fn“,boy2.sex,boy2.score); ,5/29/2019 11:24 PM,结构体变量的赋值,结构体变量的赋值就是给各成员赋值。可用输入语句或赋值语句来完成。 【例4-19】给结构变量赋值并输出其值。 源程序: #include “stdio.h” #include “string.h” void main() struct stu int num; char name20; char sex; float score; boy1,boy2; boy1.num=102; strcpy( , “Zhang ping“ ); printf(“input sex and scoren“); scanf(“%c %f“, ,5/29/2019 11:24 PM,赋值用法总结,1、普通变量可以直接赋值; 2、数组用for循环逐个赋值; 3、字符串用strcpy赋值; 4、结构体可以直接赋值;,5/29/2019 11:24 PM,结构体数组,如果数组的元素是结构体类型,则可以构成结构体数组。,5/29/2019 11:24 PM,定义结构体数组,结构体数组的定义方法和结构变量相似,只需说明它为数组类型即可。例如: struct stu int num; char name20; char sex; float score; boy5; 定义了一个结构数组boy,共有5个元素,boy0boy4。每个数组元素都具有struct stu的结构形式。,5/29/2019 11:24 PM,结构体数组的初始化,与其他类型的数组一样,对结构数组可以初始化。例如: struct stu int num; char name20; char sex; float score; boy5= 101,“Li ping“,M,45, 102,“Zhang ping“,M,62.5, 103,“He fang“,F,92.5, 104,“Cheng ling“,F,87, 105,“Wang ming“,M,58 当对全部元素作初始化赋值时,也可不给出数组长度。,5/29/2019 11:24 PM,结构体数组应用举例,【例4-20】已知学生成绩表,计算学生的平均成绩和不及格的人数。 分析:,若用结构体数组来存储学生基本信息,而成绩作为每个数组元素的一个成员,则在main函数中可直接通过循环来完成题目所给的任务。,5/29/2019 11:24 PM,例4-20流程图,源程序,调用集成 编译环境,5/29/2019 11:24 PM,例4-21,【例4-21】建立同学通讯录。 分析:,通讯录里面至少包含两方面内容:名字和电话号码。可定义一个结构mem,里面有两个成员。然后定义一个mem的结构体数组。可以通过初始化的方法给数组赋初值,也
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 研学旅行交通食宿协调员岗位招聘考试试卷及答案
- 2026年福建省南安市高二生物下册期末考试模拟卷及完整答案【考点梳理】
- 2026年河北省黄骅市高二生物下册期末考试模拟卷【综合卷】附答案
- 2026年四川省绵竹市高二生物下册期末考试考试卷及答案【真题汇编】
- 2026年广东省鹤山市高二生物下册期末考试模拟卷附答案【A卷】
- 2026年山东省临清市高二生物下册期末考试模拟卷附完整答案(全优)
- 2026年江苏省宜兴市高二生物下册期末考试模拟卷附参考答案【培优A卷】
- 2026年福建省邵武市高二生物下册期末考试模拟卷及参考答案(预热题)
- 2025年江苏省常熟市高二生物下册期末考试试卷含答案(培优A卷)
- 2026年江苏省常熟市高二生物下册期末考试考试卷含完整答案(有一套)
- 2026上海虹口区初三三模物理(含答案)
- 2026年建筑施工焊工考试试题及答案
- 2026年上海市初三语文二模试题汇编《综合运用》含答案
- (2026版)《煤矿重大事故隐患判定标准》培训课件
- 2026年北京市西城区初三下学期二模英语试卷和答案
- 2026生产安全事故应急预案模板
- 社区特殊人群服务管理操作规范
- 体检中心感染工作制度
- 2025年湖北省中考生物、地理合卷试卷真题(含答案)
- 人教部编版六年级下册语文【选择题】专项复习训练真题100题(附答案解析)
- 职业技术学院《思想道德与法治》课程标准
评论
0/150
提交评论