c语言课程实践

2025-03-01 版权声明 我要投稿

c语言课程实践(精选8篇)

c语言课程实践 篇1

1.程序源代码

程序1 编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,则计算机给出提示“Right!”,否则提示“Wrong!”,并告诉人所猜的数是大还是小,然后结束游戏。要求每次运行程序时机器所“想”的数不能都一样。#include #include #include void main(){

int input_number;

int random_number;srand((unsigned)time(NULL));random_number = rand()%100+1;printf(“输入您想猜的0~100之间的数:”);scanf(“%d”,&input_number);if(input_number >= 0 && input_number <= 100){

if(input_number == random_number)

{

printf(“nright!”);

}

else if(input_number > random_number)

{

printf(“n您猜的数过大n”);

}

else

{

printf(“n您猜的数过小n”);

} }

else

{

printf(“n您猜的数应在0~100之间”);} } 程序2 编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,则结束游戏,并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平;否则计算机给出提示,告诉人所猜的数是太大还是太小,直到人猜对为止。#include #include #include void main(){

int input_number;

int random_number;int n;srand((unsigned)time(NULL));random_number = rand()%100+1;for(n=1;;n++){

printf(“输入您想猜的0~100之间的数:”);scanf(“%d”,&input_number);if(input_number >= 0 && input_number <= 100)

if(input_number == random_number)

{

printf(“nright!n”);

if(n==1)

{

printf(“n您猜了%d次,太牛逼了.n”,n);break;

}

else if(n>1&&n<6)

{

printf(“n您一共猜了%d次,水平还行.n”,n);break;

}

else

{

printf(“n您一共猜了%d次,才猜对,很勉强啊.n”,n);break;

}

}

else if(input_number > random_number)

printf(“n您猜的数过大n”);

else

printf(“n您猜的数过小n”);

else

printf(“n您猜的数应在0~100之间”);} } 程序3 编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,则结束游戏,并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平;否则计算机给出提示,告诉人所猜的数是太大还是太小,最多可以猜10次,如果猜了10次仍未猜中的话,结束游戏。

#include #include #include void main(){

int input_number;

int random_number;int n;srand((unsigned)time(NULL));random_number = rand()%100+1;for(n=1;n<=10;n++){

printf(“输入您想猜的0~100之间的数:”);scanf(“%d”,&input_number);if(input_number >= 0 && input_number <= 100)

if(input_number == random_number)

{

printf(“nright!n”);

if(n==1)

{

printf(“n您猜了%d次,太牛逼了.n”,n);break;

}

else if(n>1&&n<6)

{

printf(“n您一共猜了%d次,水平还行.n”,n);break;

}

else

{

printf(“n您一共猜了%d次,才猜对,很勉强啊.n”,n);break;

}

}

else if(input_number > random_number)

printf(“n您猜的数过大,您还有%d次机会n”,10-n);

else

printf(“n您猜的数过小,您还有%d次机会n”,10-n);

else

printf(“n您猜的数应在0~100之间”);} if(n==11)

printf(“n你输了!n”);}

程序4 编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平,则结束游戏;否则计算机给出提示,告诉人所猜的数是太大还是太小,最多可以猜10次,如果猜了10次仍未猜中的话,则停止本次猜数,然后继续猜下一个数。每次运行程序可以反复猜多个数,直到操作者想停止时才结束。#include #include #include void main(){

int input_number;

int random_number;int n,i=1;

game: srand((unsigned)time(NULL));random_number = rand()%100+1;for(n=1;n<=10;n++){

printf(“第%d轮游戏,输入您想猜的0~100之间的数:”,i);scanf(“%d”,&input_number);if(input_number >= 0 && input_number <= 100)

if(input_number == random_number)

{

printf(“nright!n”);

if(n==1)

{

printf(“n您猜了%d次,太牛逼了.n”,n);break;

}

else if(n>1&&n<6)

{

printf(“n您一共猜了%d次,水平还行.n”,n);break;

}

else

{

printf(“n您一共猜了%d次,才猜对,很勉强啊.n”,n);break;

}

}

else if(input_number > random_number)

printf(“n您猜的数过大,您还有%d次机会n”,10-n);

else

printf(“n您猜的数过小,您还有%d次机会n”,10-n);

else

printf(“n您猜的数应在0~100之间”);}

} if(n==11){ printf(“n你输了!n”);i=i+1;goto game;} 2.遇到的问题及解决方法

问题1:随机数如何调用?

解决方法:运用srand((unsigned)time(NULL))函数。

问题2:”直到人猜对为止”功能如何实现? 解决办法:运用一个“无穷循环”,另游戏能够不断进行,并运用break语句停止于猜对情况。

问题3: “以此来反映猜数者“猜”的水平”功能的实现?

解决办法:在猜对情况下的if语句中嵌套if语句实现“猜数次数”的判断,分支输出“猜”的水平。

问题4:“每次运行程序可以反复猜多个数”功能的实现?

解决办法:此功能比较困难,但反复阅读程序后,发现代码并不复杂,运用goto语句和if语句的运用进行循环,即可实现此功能,且不会因为运用goto语句造成程序模块的混乱。

3.总结(心得体会)

这是“C语言课程实践”的第一次实践,由于平时并没接触过Microsoft Visual C++ 6.0这个编译软件,因此刚开始还存在操作方面的苦难。经过一两节课的实践,能够熟悉界面和学会新建工程。

此次实践题目是“猜数游戏”,题目分成4个部分,其实内容相同,只是功能逐渐增加。鉴于这种题目,编写程序中需要思考预留部分,比如运用if语句嵌套时,要注意把“猜对”、“猜错”和“误猜”分支出来,使程序容易阅读也容易进行修改。

在编写程序过程中,遇到几个核心问题,通过学习后把困难一个个突破,并成功实现题目所要求的功能。

c语言课程实践 篇2

针对以上情况,应用现代教育技术,改革传统教学方法,提高教育教学质量,已成为高校生存发展的共识,而在教学方法和手段中,课程的考核模式是重中之重。尤其是对于像计算机这样实践性比较强的软件开发性课程,考核模式至关重要。

1 传统考核方式的弊端

考试是评价教学的一种重要手段,目的是检测学生各方面的学习效果,突出检验学生应用知识解决问题的能力。

1.1 考试方式注重笔试、轻实践

目前大部分院校课程主要是采取终结式考核,即教师出各种题型的试题,学生在规定时间内闭卷笔试,教师按标准答案进行阅卷,给出学生的期末考试成绩,结合学生平时成绩,做出学生该门课程的期末总评成绩。对于像C语言程序设计这样操作性比较强的软件开发设计的课程若再继续采用此方式,那么学生的学习重点就是去背所谓的一些程序的算法,而不去花时间上机练习,这样就远离计算机这个专业培养学生的目标了。

1.2 课程考核方式出发点忽视用人单位意愿

在传统的课程考核中,仅由就读的院校对学生各门课程的学习情况给予评定,而学生学习结束后是面向社会、面向用人单位的;因此,随着人才培养模式的改革,现有行使课程考核权利的主体是不是也应该包括用人单位这一重要组成部分。

1.3 缺乏考试的反馈机制

由于考试是期末一次性终结考试,学生考试结束就意味着本门课程学习的终结。考试中存在的问题教师不能与学生进行反馈与交流。这样的考试模式有可能将学生引向一种僵化、死板的学习轨道。

上面这三点弊端足以说明了传统的考试仅仅是对学生知识点的考核,应用能力、分析与解决问题能力的培养仍得不到验证。遇到实际软件开发项目,不知如何运用所学的知识,导致学生为考试而学,教师为考试而教。

2 考核模式的研究

做为教育工作者,必须运用信息技术手段,在实践中探索具有创新性的、系统而科学的、可操作性强的课程考核模式。这样必须以就业为导向,以培养技能应用型人才为目标,其考核的目的除了具有检验功能外,还应有利于促进学生的自主学习,促进对技能的掌握,归根到底就是有利于推动学生的就业和创业。下面就针对于以上存在的种种考核模式的弊端,对于像C语言程序设计课程这样实践性较强的课程提出以下几点建议。

2.1 考核模式要突出能力为主、知识为辅

按照“基于知识、能力、素质协调发展的课程考核模式”的教育目标,培养的学生应当具有良好的职业道德和职业素养,应当具有熟练的职业技能,走上工作岗位之后具备持续发展的能力,还应当具有扎实的、系统的专业应用知识。这些能力都应该在课程体系中的每一门课程的课程标准中体现。针对计算机专业的专业核心基础技能课程“C语言程序设计”而言,课程标准应该突出学生解决软件开发实际问题的各分项技能,尤其是综合运用这些技能解决一个实际项目开发的能力。课程内容要突出能力目标,在考核问题上,既要突破“知识考核”,更要体现“能力考核”的要求。不是仅用问题概念考核,而要用“任务”对学生进行考核。为了实现这个目的,用一个实际项目进行考核显得至关重要。

2.2 考核的实验类型应为验证型、综合型与设计型

为了加深学生对所学知识的理解、掌握实验方法与技能的能力,验证某一原理、理论或结论,让学生做为具体实验操作主体要设置验证型实验。

为了注重学生理论知识综合应用,培养学生实际动手能力、思维能力和创新能力,要设计一些实验内容涉及本课程的综合知识或与本课程相关课程知识的综合型实验。

对于信息管理专业的学生应该依据信息管理专业的培养目标给定实验目的、要求和实验条件,由学生自行设计实验方案并加以实施,进一步培养学生实际动手能力、思维能力和创新能力的设计型实验。

2.3 实验考核方式与成绩评定标准

“C语言程序设计”课程的实验课的课时占总学时的一半,所以实验课成绩应该做为期末总成绩的一部分。实验课的考核方式应为笔试、口试、机试几部分,对于实验原理、实验结果分析等内容可以采用口试;对于程序的编写与调试可以采用机试;对于每次实验的预习、操作、报告等可以采用笔试作业的形式。对于实验成绩评定,任课教师为了提高学生的积极性可以在每一次实验课程结束时就给出成绩。

2.4 考核的项目选择

应力求真实、生动,难易适当,能涵盖课程能力培养目标的范围。针对当今社会就业困难这一现象,要培养学生今后从事专业职业岗位工作的能力,因此作为课程考核目标的项目应选用来之企业真实、生动的应用案例,激发学生的兴趣。在我所教的学生之中有相当一部分学生反映出如下的特点:不自信;敢于尝试,但普遍缺乏耐性。所以项目选题要难易得当。太难,可能令不自信的学生一筹莫展,望而却步,或半途而废,甚至产生抵触情绪;太简单,一方面学生觉得没有挑战性,而失去耐性;另一方面项目完成后,成就感不强,成功的喜悦持续时间短,很多学生敷衍应付。所以要选择难易适当的项目,这样才能提高学生完成项目的热情,激发学习兴趣。

2.5 考核模式中增加“课程设计”测试

为了在课程设计的过程中做到既注重结果,也重视过程,同时培养学生的职业素养。其具体做法如下:

将学生分成项目组,4-5人为一组,并选一名组长。模拟公司的项目组运作模式,在组内由项目组长负责任务分配、进度跟踪和质量监控,教师抽查各组进度状况。组之间展开竞争和评比,以促进各课程设计项目的进展和完成。

其中,课程设计项目进度跟踪考核成绩,由教师和项目组长依据组员在组内担任的任务、进度控制情况评定;根据组之间竞争状况(包括进度、质量控制、组员之间协作情况)决定组长的考核成绩。

项目最后提交的项目成果考核采用答辩方式。项目开发者演示作品,并简述开发过程,并回答老师与同学针对项目实现技术、编程技巧、功能盲区的提问。最终由教师综合给出成绩。

通过以上方式,一方面避免在开发工作中的抄袭现象。另一方面加强培养学生的职业道德、职业素养,锻炼其沟通表达能力、团队协作精神和竞争意识。此外,通过交流,共同学习、共同提高,教学相长。

3 考核模式的实践

3.1 期末总成绩的组成

为了实现“基于知识、能力、素质协调发展的课程考核模式”的目标,本学院C语言程序设计课程的总成绩的构成及所占百分比如图1所示。

3.2 课程设计相关项目考核评价标准

如图1所示,课程设计成绩占总成绩的30%,所占的比例仅次于期末试卷成绩。因为课程设计对于计算机专业的学生来说,尤其是像“C语言程序设计”软件设计的课程,它是最能检验学生对所学知识的应用与掌握情况的。所以下面本人就针对于我院我系在反复研究与论证的基础上,制定的课程设计相关项目考核评价标准进行详细的叙述。

课程设计的项目通常是安排在本门课授课任务结束后一周开始,题目由授课教师命题,同时授课教师还要给学生下达课程设计项目的任务书与简要的指导书。

学生可以自由组合分组,每一组选一个题目,相互不重复。对于学生的完成情况主要从以下4方面加以评价打分,并给予最终成绩。

完成的质量:根据项目目标中的功能需求、性能需求,对所完成的软件项目质量进行考核和评价。

完成时间:按时完成项目的学生获得满分。对未做完的项目需估算完成部分所占百分比以及继续完成所需的时间,再相应地给予评分。

课程设计报告:当项目完成后,还要书写本项目的课程设计报告,在报告中能够体现软件模块划分合理、代码体现良好的编程风格。

课程设计答辩:项目的代码部分与课程设计报告检验完成后,教师要针对每一组的项目所涉及的程序代码提出问题,要求学生能正确回答或解释老师所提出的问题,最后老师要根据每一位学生回答情况给予此部分的成绩。

3.3 实验成绩的考核标准

计算机课程本身就是一门实践性较强的课程,实验课的课时数占总学时数的一半。而“C语言程序设计”课程还是计算机课程中的专业核心课程之一,所以说如何来提高学生实验课的教学质量,进而提高他们适应当今社会就业岗位的应用能力,是每一位教师的重要职责。所以本人在期末总成绩中将实验课成绩做为其中的一部分,具本的考核标准如下。

每一周都有2学时的实验课,我做为认课教师,在上实验时通常是针对理论课上所讲授的理论课知识点先要向学生讲解几个相关的上机实习题,同学们首先要将老师所讲授的习题上机进行实践,并得出正确的结论,这一部分以抽查的形式检查学生的完成情况,并给予成绩。除此之外,每一节课还要步置一些与讲授的习题想像的习题让学生独立完成,同样会以抽查的形式检查学生的完成情况,并给予成绩。在一个学期内会根据所学内容的阶段性进行全班级的上机课考试,并记录成绩。

3.4 平时成绩的考核标准

平时成绩主要体现在作业、课堂表现、出勤情况这3方面。作业分为课堂作业与实践作业两部分,在成绩的给予上主要从以下两方面考虑:首先是否按时上交作业,然后再考虑是否有抄袭现象。

4 效果

经过以上考核方式的检验,使学生明确了学习目标,进而激发了学生学习兴趣,提高了学习效果,形成了教学的良性循环,学生的职业素养、职业道德也得到了锻炼和熏陶。现在所进行的考核模式改革基本上能促进学生知识、能力和素质的协调发展,促进了学生创新能力的培养与提高,从而使得整个教学过程更符合用人单位对人才的要求,更符合高校人才培养的目标。

参考文献

[1]任昌荣.基于知识、能力、素质协调发展的课程考核模式研究与实践项目,2009.

[2]赵殿魁.论大学课程考试改革及其相关配套改革[J].太原城市职业技术学院学报,2007,(04).

c语言课程实践 篇3

摘 要:C语言是高职院校学生接触的第一门计算机语言课,语法灵活、知识点多、程序设计自由度大,且注重实践操作能力,因此如何提高课堂教学效率,培养学生的编程兴趣和能力就显得尤为重要。根据多年的教学经验,针对民办院校高职类学生的C语言课程教学提出了一些改革措施。

关键词:C语言;实践操作能力;改革措施

C语言具有强大的功能,是应用最广泛的计算机程序设计语言之一,是程序设计的基础,也是数据结构等课程的先导课。根据高职计算机教育的特点,C语言程序设计课程不仅是专业基础课,更是一门专业技能课。作为学生,进入大学后接触的第一门计算机语言课,C语言教学应以培养学生的编程兴趣、加强学生的自学能力为目标。通过本门课程的学习,使学生逐步培养程序设计的思维,能熟练的上机调试程序,具备良好的编程习惯、设计规范和风格,训练程序设计的能力,能够独自解决程序编写和调试中的困难,同时具备沟通、表达能力以及与人协作能力。

一、目前教学中存在的问题

1.知识点多,语法灵活

C语言具有数据类型丰富、语法限制不严格、程序设计自由度大、可由用户自定义数据类型等特点。然而,这些特点既是C语言的优点,也是C语言学习的难点。高职院校的学生大多数都是第一次接触程序设计语言,基础相对较差,在实际教学中,知识点的讲授是分别进行的。学生可以很好地学习和理解各个独立的知识点,也可以把某个知识点运用到其适用的情况。但是,如何将多个知识点关联和连贯起来对于学生理解就比较困难。

2.讲得多,练得少

C语言是一门实践性很强的课程,逻辑性强、内容多,不易理解,但学时安排较少,目前课程总学时为64学时,其中讲授为32学时,实验为32学时,相对于其他普通高校实验16课时来说,已经增加了实验课学时,但在实验课堂上也通常是教师先讲,学生再练。往往学生真正上机练习的时间只有一小节课,学生只是机械地完成教师布置的题目或验证已有的程序,很少能自己思考或者创新的。

3.无法调动学生学习的积极性

C语言不像有的课程那样立竿见影,需要一个循序渐进的学习过程,而且C语言知识点内容繁杂,学习起来很枯燥,因此学生学习的积极性不高。相对于其他基础课程中比较直观的基本操作和基础概念,它更注重由设计算法到书写程序并进行调试的整个

过程,显得抽象、复杂,编程时容易出错、很难掌握,很多学生因而失去了学习的兴趣,丧失学习的信心。

二、改进课堂教学方法

1.精讲多练,合理安排教学内容

C语言知识点多、覆盖面广,理论授课时间相对比较紧张。经过实践证明,对于民办高职类学生,因为学生的自学能力、自控能力相对较差,因此不宜按照课本安排的知识点顺序进行讲解,在

具体教学过程中,首先应注意教学内容的顺序。一般的教学顺序,往往刚开始的内容是变量、数据类型、运算符、表达式、语句、函数的定义、使用说明等,没有很快涉及程序编制,这样很容易造成学生泄气或者失去兴趣,对学习极其不利。因此要适当减少数据类型和表达式等内容,尽快进入到顺序程序设计部分,并采用先举例后分析,逐渐引入知识点的顺序,注意先具体后抽象。其次需从应用角度出发划分知识内容,用就学,不用就可先不讲,知识点讲解难度掌握到够用即可。同时针对初学者的特点和认知规律,分散难点,降低台阶,在实例练习中掌握重点,突破难点,在课程中慢慢渗透理论体系,将难点内容化解在各章节中去讲解。

2.采用案例驱动教学法

案例驱动教学就是把教学内容设计成一个或者多个具体案例,教师围绕案例讲授相关内容,学生在案例驱动下,独立分析和解决问题,从而掌握教学内容,达到教学效果。

结合案例驱动法的基本思想以及高职学生的实际情况,C语言的教学内容可划分为以下知识点:输入输出和顺序结构、分支结构程序设计、循环结构程序设计、数组、函数、指针、结构体和文件、综合程序设计。其中数据类型、运算符和表达式可以渗透在以上各个知识点中讲解,不同的知识点可以设计成不同的案例,通过先举例、后讲解,让学生通过一些有意思且实用的例子,学习、掌握知识点和语法,同时培养程序设计的思维和习惯。经实践证明,这种方法在高职院校C语言教学中取得较好的效果。

3.运用阶梯式教学法

将教案设计成阶梯式,让学生一步一个台阶地往上走,跨度不大,符合学习规律。例如,在引导学生实现猜数游戏时,将需求设置成阶梯式,分成利用选择实现一次判断、利用循环实现一次猜数、利用多重循环实现连续猜数,最终将小游戏的功能逐步完善。学生在这种阶梯式教学法中获得浓厚的兴趣,通过不断地编程调试、跟踪运行,程序设计能力和编程思想进一步得到提高。

三、改进实验教学方法

设计好实验内容,尽量让学生独立或者相互协作完成,教师给一些引导或建议,让学生自己去尝试。给每个教学内容设计一个实验,实验内容可分为两部分:基本实验和选做实验。其中基本实验包括:验证性实验、改错性实验和设计性实验,适合大部分学生。选做实验给出一些提示,但不做具体要求,使学有余力的学生可以在完成基本实验的前提下选做,进一步提高编程能力。

1.基本实验

(1)验证性实验

验证性实验训练学生阅读程序,熟悉知识点,体会良好的程序书写风格。结合案例教学方法,针对每次上课所学知识点的不同,分别提供给学生一些已包括所学知识点、实现实际问题、可直接运行出结果的有吸引力的案例,让学生自己分析程序、执行程序和查看结果,根据源程序和运行结果分析其程序中所包含的知识点及

程序具体实现的功能,加强学生分析问题的能力。

(2)改错性实验

改错性实验主要训练学生根据出错信息运用程序调试方法进行程序调试,提高学生的程序调试能力。根据所学知识点内容,设计一些有语法错误或逻辑错误的程序,让学生通过调试,找出程序中的错误并改正。endprint

(3)设计性实验

设计性实验给出题目和部分题目的解题提示,让学生自己设

计算法,然后自己编程并调试,提高学生运用知识解决问题的能力。根据所学知识点内容,布置一些与已学程序相似的程序,让学生结合已学知识设计程序或者修改已有程序,从而实现新功能。

例如,学生可以通过改编“1+2+3+…+100”的程序,实现求“2+4+6+…+100”的程序。

2.选做实验

提出一些设想和思路,引导学生进一步优化和完善程序,学生得到启发后,有了自己的想法,在实现的过程中遇到问题和困难,教师可以给予相应的帮助,但主要靠学生自己完成。例如,在讲解“输入输出和顺序结构”内容时,用到计算两个数之和并输出的例子,在基本实验中可以让学生首先将其改为能求加减乘除四则运算的,然后可以提示学生:这个程序只能用固定的或者运行时从键盘上输入的两个数据,如果要计算另外两个数据就需要重新运行一遍程序,怎样才能让程序可以重复计算多组数据直到用户喊停才结束。这样就可以引导一些学有余力的学生主动地去查找、学习新知识,从而使编程能力得到进一步提高。

四、增加课程设计环节

在完成实验内容的基础上,利用最后两周时间进行综合性实验——课程设计,教师布置相应的题目,例如:Joseph环、迷宫求解、日历系统、学生信息管理系统等,并给出相应的任务要求,例如学生成绩管理系统,要求:建立一个n个学生的信息登记表,每个学生的信息包括:学号、姓名和m门课程的成绩(MATH,C,ENGLISH)。程序运行时显示一个简单的菜单,实现对学生信息的输入(INPUT)、总分统计(COUNT)、总分排序(SORT)、查询(QUERY)等功能。让学生2~3人一组自由组合,选择自己感兴趣的题目,各小组成员相互协作,及时讨论,共同完成课程设计任务,根据教师提供的基本功能,每个小组可在此基础上结合自己组内成员的实际想法,添加或细化功能,从而得到一个更贴近实际的功能模块划分。在这种相互协作式的实践中,学生的各种问题得以及时讨论消化,同时在解题思路、思维方式、学习经验等方面相互影响,能很好地促进学生自主学习能力的培养,培养团队意识。

总之,教学改革的研究和实践是一项长期的、持续渐进的过程,我们的目标是培养应用型人才,贯彻“以学生为主体”的思想,不断探索提高学生学习兴趣的新教学方法,对传统C程序设计教学模式进行深入改革,从而使学生通过C语言程序设计的学习对编程思想理解得更加深入,分析和解决问题的能力有更大的提升。

参考文献:

[1]闫英战.C语言程序设计教学改革的探讨[J].电脑知识与技术,2006(08).

[2]王美红,王蒙.C程序设计教学中的创新能力的培养[J].科技信息,2008(35).

[3]刘美健.C语言程序设计课程教学改革实践[J].中国职业技术教育,2012(32).

[4]唐永红,龚安.程序设计语言实验教学探讨[J].电气电子教学学报,2006(3).

[5]刘芳,秦兴国.C语言程序设计.教学存在问题及改进[J].教育理论与实践,2012(36).

[6]江卫星.计算机网络课程教学的研究[J].电脑知识与技术,2008,4(3):682-683.

作者简介:杨晓明(1980.4— ),女,陕西渭南,讲师,硕士研究生,主要研究方向:计算机软件。西安翻译学院诒华学院人文信工教研室。

刘淑婷(1984.1— ),女,陕西渭南,讲师,本科,主要研究方向:计算机网络。西安翻译学院诒华学院人文信工教研室。

(作者单位 陕西省西安市翻译学院诒华学院)

C语言课程实习2012 篇4

一.课程性质

C程序课程设计是《C程序设计》课程的实践环节,其目的是为学生提供了一个既动手又动脑,独立实践的机会,学生将课本上的理论知识和实际有机的结合起来,锻炼学生分析、解决较复杂问题的能力,提高学生独立编写大编程的能力。

二、基本要求

1、课程设计可采取每人或2人一题,可任选题目进行设计。每组成员分工合作完成一个课程设计时,每个人的任务不同;

2、要求利用结构化程序设计方法以及C的编程思想来完成系统的设计;

3、模块化程序设计:要求在设计的过程中,按功能定义函数,进行模块化设计,各个功能模块用函数的形式来实现;

3、学生所选课题必须上机通过,并获得满意的结果;

4、程序书写风格:锯齿型书写格式。

三、课程设计报告的要求

1、需求分析

描述问题。简述课题要解决的问题是什么,有什么要求和限制条件。

2、总体设计(程序设计组成框图、流程图)

3、详细设计(模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等))

4、源程序清单和结果:源程序要加注释。结果要包括测试数据和运行结果。

5、设计心得

四、考核标准:

成绩按五分制评定:优、良、中、及格和不及格

评价标准

课程设计成绩评定的依据有设计文档资料(40%)、具体实现设计方案的程序(25%)、验收(25%)课程设计考勤登记表(10%)。

优(90分以上):必须要有一定的创意,有自己独特的算法。按要求完成课题的全部功能,有完整的符合标准的文档,文档有条理、文笔通顺,格式正确,其中有总体设计思想的论述,有正确的流程图,程序完全实现设计方案,设计方案先进,软件可靠性好;

良(80-89分):完成课题规定的功能,有完整的符合标准的文档,文档有条理、文笔通顺,格式正确;有完全实现设计方案的软件,设计方案较先进,无明显错误;

中(70-79分):完成课题规定的功能,有完整的符合标准的文档,有基本实现设计方案的软件,设计方案正确,但有少于失误;

及格:完成课题规定的大部分功能,有完整的符合标准的文档,有基本实现设计方案的软件,设计方案基本正确,个别功能没有实现,但错误不多;

不及格:完全复制别人的文档资料,没有完成课题规定的功能,没有完整的符合标准的文档,软件没有基本实现设计方案,设计方案严重错误。

五、参考设计题目

1.小学生数学CAI系统

设计内容:

该系统为小学数学辅助教学系统,利用该系统可以锻炼小学生的数学运算能力。它包括+、-、×、÷四则运算。

设计要求:

1)系统菜单可以选择包含的运算符(+、-或×、÷)、数值的位数(1位,2位、3位)。

2)单击“开始”,系统自动随机地出10道题。

3)每出一题,小学生输入答案后,第一次答对,系统给出信息“完全正确,你非常聪明!加10分”,总分+10分,显示下一题;若答错了,系统给出信息“你答错了,继续努力!”,继续显示该题目,若第2次答对了,系统给出信息“答对了,你很棒!加8分”,总分+8分,显示下一题;若答错了,系统给出信息“你答错了,继续努力!”,继续显示该题目,若第3次答对了,系统给出信息“答对了,祝贺你!加6分”,总分+6分,显示下一题;若答错了,系统给出信息“非常遗憾你又答错了,请继续做下一题。本题的正确答案为„„”,继续显示下一题;

当答完所有的题给出总分

2.英语字典

设计内容:

设计一个简单的英语字典,输入英语单词,显示中文含义,设计要求:

1)自行设计一单词库;

2)词库的编辑功能(添加、修改、删除题库中的单词)

3)具有查询的功能(“英汉”和“汉英”两种方式)

3.学生学籍管理系统

可对学生学籍进行注册,修改,删除,查找,统计等操作。

功能要求:

(1)系统以菜单方式工作。

(2)登记学生的学号,姓名,班级和籍贯信息

(3)修改已知学号的学生信息;

(4)删除已知学号的学生信息;

(5)查找已知学号的学生信息;

(6)查找并统计某个籍贯的学生信息及总数。

4.其它难度相近的自选题目。

附:课程实习报告封面

广东海洋大学职业教育学院

《C语言程序设计》课程实习报告

题目:英语字典班级:应电111

学号:201136626133姓名:邱洪文成绩:

指导教师:

C语言课程设计选题 篇5

功能:

1、每一条记录包括一位教师的职工号、姓名、职称、性别、3门主讲课程(课程名称、开课学期、课程性质(学位与非学位课)和教学效果),教学效果综合评分。

2、输入功能:可以一次完成若干条记录的输入。

3、显示功能:完成全部教师记录的显示。

4、查找功能:完成按姓名或课程查找教师的相关记录,并显示。

5、排序功能:按职工号或教学效果综合评分进行排序。

6、插入功能:按教学效果综合评分高低插入一条教师记录。

7、将教师记录存在文件中。

8、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!

要求:

1、用C语言实现系统;

2、利用结构体数组实现教学信息的数据结构设计;

3、系统具有增加,查询,插入,排序等基本功能;

4、系统的各个功能模块要求用函数的形式实现;

5、将教学信息存在文件中。

课程设计的最后成果是实验报告一份,内容包括:

1、预习报告(题目、流程图、程序的设计思想等);

2、实验总结报告(测试方案、源程序代码(需打印)、调试中问题及解决方案、小结等)。

C语言课程设计任务书2 题目:酒店房间登记与计费管理系统

功能:

1、屏幕上出现一个界面,让操作员能够方便的选择所需要进行的操作,包括登记入住、查询房间的入住情况、查询当前费用、结账退房等操作。

2、对不同标准的房间实施不同的收费标准,也可以按天收费或按小时收费,可根据顾客需要在登记的入住的时候进行选择。

3、在结账退房时,根据入住的时间,计费方式和房间单价计算出总费用。

分步实施:

1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;

2、完成最低要求:建立房间列表,完成登记入住、查询房间入住情况功能。

3、进一步要求:完成计费和费用查询功能。

要求:

1、用C语言实现系统;

2、函数功能要划分好(结构化程序设计);

3、界面友好(良好的人机交互),加必要的注释;

4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。

课程设计的最后成果是实验报告一份,内容包括:

1、预习报告(题目、流程图、程序的设计思想等);

2、实验总结报告(测试方案、源程序代码(需打印)、调试中问题及解决方案、小结等)。

C语言课程设计任务书3 题目:大学生成绩管理系统

功能:成绩管理系统包含了学生的全部信息,每个学生是一个记录,包括学号,姓名,性别,各科成绩等。系统可完成:

信息录入——录入学生成绩信息(包括学生学号、姓名、各门课程的成绩等);

信息查询——输入学号,查询学生各门课程的成绩及所有课程的平均成绩;查询所有学生各门课程的成绩,并按可选的自定义规则进行排序;

信息删除与修改——输入学号,删除该学生的成绩信息、输入学号,查询并显示出该学生的成绩信息,并在此基础上进行修改;

信息保存——将学生的学号、姓名及各门课程的成绩等信息保存于外部存储器的文件中。

分步实施:

1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;

2、完成最低要求:建立一个文件,包括10个学生的必要信息,能对文件进行补充,修订,删

除,并能进行统计计算;

3、进一步要求:完成包括一个班,一个年级乃至一个系的系统。

要求:

1、用C语言实现系统;

2、函数功能要划分好(结构化程序设计);

3、界面友好(良好的人机交互),加必要的注释;

4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。

课程设计的最后成果是实验报告一份,内容包括:

1、预习报告(题目、流程图、程序的设计思想等);

2、实验总结报告(测试方案、源程序代码(需打印)、调试中问题及解决方案、小结等)。

C语言课程设计任务书4 题目:职工档案管理系统设计

功能:职工档案管理系统包含了职工的全部信息,每个职工是一条记录,包括编号,姓名,性别,出生年月,年龄,所在部门,职称,工资级别、电话等。系统可完成:信息录入、信息查询,并按可选的自定义规则进行排序;信息删除与修改(须设置密码),将职工的信息保存于外部存储器的文件中。

分步实施:

1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;

2、完成最低要求:建立一个文件,包括10个职工的必要信息,能对文件进行查询、补充、修订、排序、删除等;

3、进一步要求:能进行统计计算;完成包括整个职工的系统;对删除与修改等设置密码

要求:

1、用C语言实现系统;

2、函数功能要划分好(结构化程序设计);

3、界面友好(良好的人机交互),加必要的注释;

4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。

课程设计的最后成果是实验报告一份,内容包括:

1、预习报告(题目、流程图、程序的设计思想等);

2、实验总结报告(测试方案、源程序代码(需打印)、调试中问题及解决方案、小结等)。

C语言课程设计任务书5 题目:银行存取款管理设计

功能:能够输入和查询客户存款取款记录。在客户文件中,每个客户是一条记录,包括编号、客户姓名、支取密码、客户地址、客户电话、账户总金额;在存取款文件中,每次存取款是一条记录,包括编号、日期、类别、存取数目、经办人。类别分为取款和存款两种。本系统能够输入客户存款或取款记录;根据客户姓名查询存款和取款记录。

分步实施:

1、初步完成总体设计,搭好框架,确定人机对话界面,确定函数个数;

2、完成最低要求:建立一个文件,包括输入10个客户的必要信息,能对文件进行输入、修订、删除。

3、进一步要求:完成客户姓名查询存款和取款记录,并能得到每次帐户总金额。

要求:

1、用C语言实现系统;

2、函数功能要划分好(结构化程序设计);

3、界面友好(良好的人机交互),加必要的注释;

4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。

课程设计的最后成果是实验报告一份,内容包括:

1、预习报告(题目、流程图、程序的设计思想等);

2、实验总结报告(测试方案、源程序代码(需打印)、调试中问题及解决方案、小结

等)。

C语言课程设计任务书6

题目:商品订购系统设计。

功能:屏幕上出现一个界面,让顾客或输入商品名称,或商品型号,或选择列表进而输入商品编号都可以,如查到所选商品,则列出商品编号、商品名称、商品型号、商品价格、商品产地、库存数量和已订购数量;然后给出选购流程:所选商品编号—列出对应商品的信息—要求顾客输入邮寄地址信息—确认订购,是否继续选购其它商品,列出所有选订商品,再次确认订购。建立两个文件,分别存放商品信息与订购信息。分步实施:

1、步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;

2、完成最低要求:建立一个小系统,包括10种产品能供顾客选择。

3、进一步要求:完成全部功能的系统。

要求:

1、用C语言实现系统;

2、函数功能要划分好(结构化程序设计);

3、界面友好(良好的人机交互),加必要的注释;

4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。

课程设计的最后成果是实验报告一份,内容包括:

1、预习报告(题目、流程图、程序的设计思想等);

2、实验总结报告(测试方案、源程序代码(需打印)、调试中问题及解决方案、小结等)。

C语言课程设计任务书7 题目:设备管理系统设计

功能:设备管理系统应包含各种设备的全部信息,每台设备为一条记录(同一时间同一部门购买的若干台相同设备可作为1条记录),包括设备号、设备名称、领用人、所属部门、数量、购买时间、价格等。能够显示和统计各种设备的信息。

分步实施:

1、步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;

2、完成最低要求:建立一个文件,包含一个部门10台设备的信息,能对文件进行补充、修订、删除,能统计所有设备的总价值。

3、进一步要求:完成设备按种类、按所属部门进行统计。

要求:

1、用C语言实现系统;

2、函数功能要划分好(结构化程序设计);

3、界面友好(良好的人机交互),加必要的注释;

4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。

课程设计的最后成果是实验报告一份,内容包括:

1、预习报告(题目、流程图、程序的设计思想等);

2、实验总结报告(测试方案、源程序代码(需打印)、调试中问题及解决方案、小结等)。

C语言课程设计任务书8

题目:学生计算机机房管理系统设计

功能:该计算机房共有100台计算机,分为20排,每排50台。管理系统应包含每台计算机一周内的使用全部信息,包括计算机序号、配置、位置、状态、使用情况的历史记录(包括使用者姓名、学号、使用时间段)等。本系统可以模拟学生上机和离开的登记过程,查询机房计算机的使用情况。

分步实施:

1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;

2、完成最低要求:建立一个文件,包括200个计算机的必要信息,能实现学生上机和离开的登记过程模拟。

4、进一步要求:完成机房计算机的使用情况查询和打印。

要求:

1、用C语言实现系统;

2、函数功能要划分好(结构化程序设计);

3、界面友好(良好的人机交互),加必要的注释;

4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。

课程设计的最后成果是实验报告一份,内容包括:

1、预习报告(题目、流程图、程序的设计思想等);

2、实验总结报告(测试方案、源程序代码(需打印)、调试中问题及解决方案、小结等)。

C语言课程设计任务书9

题目:商店销售管理系统。

功能:屏幕上出现一个界面,让售货员输入商品编号或者商品名称,可以进货,进货后商品库存同时增加。顾客买走商品后,售货员输入商品编号或者商品名称,可以生成销售清单,统计本次销售总的价钱,同时库存数量相应减少。完成前面的基本功能后,还可以完成增加新的商品或删除不需要的商品的功能,以及每天销售统计功能等。

分步实施:

1、步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;

2、完成最低要求:能按商品编号进货和销售;

3、进一步要求:完成增加新的商品或删除不需要的商品的功能,以及每天销售统计功能等。

要求:

1、用C语言实现系统;

2、函数功能要划分好(结构化程序设计);

3、界面友好(良好的人机交互),加必要的注释;

4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。

课程设计的最后成果是实验报告一份,内容包括:

1、预习报告(题目、流程图、程序的设计思想等);

2、实验总结报告(测试方案、源程序代码(需打印)、调试中问题及解决方案、小结等)。

C语言课程设计任务书10 题目:计算机辅助教学(CAI)软件开发:教小学生学英语。

功能:屏幕上随机出现一个汉语单词,英语单词,汉语词组,英语词组或一短句提示小学生给出相应答案,答错了要提示要求重新输入,直到答对为止。要统计给分,且累计,够一定分数后可进级,即从单词到词组,从词组到短句。同样,也可降级。起步阶段可各选30个,软件可扩充,即扩大词库的容量。

(rand(),#include 结构体、文件或数组)

分步实施:

1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;

2、完成最低要求:能教单词,并有统计功能,即一次答对的成功率为90%以上后可晋级;

3、进一步要求:完成词组和短语的问答,也有晋级功能。

要求:

1、用C语言实现系统;

2、函数功能要划分好(结构化程序设计);

3、界面友好(良好的人机交互),加必要的注释;

4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。

课程设计的最后成果是实验报告一份,内容包括:

1、预习报告(题目、流程图、程序的设计思想等);

2、实验总结报告(测试方案、源程序代码(需打印)、调试中问题及解决方案、小结等)。

C语言课程设计任务书11

题目:五子棋

功能:1.由两个玩家分别下棋,当某一玩家五子相连,则赢。

2.界面要求:初始状态——显示棋盘,并显示两个玩家的操作键及初始玩家号;游戏进行状态——动态显示棋盘,不同玩家的棋子用不同符号显示,屏幕上显示当前玩家号,结束时显示赢家号。分步实施:

1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;

2、完成最低要求:由两个玩家分别下棋;

3、进一步要求:可以考虑人机对弈。要求:

1、用C语言实现系统;

2、函数功能要划分好(结构化程序设计);

3、界面友好(图形界面,良好的人机交互),加必要的注释;

4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。

课程设计的最后成果是实验报告一份,内容包括:

1、预习报告(题目、流程图、程序的设计思想等);

2、实验总结报告(测试方案、源程序代码(需打印)、调试中问题及解决方案、小结等)。

C语言课程设计任务书12

题目:井子棋

功能:1.计算机为一方,人为一方,交替下棋,谁先连成一条直线谁胜;允许人选择先下还是后下。

2.界面要求:初始状态——显示棋盘,并显示玩家的操作键;游戏进行状态——动态显示棋盘不同玩家的棋子用不同符号显示,屏幕上显示当前玩家号,结束时显示赢家号。

3.提示计算机自动下棋的规则:计算机下时,应考虑所有空位,并按行、列、对角线计算每个空位的分值,若在某行(列、对角线)上,(设计算机画X,人画O)

已有XX 加50分

已有OO 加25分

已有X空 加10分

已有O空 加8分

都是空 加4分

然后选分值最高的位置画X。分步实施:

1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;

2、完成最低要求:由人机分别下棋;

3、进一步要求:可以考虑使用鼠标。要求:

1、用C语言实现系统;

2、函数功能要划分好(结构化程序设计);

3、界面友好(图形界面,良好的人机交互),加必要的注释;

4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。

课程设计的最后成果是实验报告一份,内容包括:

1、预习报告(题目、流程图、程序的设计思想等);

2、实验总结报告(测试方案、源程序代码(需打印)、调试中问题及解决方案、小结

等)。

C语言课程设计任务书13

题目:迷宫游戏

功能:1.随机生成迷宫,找出由入口经过迷宫到达出口的一条路径,允许选择人或计算机找出路。

2.界面要求:初始状态——显示迷宫的图面;用箭头指出入口外和出口外;游戏进行状态——选择人找出路时,显示每一步的结果,到边了和遇上障碍,发出“嘟”的叫声。走到出口处,应给出“胜利”的字样;选择计算机找出路时,用一条有颜色的线画出路径,若找不出出口就显示“无出路”的字样。3.计算机找出路部分可选做。

分步实施:

1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;

2、完成最低要求:由人选择出路;

3、进一步要求:可以考虑由机器选择出路。要求:

1、用C语言实现系统;

2、函数功能要划分好(结构化程序设计);

3、界面友好(图形界面,良好的人机交互),加必要的注释;

4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。

课程设计的最后成果是实验报告一份,内容包括:

1、预习报告(题目、流程图、程序的设计思想等);

C语言课程设计报告总结 篇6

通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体,指针,链表……通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍。

我做的是通讯录管理系统的课程设计,虽然是很简单的一个小的程序,但对我一个初学者来说却是一个很大的困难。更加是第一次做课程设计,所以第一天下午在机房做了一个下午却丝毫没有进展,最主要是不知从何开始,这个时候才知道上课老师们不厌其烦的教导是多么的宝贵,这个时候才后悔上课的时候没有认真的听讲。可是现在一切都晚了,还好时间还算是充裕,只好拿出书本重新复习一下。

特别是结构体,指针的部分,几乎是一片空白。不过经过几天的努力,大体上把课本上的知识点看了一遍,知识点也都基本是撑握了,所以一下一步就是开始正式的编程序了。不过毕竟是个新手,还是不知如何下手,于是就在网上下了一篇类似的程序,经过仔细的研究,终于读懂了C语言编程的基本过程和方法。经过一波三折,终于开始正式编程。

编程是一件很枯燥很无聊的事情,但是出于完成作业,得到学分的压力,还必须强破自己坚持下去,按照老师所说的模块化思想,分部分的进行编写。而且编程是一件高精度、模范化的事情,稍有疏乎都会影响全局,也可能因为某一处的小的错误而导致整个程序的无法运行。所以认真仔细就是非常重要的了。

开始的时候真的感觉编程是一件很无聊的事情,不过当一个程序运行成功的时候那种喜悦是无法言语的,那种成就感是无法比拟的。又经过几天的努力,终于把程序完成了,尽管程序还是有很多错误和漏洞,不过还是很高兴的。无论如何是自己的劳动成果,是自己经过努力得到的成绩,同时也是学习C语言的一次实践作业,自己进步的证明。

通过这次课程设计,使我对C语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对C语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对C语言中经常出现的错误也不了解,通过实践的学习,我认识到学好计算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。

信管专业C语言课程实践教学探索 篇7

根据我院情况, 信息管理与信息系统 (以下简称信管) 专业定位于着重培养从事信息管理与信息系统分析、规划、设计、开发、管理与维护的应用型本科人才, 强调学生的实践性与应用性能力的培养。《C语言》课程是我院信管专业开设的首门高级程序设计语言课程, 它使用广泛, 表达能力强、目标代码运行效率高、可移植性好, 既具有高级语言的优点, 又具有低级语言的特点, 既可以用来编写系统软件, 又可以用来编写应用软件。因而学习好C语言程序设计具有更重要的意义。但是在实际的教学中却出现了学生普标抱怨编程难, 教师抱怨教学效果不理想的现象。

因此, 学生学习的兴趣不高, 缺乏学习的主动性, 使得教学目标难以实现。为了加强学生对该课程的理解和掌握能力, 实践教学环节就显得尤为重要[1]。只有将实践教学和理论教学结合起来, 才能在最大程度上帮助学生尽快掌握课程理论知识, 并更好地应用于实践, 提高编程能力, 同时提高知识和实践应用能力。

2 实践教学中存在的问题

2.1 缺乏程序设计的相关概念

程序设计人员在设计程序时需要综合运用算法、数据结构、程序设计方法、计算机语言这几方面的知识。《C语言》课程面向的是大一新生, 教材重点是《C语言》的语法, 相关程序设计方法的知识很少, 只是简单提及, 而大一新生在高中阶段并未接触过相关程序设计方法, 这就意味着学生在没有充分了解程序设计方法的基础上直接学习《C语言》的语法, 必然导致学生不能灵活使用程序, 更不用说在实践教学中编写风格良好、效率高的程序了。

2.2 实践和理论联系不够紧密

《C语言》课程主要介绍了一些语法规则和理论性和抽象性强的算法, 教师在讲解时也主要是把书本上的知识给学生讲清楚, 很少能够去联系实际。而且学生的实验课时较少 (我院理论40学时, 实践24学时) , 在实验课上只是对书本上的算法进行简单的验证, 所以学生不知道如何才能灵活应用。有的学生甚至就认为:这些只是理论, 根本就没办法去实践, 更有甚者认为学习这门课程只是为了应付考试, 根本就没有实际的作用, 最终导致缺少学习的动力。

2.3 考核方法过于单一

我院信管专业《C语言》课程考试还是采取笔试的形式, 没有设置上机考试。考核成绩的评定是由平时成绩和考试卷面成绩两部分构成, 其中, 平时成绩占20%, 卷面成绩占80%。笔试题目类型简单, 以选择题、填空题、程序设计或修改题为主, 学生只要熟记考试知识点和某些算法, 就能通过考试, 这样导致学生只是记住了C的知识点, 并不能解决程序运行中的实际问题。

3 实践教学探索

3.1 理论采用案例教学法

案例教学法是一种开放式、互动式的教学方式, 教师要根据理论教学内容事先策划和准备恰当的案例, 指导学生提前阅读, 在课堂上组织学生对阅读的案例展开讨论, 以便加深理解, 形成反复的互动与交流[2]。案例是教学的核心, 案例的选择要注意以下几个方面: (1) 根据教学目标选择案例, 案例的选择要难易得当, 这样学生可以比较容易地理解和掌握数据结构的基本理论和方法; (2) 案例应具有内容的完整性、真实性和典型性特点, 与实际生活相联系; (3) 案例的选择应考虑到学生的专业特点, 选择与学生专业相关的内容, 尽量贴近学生的兴趣点; (4) 案例应该系统化。

3.2 理论与实践相结合教学法

C语言的教学分为理论教学和实践教学两个环节, 二者相辅形成, 互为补充, 缺一不可。教学流程是首先教师要根据教材内容或先讲解理论再举实例进行说明, 或在理论中穿插实例, 然后布置相应的实验题目;其次要指导学生进入机房实践操作, 让学生明白实验的目的, 每个题目的算法设计, 在实验过程中常出现的问题及解决方法, 在实验的过程中, 学生要做好实验报告;再次, 实验结束后, 教师要收好实验程序和报告, 根据学生的实践结果, 得出总结, 分析学生出现问题较多的地方, 然后到下一次理论课上再给学生强调说明。

3.3 实验题目层次化

在设计实验的过程中, 要综合考虑学生的编程基础和专业水平。不同学生的编程基础不同, 接受新知识的能力各异, 使用一两个实验就想要学生们在对知识的掌握上达到相同的水平是不现实的。为充分调动不同层次学生的积极性, 使学生都能在实验中有所收获, 在同一个实验中根据学生编程基础的不同设计不同的任务是有效的方法, 这样任务难度有高有低, 学生的学习兴趣会一直保持下去, 对于学好这门课程也会有着充足的信心。例如在做“数组”这一实验中, 按照难易程度从低到高, 可以设计出初级题目:一维数组和二维数组数据的输入、求和 (或求平均值) 、数组值的输出;中级题目:冒泡法、选择法排序等[3];高级题目:筛选法求100以内的素数、输出杨辉三角前20行等[4]。

3.4 考试方式多样化

改变单一的笔试考试方法, 将理论知识的考核同上机实践的考核相结合, 全面地检验教学成果。笔试的侧重点是考核学生对该课程基本知识和理论的掌握情况, 比较片面, 不能准确分析学生的水平。上机实践也就是技能考核, 针对的是学生编制程序和使用计算机解决实际问题的能力, 该部分考核要在机房让学生真正操作运行, 以全国计算机等级考试的模拟系统为考题。

考核学生对这门课程的掌握程度不能由一次考试决定, 要采用分散成绩的评定方式, 采用平时成绩占10%, 平时作业练习占20%, 实践编程考核成绩占30%, 期末考试成绩占40%的成绩评定模式[5]。

3.5 加强实验环节

做实验的目的有三个, 一是让学生加深对授课内容的理解, 单纯的理论性的课堂讲解, 枯燥乏味, 学生很难理解并记住, 特别是语法规定, 只有经过多次上机实验, 才能熟练地掌握。二是帮助学生熟悉C语言的开发环境。三是让学生真正学会上机调试程序, 发现程序中隐藏的错误, 并及时地排除错误, 保证程序正常运行, 而不是单纯地去验证程序的对错。

在上机实验前应事先做好准备工作, 以提高上机实验的效率。准备工作如下: (1) 充分了解和熟悉所用的C语言编译系统。 (2) 复习与本次实验有关的教学内容。 (3) 准备好上机所需要的程序 (一般要写注释) 。 (4) 对操作过程中可能遇到的问题做出估计, 对自己不理解有疑问的地方做出标记, 以便在上机时注意。 (5) 准备好调试和运行时测试的数据。

实验后, 应及时整理出实验报告。实验报告应包括以下内容: (1) 题目。 (2) 实验目的和内容。 (3) 程序清单。 (4) 运行结果。 (5) 总结此次程序调试的经验教训, 对于未能通过的程序, 认真分析原因。

4 结束语

本文针对我院信管专业本科学生在C语言的教学过程尤其是实践教学中存在的问题, 给出了实际有效的解决方法, 并已成功将此方法应用于我院信管专业11、12、13等3个年级, 受到了本专业学生和同事的好评。最终有效地提高了学生动手编程的能力, 以及自主分析和解决问题的能力。

参考文献

[1]耿国华.数据结构-C语言描述[M].北京:高等教育出版社, 2010, 5.

[2]宗瑜.案例教学法与《数据结构》教学改革[J].皖西学院学报, 2009, 25 (2) :30-31.

[3]谭浩强.C程序设计 (第三版) [M].北京:清华大学出版社, 2005.

[4]谭浩强.C程序设计题解与上机指导 (第三版) [M].北京:清华大学出版社, 2005.

c语言课程实践 篇8

关键词:scrum;C语言;课程设计;项目

C语言是一种实践性非常强的课程,从教学的效果上看,尽管学生掌握了很多与C语言相关的语法知识,但是学生在解决C语言实际应用问题时漏洞百出,包括程序流程不清、基本语法改错能力较差以及查找逻辑错误能力较弱等。

一、Scrum敏捷开发概述

Scrum的开发团队总是先开发对客户具有较高价值需求的产品。在每个Sprint中,Scrum开发团队从产品Backlog中挑选最有价值的需求进行开发。Sprint中挑选的需求经过Sprint计划会议上的分析、讨论和估算得到一个Sprint的任务列表,我们称它为Sprint backlog。在每个迭代结束时,Scrum团队将交付潜在可交付的产品增量。

二、Scrum敏捷开发在C语言课程设计的应用

由于C语言课程设计是一门实践性非常强的课程,本文将scrum敏捷开发方法应用到C语言课程设计上。根据敏捷开发的思想,以学生为核心,加入scrum开发方式,培养学生的团队合作精神、创新能力以及编程能力。通过项目任务的方式引导学生主动思维,主动学习,深刻理解软件设计的思想,加深他们对C语言重要知识点的理解。具体的安排为,将课程设计密集地安排在一周,给学生提供充分的上机时间。

1.项目分组及角色扮演

小组的角色分配按照Scrum敏捷开发方式分为三个角色,即产品负责人、Scrum Master、团队。产品负责人的职责为,确定课设题目的功能,决定发布的日期与内容,接受或拒绝接受开发团队的工作成果。Scrum Master的职责为,能够及时地为团队成员提供帮助,保证各个角色及职责的良好协作,解决团队开发中的障碍,做为团队和外部的接口,屏蔽外界对团队成员的干扰,保证开发过程按计划进行。团队的职责为开发、测试、界面设计等,确保课程设计达到阶段性与总体性目标,并且团队成员在每个阶段性目标内不能变化。

2.项目具体设计过程

首先每个小组将课程设计的题目按照功能的核心程度,进行sprint块状划分,将最重要的,最核心的部分先进行设计。小组内要召开sprint计划会议,确定功能块需要完成的任务,并将任务的关键程度进行分配,分配给每个成员。在这一个步骤中,任务是以小时计算的,而并不是按天计算的。

其次,课程设计小组进入sprint开发周期,在这个周期内,每天需要召开Daily Scrum 会议。整个sprint周期结束,召开Sprint验收会议,将成果演示给教师。

最后,小组成员召开Sprint终结会议,小组成员互相总结问题与经验。这样周而复始,按照同样的步骤进行下一次Sprit。

本文提出了在C语言课程设计中引入敏捷开发scrum项目教学模式,介绍了Scrum概念以及Scrum敏捷开发在C语言课程设计的具体应用,通过本文提出的C语言课程设计模式,能够使学生有效地提高自主学习能力、协调能力以及团队合作精神。

参考文献:

[1]刘磊.项目课程视野中教师课程能力解析[J].职教通讯, 2011(01).

[2]刘磊.项目课程实施之学习模式探究[J].新疆职业教育研究,2010(03).

上一篇:辅导班校长工作计划下一篇:先进制造技术发展现状