版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
年秋季学期本科课程教学日历C语言程序设计32授课班级1804005,1804006,1804007课程属性专业基础课课程学分3.0授课起止周数9-16张小东等编著,人民邮电出版社,2017923课堂授课第一章简单C程序设计1.1C程序的构成通过实例学习,掌握C程序的基本结构1.2C程序的入门知识讲述C语言的基本数据类型、标识符、变量和常量、格式化输出/输入函数M2041-8943课堂授课第一章简单C程序设计1.3简单C程序的扩展讲述基本功能设计、程序设计描述的方法、程序实现及常见错误分析及编程风格第二章选择控制结构与应用2.1选择结构的基本运算符讲解关系运算符、逻辑运算符及表达式等2.2.1if选择结构if结构一般形式、流程图表达方式及如何使用2.2.2if语句嵌套讲解if语句的嵌套及实用例M2048-1316-241023课堂授课第二章简单判定问题求解2.2.3表达式在if结构中使用的拓展表达式的要求、条件运算符、条件表达式及条件语句2.3switch选择结构讲解switch语句的表达形式及其使用方法和简单的应用实例2.4应用实例M20424-351043课堂授课第三章循环结构及应用3.1概述讲述循环控制语句的特点3.2循环结构3.2.1讲解for循环的表达形式、流程图绘制方法及应用实例;讲解复合运算符;3.2.2讲解while循环的表达形式、流程图绘制方法及应用实例;M20438-491123课堂授课第三章循环结构及应用3.2.3讲解dowhile循环的表达形式、流程图绘制方法及应用实例。3.2.4goto循环3.3循环控制结构的设计讲解循环嵌套、循环控制及循环语句的选择。3.5应用实例用循环语句去改写计算器和学生成绩档案管理程序M20449-651143课堂授课第四章模块化设计与应用4.1模块化程序设计方法讲解模块化程序设计的要点4.2函数4.2.1函数的定义4.2.2函数的调用4.2.3函数设计实例M20468-791223课堂授课第四章模块化设计与应用4.3预处理预处理指令的使用方法4.4应用实例使用模块化设计方法改造计算器、学生成绩档案管理程序M20479-901243课堂授课第五章相同数据类型集合5.1数组与数组元素的概念数组的基本概念5.2一维数组一维数组的存储形式、定义、初始化及使用方法5.3二维及多维存储二维数组的存储形式、定义、初始化及使用方法M20493-1081323反转课堂M2041343课堂授课第五章相同数据类型集合5.4字符类型数组及字符串字符类型的数组、字符串的概念、字符串与字符类型的区别与联系5.5字符串处理函数讲解字符串处理的8个基本函数的使用方法5.6指针变量、字符串指针变量与字符串讲解以指针的方式处理字符串及批量数据5.7应用实例应用数组及字符串的知识拓展计算器和学生档案管理系统M204108-1281423课堂授课第六章深入模块化设计与应用6.1算法基本概念算法的基本概念及设计要点6.2简的排序算法讲解冒泡排序及选择排序6.3嵌套与递归设计及应用讲解函数的嵌套设计方法、递归调用的定义、设计要点及应用实例M204132-1511443课堂授课6.4模块间的批量数据传递讲解指针、数组在函数设计当中的设计要点及重要用途6.5模块化设计中程序代码的访问讲述以指针方式访问程序代码的方法6.6应用实例使用排序算法、函数嵌套调用等知识去拓展计算器及学生成绩档案管理系统M204152-1641523课堂授课第七章构造数据类型与应用7.1结构体讲解结构体、结构体指针、结构体与函数、位段等M204169-1861543课堂授课第七章构造数据类型7.2共用体讲解共用体的定义、使用方法,共用体与结构体的区别与联系7.3枚举讲解枚举类型的定义及使用方法M204186-2001623课堂授课第八章综合设计与应用8.1变量的作用域与存储类别讲解变量的完整定义模式、存储类别等8.2指针与数组一维指针与一维数组的关系、一维指针与二维及多维数组的关系,多维指针与数组的关系8.3函数main()中的参数main()的精确表达方式、参数的用法等8.4指针型函数讲述指针型函数的定义与使用方法8.5动态存储空间分配讲解指针的动态存储空间分配的方法,设计时的注意事项等M204203-2201643课堂授课第九章数据永久性存储9.1数据的永久性存储数据永久性存储的概念—文件9.2文件组织方式文本文件和二进制文件9.3文件的操作文件操作的函数9.4综合应用实例讲述指针型函数的定义与使用方法M204238-258任课教师签字:教研室主任签字:
《C语言程序设计》教案(1-3)授课题目第一章简单C程序设计3学时目的与要求重点与难点目的:(1)掌握C语言程序的基本组成结构。(2)通过基础知识的学习,理解C语言程序的基本组成结构的含义,初步理解如何进行程序的编写并能编写简单的程序。要求:(1)了解本课程的教学计划、安排、知识结构及学习方法,达到本课程所要求的目标。(2)运用课堂上学习的基础知识,在老师的指导下编写简单的C语言程序,能够就简单的计算性问题,设计并编写C语言程序。重点:C语言程序的结构、数据类型、常量;基本运算符、基本输入/输出。难点:运算符的优先级与结合性、格式输出输入函数printf和scanf、绘制流程图。教学方法及手段课件:根据本节课程设计的内容及教学计划,逐步展现知识点。板书:针对学生在学习和练习过程中出现的问题,进行补充讲解。调节课堂节奏,给学生思考的时间。教师程序编写:让学生观摩程序的编写、运行及产生结果的过程,与所学知识点一一对应,加深理解。学生用手机C语言模拟器编写程序:题目与例题类似,但小有变化,让学生在理解的基础上进行程序编写,为今后的程序设计打下基础,减少程序设计中的错误。问答:就一些知识点的灵活性与学生进行问答互动。就(4)和(5)中同学们的表现给出部分平时分,为了鼓励同学们的参与积极性,参与者加1分,答对者加2-3分。教学内容 1.课前内容安排C语言程序设计课程成绩核算方法平时成绩占总成绩的10%,采用百分制,乘以10%计入总成绩。实验及报告占总成绩的20%:共6个实验翻转课堂10%期末考试点总成绩的60%C语言程序核算方法(2学分)讲课学时32实验学时162.课程知识点的组织3.本节课程讲解的内容简单讲解C语言的教学安排及成绩核算方式。简单C程序设计说明本章重点与难点1.1C程序的构成(1学时)教学内容如下:通过一个程序实例讲述C语言的构成要素,让同学们理解与计算机进行编程级的交流需要做哪些准备。将程序实例中可变化的内容做一些调整,加深学生对知识点的理解。让学生仿照这个例子写一个相似的小程序。讲解思路如下:实践是让学生快速掌握知识点的重要手段。C语言程序的基本组成只有4个部分,每个部分都有固定的格式和变化万千的内容。注释固定格式:“/**/”和“//”固定的内容:通常是作者、开发时间及版本等描述,在团队开发及软件维护时,这部分非常重要变化内容:注释中所要表达的设计思想或程序的用途关于注释:Programsmustbewrittenforpeopletoread,andonlyincidentallyformachinestoexecute.【提问】用一句简洁的话概括程序的用途或编程思路?头文件固定格式:#include<>或#include“”变化内容:在<>或“”之内,如<math.h>、“stdio.h”【提问】例题中使用的函数printf()原代码在什么地方?为什么我们可以在main函数中调用它?函数main()的头部固定格式:返回值类型main(参数){……return返回值}变化内容:返回值类型—整数型、浮点型、字符型、指针类型……;参数的个数及其类型;函数main()的内部固定格式:return返回值—类型与返回值类型一致变化内容:返回值的变化是无穷的。{}—其中的内容变化是无穷的。【提问】仿照例题在练习中改变变量的值,改变运算符,看看运行效果。授课阶段总结如下:固定部分是需要学生熟记的部分,它们在设计时可以套用。变化部分是在设计过程中依据具体问题进行编写的部分,非常灵活,涉及到知识点多(不光是程序语言,还包括数学、物理等各个不同的专业领域知识),变化多,是难点所在。将固定部分与变化部分按照C语言的规则合法合理的组合起来,才能设计出好的程序,从而更好的解决问题。这是建立计算设计思维的基础。每一部分这里只简单的介绍,后继章节将会继续加强。1.2C语言的入门知识(1学时)C语言是一门非常严谨的语言,其中出现的每一个符号都有确切的含义。教学内容如下:C语言常见的标识符号:关键字、标识符、分隔符、运算符等,介绍每一种符号意义、特征、用途,并在例题中找到对应点。基本数据类型:整数、浮点数和字符格式化输出输入函数:printf和scanfC语言的书写规则讲解思路如下:对照例题解讲每一类标识符号概念,需要强调分隔符是区分语言单位的符号,学生一部分错误来源于分隔符运用的不当。区分关键字与标识符,强调程序员命名的标识符(变量和函数名)不能与关键字相同。运算符学习的三个要点:优先级、结合性、操作数;每个运算符都有各自的特点,如“=”,左侧必须为变量等。另外,它们还受限于操作数的数据类型。算术运算符和赋值运算任:格式固定:操作数1算法术运算符操作数2;变量=表达式。内容可变—操作数可为变量、常量,表达式可以是变量、常量及算术表达式。【提问】每一种运算符的标准表达方式?整数的基本形式,从整数类型的关键字出发,引导学生总结出整型家族。变量声明:格式固定—数据类型变量名。内容可变—数据类型包括整数、浮点数、字符,变量名—由用户定义。【提问】整型家族包含哪些内容?数据类型与存储,由这个概念引导入字符型与整数之间的关系,包括它们之间的区别与联系【提问】重新总结整型家族数据类型与运算符的关系总结前面对于printf的使用,引入它的标准格式;讲解地址常识,引入scanf函数;对比函数printf和scanf在格式控制上异同输入与输出:格式固定但格式控制符、修饰符及变量与常量的个数是可变的。【提问】做输入输出的小练习。授课阶段总结如下:本节的知识点多且比较零散,通过固定内容与变化对比讲解,让学生深刻理解,通过有效的程序设计可以把这些知识点组织起来,形成一个整体。1.3简单C程序的扩展(1学时)在上两小节的基础上,可以对例题进行扩展,为了对学生编程能力进行训练,进行了下述内容的安排。教学内容如下:功能设计绘制流程图表达设计思路依据流程图进行程序设计讲解思路如下:依据用户需求,设计程序功能介绍流程图的图元符号并用流程图表达功能中的计算过程依据流程图编写简单的计算器程序代码对代码进行测试【实践】完善计算器的所有代码【提问】这个计算器有哪些缺陷?授课阶段总结如下:初学语言的学生对知识点与编程实践比较感兴趣,但却容易忽略设计思维的训练,它包括程序设计及用语言完成该设计两个阶段。程序设计必须要找一种有效的手段来表达设计思路—流程图。流程图设计出来了,但一些同学的程序与流程图不一致,这也是初学者容易犯的错误。修改逻辑错误,要先从设计开始检查。本小节内容是将第一章所学的知识点串连起来形一个较为完整的应用程序,既巩固了所不的知识,又训练了设计能力,开启了同学们的程序设计之旅。本次课程总结本节课程共分三个小节,分别讲解C语言的基本组成、入门知识及在前两个小节的基础上对例题进行有效的扩展,讲解的层次是整体离散整体。从一道例题让学生看到C语言的整体组织结构,然后,讲解其中所涉及的知识点并加以扩展,最后,再用一道例题把这些知识点组织起来。完全按照理工科的教学思维来进行,遇到问题、学习知识、解决问题。其间,做一些小练习巩固各个知识点,同时,提一些小问题,引发学生学习兴趣,扩展知识的应用深度,并能够组织所学知识解决问题。4.课堂互动与实践(1)在老师的指导下,让学生安装程序编写环境。(2)让学生完成“你好,哈工大(威海)“程序,让学生初步掌握编程的方法。(3)让学生完成输入输出程序编写。(4)让学生计算器小程序。(5)其他问题见本章每一个节中。给实践互动环节中表现出色的同学适当增加平时分。5.课堂记录
《C语言程序设计》教案(4-6)授课题目第二章选择控制结构与应用3学时目的与要求重点与难点目的:(1)掌握三种运算符及表达式。(2)通过基础知识的学习,理解C语言程序的基本组成结构的含义,初步理解如何进行程序的编写掌握。要求:(1)掌握if条件语句的三种基本形式,能够编写单分支、双分支和多分支选择控制的程序(2)掌握switch多路选择语句,在解决问题时,能够正确选择switch和if语句。(3)掌握选择语句的流程图的算法描述方法重点:if选择结构和switch选择结构。难点:复合运算符及复杂表达式和多条件选择结构。教学方法及手段课件:根据本节课程设计的内容及计划安,逐步展现知识点。板书:针对学生在学习和练习过程中出现的问题,进行补充讲解。调节课堂节奏,给学生思考的时间。教师程序编写:让学生观摩程序的编写、运行及产生结果的过程,与知识点一一对应,加深理解。学生用手机C语言模拟器编写程序:题目与例题类似,但小有变化,让学生在理解的基础上进行程序编写,为今后的程序设计打下基础,减少程序设计中的错误。问答:就一些知识点的变化与学生进行问答互动。就(4)和(5)中同学们的表现给出部分平时分,为了鼓励同学们的参与积极性,参与者加1分,答对者加2-3分。教学内容 课程内容的引入对第一章的内容进行总结,提出第一章的程序编写中缺少按照不同的条件选择执行不同的代码的机制,而在实际应用中很多情况下,需要依据不同的条件,执行不同的运算过处理器,如博弈类游戏的设计等。为此,(1)需要学习更多的运算符(2)学习选择结构的代码设计本节课程讲解的内容第二章选择控制结构与应用说明本章重点与难点2.1选择结构的基本运算符(0.5学时)教学内容讲解关系运算符、逻辑运算符的程序设计要点:关系运算符及关系表达式(6个)。逻辑运算符及逻辑表达式(3个)。短路原则。让学生编写小程序,输出两类运算表达式的值。讲解思路学习运算符的要点有三个:优先级、操作数个数和结合性(第1章讲解算术运算符和赋值运算符时首提)。关系运算符和逻辑运算符的学习也需要把握住这三个要点。表达式的名称和运算结果是由优先级最低的运算符决定的。关系或逻辑表达式的值只有两个:真(非零)和假(零)。分析复杂表达式时,应先找优先级别最高的运算符,同时,注意”()”的优先级别很高,它往往可以改变表达式的运算次序。通过分析复杂表达的运算逻辑,推导出短路原则。编写一个输出复杂表达式的值及每个参与变量的值的程序。预估程序结果,然后与实验结果对比,从而深入理解短路原则及表达式的运算规律。【提问】什么样的表达式叫逻辑表达式/关系表达式?【实践】编写小程序输出关系运算表达式和逻辑运算表达式的值授课阶段总结本节学习运行算符的方法与第1章是一样的,要抓住三个要点。复杂表达式的分析与设计并不简单,需要抓住运算符的运算特点,分析表达式的运算逻辑,才能得到正确的结果。在实例练中,通过观察变量在运行过程中的变化,去推断程序运算逻辑(如短路原则)。这是调试时常用手段(与debug一样),不但加深同学对知识的理解、巩固学生所学知识,还有助于培养学生的程序分析能力和反工程能力。“程序主要用来阅读的,只是偶尔用于执行”,所以,建议学生尽量用简单的表达式,并学会化简复杂表达式的方法,如讲解思路(4)中所述。2.2if选择结构(1学时)教学内容if结构if-else结构if-else-if结构if语句嵌套表达式在if结构中使用的拓展讲解思路if结构:用流程图说明if结构的设计思路,以两个数比较大小为例讲解if结构的用法。通过练习,找到if中的语句块与单条语句的语法区别。if-else结构:用流程图说明if-else结构的设计思想,改写两个数比较大小的实例,让学生看两者的区别,并能总结出在此例中if-else的方便性。if-else-if结构:用流程图说明if-else-if结构的程序设计思路,强调最后一个else的作用。以学生成绩分等级为例讲解if-else-if的用法。if语句嵌套:if语句的嵌套规则,强调没有括号改为配对方式的情况下,else与if语句的配对原则【提问】if语句中的条件表达式必须是关系或逻辑表达式吗?表达式在if结构中使用的拓展:任意表达式都可以作为if语句的条件表达式。条件表达式的设计与应用(包括逻辑分析)用实例说明条件运算符与if-else语句的异同【实践】分别用if语句和if-else语句编写判断两个数大小的程序授课阶段总结本节的知识点不难理解,但有些小地方容易出错:关系运算符中“==”会错写为赋值运算,可利用赋值运算符的运算规则避免出现逻辑上的错误(系统不会报语法错误),技巧为:如果在关系运算中存在数字,则可以把数字写在“==”的右侧,这样关系运算就不会报语法错误。if结构中多条语句时,容易忘加“{}”误认为单独的变量不能做条件表达,其实,任意合法的表达式都可以做条件表达式多级嵌套的条件表达式编写与设计容易出错,建议嵌套层次不要包含两层以上。2.3switch选择结构(0.5学时)教学内容switch结构。强制类型转换。switch结构应用实例。比较switch选择结构与if-else-if选择结构。讲解思路switch选择结构。首先讲解switch选择结构的表达形式及语法含义,然后,用流程图讲解它的执行次序及使用方法。特别注意两点:switch条件表达式只能进行判等运算;break对于switch执行的影响。switch结构应用实例。将(1)中的知识点运用的实例当中。比较switch选择结构与if-else-if选择结构。对上述实例进行总结,从两者的运算机理到使用方法等6个方面比较它们使用方法和应用场合。实践:编写学生成绩分等级的程序授课阶段总结switch语法比较复杂,而且要求比较严格。学习时,要记住它的语法格式及相关的程序设计要求。从程序阅读角度来看,switch比if-else-if具有更好的结构且执行效率也高,但是switch执行条件比if-else-if要严格,它们之间相互替换使用时,通常switch需要更多的程序设计技巧。2.4应用实例(1学时)教学内容计算器程序设计。强制类型转换。首先讲解数据类型之间的转换规则,然后讲解转换的方法及用途。学生成绩档案管理—成绩等级划分。讲解思路本小节主讲设计思想,所以每一个例题都必须有流程图来表达设计思想,通过讲解流程图帮学生梳理思路。然后,把对编程实现时用到技巧及难点进行讲解。计算器程序设计难点及设计技巧是从用户角度考虑两方面的内容:友好的交互界面(增加用户体验感)和运算的健壮性友好的交互界面:没有一种计算器在实际应用中是在用户输入操作数后,会把所有的计算都运算一遍(第1章我们编写的计算器是这样的)。同操作数一样,进行哪种运算由用户指定,为此,加入菜单,让用户从菜单上选择计算方式。菜单用输出函数printf打印出来选择计算方式用switch选择结构实现,每个case对应一个计算功能健壮性:在进行除法运算时,当除数为0时,应提示用户输入错误。用if选择结构来判除数是否为0,并提示用户输入错误。【实践】编写与设计带菜单的计算器小程序以switch选择结构与if选择结构相互嵌套的形式对学生成绩管理程序的改进。强制类型转换这一改进需要用到强制数据类型转换。因为switch是判等的,要求switch表达式与case常量表达式必是字符型或整型,而成绩分档是一个浮点型集合划分的运算,所以需要将强制类型转换知识点基于强制类型范围缩放数据处理技术,把一个范围表达浓缩到一个整型数字里,这样就能使用switch选择结构了。【问题】ppt中的程序有哪些错误【实践】基于强制类型范围缩放数据处理技术的成绩分档程序的设计与实现授课阶段总结本节内容以实践为主,以当前所学的知识点,学生可以组织起一个逻辑上相对完整的程序,所以本小节以程序设计思维的训练为重点内容。首先,引导学生设计一个可以进行人机交互的界面—编写一个计算器的菜单,通过选择进行计算,把第一章的计算语句copy到适当的位置(增量开发)。然后,运用本章的知识点,设计具有一定的容错能力和设计技巧(强制类型转换与归一化处理)的学生成绩分档程序。两个例子都用到了本章所介绍的if和switch嵌套句型。本次课程总结(1)知识层面关系运算符与表达式、逻辑运算符与表达式if语句的三种语法形式三目运算符(?)switch选择结构--break语句(2)方法层面多分支选择结构的组织方式与设计方法:if-else-if和switch对switch结构中有无break语句的使用与设计技巧类型转换数据缩放技巧课堂互动与实践编写小程序输出关系运算表达式和逻辑运算表达式的值分别用if语句和if-else语句编写判断两个数大小的程序编写与设计带菜单的计算器小程序用if-else和switch嵌套的程序技巧编写成绩分档程序采用改错的形式巩固if语句中的条件表达式中知识点基于强制类型范围缩放数据处理技术的成绩分档程序的设计与实现5.课堂记录
《C语言程序设计》教案(7-10)授课题目第三章循环结构与应用4学时目的与要求重点与难点目的:通过本章学习让学生掌握循环结构的基本语法知识和程序设计方法。要求:让学生掌握for、while、do-while三种循环结构、循环嵌套结构及循环控制的基本语法知识,利用这些知识进行程序设计及实现。重点:for、while、do-while三种循环的程序设计方法及实现。难点:复合运算符及复杂表达式、循环的控制结构、循环应用的设计教学方法及手段课件:根据本节课程设计的内容及计划安,逐步展现知识点。板书:针对学生在学习和练习过程中出现的问题,进行补充讲解。调节课堂节奏,给学生思考的时间。教师程序编写:让学生观摩程序的编写、运行及产生结果的过程,与知识点一一对应,加深理解。学生用手机C语言模拟器编写程序:题目与例题类似,但小有变化,让学生在理解的基础上进行程序编写,为今后的程序设计打下基础,减少程序设计中的错误。问答:就一些知识点的变化与学生进行问答互动。就(4)和(5)中同学们的表现给出部分平时分,为了鼓励同学们的参与积极性,参与者加1分,答对者加2-3分。教学内容 课程内容的引入前两章中编写的程序只能运行一次,缺少按照条件多次执行代码的机制,从而引出本节讲解的内容。如计算器每运行一次只能进行一下次计算,甚至当除数为0时一次也不运算;学生成绩档案管理只能将一个学生的成绩分档。第三章循环结构及应用说明本章重点与难点。从高斯级数的求解引出循环结构的程序设计。3.1概述(0.5学时)教学内容:自增(++)、自减(--)运算符。复合运算符(5个)逗号“,”运算符复杂表达式讲解思路提醒学生学习运算符的三要点:优先级、操作数和结合性。讲解自增/自减高效的原理,同学们在使用时的困惑在于类似a=b++与a=++b的用法,就此增加一些练习。复合运算符理解可以用它的等效拆解形式,如a*=b-2a=a*(b-2),其复杂形式从自右向左拆解还原。逗号“,”运算符是优先级别最低的运算符,在使用时学生容易产生误解,如a=b+3*c,x+y,5*k把上述表达式认为是等效为a=(b+3*c,x+y,5*k),表达式的值为a。这是错误的!按优先级来排列计算的顺序,“=”的优先级大于“,”,所以最后运算的不是赋值,而逗号,所以,该表达式等效为(a=b+3*c),(x+y),(5*k),对于同一级别的运算,按从左到右次序依次进行,该表达式的值是最后一个子表达式的值,即(5*k)。而在表达式a=(b+3*c,x+y,5*k)中,“()”的优先级高于“=”,所以先运行“()”内的表达式,那么,a最后的值是(5*k)。(5)在(4)中举得例子,便属于复杂表达式,尽管表达式的名称取决于最后运算的运算符,但其包含子多个运算符的子表达式,需要按优先级逐级推导逻辑,因而容易出错。由这个例子可以看出,在推理复杂表达式时,最重要的还是优先级。在设计复杂表达式时,不但要注意优先级,同时还要注意操作数和结合性。不过,不推荐使用复杂表达式进行程序设计,因为复杂表达式容易出错,且不利于阅读。用条件语句可以很容易的转换复杂表达式,且在多数情况下容易阅读。3.2循环结构(1.5学时)教学内容for循环结构while循环结构do-while循环结构goto循环结构讲解思路for循环结构:for循环的表达形式,每个表达式的含义。用流程图说明for循环结构的设计思路,以高斯级数为例讲解for循环结构的用法。重点在于for语句的三个表达式,突出三个表达式的变化给循环带来的影响。表达式1缺失的影响,应该如何修正?表达式2缺失的影响,应该如何修正?表达式3缺失的影响,应该如何修正?总结述实践成果,得出结论。【实践】编程实现高斯级数,并验证三个表达式的用途。while循环结构:用流程图说明while循环结构的设计思想,用while改写高斯级数。对于只有一个表达式的循环,如何达到目标并终结循环。提问:for与while之间的区别是什么?do-while循环结构:用流程图说明do-while循环结构的程序设计思路,用do-while改写高斯级数。与while循环类似,但也有自己的特点。提问:for、while与do-while之间的异同是什么?goto循环结构:goto循环的表达形式及设计思路,以高斯级数为例讲解goto循环结构的用法。并指明goto语句对程序的危害性。【实践】每个小题目都让学生依照例题进行练习,以熟悉每一个语法结构的特点及用法3.3循环控制结构的设计(0.5学时)教学内容多重循环结构。break循环控制结构。continue循环控制结构。讲解思路多重循环结构:讲解说明多重循环结构应用场景及设计思想,以打印九九表为例说明多重循环的实现。实例的特点:输出乘法运算表达式的一个矩阵一行有多个乘法运算表达式,有9行每一行表的乘法运算表达式个数必小于行号依据此特点设计如下:将每一个行看成一个对象,确定外层循环次数i<9确定每一行输出的表达式个数j<i,j∈[0,i)两重循环结构【实践】编写程序,输出一个九九表。break循环控制结构:一般应用于满足或不满足某个条件时中断循环的情况。讲解break的应用场景与需求,并以学生成绩录入为例说明break的程序设计方法及实现。应用实例的特点:学生人数不确定,不知道录入多少次而终结循环利用输入数据之特点,确定某种不合法输入为退出循环的信号,达到这一标准时,用break中断循环。【思考】如何区分不合法输入和中断循环的信号?当有不合法输入时,仍然允许用户输入而不中断循环?continue循环控制结构:一般应用于满足或不满足某个条件时中断循环的情况。跳过循环体条件下面的所有语句,开始新一轮的循环。讲解continue的应用场景与需求,并以学生成绩录入为例说明continue的程序设计方法及实现。在些例中,当输入不合法的成绩时,不计入总成绩,但不影响循环的继续执行,并不会少记录学生的成绩。比较continue与break在同一例子里起得不同作用。【思考】本例中是如何终结循环运行的?合理吗?3.4应用实例(2学时)教学内容函数scanf()灵活应用与Bug。求三角函数的值。继续改写前2章的计算器。改写继续改写前2章的学生成绩管理程序。讲解思路函数scanf灵活应用与Bug:利用函数scanf的语法知识,设计自定义输入格式,如年月日和时间的输入(填补信息法)。scanf函数在一行中的连续输入连续字符输入中错误:把转义字符当做输入。修正方法:抑制符、消耗法(输入字符函数法—合法输入和空格—填补信息)求三角函数的值:以sin(x)为例。用泰勒公式将其展开,形成数学模型,作为程序计算基础。将数学模型转化为计算模型。设计流程图表达sin(x)计算模型的实现,并用循环结构实现计算模型,说明循环结构在实际应用中的价值。把求sin(x)函数的程序段加入到计算器中。【实践】让学生编写求cos(x)函数值的程序,并加入算器中。继续改写前2章的计算器建立循环控制菜单,将第2章的所有功能均加入到循环体当中,并在菜单里加入求sin(x)和cos(x)的值的功能。将sin(x)代码段加入到相应的位置。实践中的cos(x)代码段加入到相应的位置。改写第2章的学生成绩管理程序使用循环控制结构,录入多名学生的成绩。用自定义scanf控制格式。录入结束时,可以求解他们的平均成绩。【课后实践】让学生编写可以录入多名同学成绩的程序。本次课程总结(1)知识层面4种循环语句的基本forwhiledo-whilegoto复合赋值运算符掌握它们各自的含义、结合性以及运算的优先级循环控制语句break语句、continue语句和goto语句scanf函数的格式控制(2)方法层面如何跳离循环结构无限循环的用途循环语句的选择计算模型的建立、表达与实现课堂互动与实践在老师的指导下让学生以不同的循环控制结构来实现高斯级数,从实践中感受不同循环控制结构之间的异同。让学生改写高斯级数程,通过程序运行的结果来推理不同循环控制语句的差异。让学生编写九九表程序进一步掌握双重循环的程序设计方法。让学生编写求cos(x)函数值的程序,并加入算器中。让学生编写可以录入多名同学成绩的程序(课后)。其他思考题见各小节相关部分。课堂记录
《C语言程序设计》教案(11-14)授课题目第四章模块化设计与应用4学时目的与要求重点与难点目的:(1)通过本章学习让学生掌握模块化编程的设计思想。(2)学会用预编译指令简化编程。要求:让学生学会用函数来更好的规划自己的程序,掌握自顶向下的程序设计思维及自底向上的编程方式;用预编译指令使自己的程序更加简洁。重点:函数设计。难点:函数的参数传递和返回值和模块化分。教学方法及手段课件:根据本节课程设计的内容及计划安,逐步展现知识点。板书:针对学生在学习和练习过程中出现的问题,进行补充讲解。调节课堂节奏,给学生思考的时间。教师程序编写:让学生观摩程序的编写、运行及产生结果的过程,与知识点一一对应,加深理解。学生用手机C语言模拟器编写程序:题目与例题类似,但小有变化,让学生在理解的基础上进行程序编写,为今后的程序设计打下基础,减少程序设计中的错误。问答:就一些知识点的变化与学生进行问答互动。就(4)和(5)中同学们的表现给出部分平时分,为了鼓励同学们的参与积极性,答对者加2-3分。教学内容 课程内容的引入总结上次课程的内容,提出因程序设计复杂度的提高使得主函数代码量过多,变得臃肿,不容易管理和维护,从而引出本节讲解的内容。第四章模块化设计与应用说明本章的重点和难点。本章主要内容:模块化程序设计方法函数预处理应用实例4.1模块化程序设计方法(0.5学时)教学内容模块化程序设计思想。模块化程序设计实例。讲解思路模块化程序设计相思:模块化程序设计的概念、优势及设计要点。模块化程序设计实例:计算器模块规划从同学们平时对计算器使用的过程,了解计算器应该涵盖哪些功能,从而做出模块规划。由这些规划认识到需要多少代码,从而总结出这些不同模块的代码写在一起给编程带来的困难。学生成绩管理规划在深入理解计算器模块规划后,由同学自己总结出本例的功能模块图。4.2函数(1.5学时)教学内容函数概念。函数设计实例。函数调用执行的过程。讲解思路函数概念讲解函数的定义的一般形式,然后定义一个求pi值的函数,此函数无参数和返回值。讲解函数的声明,包括在什么情况下需要声明和怎样声明讲解函数的调用,然后,调用(1)中定义的函数。最后,介绍函数的参数及返回值的作用及要求。函数设计实例以交换函数为例讲解有参数函数的使用方法。以求某数开方为例,有参数、有返回值函数的应用。因为本章的重点在于让学生掌握程序设计的方法,所以,首先讲述如何将数学公式转化为计算模型,通过流程图展示出程序设计的复杂逻辑关系,最终依据流程图编写程序。函数调用执行的过程通过实例讲解,让学生了解函数执行的过程,并在程序设计时有效控制函数嵌套的深度。【实践】将第三章的高斯级数改写成函数的形式,让学生学会使用函数。4.3预处理(1学时)教学内容预包含指令include。宏定义预编译指令define。讲解思路预包含指令include一般表达格式。两种表达方式,两种作用。宏定义预编译指令define简单的宏定义:用一个有意义的字符串去表示一个变量、常量或表达式。可以用宏义取代输入输出函数及其格式控制符,显示宏定义对化简程序的作用。定义一个Pi值,在求圆面积、圆周长等两个以上的函数中使用;修改Pi值,观察宏定义对软件在工程方面的积极意义。带参数的宏定义:要以向其所替代的表达式或语句段传递参数的宏,但要注意其与函数的区别。举一个带参数宏与一个带参数函数例子,一方面让学生学习带参数的宏的使用方法,一方面可以比较它们之间的异同。(while中的那个循环)嵌套的宏定义:后面的定义的宏可以引用前面定义的宏。让学生掌握并理解复杂宏的定义方式,同时,提出宏定义对于程序的损害。【实践】编写程序实现一个参数的宏和一个相之相似带参数的函数。4.4应用实例(1学时)教学内容用模块化程序设计方法升级计算器。用模块化程序设计方法创建学生成绩管理系统。讲解思路用模块化程序设计方法升级计算器:将五则运算、阶乘运算、三角函数封装成函数,加入本节课所讲述求值、某数的开方函数,并在主函数中调用它们,在设计时,把Pi和输入输出包括相应的格式控制定义为宏,深入理解软件设计的技巧。【课后练习】要求学生下去所编写的关于计算器的程序全部改写为函数形式,成为一个较为完整的小型计算应用。用模块化程序设计方法改造学生成绩管理。在前三章的学习过程中,由于没有模块化的设计思想和技术,组织一个比较大型的应用比较困难。本章的技术为此提出了一个解决方案,那么,按照4.1小节当中的规划,编写如下功能:设计一个学生成绩档案管理的一级菜单函数。在设计方案中有两级菜单,所以再设计一个二级菜单,注意一级到二级及二级返回一级的设计。设计一个统计功能:输入N个学生1门课程的成绩。设计统计各级别(优、良、中、及格和不及格)人数并输出。用函数实现此功能,并在主菜单的“统计”中调用它。【实践】编写一二级菜单。设计一个统计功能:输入N个学生1门课程的成绩,统计这门功课的平均成绩。本次课程总结(1)知识层面函数的定义。函数的调用。函数的参数和函数的返回值。定义和使用函数是一定要明确参数和返回值的类型。预处理。(2)方法层面模块化程序设计方法。计算机算法可分为两大类别:数值运算算法和非数值运算算法课堂互动与实践在老师的指导下让学生将第三章的高斯级数改写为函数形式。让学生编写程序实现一个参数的宏和一个相之相似带参数的函数。编写一二级菜单。设计一个统计功能:输入N个学生1门课程的成绩,统计这门功课的平均成绩。要求学生下去所编写的关于计算器的程序全部改写为函数形式,成为一个较为完整的小型计算应用(课后)。课堂记录
《C语言程序设计》教案(15-18)授课题目第五章数组及其集合4学时目的与要求重点与难点目的:(1)掌握用一维、二维及多维数组组织数据的方法。(2)学会字符串处理的方法及理解指针。要求:了解数组类型的特点和应用,掌握一维数组和二维数组的定义、初始化及数据组织的方法,掌握字符串处理的方法。重点:数组、字符串及指针。难点:指针与数组。教学方法及手段课件:根据本节课程设计的内容及计划安,逐步展现知识点。板书:针对学生在学习和练习过程中出现的问题,进行补充讲解。调节课堂节奏,给学生思考的时间。教师程序编写:让学生观摩程序的编写、运行及产生结果的过程,与知识点一一对应,加深理解。学生用手机C语言模拟器编写程序:题目与例题类似,但小有变化,让学生在理解的基础上进行程序编写,为今后的程序设计打下基础,减少程序设计中的错误。问答:就一些知识点的变化与学生进行问答互动。就(4)和(5)中同学们的表现给出部分平时分,为了鼓励同学们的参与积极性,答对者加2-3分。教学内容 课程内容的引入总结上次课程的内容,以输入全年级所有人的C语言成绩为例,提出前四章知识无法组织大批量数据并进行多次不同的运算,从而引出本节讲解的内容。第五章数组及其应用本章主要内容:数组概念及应用字符串处理函数指向字符串的指针变量应用实例难点:指针与数组5.1数组与数组元素的概念(与5.1小节共1学时)教学内容数组的概念数组物理存储形式讲解思路以小毛统计全班各门功课的成绩为例,引出新的集合类数据组织方式--数组。讲解组织表达方式与存储方式。【问题】数组名及数组下标的含义。5.2一维数组(1学时)教学内容一维数组概念。一维数组综合应用。讲解思路一维数组概念:一维数组定义,定义时初始化、用循环及赋值语句对数组进行初始化,以求整型数组所有元素值之和为例,展示一维数组定义、初始化及使用方式。简述数组使用时的注意事项。【实践】定义一维整型数组,求这个数组所有元素累加和。一维数组综合应用:以设计编写程序,实现每名学生有四门课考试成绩,用一维数组实现计算每个学生的平均成绩的综合应用为例,深入讲解一维数组的应用。【实践】以(2)为基础,求每门功课的平均成绩。5.3二维及多维数组(0.5学时)教学内容二维数组的定义。二维数组的初始化。二维数组的使用及多维数组的定义与使用。讲解思路二维数组的定义:二维数组的定义及在内存中的存储。二维数组的初始化:在定义时进行初始化,以计算学生的平均成绩为例进行二维数组初始化方法及使用。二维数组的使用及多维数组的定义与使用:以编写程序找出矩阵中值为最大的元素及其所在的行号和列号为例讲解二维数组的使用。【实践】编写程序实现(3)中的例题。5.4字符串(1学时)本节包含书中5.4、5.5小节内容教学内容字符串的基本概念。字符及字符串处理函数。讲解思路字符串的基本概念。由一维字符数组,引入字符串的概念,讲解这两个概念之间的异同。通过字符串在内存中的存储,深入理解字符串概念并掌握其设计方法。字符及字符串处理函数。给出每个函数的标准说明格式,讲解其含义通过实例讲解每一个函数的使用方法。5.5指针变量与字符串(0.5学时)本小节为书中5.6小节内容教学内容指针变量。字符串指针变量。讲解思路指针变量。介绍指针变量的一般定义形式。通过比较普通变量与指变量指针在内存里的存储形态,让学生深入理解指针的含义。对实例进行分析,讲解实践中对指针的需求。讲解通过动态内存分配函数给指针分配内存空间。讲解如何运用动态内存分配函数完成实例。字符串指针变量。将字符串与指针结合,讲解对变长字符串的操作。比较字符串数组与字符串指针的异同。5.6应用实例(1学时)本小节为书中5.7小节内容教学内容重构学生档案管理系统。讲解思路回顾第4章用模块化程序设计方法规划学生成绩管理。设计学生成绩管理系统所需要的数据结构,用数组来存储学生姓名及成绩。按4.1节设计内容重构学生成绩档案管理的一级菜单函数和二级菜单。设计并编写学生档案管理中学生基本信息管理的函数之一—录入学生信息函数设计并编写学生档案管理中学生成绩管理的函数之一—录入学生成绩录入函数设计并编写学生档案管理中学生查询管理的函数之一—查询学生成绩函数【实践】跟随老师完成上述程序设计与编写,并至少自己完成(4)、(5)、(6)功能中的一个拓展。本次课程总结(1)知识层面一维数组。二维及多维数组。字符型数组与字符串。指针变量与字符串。(2)方法层面字符串存储。对字符串操作的函数数组操作技巧信息管理系统的程序设计技巧课堂互动与实践在老师的指导下让学生完成定义一维整型数组,求这个数组所有元素累加和。让学生编写程序实现录入n个同学的四门功课成绩的函数,并能求每门功课的平均成绩。让学生实现部份课堂例题。让学生进行字符串操作练习。让学生完成应用实例至少三个函数。要求学生课下完成关于学生成绩档案管理的小型计算应用(课后)。课堂记录
C语言程序设计教案(19-20)授课题目翻转课堂2学时目的与要求重点与难点目的:自学C语言的一些知识点,能够运用自学的知识结合以前学的C语言知识去解决一些较为实际的问题。要求:掌握新旧知识点,设计解决一些实际问题,编写ppt,在课堂上进行清晰的讲解。重点:对新知识理解、设计和程序编写。难点:融合新旧知识点去解决一些实际问题。教学内容方法及手段1.课前内容安排提交分组名单提交每组选择的题目提交讲演稿2.翻转课堂设计题目选择翻转课堂主要针对课程内容选择控制结构、循环结构、模块化设计、数组、自定义数据类型等展开翻转课堂教学;每班分别进行抽签,分别选择选择控制、循环、模块化设计、数组、自定义数据类型等知识点进行命题;各组根据抽到的知识点进行选题,提出该知识点能解决的具体实际问题,进行程序设计,并编写程序、测试程序;学生根据授课进度通过查阅相关文献,提前做好翻转课堂的准备工作;翻转课堂以组为单位,现场答辩;答辩规则教师现场抽取答辩学生,每组抽2人进行答辩,每人答辩时间5分钟,两人共同完成组内答辩工作,答辩成绩的平均分作为该组的答辩成绩;通过对课件的设计,尽量展示出题目设计特点。讲演稿根据题目要求,体出现设计与编程的内容。讲演稿、板书播放讲解各组循环提问回答,提问的质量和回答的质量都做过为个人附加分;学生循环对相邻组进行评价,给出评价分数和评语;答辩现场提交组内报告和答辩PPT;各组提前做好自用座牌(用一张纸打印出名字),方便老师;学生根据教师的意见修改答辩报告并在规定的时间内提交修改报告;学生作好翻转课堂的总结工作;特别说明重修的学生要求跟正常学生一样参加所有教学过程;可以自己参加到某个班里,由学委通知相应的事情;实验报告按照规定的时间提交,后补没有成绩;参加省级以上软件设计大赛最高加10分。3.课堂纪录
《C语言程序设计》教案(21-24)授课题目第六章深入模块化设计与应用4学时目的与要求重点与难点目的:(1)理解算法的基本概念,掌握简单的排序算法。(2)掌握更多的模块化程序设计技巧。要求:(1)熟练掌握排序、查找、求最大最小值等常用算法设计技术。(2)理解递归求解的概念、原理以及递归调用的执行过程,掌握递归函数设计的基本要点,了解迭代和递归方法编写程序的优缺点。(3)掌握模块间批量数据传递的方法,提高综合应用程序设计的能力。重点:简单的排序算法、嵌套与递归设计与应用、模块间的批量数据传递。难点:递归调用、学生成绩管理综合用例。教学方法及手段课件:根据本节课程设计的内容及计划安,逐步展现知识点。板书:针对学生在学习和练习过程中出现的问题,进行补充讲解。调节课堂节奏,给学生思考的时间。教师程序编写:让学生观摩程序的编写、运行及产生结果的过程,与知识点一一对应,加深理解。学生用手机C语言模拟器编写程序:题目与例题类似,但小有变化,让学生在理解的基础上进行程序编写,为今后的程序设计打下基础,减少程序设计中的错误。问答:就一些知识点的变化与学生进行问答互动。就(4)和(5)中同学们的表现给出部分平时分,为了鼓励同学们的参与积极性,答对者加2-3分。教学内容 课程内容的引入总结上次课程的内容,以求Fibonacci数列为例讲解算法设计的重要性,提出在前五章的知识为基础上学习更多的模块设计相思及相关的实现技巧,提高程序运行效率,从而引出本节讲解的内容。第六章深入模块化设计与应用本章主要内容:算法的基本概念与简单的排序算法嵌套与递归设计与应用模块间的批量数据传递模块化设计中程序代码的访问应用实例难点:递归调用、学生成绩管理综合用例6.1 算法的基本概念与简单的排序算法(2学时)教学内容算法的基本概念简单的排序算法讲解思路算法的基本概念介绍算法的一些基本概念以Fibonacci为例讲解算法设计的演变过程简单的排序算法冒泡排序以纸牌为例讲解冒泡排序的执行过程,构造数据存储方式,通过动画与流程图展示算法设计思路,最后编程实现算法设计。选择排序以纸牌为例选择冒泡排序的执行过程,构造数据存储方式,通过动画与流程图展示算法设计思路,最后编程实现算法设计。指出两种排序的不同之处。【问题】两种排序算法哪一种排序效率更高,高在什么地方?6.2嵌套与递归设计与应用(0.5学时)教学内容函数的嵌套。函数的递归设计与应用。讲解思路函数的嵌套以计算s=1k+2k+3k+……+Nk的值为例,来说明嵌套模块化设计可以降低设计难度,提高设计效率,增强程序的可阅读性。函数的递归设计与应用以求阶乘为例讲解函数递归的概念及设计要点。以Fibonacci和汉诺塔问题为例讲解函数递归的求解问题的简洁性,同时说明函数递归的优缺点。【实践】实现三道递归例题,深入理解和掌握递归的设计方法。5.3模块间的批量数据传递(1学时)教学内容指针作为函数参数。数组作为函数参数。讲解思路指针作为函数参数以swap函数的设计和实现为例说明地址传递与值传递的不同,从而体现指针在数据传递方面的灵活性。数组作为函数参数一维数组作为函数参数:将冒泡排序改写为函数形式,参数为数组,从而体现数组在数据批量传送中的重要作用,并比较指针与数组在数据传递中的异同。二维数组作为函数参数:用实例来说明数组传递数据的重要作用。【实践】编写程序实现(1)中的例题。5.4模块化设计中程序代码的访问和应用实例(1学时)教学内容模块化设计中程序代码的访问。应用实例。讲解思路模块化设计中程序代码的访问举例说明用指针可以访问程序代码。应用实例。计算器增加一个连续相加的功能。在第5章应用实例的基础上,增加一个按平均成绩排序的功能。设计要点包括以下内容:数据结构用数组实现,注意下标的运算设计技巧。排序可以用冒泡,也可以用选择,但是在交换数据时,注意保持数据的完整性。利用批量传送的技术,可以改写其它已实现的模块。【实践】至少实现一项学生成绩档案管理的功能。本次课程总结(1)知识层面算法的基本概念及其重要性。指针作为函数的参数数组作为函数的参数 指向函数的指针(2)方法层面两种简单的排序 函数的嵌套与递归调用 函数可以嵌套调用但不能嵌套定义课堂互动与实践在老师的指导下让学生至少在课堂下完成一种排序的实现。实现三道递归例题,深入理解和掌握递归的设计方法。让学生完成swap函数的设计和实现。让至少实现一项学生成绩档案管理的功能。要求学生课下完成关于学生成绩档案管理的小型计算应用(课后)。课堂记录
《C语言程序设计》教案(25-28)授课题目第七章构造型数据类型与应用4学时目的与要求重点与难点目的:理解定义构造型数据类型的概念及设计要点,掌握更多的数据类型的设计技巧,提高数据的组织能力。要求:掌握结构体、结构体与函数、共用体、枚举类型、位段、自定义类型、位运算相关知识,能够利用这些知识进行程序设计与实现。重点:结构体、结构体与函数、共用体、枚举类型、位段、自定义类型。难点:结构体、结构体与函数、共用体、枚举类型。教学方法及手段课件:根据本节课程设计的内容及计划安,逐步展现知识点。板书:针对学生在学习和练习过程中出现的问题,进行补充讲解。调节课堂节奏,给学生思考的时间。教师程序编写:让学生观摩程序的编写、运行及产生结果的过程,与知识点一一对应,加深理解。学生用手机C语言模拟器编写程序:题目与例题类似,但小有变化,让学生在理解的基础上进行程序编写,为今后的程序设计打下基础,减少程序设计中的错误。问答:就一些知识点的变化与学生进行问答互动。就(4)和(5)中同学们的表现给出部分平时分,为了鼓励同学们的参与积极性,答对者加2-3分。教学内容 课程内容的引入总结上次课程的内容,以学生成绩管理为例讲解前五章在数据组织方面所存在的问题,从而引出本节讲解的内容。第七章构造型数据类型与应用本章主要内容:结构体基础结构体数组与指针结构体与函数段位与共用体枚举类型与自定义类型应用实例难点:嵌套结构体、结构体的指针变量、结构体指针做为函数的参数、段位与共用体7.1 结构体基础(0.5学时)教学内容结构体定义结构体变量及初始化举例说明结构体应用讲解思路结构体定义介绍程序设计中对结构体的需求及结构体的几种定义方法。结构体变量及初始化介绍程序设计中对结构体的几种初始化方法及注意事项。举例说明结构体应用方法【实践】设计并实现学生基本信息结构体并实现对其的赋值操作。7.2结构体数组与指针(1学时)教学内容结构体数组结构体指针讲解思路结构体数组讲解定义及初始化方法。以统计优秀学生数量为例讲解结构体数组在程序设计中的应用结构体指针以学生带有学生出生日期的基本信息为例,讲解结构体嵌套及结构体指针在程序设计中应用【实践】以结构体指针方式设计并实现学生基本信息结构体并实现对其的赋值操作。7.3结构体与函数(0.5学时)教学内容结构体指针作为函数参数结构体数组作为函数参数讲解思路结构体指针作为函数参数以学生基本信息为例讲解结构体指针作为函数参数的程序设计方法。结构体数组作为函数参数以学生基本信息为例讲解结构体数组作为函数参数的程序设计方法。【实践】以结构体指针或结构体数组作为函数参数设计学生基本信息维护的函数。7.4共用体、段位及位运算(0.5学时)教学内容共用体位段位运算讲解思路共用体共用体的存储原理、定义及初始化以实例说明共用体的使用方法及特点位段位段的存储原理、定义及初始化以实例说明位段的使用方法及特点【实践】设计并编写学生基本信息维护程序,该程序需要将位段与结构体混合使用。位运算学习时把运算符的学习要点,注意位运算的特点举例说位段操作与位运算不同7.5枚举类型与自定义类型(0.5学时)教学内容枚举类型自定义类型讲解思路枚举类型举例说明定义、初始化及使用方法自定义类型举例说明定义及使用方法7.6应用实例教学内容升级学生成绩档案管理程序。讲解思路以结构体、共用体及位段做为数据组织的基础,在课堂上完成以下工作:定义学生基本信息及学生成绩结构体,结构体成员中的姓名为指针类型编写学生基本体信息录入函数,以结构体数组为参数编写学生成绩录入的函数,以结构体数组为参数【实践】以课堂例题为基础,继续扩展,完成以求每个学生的平均成绩函数(以结构体数组为参数),要求当堂完成。其它相关函数要求课后完成。本次课程总结(1)知识层面结构体的基本概念共用体的基本概念位段的基本概念 枚举及自定义类型基本概念(2)方法层面结构体的设计与应用共用体的设计与应用位段的基设计与应用 枚举及自定义类型设计与应用课堂互动与实践在老师的指导下让学生设计并实现学生基本信息结构体并实现对其的赋值操作。让学生以结构体指针方式设计并实现学生基本信息结构体并实现对其的赋值操作。让学生以结构体指针或结构体数组作为函数参数设计学生基本信息维护的函数。让学生设计并编写学生基本信息维护程序,该程序需要将位段与结构体混合使用。要求学生以课堂例题为基础,继续扩展,完成以求每个学生的平均成绩函数(以结构体数组为参数),要求当堂完成。其它相关函数要求课后完成。课堂记录
《C语言程序设计》教案(29-30)授课题目第八章综合设计与应用2学时目的与要求重点与难点目的:深入数据组织设计要点,掌握更多的程序设计技巧,提高编程设计能力。要求:掌握变量的作用域等概念,掌握拓展数据组织方式,深入探讨指针与数组的关系,理解带参main函数。重点:作用域、全局变量、局部变量;存储类别、自动变量、静态变量、寄存器变量;指针数组、数组指针。难点:作用域、静态、数组指针与指针数组。教学方法及手段课件:根据本节课程设计的内容及计划安,逐步展现知识点。板书:针对学生在学习和练习过程中出现的问题,进行
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理身份核对的法律依据
- 医疗护理员常见病症护理
- 护士分级护理营养支持
- 中医西学中专项128学时试题答案
- 矿山设备管理工程师面试技巧
- 联通集团高级管理岗位的面试技巧
- 旅游行业景区运营主管面试全攻略
- 轮机长岗位技能培训计划
- 零售业门店总经理面试要点与策略
- 联想企业市场部策划经理经验
- 乐山市市中区2026年上半年公开招聘城市社区专职网格员(禁毒社工)(24人)笔试备考题库及答案解析
- 柔性传感器介绍
- 抖音直播营销案例分析
- 2025青岛国企社会招聘笔试题及答案解析
- 7s管理制度标准规范
- 隧道爆破作业安全操作规程
- 小学生主题班会 拒绝校园欺凌 课件
- 硅酸镁铝增稠触变性及其农药中的应用探讨-陈杰
- 开平事业单位笔试真题
- 共青团光辉历史简洁版
- GB/T 14536.1-2022电自动控制器第1部分:通用要求
评论
0/150
提交评论