标题 | C语言教学攻略研究与整合 |
范文 | 孙丽娜 【摘 要】 C语言因其重要的地位,成为目前高校理工类的公共必修课之一。然而,实际的教学效果并不理想,因C语言数据类型丰富,灵活性强,比较抽象且实践性很强,学生普遍认为C语言抽象难以理解,枯燥难以掌握,达不到预期效果。根据C语言的特点及学校教学改革的情况,本人提出一些C语言的学习方法。 【关键词】 C语言 【中图分类号】 G64.2 【文献标识码】 A 【文章编号】 2095-3089(2017)13-00-01 结合C语言的教学实践,总结出在学习这门语言的过程中,高职学生感觉最难的是理解编程思想和形成良好的编程习惯。为帮助高职学生更深刻的学习C语言,整合了许多案例,编撰成教材。先把这些教学构思归纳如下,为学习C语言提供参考,同时也为更好地理解C程序设计的思想、编写出优秀的C程序奠定基础。 一、设计一个大案例,由浅入深贯穿C语言中主要知识点,让学生对各知识点的运用有比较,有提高,理解透彻。 比如制作电子辞典。编写一个C程序,实现电子辞典功能:要求用户输入某个缩略词,系统查辞典后能给出该词的完整形式,若辞典查无此词,也给出相应的提示信息。 电子辞典这个案例首先使用数组、查询两个知识点,随后扩展使用到指针、结构体、预处理、书写规范、函数等知识点。 1、讲解数组知识,建立一个简易的辞典。存储辞典使用两个二维字符数组:a[5][5]——保存辞典中的全部缩写词(假设5个要查询的缩略词,均以a开头);b[5][50]——保存辞典中的缩写词对应的完整形式(对应保存5个以a开头的单词的完整形式)。 2、讲解查询方法,实现查询功能。 数据查找有直接引用和顺序搜索两种方式:通过下标直接定位数据为直接引用;而顺序搜索至少有两个并行数组(如:一个用于存储记录关键字建立一一对应关系的引用;另一个用于存储对应数据,通过诸如项目编号、人员编号等关键字建立一一对应关系的两个数组),顺序搜索将输入的关键字与关键字数组中的各个元素进行比较,直至找到匹配元素或者遇到数组结束标记为止。找到匹配元素时,程序使用关键字数组的下标访问存储于数据数组的对应元素。 3、讲解预处理知识,提高维护性。 #define SIZE_DICT 5 #define MAX_LENGTH_INPUT 256 SIZE_DICT为5表示缩略词、完整形式的个数,MAX_LENGTH_INPUT为缩略词完整形式的个数。如果有增减会更方便。 4、引入指针知识,实现查询功能。 const char * a[SIZE_DICT] = {"AGP","ALU","AM","API","ASF"}; const char * b[SIZE_DICT] = {"accelerated graphics port",…}; const char * b[SIZE_DICT]=这是从二维字符数组改成了字符指针的一维数组,通常的实现方法,常数字符串都在数据段,MAX_LENGTH_INPUT从50提高到256,适合用在你不需要修改这些字符串的情况。如果你不用指针,数组的写法。 const char b[SIZE_DICT][ MAX_LENGTH_INPUT]={"accelerated graphics port",…}; 使用数组的写法,问题在: ①不同字符串长度不同,都制定相同的长度,必然设置最大值,浪费存储空间。 ②如果你要改变解释,如果设置小了,你还需要手动改最大字符串长度。 5、讲解结构体写法,增强程序安全性。 更好的写法可能是定义结构体struct struct item{ char [MAX_LENGTH_INPUT] a; char [MAX_LENGTH_INPUT] b; }; 然后item[size_dict]={ ... },把相关的东西放一起。 现在的写法有可能造成a和b的个数不一样,手动维护的时候,造成最后程序运行出现奇怪的问题。 6、加入书写规范要求,养成良好编程习惯。 使用字符数组常量、加上更多的大括号提高可读性。 7、拓展函數训练,增加对程序的理解。 通过函数传值,把a、b数组中的缩略词传入函数,为实现建立生成电子辞典,查询电子辞典,更新电子辞典的功能分别声明三个函数。 二、针对同一知识点设计多个不同的案例,注重知识点讲授的重复性、增强性、连贯性,让学生对知识点学习更扎实,能解决相似的实际问题同时,又不断学习新的知识点。 比如讲解排序方法,可以设计多个任务讲解。 任务1练习一维数组排序。编写一个C程序,随机产生0~100之间的随机数20个,作为学生成绩,将批量数据由大到小排序,输出前10名学生成绩。 任务2练习字符数组排序,增加字符处理知识。编写两个C程序,对字符串分别实现的不同处理。子任1:任意输入多个国家的名称(比如五个),按字母顺序排列输出——选择排序字符串。子任务3:任意输入多个学生的姓名(比如五个),按字母顺序排列输出——交换排序字符串。 任务3练习查询方法,要求在排序的基础上,实现查询的功能。比如电子辞典,可以更快的实现查询,技能对比知识点,又能加深对C语言程序结构的理解。 三、C语言发展相对成熟,注重引入案例的多样性、实用性、趣味性,让学生学习更有兴趣。 猜数游戏讲循环、抽奖游戏讲随机数、大赛计分过程讲一维数组、电子词典讲查询,加密解密讲函数、截取歌曲名讲字符处理、魔方矩阵讲二维数组,引入这些案例讲解C语言更接近生活,让学生们认可C语言有用,进而产生兴趣深入学习。 四、给学生C++编写风格的思想,注重书写代码的可读性、可维护性、安全性、规范性,让学生形成良好的编码习惯。 1、习惯预定义常量,增强程序的可维护性。 2、习惯用指针定义字符数组,可节省时间,实际工作中应用广泛,代码书写更规范。 3、习惯使用更安全的函数,增强程序的安全性。如:gets改用fgets函数,能避免找不到‘\0结束符的问题,更安全。 4、习惯使用结构体定义相关数据,增强程序的安全性。避免关联数据出现问题。 5、习惯使用函数接口,方便适应大型软件的合作研发,增强程序的可维护性。 6、习惯写注释,增强程序的可维护性。 7、习惯按照C语言格式书写代码,注意增加缩进。这样可以增强程序的可读性。 |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。