程序设计基础-电子教案_第1页
程序设计基础-电子教案_第2页
程序设计基础-电子教案_第3页
程序设计基础-电子教案_第4页
程序设计基础-电子教案_第5页
已阅读5页,还剩103页未读 继续免费阅读

下载本文档

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

文档简介

附件2:理论课程教案格式教师备课本(202-202学年第1学期)二级学院系(教研室)计算机科学与技术课程名称程序设计基础授课班级授课教师职称年月日

注意事项和要求教案是任课教师的教学实施方案。任课教师应遵循专业教学计划制订的培养目标,以教学大纲为依据,在熟悉教材、了解学生的基础上进行编写。教案按每堂课(2~4节)为一单元设计编写。一、教师备课本编写注意事项:1.教师备课本组成部分:封面、课程概况、课程教案。2.课程概况:课程概况包括课程名称、课程编码、课程模块、考试方式、推荐教材及参考书目、教学目的要求及教学重难点等。以上课程信息内容必须同培养方案及教学大纲保持一致。3.课程教案:是教师备课本的主体部分,其基本要素包括授课主题、相应章节、授课时间、课时、地点、教学目的与要求、教学重点与难点、教学方法、教学手段、教学设计、教学过程、教学备注、教学后记等。4.无论是手写还是打印稿,统一用此备课本模板,打印稿除课程概况外,其余统一双面打印。二、课程教案编写注意事项:1.授课主题:是所讲章节的主要知识点,为便于开展模块化教学,其内容名称可以异于章节名称。2.教学重点、难点:指该堂课的重点和难点部分,学生必须掌握的知识点和技能。实践教学还包括实践操作训练的主要指导要点;关键环节、关键技术指导方法等。3.教学方法:主要包括讲授法、讨论法、练习法、归纳法、演示法、启发法、实验法等。4.教学手段:指课堂教学中师生教学相互传递信息的工具、媒体或设备,可以包括备课本、教材、模型、图表、直尺、电脑、多媒体课件等,实践教学包括所用到的实践仪器设备。5.教学设计:又称教学安排(流程),是课堂教学的总体设计安排,可供参考(但不限于)教学设计选项有:考勤点名、作业反馈、复习旧课、导入新课、新课内容、课后小结、知识拓展、延伸阅读、布置作业等,具体可视实际教学内容安排以上某些选项组成该堂课的教学设计,实践课的教学设计还可补充实践步骤或实践流程。不同专业,其课堂教学设计也可有不同特色。6.教学过程:是对教学设计各项内容的具体化,教学设计的各项内容要在教学过程中依次写出。7.教学备注:用于批注教学过程中用到的教学方法或启发学生思维的实际案例,或实践教学中的注意事项等。8.教学后记:是教师完成本堂课教学任务后对教学设计、教学重难点把握、教学方法应用、教学效果等课堂教学过程情况的总结与分析,为以后教学提供经验和素材,教学后记必须手写。

课程概况课程名称程序设计基础授课班级课程编码110405402课程模块程序设计概述,结构化,函数,数组,指针,文件考试方式开卷□闭卷☑操作□答辩□论文(报告)□其它:课程学时4学时/周学分4推荐教材及参考书目序号名称作者出版社出版时间1C语言程序设计授课教师职称授课时间教学目的要求(1)掌握程序设计相关的基本概念,理解概念之间的相互关系;学会运用C语言进行结构化程序设计的基本方法,继而延伸至对现实问题的分析、数学模型的表示、抽象思维能力的建立等;通过算法设计和描述、程序代码的编写与调试提高学生的编程能力和解决实际问题的能力。(2)至少掌握一种具体的C语言编程环境,学习编写、调试程序的思路和技巧。(3)通过基础程序设计,培养学生良好的编程习惯,尤其是程序代码的可理解性高,结构化好,模块化强等方面。将这个教学目的进行修改总结成更学术化,更专业,其次是需要降重,尽可能的降低重复率教学重点难点重点:(1)结构化程序设计:掌握顺序、选择、循环等基本程序结构,能够设计并实现结构清晰、易于维护和扩展的程序。(2)C语言特性:熟悉C语言的运行环境、语法规则、数据类型、运算符和表达式等特性,能够编写符合C语言规范的代码。(3)算法设计与实现:学会将现实问题抽象为数学模型,设计合适的算法,并能用C语言实现。(4)调试与测试:掌握程序调试和测试的基本方法,能够发现并修复程序中的错误,确保程序的正确性和稳定性。难点:(1)指针的理解与应用;(2)复杂数据结构的理解与应用:如结构体、共用体、枚举类型等复杂数据结构的定义和使用,以及单向链表等高级数据结构的组织和应用,是C语言编程中的难点。(3)算法优化与性能调试:在保证程序正确性的基础上,如何优化算法、提高程序性能,以及如何进行有效的性能调试,是C语言编程的高级挑战。

课次:第1讲课程教案授课主题程序与程序设计语言章节内容第一章程序设计与C语言地点课时2教学目的与要求程序设计的基本概念和程序设计的基本过程教学重点程序设计的基本过程教学难点程序设计的基本过程教学方法理论讲授教学手段多媒体+案例分析教学过程课程思政元素讲解课程目标、课程要求以及考核要求确定本课程考核方式以及确定本课程的学习目标,包括C语言词法描述、C语言的基本语法、程序流程控制语句进而延伸的计算性问题求解、判定性问题求解、同类型数据集合、异构类型数据集合等二、创设意境,导入新课(设疑法、提问法)导入:什么是程序呢?随着人工智能的火热,大家都觉得计算机无所不能并且神秘莫测,实则不然,其实计算机做的每一步操作都是根据人们指定的指令来进行的,也就是,计算机是按照我们事先告诉它的命令按步骤一条一条去执行的。那么究竟什么是程序呢?三、新课教学(讲解法、提问法、示范法)1、计算机系统的组成以及程序概念计算机系统:硬件系统;软件系统硬件系统:组成计算机的各种物理设备,有运算器、控制器、存储器、输入设备和输出设备五大功能部件组成。软件系统:由一个个程序(系统软件或应用软件)构成,程序都用特定的程序设计语言开发。程序:就是为使电子计算机执行一个或多个操作,或执行某一任务,为实现特定目标或解决特定问题而用程序设计语言编写的命令序列的集合。程序设计语言:用于书写计算机程序的语言。每一种程序设计语言都有特定的语法规则,有其特定的基本符号集。编程的概念搞清楚以上基本概念之后,我们来了解一下什么是编程,编程:是编写程序的简称,也称为“程序设计”,步骤:(1)需求分析:搞清楚究竟要让计算机做什么(2)设计:搞清楚计算机怎么做这件事(3)程序编码:将设计结果变成代码逐行输入到程序编辑器中)(4)调试程序:将上一步完成的源程序进行编译、链接、运行,看结果是否正确,不正确时要调试修改直到程序满足需求为止程序设计语言的发展按照对语言类发展历史,程序设计语言经历了4个时代,如表所示目前我们所学的程序设计基础这门课主要便是C语言,C语言作为一种主流的高级程序设计语言,它不仅是计算机软件设计与开发的主流语言之一,也是认识和深入掌握其他程序设计语言的基础。从发展历史中,我们可以看到C语言作为经典的高级语言,长期处于第二的位置,这也能够说明C语言受欢迎程度。C程序的构成在进行C语言正式讲解之前,我们先来看看C程序的构成。一般而言,C程序主要由注释、库文件、主函数名、变量声明语句、赋值语句、函数调用语句,返回值等进行构成。在这里面注释主要是对一段一个文件进行介绍,为了方便我们能够更快的阅读代码,我们需要写上注释来表明这个代码的主要思想是什么,谁写的,什么时间写的,这样的话会很大程度的提高我们对于代码的阅读理解能力。其余部分便属于C语言的主体部分,主体部分主要来实现程序的目的。程序的基本概念和算法表示程序(program)是为实现特定目标或解决特定问题而用计算机语言(程序设计语言)编写的一系列语句和指令,计算机能严格按照这些指令去做。程序具有以下特点:①完成某一特定的任务;②使用某种程序设计语言描述如何完成该任务;③存储在计算机中,并且被运行后才能起作用。“软件的主体是程序,程序的核心是算法”。通俗地讲,算法就是解决问题的方法与步骤。例如要交换两个变量a和b的值,按照下面的步骤就可以完成交换:①输入变量a和b的值;②将变量a的值赋给变量t;③将变量b的值赋给变量a;④将变量t的值赋给变量b;⑤输出变量a与b的值。算法的主要特征(1)确定性。算法的每条指令必须有明确的含义,不能有二义性。对于相同的输入必须得出相同的执行结果。(2)有穷性。一个算法应包含有限个操作步骤。也就是说,在执行若干个操作步骤之后,算法将结束,而且每一步都在有限的时间内完成。(3)可行性。算法中指定的操作都可以通过已经实现的基本运算执行有限次后实现。(4)有零个或多个输入。(5)有一个或多个输出。算法的目的是为了求“解”,“解”只有通过输出才能得到。算法的描述算法的描述可以有多种形式:文字表示、流程图表示、伪代码表示和程序设计语言表示。1.用文字描述算法例:有10个两位的正整数,找出其中最大的数,写出其算法。①输入第一个数,放入max中;②用i统计比较的次数,其初值置为1;③若i≤9,转第④步,否则转第⑧步;④再输入一个数,放在x中;⑤比较x和max中的数,若x>max,则将x的值赋给max;否则max的值不变;⑥i增加1;⑦返回到第③;⑧输出max中的数,此时max中的数即为10个数中最大的数。2.用流程图描述算法在流程图中,一共包含六个部件,分别为开始终止框、处理框、输入输出框、判断框、流程现、连接点3.用伪代码描述算法伪代码是一种近似高级语言但又不受语法约束的语言描述方式,它不能在计算机中运行,但可以用来描述算法。归纳总结,布置课后作业介绍程序设计的起源和发展历程,我国软件发展及应用情况,鼓舞学生树立为振兴国产软件发展而努力学习的理想。教学后记

课次:第2讲课程教案授课主题C语言程序设计的特点章节内容第一章程序设计与C语言地点课时2教学目的与要求了解C语言发展历史、掌握C语言的特点、掌握C语言的约定教学重点掌握C语言的特点、掌握C语言的约定教学难点掌握C语言的特点、掌握C语言的约定教学方法理论讲授教学手段多媒体+案例分析教学过程课程思政元素一、回顾上节课内容,继续讲解本课时的知识1.教师对学生们的疑问进行统一答疑。2.回顾总结上节课内容,继续介绍本课时的内容。上节课介绍了程序与程序设计语言、C语言程序设计的构成、以及算法的特征和用流程图构成算法。本节课介绍C语言的约定、常量、变量、运算符和表达式、数据类型的转换。二、创设意境,导入新课(设疑法、提问法)导入:怎么样能够写出一个简易程序?编写代码需要严格的按照数据类型、语法进行编写,如果违反了C语言所规定的规则,那么这个代码将跑不动,现在我们来看一下C语言中对于数据类型和输入输出函数的相关规定。三、C语言的数据类型1、标识符定义用来标识(表示)数据类型、变量、函数、语句的符号称为标识符,由字母、数字和下划线组成,其中第一个字符必须是字母或下划线英文字符大小写是有区别的命名最好做到“见名知义”,增加程序的可读性标识符有效长度为1--255个字符关键字:赋予特定含义和有专门用途的标识符C语言变量、常量和数据类型1.C语言常量的分类2.C语言变量的数据类型3.整型变量4.浮点型5.字符型输入输出函数四、归纳总结,布置课后作业针对于变量和常量以及数据类型,布置作业,加深同学们的理解。要求学生养成以人为本的设计理念、团结协作的相处方式和爱国敬业的理想情怀。《论语》的“学而不思则罔,思而不学则殆”意为:学习而不思考就会迷惘无所得;思考而不学习就不切于事而疑惑不解。——常学习,常思考,定会有收获。教学后记

课次:第3-4讲课程教案授课主题C语言运算符和表达式章节内容数据类型、运算符和表达式顺序结构程序设计地点课时4教学目的与要求掌握C语言的运算符教学重点掌握C语言的运算符、表达式优先顺序教学难点掌握不同的C语言运算法教学方法理论讲授+实际操作教学手段多媒体+案例分析教学过程课程思政元素一、回顾上节课内容,继续讲解本课时的知识1.教师对学生们的疑问进行统一答疑。2.回顾总结上节课内容,继续介绍本课时的内容。上节课介绍了本节课介绍C语言的约定、常量、变量、本节课我们将继续讲解C语言中的运算符和表达式、数据类型的转换。二、创设意境,导入新课(设疑法、提问法)导入:已经了解了C语言中运行的变量、常量了,那我们如何能够让这些数据产生我们想要的结果呢,这个就需要运算法以及表达式进行计算来进行计算了。三、C语言的运算法运算法和表达式的定义赋值运算符简单赋值运算符。“=”先计算出右边表达式的值,再赋给左边的变量。如果“=”左右两边类型不同,系统会按照赋值类型转换的原则将右边的类型转换成左边的类型。注意:+=、-=、*=、/=、%=右边可为常量、变量或者表达式。%=为求余运算,只能是两个整型数据相除的余数赋值表达式定义:由赋值运算符将一个变量和一个表达式连接起来的式子所组成。一般形式为:变量=表达式赋值表达式的执行过程是:(1)计算赋值运算符右侧表达式的值;(2)将所计算出的值赋给赋值运算符左侧的变量。赋值运算符的左边只能是变量,不能是常量或表达式。赋值表达式的值就是赋值运算符左边变量的值。赋值表达式的右边也可以是一个赋值表达式算术运算符算术运算符:处理运算的符号分类:+、-、*、/、%、++、--单双目运算符分类:根据参加运算的个数分为单目运算符、双目运算符优先级:运算的先后顺序先乘除、后加减,有括号先算括号里面的同级别时:从左往右进行计算注意:+、-也是符号运算符,表示正负+、-表示正负时是单目运算符两个整型数据做除法运算时,结果一定是整数。(举例)求余运算的结果是两个整型数据相除的余数。求余运算只能用于整型数据的运算。(举例)双目运算符两边的数据类型应相同,若不同时,编译系统会先转换为同一数据类型,然后再进行运算。(需要注意输出变量的格式说明)++,自增运算符,其功能是使变量的值自加1前缀,用于变量前面,先计算后使用后缀,用于变量后面,先使用后计算--,自减运算符,其功能是使变量的值减加1前缀,用于变量前面,先计算后使用后缀,用于变量后面,先使用后计算算术优先级算术表达式是由算术运算符、运算对象和括号连接起来的式子,运算对象可以是常量、变量和函数等。表达式中的乘号不能省略,且表达式中的所有字符均应写在同一行上。在表达式中还可以使用多层圆括号(不能使用中括号[]和花括号{}),但是要注意括号的配对。注意整型和浮点型之间的转换位运算符逗号表达式功能是把多个表达式连接起来组成一个表达式,称为逗号表达式。逗号表达式的一般形式为:表达式1,表达式2,…,表达式n逗号表达式的执行顺序:从左到右依次执行每个表达式。逗号表达式的值为“表达式n”的值。6.sizeof运算符关系运算符关系运算符中,>、<、>=、<=的优先级相同,==、!=的优先级相同,前者的优先级高于后者,即“>=”的优先级高于“==”。关系运算符的优先级低于算术运算符,但是高于赋值运算符。关系运算符都是双目运算符,其结合方向是左结合。用关系运算符将两个表达式连接起来的式子称为关系表达式。表达式1关系运算符表达式2关系表达式的结果是一个逻辑值“真”或“假”,由于C语言中没有逻辑类型的数据,注意:C语言用0表示假,非0表示真。关系表达式的值不是0就是1,0表示假,1表示真。在关系表达式中需注意区分“=”和“==”。逻辑运算符关系表达式只能描述单一的条件,对于比较复杂的复合条件不能够进行描述,因此需要逻辑运算符将若干个关系表达式连接起来才能够正确的描述复杂的复合条件。表达式1逻辑运算符表达式2逻辑运算符表达式1逻辑运算真值表短路特性:C语言规定,只对决定整个表达式值所需的最少数目的子表达式进行运算优先级只是改变了结合顺序,但并不改变运算顺序条件运算符条件运算符由两个符号“?”和“:”组成,用于条件求值。是一个三目运算符,需要三个操作数。条件运算符的优先级低于逻辑运算符、高于赋值运算符,它是右结合的。由条件运算符将3个表达式连接起来的式子称为条件表达式,其一般形式为:表达式1?表达式2:表达式3条件表达式的执行顺序:若表达式1的值为“真”,则条件表达式的值为表达式2,否则,条件表达式的值为表达式3运算符的优先级数据类型转换自动类型转换进行自动转换的规则是:把占用内存空间少的(低级)类型向占用空间多的(高级)类型转换,以保证运算的精度强制类型转换强制类型转换运算符将某种数据类型强制转换成指定的数据类型,其一般形式为:(类型说明符)(表达式)强制类型转换中的表达式一定要括起来,否则只对紧随其后的量进行类型转换;运算符总结运算符优先级口诀:“单算关,逻条赋,逗.”四、归纳总结,布置课后作业针对各类运算符,布置作业,加深同学们的理解要求学生养成以人为本的设计理念、团结协作的相处方式和爱国敬业的理想情怀。《论语》的“学而不思则罔,思而不学则殆”意为:学习而不思考就会迷惘无所得;思考而不学习就不切于事而疑惑不解。——常学习,常思考,定会有收获。教学后记

课次:第5-7讲课程教案授课主题分支结构程序选择章节内容第三章程序控制结构地点课时6教学目的与要求理解选择结构的含义;掌握C语言语句的分类;掌握上节课所讲的关系运算符、逻辑运算符、条件运算符并进行运用教学重点掌握if、switch语句的使用方法、逻辑运算符使用方法教学难点掌握if、switch语句的使用方法、逻辑运算符使用方法教学方法理论讲授教学手段多媒体+案例分析教学过程课程思政元素一、回顾上节课内容,继续讲解本课时的知识1.教师对学生们的疑问进行统一答疑。2.回顾总结上节课内容,继续介绍本课时的内容。上节课介绍了C语言中的各类运算法,在这里我们就对其进行讲解并使用二、创设意境,导入新课(设疑法、提问法)导入:如何对分支判断这种实际情况进行代码的辨析?三、C语言的分支结构程序选择语句的分类C语言程序的执行部分是由语句组成的。程序的功能也是由执行语句实现的。C语言中的语句可以分为以下5类:表达式语句由表达式加上分号“;”组成。其一般形式为:表达式;函数调用语句由函数名、实际参数加上分号“;”组成。其一般形式为:函数名(实际参数表);空语句只有分号“;”组成的语句称为空语句。空语句是什么也不执行的语句。在程序中空语句可用来作空循环体。复合语句用{…}括起来的一组语句“}”后不加分号语法上和单一语句相同复合语句可嵌套复合语句内定义的变量只能在复合语句内使用控制语句控制语句:实现一定的控制功能的语句。控制语句结构:选择结构和循环结构。九种控制语句,分成三类选择结构的程序设计If语句if语句是用来判定所给定的条件是否满足,根据判定的结果(真或假),决定执行哪条分支的语句。(选择)if分支应用场景:课堂练习:编写程序,输入x的值,按以下分段函数计算并输出y的值参考代码:课堂练习:编写程序,计算并输出下列分段函数y的值参考代码:讲解if与else的对应关系以及嵌套为了避免二义性,在C语言中规定的对应原则是:e1se总是与它前面最近的一个未匹配的if相匹配。因此对上述例子应按后一种情况理解。课堂练习:输入3个任意整数,找出其中的最大值参考代码:讲解switchSwitch语句的对应的注意事项switch后面的“表达式”,可以是int、char和枚举型中的一种,但不可为浮点型case后面语句(组)可加{}也可以不加{},但一般不加{}。每个case后面“常量表达式”的值,必须各不相同,否则会出现相互矛盾的现象。每个case后面必须是“常量表达式”,表达式中不能包含变量。case后面的“常量表达式”仅起语句标号作用,并不进行条件判断。系统一旦找到入口标号,就从此标号开始执行,不再进行标号判断,所以必须加上break语句,以便结束switch语句。多个case子句,可共用同一语句(组)。case子句和default子句如果都带有break子句,那么它们之间顺序的变化不会影响switch语句的功能。case子句和default子句如果有的带有break子句,而有的没有带break子句,那么它们之间顺序的变化可能会影响输出的结果。switch语句可以嵌套。例题的形式讲解if与switch之间的转换四、归纳总结,布置课后作业针对于分支选择结构进行总结归纳,同时布置作业,加深同学们的理解要求学生养成以人为本的设计理念、团结协作的相处方式和爱国敬业的理想情怀。教学后记

课次:第8-11讲课程教案授课主题循环结构程序设计章节内容第3章3.4循环结构程序设计地点课时8教学目的与要求掌握for、while、do-while、break、continue语句的使用方法;掌握C语言三种循环结构的特点;教学重点掌握for、while、do-while、break、continue语句的使用方法;教学难点掌握for、while、do-while、break、continue语句的使用方法;教学方法理论讲授+实例演示教学手段多媒体+案例分析教学过程课程思政元素一、回顾上节课内容,继续讲解本课时的知识1.教师对学生们的疑问进行统一答疑。2.回顾总结上节课内容,继续介绍本课时的内容。上节课介绍了分支语句,在这节课我们将讲解第二种控制语句循环二、创设意境,导入新课(设疑法、提问法)导入:许多实际问题中往往需要有规律地重复某些操作,如菜谱中可以有:“打鸡蛋直到泡沫状”这样的步骤,也就是说,在鸡蛋没有打成泡沫状时要反复地打。相应的操作在计算机程序中就体现为某些语句的重复执行,这就是所谓的循环三、C语言的循环结构程序设计for语句for语句的一般形式以及执行流程for语句很好地体现了正确表达循环结构应注意的三个问题:控制变量的初始化。循环的条件。循环控制变量的更新。for循环在开发中的常见应用场景课堂练习:for语句的注意事项表达式1、表达式2和表达式3可以是任何类型的表达式。比方说,这三个表达式都可以是逗号表达式,即每个表达式都可由多个表达式组成。表达式1、表达式2和表达式3都是任选项,可以省掉其中的一个、两个或全部,但其用于间隔的分号是一个也不能省的。表达式2如果为空,则相当于表达式2的值是真。循环体中的语句可为任意类型的C语句。for语句也可以组成多重循环,而且也可以和while语句和do-while语句相互嵌套。循环体可以是空语句。while语句while语句的一般形式以及执行流程例题展示重点讲解循环的思想以及循环初值、循环终值、循环条件、循环体以及循环变量增值的概念以及对于循环的影响。while语句的注意事项如果while后的表达式的值一开始就为假,循环体将一次也不执行。循环体中的语句可为任意类型的C语句。遇到下列情况,退出while循环:表达式为假(为0);循环体内遇到break、return语句(break语句将在随后介绍)。在执行while语句之前,循环控制变量必须初始化,否则执行的结果将是不可预知的。要在while语句的某处(表达式或循环体内)改变循环控制变量,否则极易构成死循环。允许while语句的循环体又是while语句,从而形成双重循环。课堂练习:do_while语句do_while语句的一般形式以及执行流程do_while语句的注意事项do-while后的表达式的值一开始就为假,循环体还是要执行一次。在if语句、while语句中,表达式后面都不能加分号,而在do-while语句的表达式后面则必须加分号,否则将产生语法错误。循环体中的语句可为任意类型的C语句。和while语句一样,在使用do-while语句时,不要忘记初始化循环控制变量,否则执行的结果将是不可预知的。要在do-while语句的某处(表达式或循环体内)改变循环控制变量的值,否则极易构成死循环。do-while语句也可以组成多重循环,而且也可以和while语句相互嵌套。例题展示三种循环的区别小结:for循环和while循环(先判断后执行);do...while(先执行后判断)for循环和while循环的执行流程是一模一样的,功能上无区别,for能做的while也能做,反之亦然。使用规范:如果已知循环次数建议使用for循环,如果不清楚要循环多少次建议使用while循环。其他区别:for循环中,控制循环的变量只在循环中使用。while循环中,控制循环的变量在循环后还可以继续使用。死循环死循环:可以一直执行下去的一种循环,如果没有干预不会停下来应用场景:服务器程序循环嵌套课堂练习:break与continue语句循环结构选择原则以及相互转换的方式四、归纳总结,布置课后作业针对于循环结构进行总结归纳,同时布置作业,加深同学们的理解介绍程序设计的起源和发展历程,我国软件发展及应用情况,鼓舞学生树立为振兴国产软件发展而努力学习的理想。教学后记

课次:第12-15讲课程教案授课主题数组章节内容第五章数组地点课时8教学目的与要求理解数组变量在内存中的存放形式;掌握一维数组和二维数组变量的定义和数组元素的引用;掌握字符串与字符数组的区别;掌握各种字符串库函数的用法;教学重点一维数组、二维数组、字符串与数组教学难点一维数组、二维数组、字符串与数组教学方法理论讲授+实例演示教学手段多媒体+案例分析教学过程课程思政元素一、回顾上节课内容,继续讲解本课时的知识1.教师对学生们的疑问进行统一答疑。2.回顾总结上节课内容,继续介绍本课时的内容。上节课介绍了循环语句,数组中需要大量的使用循环语句,因此在这里我们会主要进行讲解二、创设意境,导入新课(设疑法、提问法)导入:到目前为止,我们已经讨论了C语言中的基本数据类型,如果用基本数据类型来定义某些变量,那么这些变量在内存中将占用各自的内存单元,变量之间的制约关系无法体现,不能表现出这些变量之间的关联性,看不出它们之间有任何的联系,我们把这些变量称之为“离散变量”,对它们的访问只能通过变量名逐一进行。下面来思考一个问题:如何编程来实现对100个数进行排序呢?解题思路:定义100个整型变量来分别存放这100个整数,然后再对这些变量的值进行比较、交换等操作。这种方法太复杂了,要用数组来编程。数组是构造数据类型之一数组:有序数据的集合,用数组名标识元素:属同一数据类型,用数组名和下标确定三、C语言的数组一维数组定义说明数组定义时,必须指定数组的大小(或长度),数组大小必须是整型常量表达式,不能是变量或变量表达式。数组定义后,系统将给其分配一定大小的内存单元,其所占内存单元的大小与数组元素的类型和数组的长度有关。数组中每个数组元素的类型均相同,它们占用内存中连续的存储单元,其中第一个数组元素的地址是整个数组所占内存块的低地址,也是数组所占内存块的首地址,最后一个数组元素的地址是整个数组所占内存块的高地址(末地址)。一维数组的引用一维数组的赋值课堂练习:用一维数组进行数值的排序讲授冒泡排序法的过程,首先确定冒泡排序主要思想,然后通过动画演示出冒泡排序的具体步骤,进而让同学了解其核心思想,然后共同实现该功能的实现。冒泡排序的基本思想是:每次比较两个相邻的元素,如果它们的顺序错误就把它们交换过来。排序过程:比较第一个数与第二个数,若为逆序a[0]>a[1],则交换;然后比较第二个数与第三个数;依次类推,直至第n-1个数和第n个数比较完为止——第一趟冒泡排序,结果最大的数被安置在最后一个元素位置上;对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在第n-1个元素位置;重复上述过程,共经过n-1趟冒泡排序后,排序结束。讲授选择排序的过程,首先确定冒泡排序法存在的缺点,然后引出同学们如何引出新算法,随后通过动画演示出冒泡排序的具体步骤,进而让同学了解其核心思想,然后共同实现该功能的实现。二维数组二维数组的定义二维数组的引用以及初始化其中二维数组的初始化包含多个种类,需要给同学们进行逐个讲解。二维数组的应用举例字符串与数组在字符串与数组这一章节需要涉及到简单的地址,即数组名为该数组的初始地址。因此在介绍前需要通过符号&进行引入确定字符串的本质以及相关操作对字符串常用的相关库以及函数进行介绍stdio.h库包含输入输出函数:gets()、puts()、printf(“%s”)、scanf(“%s)string.h库strlen()、strcpy()、strncpy、strcmp、stricmp对字符串数组数组章节小结数组是程序设计中最常用的数据结构。它是一种构造类型,数组中的每一个元素必须属于同一种数据类型。数组中的元素在内存中是连续存放的。数组变量名是数组在内存中的首地址,是一地址常量,不可对其赋值。二维数组变量也是地址常量,二维数组中的每一维也是地址常量。数组可以是一维的,二维的或多维的。数组类型说明由类型说明符、数组名、数组长度(数组元素个数)三部分组成。数组元素又称为下标变量。数组的类型是指下标变量取值的类型。字符数组也是一种常规数组,但由于字符数组可以用来存放字符串,因此,字符数组在定义时可以利用字符串常量为字符数组变量赋初值。这是其它类型数组所不具备的。其它类型数组变量在赋值时必须使用初值列表,而字符数组却可以使用字符串常量。字符串是一种以'\0'结尾的字符序列,因此用来存放字符串的字符数组的长度要比字符串的实际长度大1才可以。C语言提供了许多有关字符串处理的函数,这些函数在用C语言编程过程中经常用到,读者务必要熟练掌握。教学后记

课次:第16-18讲课程教案授课主题函数-函数的调用、函数的嵌套、函数参数及传递方式章节内容第4章函数与模块化程序设计地点行政楼208课时6教学目的与要求1、理解C语言是一种函数式程序设计语言的含义;2、掌握函数的声明、定义及调用;3、掌握并理解函数调用时实参与形参在值传递和地址传递时的不同意义,充分理解函数的返回值的概念;4、了解函数的声明与定义的区别;5、掌握局部变量和全局变量使用,充分理解变量生命周期的含义,了解不同存储类型的区别;6、掌握局部变量和全局变量使用,充分理解变量生命周期的含义,了解不同存储类型的区别。教学重点1、函数的基本概念;2、函数的参数传递;3、数组作函数的参数;4、变量的生命期与存储类型。教学难点1、递归函数;2、掌握函数的参数传递方式;3、函数的传值与传地址的区别。教学方法1、多媒体教学演示2、案例分析法3、讨论法教学手段网络资源应用、在线教学平台教学过程课程思政元素一、回顾上节课内容,继续讲解本课时的知识(1)提问并演示一维数组、二维数组的定义与输入输出。(2)字符串的输入输出,数组名的含义。(二)明确学习目标。1、理解C语言是一种函数式程序设计语言的含义;2、掌握函数的声明、定义及调用;3、掌握并理解函数调用时实参与形参在值传递和地址传递时的不同意义,充分理解函数的返回值的概念;4、了解函数的声明与定义的区别;5、掌握局部变量和全局变量使用,充分理解变量生命周期的含义,了解不同存储类型的区别;6、掌握局部变量和全局变量使用,充分理解变量生命周期的含义,了解不同存储类型的区别。二、进行重点知识的讲解(一)讲解函数概述。函数:所有C语言程序都是由一个或多个函数构成的。调用函数与被调函数:程序由多个函数构成时,只能由主函数调用其他函数,反之则不行。其他函数之间可以互相调用,同一个函数可以被一个或者多个函数调用任意多次。一个函数调用另一个函数,前者称为调用函数;后者称为被调函数。函数分类:1)、从用户使用的角度来看:(1)标准函数(2)用户自定义函数2)、从函数的形式来看:(1)无参函数(2)有参函数3)、从函数的作用来看:(1)外部函数(2)内部函数(二)讲解函数定义。C语言的库函数是由编译系统事先定义好的,用户在使用时无须自己定义,只需用#include命令将有关的头文件包含到文件中即可。所有的用户自定义函数均要“先定义,后使用”。1、无参函数的定义无参函数的定义形式如下:类型名函数名()/*函数首部*/{函数体}或类型名函数名(void)/*函数首部*/{函数体}2、有参函数的定义有参函数的定义形式如下:类型名函数名(形式参数表列)/*函数首部*/{函数体}3、空函数的定义有参函数的定义形式如下:类型名函数名(){}(三)讲解函数的调用。定义函数的目的就是为了重复使用,因此只有在程序中调用函数时才能实现函数的功能。C语言程序从main函数开始执行,而自定义函数的执行是通过对自定义函数的调用来执行的。当自定义函数结束时,从自定义函数结束的位置返回到主函数中继续执行,直到主函数结束。1、函数调用的形式和过程a、函数调用的一般形式函数名(实际参数列表);b、函数调用的方式(1)函数语句函数名(实参列表);(2)函数表达式函数作为表达式中的一部分出现在表达式中,例如:a=abs(x);(3)函数嵌套调用C语言的函数定义是互相平行、独立的,也就是说,在定义函数时,一个函数内不能再定义另一个函数,也就是不能嵌套定义,但可以嵌套调用函数,如下图所示。c、函数的调用过程(1)被调函数的所有形参分配内存,再计算实参的值,并一一对应地赋予相应的形参。(2)为函数说明部分中定义的变量分配存储空间,再依次执行函数的可执行语句。当执行到“return(表达式);”语句时,计算返回值。(3)释放在本函数中定义的变量所占用的存储空间(对于static类型的变量,其空间不会释放),返回主调函数继续执行。2、参数传递调用函数向被调用函数传递数据主要是通过函数的参数进行的,而被调用函数向调用函数传递数据一般是通过return语句实现的。形参是函数定义时函数名后括号中的变量;实参是指调用函数时函数名后括号中的常量、变量或表达式。在调用函数时,将实参的值传递给形参,使形参在数值上和实参相同。C语言提供了两种参数传递数据方式:按值传递和按地址传递。a、按值传递函数调用时,调用函数把实参的值传递给被调用函数的形参,形参值的变化不会影响实参的值。这是一种单向的数据传送方式。当实参是常量、变量、表达式或数组元素,形参是变量名时,函数传递数据采用的是按值传递。b、按地址传递当函数的形参为数组或指针类型时,函数调用的参数传递称为按地址传递。由于传递的是地址,使形参与实参共享同一存储单元,这样通过形参可以直接引用或处理该地址中的数据,达到改变实参值的目的。3、函数的返回值(1)函数的值只能通过return语句返回给调用函数。return语句的一般形式为:return表达式;return(表达式);(2)如果不需要从被调用函数返回函数值,可以省略return语句。省略时,返回的值不确定。(3)return语句中表达式值的类型应与函数定义中函数的类型保持一致。(4)对不需要返回函数值的函数,可以将其函数类型定义为“void”(即“空类型”)。4、函数声明同变量一样,函数的调用也遵循“先声明,后使用”的原则。函数声明的格式为:类型名函数名(参数类型1,参数类型2,…);类型名函数名(参数类型1形参1,参数类型2形参2,…);5、函数的嵌套调用C语言的函数定义都是互相平行、独立的。也就是说,在定义函数时,一个函数内不能包含另一个函数的定义。如果在一个函数中再调用其他的函数,则称为函数的嵌套调用。也就是说,在被调用函数的过程中,又可以调用另一个函数。(四)讲解递归函数:在C语言中一个函数可以直接或间接调用自己,这种函数自己调用自己的形式称为函数的递归调用,带有递归调用的函数也称为递归函数。递归调用的方法是一种重要的程序设计方法,许多复杂问题可以很容易地使用递归方法得到解决。1、递归函数的概念构造递归函数的关键是寻找递归算法和递归的终止条件。要采用递归方法来解决时,必须符合以下2个条件:(1)要解决的问题能简化为一个新问题,而这个新问题的解决方法仍与原来的解决方法相同,只是所处理的问题进一步简化。归结为:寻找递归表达式。(2)必定要有一个明确的结束递归的条件,一定要能够在适当的时候结束递归调用。归结为:寻找递归的出口。数组作函数的参数。1、数组元素作函数实参2、数组作函数参数数组名作为函数参数调用函数的格式为:函数名(数组名)(五)局部变量和全局变量。C语言只允许在3个地方定义变量。(1)函数内部的声明部分。(2)所有函数的外部。(3)复合语句中的声明部分。变量定义的位置不同,作用域也不同。从变量的作用域来分,可以将其分为局部变量和全局变量。1、局部变量在一个函数内部定义的变量是局部变量,其作用域仅限于该函数内,它只在本函数范围内有效。C语言规定在复合语句内也可以定义变量,其作用域仅限于该复合语句内。2、全局变量C语言规定在函数之外也可以定义变量,这样的变量称全局变量(也称外部变量)。在同一源程序文件中的函数可共用全局变量。全局变量的有效范围为从定义全局变量的位置开始到该源文件结束。若在全局变量定义处之前的函数想引用该全局变量,则需要在该函数中用关键字extern作外部变量声明。(六)讲解变量生命周期与存储类型。变量从定义开始分配存储单元,到运行结束存储单元被回收,整个过程称为变量生命周期。影响变量生命周期的是变量的存储类型,也就是说变量的存储类型不同其生命周期也是不同的。1、静态存储与动态存储C程序存储分布图如下:2、变量的存储类型带有存储类型的变量定义的一般形式为:存储类型数据类型变量名;在C语言中,变量的存储类型有以下4种。(1)auto(自动类型)。(2)register(寄存器类型)。(3)static(静态类型)。(4)extern(外部类型)。(七)讲解内部函数与外部函数。1、内部函数static类型名函数名(形参表);2、外部函数extern类型名函数名(形参表);总结三、归纳总结,布置作业/随堂练习(一)回顾上课前的学习目标,并对本节课的内容进行总结。教师总结本节课需要掌握的知识点,包括函数、递归函数、局部变量与全局变量。(二)布置随堂练习,检查学生掌握情况。(三)完成超星平台的章节知识测试,以及教师发布的实践任务通过将大问题分解为小问题,并将小问题的解组合起来得到大问题的解,实现问题的分治策略。让同学们学会学习,学会取舍,注意总结。教学后记

课次:第19-21讲课程教案授课主题指针章节内容第6章指针与内存管理地点综合楼208课时6教学目的与要求理解指针的概念;掌握指针变量的定义与引用方法;掌握指针与数组、字符串之间的联系;掌握动态内存分配和释放的方法;掌握带指针型参数和返回指针的函数的定义方法;掌握函数指针的用法教学重点指针与指针变量的概念、指针变量的定义和引用、指针和地址运算、指针与数组、指针与字符串、指针与数组作为函数的参数教学难点指针与指针变量的概念、指针变量的定义和引用、指针和地址运算、指针与数组、指针与字符串、指针与数组作为函数的参数教学方法理论讲授+实例演示教学手段多媒体+案例分析教学过程课程思政元素一、回顾上节课内容,继续讲解本课时的知识1.教师对学生们的疑问进行统一答疑。2.回顾总结上节课内容,继续介绍本课时的内容。二、创设意境,导入新课(设疑法、提问法)指针是C语言中广泛使用的一种数据类型。

运用指针编程是C语言最主要的风格之一。C程序设计中使用指针可以: ①使程序简洁、紧凑、高效②有效地表示复杂的数据结构③动态分配内存④得到多于一个的函数返回值⑤能像汇编语言一样处理内存地址,从而编出精练而高效的程序三、C语言的指针1.在进行介绍前,确认内存地址和变量地址的概念内存地址即内存中存储单元的编号,通过教室语内存进行类比变量地址为系统分配给变量的内存单元的起始地址,其中数据类型决定着这个变量具体占了多少内存单元指针:值得是一个变量的地址指针变量:专门存放变量地址的变量运算符&和*其中&含义:取变量的地址,单目运算符,结合性:自右向左*含义含义:取指针所指向变量的内容,单目运算符,结合性:自右向左去具体的例题给同学们进行讲解变量值的存取方法:直接访问:按变量名来存取变量值、间接访问:通过存放变量地址的变量去访问变量。而后确定指针变量与其所指向的变量之间的关系指针的定义指针变量的赋值语句另外,需要指出指针变量赋值的集中错误方法:引用指针变量指针的加减运算:指针可以参与加法和减法运算,但其加、减的含义绝对不同于一般数值的加减运算。如果指针p是这样定义的:ptype*p;,并且p当前的值是ADDR,那么:p±n的值=ADDR±n*sizeof(ptype)一般而言,:两个指针相加没有任何意义,但两个指针相减则有一定的意义,可表示两指针之间所相差的内存单元数或元素的个数,在后面的学习中就会体会到。指针变量的关系运算若p1和p2指向同一数组,则p1<p2表示p1指的元素在前p1>p2表示p1指的元素在后p1==p2表示p1与p2指向同一元素若p1与p2不指向同一数组,比较无意义p==NULL或p!=NULL3.数组的指针数组的指针其实就是数组在内存中的起始地址。而数组在内存中的起始地址就是数组变量名,也就是数组第一个元素在内存中的地址。如果将数组的起始地址赋给某个指针变量,那么该指针变量就是指向数组的指针变量。然后对其进行类推。二维数组在二维数组中需要注意的是行地址和列地址,具体如下所示在这里,需要对其进行一一推理,因为该理论有点抽象,所以只能够需要注意讲解方式针对于字符指针4.函数指针在函数这一章节中,已经确定数组的名字为指针,因此主要讲解单纯的指针作为地址进行输入参数传递方式:1、传值调用:将参数值传递给形参。实参和形参占用各自的内存单元,互不干扰,函数中对形参值得改变不会改变实参的值,属于单向数据传递方式。2、传址调用:将实参的地址传递给形参。形参和实参占用同样的内存单元,对形参值得改变也会改变实参的值,属于双向数据传递方式。然后对其进行讲解,共包括七类严谨性:指针的使用需要非常严谨,稍有不慎就可能导致程序出现错误或崩溃。因此,需要培养学生的严谨性和细心程度,让他们能够认真对待每一个细节,确保程序的正确性和稳定性。教学后记

课次:第22-23讲课程教案授课主题结构体、共用体与枚举类型章节内容第7章结构体、共用体与枚举类型地点行政楼208课时4课时教学目的与要求掌握结构体的基本概念;结构体的定义与引用;掌握结构体与链表;3、简单了解枚举类型。教学重点1、结构、共用体及枚举的基本概念;2、单链表的基本概念;3、链表结构的程序设计方法。教学难点结构数组及结构指针的定义及用法教学方法1、多媒体教学演示2、案例分析法3、讨论法教学手段网络资源应用、在线教学平台教学过程课程思政元素一、回顾上节课内容,继续讲解本课时的知识(一)回顾总结上节课内容,继续介绍本课时的内容。(二)明确学习目标。1、掌握在程序设计实践中有关结构体及链表的应用;2、了解结构体数组及结构指针的定义及用法;3、掌握链表结构的程序设计方法;4、掌握共用体的应用;5、了解结构体与共用体的不同6、简单了解枚举类型。二、进行重点知识的讲解(一)教师根据课件,讲解结构的概念与定义。1、结构的概念及定义结构是将彼此相关的、类型不同的数据组合在一起的构造数据类型,它是若干成员(也称为结构分量)组成的,每一个成员的数据类型可以是基本数据类型,也可以是构造类型。在使用某个结构之前必须先声明它,即根据需要构造它。声明结构类型的一般形式为:struct结构名{类型名成员名1;类型名成员名2;…….类型名成员名n;}2、结构的嵌套定义成员的数据类型也可以定义为结构类型,这样就形成了结构的嵌套。嵌套有以下方法:(1)先定义成员的结构类型,再定义主结构类型(2)在主结构类型内部定义成员的结构类型(二)讲解结构变量。1、结构变量的定义与初始化a、结构变量的定义声明了结构类型后,还需要定义结构变量,以便在程序中引用它。结构变量和其他变量一样,必须先定义后使用。b、结构变量的初始化结构变量在定义的同时也可以进行初始化。结构变量初始化的一般形式是在定义变量的后面加上“={初值表列};”。2、结构变量的引用除了允许具有相同类型的结构变量相互赋值以外,不能整体引用结构变量,而只能引用结构变量中的成员。结构变量的成员与普通变量一样可以参与各种运算,对结构变量的赋值、存取、运算都是通过引用其成员进行的。引用结构变量成员的方式为:结构变量名.成员名(三)讲解结构数组。1、结构数组的定义与初始化a、结构数组的定义可以将数组定义为结构类型,即结构数组结构数组用来表示具有相同数据结构的一个群体,可以使用循环对数组元素进行统一处理,优化算法。b、结构数组的初始化结构数组初始化的一般形式为:struct结构名数组名[元素个数]={初值表列};2、结构数组的使用结构数组元素成员的引用可以有如下几种形式:(1)结构数组名[下标].成员名(2)(*(结构数组名+下标)).成员名(3)(结构数组名+下标)->成员名(四)讲解结构指针。1、结构指针的概念指向结构变量的指针叫做结构指针。结构指针变量的值是它所指向的结构变量所占用内存空间的起始地址。结构指针变量定义的形式为:struct结构名*指针变量名;2、指向结构数组的指针结构指针也可以用来指向一个结构数组,这时结构指针的值是结构数组的首地址。同样,结构指针变量也可以指向结构数组元素,此时结构指针变量的值是结构数组元素的地址3、结构指针作为函数参数结构指针作为函数的参数,要求对应的形参是一个同类型的结构指针由于指针中存放的是地址,因此实参指针和形参指针实际指向同一个地址,则在被调用函数中对形参的修改会影响相应实参的值。(四)讲解链表1、链表的概念链表是一种动态数据结构,它使用随机分配的内存单元来存放数据,这些内存单元可以是连续的,也可以是不连续的。链表是由若干个相同结构类型的元素依次串接而成的,它使用指针来表示两个元素之间的前后关系。2、动态内存分配动态内存分配是指在程序运行时动态地分配或者回收内存空间的方法,其好处是能有效地使用内存,而且同一段内存可以有不同的用途,使用时申请,用完就释放。包括三个方面的内容:动态内存分配、动态内存调整和动态内存释放。使用动态内存分配函数需要包含头文件“stdlib.h”、“malloc.h”或者“alloc.h”。3、链表的基本操作单链表的基本操作主要有:(1)创建链表(2)输出链表(3)查找结点(4)插入结点(5)删除结点(6)重组链表(五)讲解共用体。1、共用体的定义a、共用体的定义共用体,也叫联合体,是一种用户自定义的构造数据类型,它使几个不同类型的变量共占同一段内存。b、共用体变量,有以下三种方法定义共用体变量:(1)、先声明共用体类型,然后再定义共用体变量(2)、声明共用体类型的同时定义共用体变量(3)、直接定义共用体变量(六)讲解枚举。1、枚举类型的定义a、枚举类型声明一个枚举类型的一般形式为:enum枚举名{ 枚举值列表 };b、枚举变量声明了枚举类型后,可以使用它来定义枚举变量,有以下三种形式:(1)先定义枚举类型,然后定义枚举变量(2)定义枚举类型的同时定义枚举变量(3)直接定义枚举变量2、枚举类型的使用a、枚举类型数据的输入输出b、枚举类型数据的关系运算(七)讲解类型定义。C语言允许用户为数据类型取“别名”,类型定义符typedef可用来实现此功能。使用typedef定义类型说明符的格式为:typedef类型标识符别名;(八)教师根据课件,通过习题让学生进行巩固加强知识理解。三、归纳总结,布置作业/随堂练习(一)回顾上课前的学习目标,并对本节课的内容进行总结。教师总结本节课需要掌握的知识点,包括结构的概念与定义、结构变量、结构数组、结构指针、链表、共用体、枚举、类型定义。(二)布置随堂练习,检查学生掌握情况。(三)完成超星平台的章节知识测试,以及教师发布的实践任务。整体性思维:结构体作为一个整体,包含多个成员,每个成员都有自己的数据类型和名称。这要求我们在处理问题时,要有整体性思维,全面考虑各个方面的因素,把握整体与部分的关系。教学后记

课次:第24讲课程教案授课主题文件操作章节内容第8章文件操作地点行政楼208课时4课时教学目的与要求理解文件的概念;正确把握文本文件与二进制文件的区别;掌握文件的打开、读写、定位以及关闭的方法;掌握文件系统中有关文件操作的系统函数使用方法;能设计对文件进行简单处理的实用程序。教学重点掌握文件的打开、读写、定位以及关闭的方法;教学难点1、掌握文件的打开、读写、定位以及关闭的方法;2、能设计对文件进行简单处理的实用程序。教学方法1、多媒体教学演示2、案例分析法3、讨论法教学手段网络资源应用、在线教学平台教学过程课程思政元素一、回顾上节课内容,继续讲解本课时的知识(一)回顾总结上节课内容,继续介绍本课时的内容。(二)明确学习目标。1、理解文件的概念;2、正确把握文本文件与二进制文件的区别;3、掌握文件的打开、读写、定位以及关闭的方法;4、掌握文件系统中有关文件操作的系统函数使用方法;5、能设计对文件进行简单处理的实用程序。二、进行重点知识的讲解(一)教师根据课件,讲解文件的概念。1、文件的基本概念文件:存储在外部介质上数据的集合,是操作系统数据管理的单位。文件命名规则:为标识一个文件,每个文件都必须有一个文件名,其一般结构为:主文件名[.扩展名]遵循操作系统的约定。例如,一个C语言源程序名为:prg.c使用数据文件的目的:数据文件的改动不引起程序的改动——程序与数据分离不同程序可以访问同一数据文件中的数据——数据共享能长期保存程序运行的中间数据或结果数据2、文件的类别按文件的逻辑结构:记录文件:由具有一定结构的记录组成(定长和不定长)流式文件:由一个个字符(字节)数据顺序组成按存储介质:普通文件:存储介质文件(磁盘、磁带等)设备文件:非存储介质(键盘、显示器、打印机等)按文件的内容程序文件。程序文件又可分为源文件、目标文件和可执行文件。数据文件。如各种图像文件、声音文件等。根据文件的组织形式顺序存取文件;随机存取文件。按数据的组织形式:文本文件:ASCII文件,每个字节存放一个字符的ASCII码二进制文件:数据按其在内存中的存储形式原样存放3、文件操作概述读文件与写文件读文件:将磁盘文件中的数据传送到计算机内存的操作。写文件:从计算机内存向磁盘文件中传送数据的操作。构成文件的基本单元与流式文件C语言将文件看作是由一个一个的字符(ASCII码文件)或字节(二进制文件)组成的。文件中不存在其它更复杂的数据类型和结构,对文件数据的解释完全看程序本身。我们把按这种方式处理的文件称为流式文件。而在其它高级语言中,组成文件的基本单位是记录,对文件操作的基本单位也是记录。C语言程序也可以按照操作系统的方式操作文件,本章只介绍流式文件的操作方法。C语言本身没提供输入输出的功能,必须调用标准库函数进行文件读写。文件处理方法缓冲文件系统:高级文件系统,系统自动为正在使用的文件开辟内存缓冲区非缓冲文件系统:低级文件系统,由用户在程序中为每个文件设定缓冲区4、文件指针文件结构体FILE缓冲文件系统为每个正使用的文件在内存开辟文件信息区文件信息用系统定义的名为FILE的结构体描述FILE定义在stdio.h中(VisualC++2010)typedefstruct_iobuf{char*_ptr;int_cnt;char*_base;int_flag;int_file;int_charbuf;int_bufsiz;char*_tmpfname;}FILE;文件类型指针指针变量说明:FILE*fp;用法:文件打开时,系统自动建立文件结构体,并把指向它的指针返回来,程序通过这个指针获得文件信息,访问文件文件关闭后,它的文件结构体被释放5、文件的打开、读写和关闭(二)教师根据课件,通过习题让学生进行巩固加强知识理解。三、归纳总结,布置作业/随堂练习(一)回顾上课前的学习目标,并对本节课的内容进行总结。教师总结本节课需要掌握的知识点,包括文件的基本概念、类别、打开与关闭、读写函数以及文件的定位读写。通过课程,理解了文件在程序数据管理中的重要性,掌握了文件处理的基本方法。(二)布置随堂练习,检查学生掌握情况。(三)完成超星平台的章节知识测试,以及教师发布的实践任务。强调文件操作的规范性和重要性,引导学生树立严谨的数据管理观念。通过文件处理实践,培养学生耐心、细致的工作态度,提升团队协作能力。同时,结合信息安全和隐私保护等议题,增强学生的社会责任感和职业道德,为成为有担当的IT人才奠定坚实基础。教学后记

附件3:实验课程教案格式教师备课本(2024-2025学年第1学期)二级学院计算机科学与工程学院系(教研室)计算机科学与技术课程名称程序设计基础授课班级授课教师职称年月日

注意事项和要求实验教学应按教学大纲执行,不得随意更改。每个实验项目可按形式和内容分为演示性实验、验证性实验、综合性实验和设计性实验等,实验课程应深化教学改革,开出一定数量的综合性、设计性实验。一、实验教学备课本编写注意事项:1.实验教学备课本组成部分:封面、实验课程概况、实验教案。2.课程概况:课程概况包括课程名称、课程编码、实验类型、考试方式、推荐教材及参考书目、教学目的要求、能力培养及教学重难点等。以上课程信息内容必须同培养方案及教学大纲保持一致。3.实验教案:是实验教学备课本的主体部分,其基本要素包括授课主题、相应章节、授课时间、课时、教学方式、地点、教学目的与要求、教学重点与难点、教学方法、实验材料与仪器设备、教学设计、教学过程、教学备注、教学后记等。二、实验教案编写注意事项:1.实验名称:实验名称应规范,同一内容的实验不能出现不同的实验名称。2.教学重点、难点:指该堂课的重点和难点部分,学生必须掌握的知识点和技能,包括实践操作训练的主要指导要点;关键环节、关键技术指导方法等。3.安全注意事项:实验前有毒有害药品,实验过程中安全操作,实验后的有毒有害药品及其废水废料处理。4.实验材料与仪器设备:指实验教学中用到的所有实验材与仪器设备。5.教学过程:是对实验过程各项内容的具体化,实验过程的各项内容要在教学过程中依次写出。6.教学备注:用于批注教学过程中用到的教学方法或启发学生思维的实际案例,或实验过程中的注意事项等。7.教学后记:是教师完成本实验教学任务后对教学设计、教学重难点把握、教学方法应用、教学效果等过程情况的总结与分析,为以后教学提供经验和素材,教学后记必须手写。实验课程概况课程名称程序设计基础授课班级课程编码110405402实验类型(个数)验证类(*)演示类()其它:综合类()设计类()考试方式开卷□闭卷☑操作□答辩□论文(报告)□设计(作品)□课程学时4学时/周学分4推荐教材及参考书目序号名称作者出版社出版时间1C语言程序设计(双色版)张玉生上海交通大学出版社2018.82C语言程序设计基础(微课版)樊继慧中国铁道出版社有限公司2024.4授课教师职称授课时间2024-2025学年第1学期教学目的要求通过实验课程的学习实践,加深学生对所学的基本概念、基础理论和知识的理解,熟悉使用DevC++集成环境进行C语言的编写、编译与调试。同以项目实训的形式引导和帮助学生解决实际问题,提高学生解决具体问题的能力,以及培养学生解题能力。(1)掌握C语言程序的基本格式,了解C程序的开发过程和C语言中的一些常用概念。(2)掌握常量和五种基本数据类型变量的使用。(3)掌握C表达式和运算符的正确使用,熟练掌握数据输入、输出函数。(4)掌握条件转移语句if-else和选择分支语句switch;掌握三种程序跳转的方法,即break语句、continue语句、return语句。(5)掌握循环语句(for语句;do-while语句;while语句)的正确使用(6)掌握数组的定义、赋值,一维数组与二维数组的使用。(7)掌握函数的定义、函数的调用以及函数的类型说明。(8)掌握局部变量、全局变量的定义和使用。(9)掌握指针的基本概念以及数组与指针、指向指针的指针的基本用法。(10)理解项目式程序开发的过程。实验安全与注意事项教学重点难点结构化程序设计函数指针数组课次:第1次实验课程教案实验名称C语言基本知识相应章节第一、二章授课时间20年月日第周星期第节地点课时2教学目的与要求1、掌握c程序设计编程环境,能够编写简单的c程序。2、了解程序调试的思想,能找出并改正c程序中的语法错误。3、掌握数据类型的选择,理解常量和变量定义和使用。4、掌握基本运算符的使用。5、掌握输入和输出语句的基本使用方式。教学重点学会顺序程序设计的思想,掌握各种数据类型的输入输出格式,并学会使用输入输出函数,学会使用表达式教学难点学会顺序程序设计的思想教学方法与手段理论讲授+实操安全注意事项实验材料与仪器设备计算机及网络连接、Dev-C++或VisualStudio2019以上版本教学过程课程思政元素实验前的准备计算机及网络连接、Dev-C++或VisualStudio2019以上版本课上教学的设计实验内容与原理1、编写程序equation.c,求方程值:键盘输入x的值,求方程y=x*x+2*x-10所对应的y值。2、编写程序volume.c,输出长方体的体积:输入一个长方体的长、宽和高(大于0),输出这个长方体的体积(保留两位小数)。3、编写程序exchange.c,交换两个整数a和b:定义两个整数变量a和b,通过键盘给分别给a和b分别赋值,再程序中实现a和b数值的交换,输出a和b交换后的值。4、编写程序reverse.c,反序数:数字反序输出输入任意一个四位数,将其各位数字反序输出(例如输入1234,输出4321)。实验方法与步骤1、编写程序equation.c,求方程值:键盘输入x的值,求方程y=x*x+2*x-10所对应的y值。参考代码:2、编写程序volume.c,输出长方体的体积:输入一个长方体的长、宽和高(大于0),输出这个长方体的体积(保留两位小数)。参考代码:3、编写程序exchange.c,交换两个整数a和b:定义两个整数变量a和b,通过键盘给分别给a和b分别赋值,再程序中实现a和b数值的交换,输出a和b交换后的值。参考代码:编写程序reverse.c,反序数:数字反序输出输入任意一个四位数,将其各位数字反序输出(例如输入1234,输出4321)。参考代码:布置作业撰写实验报告顺序结构程序设计实验中,学生需要解决一些实际问题,需要运用所学知识进行分析和解决。希望学生面对问题时能够迅速分析、提出解决方案并付诸实践。教学后记

课次:第2次实验课程教案实验名称实验二顺序和选择结构程序设计相应章节第三章授课时间20年月日第周星期第节地点课时2教学目的与要求1、 掌握关系运算符和关系表达式的使用方法,以及逻辑运算符和逻辑表达式的使用方法。2、 理解和掌握分支结构程序设计的基本概念和应用。3、 掌握C语言中单分支if、双分支if-else以及多分支if-elseif、switch语句的使用方法。4、 能够使用选择分支结构语句编写简单的程序,解决实际问题。教学重点 1、掌握C语言中单分支if、双分支if-else以及多分支if-elseif、switch语句的使用方法。2、 能够使用选择分支结构语句编写简单的程序,解决实际问题。教学难点能够使用选择分支结构语句编写简单的程序,解决实际问题教学方法与手段理论讲授+实操安全注意事项实验材料与仪器设备计算机及网络连接、Dev-C++或VisualStudio2019以上版本教学过程课程思政元素实验前的准备计算机及网络连接、Dev-C++或VisualStudio2019以上版本课上教学的设计实验内容与原理1、编写C程序,判断输入数是否为升序数。2、编写C程序,求解分段函数。3、编写C程序,单分支if与多分支if-elseif以及switch语句。实验方法与步骤1、编写C程序,判断输入数是否为升序数:由键盘输入一个3位的整数,判断该数是否为升序数。若输入的不是3位数,输出”输入错误”。升序数是指高位数依次小于其低位数的数。如359为升序数。输出结果图如下:2、编写C程序,求解分段函数:利用if-else语句编写,输入x的值,按以下分段函数计算并输出y的值。y3、编写C程序,单分支与多分支以及switch语句:设某公司的业务员工资的计算方法:工资=基本工资+提成。其中,提成的计算方法为:当销售额在10000元以下时,只发基本工资1000元;当销售额在10000元以上才可以拿提成。提成的比率为:当销售额在20000元以下时,超出10000元的部分可按5%提成;当销售额在20000元以上50000元以下时,超出20000元的部分可按6%提成;当销售额在50000元以上100000元以下时,超出50000元的部分可按7%提成;当销售额在100000元以上时,超出100000元的部分可按8%提成。输入一个业务员的销售额,计算其应发的工资额。请分别用单分支if语句、多分支if语句(if-else-if)以及switch语句三种形式完成上述应用题的求解。输出结果图如下:布置作业撰写实验报告实验中,鼓励学生尝试不同的算法和方法来解决问题。这体现了创新精神的思政思想,鼓励学生勇于探索、尝试新的思路和方法,培养学生的创新意识和创新能力。教学后记

课次:第3次实验课程教案实验名称实验三循环结构程序设计相应章节第三章授课时间20年月日第周星期第节地点课时2教学目的与要求1、 理解和掌握循环程序设计的基本概念和应用,包括循环语句的语法和流程控制。2、 熟练使用常见的循环结构,如for循环、while循环和do-while循环。3、 培养学生解决实际问题的能力和程序设计技巧,提高学生的编程水平。教学重点熟练使用常见的循环结构,如for循环、while循环和do-while循环教学难点培养学生解决实际问题的能力和程序设计技巧,提高学生的编程水平教学方法与手段理论讲授+实操安全注意事项实验材料与仪器设备计算机及网络连接、Dev-C++或VisualStudio2019以上版本教学过程课程思政元素实验前的准备计算机及网络连接、Dev-C++或VisualStudio2019以上版本课上教学的设计实验内容与原理本实验旨在帮助学生熟悉C语言中的for语句、while语句、do-while语句的使用,并让他们熟悉C语言的循环结构程序设计。1、

温馨提示

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

最新文档

评论

0/150

提交评论