C语言程序设计 教案 9-3 指针与结构体_第1页
C语言程序设计 教案 9-3 指针与结构体_第2页
C语言程序设计 教案 9-3 指针与结构体_第3页
C语言程序设计 教案 9-3 指针与结构体_第4页
C语言程序设计 教案 9-3 指针与结构体_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《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)使用指针优化学生成绩的录入和浏览模块

①使用typodef给学生信息类型定义别名

typedefstructstudent//定义学生成绩结构体

intnum;〃学号

charname[16];〃姓名

floatmath;〃数学成绩

floatyw;〃语文成绩

floateng;〃英语成绩

floatsum;〃总分

}STUDENT,*PSTUDENT;

②修改成绩录入模块

用指向结构体的指针作为函数参数,函数体内用指针法访问结构体成员。

voidfnlnputData(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;i<m;i++,temp++)

if(temp->num-stu->num)

{

printf(〃\n\t该学号已存在,请按任意键继续!");

getchar();

}

〃输入姓名、数学、英语、语文成绩

printf(〃\t\t姓名:〃);

scanfstu->name);

printf("\t\t数学:”);

scanfstu->math);

printf("\t\t英语:〃);

scanf(*%f*,stu->eng);

printf("\t\t语文:“);

scanf(*%fstu->yw);

〃计算总成绩

stu->sum=stu->math+stu->yw+stu->cng;

m++;slu++;

printf(〃\t\t是否继续?(y/n)

scanfch);

}while(strcmp(ch,"y〃)=0strcmp(ch,,,Y,,)==0);

}

③修改成绩浏览模块

voidfnMod(PSTUDENTs)

(

inti;

PSTUDENTstu-s;

printfC\t学号\t姓名\t数学\t语文\t英语\t总分\n〃);

if(m—0)

printfC\n\n\t\t没有记录");

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论