- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
《C语言程序设计》教案
课程名称
C语言程序设计
任课教师
总课时
64
教学课题
指针与结构体
授课班级
授课日期
课时
2
教学目标
知识目标:1.掌握指向结构体的指针
能力目标:能够利用指针操作结构体,对结构体成员进行访问。
素质目标:团队合作能力、团队互助,自我学习的习惯
重点难点
指向结构体变量的指针
教学方法
演示、讲解、启发
教学资源
教材《C语言程序设计》
设备准备
VC++6.0,极域电子教室软件,分发工作任务单
教学环节(教学过程)
教学内容
教师活动
学生活动
教学目标
课时
1
演示项目效果
通过教室软件演示程序执行结果
倾听、观看、思考、陈述
给学生演示任务结果
10分钟
2
理论讲解
讲授指向结构体变量的指针、指向结构体数组的指针、指向结构体的指针作为函数参数
讲授
预备需要的理论知识
15分钟
3
举例
通过一个案例进一步讲解指向结构体变量的指针、指向结构体数组的指针、指向结构体的指针作为函数参数
讲授、演示
通过实际应用帮助学生理解理论知识
20分钟
4
应用
布置两个相关题目
辅导、答疑
通过做相关练习题帮助学生更好的理解相关知识
45分钟
教学内容(详细):
1指针与结构体
(1)指向结构体变量的指针
指向结构体变量的指针称为结构体指针,其定义格式和基本数据类型的指针变量定义一样。一般形式为:
struct结构类型名*指针变量名
当结构体指针指向一个结构体变量时,该指针变量的值就是该结构体变量的起始地址。用取地址运算符“”就可获得结构变量的指针。一般形式为:
指针变量名=结构体变量名;
例如:structStudent
{
charname[20];//姓名
intid;//学号
floatscore;//分数
}stu;
指向结构体student的指针变量定义并赋值为:
structstudent*p=stu;
在定义了指向结构体类型变量的指针后,可以通过结构体指针操作结构体变量的成员,常用的访问方式是:
结构体变量名.成员名
(*结构体指针变量名).成员名
结构体指针变量名-成员名
例如:根据如上例子指针变量p指向了结构体变量stu,则三种访问方式分别为:stu.成员名、(*p).成员名、p-成员名。
(2)指向结构体数组的指针
类似于用指向结构体变量的指针,间接访问结构体成员一样,也可以用指向结构体数组及其元素的指针来处理结构体数组。可以把结构体数组的数组名赋值给结构体指针,也就是把结构体数组的首地址赋值给结构体指针。
(3)指向结构体的指针作为函数参数
类似于普通指针变量作为函数参数一样,用指向结构的指针变量作实参时,是属于“地址传递”方式。
(4)使用指针优化学生成绩的录入和浏览模块
①使用typedef给学生信息类型定义别名
typedefstructstudent //定义学生成绩结构体
{
intnum; //学号
charname[16]; //姓名
floatmath; //数学成绩
floatyw; //语文成绩
floateng; //英语成绩
floatsum; //总分
}STUDENT,*PSTUDENT;
②修改成绩录入模块
用指向结构体的指针作为函数参数,函数体内用指针法访问结构体成员。
voidfnInputData(PSTUDENTs)
{
inti;
charch[2];
PSTUDENTstu=s;
stu+=m;//m已录入的记录总数
PSTUDENTtemp;
do{
printf(\n\t请输入学生信息:\n\t\t学号:);
scanf(%ld,stu-num);
for(temp=s,i=0;im;i++,temp++)
if(temp-num==stu-num)
{
printf(\n\t该学号已存在,请按任意键继续!);
getchar();
}
//输入姓名、数学、英语、语文成绩
printf(\t\t姓名:);
scanf(%s,stu-name);
printf(\t\t数学:);
scanf(%f,stu-math);
printf(\t\t英语:);
scanf(%f,stu-eng);
printf(\t\t语文:);
scanf(%f,stu-yw);
//计算总成绩
stu-sum=stu-math+stu-yw+stu-eng;
m++;stu++;
printf(\t\t是否继续?(y/n):);
scanf(%s,ch);
}while(strcmp(ch,y)==0||strcmp(ch,Y)==0);
}
③修改成绩浏览
您可能关注的文档
- 现代物流基础与实务 课件 第二章 物流的起点—包装.pptx
- 现代物流基础与实务 课件 第一章 物流概述.pptx
- C语言程序设计 教案 1-1认识C语言及C程序、C程序的开发环境.docx
- C语言程序设计 教案 1-2运用算法描述问题.docx
- C语言程序设计 教案 2-1基本数据及其运算.docx
- C语言程序设计 教案 2-2C语言的数据类型.docx
- C语言程序设计 教案 2-3运算符和表达式.docx
- C语言程序设计 教案 3-1任务3.1 输入学生的成绩,计算总分及平均分并输出—— C语句.docx
- C语言程序设计 教案 3-1任务3.1 输入学生的成绩,计算总分及平均分并输出——数据的输入和输出.docx
- C语言程序设计 教案 3-2任务3.2 项目封面、菜单的顺序执行设计——顺序结构.docx
最近下载
- 汤显祖和牡丹亭.pptx VIP
- 2024年春江苏开放大学Android基础050324第三次形考作业.doc VIP
- 冠状动脉CT血管成像在慢性冠脉综合征的风险分层和诊疗中应用的专家共识.pptx
- 上海市浦东新区华东师范大学第二附属中学2024届高一数学第一学期期末考试试题含解析.doc VIP
- 中级商务汉语 全套课件.PPT VIP
- 中国式现代化党课学习主题教育.pptx VIP
- 行政事业单位审计存在的常见问题与对策.pptx VIP
- 营养科患者营养评估.pptx VIP
- IPC-A-610E-2010 国外国际标准.pdf
- 2024-2025学年高中信息技术(信息科技)必修1 数据与计算沪科版(2019)教学设计合集.docx
原创力文档


文档评论(0)