




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
教 案 首 页授课日期年级、专业课 题: 第9章 用户自己建立数据类型 课 型: 讲授+上机 目的要求: 1、掌握结构体和结构体变量 2、掌握共用体类型 重 点: 1、结构体数组 2、结构体指针 难 点: 1、用结构体处理链表 2、美剧类型 教学方法: 多媒体教学+上机 课外作业: 课后分析: 检查者签字: 年 月 日第9章 用户自己建立数据类型9.1 定义和使用结构体变量9.1.1 自己建立结构体类型用户自己建立由不同类型数据组成的组合型的数据结构,它称为结构体例如,一个学生的学号、姓名、性别、年龄、成绩、家庭地址等项,是属于同一个学生的,因此组成一个组合数据,如student_1的变量,反映它们之间的内在联系声明一个结构体类型的一般形式为: struct 结构体名 成员表列 ; 说明:(1)结构体类型并非只有一种,而是可以设计出许多种结构体类型,例如struct Teacherstruct Workerstruct Date等结构体类型各自包含不同的成员(2) 成员可以属于另一个结构体类型。 struct Date int month; int day; int year; ;struct Stu int num;char name20; char sex;int age; struct Date birthday; char addr30; ;前面只是建立了一个结构体类型,它相当于一个模型,并没有定义变量,其中并无具体数据,系统对之也不分配存储单元。相当于设计好了图纸,但并未建成具体的房屋。为了能在程序中使用结构体类型的数据,应当定义结构体类型的变量,并在其中存放具体的数据。9.1.2 定义结构体类型变量1. 先声明结构体类型,再定义该类型变量声明结构体类型struct Student,可以用它来定义变量 struct Student student1,student2;2.在声明类型的同时定义变量struct Student int num; char name20; char sex; int age; float score; char addr30; student1,student2;3. 不指定类型名而直接定义结构体类型变量其一般形式为: struct 成员表列 变量名表列; 指定了一个无名的结构体类型 。(1) 结构体类型与结构体变量是不同的概念,不要混同。只能对变量赋值、存取或运算,而不能对一个类型赋值、存取或运算。在编译时,对类型是不分配空间的,只对变量分配空间。(2) 结构体类型中的成员名可以与程序中的变量名相同,但二者不代表同一对象。(3) 对结构体变量中的成员(即“域”),可以单独使用,它的作用与地位相当于普通变量。9.2 使用结构体数组例9.3 有3个候选人,每个选民只能投票选一人,要求编一个统计选票的程序,先后输入被选人的名字,最后输出各人得票结果。解题思路:设一个结构体数组,数组中包含3个元素每个元素中的信息应包括候选人的姓名(字符型)和得票数(整型)输入被选人的姓名,然后与数组元素中的“姓名”成员比较,如果相同,就给这个元素中的“得票数”成员的值加1输出所有元素的信息#include #include struct Person char name20; int count; leader3=“Li”,0,“Zhang”,0,“Sun”,0; int main() int i,j; char leader_name20; for (i=1;i=10;i+) scanf(“%s”,leader_name); for(j=0;j3;j+) if(strcmp(leader_name, )=0) leaderj.count+; for(i=0;isun) u枚举元素的比较规则是按其在初始化时指定的整数来进行比较的。u如果定义时未人为指定,则按上面的默认规则处理,即第一个枚举元素的值为,故monsun,satfri例9.12 口袋中有红、黄、蓝、白、黑5种颜色的球若干个。每次从口袋中先后取出3个球,问得到3种不同颜色的球的可能取法,输出每种排列的情况。#include int main()enum Colorred,yellow,blue,white,black; enum Color i,j,k,pri; int n,loop; n=0; for (i=red;i=black;i+) for (j=red;j=black;j+) if (i!=j) for (k=red;k=black;k+) if (k!=i) & (k!=j) n=n+1; printf(“%-4d”,n); for (loop=1;loop=3;loop+) switch (loop) case 1: pri=i;break; case 2: pri=j;break; case 3: pri=k;break; default:break; switch (pri) case red: printf(“%-10s”,“red”); break; case yellow:printf(%-10s,yellow); break; case blue: printf(“%-10s”,“blue”); break; case white: printf(“%-10s”,“white”); break; case black: printf(%-10s,black); break; printf(n); printf(ntotal:%5dn,n); return 0;9.7 用typedef声明新类型名1.简单地用一个新的类型名代替原有的类型名typedef int Integer; typedef float Real;int i,j; float a,b; 与Integer i,j; Real a,b;等价2.命名一个简单的类型名代替复杂的类型表示方法(1)命名一个新的类型名代表结构体类型: typedef struct int month; int day; int year; Date;Date birthday; Date *p; (2) 命名一个新的类型名代表数组类型typedef int Num100; Num a; (3)命名一个新的类型名代表一个指针类型typedef char *String; String p,s10; (4)命名一个新的类型名代表指向函数的指针类型typedef int (*Pointer)(); Pointer p1,p2; 归纳起来,声明一个新的类型名的方法是 先按定义变量的方法写出定义体(int i;) 将变量名换成新类型名(将i换成Count) 在最前面加typedef (typedef int Count) 用新类型名去定义变量说明:(1)以上的方法实际上是为特定的类型指定了一个同义字(synonyms)。例如typedef int Num100; Num a; Num是int 100的同义词typedef int (*Pointer)();Pointer p1; Pointer是int (*)()的同义词(2) 用typedef只是对已经存在的类型指定一个新的类型名,而没有创造新的类型。(3)用tyoedef声明数组类型、指针类型,结构体类型、共用体类型、枚举类型等,使得编程更加方便。(4)typedef与#define表面上有相似之处(5) 当不同源文件中用到同一类型数据时,常
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 记账实操-新入职一家公司会计遇到财务做账问题的解决方案
- 设备维修工作个人总结(二篇)
- 辽宁省丹东市九校联考2024-2025学年七年级下学期5月期中考试英语试题(含笔试答案无听力答案、原文及音频)
- 河南省开封市兰考县2024-2025学年八年级下学期期末学情分析道德与法治试卷(B)(含答案)
- 2025年辽宁省中考英语模拟试题(二)含答案
- 幼儿园《图形王国》公开课教案
- 部编版四年级下册第四单元《猫》教案
- 容错纠错调研题目及答案
- 2 8 函数的零点与方程的根-2026版53高考数学总复习A版精炼
- 2025届广东省汕头市高三二模语文试题(解析版)
- 气血疏通中级班教材
- 青岛海明城市发展有限公司及全资子公司招聘笔试真题2022
- 浙江省杭州市2024届数学四下期末考试试题含解析
- 北京市首都师范大学附属回龙观育新学校2025届数学高一下期末统考试题含解析
- 2024年高考物理热点磁场中的旋转圆、放缩圆、平移圆、磁聚焦模型(学生版)
- 三年级下册语文单元字词专项练习-第1单元
- 鸟巢建筑分析
- 联合体施工组织设计审批流程
- 中华民族共同体概论课件专家版10第十讲 中外会通与中华民族巩固壮大(明朝时期)
- 2021年10月自考02326操作系统试题及答案含解析
- 中华民族共同体概论课件专家版5第五讲 大一统与中华民族共同体初步形成(秦汉时期)
评论
0/150
提交评论