C语言实验报告模版(共11篇)
指导教师曾宪华实验时间: 2010 年10月日 学院通信与信息工程专业通信类
班级0101105学号2011210150姓名陈环宇 实验室s313
实验目的及要求:
(1)掌握选择结构程序设计,学会if语句嵌套的应用。
(2)以此程序掌握使用断点调试程序的方法。
实验题目:
实验内容及步骤:源程序(已修正)
操作步骤
a.打开C++,新建文件,输源程序。
b.进行编译和连接时,没有出现错误或者警告。
c.单击Go,输入a,b,c的值后,程序执行到断点①处,输入变量a,b,c,查看a,b,c的值。此时,变量的值与输入的值一致。
d.单击Go,程序运行到断点②处,运行显示d为49.81,此时方程有实根。
e.单击Go,运行到最后一个断点处,运行显示x1=-0.44,x2=-3.80,符合题目要求。f.单击Stop Debugging,调试完成。
运行结果示例
心得体会:
一、C语言实验课的重要性
作为一个教学工作者, 深知学生要学到真正属于自己的知识、能力, 那么在C语言教学过程中, 实验教学就是一个相当重要的环节。C语言的数据类型较多、表达式丰富、语法结构较复杂, 使它成为一门教师难教、学生难学的课程。因此, 在重视理论教学的同时, 必须加强实验环节。只有在上机实践中学生才能正真学会如何编写程序和调试程序, 也只有通过上机实践才能更好地掌握程序设计的理论知识。
首先老师在上实验课时尽量要求学生多编写程序, 多上机调试程序, 上机实验的目的决不仅是为了验证所编程序的正确性, 其主要目的在于让学生熟练掌握上机操作要领和调试程序技术, 积累编程经验。其次上机实验可以加深学生对讲授内容的理解, 尤其是一些语法规定, 光靠课堂讲授比较枯燥又难以记住, 但它们又很重要, 通过多次上机就能自然地熟练掌握, 通过上机来掌握语法规则是行之有效的一种方法。最后, 学生在上机调试通过一个程序后, 可以自己改变程序中某些部分, 甚至故意设置一些障碍, 观察和分析在不同情况下的编译和运行结果。应当说, 上机实验的重要性绝不亚于课堂听课, 这是巩固和发展课堂知识的十分重要的环节。
二、C语言实验课存在的问题
第一, 学生没有明确的实验目标, 实验兴趣不大。上机时一些学生无所事事或玩游戏, 不但害了自己, 还影响其他同学。第二, 现有教材中上机实验都立足于C语言本身的一些语言规则, 而C语言的许多基础知识都是概念性强、理论性强, 内容丰富且抽象, 具有严密逻辑性的, 学习难度比较大。这时有的学生会产生畏难情绪, 而老师又没有及时引导, 因此许多学生学习兴趣开始降低, 不听教师讲授理论课, 甚至实验课也干脆不去。第三、学生的作业存在抄袭现象, 有的程序错误百出, 根本就没上机调试过。对批改过的作业, 有相当一部分学生也不认真去分析, 交作业仅仅是为了应付老师。对于C语言这样一门实践性很强的课程, 仅靠布置作业和书面批改作业的方法来督促学生学习和了解学习情况是很不全面和客观的, 很难提高教学质量。第四、学生每次上机时缺乏明确的量化指标, 虽然教师事先也向学生布置应准备的内容, 但没有督促和检查, 完成完不成无所谓。上机情况与期末总成绩没有直接关系, 这常常导致学生上机前不充分准备, 上机过程中时间抓得不紧, 思想上没压力, 故而上机调试程序的能力提高不快。
三、实验教学探讨
作为高职院校的教师, 我们在教学过程中更注重职业岗位能力与职业技能的训练, 注重解决问题、分析问题和自学等能力的培养。在C语言实验课教学中, 主要是引导学生突破传统的思维方式, 培养学生读、写程序和调试程序的能力以及提高上机的学习兴趣和自主实验的方法技巧等。具体到实验课教学时, 重点注意好以下几点:
第一、加强机房管理, 端正学生的上机目的。在实验课上做好上机考勤、纪律情况记载, 记入期末成绩。
第二、要求学生在规定时间内独立完成一定数量的练习题、填写实验报告。老师根据每人完成练习题的数量、质量与时间, 现场打分并做为平时成绩, 影响该课程的总成绩。练习题可在上机之前提前告诉学生, 方便他们事先做好准备。这样一来即可有效地避免学生互相抄袭作业、不求甚解的弊端。
为此我们学校制定了统一的实验报告表, 便于实验报告的管理工作。
第三、教师在实验课的过程中加强对学生的辅导工作。在实验课的过程中, 教师可以首先分析该实验题目, 比如:表1中的题目, 就分别针对分支结构中的两分支结构和多分支结构进行了练习。然后再引导学生完成该实验报告。同时在布置实验报告题目时, 应注意题目的难度、题量等问题。
在实验课时, 教师还可以适当的改变教学方法, 比如:给出一程序段, 让学生找出程序段中的错误;还可以给出一程序段, 让学生完整填写程序。
例如:输入三个数a, b, c, 按照由小到大的顺序输出。
第四、实验课教师要当场检查程序。在实验课上, 任课教师一定要对学生的作业进行当场检查、提问, 只有这样才能杜绝学生去抄袭别人的, 就算抄来弄不明白也是白费心机。要想上机时顺利通过, 课堂上必须认真听讲, 记笔记。因此课堂教学时学生基本上没有迟到和无故缺的, 并且课堂上都能专心听讲, 记笔记, 课间10分钟还问个不停, 因为上机时就没有这么多时间详细问老师了。同时在实验课上, 老师还可以有针对性地个别辅导, 对比过去单纯的批改书面作业老师对学生成绩的评定也更客观, 同时也有效地避免学生互相抄袭作业、不求甚解的弊端。同时大家提问的积极性也充分调动起来了。
总之, 在实验课教学的过程中, 教师要尽心、尽责, 同时加强对学生的管理工作, 对每个同学严格要求, 同时在自己的教学方法和教学手段上下更多的功夫。
实践证明, 通过以上措施, 在C语言实验课上增加了学生的学习热情, 在一定程度上提高了学生程序的编写、调试能力, 对今后学习其他计算机课程打下了良好的基础。这些改革措施不但对学生提出了更严格的要求, 而且对任课教师的要求也提高了, 工作量也势必增加, 这就要求我们老师要比平常付出更多。当然, 这只是我对于C语言实验课教学的一点经验, 还希望得到进一度的完善和提高。
摘要:本文首先介绍了C语言实验课教学的重要性, 然后探讨了一些在C语言实验课教学中的方法, 最后总结了实验课教学的效果和体会。
关键词:C语言;实验;教学改革
作者简介:吕风杰(1973-),男,山东沾化人,滨州学院计算机科学技术系,讲师;马士明(1983-),男,山东滨州人,滨州学院计算机科学技术系,助教。(山东滨州256600)
基金项目:本文系滨州学院教学研究资助项目(项目编号:BZXYJYXM200737)的研究成果。
中图分类号:G642.423 文献标识码:A 文章编号:1007-0079(2012)10-0118-02
C语言以其结构化、灵活性好、可移植性强、效率高等优点被广大院校理工科专业选为程序设计的入门课程。[1]随着应用型人才培养改革的不断深入,学生培养目标和教育教学理念也不断更新,但自进入高校课堂20余年来,受传统应试教育的引导,大都将授课重点放在C语言的基本语法的理论讲授上,而实验教学大多用于C语言的语法规则的验证和说明,这种教学模式仅从语言的使用这个单一的角度进行教学而使得大多数学生在学完之后吃不透、用不活所学语言知识。面对这种形势,原先的实验教学计划已远不能满足要求,如何从培养学生能力的角度出发优化实验教学内容,使实验教学与理论教学形成一个目标明确、由浅入深、紧密联系的有机整体已成为当前C语言教学中的迫切性问题。本文从C语言的特点出发,对如何在当前课时、实验资源有限的情况下,通过实验教学促进、完善课堂教学效果,培养学生实践能力、创新能力和应用能力进行了深入的探讨与实践。
一、改革实验教学内容
在应用型人才培养模式下,实验教学的组织要兼顾实践性与创新性。我们在原有教学大纲的基础上,根据电子信息类专业的特点重新修订了实验大纲,教学内容中提高了设计性和综合性实验的比例。
1.改革实验内容组织结构
为了不影响专业教学计划,又能保证实验教学改革的顺利进行,我们结合理论教学进度,编写了相对开放的实验教学大纲和讲义,将实验分为基础性实验、设计性实验和综合性实验三个层次,又将每个层次的实验内容分为必做和选做两类,以供不同专业按要求进行灵活选择。根据理论教学进度安排基础性实验,让学生熟悉编程、调试环境,掌握基本指令并学会简单编程,加深对课堂理论教学内容的理解;在单元章节之后安排设计型实验,采用任务驱动教学法,验证性与应用性实验相结合,在完成基础性实验的基础上,逐步丰富功能要求,并要求学生在实验报告中加以总结归纳,培养学生的综合思维能力;综合型实验其实是一个开放性试验,安排于每个知识单元或模块(从知识的角度出发,独立于理论教材编排)完成之后,每一个项目只给出具体的功能及性能要求,对具体方法不作要求和指导,并将一个实验课题分为设计、调试、总结、改进等几个进程,先由学生根据题目要求完成功能设计并通过调试,再由教师根据学生的设计从功能及性能方面进行有针对性的分析讲解,进而提出设计建议,然后由学生完成设计改进并写出实验报告及分析总结,以达到实践性与创新性的同步提高。
2.创新实验内容
目前,高校教學过程中所用教材及参考书大都以普教为目标,极少有针对专业或行业的例题和习题出现,而各高校开设的C语言实验教学内容恰恰大多为所用教材或参考书的习题。这类经典习题专业针对性差,对学生来说缺乏趣味性,用以进行功能验证尚可,但对于能力提高或创新教育的确是勉为其难了。而且随着网络等学习资源的普及使得问题的解决极为简单,学生仅需上网搜索一下即可得到完整答案,于是实验课程就成了简单的验证,很难起到锻炼和提高的作用。
为此,我们专门针对电子信息类专业的特点精心设计了实验内容,基础性实验采用经典案例,针对性强,利于学生的入门学习;设计型和综合型实验尽量选择与学生专业相关的项目,如数字滤波的实现、数据分析与验证等。这样一方面能够贴近学生所学专业,使学生不但学会了C语言,而且使得C语言有了“用武之地”;另一方面,在实际学习过程中,能够将学过的其他专业知识融入进来,提高了学生的兴趣及学习积极性,对其他专业课程的学习以至学生的学习风貌与学习态度起到了积极的推动作用。
二、改革实验教学模式
随着各高校对高等教育应用型人才培养改革的不断深入,各专业的教学内容有了较大幅度的修改和增加,在实际教学安排中“C语言程序设计”的理论与实践课时都进行了一定程度的压缩,为保证实践教学效果,在组织教学时进行了一些改革。
1.推行任务推动教学
随着计算机技术的应用与发展,C语言作为各理工科专业的程序设计入门课程,其培养方向应该是掌握程序设计及调试的一般方法,所以在实验教学组织中应以程序设计为主线,有意识地淡化C语言本身语句、语法的介绍,并积极推行典型算法与案例教学相结合的方法,通过精心设计与编排,将复杂枯燥的语法知识分解到每个生动、有趣、实用的程序实例中,把软件工程学的思想贯穿于算法分析和程序设计的过程中。例如,在每个知识单元开始之前先提出一个典型问题,如“业绩提成计算”、“数据排序”等,从问题入手,然后循循善诱,通过任务的分解、解决、综合逐步加以解决,这样不但使学生在程序分析与解决中掌握了相关语法,而且程序设计和解决问题的能力也得到了极大的提高。[2-3]
2.突出结构化程序设计特点
结构化程序设计是C语言程序设计的一大特点,而在当前的教材中却极少涉及到相关的实例,从而使得结构化程序设计在C语言教学中成了一句实实在在的空话。有些学生平时学得很认真,对语法、语句等细节也很熟悉,但碰到稍微复杂一点的编程则无从下手。在教学中,教师应该将现代程序设计的相关理念传授给学生:一般来讲,一个较复杂的软件常可以按功能分割为若干个典型的小模块,每个小模块最终都成为功能单一、结构清晰、接口简单、容易理解和编写的小程序,而加工对象——“数据流”就是将这些模块串接起来的“主线”,只要让学生掌握了典型的算法就可将这些算法变成像搭积木一样组装成相应软件的算法。
如在学过数组部分后,教师给出一个由计时函数GetTickCount()、格式输出函数printf()函数、格式输入函数scanf()一起构成的能够测试人的反应时间的“反应计时器”函数。在此基础之上布置学生设计主函数和相关函数,通过调用“反应计时器”函数完成两个个体各一组样本的采集(如各采集并存储10个独立的反应时间),并计算各自平均值、标准差等指标;进而进行t检验,对个体差别进行分析验证。这样不但使学生学会了相应的算法实现,而且对结构化程序的灵活性和易于扩展等特点及工程应用中的程序设计方法有了较为深刻的理解,同时对工程数学中较为“死板”的统计与检验内容的实际应用有了一个感性的认识,达到了实践能力与创新能力共同提高的培养目标。
另外,在教学过程中,教师还应有意识地总结归纳一些典型算法,并作为验证型实验内容,要求学生熟练掌握,如累加、累乘、查找、排序等,在后续设计型和综合型实验中将相关内容加入,使得学生能够用会、用活,为以后的程序设计奠定基础。同时,典型算法的熟练掌握也可增加学生学习计算机语言的信心,并提高学习兴趣。[4]
3.充分利用多媒体及网络教学平台
多媒体课件具有演示直观、动态性强等特点,易于被学生所接受和理解,尤其对于实践教学,多媒体课件能够进行直观的演示与模拟,满足了实验教学的要求,把难以理解的内容或不容易观察到的事物用多媒体充分显示出来,调动学生的视觉直观功能,为突破难点创造出良好的氛围,有效地弥补传统教学的不足。
運用网络教学平台进行课后习题的布置与讨论,引导学生提出问题并找寻解决方案。一方面,充分节约了课堂教学时间,缓解了课时不足带来的影响;另一方面,能够将更多的学生吸引到问题的分析与讨论中,“讨论出真知”——相对课堂教学而言,网络讨论扩大了讨论的参与面,能够最大限度地穷尽并纠正学生在问题理解过程中可能出现的问题,极大地提高了学生的学习积极性与学习效果。
4.强化实验教学过程管理
C语言是一门实践性很强的课程,除了要把理论知识学好外,上机实践也是相当重要的一个关键环节。学习中存在的疑点或难点,学生可通过上机调试得到明确解答,同时也加深对学习内容的理解。对学生而言,在每一次的上机前应做好充分准备,编写好上机内容;对上机中出现的问题应能调试分析,编写实验报告,分析程序结果。学生只有反复上机操作才能对C语言有更深、更全面的认识和理解,逐步提高实际操作和学习的能力。对教师而言,应精心设计上机实验内容。设计上机内容时,尽量把所学的内容综合起来,达到知识的系统化。同时,也可布置一些趣味性较浓的内容,以提高学生的学习兴趣,变学生的被动学习为主动学习。另外,上机内容尽量结合学生专业,让学生觉得学有所用。
三、改革实验教学评价模式
注意综合素质的培养与评价,在“C语言程序设计”期末考核中采用实验与理论考核相结合、平时成绩与期终考核成绩相结合的综合考核评价方式,并采用实验教学成绩一票否决的形式,从而改变学生在以往课程学习中“重理论,轻实践”的思想,激发学生学习的积极性与自主性,尤其在创新性培养上。具体做法是摒弃原先那种以对错判分的一刀切的评价方式,在平时教学中对学生实验完成的成绩评判要采用个案分析的方法,在充分理解学生设计意图的基础上因势利导,对设计中的创新之处或闪光点要给予充分的肯定;对不足和错误之处要帮助学生仔细分析,然后由学生自己总结改正,以提高学生的自信心,保护其学习兴趣,最后根据学生的完成情况及钻研态度进行综合评判。
四、总结
任何一种程序设计语言都有其独有的语法特点,作为程序设计入门课程的“C语言程序设计”也不例外,但是,应该认识到在高校C语言教学中,学习语法不是学习程序设计语言的真正目的,而是应该在掌握语法的基础上,通过学习与实践,真正地学会使用C语言来解决各种实际问题,进而使学生掌握程序设计思想,真正成为学生进入程序设计领域的“敲门砖”、“导航灯”。通过对近两年的学生期终理论考试成绩对比分析发现,改革前后对于语法部分的得分率没有明显变化,而综合编程题的得分率比以前有了大约25%的提高,且学生学习的积极性比以前有较大的提高,课程结束后不少学生又通过计算机等级考试等各种形式进行了进一步的学习与提高,C语言实践教学改革取得了理想的效果。
参考文献:
[1]谭浩强.C程序设计[M].北京:清华大学出版社,2006.
[2]郑人杰,马素霞,殷人昆,等.软件工程概论[M].北京:机械工业出版社,2001.
[3]敖志广,吕振辽,高克宁.非计算机专业本科生C语言的教学实践[J].计算机教育,2007,(1):53-54.
[4]林向宝.C语言教学探讨[J].黑龙江交通科技,2007,(4):120-121.
(责任编辑:王祝萍)
实验名称 ____ C程序的运行环境和运行C程序的方法_学期日期
同组人李江涛指导老师_杨雪松___________成绩___________-------------------------
【实验目的】:
1.了解所用的计算机系统的基本操作方法,学会独立使用该系统
2.了解在该系统上如何编辑、编译、连接和运行一个C程序
3.通过运行简单的C程序,初步了解C源程序的特点
【实验原理及相关知识】:(此处请简短概述一下就可以)
【实验设备】:(正确填写每次实验所用的设备型号)
【实验内容】:(此外按实指导书的要求写自己设计的东西)
【实验过程】:
【实验总结】:(此处写实验完成情况及对相关结果的分析总结)
【实验心得及其他】:
请各位同学认真添写实验报告,不要抄袭,尽量用自己的语言,自己的想法完成实验及
(三)2012--2013学年第二学期
2012级专业:学号:姓名:………………………………………………………………………………………………
一、实验题目:循环结构程序设计
二、实验目的:(略)
三、实验内容
1.程序验证(略)
2.程序设计
1)找出100-900之间的无暇素数。所谓无暇素数是指本身为素数,且其逆序数也是素数的数。例如:113是一个素数,311也是一个素数,113就是无暇素数。源代码:
#include
#include
int fun(int x)
{
int k;
for(k=2;k<=sqrt(x);k++)
if(x%k==0)
return 0;return 1;}
main()
{
int i,count=0;
for(i=100;i<=900;i++)
{
int temp1=i%10;
int temp2=(i)/10%10;
int temp3=i/100;
int temp4=temp1*100+temp2*10+temp3;
if(fun(i)&&fun(temp4))
{
count++;
printf(“%d ”,i);
if(count%9==0)
printf(“n”);
}
}
printf(“n”);return 0;
}
运行结果101 107 113 131 149 151 157 167 179181 191 199 311 313 337 347 353 359
373 383 389 701 709 727 733 739 743
751 757 761 769 787 797
Press any key to continue
2)编程:用迭代法求某数a的平方根。平方根的迭代公式如下:xn+1=(xn+a/xn)/2;设x0=a/2;
当迭代相邻两项差的绝对值小于10-5时,迭代结束。
源代码:
#include
#include
void main()
{
float a,x0,x1;
printf(“Input a number:”);
scanf(“%f”,&a);
if(a<0)
printf(“Error!n”);
else
{
x0=a/2;
x1=(x0+a/x0)/2;
do
{
x0=x1;
x1=(x0+a/x0)/2;
}
while(fabs(x0-x1)>1e-6);
printf(“sqrt(%f)=%fn”,a,x1);
}
}
运行结果:
《C语言程序设计》是计算机专业中一门重要的基础课程。该课程不仅要求学生掌握一门高级程序设计语言, 更重更的是学习程序设计的思想, 培养学生良好的程序设计风格和思维方式[2], 它又是一门实用性很强的语言, 切实加强实践教学环节, 重视对学生自主学习、研究能力和创新能力的培养, 对于提高C语言程序设计课程的教学质量具有重要的意义。基于此实验教学是该课程不可缺少的重要组成部分。探索对实验教学的改革, 对提高该课程的教学质量有着重要的作用。但笔者在多年的教学中却发现一些学生对实验兴趣不大。上机时无所事事或玩游戏, 不但浪费了自己的时间, 还影响其他同学。因此现有的教学模式改革事在必行。
2、存在的问题
2.1 实验课程与理论课程时间配置不合理[1]。
在C语言的教学中, 实验时间约占三分之一左右。首先, 较少的实验时间, 让学生无法熟练掌握当前练习内容, 影响后面实验的进行。其次, 实验课时少导致了理论教学与实践教学内容安排的不同步。比如理论教学在讲数组, 却在做循环结构的实验。知识的不同步, 对于学生的学习, 势必会造成一定的影响, 不利于学生及时掌握所学的知识, 甚至会造成知识混淆的现象。
2.2 实验教材与教学资料有待完善[4]。
课程采用的实验教材与习题集合二为一的, 每一个实验题目都能在本书中找到答案, 学生只要把源程序输入计算机, 进行简单的调试就可以得到实验结果, 用不着去查找资料、思考和创新, 编译出错时不是根据错误提示查找原因, 而是与书上的程序进行比对, 改正录入错误。这样不利于培养学生发现问题、分析问题、解决问题的研究能力和创新能力。
2.3 实验教学条件落后, 学生的问题不能及时得到解决[1]。
由于扩招。为了充分利用有限的教学资源, 理论课实验课都是采用合班教学这种形式。一个实验室只有一个教师, 程序调试出现错误的学生同时有多个, 教师不可能及时解答每个学生提出的问题, 就会导致部分学生不能继续往下调试而出现厌学、害怕的情绪, 进而不调试程序而去玩游戏或做一些与程序调试无关的事情。
2.4 考试形式单一, 实践考核缺乏。
传统的语言程序设计的考试考核要求简单, 考试形式单一, 以期末笔试为主;平时成绩主要侧重于考勤、作业、实验报告。在课程成绩中比例远小于期末理论考。不重视上机实践能力的现场考核, 只偏重于理论考试, 这也导致了学生本身对于上机实践的不重视。
3、试验教学改革
C语言程序设计实验教学方法的改革措施实验性教学是C语言程序设计教学的重要环节, 是学好C语言程序设计关键。目的是通过上机实验, 让学生多动手、多动脑, 使学生在实验中提高分析问题、思考问题和解决问题的能力, 进而达到掌握理论知识, 提高操作和编程的能力。具体措施总结如下:
3.1 制定实验计划, 编写实验指导材料
根据C语言程序设计教学大纲和实验大纲的要求, 制定详细的、规范的实验计划, 编写实验指导材料, 提出实验要求, 以及要达到的目的。在制定实验项目时, 明确规定哪些实验是学生必须做的, 哪些实验是学生可以选做的, 甚至可以留有余地, 让学生在某些指定的框架下自己制定实验。同时, 在实验的编排上, 注意验证性、设计性和综合性实验的比例, 一般是在保证验证原理, 加深对理论知识的理解和进行基本技能、方法、能力等训练的基础上, 对验证性实验进行精选、合并, 减少验证性实验项目, 增加设计性和综合性实验项目。
3.2 精心选择试验项目, 激发学生的学习兴趣[3]
托尔斯泰曾经说过:"成功的教学, 所需的不是强制, 而是激发学生的学习兴趣"。同学们有了学习的兴趣, 才有学习的动力.而C语言程序设计是一门理论性较强的课程, 知识点较多、涉及面较广, 对于刚开始学习的学生来说, 常会感到内容枯燥难学, 产生畏难情绪, 导致理论知识掌握不好, 而影响了上机实验。因此, 为了激发学生的学习兴趣, 寓学于"乐", 在C语言程序设计实验教学过程中选择实验例子时, 不妨多选择一些具有趣味性的例子, 如:"水仙花数"、"百钱买百鸡", "三角形的面积"、"爱因斯坦阶梯"等有趣或经典的问题, 这些充满乐趣的问题, 有利于学生轻松愉快地学习, 积极主动地思考, 而且学过以后也不易忘记。
3.3 充分利用网络资源, 提高教学效率
在实验教学中充分利用网络资源, 这也是与以往教学相区别的重要地方。首先, 机房实验室里安装了网络教室软件, 配置了教师机, 上课时老师布置本次试验内容, 让同学自己练习10分钟, 然后所有的学生通过网络将抽出的作业拷贝到自己的计算机上, 随机抽出一个学生的作业作为示例, 由教师在自己的计算机上边调试边讲解, 学生边看投影屏幕及教师的讲解边操作计算机;每次实验课结束, 通过网络教室把实验中出现比较普遍的问题集中讲解, 因为每一个学生都已亲自动手调试过程序, 那么教师对该问题给出的提示讲解就会使学生能关注且记忆深刻。这样让学生及时了解自己学习中的问题以便避免或是改正。其次, 实验室提供了专为学生使用的FTP服务器, 每个班级具有合理的空间上课, 每次学生登录到自己班级里查看该次实验要求, 按时完成实验, 并把实验结果以文件的形式上传到自己班级文件夹下, 以供课后教师检查。
3.4 设计综合性的实验, 提高学生编程能力
"纸上得来终觉浅, 绝知此事要躬行"。只有亲自动手、亲自实践, 才能真正体会到语言编程的乐趣。这里的实验, 并不仅仅是每节课结束后的上机练习, 而是要通过课程设计, 来进一步加深对语言编程的理解, 这将有利于培养学生的创造思维、独立分析问题和解决问题的能力以及培养学生实际编程的能力。为此, 每学期末, 安排这门课程的课程设计, 以学生最为熟悉的"学生成绩管理系统"为例, 要求建立班级课程的成绩输入输出函数;使用结构体数组来存储和处理学生的信息;利用单链表动态管理学生的成绩;利用文件操作完成学生成绩管理。这样通过课程设计, 把我们C语言中的函数, 数组、结构体、指针, 文件一个个的知识电形成一个有机的整体。让学生并通过上机进行综合调试, 达到提高编程能力的目的。
3.5 改进试验考核方法
一是提高课程成绩中实验成绩所占比例, 让其成为课程成绩评定的重要组成部分.二是改变实验成绩的评定方式。为了全面反映学生各种能力, 我们要制定合理的实验成绩综合评估办法, 既要考虑学生实验出勤率和实验操作能力, 以及实验完成情况和结果的正确性, 还要考核学生综合知识运用能力、实际编程能力和实际操作能力。因此试验成绩的制定采用各实验项目的考核成绩加权平均, 其中实验预习和考勤占10%, 实验报告占30%, 实验现场考试占40%, 期末课程设计占20%。使用这样的考核方法后, 既调动了学生学习的积极性、提高了他们对实验的重视程度, 又保证了成绩评定的客观和公正性。
4. 结束语
以上所述, 只是笔者多年在《C语言程序设计》实验教学方法改革过程中的一点体会, 实际上在《C语言程序设计》实验教学方法改革与创新过程中要注意的问题还有很多, 但只要勇于探索, 善于总结, 就一定可以不断完善实验教学模式, 使学生通过本门实验课程的学习很好地培养编程能力和程序设计思维能力, 真正实现在实验教学中培养学生分析问题与解决问题的能力、独立自主的能力、合作与交流的能力、改革与创新的能力.
摘要:本文分析了C语言程序设计实验教学存在的问题, 探讨C语言实验教学方式方法的改进, 并从实验教学内容、教学方法、教材建设和实验考核等方面提出了相应的改革措施。
关键词:C程序设计,实验教学,改革
参考文献
[1]曹红.C程序设计试验教学改革探讨[J].科技广场, 2007, (04) :152-153
[2]邓维斌, 周玉敏.提高C语言实验教学效果的探索[J].实验室研究与探索, 2006, 25 (3) :359-361.
[3]陈世基.C语言程序设计实验教学方法的改革与创新[J].福建电脑, 2007, (06) :207.
许多院校的专业开设了C语言课程,将其作为学生学习程序设计技术的入门课程,这与C语言的特点是分不开的。C语言不但可以编写系统软件,而且可以根据用户的需要编写出满足用户要求的应用软件,尤其是C语言具有很好的对计算机的硬件编程能力。同时,C语言具有逻辑性强、处理问题周密、严谨的特点,是集知识和技能于一体,实践性很强的课程。学生通过学习C语言可掌握程序设计的一些基本方法和技巧。然而C语言的数据类型较多、表达式丰富、语法结构较复杂,使它成为一门教师难教、学生难学的课程。因此,在重视理论教学的同时,必须加强实验环节。只有上机实践才能正真学会如何编写程序和调试程序,体会到“优化”程序;也只有通过上机实践才能更好地掌握程序设计的理论知识。然而,在C语言实验课中,我这两年的教学观察中发现普遍存在以下几个问题:
第一,学生没有明确的实验目标,实验兴趣不大。上机时一些学生无所事事或玩游戏,不但害了自己,还影响其他同学。第二,现有教材中上机实验都立足于C语言本身的一些语言规则,和实际开发脱节,没有较容易理解和生动有趣的范例,比较死板、枯燥。第三、现有实验大多注重语句、语法等,没有把编程解题思路和程序测试等放在首位,对学生分析问题和解决问题的能力训练不够。
二、实验教学探讨
我在教学的过程中,职借鉴职业技术学院的职业性教学的经验,注重职业岗位能力与职业技能的训练,注重解决问题、分析问题和自学等能力的培养。在C语言实验上机课中,主要是引导学生突破传统的思维方式,培养学生读、写程序和调试程序的能力以及提高上机的学习兴趣和自主实验的方法技巧等。
1、简化入门实验,提高学生实验兴趣 学生大多已习惯于计算机的图形操作界面,且基础比较薄弱,动手能力相对也差,加上或多或少的惰性,而开始学习C语言后,突然进入的是一个纯英文的界面和纯键盘操作,这种反差很大。为减轻学生畏惧压力,让学生容易上手,可简化C语言的入门实验操作:(1)在桌面上创建TC的快捷方式,双击后可直接进入TC编辑环境。(2)在编辑、编译、连接及运行C语言程序时,教学生直接按F2键进行存盘操作,Ctrl+F9运行程序,Alt+F5看到运行结果。而没必要让学生先认识TC的菜单中每个英文单词的意义等,将TC环境的细节认识和程序的编译、连接等单步操作留到后面实验中逐步了解。学生一上机就能体会到成功,并利用发音和动画程序引起学生的兴趣。
2、设计针对性的实验 设计一些学生们比较感兴趣的编程题目,加强学生对程序错误的诊察和校正能力、测试关系和逻辑表达式的能力、程序代码优化能力等方面的培养。从输入输出语句上机开始,我有意设计了相应的上机实验。如在选择结构中,设计如下过程:
(1)实验内容和步骤:①例:有如下程序段(让学生填写成完整的程序):
if(a>b)scanf(“%d”,&x);
else scanf(“%d”,&x);
为了更容易看明白程序的逻辑结构,用流程图来加以描述。要求增加一些输入语句和输出语句,以便使上述程序段能在不同a,b和x值下运行,并且能观察程序流程经过(覆盖)了哪些语句、哪些分支及哪些路径。
②实验步骤:记下分别使用下列各组数据运行时的操作流程。
⑴a=1,b=1,x=1;
⑵a=1,b=1,x=2;
⑶a=3,b=0,x=1;
⑷a=2,b=0,x=4;
⑸a=2,b=1,x=1;
⑹a=1,b=0,x=2;
⑺a=2,b=1,x=1;
⑻a=3,b=0,x=2;
(2)分析讨论:①用哪一组数据就可以使程序段中的每个处理语句都执行一次?为了找出程序中2各条处理语句中的错误,应该使用什么样的数据对程序进行测试?请上机验证自己的结论。②用哪两组数据就可以使程序段中的每个分支都至少运行一次?这种情形与上面的讨论有何不同?如果为了找出程序中各分支中的错误,应该使用什么样的数据对程序进行测试?请上机验证自己的结论。③用哪两组数据就可以把判定框中的每个条件都运算一次?如果为了测试出判定条件中的错误,应使用哪些数据对程序进行测试?请上机验证自己的结论。④用哪四组数据才可以把各种条件的组合都检测一遍?如果为了测试各种条件组合的情形,应该使用什么样的测试数据?请上机验证自己的结论。⑤用哪四组数据才可以把从起始到终止的各条路径都覆盖一次?如果为了测试出程序在不同路径下的错误,应该使用什么样的测试数据?请上机验证自己的结论。
(3)进一步的实验:①从键盘输入三个数,代表三条线段的长度。请写一个判定这三条线段所组成的三角形属于什么类型(不等边、等腰、等边或不能构成三角形)的C程序。②请分别设计下列数据对自己的程序进行测试。
A.找出各条语句中的错误。
B.找出各分支中的错误。
C.找出各条件中的错误。
D.找出各种条件组合中的错误。
E.找出各条路径中的错误。
而在循环语句上机中,对学生进行代码优化训练,让学生学会删除多余运算、代码外提、强度削弱、变换循环控制条件等代码优化手段。通过这些上机实践,学生大致知道一些软件测试、程序优化知识,提高了学生上机的积极性,使学生从上机就是检验书本例题、习题中解脱出来。
3、设计综合性的实验 以往大多数学生在学完C语言后,普遍反映看得清程序的设计代码意义,但遇到实际问题就无从下手。这主要是教材上缺少实际意义的题目,为此,一定要设计短期上机实验任务与长期任务结合的上机内容。以一个大题目作为长期任务,再按不同功能模块分解开来,形成一个个短期任务。每一章学过之后要求完成一项或几项编程作业,而各章的编程作业不是孤立的,而是相互联系的,实际上它们都是一个较大型较复杂程序的组成部分。这样就可以使学生的任务形成一种连贯性,在整个学科的学习过程中始终都有一个总任务的驱动,而学生又在一个又一个短期任务的驱动下,体验着一次又一次迈向成功的喜悦。
例如,以“学生成绩管理系统”为课程设计的长期任务,从常用输入/输出语句printf和scanf开始,让学生编写主函数并在主函数中调用若干个空函数形成一个文本型菜单的雏形;学习常用数据类型后,再编写一个验证密码输入的函数;选择结构后,要求编写一个菜单选取函数;循环控制和数组后,要求建立班级课程的成绩输入输出函数;学完结构体类型后,要求使用结构体数组来存储和处理学生的信息;学习链表后,要求利用单链表动态管理学生的成绩;最后在“文件”这一章,要求利用文件操作完成学生成绩管理。当学完整个课程,完成了平时要求的各项编程作业之后,就会发现,原来自己完成的远不是一个一个零碎的程序段,而是在一块一块制作程序的各个部件,只要通过简单的程序拼装,就可以构成一个比较复杂的程序。这也在潜移默化中培养了学生采用各个击破的方法解决实际问题的意识。最后,学生从整体的角度来审视整个程序的设计,并通过上机进行综合调试,达到提高编程能力的目的。
4、采用协作方式的实验组织形式 协作学习由David W. 和Roger R. Jonson教授提出,是学生以小组形式参与、为达到共同的学习目标、在一定的激励机制下最大化个人和他人习得成果,而合作互助的一切相关行为。
采用这种形式在上机过程中,学生之间为了达到小组学习目标,个体之间可以采用对话、商讨、争论等形式对问题进行充分论证,以期获得达到学习目标的最佳途径。学生学习中的协作活动有利于发展学生个体的思维能力,增强学生个体之间的沟通能力以及对学生个体之间差异的包容能力。此外,协作学习对提高学生的学习业绩、形成学生的批判性思维与创新性思维、对待学习内容与学校的乐观态度、小组个体之间及其与社会成员的交流沟通能力、自尊心与个体间相互尊重关系的处理等都有明显的积极作用。
在尊重学生个体差异和一人一机基础上,利用局域网,将学生分成小组进行协作实验;将实验心得体会、结论等在网上共享。改变以前那种各自为阵,互不往来的实验组织方式。
三、结束语
班级:机械09-2学号: 0901010205姓名:某某某
一实验目的和要点(简单描述实验目的和知识要点)
定义变量、变量赋值、符号常量、使用算数运算符、转换规则、赋值语句
二 实验范例阅读(写出预测的范例程序运行结果,上机验证)
范例1 运行结果:
xxxxxxx …….范例2运行结果:
xxxxxxx …….范例3运行结果:
xxxxxxx …….三 实验练习程序设计(写出程序代码)
练习3(4)、4
题目一 程序代码
#include
……………
题目二 程序代码
#include
……………
实验一:C语言程序调试基础
一、实验目的
1.掌握C语言源程序的编写方法和调试方法
2.学会使用VC6开发工具及调试过程的查错纠错能力。
二、任务
调试课本例子:例2.19、例3.5、例5.9
三、实验过程及结果
1.鼠标左键双击VC,打开程序;单击打开的New的页面中,单击
键,选择键,选择,在新,最后单击键,就可以建立一个新的页面。
2.在界面中输入例2.19的内容,单击
键进行调试,底下的对话框出现
一句话时,说明我们编写的程序无错,就可以单击键,来运行程序。运行结果及编写程序内容如图:
4.关闭这两个窗口,再单击
实验二:顺序程序设计
一、实验目的:
1.掌握顺序程序的设计方法;
键,选择
;
2.掌握输入输出控制语句。
二、实验任务与要求
1.第3章课后习题T2 2.第3章课后习题T7
三、实验过程及结果
实验三:分支程序设计
一、目的
1.掌握分支程序控制语句的语法格式及纷争程序设计方法。2.了解分支程序的条件表达式及运算规则; 3.掌握分支程序控制语句的嵌套使用方法。
二、任务
1.第4章课后习题T6 2.第4章课后习题T8 3.第4章课后习题T12
三、实验过程及结果
实验四:循环程序设计
一、目的
1.掌握循环程序的控制语句的语法规则;
2.掌握循环程序的编写方法;
3.掌握循环程序的嵌套与退出控制方法。
二、任务
1.求100~200间的全部素数。2.第5章课后习题T8 3.第5章课后习题T10
三、实验过程及结果
实验五:数组
一、目的
1.掌握数组的定义及使用方法 2.掌握字符数组的相关操作函数。
二、任务
1.用数组求Fibonacci数列的钱40项,每5个一行。2.将一个3行8列的数组A转置为数组B。3.已知字符串str1=”abcde”,str2=”hijklm”,比阿尼写程序分别实现str1与str2的连接、求长度、比较等操作。
三、实验过程及结果
实验六:函数
一、目的
1.掌握函数的定义与调用方法。2.掌握函数参数的专递方式。
3.掌握函数的嵌套调用和递归调用方法。
二、任务
1.编写一函数,用冒泡排序法实现对数组A的排序。2.编写一函数,用选择排序法实现对数组A的排序。3.编写一函数,实现对给定年year是不是闰年。4.编写一函数,实现对给定整数m是不是素数。
5.利用递归算法,编写一函数,求Fibonacci数列的第n项。
三、实验过程及结果
实验七:变量作用域
一、目的
1.了解变量的存储类型及生命周期、作用域的性质。2.准确使用局部变量和全局变量。
二、任务
1.根据变量作用域知识,分析下列程序的运行效果。2.调试程序,分析个变量的作用范围和生命期。
#include
Printf(“i=%dn”,i);
int i=40;
printf(“i=%dn”,i);
fun1();
fun1();}
三、实验过程及结果
实验八:结构体
一、目的
1.掌握结构体的定义方法和使用。
二、任务
定义一日期(年、月、日)结构体,编程实现日期的输入、日期的输出、日期加上一个整型天数、两个日期数据相减等功能。
1 C 语言程序设计实验课程存在的问题
C语言程序设计是学生接触到的第一门计算机语言,该门课程概念语法繁多,语句使用比较多样化,对于很多初学者而言,学到课程相对比较难的内容时,学习就会感到吃力,导致学生的学习兴趣慢慢减弱,遇到的问题主要有以下几个原因 :1) 实验课时间相对较少。在C语言的教学中,理论课的时间占整个课程的大部分,实验的时间相对较少,很多学生在实验课堂上无法按时完成当次的任务,长期以往,学生的自信心就逐渐下降,从而削减了对该课程学习积极性,甚至有小部分学生完全放弃学习该门课程。2) 考核方式有弊端。以往采用闭卷笔试的方式进行考核,这样的考核方式会造成学生部不重视上机实践环节,导致学生动手实践能力方面欠缺,同时学生分析问题能力和编程实现解决问题的能力也没有真正得到培养。3) 实验教学方式老套。传统的实验教学方法只是要求学生按照实验教材上把源程序输入到计算机,进行简单的调试,然后得到结果,或者让学生读程序改错调试正确的结果,这种教学方式缺乏自主思考分析问题的能力,更不要说创新能力,因些当布置一些实验指导书以外的问题,或者在原来的问题上扩展后,很多学生就完全编不出程序,不知该如何下手。
2 实验教学改革与实践
鉴于以上实验教学存在的问题,我们对其教学方法方式提出几点改进的方案,具体体现有以下几个方面 :
1) 加大实践教学环节 :将理论课和实验课学时的分配比例定为1 :1,学生可以有比较充分的时间进行大量的编程训练与练习,这样不但能促进学生在实践中对理论知识的理解和掌握,同时学生逐步理解和掌握程序设计的思想和方法,分析问题和动手实践能力逐渐得到培养,从而增加学生学习的自信心,激发学生学习该课程的浓厚兴趣。
2) 改变考核方式 :采取形成性考核方式进行,由形成性考核的各项过程成绩组成,分数比例为 :总评成绩 = 平时学习表现(10%)+ 作业(10%)+ 实训项目及课程设计(30%)+ 期末考试成绩(50% )。期末考试采用机上考试的方式,机考系统是我们学院自己研制开发的考试系统,允许学生借助于C编译系统调试程序。将实验课程设计和上机考试有机地结合在一起,更加强调对学生实际编程能力和程序调试能力的测试,同时也增加了学生对实践教学环节的重视。
3) 教学方法、方式改革 :1. 分阶段教学,第一阶段,学生刚接触C语言程序设计这门课程,该阶段只安排基础性实验教学,读简单程序和基本调试程序方法,并纠正程序中的错误,这些错误是初学者常犯易犯的错误,通过改错,让学生不仅掌握理解C语言的概念和语法,而且避免学生在以后编写程序时犯同样的错误 ;第二阶段模仿改写程序,给学生分析理解程序,然后对问题进行扩展,要求学生在此基础上对程序进行改写,使得学生能够完成部分编程,独立编写程序打下基础 ;第三阶段编程能力,培养学生独立分析问题能力和程序设计的基本能力,以达到解决实际问题的能力。经过“模仿—改写编写”的实教学过程,逐步引导学生理解和掌握程序设计的思想和方法。2. 案例教学法,贯彻从实践中来到实践中去的原则,以问题和实例引入内容,循序渐进地引导学生,让学生带着问题去听课,在教学中重点讲解程序设计的思想和方法,培养学生分析问题和算法设计的能力。3. 设计综合性实验项目,学生具有初步的独立编写程序能力了,可以通过布置一些综合设计实验项目,加深学生对语言编程的理解,进一步提高他们的编程能力。比如 :学生成绩管理系统,个人理财管理系统等类型的综合性实训项目,以分组的形式参与到项目中,以5个学生为一组,在学期末,对每一小组以答辩的形式进行考核,让每个小组的成员对自己在项目中所做的模块进行陈述,这样使得每个成员都参与到项目中,真正动手独立完成项目,学生的创造性思维,独立分析问题和解决问题的能力进一步得到提升,同时学生的团队合作精神也得到培养。4. 搭建网络教学平台,给在课外自主学习的学生提供一个学习平台,学生可以利用平台上的教学资源进行自主学习,这些资源包括教学资源、实验题目、综合实训项目、经典编程、网络答疑,教学录像、在线测试等,也可以通过平台上的留言板与老师和同学进行交流,拓宽了课程的教学空间。
3 结束语
实践教学是提高学生实践动手能力和培养学生是研究能力创新能力的重要教学环节,在实践中表明,对实践教学的方法,内容,考核方式等进行改进有助于提高学生学习的积极性和主动性,同时学生的编程能力和综合实践能力得到了很大的提高,在实际教学过程中得到较好的教学效果。
摘要:针对《C语言程序设计》实验教学环节中存在的一些问题,从激发学生的学习积极性,培养学生的编程能力和分析解决问题能力为出发点,提出几点改进C语言程序设计实验教学方式和方法的建议,包括采用更科学和完善的考核方式,多样化的设计、综合性实训项目的实验法等。实践表明,这些方法的改进在教学中能够取得较好的效果。
贺秀山
在科技高度发展的今天,计算机在人们之中的作用越来越突出。而c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。
上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。
学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。因为学时所限,课程不能安排过多的统一上机实验,所以学生有效地利用课程上机实验的机会,尽快掌握用c语言设计简单程序的能力,为今后的继续学习打下一个良好的基础。课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:
1.加深对课堂讲授内容的理解
课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。然而要使用c语言这个工具解决实际问题,又必须掌握它。通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。
学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。即把c语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确地解题。
通过上机实验来验证自己编制的程序是否正确,恐怕是大多数同学在完成老师作业时的心态。但是在程序设计领域里这是一定要克服的传统的、错误的想法。因为在这种思想支配下,可能你会想办法去“掩盖”程序中的错误,而不是尽可能多地发现程序中存在的问题。自己编好程序上机调试运行时,可能有很多你想不到的情况发生,通过解决这些问题,可以逐步提高自己对c语言的理解和程序开发能力。
2.熟悉程序开发环境、学习计算机系统的操作方法
一个c语言程序从编辑、编译、连接到运行,都要在一定的外部操作环境下才能进行。所谓“环境”就是所用的计算机系统硬件、软件条件,只有学会使用这些环境,才能进行程序开发工作。通过上机实验,熟练地掌握c语言开发环境,为以后真正编写计算机程序解决实际问题打下基础。同时,在今后遇到其它开发环境时就会触类旁通,很快掌握新系统的使用。
3.学习上机调试程序
完成程序的编写,决不意味着万事大吉。你认为万无一失的程序,实际上机运行时可能不断出现麻烦。如编译程序检测出一大堆错误。有时程序本身不存在语法错误,也能够顺利运行,但是运行结果显然是错误的。开发环境所提供的编译系统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。程序的调试是一个技巧性很强的工作,对于初学者来说,尽快掌握程序调试方法是非常重要的。
通过一个学期的C语言上机实践学习,我们了解了一些关于c语言的知识,理解巩固了我们c语言的理论知识,经过上机操作,我们也了解了一个程序的编辑、编译、调试的全过程,学会编写一些简单的程序,这对我们今后的学习将会有莫大的帮助。
【C语言实验报告模版】推荐阅读:
c语言实验报告总结07-13
c语言实验报告函数11-29
c语言课内实验报告四09-13
进程管理实验c语言版10-26
c语言程序设计实验11-19
c实验报告整理12-02
C语言图形程序设计报告10-13
c语言总结07-15
c语言课程12-13
c语言概念题09-22