[C语言文件内容教学方法的完善策略分析]C语言文件

C语言文件内容教学方法的完善策略分析

C语言文件内容教学方法的完善策略分析 1 文件在C语言程序设计中的意义 文件是计算机系统中的一个重要的概念,也是程序设计 中所采用的一个重要手段。当程序中的数据需要频繁的从键 盘输入时,对于程序的运行和调试都是一件非常繁重的工作。

因此,通常在设计C语言程序时,都是使用“文件”的方式 来处理程序所需要的数据。将程序的处理结果保存在文件中, 或者将需要的数据以一定的格式录入进文件,再通过读取文 件的方式将数据“批量”导入到系统中,以便程序处理。例 如,程序设计类的竞赛是以文件的方式来实现数据的读取和 结果的存储;
在一般的综合性程序中也通常需要使用文件来 实现对数据的存储。

并且文件的概念和读取操作的过程,始终贯穿在所有其 他程序设计类课程的教学过程中,例如在数据结构课程中, 数据的准备采用文件的方式,通过读取文件的方式录入数据, 以提高程序运行效率;
在C++、Java等课程中也包含有对文 件进行操作等内容。因此文件在C语言教学中占有着非常重 要的地位,对学生编写程序具有重要意义。学生对文件操作 的熟练程度,影响着他们程序设计技能的提高和对后续课程 的学习。

2 C语言文件内容实际教学现状 在C语言教学中,对“文件”部分的教学现状主要体现 如下几个方面。2.1 文件内容的课时分布与授课位置,由于对“文件” 的重要性和特点认识不够,在C语言教学中,对“文件”内 容的教学处理存在着“失重”的现象。一方面,对文件内容 的课时安排比较少,一般都是一堂课(2课时)解决问题;

另一方面,一般都将文件内容的教学安排在C语言课程的最 后面。在文件内容讲授完后,大部分的时间可能就是学生为 应付考试的复习。因此学生对文件的练习时间和强调程度不 如课程的其他内容。

2.2 针对文件操作函数的讲解,在讲授“文件”部分时, 大部分都是对文件操作函数的讲解。例如,使用fopen打开 文件,使用fgetc函数从文件中读取,以及这些函数的参数 的意义等。至于为什么需要这个函数从文件中读取数据,使 用这个函数时对文件有什么样的要求,应该怎样使用读写函 数进行读写等问题,在教师授课时却被忽视了。

2.3 学生对文件的掌握状况,学生在C语言实训、C语言 课程设计、数据结构等课程中,以及学生在参加一些程序设 计类竞赛时,体现出来他们对文件的读写操作不熟。例如在 写入数据时,不知道在文件中保存什么样的数据;
在读取数 据时,不知道应该选用什么样的函数进行读写;
在读写文件 碰到问题不知道如何解决等等。但是在辅导学生时,却发现 学生对文件的读写函数是比较熟悉的,文件的操作步骤也是 比较清楚的。

为什么会出现这样的情况,应该是与教师在授课时的教学方法和课程组织上存在相当的关系的。

3 C语言文件内容教学方法改革 针对学生在学习文件部分时所体现的出来的问题,我校 C语言课程组重新审视了“文件”部分的授课特点,加强了 对文件的重要性认识。在文件部分的教学过程中进行了改革, 采取了如下的一些措施。

因此课程组在组织课程的教学内容时,在不影响基本语 法授课的前提下,将文件的操作贯穿于整个C语言教学过程, 使学生提早体验文件的操作。例如,在循环程序设计的举例 中,将其中的一些例子修改成从文件输入,并将其与从键盘 输入方式进行对比,从而使学生可以及早认识到“文件”, 了解文件的读写操作。在这些例子中,不给学生讲解概念, 不增加学生的额外负担,不影响主要语法的学习和应用。只 是通过具体实例,使学生了解到按照这样的步骤和方式,就 可以从文件中得到数据。

3.2 强调文件的概念,在对文件内容授课时,因该强调 文件的概念,使学生真正掌握“编写的程序”和“编写的文 件”的概念。在笔者授课过程,经常发现学生提这样一个问 题:我的数据已经保存到文件中了,为什么还需要从文件中 读取呢?读取的数据又存放在程序中哪个地方呢?有些同 学甚至干脆就在记事本文件中书写“x=12”;
则认为在程序 中变量x的值为12了。

这是初学者在编写程序、读写文件时,对数据文件和程序概念混淆不清造成。笔者在授课时使用图1,来帮助学生 区分数据文件和程序。

授课时需要强调:数据文件是操作系统管理的存在磁盘 介质中的数据集合;
程序是运行在内存中的代码,程序所处 理的对象都是内存单元中的值。如果程序需要文件中的数据, 必须使用图1的过程,将文件数据读入到程序所对应的内存 空间;
同时将程序中的数据保存进文件,也是通过图1的过 程,将内存单元中的值,写入到磁盘介质中。

3.3 理解文件指针,文件指针对在文件的操作中起着非 常重要的作用,在读写文件时,很多同学因为不了解为什么 调用读写函数时是逐个、顺序的从文件中读取的。因而也导 致了学生对使用文件读写函数产生了许多的不正确的认识。

因此在C语言授课时,通过文件指针的概念,指出C语言 程序是如何从缓冲区中读数据的,文件指针描述的是磁盘文 件在内存中所对应的缓冲区的信息。并且同时还引出文件内 部位置指针的概念,使学生了解文件读写函数读取数据的过 程。

通过对文件指针概念的了解,可以消除学生对读写文件 的“神秘感”,从而帮助学生正确的了解和操作文件。

很显然,程序从如图2的文件中读取数据时,如果不经 过处理,而是直接按照一般的方式去读取数据,是不能正确 的读取到学生信息的。

因此,在讲授文件内容时,不能拘泥于文件读写函数的讲解,而是应该列举不同的数据格式的文件,根据数据格式, 选择相应的读写函数对其读写。应该引导学生根据出历数据 的特点,设计相应的存储格式在文件中存放数据。

3.5 使用文件解决问题,由于文件内容一般安排最后面 讲解,在讲授该部分内容,应该综合前面所学习的内容,使 用文件解决前面章节中所讲授例子。使学生可以认识到使用 文件解决问题的方式和优势。这样,一方面可以巩固前面的 知识,另一方面也使学生比较容易理解文件的意义。

例如在学习数组时,讲授了数组排序的实例,其中的数 组中的数据来源于键盘的输入。在讲授文件时,可以把数据 事先录入到一个记事本文件中。编写程序时,从该文件中读 取需要排序的数据,将其保存在数组中,然后再对数组排序。

这样一方面复习了数组以及排序算法,另一方面也凸现了文 件的应用。

4 结束语 经过以上的教学改革,在讲授文件时,不再是对文件函 数的讲解。而是突出了文件读写的过程的本质,强调了“数 据文件”和“程序”的区别。引导学生从应用的角度去准备 数据,设计数据的存放格式,并根据数据格式选择相应的文 件读写方法。

通过采取上述的一系列措施,学生在使用C语言程序设 计时,可以熟练的进行文件的读写,达到了比较好的效果。

参考文献[1] 马占欣.“C 语言程序设计”类教材中文件操作部 分的一个普遍错误.计算机教育.2012.3 [2] 刘冲. C 语言中文件操作的基本操作. 黑龙江科技 信息.2013.13 [3] 李国忠. C语言程序设计中数据文件处理技巧. 中 国科技信息.2013.9 [4] 关忠仁. C 语言教学质量的思考与实践. 计算机教 育.2007.6 [5] 裴宗燕. 从问题到程序-程序设计与C语言引论(第 2版). 机械工业出版社,2011.5