模块化案例教学在C语言教学中的应用

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:metoo321
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:该文针对已入门的C语言学习者如何提高编程兴趣和能力的问题进行了探索,通过教学实践发现,模块化案例教学在C语言教学的提高阶段能够取得较好的效果,通过案例分析的引导,学习者不仅能更加牢固的掌握知识点,编程技能和思路也得到了很大的提升与拓展,达到了教学目的。
  关键词:C语言提高;模块化思想;案例教学
  中图分类号:G424 文献标识码:A 文章编号:1009-3044(2015)10-0113-02
  C语言是计算机相关专业在程序设计方面的重要基础课程之一,肩负着引领学生进入软件开发领域的重任。C语言的教学应随着学生的掌握程度,在不同阶段采取不同的教学思路与方法。传统的教学方式是“理论讲授——代码示例讲解——学生上机实验”,这种方式在入门阶段还算可行,可以作为学生了解C语言语法规则,仿照示例编程的“模板”。但是,当学生入门后,再采取这种教学方式,会让学生迷失在琐碎的知识点海洋中,失去学习编程的最终目标,从而不能深入掌握C语言。
  在C语言的提高阶段,要把模块化的思想应用到教学中。通过案例分析,自然而然的引出问题的症结,提出能够解决问题的知识点与编程技巧。通过引导启发,让学生自上而下、逐步求精的去分析案例,掌握解决实际问题的能力,对学生深入掌握C语言大有裨益。
  1 模块化案例教学
  采用模块化编程,意味着开发C程序不是从逐条编写C语言代码开始,而是从宏观的角度用主程序和子程序等模块先把程序的主要结构和流程描述出来,并定义好输入和输出环节,逐步分解得到一系列以功能模块为单位的求解算法和流程。最终,通过实现各功能模块完成程序设计的目的。
  案例教学源于美国哈佛商学院,这是一种注重师生互动的研究性教学方法。教师预先准备有针对性的案例,启发学生进行思考,积极参与讨论,通过案例引出知识点,进而层层深入得出解决方案,使学生全面掌握C语言编程的知识与方法。
  案例教学的目的是调动学生的积极性,主动参与到案例分析中来,在讨论案例的过程中,巩固已有知识,理解新的知识点,掌握新的编程思路和方法,从而提高分析和解决实际问题的能力。
  案例应分为简单案例和综合案例。简单案例针对单一的知识点,难度较小,学生参与的积极性高,有利于从一个小问题引发学生的思考,从而为综合案例奠定基础。综合案例应覆盖多个知识点,通过案例讨论,为课程设计的开展打下基础。所以,案例的选取需要有针对性,要来自学生熟悉的领域,难易程度要适中。
  2 案例分析
  理论课部分以简单案例分析为主,目的是让学生掌握新的知识点。通过教师引导,分析案例,启发学生寻找新知识点来解决问题。课程设计部分以综合案例分析为主,目的是让学生掌握分析解决实际问题的编程方法和技巧。
  2.1简单案例分析
  题目:求1 2 3 … 100之和
  针对知识点:理解并掌握循环结构,能使用循环结构进行熟练编程。
  已学知识点:C语言基础语法、顺序结构、选择结构。
  初步分析:可以定义2个整型变量:s和n。变量s存储累加和,其初值为0,变量n作为累加项,其值由1变化到100,将n的每一个值累加到s变量,即可求出结果。引导学生利用已有知识写出如下代码:
  #include
  main( )
  {
  int s=0,n=0;
  n=n 1;
  s=s n;
  n=n 1;
  s=s n;
  …
  printf("%d\n",s);}
  进一步分析:代码中“n=n 1;s=s n;”两条语句会在程序中反复出现了100次,如果我们在程序中把这两条语句写100遍,确实也可以计算出结果,但是计算机编程的优势体现在哪呢?如果题目变为求出1加到1亿呢?启发学生思考如何解决这个问题,引出循环结构存在的必要性和重要性,讲解for循环并引导学生修改代码如下:
  #include
  main( )
  {int s=0,n;
  for(n=1;n<=100;n )
  s=s n;
  printf("%d\n",s);}
  最后,通过举一反三类比的方法,引导学生利用while循环和do~while循环改写代码,并体会循环结构的特点和作用,掌握利用循环结构编程的方法与思路。
  2.2综合案例分析
  题目:设计并实现学生信息管理系统
  学习目标:通过该系统的开发实践,掌握C语言的关键知识点,掌握利用模块化的思想开发实际项目的方法与流程。
  初步分析:通过自上而下、逐步求精的思路,可以得出该系统功能模块结构如图1所示。
  进一步分析:采用模块化编程的方法,针对每个模块设计一个函数,然后在主程序main函数中调用各个模块函数来实现该系统,模块函数如表1所示,程序流程图如图2所示。
  继续分析:通过分析各模块之间数据的关联,还有必要设置2个全局变量来标明学生记录数和课程记录数,之后就可以采用各个击破的方式编写各个模块函数完成该系统的开发任务。其中登录系统模块代码实现如下:
  void login() /*登录函数*/
  { intchoice,w;
  system("cls");
  printf("\t\t\t学生信息管理系统\n\n"); //主菜单
  printf("\t\t1. 录入.\t2. 显示.\t3. 增项.\t4. 删项.\n\t\t5. 修改.\t6. 统计.\t7. 查找.\t8.退出.\n");   printf("\n 输入序号执行相应功能:");
  scanf("%d",
其他文献
为人民谋幸福、为民族谋复兴是新时代中国共产党的初心与使命。这一重大命题的出场,是以习近平同志为核心的党中央践行党的根本宗旨、不断强化党的理想信念、深刻总结党的奋
为了揭示人类活动干扰对不同时空尺度水文干旱的影响,本文以辽西北大凌河流域为例,利用SWAT(Soil and Water Assessment Tool)模型重建天然状态下的历史水文序列,基于多时间
摘要:随着我国林业工程发展水平的不断提升,我国森林覆盖面积也有所增加。但随着森林面积的增加,病虫害问题已成为制约林业资源发展的主要因素。在森林病虫害防治过程中,应用营林技术能够取得良好的病虫害效果,本文针对森林病虫害防治中营林技术的应用进行分析,旨在促进我国林业的可持续发展。  关键词:森林病虫害;营林技术;管理  现阶段,导致我国森林病虫害问题难以解决的原因主要是由于各地区的森林生态系统受到了不
Abstract: Under the modern education system of China, the annual scholarship evaluation is a vital thing for many of the college students. This paper adopts the classification algorithm of decision tr
该文针对灰名单邮件过滤算法的缺点:容易造成正常邮件发送的延迟,并且垃圾邮件拦截率也不高。该文提出了一种改进的灰名单邮件过滤算法,把灰名单分为深灰名单和浅灰名单,可以缓解
互联网协议IPv4技术存在很多缺陷,如网络地址资源有限,地址空间狭小,网络地址分配率低,安全性不高等问题。随着互联网规模和网络结构的不断扩大和发展,人们对网络协议的要求
采用合理的系统架构和能够保证数据安全和系统运行稳定的Webservice数据接口方式实现采购电子商务平台与其它业务系统之间的数据交互和信息共享,为在不同平台下的数据接口编