- 1、本文档共82页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
高级语言程序设计 第8章 客观对象的描述 —结构体程序设计 本章要解决的问题 1.学生成绩管理系统的实现(数组和链表) 2.志愿者管理问题 3.扑克牌洗牌和发牌模拟 学习目标 理解客观对象的描述方法—结构体 掌握结构体类型变量的定义和使用方法 学会结构体或指向结构体的指针作为函数参数的 了解自引用结构体及链表结构 了解共用体类型和枚举类型的定义和使用方法 1 学生成绩管理系统的实现 问题描述:假设我们要为学校教务部门开发一个学生成绩管理系统,要求能用这个系统录入学生成绩、修改学生成绩、统计学生成绩、查询学生成绩、输出学生成绩(报表)。为了简单,现在只考虑某一门课程的成绩,每个同学的成绩包括平时、期中、期末和平均成绩。 分析 它的主流程是 当时还没有能力实现,每个函数模块用了一个树桩stub或存根先占在那里 void input(void) { printf(“ok\n”); } 现在到了可以实现的时候了 假设现在要管理的某门课程的学生数是固定的60,首先要解决的是如何存放这60个学生的某门课程的成绩相关的信息? 某门课程成绩相关的信息应该包括: 姓名、学号、平时成绩、期中成绩、期末成绩、总评成绩 用前面学过的方法:数组 用多个一维数组 char *num[60]; char *name[60]; int dailyGrade[60]; int midGrade[60]; int endGrade[60]; float average[60]; 这时各个模块函数的原型可定义为 void input (char *num, char *name, int dg[], int mg[], int eg[], int ag[]); … 其它几个略 void print (char *num, char *name, int dg[], int mg[], int eg[], int ag[]); 请大家自己实现这个版本 这种方法有什么特点? 数据在内存中的分布比较分散 这样的一组属性数据所表达的客观对象怎么定义呢? 能不能像整数用int类型,字符用char类型那样定义问题中的对象为一种类型呢?如学生类型 如果能,就可以用这个自定义的学生类型去创建问题中涉及的学生对象啦。 学生对象的描述 你能不能给学生下个定义? 不同的人可能关注学生不同的一组特征/属性 如:学生处关心的是学生注册相关的属性 姓名,学号,年龄,性 别,出生日期,籍贯,家庭住址,…. 不同的学生只是属性值不同而已 教务部门把学生对象描述成 学号,姓名,平时成绩,期中成绩,期末成绩,总评成绩 确定了对象的属性,对象就基本确定了 C语言允许用结构体类型表达客观世界的对象 struct 结构体类型名{ 成员列表; }; 其中struct 是关键字,成员列表给出成员的类型和名字,注意这个定义的结尾必须跟一个分号;表示结构体类型定义结束。 例1 学生结构体类型的定义 (成绩信息相关的) struct student{ char *num; char *name; int dailyGrade; int midGrade; int endGrade; float average; }; 这样我们就定义了一种新的类型它叫struct student,它与我们熟悉的int,float等具有同等地位。 例2 平面上的点结构体类型定义 struct point{ int x; int y; }?; 任何一类客观世界的对象均可抽象成一个结构体类型 结构体变量的定义和初始化 有了结构体类型之后就可以用它定义具体的客观对象(结构体类型的变量) struct student li, wang; struct student zhang; 注意现在的类型名是 struct student 对象li, wang, zhang的属性是什么? 定义之后分别给各个成员赋值,要用成员运算符 . 如 li.num=00002; li.name=lihong; li.dailyGrade=85; li.midGrade=95; li.endGrade=88; li.average=89.2; 在定义时直接初始化 struct student zhang = { 0001, zhangqiang , 80, 70, 100, 83.3 }; 结构体类型的变量支持整体赋值 wang = li; 有时在定义结构类型
您可能关注的文档
- 12、美丽的三潭印月.pptx
- 7厂房、设施与净化空调.ppt
- 7好在烈日和暴雨下.ppt
- 变速箱原理简明教程.ppt
- 变革与争霸之战国篇.ppt
- 7建设工程安全生产管理法规.ppt
- 变频器的电压补偿详解.ppt
- 7月护理人员言行规范.ppt
- 叙述、描写、议论类的归纳(上课).dps.ppt
- 口才班“我是小明星”汇报演出主持词 (2).ppt
- 语文-广东省肇庆市2025届高三第二次模拟试卷和答案(肇庆二模).docx
- 中国通信行业运行情况月度报告(2024年1-11月).pdf
- 2024年中国新能源汽车行业全球竞争力分析与各国进口贸易法规影响白皮书-特易资讯.pdf
- 热电“三保”与碳排双控.pdf
- 数据中心行业分析报告 2025.pdf
- 【灼鼎咨询】2024年自动驾驶行业知识报告(智能驾驶、新能源汽车、NOA).pdf
- 政治-江苏省苏州市2024-2025学年2025届高三第一学期学业期末质量阳光指标调研卷试题和答案.docx
- 政治-广东省东莞市、揭阳市、韶关市2025届高三期末教学质量检查试题和答案.docx
- 自适应物理安全与信息安全系统 -智能制造的动态安全方法 2025.pdf
- 【国联证券】通信行业专题研究:Marvell AI day,算力需求推动光互联加速迭代.pdf
最近下载
- 西南11J516室外装修[1] .pdf VIP
- 2024年高考化学真题完全解读(湖南卷).pptx VIP
- 新概念青少版2A期中测试题.pdf VIP
- 数列(共84张课件).pptx VIP
- 2024年高考化学真题完全解读(湖北卷).pptx VIP
- 2024年高考真题完全解读课件:2024年高考化学真题完全解读(河北卷).pptx VIP
- 室内燃气泄露应急处理课件.pptx VIP
- (部编版)语文二年级上册寒假课外阅读“天天练”30篇,附参考答案.doc
- 专题09+阅读回答问题20篇(近年中考真题)-2024年中考英语逆袭冲刺名校模拟真题速递.docx VIP
- 总经理年终工作总结报告PPT课件.pptx VIP
文档评论(0)