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)使用指针优化学生成绩的录入和浏览模块①使用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;i<m;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);}③修改成绩浏览模块voidfnMod(PSTUDENTs){inti;PSTUDENTstu=s;printf("\t学号\t姓名\t数学\t语文\t英语\t总分\n");if(m==0)printf("\n\n\t\t没有记录");for(i=0;i<m;i++,stu++)printf("\t%-8ld%-8s%-8.1f%-8.1f%-8.1f%-8.1f\n",stu->nu

温馨提示

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

评论

0/150

提交评论