- 1、本文档共175页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实用c语言程序设计教程 第7章复杂数据结构——结构体、联合及用户自定义类型
C语言程序设计 - 第1章 C语言学习基础 第7章 复杂数据结构——结构体、联合及 用户自定义类型 本章教学目标 1、掌握定义结构体类型、结构体变量、结构体数 组和结构体指针的方法。 2、掌握初始化结构体变量、结构体数组的方法。 3、掌握结构体成员的引用方法。 4、应用结构体变量、结构体数组和结构体指针 5、掌握结构体在函数中的使用 6、掌握链表的概念和基本操作 7、掌握联合体的概念、存储特点及应用。 8、了解自定义类型、枚举类型的概念和应用 本章项目任务 利用结构体,重新设计“学生信息管理系统”。 本章内容 7.1 结构及结构变量的引入 7.2 结构数组 7.3 结构与指针 7.4 结构体与函数 7.5 链表 7.6 特殊的数据类型——联合体 7.7 用typedef定义类型 7.8 枚举(Enumeration)类型 7.1 结构(Structure)及结构变量的引入 7.1.1 结构体类型(Structure type )的定义 结构体类型定义的一般形式: struct 结构体类型名 { 类型名1 结构成员名表1; 类型名2 结构成员名表2; …… 类型名n 结构成员名表n; }; 【项目案例7-1】“学生信息管理系统”中不同结构体类型的定义。 分析: 综合前面各章节的分析,在“学生信息管理系统”中应该有用户、课程结、班级和学生结构体。各结构体类型定义如下: (1)用户结构体类型 对于登录系统的用户应包括两种最基本的用户:管理员(系统管理员)、普通用户(教师和学生)。每个用户都有各自的用户名、密码和用户类型三个最基本的属性,且不同的用户有不同的操作权限。因此可以将用户结构体定义如下: (2)课程结构体类型 为了反映课程的特征,需要设置课程结构体。课程结构体定义如下: struct course /*定义课程结构体course */ { int courseid; /*课程编号,用整型变量表示*/ char coursename[20]; /*课程名称*/ int credit; /*课程学分*/ int AcademicHour; /*教学课时*/ }; (3)班级结构体类型 为了反映班级的基本信息,需要设置班级结构体。班级结构体定义如下: struct class /*定义班级结构体class */ { char classname[20]; /*班级编号*/ char specialty[20]; /*专业名称*/ int studentnum; /*班级的学生人数*/ int class_coursenum; /*班级要求所修的课程数*/ /*假设每班最多能设置N(符号常量)门课程*/ int class_courseid[N]; /*班级必修课程编号数组*/ }; (4)学生结构体类型 学生结构体类型成员应该包含两大类:基本信息(学号、姓名、出生日期、班级代码等)和成绩信息(各科成绩)。因此可以把学生结构体定义如下: struct student /*定义学生结构体student */ { char studentid[20]; /*学生学号,惟一*/ char classname[20]; /*所在班级编号*/ char studentname[N]; /*学生姓名*/ struct date { int year,month,day; }birthday; /*出生日期*/ int scorearr[N]; /*学生成绩数组*/ }; (5)班级-课程结构体 学校中的每个班级编号是唯一的,而不同的班级可以设置不同的课程组。为了反映班级和所选课程组之间的关系,定义班级-课程结构体如下: /*定义班级-课程结构体class_course*/ struct class_course { char classname[20]; /*班级编号*/ int class_courseid[N]; /*班级课程编号数组*/ char coursename[N] [20]; /*课程名称*/ }; (6)班级-学生结构体 入学时确定某学生属于某班级,但有可能发生学生异动的情况,为了
您可能关注的文档
- 半导体制造-刻蚀工艺介绍.doc
- 半导体制造工艺期末复习.doc
- 半导体器件 基本放大电路 江苏大学.ppt
- 半导体基础常识和半导体器件工艺[精读].doc
- 半导体基础常识和半导体器件工艺[优质文档].doc
- 半导体制造技术导论离子注入工艺.ppt
- 半导体工程师简历5篇.doc
- 半导体基础知识(员工资料).ppt
- 半导体器件与工艺-黄如&&张兴——01-02-集成电路制造工艺技术--a.ppt
- 半导体工艺名词及解释.doc
- 抖音短视频运营方案.pptx
- 高中化学 2.1《化学反应速率》课件1 新人教版选修4.ppt
- 铜矿开采中的社会稳定风险评价与管理策略考核试卷.docx
- 南京航空航天大学金城学院《货币银行学(I)》2023-2024学年第一学期期末试卷.doc
- 南京航空航天大学金城学院《货币银行学(I)》2022-2023学年第一学期期末试卷.doc
- 南京航空航天大学金城学院《货币银行学(I)》2021-2022学年第一学期期末试卷.doc
- 南京航空航天大学金城学院《现场总线技术B》2021-2022学年第一学期期末试卷.doc
- 南京航空航天大学金城学院《工商管理专业导论》2021-2022学年第一学期期末试卷.doc
- 南京航空航天大学金城学院《投资学(I)》2023-2024学年第一学期期末试卷.doc
- 南京航空航天大学金城学院《现场总线技术B》2022-2023学年第一学期期末试卷.doc
文档评论(0)