C语言程序设计 教案 9-3 指针与结构体.docx

C语言程序设计 教案 9-3 指针与结构体.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 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);

}

③修改成绩浏览

文档评论(0)

lai + 关注
实名认证
内容提供者

精品资料

版权声明书
用户编号:7040145050000060

1亿VIP精品文档

相关文档