《《C语言程序设计》 教案 7 文件(4课时).docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》 教案 7 文件(4课时).docx(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C语言程序设计教学设计 日期:年月日教学内容文件概述;文件的打开与关闭;顺序读写数据文件(读写字符、读写字符串)教学学时2授课教师班级地点周次星期节次教学 目标素质目标知识目标能力目标(1)基本职业素养:遵守工作时间, 使用实践设备时注意用电安全,实践设 备使用完毕后要断电并放于指定位置, 程序设计要注重工程规范,养成良好的 工作习惯。(2)团结协作素养:小组内成员互查 程序代码书写规范性、准确性和完整性, 取长补短,具有责任意识、团队意识与 协作精神。(3)自主学习素养:能根据任务要求, 查找相关资料解决实际问题;能自主完 成练习,培养自主学习的意识与一丝不 苟、实事求是的工作作风。(4)思
2、政和劳动素养:具有一定的辩 证唯物主义运用能力、安全意识、劳动 意识、创新意识、创新能力和强烈的爱 国主义精神。(1)理解文件的 相关概念(2)掌握文件的 打开与关闭操作方 法(3)理解顺序读 写数据文件的概念, 掌握对文件顺序读 写字符、字符串的操 作方法能用文件的 相关函数实现 文件的打开、关 闭、读写和出错 检测操作教学重点(1)文件的分类、文件缓冲区、文件类型指针(2)文件打开函数fopen、关闭函数fcolse及应用(3)对文件读写一个字符的函数fgetc、Qmtc及应用(4)对文件读写一个字符串的函数fgets、fputs及应用教学难点文件函数 fopen、fcolse, fget
3、c、fputc, fgets fputs 的应用能力训练 任务任务1:理解文件的相关概念任务2:掌握文件的打开与关闭操作方法任务3:掌握对文件顺序读写字符、字符串的操作方法教学材料(1)教材:朱琨C语言程序设计,机械工业出版社,978-7-111-66954-8, 2021(2)教学资源:电子教案、教学课件、微课视频、在线开放课程(3)仪器与设备:电脑(装有VC+开发环境)C语言程序设计教案 第7单元第2次课统名调用形式功能及返回值rewindrewind(4)使中指向的文件中的位置指示器置于文件头。函数无返回值ftdlfteU(fp)获取中指向的文件中的位置指示器的当前位差,用相对于文件 头
4、的位移量来表示。函数执行成功,返回相对于文件头的位移量; 否则,返回TLfseekfseekg位移量:起始点)使中指向的文件中的位置指示器从“起始点”指定的位置向文 件尾或文件头的方向移动“位移量”个字节数起始点:数字0或宏名SEEK.SET表示文件开始位置 数字1或宏名SEEK_CUR表示文件当前位置 数字2或宏名SEEK.END表示文件末尾位置位移量:为long型数据,在数字后加L可表示long型,正整 数表示向文件尾移动,负整数表示向文件头移动函数执行成功,返回0;否则,返回非0值例如:i=ftell(fp);获取文件位置指示器的当前位置if(i=-lL) priutf(文件位置读取出错
5、);/出错fseek(fp, 10L, 0); 将文件位置指示器移到离文件头10个字节处fseek(fp, 10L, 1); 将文件位置指示器移到离当前位置10个字节处fseek(fp, -10L,2); 将文件位置指示器从文件尾向后退10个字节【学习检验】教材第8章练习题:第6、12题。3、定位函数的应用:实现随机读写【应用案例分析】教材例86从键盘输入5名学生的相关数据,然后将它们转存到磁 盘文件中去,最后随机查询磁盘文件中的某名学生的信息,并送显示屏显示。步骤四:任务3:熟悉文件读写出错检测函数及应用方法(时间:5分钟)In feiror函数及应用文件出错检查:ferror(fp)返回值
6、:0表示读写文件未出错,非零值表示读写文件出错。在执行fopen函数时,ferror函数的初始值自动置为0。2、clearerr函数及应用使文件错误标志和文件结束标志置为0: clearerr(fp)若文件读写出错,则ferror的函数值(非零值,读写出错标志)会一直被保留。对同一 文件调用clearerr函数 或rewind函数,或其他任何一个读写函数,可清除读写出错标志。【学习检验】教材第8章练习题:第9题。步骤五:概括基本内容,归纳重点内容(时间:5分钟)1、引导学生概括本次课的基本内容,归纳重点内容(格式化读写文件的操作方法、二 进制方式读写文件的操作方法、随机读写数据文件的操作方法)
7、。2、作业布置:通过教材、PPT和在线课程,复习巩固本次课内容;完成教材相应习题, 学以致用;总结本单元所学内容。10教学进度设计步麻教学内容及目标思政元素教师活动学生活动时间一、复习 与导入复习:已学过的输入、输出函数。导入:C程序(尤其是数据管理类的程序) 中用到的数据,既可以从键盘输入,也可 以从文件中读取,而对于大批量的数据通 过键盘输入时非常麻烦且易出错,而从文 件中读取既可以提高数据的输入效率,也 可以减少人机交互操作造成的数据错误。学而时习 之,善于发 现问题提问、导入新课、 布置学习任务总结、回 答、明确学 习任务5m i n二、实施任务1:理解文 件的相 关概念1、文件分类(
8、1)按内容分:程序文件、数据文件(流 式文件)(2)按组织形式分:文本文件(ASCII文件)、二进制文件2、文件缓冲区3、文件类型指针FILE,定义文件型指针 变量:FILE *fp;对比讲解,引导 学生根据所学的 结构体和 typedef理解文 件型指针听讲、理 解、掌握15mi n三、实施 任务2: 掌握文 件的打 开与关 闭操作 方法1、打开fopen函数FILE *fp;fp=fopen(文件名,文件使用方式); 2、关闭fcolse函数fcolse(文件型指针变量);数据安全 意识(关闭 文件)对比讲解文件使 用方式;引导学 生加强数据安全 意识听讲、理 解、掌握20m i n四、实
9、施 任务3: 掌握对 文件顺 序读写 字符、字 符串的 操作方 法1、顺序读写数据文件:概念、操作种类2、对文件读写一个字符的函数及应用: fgetc(fp) fputc(ch,fp)3、对文件读写字符串的函数及应用: fgets(str,n,fp) fputs(str,fp)知识迁移 与运用,通 过实践加 强理论学 习引导学生对比 getchar、putchar 函数学习fgetc、 fputc函数,对比 gets和puts函数 学习 fgets fputs 函数,通过教材 例题学习其应用 方法;巡回指导对比已学 知识学习 新知识,分 析、编写和 运行例题 程序掌握 读写字符 和字符串 函数
10、的应 用方法45m i n五、总结概括基本内容,归纳重点内容自主学习引导学生归纳总 结,然后布置课 后任务思考,记 录,整理场 地5m i n作业通过教材、PPT和在线课程,复习巩固本次课内容;完成教材相应习题(可穿插到上述任务); 预习下次课内容:顺序读写数据文件(格式化读写、块读写);随机读写数据文件。课后 体会1 .首先引导学生为何要学习文件便于数据管理,激发学生的求知欲。2 .引导学生通过例题,学会文件操作函数的使用方法,解决实际问题。在此过程中,可对比 第2章和第3章所学的字符输入输出函数、字符串输入和输出函数进行学习,区别在于对象不 同:“终端”和“文件”。C语言程序设计教案 第7
11、单元第2次课文件概述;文件的打开与关闭;顺序读写数据文件(读写字符、读写字符串)教学详案步骤一:复习与导入(时间:5分钟)复习:已学过的输入、输出函数。导入:C程序(尤其是数据管理类的程序)中用到的数据,既可以从键盘输入,也可以 从文件中读取,而对于大批量的数据通过键盘输入时非常麻烦且易出错,而从文件中读取既 可以提高数据的输入效率,也可以减少人机交互操作造成的数据错误。步骤二:任务1:理解文件的相关概念(时间:15分钟).文件是指存储在外部介质(如磁盘等)上数据的集合。操作系统是以文件为单位对数据 进行管理的。在数据管理类的程序设计中,可从文件中读取数据,或向文件中写入数据。1文件分类(1)
12、按内容分程序文件:内容是程序代码,包括.c、.obj、.exe文件等。数据文件:内容不是程序,而是供程序运行时读写的数据。操作系统将每一个输入、输出设备都看作一个数据文件。例如,键盘是输入文件,显示 器和打印机是输出文件。(2)按组织形式分文本文件:也称ASCII文件,其中的每个字符对应一个字节(ASCII码)。二进制文件:以内存中存储形式(二进制形式)原样输出到外存。C语言中,对二进制 文件的访问速度比对文本文件的访问速度快。十进制数123对应的两种形式:ASCII形式【学习检验】教材第8章练习题:第1、2题。2、文件缓冲区系统自动地在内存中为程序中每一个正在使用的文件开辟一个文件缓冲区。内
13、存向磁盘输出数据:先将数据送到内存缓冲区,装满缓冲区后再一起送到磁盘。磁盘向内存输入数据:先一次从磁盘文件将一批数据输入到内存缓冲区,再从缓冲区逐 个将数据送到程序数据区。磁盘磁盘3、文件类型指针FILEC语言程序设计教案 第7单元第2次课使用一个文件时,系统将在内存中为该文件开辟一个文件信息区,用来存放文件的有关 信息(如文件名、文件状态、文件当前位置等)。这些信息保存在一个结构体变量中,该结 构体类型名由系统声明为FILEo对文件操作之前,须使用FILE定义指向文件的指针变量。例如:FILE *fp;若使fp指向某个文件的文件信息区,则可通过fp访问该文件。步骤三:任务2:掌握文件的打开与
14、关闭操作方法(时间:20分钟)对文件的操作一般要先后经过打开、读或写、关闭3步。在C语言中,对文件的打开、 读或写、关闭等操作都是通过库函数来实现的。1、用fopen函数打开数据文件FILE *fp;/定义FILE类型的指针变量fpfp=fopen(文件名,文件使用方式);将fopen函数返回值(地址)赋给指针变量fp 例如:fp=fopen(节为了读取文件filel,打开文件,并使fp指向filel文件 说明:(1)文件名:双撇号括起来的字符串、字符数组名或指向字符串的指针。(2)实际应用:if(fp=fopenCflel”,T)=NULL)若打开文件失败(printf(不能打开此文件n);
15、exit(0);关闭文件,终止正在执行的程序)(3)文件的使用方式及含义使用方式处理方式含义若指定的文件若指定的文件 不存在ur只读为了读取数据,打开一个文本文件正常打开出错只写为了写入数据,打开一个文本文件覆盍 、,追加向文本文件尾追加数据打开,追加建立新文件读写为了读和写::正常打开出错写读为了写和: 喏,打开一个文本文件-建立新文件Ma+M追加,读为了追加和读数据,打开一个文件文件打开,追加建立新文件MrbM与前面的6种方式对应相似,但处理的是二进制文件“wbW【学习检验】教材第8章练习题:第3题。2、用fcolse函数关闭数据文件对文件读或写操作结束后,应调用fclose函数关闭该文件
16、。若不关闭而直接退出程序, 可能会使文件缓冲区中未写入文件的数据丢失。【数据安全意识】fclose(fp); /关闭fp指向的文件(成功,返回0;否则返回文件结束标志EOF)C语言程序设计教案 第7单元第2次课步骤四:任务3:掌握对文件顺序读写字符、字符串的操作方法(时间:45分钟)用fopen函数打开一个文件后,即可对该文件进行顺序读写或随机读写。1、顺序读写数据文件:概念、操作种类顺序读写:对文件读写数据的顺序和数据在文件中的物理顺序一致,是从文件的开头逐 个字符进行读写。包括:读写字符、读写字符串、格式化读写、数据块读写,均通过库函数 实现。2、对文件读写一个字符的函数及应用:fgetc
17、(fp) fputc(ch,fp)函数名调用形式功能返回值fgetcfgetc(Q)从fp所指向的文件中读取 一个字符返回值为读取的字符。若读取到文件结 束标志EOF或读取出错,则返回值为EOFfputcfputc(ch. fp)把字符变量ch中的字符与 入fp所指向的文件巾写入成功,返回值为写入的字符;否则, 返回值为文件结束标志EOF【应用案例分析】教材例8.1:从键盘上输入一些字符,逐个写入到指定文件filel.txt 中;然后再从该文件中读取这些字符,并在显示屏上显示。对照PPT分析代码,引导学生理解并掌握文件的操作步骤:打开、读写、关闭。 【自主学习】测试文件是否结束函数feof(f
18、p):若结束,返回非0值,否则返回0。 【学习检验】教材第8章练习题:第4、5、13题。3、对文件读写字符串的函数及应用:fgets(str,n,fp) fputs(str,fp)巡名调用形式功能返回值fgetsfgels(strAfp)从fp所指向的文件中读取一个长度为 n-1的字符串,并自动加上字符串结束标 志的,然后把这n个字符存放到字符数组 str中。如果在读完n-1个字符之前遇到换 行符H或文件结束标志EOF,则结束读 入,但卬也作为一个字符读入读取成功,返回字符数组str的 首地址。若读取一开始就遇到文 件结束标志EOF或读数据出错, 则返回NULLfputsfputs(str?
19、fp)把str所指向的字符串写入fp所指向 的文件中,但字符串结束标志O不与人。 其中,str可以是字符串常量、字符数组名 或字符型指针写入成功,返回0;否则返回非 。值【及时巩固】教材第8章练习题:第8题。【应用案例分析】从键盘上输入一个字符串,写入到指定文件filel.txt中;然后再从该 文件中读取这个字符串,并在显示屏上显示。【学习检验】教材第8章练习题:第10、14题。步骤五:概括基本内容,归纳重点内容(时间:5分钟)1、引导学生概括本次课的基本内容,归纳重点内容(文件的相关概念、文件的打开与 关闭操作方法、对文件顺序读写字符、字符串的操作方法)。2、作业布置:通过教材、PPT和在线
20、课程,复习巩固本次课内容;完成教材相应习题, 学以致用;预习下次课内容:顺序读写数据文件(格式化读写、块读写);随机读写数据文 件。C语言程序设计教案 第7单元第2次课C语言程序设计教学设计 日期:年月日教学内容顺序读写数据文件(格式化读写、块读写); 随机读写数据文件;文件读写的出错检测教学学时2授课教师班级地点周次星期节次学标 教目素质目标知识目标能力目标(1)基本职业素养:遵守工作时间, 使用实践设备时注意用电安全,实践设 备使用完毕后要断电并放于指定位置, 程序设计要注重工程规范,养成良好的 工作习惯。(2)团结协作素养:小组内成员互查 程序代码书写规范性、准确性和完整性, 取长补短,
21、具有责任意识、团队意识与 协作精神。(3)自主学习素养:能根据任务要求, 查找相关资料解决实际问题;能自主完 成练习,培养自主学习的意识与一丝不 苟、实事求是的工作作风。(4)思政和劳动素养:具有一定的辩 证唯物主义运用能力、安全意识、劳动 意识、创新意识、创新能力和强烈的爱 国主义精神。(1)掌握顺序读 写(格式化读写、二 进制方式读写)数据 文件的操作方法(2)掌握随机读 写数据文件的操作 方法(3)熟悉文件读 写出错检测函数及 应用方法能用文件的 相关函数实现 文件的打开、关 闭、读写和出错 检测操作教学重点(1)格式化读写文件的函数fscanf、fprintf及应用(2)用二进制方式对
22、文件读写一组数据的函数fread、fwrite及应用(3)文件位置指示器概念、定位函数rewind、fseek、ftell实现随机读写文件(4)文件读写出错检测函数feiror、clearerr的应用教学难点(1)文件函数fscanf、fprintf, fread、fwrite分别实现格式化读写、二进制方 式读写文件(2)文件函数rewind、fseek、ftell实现随机读写文件能力训练 任务任务1:掌握顺序读写(格式化读写、二进制方式读写)数据文件的操作方法任务2:掌握随机读写数据文件的操作方法任务3:熟悉文件读写出错检测函数及应用方法教学材料(1)教材:朱琨C语言程序设计,机械工业出版社
23、,978-7-111-66954-8, 2021(2)教学资源:电子教案、教学课件、微课视频、在线开放课程(3)仪器与设备:电脑(装有VC+开发环境)6C语言程序设计教案 第7单元第2次课教学进度设计步骤教学内容及目标思政元素教师活动学生活动时间一、复习与导 入复习:与文件操作有关的6个函数: fopen、fclose; fgetc fputc fgets fputSo 导入:本次课学习其他顺序读写(格式 化读写、二进制方式读写)、随机读写 的实现方法及文件读写出错检测方法。学而时习 之,善于发 现问题提问、导入新 课、布置学习 任务总结、回 答、明确学 习任务5m i n二、实施任务 1:掌
24、握顺序 读写(格式化 读写、二进制 方式读写)数 据文件的操 作方法1、格式化读写函数及应用读函数:fscanf(fp,格式控制字符串, 地址列表)写函数:fprintf(fp,格式控制字符串, 输出列表)2、二进制方式读写函数及应用读函数:fread(buffer, size, count, fp)写函数:fwrite(buffer, size, count, fp)知识迁移与 运用,辩证 看待事物的 优缺点引导学生对 比 scanf 、 printf函数学 习 fscanf、 fprintf 函数, 通过例题掌 握相关函数 的应用方法; 巡回指导听讲、理 解,分析、 编写和运 行例题程 序
25、,掌握格 式化读写、 二进制读 写函数的 应用方法40m in三、实施任务 2:掌握随机 读写数据文 件的操作方 法导入:顺序读写的优缺点分析,随机读 写的概念1、文件位置指示器的概念2、文件位置指示器的定位函数(1)使位置指示器返回到文件头的rewind 函数:rewind(fp)(2)改变当前文件位置的fseek函数: fseek(fp,位移量,起始点)(3)获取位置指示器当前位置的ftell 函数:ftell(fp)3、定位函数的应用:实现随机读写辩证看待事 物的优缺点讲解,引导学 生通过例题 随机读写文 件的方法;巡 回指导听讲、理 解,分析、 编写和运 行例题程 序,掌握随 机读写文
26、 件的方法35m i n四、实施任务 3:熟悉文件 读写出错检 测函数及应 用方法1、ferror函数及应用文件出错检查:ferror(fp)2、clearerr函数及应用使文件错误标志和文件结束标志置为 0: clearerr(fp)自我监督、 自我完善讲解听讲、理解5m i n五、总结概括基本内容,归纳重点内容自主学习引导学生归 纳总结,然后 布置课后任 务思考,记 录,整理场 地5m i n作业通过教材.、PPT和在线课程,复习巩固本次课内容;完成教材相应习题(可穿插到上述任 务中):总结本单元所学内容。后会 课体1 .可对比第2章所学的格式化输入输出函数进行格式化读写文件的函数,区别在
27、于对象 不同:“终端”和“文件2 .引导学生通过分析格式化读写文件的优缺点,明确为何要学习二进制读写文件的方法。3 .引导学生通过分析顺序读写文件的优缺点,明确为何要学习随机读写文件的方法。4 .引导学生通过例题,学会文件操作函数的使用方法,解决实际问题。7C语言程序设计教案 第7单元第2次课顺序读写数据文件(格式化读写、块读写);随机读写数据文件;文件读写的出错检测教学详案步躲一:复习与导入(时间:5分钟)复习:与文件操作有关的 6 个函数:fopen、fclose; fgetc fputc、fgets fputSo导入:本次课学习其他顺序读写(格式化读写、二进制方式读写)、随机读写的实现方
28、 法及文件读写出错检测方法。步骤二:任务1:掌握顺序读写数据文件的操作方法(时间:40分钟)1、格式化读写函数及应用scanf函数和printf函数是以“终端”为对象的格式化输入、输出函数。而fscanf函数 和fprintf函数是以“文件”为对象的格式化输入、输出函数。辎名调用形式功能fccanffscanf fp,格式控制字符串,地址列表)从S指向的文件中按格式控制字符串指定 的格式读取数据,并存入地址列表中变量的存 储单元fprintf格式控制字符串:输出列表)将输出列表中变量的值按指定的格式愉出 (写入)到fp指向的文件中例如:fscanf(fp, n%d%f; &i, &j);格式化
29、读取文件若文件指针fp指向的文件中有数据3和5.8,则从fp指向的文件中分别读取数据3和 5.8送给变量i和j。fprintf(fp, n%d, %fij);格式化写入文件把变量i和j的值分别按1和的格式输出(写入)到fp指向的文件中。【应用案例分析】教材例8.4:将学生的数据信息写入指定文件filel.txt中;然后再从 该文件中读取学生的数据信息,并在显示屏上显示。对照PPT分析代码,引导学生理解并掌握文件的操作步骤:打开、读写、关闭。【学习检验】教材第8章练习题:第11题。2、二进制方式读写函数及应用使用fscanf函数和fprintf函数对磁盘文件进行格式化读写时,使用方便,但当内存中
30、 的二进制文件与磁盘中的文本文件之间频繁交换数据时,比较费时。此时,可改用fread函 数和fwrite函数以二进制方式对文件进行读写(数据块),数据可在内存与磁盘文件之间“原 封不动、无需转换”地进行交换,效率高。徵名调用形式功能返回值freadfread(buffer; size, count, )从力指向的文件中读取count个含有 size个字节的数据块,存入起始地址为 buffer的内存(变量)中执行成功,返 回count的值3 执行失败,返回 小于count的值fivritefXvnte(buffer; size, count fp)从起始地址为buffer的内存(变量)中, 把c
31、ount个含有size个字节的数据块写入 fp指向的文件中例如:int a10;read(a,4,10, fp); 从fp指向的文件中读取10个4字节的数据,存入数组a中C语言程序设计教案 第7单元第2次课struct Student(char name10;姓名int stu_ID;学号int age;/年龄stu10;从磁盘文件中读取10名学生的数据,存入内存结构体数组:for(i=0; i10; i+)fread(&stui, sizeof(struct Student), 1, fp);将内存中10名学生的数据写入磁盘文件:for(i=0; i10; i+)fwrite(&stu i,
32、 sizeof(struct Student), 1, fp);【学习检验】教材第8章练习题:第7题。【应用案例分析】教材例85从键盘输入5名学生的相关数据,然后将它们转存到磁 盘文件中去,最后再读取磁盘文件中的数据,并送显示屏显示。对照PPT分析代码,引导学生理解并掌握文件的操作步骤:打开、读写、关闭。步骤三:任务2:掌握随机读写数据文件的操作方法(时间:35分钟)复习:顺序读写数据文件的方法:(1) fgetc和fputc函数:读写一个字符;fgets和fputs函数:读写一个字符串;(2) fscanf和fprintf函数:格式化读写;fread和fwrite函数:读写一组数据(二进制方式)【问题发现】顺序读写,是从文件的开头逐个字符进行读写,因此若随机查找文件中的 第i个数据,顺序读写效率会很低。此时,可改用随机读写,以提高访问效率。1、文件位置指示器的概念一一用来指示当前读写的位置顺序读写时,文件位置指示器开始指向文件开头,每读写一个字符,文件位置指示器 自动移动到下一个字符的位置:文件头读写当前位置文件尾可根据需要,人为地将文件位置指示器移动到文件的任意位置,从而实现随机读写。2、文件位置指示器的定位函数(1)使位置指示器返回到文件头:rewind函数(2)改变当前文件位置:fseek函数(3)获取位置指示器当前位置:ftell函数