首页 C语言教学中学生编程风格的培养

C语言教学中学生编程风格的培养

举报
开通vip

C语言教学中学生编程风格的培养C语言教学中学生编程风格的培养 C语言教学中学生编程风格的培养 计算机时代2006年第lO期?65? C语言教学中学生编程风格的培养 .丁红胜1,2,田金琴. (1.西安石油大学计算机学院,陕西西安710065;2.北方民族大学计算机系) 摘要:国内绝大多数高校的计算机专业都开设c语言程序设计课,然而在教学中,无 论是教师还是学生都很少关注编 程的风格.针对这一问题,文章论述了编程风格的概念,重要性,内容等,提出了采用 互助修改程序和加入编程风格的考核 方法来培养初学者形成良好的编程风格. 关键词:C语...

C语言教学中学生编程风格的培养
C语言教学中学生编程风格的培养 C语言教学中学生编程风格的培养 计算机时代2006年第lO期?65? C语言教学中学生编程风格的培养 .丁红胜1,2,田金琴. (1.西安石油大学计算机学院,陕西西安710065;2.北方民族大学计算机系) 摘要:国内绝大多数高校的计算机专业都开设c语言程序设计课,然而在教学中,无 论是教师还是学生都很少关注编 程的风格.针对这一问题,文章论述了编程风格的概念,重要性,内容等,提出了采用 互助修改程序和加入编程风格的考核 方法来培养初学者形成良好的编程风格. 关键词:C语言教学;编程风格;高质量程序;互助实验 0引言 国内绝大多数高校的计算机专业都开设c语言程序设计 课,然而在教学中,无论是教师还是学生都很少关注编程风格 的问题,而是将注意力集中在程序的语法及正确性方面.实际 上良好的编程风格是提高程序质量及可维护性,可重用性等的 重要保证.编程风格就是人的一种习惯,一旦形成了不良的习 惯,再想要改正那是非常困难的.所以,最好的办法就是从初学 者就抓起.本文以c语言为例来说明什么是编程风格,如何能 形成良好的编程风格,编程风格的内容包括那些,以及如何将 其融入日常教学中等方面的问题. 1编程风格概念 编程风格是指编程者在程序设计过程中共同遵守的一些 规则 编码规则下载淘宝规则下载天猫规则下载麻将竞赛规则pdf麻将竞赛规则pdf 或者约定,是一种编程习惯.虽然目前还没有十分严格明 确的规则可以遵循,但是众多的优秀程序员们还是 总结 初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf 出了一 些比较好的编程规则….在保证程序正确性的前提下,能使程序 结构清楚,易移植,使自己和协作者更容易读懂理解程序的做 法都是良好风格的组成部分.其中关键的就是每个编程者都必 须抛弃自己的个人喜好,不能随心所欲,按个人的爱好来做.要 遵循一些好的规则,这看起来不难,但要真正做到是很不容易 的,而且形成良好的编程风格还需要掌握很多知识,而不只是 记住一组规则,必须要通过实践并阅读其他程序来不断学习, 才能掌握程序设计这门艺术的真谛. 2良好编程风格的重要性 未来软件的发展方向是对软件质量的要求高于性能和功 能的要求,特别是对一些涉及人身财产安全方面的软件.然而 时至今日软件质量问题依然不容乐观,由软件质量问题而导致 的人身财产损失的重大事故数不胜数,因此专业人士认为谁掌 握了高质量软件的开发技术,谁就拿到了打开2l世纪高技术 市场的金钥匙.虽然在大型的程序设计中,比如航空航天,交 通,保险,金融等应用软件的开发对程序质量的要求更高,类似 这种大型的软件至今为止还是没有办法去完全验证它的正确 性,也无法进行彻底的测试,但是采用良好的编程风格和技术 还是可以大大提高程序的开发速度和质量,大大降低一些人为 的错误,例如,导致程序陷入死循环的错误条件,危及相邻代码 或数据的数组越界,数据类型溢出等.很多类似错误其实是由 程序员的不良编程习惯引起的,因此,培养良好的程序设计风 格对保证程序的质量至关重要. 3编程风格的内容 虽然国内目前对什么是好的编程风格还没有一个完整的 定义,但是很多优秀的程序设计者们已经总结出了一套比较优 良的编程风格【l,21,包括的内容很多,以下这些方面都是良好的 编程风格的重要部分,比如版面设计,标识符的命名,函数的接 口设计,内存管理等方面的一些规则. 3.1版面设计 版面设计是良好编程风格的重要组成部分,虽然程序的版 式不影响程序的功能,但它影响程序的可读性.版面设计遵循 以下的规则: 3.1.1正确使用空行空格 空行空格是程序中主要的分隔符,合理地使用它们,会使 程序看起来层次清晰,结构紧凑.一般情况下,在下面一些隋况 下要使用空行或空格. (1)每个函数定义结束之后都要加空行.参见图1(a). (2)函数体内,逻揖上密切相关的语句之问不加空行,其它 地方应加空行分隔.参见图l(b). (3)函数名之后不要留空格. …一 (略) 2结束语 根据相邻考生IP地址的不同进行运算,使网上考生得到 互不相同的试卷是比较简便,易行的办法,已经在机房成功地 进行了测试.这只是网上考试系统中一个较小的子功能,此功 能的实现依赖于后台的试卷库,题库.很显然,如果题库中每一 类型的题目数量都足够多,那么取得随机整数的范围就扩大, 试卷间相异的情况也就越多. 参考文献: 【1】陈华生,黄斐.Intemet应用技术基础.苏州大学出版社,2002.鞠 ?66?ComputerEraNo.102006 ||空行 ||壹轩while(condition) voidFunction1(…){ {statementl: {{宣行 )if(condition) ||壹待{ voidFunction2(…) statement2; {} )else ||童楫( voidFunction3(…)statement3; {} {{空行 )statement4; ) (a)函数之间的空行(b)函数内部的空行 图l (4)'('向后紧跟,')',',',';'向前紧跟,紧跟处不留空 格.','之后要留空格,如Function(x,Y,z);如果';'不是一 行的结束符号,其后要留空格,如for(initialization;condition; update). (5)赋值操作符,比较操作符,算术操作符,逻辑操作符,位 域操作符.如"=","+="">=","<=","+","$","%","&&",", "<<" ,"'等二元操作符的前后应当加空格. (6)一元操作符如"",","++","一","&"(地址运算符) 等前后不加空格. 3.1.2合理使用"对齐""缩进" (1)程序的分界符'{'和'1'应独占一行并且位于同一列. (2){)之内的代码块在'{'右边花括弧处左对齐.见图2 (a)和图2(b)区分两种风格的写法. voidFunction(intX) {voidFunction(intX){ … ?programcode…|lprogramcode )) if(condition) {if(condition){ … I}programcode?IIprogramcode )) elseelse{ {.?//programcode '?? /Iprogramcode) ) (a)良好风格的对齐(b)不良风格的对齐 图2 3.1.3代码行的写法 (1)一行代码只做一件事情,如只定义一个变量,或只写一 条语句. (2)if,for,while,do等语句自占一行,执行语句不得紧跟其 后.不论执行语句有多少都要加{】.这样可以防止书写失误. 3.1.4长行拆分 指导原则是简单直接,便于理解.不使用太长的语句. 3.1.5修饰符的位置 修饰符和&应该靠近数据类型还是该靠近变量名,是 个有争议的话题.若将修饰符靠近数据类型,例如:int*x; 从语义上讲此写法比较直观,即X是int类型的指针.上述写法 的弊端是容易引起误解,例如:int*X,y;此处Y容易被误解为 指针变量,应当将修饰符和&紧靠变量名. 3.1.6注释 注释是程序的重要组成部分,c语言的注释符为"…/". 注释有助:F理解代码.加注释的原则是: (1)适当注释.不可太多太花哨. (2)简单的代码不必加注释.如A=2/*将2赋给A*/多余 的注释. (3)边写代码边注释,修改代码同时修改相应的注释,以保 证注释与代码的一致性. (4)注释准确,易懂,防止注释有二义性.错误的注释不但 无益反而:苜害. (5)不使用缩写,注释不只是给自己看的. (6)注释的位置可以在代码的上方或右方,不可放在下方. (7)要对函数头部进行注释.指出函数名称,功能,参数类 型,返回值类型等. 3.2标识符的命名原则 (1)标识符应当简单直观,可以望文知义,长度适中. (2)标识符可以采用英文单词或其组合,便于记忆和阅读. 推荐使用如下方式命名:变量和参数名用小写字母开头,尽量 使用名词;宏和常量用大写字母开头;函数名用大写字母开头, 尽量使用:动词或以动词开头;表示相反意义变量或相反动作的 变量或函数可以用反意词区别.如: intlargestValue; intsmallValue; intPutValue(…): intOutValue(…): 3.3函数的设计规则 函数是c程序的基本功能单元,其重要性不言而喻.函数 设计的纽敞缺点很容易导致该函数被错用,所以只是使函数的 功能正确是不够的.下面重点论述函数的接口设计和内部实现 的一些规则.函数接口的两个要素是参数和返回值. 3.3.1参数的规则 (1)完整定义参数类型,数目,如果函数没有参数,则用void 填充.例如: voidSetValue(intwidth,intheight);//良好的风格 voidSetValue(int.int);//不良的风格 floatGetValue(void);//良好的风格 floatGetValue0;//不良的风格 (2)参数命名要I合当,顺序要合理. 例如编写字符串拷贝函数StringCopy,它有两个参数.如果 把参数名!起为strl和str2,如voidStringCopy(char*strl,char *str2),那么我们很难搞清楚究竟是把strl拷贝到str2中,还是刚 好倒过来.可以把参数名字起得更有意义,如叫strSource和 计算机时代2006年第1O期?67? strDestination,这样从名字上就可以看出应该把strSource拷贝到 strDestination.还有—个问题,这两个参数那—个该在前那一个 该在后,参数的顺序要遵循程序员的习惯.一般地,应将目的参 数放在前面,源参数放在后面,让调用者一看就明白. (3)避免函数有太多的参数,参数个数尽量控制在5个以 内.如果参数太多,在使用时容易将参数类型或顺序搞错. (4)尽量不使用类型和数目不确定的参数.c 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 库函数 prinff是采用不确定参数的典型代表,其原型为:intprintf(const chat*format[,argument]…);这种风格的函数在编译时丧失了 严格的类型安全检查. 3.3.2返回值的规则 (1)不要省略返回值的类型. c语言中,凡不加类型说明的函数,一律自动按整型处理. 这样做不会有什么好处,却容易被误解为void类型. (2)函数名字与返回值类型在语义上不可冲突. 违反这条规则的典型代表是c标准库函数getchar.例如: charC: C=getcharO; if(C==EOF) 按照getchar名字的意思,将变量C声明为char类型是很 自然的事情.但不幸的是getchar的确不是char类型,而是int 类型,其原型如下:intgetchar(void);F~t于C是char类型,取值范 围是f.128,127】,如果宏EOF的值在char的取值范围之外,那 么if语句将总是失败,这种"危险"人们一般哪里料得到!导致 本例错误的责任并不在用户,是函数getchar误导了使用者. (3)不要将正常值和错误标志混在一起返回.正常值用输 出参数获得,而错误标志用return语句返回. 3.3.3函毅内部实现的规则采用防御性程序设计方法 在程序里增加一些代码专门处理一些异常现象的技术,称 为防御性程序设计(defensiveprogramming)[41,其主要目的是增 强程序的健壮性,使程序遇到不正确的使用或非法的输入仍能 保护自己,避免出错,提高程序的容错能力. (1)在函数的接口中,清楚定义函数的功能,包括入口参 数,出口参数,返回状态,异常处理等,让调用者都清楚函数所 能进行的操作,以及操作是否成功,尽可能多的考虑一些异常 情况. (2)在函数入口处进行参数有效性检测.如: if(score<Ollscore>lO0)printf("…error''): (3)函数调用时可以设置为通过函数的返回值来 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 函数 是否调用成功,要考虑调用失败的处理. 调用动态内存分配时,要考虑到可能因为内存耗尽而导致 的调用失败,所以一定要检测内存分配是否成功.在调用打开 文件函数时,要考虑因为一些意外『青况,比如文件不存在,被破 坏了,或者正被其他程序使用等情况下失败的处理. (4)在进行—些比较容易出错的操作时,比如除法,比较,赋 值转换等,需要进行操作数及类型的合法性检查,避免出现除数 为0的错,数据溢出错,类型转换错等.比如"aver=-sum/n"可以写 成"aver=(n==0)?0:sum/n",这样可以提高程序的健壮性. 3.3.4其它建议 (1)函数的功能要单一,不要设计多用途的函数. (2)函数体的规模要小,尽量控制在200行代码之内. (3)尽量避免函数带有"记忆"功能.相同的输入应当产生 相同的输出. 带有"记忆"功能的函数,其行为可能是不可预测的,因为 它的行为可能取决于某种"记忆状态".这样的函数既不易理解 又不利于测试和维护. (4)用于出错处理的返回值一定要清楚,让使用者不容易 忽视或误解错误情况. 4教学方法 虽然我们都知道编程风格对软件质量的影响,但是在教学 中却很少关注这方面的教育.一开始就将良好编程风格的培养 融入教学中是非常有益的事.笔者尝试在教学中采用以下方 法,取得了良好的效果. 4.1互助修改程序 单纯课堂讲解良好编程风格的重要性会使学生有纸上谈 兵的感觉,不会有好的效果,所以除课堂教学时要灌输编程风 格的 思想 教师资格思想品德鉴定表下载浅论红楼梦的主题思想员工思想动态调查问卷论语教育思想学生思想教育讲话稿 外,将其融入实践环节,让学生切实感受良好编程风 格的重要性是非常有效的方法.笔者在实验时采用同学间互相 修改对方的程序,并指出其中修改的部分,及不良的编码风格, 两个同学共写一份试验报告,其中的重要内容就是指出对方程 序中的错误,这样同学就可以感受到不良风格给自己带来的调 试困难,使学生从思想上重视编程风格的培养. 4.2编成风格加入考核内容 考核时,也将程序的风格放在很重要的部分,不仅要求程 序功能的实现,还要看程序的效率是否高,风格是否良好,这些 都给出明确的分值.比如一个l0分的排序的编程题目,算法占 到4分,编程风格占到3分,其他占3分.这种做法使学生在初 学时就有意识培养良好的编程风格和协作能力,这也是现在软 件业对从业人员基本的素质要求.以上做法在小范围进行了实 验,效果很好. 5结束语 没有任何语言能够防止我们犯错,所有语言都有潜在的危 险和引起错误的倾向,我们能做的就是努力减少这种缺陷对我 们的影响,编写出高质量的程序.良好得编程风格是减少错误 的有效方法,编程风格的培养至关重要.作为教师应该有这样 的责任感,帮助学生认识到这一点并注意培养学生这方面的能 力是教学中非常重要的任务. 参考文献: 【1】林锐.高质量的C/C++编程指南.电子工业出版社,2005. 【2】苏小红,陈惠鹏,知志岗.C语言大学实用教程.电子工业出版社, 2005. 【3】AndrewKoenig着,高魏译.C陷阱与缺陷.人民邮电出版社,2002. 【4】PeterVanDerLinden着,徐波译.C专家编程.人民邮电出版社, 2002?酗
本文档为【C语言教学中学生编程风格的培养】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_447713
暂无简介~
格式:doc
大小:25KB
软件:Word
页数:10
分类:生活休闲
上传时间:2017-12-07
浏览量:9