您好,欢迎来到小侦探旅游网。
搜索
您的当前位置:首页C++程序设计教学研究

C++程序设计教学研究

来源:小侦探旅游网
维普资讯 http://www.cqvip.com

电脑知识与技术 教育论坛 ● C++程序设计教学研究 葛建芳 (南通大学计算机科学与技术学院,江苏南通226019) 摘要:c++语言程序设计是计算机专业的一门主干课程。本文根据教学实践,分析总结得出优秀的教学模式应该以程序设计为主线、 以c++语言语法规则为辅,灵活地运用多种方法进行课堂教学;且注意加强实践技术技能的训练,重视面向对象思想的培养,在应用中 提高学生分析问题、编程解决问题的能力。 关键词:C++语言;教学方法;语法;面向对象 中图分类号:G423 文献标识码:A 文章编号:1009-3044(2006)20—0212-01 GEjin—a—fang Research on C++Language Pr0grammjng Teaching (School of Computer Science and Technology,Nantong University,Nantong 226019,Ci ̄na) Abstract:C++lnguaage programming is one of the main courses of computer science majors.Based on teaching practice,this paper analyses nd poiants out that fine teaching pa ̄em should taking pmgramming as the masters ̄oke and syntax as supplement, and exerting multiple means on class teaching neatly.It S also important tO enhance training on practice skill,think much of bringing up the object—oriented idea,nd —a prove the abiliy of tstudents tO analyze and solve problems in appfication. Key words:C++language;teaching technique;sntyax;object—‘oriented 1引言 面向对象程序设计是程序设计发展的趋势,越来越多的大学 可以促进学生对抽象概念的理解,增强学习的自信心。学生兴趣 的提高也激励着教师的教学热情,在教与学的互动中,形成活泼 的教学氛围,使理论教学达到很好的效果。 2.2以启发式的方法引入新的知识点 当代美国心理学家奥苏伯尔认为学生从事新的有意义的学 习时必须有适于新知识的原有认知结构.学生的学习就是一个同 已经直接开设C++语言.作为计算机、信息管理等专业的学生学 习程序设计的入门课程.C++语言程序设计的基本概念和能力已 成为学习《数据结构》、《操作系统》等后序计算机专业课程的重要 基础。C++语言是一门语法灵活、应用广泛的高级程序设计语言。 但是由于授课对象都是初次接触程序设计的大学低年级学生,加 之教科书内容的组织一般比较抽象化.有些概念难以理解。如果照 化自身认知结构的过程。因此课堂教学中在讲授新的知识时,宜 采用启发诱导的方法。回顾以前学习的相关内容,设置新的疑问, 引导学生在解决问题的过程中自然而然、不知不觉地接受新的知 本宣科,容易使学生产生厌倦、畏惧心理。难以收到好的教学效 果。本人在实际教学过程中。经过不断探索。积累了一定的教学经 验,希望能与同行切磋商讨。 识,吸收新的思想,降低学习的难度。 比如,模板是C++语言中引入的新特性,也是比较深奥抽象 的内容。如果直接介绍模板的概念和定义语法,学生难以理解和 2灵活运用多种教学方法。优化课堂教学质量 2.1以生动形象的比喻阐释抽象的概念 教学语言是教师充分消化教材后。在课堂上向学生进行知识 接受。在教学过程中,通过引导学生编写实际的函数模板,来了解 模板的概念和本质。在未介绍模板语法的情况下,学生又如何能 写出函数模板代码呢?这就要运用启发式的教学方法,通过一步 步诱导。逐渐逼近目标,最后水到渠成地完成任务。 首先让学生思考这样的问题:要求出两个同类型数值中的大 的口头传授.根据学生抽象思维弱于形象思维这一特点.教师应 使用通俗易懂的语言,使抽象的概念形象化,帮助学生建立想象 表象 C++程序设计语言中的许多概念对于初学者而言,显得抽象 而深奥 作为任课老师如果能在讲课中适当地运用形象、生动的 比喻.常常会使许多看似深奥的概念变得浅显而易于理解。 比如在讲授数组内容时.告诉学生定义单个的的变量得 到的是“散兵游勇”,势单力薄,无法解决复杂的问题,而定义数组 得到的是一个“兵团”,可以用来存放、处理许多同类型数据。“兵 团”中的成员共用同样的名字,通过编号来对它们加以区分。这样 可以通过循环语句来对每个成员进行访问操作,使得本来需要几 千行代码才能实现的功能.现在只需要几行代码即可实现。通过 这种比喻的方法.学生不仅掌握了数组的概念和定义方法,还能 体会到数组巨大的“威力”,激发出浓厚的学习兴趣,提高学习 C++语言的主观能动性。再比如在讲解拷贝构造函数的作用时,如 者,但两个数值的类型可能为int。也可能为float。或者为double、 char等。那么该如何实现这样的功能。学生根据已学知识会得出 解决方法:使用重载的方法,为不同的类型分别编写一个函数版 本。如为int,lfoat和char类型分别编写的函数版本如下: int max(int x,int y){retum(x>y)?x:y;} lfoat max(lfoat x,lfoat y){retum(x>y)?x:y;} char max(char x ̄char y){retum(x>y)?x:y;} 接下去让学生观察这些函数的异同.会发现这些函数所进行 的操作是一样的,所不同的仅仅是操作数的类型。用标识符T代 表函数的参数与返回值类型,则上述三个重载函数可以统一写成 果照本宣科。学生不易理解与记忆。在实际教学时,以生活中的复 印机做类比,复印机的作用是由已有文档复制出新的文档,而拷 贝构造函数就是C++语言中的“复印机”,它的作用是由已有对象 这样的形式:T maxfx。Ty){retum(x>y)?x:y;l 最后.为上面我们熟识的这位“老朋友”戴上一顶“新帽子”.也 就是在头部增加模板的声明:template<class .得到的最终形式为: template<class T> 复制出新的对象:复印机复制文档时可以是同样大小地复制,也 进行放大、缩小。拷贝构造函数由已有对象创建出新的同类对象 时。可以使新对象具有已有对象一样的属性值,也可以适当改变 新对象的属性值。 在课堂上采用“大白话”的讲授方式、多多运用恰当的比喻, 收稿日期:2006-04-03 T maxfx,Ty){retum(x>y)?x:y;} 这便是一个完整的、合法的函数模板,它的功能是求任意类型的 两个数中的较大者。反过来。如果用实际的数据类型(如int,char等) 替代上述模板中的类型参数T。则可得到具体的函数。通过上面一步 f] 转第215页) 作者简介:葛建芳(1969-),女,江苏南通人,南通大学计算机学院讲师,研究方向:计算机程序设计语言。 212 ¨知识与技禾 维普资讯 http://www.cqvip.com

● 教育论坛 参考文献: [1】陈继宇,严沛渝,陈丽.网上交互辅导系统与学习循环[J].中 国电化教育,2005,(3):33—36. [2】龚涛,蔡自兴.基于ICA I模型的电子家教系统设计[J].计算 (.Y- ̄g 212页) 步的引导,学生很自然地理解了函数模板是一组函数的抽象,是生成 具体函数的模型、样板,并且掌握了编写函数模板的语法。学生在理 解了函数模板的含义之后,也就很容易接受类模板的概念了。 2.3理论结合实际,寓语法知识于实例中 计算机程序设计语言语法严谨,程序中即使存在一个字符的 错误,编译时也是无法通过的。也就是说要使用C++语言进行程 序设计,首先必须掌握其语法规则。也许基于这个原因,许多教材 上的大部分程序例子是纯粹为说明语法概念而编写的。没有实用 性的价值,让人读来枯燥而无味。所以教学时不能完全照搬这样 的例子,应该尽量采用解决实际问题的例子,让学生体会到学有 所用,才能激发其学习的动力。例如,以“鸡兔同笼共30只.脚有 90只,鸡有几只,兔有几只”这样有趣的问题,就可以很好地解释 循环语句的语法和作用。再比如,在学生基本了解数组的求最大、 最小、求和功能代码时,可以列举这样的综合性例子:某电视台举 办卡拉OK歌手大奖赛,共有10个评委,每个评委给歌手一个评 分,歌手最后得分为:去掉一个最高分、去掉一个最低分后,其余 评委所给分的平均分,要求编程计算歌手的最后得分。实践证明, 这样的实用的、精辟的例子既能够吸引年轻的学生,活跃课堂气 氛,使其保持轻松的思维,又能起到培养其思考问题、解决问题、 综合应用知识的能力。 谁也不能否认一门语言语法的重要性,但学习语法不是学习 语言的真正目的、最终目的。程序设计语言教学的真正目的是:让 学生掌握如何利用该语言,来解决现实世界的实际问题。因此优 秀的教学模式应该以程序设计为主线,寓概念于实例中,将复杂 枯燥的语法知识分解到每个生动、有趣、实用的程序实例中,对于 不同专业的学生举出不同的实例,以应用作为出发点,重点介绍 程序设计方法和思路,在分析程序和程序设计中让学生逐步熟悉 基本的语法和语句,并把软件工程学的思想贯穿于算法分析和程 序设计的过程中。 3强化实践技术技能的训练。提高实际编程能力 C++语言是一门实践性非常强的课程.单单依靠课堂的教学 是不够的,程序设计技能的培养只有通过大量的编程训练和上机 实习才能获得。因此不可忽视实际编程、上机实验这一重要环节。 对于上机实验的选题,依然贯彻以应用为出发点的原则.结 合生活、结合具体专业精心挑选难易适中、趣味性强的题目。通常 采用“小题目大任务”的方法.即每个实验学生编写的“小题目”并 不是孤立的,而是相互联系的,实际上它们都是一个较大型较复 杂程序的各个有效的组成部分。例如,在介绍了开关语句后,要求 学生编写简单的进行菜单选择的代码;在介绍了循环控制语句后 要求学生编写密码输入和验证密码的代码,允许给用户三次机 会;在学习数组和字符串之后,要求学生编写代码对若干名职工 的工资进行处理,如实现排序、求平均值、查找等功能;介绍了常 用文件操作函数后,要求学生编写文件的读、写函数等等。这一个 个编程的“小题目”.似乎各自,其实它们都是围绕一个大的 任务,这就是编写一个可通过菜单进行操作的职工工资管理系 统。最后当学期结束进行课程设计时,要求学生把平时完成的程 序段编写成的函数,并把这些组件通过简单的组装,构成一 个比较完整复杂的程序。这样学生自然而然地就理解、吸收了模 块化的程序设计思想。 教师指导上机是课堂教学的延伸和强化。在上机前要求学生 认真思考、确定思路、完成程序的编写。在具体上机验证时,应让 学生先解决问题。当学生在探索的过程中不能完成时, 教师应及时给予恰当的指导。这样既锻炼了学生思考、克服 电脑知识与技术 技术与自动化,2001,(6). [3】宋红,李珍香.计算机网络与远程教育[J].计算机与现代化 2000.70(6):56-60. 困难的能力,又使其品尝到程序正确运行后成功的喜悦,进一步 激发对编程的兴趣 另外实践环节要重视提高学生调试程序、检查排错的能力。 可通过现场演示等手段,向学生介绍注释法、中间结果分析法等 多种调试程序的方法。尤其要使其掌握最重要的单步跟踪调试 法。程序的执行过程对于普通用户来说是一个“黑匣子”.而采用 单步跟踪调试法则可以洞察其内部行走的路线,观察变量值的改 变,很容易找出程序中的逻辑错误。特别对于一部分领悟接受能 力较差的同学,可以使他们对选择、循环和函数调用有一种更为 具体的感性认识,加深对有关概念和算法的理解。 4重视面向对象思想的熏陶,培养分析、解决问题能力 C++语言是一种混合性编程语言,既支持面向过程,又支持面 向对象。面向过程和面向对象是两种截然不同的思想方法。采用 面向过程的思想进行程序设计,实质是从计算机的观点出发、详 细地设计解题步骤、进行功能的分解,所得到的程序以数据结构 为中心、以函数作为模块,稳定性、可重用性、可维护性较差。面向 过程的程序设计方法,越来越难以胜任大型软件系统的开发 正 是在这种危机下人们把面向对象方法用于程序设计。面向对象程 序设计方法,从人类的习惯性思维出发,强调对客观世界的模拟. 按问题领域设计程序模块,以对象代表问题解的中心环节,使程 序的分析、设计和实现的过程和方法,改变了过去的脱节和跳跃 状态,使人们对复杂系统的认识过程与系统的程序设计实现过 程,尽可能的一致。 面向对象程序设计的教学,关键是对学生进行面向对象思想 的培养。古人云:“授之以鱼不如授之以渔”。只有掌握面向对象这 一思想“利器”,才能把它有效地用于指导实际编程。教学过程中 结合具体的实例引导学生采用面向对象的思想进行分析、设计, 最后编程解决问题。例如,针对某小型公司编写计算雇员工资的 程序,首先,根据工资计算方法的不同,分析得出该公司存在经 理、技术人员、销售员、销售经理四种类型的雇员,再分析每类雇 员有哪些在程序中需要保存、处理的属性.对这些数据进行哪些 操作,这些分析工作为编写类、实现数据的封装做准备。封装性是 把数据及对数据的操作组合成一个整体.使类对象的实现与提供 给外部的界面相互。封装性的好处是使得程序员很容易修改 类的内部结构、类的使用者不必关心其内部实现。然后,分析各类 雇员之间的联系,抽取姓名、工号等共性形成顶层的雇员类,经 理、技术人员、销售员三个类继承于它,而销售经理又继承了经理 和销售员两个类,形成软件系统的类的层次结构。继承性让派生 类自动拥有基类的特征,它的好处是实现了代码的重用。最后考 虑为各个类编写名字相同、算法相异的计算工资的成员函数,实 现多态性。多态性是指相同的消息发送给不同的对象时,将引起 不同的行为。多态性使我们的程序设计可在更高的抽象级别上进 行,简化了程序的处理逻辑,提高了软件的可维护性。 5总结 在教学过程中以“程序设计”为主线,以C++语言语法规则为 辅.灵活地运用多种方法进行课堂教学;注重学生程序设计能力 的培养,抓好实践技术技能的训练,以练促学;引导学生掌握运用 面向对象的思想进行分析、设计、解决现实问题。实践证明,这些 教学思想与方法颇有成效。希望这些方法能对大学程序设计教学 有一定的借鉴作用。 参考文献: 【l】郑莉,董渊.C++语言程序设计【M】.北京:清华大学出版社, 2001. 『21吕凤翥.C++语言基础教程『M1.北京:清华大学出版社,1999. 215 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- xiaozhentang.com 版权所有 湘ICP备2023022495号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务