c语言程序设计实例汇总十篇

时间:2022-09-24 18:09:39

c语言程序设计实例

c语言程序设计实例篇(1)

中图分类号:G642.0文献标识码:A文章编号:1009-3044(2012)06-1351-03

Case Discussion Method in《C# Language Program Design》Curriculum Practice

LI Hai-bo,MA Ming

(Nanyang Institute of Technolgy, Nanyang 473004, China)

Abstract:According to C # language and the problems in the traditional teaching model, presents a case discussion teaching method. Class? room teaching will be dispersed sample combination, form a case module is introduced to the teaching practice, using case teaching method to arouse the students’ interest in learning, training students thinking of object-oriented programming and the ability to analyze and solve problems, in order to make students to learn in order to practise purpose.

Key words:C# language; classroom teaching; examples of teaching; teaching mode; case discussion

随着互联网技术发展越来越快,人们对网络应用程序的需求也越来越多,而C#(C Sharp)语言自从2000年问世以来,由于其安全、跨平台、面向对象、开发速度快等特点,很快得到用户和企业的青睐,成为当今最流行的网络编程语言[1]。为顺应社会需求,各高校计算机相关专业都将C#语言课程纳入到教学计划作为高年级的就业方向课程。但是在教学过程中很多学生反应C#语言涉及的概念比较抽象难懂,规则和类库繁多;知识点零散,容易出错;学生在遇到实际编程问题时感觉“无从下手”。作者从实际教学环境入手,对《C#语言程序设计》课程从教学方法、教学手段等方面进行了一些改革,并取得了较好的教学效果。具体改进措施和方法如下。

1案例讨论教学法对传统教学方法的改进

1.1传统教学方法存在的问题

目前,《C#语言程序设计》课程是我院07级、08级软件工程专业的就业方向拓展课程。该课程是C++语言的后续编程课程,目的是让学生在建立面向对象编程的基础能力上熟练掌握C#基本语法规则,并提高实际编程能力。以往的教学方法都是先从基础概念入手,再就C#语言所带的基本控件进行讲解,其中着重讲解C#如何操作数据库中的数据。每节课先以理论概念结合一些简单示例程序讲解,最后安排学生上机操作加以深刻理解。

在以往的教学模式中,教师按照教科书编排顺序进行教学,讲授大量编程知识,但学生遇到实际项目编程应用并不理想。平时的知识点和课堂示例过于分散,学生无法体会到各个知识点之间的联系;学生在学习过程当中感觉平时的知识点很抽象,课堂上掌握的只是些表面知识,并不能正确的理解和加以应用;即使课堂上听明白了,时间一长有些知识点又会遗忘。经常在实际的编程项目中感觉“无从下手”。久而久之导致学生逐渐失去了编程的兴趣和信心,觉得没有实际用途,并产生消极情绪[2]。

综上所述,产生问题的原因在于传统教学方法只是让学生掌握了基本编程知识,知识点之间的结合应用不够灵活,在实际项目应用当中想不到应该使用哪个知识点来解决问题,因此,为了改善这种现状,有必要对C#课程的教学模式进行改革和探讨。1.2案例讨论式教学方法

C#语言的课程内容既丰富又零散,要求学生既要理解一些抽象的概念、方法又要具备一定的编程、动手能力。这就要求教师在现有课堂教学时间当中充分调动学生的积极性、主动性和参与性,采用先进的教学模式和手段,师生共同配合较好地完成教学任务。

在传统教学中,当理论知识讲述之后,针对该知识点做出示例,可以使学生加深对该知识点的理解,掌握知识的使用方法。但 是平时的课堂示例只是单独的几个知识点,如何把相关的知识点联系起来完成某个功能模块,这是我们考虑的问题。

案例讨论式教学法是运用实际案例进行交互式教学的方法。在教学过程中,要求以实际的案例模块作为被解析对象,在教师指导下按照软件工程的思想将某一工程项目分析解剖,以其中某一模块为实现目标,学生共同参与案例的分析、讨论,寻找实现途径。通过这种教学活动达到学习知识、分析问题、解决问题的目的。

通常情况一个案例应用到多个知识点。比如一个登陆模块的实现,它需要熟练掌握C#的基本语法、IF…ElSE语句、数据库操作等知识点并结合使用。所以在本课程教学中,笔者经常在讲授一部分知识点后,把各个知识点串联起来放在实际的案例模块当中。先组织学生参与讨论,分析出该案例中某个模块需要哪些知识点来完成。学生通过文字描述整个模块的实现过程,最后指出知识点在整个案例实现过程中的具体环节,确定软件处理流程,上机编码。这种方法可以使学生遇到问题后回顾以前所学知识,并把知识跟实际案例相对应,从而解决实际问题。

经过一段时间的零散知识讲解之后,应该把几个零散的知识点贯穿起来,结合实际的项目需求,组织学生分析讨论。这样不但学到了知识,还可提高对案例的分析、解决问题的能力,能够达到学习与实践的统一。因此,案例讨论式的教学模式是一种帮助学生快速适应未来职业需求的学习形式。

3 C#课程案例讨论式教学实践与教学质量评价方法

3.1“案例讨论”教学模式的实践

在“案例讨论”的C#课程教学过程中,根据该教学程序将整个教学活动分为以下几个阶段:

(1)案例需求设计

案例应该是一项具有实际意义的工程任务,也是某一具体项目中的一个模块,它的选取是学习的关键[3]。首先,案例设计要目标明确,既要满足教学要求,又能有一定应用价值;其次,案例设计要符合学生的特点,案例中应该包含之前所讲授的部分知识点,难度要适中,在平时的教学情况下学生可以分组进行讨论、明确的目标后安排学生的学习,在这一过程中要对本班学生的具体情况进行分析,定义基本任务,还可以有延伸问题;最后,案例设计要符合面向对象和面向工程的要求,让学生按照软件工程的设计要求制定该案例的分析方案。案例整体结束后,师生可以共同评价其工作成果。

教师在设计案例时,设计一个案例,让每个小组讨论同一个案例,这样可以在后期进行组与组之间的对比,激励组内成员的团结性。

(2)案例讨论前的必要准备

在布置任务之前,学生已经学习了该案例模块的基本理论知识。但在实际教学过程中,每个知识点有可能都是独立的,缺乏知识点之间的联合应用,学生很难对一些理论知识系统理解,一旦马上进行项目应用往往难以适应,感觉“无法下手”等情况,因此教师在进行布置任务前有针对性的以前知识点进行必要的复习,同时也能对学生的学习情况,相关知识的掌握情况有一个了解。这样就为教学的开展做了必要的铺垫。

(3)组织学生讨论

案例讨论是以学生为主体,但一个案例模块如果让一个学生去思考,可能会在思路上受到限制、难度有时过大。如果让所有人都参与,则合作、分工难度过大,因此,学生的组织应以小组为单位,可自由组合也可由教师编排,每组5人左右,指定其中一人为小组组长,最后讨论出整个流程,并对整个流程分析出需要哪些知识来实现。这样既能锻炼学生的分析问题、解决问题能力,也能锻炼学生在项目开发过程中的沟通协调能力。

(4)采用“讨论式”教学方法,监控整个讨论流程

学生以小组进行讨论时,教师可以指定整个讨论流程,规定时间限制,一般讨论30-40分钟时间,先让每个小组针对该模块确定工作流程思路,写出文字描述的软件工作流程,再次针对每个小组自己设计的软件工作流,指出流程中需要的知识点名称,最终提交整个流程文档。由小组成员提出自己的见解和工作计划并在这一过程中相互启发、相互学习,经过讨论最终确定出较好的解决方案。在这个过程中教师应采用“讨论式”的教学方法,组织同学们一起对方案和遇到的问题进行讨论,充分发挥学生的主动性和创造性。

(5)教师讲评

教师将每个小组的最终文档汇总,如果思路流程正确优秀的小组可以得到好评及表扬,对思路有问题的小组教师可以适当的指出其问题的所在,加以纠正。最后教师就该案例,说出正确的软件工作流程,在该流程中所应用到以前学习过的知识点,让整个学生明确思路和解决方案,布置模块编码任务,从而为功能编码的实现打下基础。

(6)实际编码环节,提高上机质量

在传统的教学模式中,上机实验由教师根据教材内容进行编排,主要以书上的例题、课后习题为主,学生只是将程序敲入计算机,运行一下即完成了上机任务。虽然程序运行结果正确,但对程序本身的设计理解并不透彻,只是掌握了该知识点的使用方法,无法理解在实际的案例工作中应该如何应用。

在“案例讨论”的教学模式驱动下,以案例讨论为主线,明确遇到问题首先应该考虑使用以前的哪些知识点解决,待思路和知识点完全确定后,再进行编码,这样可以有效的解决学生遇到实际项目时难以下手,也不知从何下手的问题。最终以讨论文档和案例程序为阶段考核和评价的依据,充分利用实验环境和条件,加强上机实验的应用效果,保证教学质量。

3.2教学质量评价方法

C#语言是一种面向对象的程序设计语言,针对C#语言及“案例讨论”中理论学习与实践并重的特点,在考核过程中采用新的教学质量评价方法,即将考试机制与案例讨论实现有效结合,综合评定教学效果。

以往的考核形式多为期末笔试+平时成绩(出勤、作业等),这种评价方式虽然能反映学生的学习态度及对一些基本概念、知识、理论的掌握情况,但无法全面反映出学生对知识点实际的理解和灵活应用,因此将考核形式变为期末笔试+案例讨论报告+案例程序,其中期末笔试主要检验学生对基本概念、语法、结构的学习和掌握情况,测试的是学生的基础理论部分,这部分成绩可占整个评价结果的50%;而案例讨论也作为一项考核内容,重点考核的是学生的分析问题解决问题的能力,最终以平时的讨论报告为主要依据,因此其成绩将占整个评价结果的25%;最后一个部分为项目源代码,主要考察学生的实际编码能力,按小组分工给出具体的分数,占整个评价的25%。

采用案例讨论为核心的教学模式,将原有的以“课堂、教师、书本”为中心的架构变为以“课堂示例、案例分析、实际应用”为中心的架构,将所学知识与实际应用紧密结合,学生既学到了知识又得到应用锻炼;教师既完成了教学又培养了学生的能力,达到了“教书、育人”的双重目的[4]。

4结束语

案例讨论教学对于语言程序设计课程来讲是一种比较有效的教学模式,它突破了传统教学模式,让学生学习一段基础理论知识之后,通过对实际案例问题的分析来理解掌握知识点,这样不仅能快速地掌握所学知识,也为代码的实现打下了坚实的基础,而且能够培养学生的社会责任感和团队合作能力,提高学生的具体分析能力和解决实际问题的能力,培养出的学生能很快适应市场需求,有助于解决学生的就业问题。因此,案例讨论教学方法不仅适合计算机程序设计语言教学的需要,也是应用型软件开发设计人才培养的一个有效途径。

参考文献:

[1]吴晓艳. C#语言程序设计精品课程建设的探索[J].科技信息,2010(25):48-50.

[2]蒋卫祥,朱利华.项目教学法在JavaWeb程序设计教学中的应用[J].科技信息(学术版),2006(9):410.

[3]李桂琼.程序设计课程的教学改革初探[J].计算机时代,2007(8):73-74.

[4]吕晓华,李素朵,张燕.任务驱动教学模式在java课程教学中探索与实践[J].北京:硅谷,2008(9):180.

[5]张悦.项目驱动教学法在C语言课程中的应用[J].职业教育研究,2007.

c语言程序设计实例篇(2)

中图分类号:G642.3 文献标识码:A 文章编号:1674-9324(2012)05-0239-03

一、引言

程序设计类课程是大学生计算机基础教育的必修课,目的是培养学生的计算思维,培养学生利用计算机解决实际问题的能力。由于“C++语言”在工业控制领域应用较多而被选为理工类大学生的计算机语言程序设计课程,并安排在一年级学习。大学一年级的学生大多数延续高中的学习和思维方式,但是“C++语言程序设计”的学习方法和思维方式与物理数学都不一样,学生碰到了课程学习的第一个难题,教师必须引导学生转变思维方式尽快适应C++的学习。在教学过程中,我们发现“C++语言程序设计”与高等数学和大学物理等课程有明显的区别,高等数学和大学物理等课程偏重理论教学,而“C++语言程序设计”除了理论教学之外还有大量的实践教学,是一门突出实践性的课程。因此,在教学设计中应该突出培养程序设计基础理论知识的应用和动手编写程序,不能只关注知识点的讲解和检查,而忽视程序编写调试能力的培养。为此我们针对如何在程序设计中培养学生的动手能力,对“C++语言程序设计”这门课程的教学目标定位和教学方法选择进行了一些分析和研究,并应用于2010级的机械实验班的“C++语言程序设计”课程的教学实践中。

二、教学目标

人们在学习人类自然语言的时候,强调语言的语法是基础,学习的目标是和其他人进行交流。相应的,在学习“C++语言程序设计”时,C++的语法也是编写程序的基础,学习的目标是使用C++语言编写程序。而对于大多数大学生而言,C++程序设计语言和英语一样,是未来工作中的一个重要工具,因此,我们要告诉学生把C++语言当作工具来学习,强调实用性,不要过多地关注内部细节和繁杂的语法。在讲授基本语法之外,我们重点放在教会学生如何写C++程序,如何优化程序,以及学习怎么去学习C++语言的新领域。计算机语言的语法不是计算机语言学习的全部,一个熟练的BASIC程序员学习新C++语言的语法,也许只需要3-4个小时,但是要熟练使用C++这门语言,特别熟练使用C++的类库时,就必须认真阅读类库参考和相关的例程,并进行大量的上机编程练习。所以,在“C++语言程序设计”课程教学过程中,我们既要让学生知道常用的语法现象,又不能局限于C++语法的掌握。同时我们也充分认识到语言只是一种表达工具,自然语言亦是如此。程序设计语言可以用来表达需要解决的问题和解决问题的方法,但是方法本身不属于语言的范畴,要在其它课程中学习。例如:计算方法、数据结构等。学习语言需要实践,因而离不开对分析问题和解决问题方法的学习。但是初学者的目标应定位在编写小程序、解决简单问题。我们的教学目标是通过《C++语言程序设计》课程的学习,学生能掌握一些常用的经典算法和相应的例程。可是仅仅掌握这些经典算法和相应的例程是不够的,我们还希望通过“C++语言程序设计”课程的学习,让学生掌握从算法到程序代码的转化,使他们能够将一个实际问题,先描述为一个计算机算法,然后再编写相应的C++代码。同时强调“自顶向下”和“细分”的程序设计思想的培养,让学生充分了解任何看似复杂的算法,都可以分解为若干个简单算法的逻辑组合。所以任何一个题目,在编写代码之前,都要认真分析,分解成若干的小问题进行处理。

三、教学方法

1.案例教学。在以前,“C++语言程序设计”课程的教学围绕C++的基本语法知识来展开。而从本质上来说,计算机程序设计的最终目的是为了用计算机解决实际问题,因此“C++语言程序设计”课程的目的是培养学生的计算思维能力、创新能力和综合能力。要提高学生的学习“C++语言”的兴趣,就必须让学生亲生感受并体会C++语言程序设计的无穷魅力。而“案例教学”这种教学方法,改变了“满堂灌”C++语法的做法。通过一个有趣的案例吸引起学生的注意力,从而将学生的眼、手、脑全部调动起来,培养学生学习《C++语言程序设计》的兴趣。因此,我们在《C++语言程序设计》课程的课堂教学中采用案例教学法来组织教学。课堂教学以C++程序为主线,通过使用多媒体教学设备,在VC6.0的编程环境下现场演示程序的运行结果。在讲课过程中,将教学内容分为不同的几个主题,用C++程序设计作为贯穿期中的主线。通过对案例例题的分析,着重讲解C++程序设计的编程思想和编程方法,同时介绍相关的C++语言的语法知识。然后在机房上机实验的时候,教师针对学生在上机实际编程中的突出,进行有针对性讲解。通过案例法教学,教师在课堂上通过分析程序设计的原理和程序设计的过程,使学生一步一步熟悉C++语言的语法,学会应用相应的C++语句,进而培养学生分析问题和解决问题的能力。

2.当堂编程。在课堂上当堂编写程序可以让学生看到编写C++语言程序过程中所出现的各种问题,从而重点讲解用C++语言编写程序时要注意的细节问题。我们首先用PPT分析各种例题的关键算法、类的结构或函数定义,然后在VC6.0的编程环境中当堂编写相应的C++程序。教师一边输入代码,一边讲解代码的含义,同时要控制编程的节奏,使得学生能跟上教师的编程思路。在整个过程中,教师要时不时提出一些问题,与学生进行互动。在2010级机械实验班的《C++语言程序设计》的课堂教学中,我们从第一节课开始就实施了在课堂上当堂编写C++程序的做法,取得了很好的课堂教学效果。在课堂上当堂编写程序的时候,将教师良好的编写风格在不经意间传递给学生,让学生注重诸如如何命名标识、如何正确使用注释和换行。通过教学实践,我们发现教师在课堂上现场编写的程序比其他书本的例题,对学生的示范性更强,对学生培养良好编程习惯的作用更强。在课堂上现场编程对于教师来说也是一个重大的挑战,它要求教师能及时解决C++编程中遇到的各种问题,修改程序错误,并调试和运行程序。教师对于学生容易出错的地方,常常有意留些错误,然后让学生去分析错误,从而加深学生的印象,让他们知道碰到类似的问题如何处理。为了教学生如何正确调试程序,教师还要讲解VC6.0编译器常见的警告和错误信息,并告诉学生错误产生的原因和相应的处理办法。

3.程序调试。《C++语言程序设计》课程的学习中,影响学生学习积极性的最大难题是无法正确处理调试过程中遇到各种错误。例如学生编写的C++程序,编译时编译器报告了若干个错误,但是学生不知道如何修改;或者编译通过了运行的时候却出现死循环,但是学生也无法发现。一旦学生编写的程序经常不能正确运行,就会影响学生的学习兴趣,进而使学生失去学习《C++语言程序设计》课程的信心。所以,教师应该让学生学会常用的调试方法和步骤,并且鼓励学生主动和老师一起帮助其他同学调试程序,一起解决C++编程中遇到的问题。要解决C++程序在运行中所碰到的错误,正确的调试方法和手段是学生必须掌握的。只有通过使用正确的调试方法和手段,才能让学生在最短的时间之内找到程序中出错的语句及其原因。在VC6.0的编程环境中,学生要学会使用单步跟踪技术,熟练使用相应的快捷键,例如F9、F10、F11、Shift+F1等。并配合使用内存变量查看工具“Watch”和“Variables”等来查看相关变量的值,从而找到错误发生的原因。4.分组教学。分组教学是把学生分成若干小组,每个小组可由5~6名不同能力的学生组成,以小组合作的形式,在教师的指导下,通过组内学生的互助活动共同完成学习任务。分组教学与传统的班级授课制相比,有很多优越性。分组教学可以增加学生之间的互动交流,从而可以实现学生的优势互补。通过开展小组合作学习,有意识地培养学生的合作意识和合作,也能减轻学生的学习压力;通过互帮互学还能增强学生的自信心,促进全体学生的个性发展。在实验环节和项目设计中,采用我们分组教学的模式来组织教学。项目设计全过程基本上让学生以小组团队的方式独立完成,教师只是提供相应的辅导和监督项目的进展。经过了这种模拟实际项目开发过程的训练,不但可以提高学生学习C++的兴趣,培养学生的C++动手编程能力,还有利于培养他们探索精神和学习积极性。

综上所述,我们认为C++语言本身是一个软件开发的工具,在教学中应该将C++语言定位为一个通用软件开发工具,并且在教学过程中突出C++语言编程的实用性,注重培养学生实际动手编程的能力、分析处理问题的能力和自主学习的能力。我们也将此观点用于指导2010级机械实验班的《C++语言程序设计》课程的教学中,取得了较好的教学效果。

参考文献:

c语言程序设计实例篇(3)

C语言应用灵活方便,功能强大,是国际上应用广泛的计算机高级语言之一,同时也是众多理工科类专业的必修课程。然而,如何结合理工科专业自身特点进行“C语言程序设计”课程教学,使之既遵循课程教学的基本原则和方法,又融入专业背景是目前“C语言程序设计”课程教学改革研究的热点[1]。

1.机制专业“C语言程序设计”课程教学现状

机械设计制造及其自动化专业的“C语言程序设计”通常开设在大一下或大二上,授课54学时,其基本教学内容为基本语法、程序结构和简单算法及数据结构,教学方法上基本采用教师讲授各知识点,学生上机进行验证性实验。相比计算机类专业教学而言,机制专业学生没有系统地安排计算机类课程的学习,C语言是其学习的首个编程语言,学习难度大;由于缺乏“算法与数据结构”及“编译原理”等后续课程的支撑[2],学生进行真实项目编程实践的机会较少。综上所述,导致目前机制专业“C语言程序设计”课程教学中存在以下三个问题:

1.1对C语言的地位和作用认知不全面。

由于没有接触商业化编程项目,机制专业大部分学生认为C语言比较陈旧,不及JAVA、Python、C#等语言流行度高,仅认为C语言是国家计算机等级考试中的一门语言,没有全面认识C语言的地位和作用。在纯软件编程设计方面,C语言在TIOBE编程语言排名中一直位于前三位,是目前最流行的iOS/Android的底层核心开发语言。同时由于C语言具备位操作,使得其在硬件控制方面有得天独厚的优势,是控制硬件的基本工具,对于机制专业的单片机技术、数控编程、机器人技术、PLC原理及应用等核心课程学习极其重要。

1.2教学内容联系实际不紧密。

传统机制专业“C语言程序设计”课程教学内容过多集中在语法和程序结构的讲解,上机编程实验则集中在验证性实验方面,既缺乏对程序设计中重要思想和调试技巧的讲解和训练,又缺乏对重要数据结构和算法的详细讲解,使学生在解决实际问题时缺乏经验和技巧。同时在教材选择方面,“C语言程序设计”教材基本上是通用教材,并没有区分不同专业的需求和特点,使得机制专业学生在学习中无法接触C语言在本专业中的应用实例,导致大部分学生缺乏明确的学习目的。

1.3传统教学方法不适用。

目前在“C语言程序设计”课程的教学方法上通常以语法知识作为教学主线,教学方法仍以灌输式为主,C语言语法、数据结构及简单算法的理论性较强,传统讲授方法形式单一、启发性及对比性弱,学生未能成为学习的主体,学生理解掌握难度大。同时由于C语言的语法和结构的灵活性,如果不依托真实且具有专业背景的实例讲解,学习难度大,就会极大挫伤学习积极性,教学效果往往事倍功半。

2.基于机制专业特色的“C语言程序设计”课程教学改革

针对机制专业“C语言程序设计”课程教学存在的普遍问题,项目组推动了一系列教学改革,并在实施中不断改进和完善。

2.1增加关联课程介绍环节,强化C语言的地位与作用。

机制专业的“C语言程序设计”课改由本院专业教师承担,一改过去由计算机专业老师承担的现状,本院专业老师既熟悉C语言基本理论,对于C语言在机制专业中的应用情况又比较了解,并且具备使用C语言进行实际项目开发的经验。在教学中可以使C语言和本专业应用更有效地融合。

在“C语言程序设计”课程的入门介绍中,将C语言在机制专业的各领域的应用情况给学生做梳理和介绍,重点介绍其在单片机原理及应用、机械设计原理、数控技术、机器人控制技术、PLC原理及应用、现代控制工程等课程的应用。强化C语言和这些专业课程之间的联系,使学生认识到C语言对于这些专业技术而言,是重要的编程工具,其实际编程能力的强弱将直接决定其能否学习好上述专业课程。同时将C语言和JAVA、Python、C#等其他编程语言从数据类型、语法结构、编译效率、开发平台、商业应用五个方面进行对比分析,从纯计算机编程语言的角度向学生说明C语言的特点。以此强化学生对C语言地位与作用的认识。

2.2调整教学内容,强化机制专业特色。

C语言的教学实例在教学中至关重要,是理解C语言基本概念和程序设计思路的桥梁,而传统教学实例以简单算法(例如:斐波拉契数列、猴子摘桃、杨辉三角等)为主,缺乏专业背景,且略显枯燥。在改革教学中,教学实例增加大量具有特定专业应用背景的项目案例作为实例讲解,使教学实例理论性和实践性有效结合,将理论学习与实物开发通过实例结合后,既体现C语言在这些领域的应用,又提高学生学习的积极性,有利于培养其解决实际问题的能力。

例如当学生完成基本语法和循环结构程序设计的学习后,将“单片机原理及应用”课程中的经典案例――LED跑马灯作为讲解实例,在简要介绍LED灯发光原理后,利用Proteus平台搭建由8个LED灯构成的跑马灯系统,教师编写好程序整体框架后,引导学生使用赋值语句使8个LED灯逐个点亮,使学生理解赋值操作和LED灯被点亮之间的关系。在此基础上,进一步引导学生使用循环结构程序使8个LED灯依次循环被点亮,而且循环次数可以设定,形成跑马灯,让学生在“程序修改”至“现象改变”的过程中深刻理解循环结构程序的作用;当学生完成选择结构程序设计的学习后,引导学生在开源的Arduino系统上对智能小车进行避障控制,当智能小车上红外传感器有信号,表明前方有障碍,则需要绕过障碍,通过实现此控制功能,学生可以深入理解选择结构程序,反复使用if-else语句进行选择结构程序设计,控制智能小车走迷宫;再如当学生完成基于函数和指针的复杂程序设计学习后,可引导学生利用C语言调用相关库函数进行画法几何的作图练习,作出某一零件的三视图,使学生熟练掌握库函数的调用和复杂程序设计。

2.3利用机器人综合实验平台,突出手脑并重。

为使学生学以致用,院实验设备与管理中心联合博创等企业建立了机器人综合实验平台,可作为“C语言程序设计”课程的课外第二课堂,该平台提供底层驱动代码,学生可以在此基础上利用C语言控制机器人上的各种舵机,实现控制功能。在“C语言程序设计”课程的学习期间,引导学生进入机器人实验室进行简单的机器人控制操作,将所学的C语言程序设计知识用于实际控制中。同时,该平台可提供分立元件由学生自行设计搭建机器人,使学生得到充分的动手训练,做到手脑并重。

3.教改效果

实践表明,通过以上教改措施的实施,教学效果显著,教学质量有效提高。首先,学生不再将“C语言程序设计”课程的学习目的仅定义为通过计算机等级考试,而是认识到学习C语言对其后续专业课程的作用;其次,通过具体专业实例的学习,学生的逻辑思维能力得到锻炼,解决问题的算法明显呈现多样性。近年来,贵阳学院机械工程学院学生利用C语言作为编程语言,参加全国大学生机械创新设计大赛,多次获得赛区一、二等奖;在全国“三菱自动化”设计大赛中,多次荣获全国一等奖。以上成绩的取得,表明贵阳学院机械工程学院“C语言程序设计”课程教学改革取得初步成效。

参考文献:

c语言程序设计实例篇(4)

中图分类号:G424 文献标识码:A DOI:10.16400/ki.kjdks.2016.03.041

Abstract As a fundamental and central course of computer profession, the C programming language directly affect training goal of computer profession. Therefore, Adapting to the development of Computer profession in new situation, the traditional C language programming teaching method and implementation strategy need to reform. In this paper, the author summarize some views on the teaching reform from the teaching experience of C programming language course.

Key words C programming Language; teaching organization; teaching method

“C语言程序设计”课程是计算机专业学生的一门程序设计入门课,是培养学生程序设计思想和能力的技术基础课,同时也为后续的专业课程奠定了坚实的基础。其中专业核心课程“数据结构”一般以“C语言程序设计”为辅助教学工具,学生在具备了“C语言程序设计”的基本程序设计思想和方法以及数据结构的基础知识后,才能进一步学习Visual Basic、Java等高级语言程序设计。因此,必须将“C语言程序设计”课程的教学作为计算机专业培养的核心任务。

1 “C语言程序设计”教学现状分析

目前,计算机专业“C语言程序设计”课程的教学大多还停留在传统的教学模式上,主要以教师的“教”为主,教师根据教学内容的组织讲授基本的概念、讲解例题、布置作业给学生进行上机练习,学生在教师的指导下完成编程练习。在教学的过程中,学生完全处于被动接受的状态,无法发挥学习的积极性和主动性,以至于大部分学生普遍反映“C语言程序设计”枯燥、难学,缺乏学习兴趣,学生普遍的编程能力较差。

由于新生入校后已有的计算机专业基础知识薄弱,学习方法欠佳,以至于学生在初次接触“C语言程序设计”这样抽象难学的程序设计课程时,都会难于正确把握课程的学习方法。因此,任课教师应该准确地分析学生的学习现状,深究原因,找到解决方法,能够最大限度地激发学生的学习兴趣,引导学生合理有效地学习,并且培养学生分析和解决问题的能力。

2 “C语言程序设计”教学改革

依据培养目标的定位,教师应以培养学生基础能力和提高学习兴趣为原则,合理地开展“C语言程序设计”课程的教学改革。为此,笔者结合“C语言程序设计”的教学体会,提出如下的观点。

2.1修订“C语言程序设计”的教学大纲,编写和选用适合计算机专业的教材

首先,教师应准确定位课程的教学目标和任务,“C语言程序设计”课程的教学目标主要体现在知识、技能和素质三个方面。其知识目标要求学生较好地掌握“C语言程序设计”的基本语法、语句、控制结构以及结构化程序设计的基本思想,这是学习本门课程的核心要求。课程的技能目标体现在使学生认识到算法、良好的程序设计方法及上机实践的重要性,并且掌握算法设计和结构化程序设计的方法。另外,在素质目标方面要求培养学生利用“C语言程序设计”分析和解决实际问题的能力。其次,教师应结合教学目标和任务合理组织教学大纲。鉴于“C语言程序设计”课程实践性较强的特点,教师还应根据教学大纲的要求,制定合理有效的实践教学大纲,制定实践教学内容和实施方案。实践教学内容应紧密联系实际应用,并强调充分调动学生的积极性、主动性和一定的团队协作能力,另外还应注重培养学生分析和解决实际问题的能力。

依据教学大纲中教学内容的组织和实践教学的设计,教师应合理地编写和选用课程的教材。目前,“C语言程序设计”方面的教材甚多,以清华大学谭浩强教授编写的《C语言程序设计程序设计》一书为代表的一系列优秀教材为课程的教学提供了较好的导向作用。但根据计算机专业的培养目标和课程的定位,教师应对教材的内容进行适当的调整。

另外,在教学过程中教师应严格按照程序设计的规范和方法分析和解决应用问题,应培养学生规范的程序设计方法和严谨的编程习惯。例如要求学生在日常程序设计练习中按照“问题定义―问题分析―算法设计―编写程序―上机调试运行”的流程实施,并且在算法设计环节使用规范的程序流程图描述算法。这样一系列的措施有助于培养学生良好的编程风格和习惯,为后续其它的程序设计语言的学习夯实基础。

2.2改革教学组织和实施策略,优化教学结构

由于“C语言程序设计”课程的实践操作性较强,学生在上机实践的过程中,不仅可以消化和巩固课堂所学知识,还可激发和提高学习兴趣、锻炼逻辑思维能力。教师应注重将课本上的理论知识和实际应用问题进行有机结合,提高学生的程序设计能力,进一步培养学生分析问题和解决问题的能力。因此,课程的教学组织主要分为理论教学、上机实践教学和课程设计教学三个环节。

其中,理论教学主要遵照教学内容的要求, 采用多媒体教学与传统板书教学有机结合的方式,实施理论与实践一体化的多媒体教学环境,实现交互式教学。其次,教学中应重视“兴趣引导”,激发学生学习热情,引导学生主动学习。另外,应注重以模拟实践教学为主线,提高课堂教学的教学效果。

上机实践教学以课堂理论教学为前导,内容设计应以巩固和综合运用主要知识点为主线,内容具备实用性,以循序渐进的任务驱动方式指导学生从简单的程序设计开始逐渐扩展到完成综合的程序设计,以由浅入深、由单一到综合的过程展开,符合学生的认知习惯和知识的拓展,使学生利用所学知识解决实际的问题,培养程序设计的能力。

结合课程的特点,课程设计环节应利用“C语言程序设计”的基础理论和上机实践课中学到的编程知识和编程技巧,通过布置具有一定难度、一定编程量的课程设计任务,使学生通过课程设计掌握高级编程语言的知识和编程技术,具备分析问题和解决问题的能力。

2.3秉承合理有效的教学理念,改革传统的教学方法

传统的“C语言程序设计”教学方法一般采用灌输式的单向教学法,学生被动地接收知识,并且教学知识点零散,建构系统的知识体系,另外理论教学和实践脱节,学生只会纸上谈兵,动手实作能力较差,不能利用所学的知识解决实际问题。因此,在教学过程中应重视教学方法的改革。“C语言程序设计”教学主要采用“任务驱动”、“案例教学”、“讲练结合”的教学方法,三种方法有机结合,合理地组织课程的教学。

“任务驱动”教学法要求按照教学目标的要求,围绕教学内容,合理地安排一个任务。其主要分为三个基本环节,首先提出任务,例如设计判定学生成绩等级的程序;进一步分析任务,提出问题的解决方法,主要设计程序的算法;最后解决任务,讲授解决任务运用的知识点,例中主要的知识点为选择控制结构的语法及应用。

“案例教学法”以综合的“C语言程序设计”程序案例为主线,贯穿所有章节的知识,课程教学具有系统性和连贯性。例如,提出“学生成绩管理系统”案例,实现成绩的录入、添加、修改、删除、查询、统计和排序等功能。通过分析案例,明确系统的基础知识和各个功能模块的相关知识点,如表1所示。

另外,“讲练结合”的教学方法主要应用于上机实践教学环境中,采取边讲边练的教学互动形式,完成程序设计实例。教师先讲解和演示与本次实践任务相关的应用问题和注意事项,学生按照要求动手完成实践任务,教师及时了解学生在实践中出现的问题,加以正确的启发和指导。最后教师对本次实践任务的完成情况进行总结,集中反馈出现的问题并提出解决方法。

2.4完善课程的考核方案,合理评价学生的学习成果

鉴于“C语言程序设计”课程理论和实践并重的特点,课程考核应主要分为理论考核和实践考核两大方面。其中理论考核以笔试为主,考试内容应遵照教学大纲和考试的要求,突出课程的主要知识点;实践考核主要以上机实践教学环节制定的任务和课程设计为考查对象,客观地反映学生掌握知识和运用知识的能力。

“C语言程序设计”的课程设计考核应采用学生答辩的形式,从学生运用知识的能力、分析和解决问题的能力、创新能力等方面进行综合考核。

3 结束语

计算机专业的“C语言程序设计”教学改革是一个不断深入的过程,应该结合教学实际,制定出一套符合学生学习特点和需要,同时又遵循专业培养目标的特色化教学模式,切实提高学生的专业素养和实践动手能力。

参考文献

[1] 陈卉娥.项目化教学在高职C语言程序设计教学改革实践中的探索[J].福建电脑,2008.12:211-211.

[2] 叶健华,黎峰.“项目驱动+案例教学”模式在C语言程序设计教学中的应用[J].济南职业学院学报,2009.3:18-23.

[3] 叶建龙.任务驱动法在C语言程序设计教学中的应用[J].廊坊师范学院学报,2010.3:132-133.

[4] 庄焕.案例教学法在高职C语言程序设计教学中的应用[J].电脑学习,2009.8:94-95.

c语言程序设计实例篇(5)

一、由实验入手,培养学生的学习兴趣

“C语言程序设计”课程往往是是学生所接触的第一门计算机编程方面课程,所以很多老师采用理论教学,学习完理论基础后开始上机实践,从介绍C语言的语法、算法开始,然后讲程序的书写,最后再学习程序的调试。这样复杂且抽象,这就导致部分学生在上课初期就反映C语言难懂、难学。在教授C语言之初,教师应注意教学的方式方法,要设法调动学生的学习兴趣,让他们先体验C语言程序设计的乐趣。第一次上课最好定为实验课。通过给出几个简单且学生熟悉的数学问题以及它们所对应的C语言程序源代码,边介绍程序运行平台的操作边指导学生自己编辑调试,观察运行结果。当程序成功的输出结果时,学生对这门课的学习兴趣自然产生了。第一堂课通过实验教学,完成从数学逻辑到计算机语言程序的转变,从而逐渐培养学生对程序设计的兴趣。

二、教学中应避免过分强调某些容易引起副作用的知识细节

由于C语言牵涉到的概念比较复杂,规则繁多,使用灵活,容易出错,所以在C语言教学过程中,要遵循由易到难,抓主要矛盾的原则。介于C语言中有些细节牵涉到的副作用问题很多,教学时应把教学精力放在最基本、最常用的那些部分,等学生有一定基础后再深入到一些非主要的细节上。

三、阶梯性举例

为培养学生的学习兴趣,大部分教师在C语言教学过程中,都不一味地按书本去讲,而多举实例来巩固学生所学习的知识点。笔者在一年来的C语言教学实践中采用阶梯性举例方式,取得了不错的教学效果。阶梯性举例是指在课堂上把同类型问题归结出来,让学生从理解最简单的例子开始,按照由易到难的顺序依次理解所学知识点。

例如,在讲述C语言中求若干数中最大值的知识点时,举出:第一层问题:2个数的最大值求法,采用简单if语句解决;第二层问题:3个数的最大值求法,采用简单if-else复合语句解决;第三层问题:4个数的最大值求法,采用条件语句加上if语句解决;第四层问题:n个数(4个数以上)的最大值求法,采用一维数组比较方式解决。

这样通过阶梯性举例教学,学生对同类问题的解决有了比较深刻的认识。其主要特点是升级适度,符合学生的心态,使学生有成就感,形成积极向上的学习态度。

四、强调程序语法规则,淡化程序算法设计思想

C语言语法规则繁多,且使用灵活,很容易出错。这样使得学生调试程序过程变得更难。因此,教师在C语言的教学过程中,一定要强调C语言中语法细节问题,把一些经常会犯的错误总结出来。例如,在C语言里,赋值运算符是“=”,而“==”是关系运算符的相等比较,如if (a = 1),因为“=”是赋值操作,括号中的条件则会永远为真,程序在编译时不会提示有错,可以编译通过,但这明显不是所要的结果。教师在授课时一定要强调语法细节,避免出现不必要的错误。

五、传授编程技巧,养成良好编程习惯,培养学生独立调试程序能力

C语言是一门实践性相当强的课程。教学中,教师应该传授学生一些编程技巧,例如一些典型数学问题的运用等,让学生学会如何熟练应用C语言编程。由于C语言语句书写灵活,教师在实验课上应重视学生书写程序规范问题。例如,强调变量命名应顾名思义,一行只书写一条语句,每一小段程序要有中文注释等。养成这些良好的编程规范对学生今后编程解决问题是很有帮助的。此外还应引导学生多读程序,多编程序,多上机调试程序。教师在实验课中,应该把一些常用的程序调试方法总结出来,教给学生。只有通过反复上机操作,自行找错纠错,才能对C语言有更深、更全面的认识和理解,逐步提高实际操作和学习的能力。

六、采取多元化的考核方式

为了保证课程的教学质量考核是必不可缺的,可以采用多元化的考核方式,针对C语言中不同的知识类型采取不同的考试形式。如:考查C语言中常识性的知识可以采用闭卷考试形式;考查学生知识转化能力、应用能力等可以采用开卷考试形式;考查学生的程序调试、改错等可以采用上机考试。

七、结束语

以上是笔者近年来学习和讲授C语言课程中的一点心得体会,在教学过程中应注意的问题还是有很多的,但是关键在于对 “教什么”和 “如何教”的合理组合,是否能调动学生学习的积极性。教学中,只要教师能理解C语言本身的特点并采取相应的措施与教学手段,一定能取得理想的教学效果。

参考文献:

c语言程序设计实例篇(6)

中图分类号:TP312文献标识码:A文章编号:1009-3044(2009)35-9969-02

Analysis of Common Error Based on C Programming Language

GAO Ya-xia1, ZOU Hai-rong2

(1.Shaanxi Commercial School, Hanzhong 723000, China; 2.Shaanxi Institute Of Technology, Hanzhong 723000, China)

Abstract: In recent years, not only the computer professionals use C language, but also the majority of staff computer applications favorite and use. In the use of C language application development, due to C language has a flexible programming style, grammar constraints are less stringent and program design large degree of freedom and so on. This C language to a number of beginner and causing a number of difficulties, in order to be able to quickly identify and correct errors in the program; this paper, the C language program design issues common mistakes analysis and research. Gives some examples and reference solutions, in order to learn C language program designed users to provide with convenient.

Key words: C Language; common errors; debugging program; example

C语言是在国内外广泛流行、使用的一种计算机高级程序设计语言。它的主要特点是:概念简洁、数据类型丰富、表达能力强,运算符多且使用方便灵活。与其它程序设计语言相比较,具有灵活的编程风格,语法限制不太严格,程序设计自由度大(例如:一个语句可以采用多种方式,分多行撰写;对数组下标越界不做检查;整型、字符型和逻辑型的数据可以通用等)。这就给程序设计人员留下“灵活的余地”,但是由于这个灵活往往给程序调试,尤其对初学C语言的人来说,经常会出一些连自己都不知道错在哪里的实例。看着有错的程序,不知该如何进行修改。通过在C语言的教学与研究过程中,分析了一些关于C语言程序设计时容易犯的错误实例,提供给学习C语言的同学及相关人员参考。

1 C语言常见错误实例与分析

实例1.Printf语句中“控制字符串”部分分写在不同的行。

例如:main()

{ printf(“* * * * *”\n

Very good!\n

* * * * * \n);}

该程序的目的是为了显示这样的结果: * * * * *

Very good!

* * * * *

但程序运行后却出现错误信息:“Unterminated string or character constant in function main”,对上述错误,只要在程序第二行、第三行的最后分别加上“\” 即可得到正确的结果,也就是说printf语句中的“控制字符串”部分分写在不同的行时加“\”连接。

实例2. 忽略了“=”与“==”的区别。

在许多高级语言中,用“=”符号作为关系运算符“等于”。如在BASIC程序中可以写if (m=10) then …,但C语言中,“=”是赋值运算符,“==”是关系运算符。

例如:if (m==10) m=n;

前者是进行比较,m是否和10相等,后者表示如果m和10相等,把n值赋给m。由于习惯问题,初学者往往很容易犯这样的错误。

实例3.定义变量的位置不正确。

例如:#include

main()

{ char ch,filename[10];

scanf(“%s”,filename);

FILE *fp;

fp=fopen(filename,“w”);

ch=getchar();

while(ch!=‘#’)

{ fputc(ch,fp);putchar(ch);ch=getchar();}

fclose(fp);}

程序运行后出现错信息“Improper use of a typedef symbol in function main”,只要把第六行:FILE *fp;放到第四行前,程序通过。原因是:说明部分要放在其他语句之前。

实例4.将字符常量与字符串常量混淆。

char ch;

ch="M";

在这里就混淆了字符常量与字符串常量,字符常量是由一对单引号括起来的单个字符,而字符串常量是一对双引号括起来的字符序列。C规定以‘\0’作字符串结束标志,它是由系统自动加上的,所以字符串“M”实际上包含两个字符:‘M'和‘\0',而把它赋给一个字符变量是不正确的。

实例5.输入变量时忘记加地址运算符“&”。

int a,b;

scanf("%d%d",a,b);

这是不合法的。Scanf函数的作用是:按照a、b在内存的地址将a、b的值存进去。“&a”指a在内存中的地址。“&b”指b在内存中的地址。

实例6.输入数据的方式与要求不符。

1) scanf("%d%d",&x,&y);

输入时,不能用逗号作两个数据间的分隔符,如下面输入不合法:

1,5

输入数据时,在两个数据之间以一个或多个空格间隔,也可用回车键,跳格键tab。

2) scanf("%d,%d",&x,&y);

C规定:如果在“格式控制”字符串中除了格式说明以外还有其它字符,则在输入数据时应输入与这些字符相同的字符。下面输入是合法的:

1,5

此时不用逗号而用空格或其它字符是不对的。如下面输入不合法:

1 5 1:5

又如:scanf("a=%d,b=%d",&a,&b);输入应如以下形式:

a=1,b=5

实例7.输入字符的要求与格式不一致。

在用“%c”格式输入字符时,“转义字符”和“空格字符”都作为有效字符输入。

scanf("%c%c%c",&c1,&c2,&c3);

例如:输入O K !

则字符“O”送给c1,空格字符“ ”送给c2,字符“K”送给c3,因为%c只要求读入一个字符,后面不需要用空格作为两个字符的间隔。

实例8. 同时定义了形参与函数中的局部变量。

int max(x,y)

int x,y,z;

形参应该在函数体外定义,而局部变量应该在函数体内定义。应改为:

int max(x,y)

int x,y;

{int z;

z=x>y?x:y;

return(z);}

实例9. 误用变量定义数组。

int n;

scanf("%d",&n);

int a[n];

数组名后用方括号括起来的是常量表达式,可以包括常量和符号常量。即C不允许对数组的大小作动态定义。

实例10. 被调用的函数未在主函数中进行声明。

例如:main()

{ int a,b,*p1,*p2;

Scanf(“%d,%d”,&a,&b);

p1=&a;p2=&b;

if(a

printf(“5d,%d\n”,*p1,*p2); }

void swap(int *p1,int *p2)

{ int *p;

P=*p1;*p1=*p2;*p2=p; }

程序运行后出现错误信息:“Type mismatch in redeclaration of ‘swap’”,只要在程序的第二句int a,b;前加一句:void swap();程序运行通过。也就是说:被调用函数的定义出现在主调函数之后(除了函数的值是整型或字符型的),要在main()函数中对被调用函数进行说明,void型函数也不例外。

2 结论

通过上面这些实例的分析,可以看出,由于C语言的开放式编程风格,让C语言初学者,在进行C语言程序设计时往往会出现一些微妙的、不易觉察的错误。C语言作为一门完善的编程语言,具有它的科学性与严谨性。因此,只有在充分掌握和熟练运用C语言的基本概念、语法规范及结构的基础上,才能真正享受到C语言灵活自如的编程风格的魅力,这也是学习一切科学知识的基本方法。

参考文献:

c语言程序设计实例篇(7)

中图分类号:G642 文献标识码:B

1目前教学中存在的问题

“C++程序设计”现已成为大多数院校理工科学生必修的程序设计基础课。非计算机专业对程序设计的要求不同、学时不同,对学生的逻辑思维和基础知识结构要求也不同,所以教师不能只是沿用计算机专业的教学理念与教学方法。

C++具有繁多的数据类型以及复杂、灵活多变的语法结构,对于第一次接触程序设计的学生来说,要理解这些概念比较困难,容易挫伤学生学习编程的积极性,因此应对C++的教学内容进行适当删减,以满足非计算机专业学生的学习要求。

目前开设的“C++程序设计”课程,大部分教师还是沿用“C程序设计”的讲授方法,对面向对象的知识只是局限于教材上的例子,例子只局限于某个知识点,不利于面向对象概念的理解,传统的教学方法和教学内容已不能满足学生的需求。为此,必须找到一种适合学生学习特点的教学方法,使学生在有限的时间内迅速掌握C++的基本概念、基本技能和应用,激发学生对本课程的兴趣。

“C++程序设计”是一门实践性很强的课程,但目前的实践课教学存在很多弊端。传统的教学方法中,程序实验环节只是配合每一章所学的内容进行实践,这样的方法让学生只是孤立地了解程序设计的知识,所涉及的知识面较窄,缺少学科的综合性,造成学生实际动手能力很差,无法将实际的具体问题和程序设计知识联系起来。因此我们应对“C++程序设计”实验教学进行改革和实践,将教学的目的变为理论和实践并重,以提高学生的编程能力。

2教学内容的改革

C++语言内容繁多,在有限的课时内不可能也不必要面面俱到,所以教师要有效地组织教学、突出重点、把握难点,不要过多钻研语法细节,而要把握C++程序设计的算法思想、基本原理,由整体到具体,培养学生对C++语言的兴趣及正确的思维模式。在确定教学内容和方式时,要根据学生的计算机基础、专业背景、学习目标来安排。我们首先尝试将课程重点划分为三个层次:

基础层重点:数据类型、C++运算符、逻辑表达式及常用的C++内部函数;

中间层重点:控制结构、数组、指针、结构等知识及基本应用;

核心层重点:函数、类及构造、继承、多态、C++流。

三层重点教学体系更加科学地使学生在循序渐进中有效地学习C++基础知识,掌握程序设计的基本技能,有重点地加强了对学生编程能力的培养。

其次,我们将课程内部结构进行了改革:弱化指针,将指针内容浅化,并移到函数之前讲授;面向过程部分占60%比重,面向对象部分占40%比重。

再次,教学方法上采用案例式教学,教学内容应围绕教学案例进行划分,每一知识点内容均通过生动、有效的示例讲授相关知识点内容,我们将教学案例一般划分为三个层次:

(1) 基础案例:采用简洁案例验证基础知识,此类案例着重于较高的教学效率,使学生以直接的方式掌握基础语句使用格式及系统内部函数使用格式,理解相关基础知识。

(2) 简单程序案例:包含多个知识点的小型程序示例。

(3) 单元综合案例:每一章主要知识点及已学内容的综合案例。其示例内容为实际应用程序设计内容的某一模块或某一功能部分,使学生所学内容紧密地结合实际应用。

基本型案例、设计型案例及综合型案例相辅相成,使学生更快速、更准确地掌握相关知识点内容。

3教学方法的改革

“C++程序设计”中很多知识比较抽象、枯燥,学生不容易接受理解,教师在课堂教学中应该巧用生活中的实例化繁为简,以实例引导,讲解语法规则。我们在教学方法上尝试采用案例式教学,在每一章节、甚至每一节课均以要解决的实际问题为主导,构建问题情境,引导学生运用计算机语言描述解决问题的方法与步骤。案例教学法打破了以教材为中心的传统教学模式,不按教材的顺序授课,而是以精选出的程序设计案例为中心,把学习的重点放在具体案例的讲述上,把要学习的语法和概念融入到具体案例中讲解。每一案例的教学方法采用以下三个步骤:

第一步:提出实际问题;

第二步:介绍解决问题的方法;

第三步:归纳出一般规律和概念。

采用“提出问题――介绍解决问题的方法――归纳出一般规律和概念”的新教学三部曲,使学生在学习每个新知识点时都有一个完整的、实际的、具体和有形的项目作为知识的联想和应用载体,进一步介绍C++程序设计的理论和方法。它不同于以前教学中“提出概念――解释概念――举例说明”的传统三部曲,整个教学过程强调在应用中学习,从而避免了枯燥、繁杂的理论说教,这不仅能增进学生的学习兴趣和积极性,而且对提高学生综合分析和解决实际问题的能力也大有帮助。

在学习的不同阶段应采用不同的训练方式,教学方法改革的第二点是将学习C++划分为以下三个阶段:

初期阶段:教师应以演示编程为主,学生模仿编程训练的方式,在此过程中教师详细地讲解程序设计思路、程序设计方法及程序设计步骤;

中期阶段:教师演示部分难度较大的代码编写过程,学生在教师启发下完成其余的代码编写过程;

后期阶段:以教师简介程序设计思路、程序功能模块设计特点及主要技术运用特点,学生完成全部代码编写,教师则起辅导学生作用,教师充分注意因材施教。

教学方法改革的第三点是采用“三语”教学并用,“三语”教学是指以中、英及C++三种语言描述程序代码功能及实现方式,使学生易于理解每一代码行,从而理解整个程序。

“中”是指用我们正常的语言描述某一代码行;

“英”是指在对代码行中每一个英文单词正确发音基础上,讲解其单词原义及在代码行中的意义;

“C++语言”是指在中、英语言讲解的基础上用C++语言实现代码行,并解析其功能特点等。

4实践教学的改革

“C++程序设计”语言是实践性很强的一门课,培养学生的实践能力是教学的首要目的。因此,在授课的同时,如何引导学生利用上机实验来加强实践也是教学中的一个重要环节。我们为学生安排1:1的上机实验课时,其中2/3的上机实验是有老师辅导的,其余1/3由学生自主完成。上机作业要求与课堂内容有很好的衔接性,并且难易程度有机结合。在上机实验前,教师要讲清内容与算法,布置相关的编程作业,由学生单独动手编写程序,上机调试,培养学生自己解决问题的能力。教师在上机时要发挥其主导地位,可以提出改进算法的思路,让学生自己操作。实验完毕,教师对实验结果加以检查,并对出现的问题及时加以讨论和讲解。

“C++程序设计”实验教学的目的应是:(1)紧密配合理论教学,通过相关实验,帮助和加深对语句功能的理解;(2)通过实验可以将各门课程学到的知识融会贯通,思考利用C++程序设计语言解决实际应用问题的有效方法,从而使学生分析和解决问题的能力得到锻炼和提高。因此我们将实践教学训练体系划分为以下三个层次:

基本实验:占整个实验学时的60%。包括两个部分,一是验证操作,教师在讲授过程中学生直接操作验证的内容,如C++语句语法基本格式、C++系统函数的基本验证,约占整个课程学时数的25%以上。二是验证型实验,对C++语法和函数的基本应用,要求掌握程序的基本调试技能。

设计型实验:占整个实验学时的30%。例如循环应用、数组应用、排序问题、类与对象应用等,要求能编写简单应用程序。

综合设计型实验:例如结构化方法编程应用、面向对象方法编程应用、C++流应用等,约占整个实验学时的10%。

综合设计型实验由教师布置或由学生结合本人的兴趣,从实际应用中选择有具体应用背景的实验题目,安排学生分组共同完成。综合设计型实验的具体内容如下:

(1) 教师给学生讲解综合设计型实验的题目要求,要求学生在选好题目的基础上,认真研究题目要求,自行查阅有关资料,写出系统的需求分析,总体框架设计。

(2) 将系统的需求分析,总体框架设计交给教师批阅,师生一起讨论,确定系统的详细设计方案。

(3) 在限定的时间内完成C++语言的代码设计,完成各个功能单元的实现和调试。

(4) 联编调试,要求把各个功能块联编起来进行调试。

(5) 写出相关的系统分析、设计、实现等实验报告。

综合设计型实验建立起以学生为中心的教学模式,这样既锻炼了学生的动手能力,也加强了他们交流与团结协作的精神,全面提升学生的程序设计与软件开发能力。

另外,我们建立了互动式教学体系,通过建设“C++程序设计”课程网站,包括课程资料、实验指导、网上答疑、知识自测等子系统,形成功能强大、教学资源丰富的网络教学环境,开辟新的教学与复习手段,使学生学习和巩固知识的渠道多样化,进而提高我们的教学质量。课程资料提供了包括章节重点、教学课件等,用于配合课堂教学起到相辅相成的作用;通过网上答疑突破时空的限制,实现了教师与学生之间交流新思想和解决学习中遇到的难题。知识自测提供了试题的在线考试和模拟训练,试题类型包括判断题、选择题和问答题,学生在学完相应章节的内容后,可自行选择测试内容和题型进行在线测试。

5结论

程序设计课程的教学目的是要通过一门程序设计语言的教学,使学生掌握程序设计语言的本质,包括基本结构和基本算法等,从而掌握程序设计的一般方法。“C++程序设计”首先应重新组织教学内容,将课程重点划分为基础层、中间层和重点层三个层次,我们对课程内部结构进行调整,在教学方法上采用案例式教学,对教学案例划分为基础案例、简单程序案例和单元综合案例,采用“提出问题――介绍解决问题的方法――归纳出一般规律和概念”的新教学三部曲,将深奥的理论讲得通俗易懂,增进学生的学习积极性。在教学过程中,应采用中文、英文及C++三种语言共同教学,强调学生实际应用和实际动手能力的培养,加强实验教学环节,注重启发式教学与综合作业的结合,提高学生的综合编程能力。

进行“C++程序设计”课程的改革,主要是将现代计算机程序开发的主要手段传授给学生,淡化程序设计理论,强化实验及实训过程,培养学生抽象思维能力,训练学生初步的编程能力,强化训练调试程序技能,使其具有一定的程序开发能力,有利于学生将计算机这种现代化工具运用于今后的学习工作中。

参考文献:

[1] 谭浩强. C++程序设计[M]. 1版. 北京:清华大学出版社,2004.

[2] 刁成嘉. C++面向对象编程基础[M]. 1版. 北京:机械工业出版社,2008.

c语言程序设计实例篇(8)

2编写教材

现有C语言教材中,大多数追求大而全,注重语法细节,测试用例多为纯数学问题,这与我校的C语言教学现状有较大的偏差。为此,C语言教学组结合当前我校的实际情况,组织人力根据教学大纲的需求编写了一本适合我校师生的C语言教材。2012年8月,教材《C语言程序设计》在清华大学出版社出版,该教材介绍了程序设计的基本概念和基本方法,不拘泥于语法细节,注重解题思路、算法实现和程序设计思想,在保证概念清晰、准确的前提下力求做到语言通俗易懂,引导学生真正进入程序设计的门槛,为后续专业课程的学习与计算机技术的实际应用打下良好的基础。该教材率先在我校2012级和2013级学生上投入使用,每年使用数大约1300本,普遍受到了好评,同时从出版社反馈回来的信息,除我校学生自用外,其他一些高校也使用了该教材。

3教学手段探索

常规的C语言课堂教学,都遵循语法规则的讲解,然后讲解例子,最后在集成开发环境中实现。这种教学思路有其固有的优点——严谨,然后存在以下几个问题:方式比较枯燥,学生很难长时间保持学生兴趣;学生上课听得明白,而实践时对题目无从下手;导致学生产生误解,认为学习语法知识是为写程序而学,而不是为解决问题而学。因此,对传统的教学模式进行改革就成为必然。在课堂教学过程中,以一个较大的案例为主线主导整个教学,将其按教学知识点分割成小模块,在教学时,从日常生活中常见的例子着手,结合C语言的语法来讲,这样令学生更易理解,且不会觉得枯燥,然后讲解案例的实现,如此整个学期下来,一个较好的案例自然就完成了,达到培养学生“自顶向下、逐步细化、自底向上、逐步积累”的能力。在每个知识点的教学实例讲解中,不直接给出正确的代码,而是主动设置一些错误,引导学生去思考并解决存在的问题,让学生掌握排查程序代码中错误的方法。构建C语言自主学习网站,延伸学习的时间和空间。

4考核模式改革

以往总评考试主要分为平时成绩和期末考核成绩,一般的比例为30%:70%,且期末考试为笔试,以理论知识点为主,侧重客观题,设计性等程序操作题所占比例极少,这种考核方式主要的缺点在于忽略了C语言的实践操作性,会导致即使通过了考试但仍然不会编写程序的现象。针对这个问题,对考核方式做了较大的改变,一是将总评成绩的组成分为三部分:平时、上机实践和期末考试,比例为10%:30%:60%,强调平时上机实践成绩,让学生重视上机实践,而不是简单的交差了事。二是将传统的笔试改革为机试,自主开发了一套考试系统,实现自动评卷,试卷大幅度提高程序操作题所占的比例,题型的设置也多样化,包括程序改错、程序填空和程序设计题,着重考核学生的实际应用能力。

5实践反馈

经过2011至2013三个年级的教学实践,课堂教学效果情况逐步变好,学生也能跟着老师的思路来思考问题,学习效率得到了提高。上机实践时一碰到问题就等待老师来解决的现象减少了,说明学生也初步掌握了如何排查程序中的错误以及调试程序的方法。从后续课程的学习情况来看,普遍反映这批学生较前届的学生有更扎实的编程基础,实践动手能力增强了不少。这些好的转变说明了对C语言教学进行的改革是有效的。本文来自于《软件工程师》杂志。软件工程师杂志简介详见

c语言程序设计实例篇(9)

中图分类号:G642 文献标识码:A 文章编号:1002-7661(2012)22-019-03

引言

C语言作为当今最为流行的程序设计语言之一,不但已经成为计算机专业的必修课程, 而且也越来越多地成为非计算机专业的学习课程。它对学生学习软件设计的其他课程以及提高解决实际问题的能力起着重要的作用。C语言是一门实践性很强的程序设计语言,同时也是一门较难灵活掌握的程序设计语言。对于任课老师而言,要想帮助学生在有限的教学时间内,扎实地掌握C 语言的基础知识,从而具备一定的阅读程序、设计程序的能力,分析问题、解决问题的能力以及逻辑思维的能力并能在实践中加以灵活运用,以适应软件行业的发展对人才的培养要求, 并非是一件简单容易的事情。

通过多年的教学,发现大多数老师通常是先给出一般的语法格式, 然后逐步讲解语法要点,然后再举例说明。很多教师往往举一反三地对使用语法、语句进行深入的教学。而对算法教学却偏少、不重视。这导致学生在学习上也有了误区,有好些同学花大量精力做诸如等级考试的选择题、填空题。带给学生们更多的是关于语言语法的熟悉和了解,但对真正的目的——编程却没有什么帮助。这种方法实在不可取,教学生语法的最终目的是他们自己会用来编程,不是为了记住而记住,否则会使学生跌入枯燥无味的深渊,逐渐对该课程失去兴趣。应提供给学生大量练习的机会,多做编程题,而事实上专门针对编程题的书却很少, 这也导致了学生上机写程序时无从下手,或者一下手就漏洞百出,编出来的程序惨不忍睹。

归结起来,目前C语言教学中主要存在以下几个方面的问题:(1)教学模式单一,教学方式死板,教师对C语言的理论教学仍采用传统的教学模式,过于注重语句、语法等细节的教学,没有把程序设计思想放在首位;(2)实践内容薄弱,基本上都是立足于C语言本身的一些语法规则,没有把编程思想和程序测试放在首位,无法达到培养学生程序设计和调试能力的目的。(3)三本院校的学生基础普遍较差,数学与英语基础更是如此,在碰到程序逻辑思维分析、程序代码编写及调试的过程中,往往会感到困难,这些问题是三本院校C语言教学中的共性问题。针对这些问题。要根据学生的实际情况,开展教学改革,细化教学中的步骤。论文针对教学过程、教学方法、实践环节等方面的改革进行探讨,以提高C语言课程教学质量,培养和提高学生分析问题、解决问题的能力。结合多年的教学实践以及软件设计行业的现状,以下几点对提高C语言课程的教学效果有很大的益处。

一、以简单形象的内容作为课程的引入,上好第一堂课

俗话说,良好的开头是成功的一半,在教育教学过程中也一样[1]。然而,许多教师照本宣科,根据教材的编写顺序,开篇大量讲授的是C语言的历史、特点以及初学者难以理解的编程算法等内容。可是这样的讲授顺序,已经抹杀了大多数学生对C语言的学习兴趣和热情,无形中增加了C语言教学的难度。建议在上第一堂课的时候就要将学生注意力提上来,因为大多数的高等院校都是大一就开设C语言,他们会用电脑,会打游戏,但编程对他们来说虚幻莫测,所以老师首先就应该消除他们的恐惧心理,建议老师用浅显的语句来介绍C语言,你可以打比方:“C语言它是一种语言,跟我们的英语一样,我们经常用英语写作文,记述一件事情,C语言也一样,它记述的也是过程,只不过它记述的计算过程。”C语言总共只有32个关键字,但功能强大,经久不衰,历经数十年仍是主流高级开发语言,学习了C语言等于就为学生开启了程序语言的大门,这时候学生感觉豁然开朗。其次,老师可以举一两个例子,通过多媒体演示出来,这样学生不会再觉得C语言虚无缥缈,有了这些铺垫,后续的语法、程序讲解要容易得多。

二、根据学生的学习情况,由浅入深安排教学过程

在C语言教与学过程中,应以学生作为主体,深入了解学生的学习心理,及其对新知识新内容接受的过程。由浅入深循序渐进的安排课程、展开教学。在C语言课程中数据结构、运算符及表达式的相关内容最为基础,也是非常重要,这部分内容掌握不好后续就很难进行。大多数老师在这部分的教学中,总是先行讲授符合由浅入深的教学要求[2]。但是,没有任何编程基础,又不做任何简单程序铺垫的情况下,单纯的讲授数据类型、运算符及表达式等内容,很容易让学生觉得知识性太强,内容太多太杂,枯燥无味,不好记忆,难以应用,加上这部分内容一般都安排靠前,弄不好很容易让学生丧失兴趣,兴趣没有了,后续的教学很难进行下去。

通过笔者多年的教学研究发现,该部分内容作为辅助教学的内容出现更为合适。在授课过程中,这部分内容先不作为主体内容进行讲授,而是通过举例程序当中所出现的数据类型、运算符及表达式等相关内容进行详细的说明,并在阅读程序时,引导学生自行查阅教材的相关内容,最后课程结束前进行详细的对比总结。这样,不仅能够加强记忆,而且还培养了学生自我学习、解决问题的能力。

三、循序渐进以等级考试为中心开展教学

对于非计算机专业的学生来讲,计算机等级既是要求,又可以用来衡量个人计算机的学习程度,在绝大多数高等院校更是授予学生学士学位的基本条件,可以想见,C语言的学习跟学生是息息相关的,由此也带给了学生在学习C语言的过程中非常现实的出发点——通过计算机二级,了解了学生的期望之后,对于任课教师,在教学当中就应该以此作为根本目的,在讲授了基础知识之后,不妨多举一些等级考试的原题作为例题来讲解。

众所周知,在C语言当中for循环语句功能非常强大,for语句除了能取代while语句跟 do…while语句之外,在循环嵌套当中for语句有它的独到之处,例如试打印输出以下图形(2012年6月计算机等级考试试题):

1 2 3 4 5 4 3 2 1

1 2 3 4 3 2 1

1 2 3 2 1

1 2 1

1

刚开始三种循环语句学完的时候,学生根本不知道如何下手,但是将等级考试原题对学生诱惑巨大,建议老师采用循序渐进的方法来讲,至少安排3个以上类似例题由浅及深来完成。

例1用for循环输出1、2、……10

#include

void main()

{ int i;

for(i=1;i

printf("%2d",i);}

这里可以使用for语句的基本应用,输出10个数,我们可以采用for语句来实现,更大再大也同样for语句可以做到。在这里引导学生运用for语句可是实现一些有规律的数字的输出。接下来再举一例。

例2 打印输出以下图形:

1

1 2

1 2 3

1 2 3 4

1 2 3 4 5

在例1之后给出例2,在这里老师提出问题:“例2跟前面例题有什么相同以及不同?”,将学生的学习兴趣提起来,接着提问“如何来解决?”,在例2中要打印这个三角形由数字组成,每行的数字又是一个递增的数列,这跟例1是一样的,应该也可以用for语句来解决,那么怎样让这样的数列生成5行呢?由此顺理成章的提出for语句的嵌套使用。用一个for语句控制输出的行,行号从1到5,而每一行的数字就是从1到行号,到此给出程序:

#include

void main()

{ int i, j;

for(i=1;i

{ for(j=1;j

printf("%3d",j);

printf("\n"); }

在学生有了for语句嵌套运用的了解之后,老师再结合等级考试原题来加深,这是至关重要的一个环节,更能激起学生的学生兴趣,

例3:试打印输出以下图形:(2012年6月计算机等级考试试题)

1 2 3 4 5 4 3 2 1

1 2 3 4 3 2 1

1 2 3 2 1

1 2 1

1

那么例3又跟例2有什么不同以及相同呢?我们可以看到整体同样也是5行,但是每一行不单是递增或者递减,而是先递增后递减,其次每行的输出跟例2是倒过来的,中间的数字是从5到1,分析以上这些之后,老师提出同样采用for语句的嵌套来实现,定义个外层的for语句来控制行的输出,只不过在这里行号要从5到1,内层for语句以行号为坐标,对于每一行的输出,其实我们可以分解为3个部分,如果我们要得到这样一个形状,内层的第一个for语句输出空格,第二个for语句输出递增数列,第三个for语句输出递减数列,最后换行。程序如下:

#include

void main()

{ int i,j,k,m;

for(i=5;i>=1;i--)

{ for(j=1;j

for(k=1;k

printf("%2d",k);

for(m=i-1;m>=1;m--)

printf("%2d",m);

printf("\n");}

以等级考试为导向,采用这种循序渐进的方法,学生容易接受,而且能最大程度的激发学生学习兴趣。这主要是针对等级考试的编程部分,在其他语法讲解的过程,同样也可以穿插等级考试的考题,处处给学生以启发。

四、多阶段逐渐强化上机实践

要学好c程序设计不仅要掌握好理论知识,实验教学更不容忽视[3]。通过上机实验,不仅可帮助学生消化和巩固课堂所学知识,也可帮助学生验证学习中疑难问题,更重要的是可激发和提高学生学习c程序设计的兴趣。为了提高上机的质量,必须克服上机的盲目性,提高教学效果,充分发挥学生学习的主观能动性。

要做好实践这一环节,首先就必须让学生有足够多的上机时间,其次讲求由浅入深,逐步引导学生自主编程,由此建议将学生上机划分为3个阶段:1)环境熟悉期。主要是让学生熟练掌握C语言的编译和运行环境,现在实验室主流的是Microsoft Visual C++ 6.0平台跟Turbo C&C++ 3.0平台,让学生熟悉这两个平台,并初步具备基本的程序调试能力,这一时期可以安排一到两次课;2)语法训练期。主要是通过简单程序的调试运行,从程序的结果中掌握语法的使用,这期建议安排3次课左右;3)提高期。主要锻炼自主解决问题的方法和过程,能进行初步的算法设计和实现。这是见成效的阶段,检验学生C语言能力是否逐步在提高。为了以上三个环节能顺利进行。教改中可采取的主要措施有:1)纪律严明。严格考勤,建立人与机器的固定对应的关系,随时随机查看学生编程的情况,每次上机进行登记,并作为实验最终成绩的参考;2)上机指导。在学生上机期间,如果有问题老师要及时给学生以指导,故要求老师跟学生紧密联系,为学生服好务;3)考核环节。每次上机前都详细规定了详细的实践任务和检查内容,为了防治学生之间互相拷贝,检查时不仅看程序运行的结果,更重要的是看解决问题的思路和具体的程序设计细节。根据程序运行和学生回答问题的情况,将上机成绩划分为优、良、中、及格、不及格五等。

结束语

在C语言程序设计教学中,我们要不再局限于单纯介绍C 语言基本语法,而要本着面向未来的精神,把C语言作为一种实践工具,以程序设计方法为主线,以语法和结构为核心,以能力培养和提高学习兴趣为目标,注重理论与实践的结合、先进性与基础性的统一,变应试为应用。

参考文献

c语言程序设计实例篇(10)

c语言程序设计是计算机及应用电子技术相关专业开设的一门课程,具有一定的难度。目前比较流行的基于“行动导向”的“项目教学法”“项目驱动+案例教学”教学模式是教好和学好这门课程的有效途径,但问题的关键是教师如何选用一些符合学生专业和企业实际的真实项目,在教学中真正做到“工学结合”。

近年来学院新进青年教师较多,多数人缺乏实际工作经验,只是针对课程理论知识按部就班讲解,虽然也按照章节布置一些相应的实训项目,但很少涉及社会实践和企业应用内容,久而久之使学生处于被动学习状态,感觉内容枯燥,难以激发学习兴趣,不利于培养学生的职业能力和创新精神。在项目产品c程序设计教学中,笔者根据多年的教学与科研实践经历,采用科技攻关项目案例,如针对林业企业木材生产、经销环节中应用的专用计算器的软件设计,进行c语言程序设计的项目案例教学示范,旨在指导青年教师做好高职c语言项目课程开发,通过丰富教师自身的社会实践,提高学生解决各种实际问题的意识和培养学生应用C语言进行编程的能力,从而提高青年教师和高职学生的创新意识与实践能力。

1 让学生了解课程的目的是什么——What(做什么)

在课程伊始,首先向学生交代清楚C语言是什么?学习C语言程序设计有什么实际作用?由此引入C语言是目前常见的高级编程语言基础。通过学习C语言的发展和演化,学生了解到C是一种面向过程编程的语言,c++是一种面向对象的语言,C#融合Java又对c++进行简化。由于C语言在可读性和可移植性上比汇编语言有优势,因此许多应用项目、电子产品的应用软件多源于c语言程序设计,使得C/C++语言编程已成为高级语言程序设计教学、单片机嵌入式编程发展的方向和潮流。其次,让学生了解如何针对社会需求和企业生产实际,运用C语言开发项目产品。项目是指以生产一件具有实际应用价值的具体产品为目的的任务。课堂以“原木经销专用计算器的研究”项目产品的软件系统开发为例,通过具体介绍从用户需求调查、产品立项到软件开发、产品应用的整个过程案例,说明c语言程序设计在项目产品软件开发中的实际作用,帮助学生真正理解c语言程序设计课程的学习目的,以调动学习积极性。

黑龙江生态工程职业学院过去曾是培养森工林区管理干部和专业技术人才的成人高校,建校时间长,具有林业行业背景,因此目前相当一部分在校学生来源于森工林区,对于林业企业木材生产、经销等有所耳闻。在原木生产、缴库、销售中,检尺是木材生产经营中的重要环节,其准确性对木材生产中各环节的衔接、管理及企业经济效益都有重大影响。为改变传统、落后的木材检尺方式,我们把现代信息技术应用到木材检尺中,通过开发原木经销计算器可离线存放每根木材的全部信息,包括生产林班、材种、材积、等级、采伐日期等10余项内容,再通过接口传输到计算机中,在检尺、缴库、销售环节通过计算机联网在线操作将每根木材的信息录入信息中心服务器,实现木材检尺现代化、精准化、数字化,达到有效控制木材检尺环节中所造成的效益流失,可降低生产成本,提升企业竞争力。

专用计算器项目是为了解决林业企业木材生产和销售检尺中的实际问题而提出,最初软件解决方案为汇编语言。据此可对学生设问:现在如何以c语言改造并创新?由此引出C语言源程序的编辑、编译问题。由于目前高校程序设计教学中一般选择运行于DOS环境下的Turbo c2.0作为初学c语言的首选编译器,往往使学生对其产生“过时”的错觉,认为现在计算机操作系统早已进入“视窗”时代,Turbo c教学软件档次太低。这时教师首先要向学生说明,Turbo C是经典的程序设计软件之一,由于它对运行环境要求较低,早期的PC均可满足Turbo c要求,继续保留和沿用Turbo c 2.0作为c语言通用模块的选修课程教学内容和实训环境仍然必要。

鉴于目前全国计算机等级考试(NCRE)二级c语言考试已改为VC++6.0这一环境,我们可以将VC++6.0作为计算机软件及应用电子技术两个专业的必修课程,让这两个专业的学生可以通过“学c语言考二级”引导“课证结合”,调动学习c语言程序设计的积极性,在学校学习期间就有一种就业意识,学好理论知识并掌握实践技能,以适应未来人才市场的选择,为企业技术创新储备能力。对于相关专业学生需要强调的是,针对Turbo c、VC++6.0环境中c语言程序编译后在电脑磁盘上保留的“主文件”名称相同但扩展名不同的4个文件(.c,.BAK,.OBJ,.EXE),除了要知道c语言程序编译后可在PC操作系统下运行.EXE文件外,还需要了解单片机c语言的“软件固化”过程,即在开发环境下通过编程器使.OBJ被“烧录”到单片机的EPROM中进行固化,令产品具有所谓的“智能”,这也是基于项目的c语言课程设计的最终归宿。

2 让学生学会如何进行软件功能分析——How(怎么做)

这一项即如何通过产品功能分析确定软件模块。c语言程序设计课程的传统教学模式是以语言的语法系统为主线,以小型练习为训练手段,只对一两个语法要点进行有针对性的练习,与企业应用项目联系较少。在c语言程序设计课程介绍到结构化程序设计方法时,教师可通过讲解图1所示项目产品的“轻触式薄膜按键”操作面板功能,绘制出图2所示的软件系统结构流程图,让学生学会应用流程图工具分析产品功能,引导他们对软件系统进行模块化设计,进而掌握从产品的操作面板功能设计到软件系统模块设计的普遍方法,培养系统分析与设计能力。

3 让学生学会如何按照软件模块分工——Who(谁来做)

这一项即如何按照软件模块进行算法流程设计。c语言是一种结构化语言,重点在于算法和数据结构。教师可在课程伊始,系统讲述c语言的各种数据类型和输入输出格式,这需要花费大量时间,但又没有足够多的例子印证这些内容的重要性。许多学生就是在这个阶段失去学习的耐心和兴趣,造成后续学习的困难。尤其对于算法,许多学生感觉枯燥无味。这时我们可以考虑通过项目让学生学会针对软件模块进行小组分工,按照系统模块设计流程做好子模块算法设计,培养团队协作意识。

由图2可见,产品的软件系统采用模块化结构程序设计,第一模块“数值计算”功能是模拟常见的数字计算器,用于解决通用的四则运算,可以作为一个独立的子模块由专人负责模块细化,挑选一组对计算器功能及操作比较熟悉的学生按照加、减、乘、除子函数设计进行分工,逐步合并后再用主函数调用子函数完成该子模块设计。第二模块“查材积表”功能主要用于林业企业木材生产中的原木材积计算,可挑选一组来自林区对木材生产和销售比较了解的学生,在“查材积表”模块的程序设计中采用“选择型”算法,通过输入原木材长和径级计算原木的材积,完成相应模块的子函数设计。依据现行的国家标准GB48 14—84,原木材积统计算法公式分以下两种情况。

(1)检尺径自4-12cm的小径原木材积。

V=0.785 4L(D+0.45L+0.2)2÷10000

(2)检尺径自14cm以上的原木材积。

V=0.7854L[D+0.5L+0.005L2+0.000125L

(14-L)2(D-10)]2÷10000

公式中:V——材积(m3);

L——检尺长(m);

D——检尺径(cm)。

据此计算公式,可以绘制出图3所示的“查材积表”模块算法流程图。

对于c语言选择程序设计教学内容,这是一个很好的“模块化”算法设计案例,可以让学生学会按照“模块分解”进行项目分工协作,掌握“逐步求精”的程序设计方法。2005年初,项目组成员作为任课教师曾在黑龙江生态工程职业学院带岭分院计算机应用成人大专班的c语言程序设计课程中运用此案例。由于多数学生来自林业生产一线,因此学生容易理解,接受理论较快,实践效果也较好。此外,在讲解上述教学内容时,教师还向学生介绍了一些林业生产管理知识,突出黑龙江生态工程职业学院的行业特色。

这种采用项目案例结合企业生产实际进行教学的方法,不仅符合林业成人职业教育规律,还符合高职院校培养高技能应用型人才目标的实际,有利于激发学生对c语言程序设计的学习兴趣。2007年末,项目组成员作为评委在黑龙江生态工程职业学院举办的“青年教师基本功大赛”中,对部分计算机技术系青年教师主讲的“c语言选择程序算法设计”课程进行讲评,建议教师尽量采用企业生产中的一些应用实例,对提高青年教师实践能力、带动和提升学生的职业能力起到一定的指导作用。

4 让学生学会如何选择软件开发工具——Where(在哪儿做)

这一项即如何根据实际条件合理选择软件操作环境和开发工具。目前多数高职院校比较重视在多媒体教室PC上进行程序设计教学训练,但是较少能够做到在实验室进行软件产品模拟仿真,更不用说结合相应电子产品进行底层编程,因此应该向青年教师和学生指出c语言程序设计在学好理论、掌握方法、运用工具3个方面是有连贯性的。企业在运用IT工具方面往往领先一步,使科技真正发挥“第一生产力”的作用,因此软件开发工具首先要看IT企业选择什么,这也是“工学结合”的基本要求。

许多学生在“工学结合”实习过程中,看到IT企业应用Microsoft Visual c++软件开发环境,误以为Vc++是一种语言,从而产生一种错觉。项目课程通过介绍“计算机及图像识别技术在原木检尺中的应用研究项目”案例,可将师生引入VC++这一具有较强图形函数功能、可视化的C++语言开发环境。VC++包含在Visual Studio 6.0集成开发环境中(还有VB等),作为一个集成开发工具,它不是一种语言,是基于c++的一个开发平台。与Vc++类似的c++程序开发工具还有Borland公司推出的c++Builder等。c语言有标准的函数库,它们是松散的,只是把功能相同的函数放在一个头文件(h)中;而vc++大多数的函数都是集成的,特别是vc++中的图形处理,它和c语言的图形函数有很大区别,c语言中的图形处理函数基本上不能用于vc++中。此外,VC++还可以写基于DOS的程序以及DLL等。

在明确了系统模块分工、算法流程之后,学生便可以运用软件工具进行c语言具体语句的程序编写和编译,实现相应的模块功能,如通过运用if和switch语句实现两向选择模块(如图3所示)和多向选择结构(如图2所示)程序设计,真正进行实战练习,完成相应模块的程序编写和代码编译。在编写中需要注意的是c++除了能够使用c语言的所有标准函数外,还有自己的另“类”,如在C语言中,输入输出使用scanf()和primf()函数实现,而在c++中使用cin,cout等对象实现,即在c++中也可以不使用c的固有函数而只使用c++的类。教师要通过一些简单的说明,讲清C/C++语言的联系与区别,指导学生看懂c++程序,提高他们对IT企业运用c++开发软件的实习环境的适应能力。

上一篇: 教师培优辅差工作总结 下一篇: 汇报发言材料
相关精选
相关期刊