版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C C语言程序设计语言程序设计项目七项目七 结构体结构体 1 项目七 结构体项目目标项目目标目标二目标二 掌握结构体类型变量的声明和成员引用掌握结构体类型变量的声明和成员引用目标三目标三 初步掌握联合体的基础知识初步掌握联合体的基础知识 目标四目标四 掌握枚举类型的基础知识掌握枚举类型的基础知识目标一目标一 掌握结构体类型的定义掌握结构体类型的定义目标五目标五 能编写程序解决学生信息登记的问题能编写程序解决学生信息登记的问题2 项目七 结构体任任务务分解分解了解结构体了解结构体1结构体变量的引用结构体变量的引用2输入和输出学生信息输入和输出学生信息3项目实现项目实现4项目拓展一项目拓展一 根据
2、学生成绩进行排序根据学生成绩进行排序5项目拓展二项目拓展二 结构体的嵌套结构体的嵌套6项目拓展一项目拓展一 联合体和枚举类型联合体和枚举类型73 项目七 结构体项项目要求目要求v 完成简易的学生信息管理系统,包括:学生信息的输入、输出和排序等。4 项目七 结构体v 应用需求v 什么是结构型为了将不同类型的数据存放在一起。是一种构造类型,是用户自定义的类型。与之类似的,int、float是系统定义的类型。任任务务一一 了解了解结构结构体体5 项目七 结构体v 1结构体类型定义struct 结构名结构名 数据类型数据类型1 成员名成员名1; 数据类型数据类型2 成员名成员名2; 数据类型数据类型n
3、 成员名成员名n;struct stu int num; char name20; char sex; float score;stu s1; /*定义stu类型的变量s1*/s1.num = 1001; /*使用s1变量*/s1.score = 95; /*使用s1变量*/6 项目七 结构体v 2结构类型变量的说明stu s1; /*定义stu类型的变量s1*/s1.num = 1001; /*使用s1变量*/s1.score = 95; /*使用s1变量*/v struct stu /*定义学生信息结构类型*/v v char num10; /*学号*/v char name20; /*姓
4、名 */v char sex4; /*性别*/v int age ; /*年龄*/v int score; /*成果*/v boy1,boy2, *p ,s4;7 项目七 结构体v 3结构体变量的初始化v(1在结构体变量定义时对其进行初始化,例如,vstruct stu /*定义学生信息结构类型*/vv char num10; /*学号*/v char name20; /*姓名 */v char sex4; /*性别*/v int age ; /*年龄*/v int score; /*成果*/v boy1=01010101, 李小明, 男,19,88, boy2, *p ,v s4= 0101
5、0101, 李小明, 男,19,88,v 01020202, 王芳, 女,18,78,v 02019303, 刘灿, 女,19,95,v 03010404, 赵小涛, 男,19,68 ;v(2将结构体变量定义与初始化分开,例如,vstruct stu /*定义学生信息结构类型*/vv char num10; /*学号*/v char name20; /*姓名 */v char sex4; /*性别*/v int age ; /*年龄*/v int score; /*成果*/v boy1,boy2, *p ,s4;vstruct stu boy1=01010101, 李小明, 男,19,88;v
6、struct stu s4= 01010101, 李小明, 男,19,88,v 01020202, 王芳, 女,18,78,v 02019303, 刘灿, 女,19,95,v 03010404, 赵小涛, 男,19,68 ;8 项目七 结构体v 4结构体变量的存储 按结构体成员定义的先后顺序连续分配空间。使用该结构变量存储“成员数据。struct stu char num10; /*学号*/ char name20; /*姓名*/ char sex4; /*性别*/ int age ; /*年龄*/ int score; /*成果*/ boy1,boy2;9 项目七 结构体任任务务二二 结构结
7、构体体变变量的引用量的引用 v 1 1引用引用结构变结构变量成量成员员的一般形式的一般形式v printf(%s, boy1.num); printf(%s, boy1.num); v scanf(%s,boy2.sex); scanf(%s,boy2.sex); v s1.age=19; s1.age=19; 结构体不能整体引用,只可以引用其“成员”。 v 2 2引用引用结构结构体指体指针变针变量成量成员员的形式的形式v printf(%s, p1-num); printf(%s, p1-num); v scanf(%s,p1-sex); scanf(%s,p1-sex); v p1-age
8、=19; p1-age=19; 10 项目七 结构体任任务务三三 输输入入学学生信息生信息v 第一步:定义结构体类型请尝试按如下步骤,输入学生信息:请尝试按如下步骤,输入学生信息:v 第二步:声明结构体类型变量或数组v 第三步:初始化变量或数组)v 第四步:将初始化更改为通过scanf函数输入学生信息11 项目七 结构体任任务务四四 输输出出学学生信息生信息v 为程序增加输出学生信息的代码,输出格式如下:12 项目七 结构体任任务务五五 项项目目实现实现v 设计并实现项目菜单,菜单效果如下:v 根据用户选择,实现相应功能。项目实项目实现现13 项目七 结构体项项目六目六 项项目目扩扩展展v 1
9、根据学生成绩进行排序考虑:学生成绩是学生信息的一个“成员”,根据成绩好坏对成绩进行排序,要交换整个学生记录。如何实现呢? 解决方式:定义一个结构体类型的中间变量,以实现记录的整体交换 项目实项目实现现14 项目七 结构体v 2结构体嵌套结构体成员又是一个结构体, 即形成了结构体的嵌套。例如:学生信息登记表中,学生成绩由语文、数学、英语3门课程组成,显然成绩成员就是一个结构体类型的成员。/*定义学生的成绩结构*/struct scoretp int chinese; /*语文*/ int math; /*数学*/ int english; /*英语*/;/*定义学生的成绩结构*/struct s
10、coretp int chinese; /*语文*/ int math; /*数学*/ int english; /*英语*/;/*定义学生信息结构类型*/struct stu char num10; /*学号*/ char name20; /*姓名*/ char sex4; /*性别*/ int age ; /*年龄*/ struct scoretp score; /*成果*/s4;15 项目七 结构体struct stu s4= 01010101, 李小明, 男,19,70,80,77, 01020202, 王芳, 女,18,88,90,85, 02019303, 刘灿, 女,19,67,
11、87,90, 03010404, 赵小涛, 男,19,89,98,95 ;main() int i; /*定义变量*/ printf(学号 姓名 性别 年龄 语文 数学 英语:n); for(i=0 ; i4 ; i+) printf(%s t%s t%s t%d t%d t%d t%dn,si.num,, si.sex,si.age,si.score.chinese,si.score.math, si.score.english); getch(); 16 项目七 结构体v 应用需求v 什么是联合体v 联合体内存分配为了将不同类型的数据存放在一起,但不同的成员占用相为了将不同类
12、型的数据存放在一起,但不同的成员占用相同的内存空间。同的内存空间。也叫共用体。是一种构造类型,是用户自定义的类型。与也叫共用体。是一种构造类型,是用户自定义的类型。与之类似的,之类似的,int、float是系统定义的类型。是系统定义的类型。3联合体17 项目七 结构体union stu char c; int i; float f; ;内存单元内存单元1内存单元内存单元2内存单元内存单元3内存单元内存单元4成员成员C成员成员i成员成员f18 项目七 结构体v 应用需求v 枚举类型定义在实际问题中,有些变量的取值被限定在一个有限的范围在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期只有七天,一年只有十二个月等。内。例如,一个星期只有七天,一年只有十二个月等。4枚举型enum 枚举类型名 枚举值表;enum weekday Sun,Mon,Tue,Wed,Thu,Fri,Sat ;19 项目七 结构体v 枚举类型变量说明定定义时义时直接直接说说明:明:enum weekdayenum weekday Sun,Mon,Tue,Wed,Thu,Fri,Sat a,b,c; Sun,Mon,Tue,Wed,Thu,Fri,Sat a,b,c;先定先定义义后后说说明:明:enum weekd
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 台州市立医院招聘卫技人员考试真题2025
- 襄阳市襄城区专项教师招聘笔试真题及答案
- 2025年湖南理工大学招聘考试试卷真题
- 2026年小学六年级语文第二学期期末考试卷及答案(六)
- 2026年防范非法集资知识竞赛试卷及答案(共十五套)
- 度洛西汀文拉法辛在疼痛伴抑郁共病治疗中的应用
- 2026年餐饮服务合同签订指南二篇
- 幼儿园学生保险自查自纠报告
- 舒适性需求提升带动三腔空气悬架应用增长
- 译林版英语四年级下册Unit 7 素养练习
- JG/T 502-2016环氧树脂涂层钢筋
- 2025年高考生物长句表达汇编
- QGDW11882-2018预制舱式10kV~35kV一二次组合设备技术规范
- 物业急救知识培训
- 小学资助感恩教育主题班会
- 建筑工程降本增效案例
- 小学教育学(第5版)课件 第6章 小学教育内容
- 路基路面压实度评定自动计算表-标准-
- 《中国园林的韵味》课件
- 《腕骨骨折脱位》课件
- 地下车库清洁工作合同
评论
0/150
提交评论