c程序设计课程作业

2024-08-03 版权声明 我要投稿

c程序设计课程作业(推荐8篇)

c程序设计课程作业 篇1

设计一个学生成绩管理系统,该系统记录了全班同学语文数学英语3门课程的成绩,并对成绩进行管理。主要功能如下:

1)具备对成绩的管理功能(添加、删除、排序)

2)具备对课程成绩的统计功能(最高分,最低分,平均分,及格率等)

3)具备按学号、姓名、或课程名查询成绩的功能。

4)具备将学生成绩写入文件,并从文件读入学生成绩的功能

备注:成绩记录以下信息:班级,学号,姓名,课程成绩(百分制)。可以用能表示学生成绩的结构体数组存储数据。

设计要求

1.分析课程设计题目的要求

2.写出详细设计说明

3.编写程序代码,调试程序使其能正确运行

4.设计完成的软件要便于操作和使用

c程序设计课程作业 篇2

辽宁机电职业技术学院各电气类专业都开设《单片机原理与接口技术》课程。由于现在单片机编程使用C语言, 因此增设了《单片机C51程序设计》课程, 那么《C语言程序设计》作为其先导课程, 它的开设就是十分必要的。该课程已是计算机程序设计语言类专业基础课。

一、《C语言程序设计》课程的改革

《C语言程序设计》作为一门专业基础课, 其教学要真正体现“专业”、“基础”的特点。因此, 在教学中一直探索两个问题, 一是如何让学生能轻松掌握C语言的基本语法知识、程序结构等程序设计的基础;二是如何使学生学以致用, 能根据设计要求, 熟练地使用C语言进行程序设计, 并熟练调试程序, 为后续课程学习和应用打下基础。前者是知识的传授问题, 后者是应用能力的培养问题。

在传统的教学过程中, 教学出发点是学习语言, 注重C语言的语法学习, 将学生陷入繁琐的语法学习中, 过分强调了知识的传授, 而没有注重学生能力的培养。因此, 学生普遍反映C语言枯燥、难学, 学完也还是不会独立编程, 更不知道和自己的专业以及后续课程有什么联系, 当然也培养不了学生分析问题、解决问题等应用能力。我院在《C语言程序设计》课程实施中, 对教学模式、教学内容、教学方法等进行了改革。

二、《C语言程序设计》课程采用项目教学法的实施过程

将项目教学法应用于《C语言程序设计》课程教学, 为了达到既能让学生掌握C语言基础知识, 又能培养学生的能力, 我们采取任务驱动法, 即以项目为驱动力, 从分析任务开始, 讲解完成任务所需要的编程知识和技能, 在讲授知识点过程中, 引发学生解决实际问题, 最后, 以小组讨论形式共同设计制作完成项目。具体实施过程如下:设计具体教学项目, 分析建立能力模块, 构建内容体系结构, 见表1。

项目教学的具体实施是教师和学生共同参与的教学行为 (见图1) 。通过教学过程设计流程图, 直观地说明在实施项目教学中, 教师行为、学生行为与教学活动的具体关系和项目教学过程的具体步骤。

三、实施过程中注意事项

为了达到项目教学的知识目标和能力目标, 在实施项目教学的过程中, 需要注意以下事项:

1. 合理选择教学项目

教学项目选择是实现教学目标的关键, 因此, 在选择项目时, 我们考虑了以下问题:所选项目是否包含C语言编程的关键知识点;所选项目是否是现实的、实用的;所选项目是否能充分实现学生能力的培养;所选项目能否调动学生学习的积极性;另外, 项目的难度是否适中。

2. 教师要发挥好协助作用

项目教学要以学生为中心, 充分发挥学生的主动性、创造精神及自我评价能力。教师要给学生创造学习的环境, 提供学习资源, 另外在项目实施过程中, 教师的指导作用是不可忽略的, 教师要积极参与到学生的讨论中去, 并能在每个项目结束时给出正确的学习效果评价。

3. 学习效果评价一定要合理

要以学生完成项目的综合情况来评价学生学习效果, 评价内容包括学生参与各环节的表现、完成作业的质量, 另外还要注重学生在项目实施过程中能力的发展。要适时鼓励学生, 支持学生对所学内容及学习过程的思考, 鼓励他们多提出问题、分析问题、解决问题, 发挥他们学习的主动性、积极性。片面的、不正确的评价可能会阻碍学生的思考, 或削弱学生的学习自信心。

改革后的《C语言程序设计》课程, 使学生通过项目编程, 掌握语言的编程知识, 培养了编程实践能力, 同时也培养了分析问题、解决问题的能力, 发挥了创新和协作精神。

参考文献

C语言程序设计课程的教学探索 篇3

关键词:C语言程序设计 课程教学 教学效果 教学方法

C语言是国内外广泛使用的计算机语言,学会使用C语言进行程序设计是计算机工作者的一些基本功。C语言程序设计是计算机相关专业的一门专业基础课。在计算机课程体系中,C语言程序设计是学习其他计算机课程的基础,也是引领学生进入计算机学科领域的第一门课程,学生学习C语言程序设计的效果,将对其他课程的学习积极性产生影响。因此,C语言程序设计课程的教学显得非常重要。作者根据多年从事C语言程序设计课程的实践,对该课程教学实践中遇到的若干问题进行整理,并提出一些解决思路,以供同仁们参考。

一、培养学生的学习兴趣

C语言程序设计课程是计算机相关专业学生所接触的计算机类课程的先行课程之一,学生在学习这门课程时,往往对程序设计满怀期望和好奇心。教学初期,要把握时机,对学生好奇心理加以利用,提高学生学习兴趣,提高学习效果。随着课程的深入,所学内容逐渐增多、学习难度加深,教师如不一如既往地特意培养学生学习兴趣,学生在学习中遇到的各种挫折都可能打击其学习兴趣。教学中、后期,要调用各种教学方法和手段,强化学生的学习兴趣。可以根据教学内容设计适宜的、学生感兴趣的题目供学生讨论,在讨论中以学生为中心,并进行适当的引导,使讨论富于情趣,寓教于乐,达到较好的教学效果,强化学生的学习兴趣。比如,在讲授起泡发排序时,教师先用多媒体课件将算法思想陈述清楚,然后随机抽取教室中就坐的一列学生,由全体学生根据算法思想对抽取的同学的身高进行排序,这样可以让所有学生在都参与算法的演示,以加强学生对算法思想的理解,在轻松愉悦的环境中培养学生的学习积极性。

二、授予算法思想

C语言程序设计课程的是一门专业基础课,其教学目标就要体现“专业”与“基础”两个方面。一是,使学生掌握各种C语言本身的语法与程序结构,二是,使学生通过该门课程的学习掌握一定的算法和常用子程序的编程实现,学会用C语言编写程序,实现所需处理的任务,为后续课程打下坚实的基础。

算法是程序的核心,是程序的靈魂。语法是程序的外壳,是程序的工具。教学中,要处理好算法与语法的关系。不能把重点放在语法规则上。语法是重要的,掌握不好语法就无法编写出正确的程序,但是,只学会语法,甚至把语法背得滚瓜烂熟,也不可能编写出好的程序。要把重点放在算法思想上,通过大量的实例讲解和练习使学生学会怎样设计算法,编写程序,解决实际问题。算法思想与语法知识的关系就如“授予渔”与“授予鱼”的关系。教育不是要“授予鱼”,而是要“授予渔”。因此,C语言程序设计课程“授予算法思想”最为重要。

三、改进教学方法

在教学实践中采用多媒体教学与传统教学相结合的方法。多媒体教学信息量大、变换快速、表现直观、操作简便,教学活动很容易出现课件喧宾夺主的不良倾向;教师容易忽视教学策略和教学方法,忽视教学难点和重点,忽视与学生的交流;学生忙于观看课件,无暇做笔记,无暇思考。因此,在C语言程序设计课程中一定要注重适时适当地采用一些传统的教学方法,加强与学生的交流,在课堂中注重与学生的互动,杜绝采用填鸭式教学方法。教师要从学生的主宰转变为学生学习的引导者,课堂教学要从过去的“满堂灌”“填鸭式”转变为学生自主探讨,尽可能把时间还给学生,使学生从被动的“受教育者”转变为主动的“探索者”。

此外,教师要注意在每一堂课结束之后对所学内能进行归纳小结,整理教学内容的内在联系。在整门课程的教学过程中,注重各种C语言程序结构之间及数组、函数、指针、结构体与共用体之间的比较,使学生总览全局,对各种C语言程序结构之间及数组、函数、指针、结构体与共用体之间的差异和联系有宏观的把握,促进对各种C语言程序设计知识的理解和掌握。

四、抓好实验教学

程序语言的学习最终的目标就是能够熟练地根据具体问题设计适合的算法将其转变为C语言程序,解决实际问题。所以,实验是C语言程序设计课程必学、必练的教学环节。学生对实验内容的掌握程度直接反映学生对C语言程序设计课程的掌握程度。

C语言程序设计课程是计算机相关专业学生的开设的第一门专业基础课,学生对该课程的学习思维的把握需要一个循序渐进的过程。因此,在实验教学中,教师要把握循序渐进的度。一开始,可以学生非常熟悉的问题设计实验内容,在实验中为学生给出完整的实验程序,其目的是让学生掌握C语言程序设计课程的上机环节及编程的基本方法。接下来,可以根据第一次的实验,设计一个有关语句、语法、程序结构等环节的实验内容,是学生对C语言程序的基本结构、基本的语法特点有一个总体的印象。之后便可以根据教学内容来设计实验内容。

在实验教学中,对于实验内容的设计除了要与教学内容相结合外,还要注意实验内容满足学生的兴趣。而且,一定要把握好实验预习、准备关。除了最初的两次实验之外,其他的实验,一定要要求学生做好充分的准备,严格要求学生在实验之前提交实验程序。我们的做法是将课后作业与实验内容合二为一,学生因为对布置的内容有准备,所以尽管实验内容多,但也能较好地完成,能较好地达到实验教学的预期目标。而且,学生对自己的学习目标的达成及完成情况更加清晰、明确,对于C语言程序设计课程的学习亦随着实验内容的增多和。

五、结束语

C语言程序设计课程具有鲜明的实践目标性,教学中,教师一定要结合学生实际,合理设计教学内容及教学环节,用恰当的方法方式引领学生进入更加广阔的计算机相关专业领域。

参考文献:

C语言课程设计程序 篇4

//定义学生结构体,st数组。

int score[5];float jqave;int rank;}st[27];

struct kecheng { int num;char kcname[20];

//定义课程结构体,course数组.float xuefen;float biaozhuncha;int youxiu;int lianghao;int zhongdeng;int jige;int bujige;

}course[5];

void readdata1(){

int i,j;

char str1[100];

FILE *f1;

f1=fopen(“c:xinji110213.txt”,“r”);

fgets(str1,100,f1);// printf(“%-s”,str1);

for(i=0;i<27;i++)

{

fscanf(f1,“%d%s”,&st[i].num,st[i].name);

// printf(“%-4d%-10s”,st[i].num,st[i].name);

for(j=0;j<5;j++)

{

fscanf(f1,“%d”,&st[i].score[j]);// printf(“%-9d”,st[i].score[j]);}

// printf(“n”);}

fclose(f1);}

void readdata2(){

int k;

char str2[100];

FILE *f2;

f2=fopen(“c:xj02kc.txt”,“r”);

fgets(str2,100,f2);// puts(str2);

for(k=0;k<5;k++)

{

fscanf(f2,“%d%s%f”,&course[k].num,course[k].kcname,&course[k].xuefen);

// printf(“%-8d%-10s%2.1fn”,course[k].num,course[k].kcname,course[k].xuefen);

}

fclose(f2);} void jqave(){ int i,j;float s=0,sum=0;for(i=0;i<27;i++)

{

for(j=0;j<5;j++)

{

s+=course[j].xuefen;

sum+=st[i].score[j]*course[j].xuefen;

}

st[i].jqave =sum/s;

} }

void ranking()

{ int i,j;

for(i=0;i<27;i++){

st[i].rank=1;

for(j=0;j<27;j++)

if(st[i].jqave

st[i].rank=st[i].rank+1;} }

void paiminghoudechengji(){ int i,j;FILE *fp;fp=fopen(“c:MC110213.txt”,“w”);printf(“ 名次 学号

姓名

数学分析

高等代数

C语言

大学物理

大学艺术

加权平均分 n”);fprintf(fp,“ 名次 学号

姓名

数学分析

高等代数

C语言

大学物理

大学艺术

加权平均分 n”);

for(i=0;i<27;i++)

{

printf(“%3d%5d%8s”,st[i].rank,st[i].num,st[i].name);

fprintf(fp,“%3d%5d%8s”,st[i].rank,st[i].num,st[i].name);

for(j=0;j<5;j++)

{

printf(“%10d”,st[i].score[j]);

fprintf(fp,“%10d”,st[i].score[j]);

}

printf(“%12.2fn”,st[i].jqave);

fprintf(fp,“%12.2fn”,st[i].jqave);} fclose(fp);}

void xiechengji(){ int j;FILE *fp;fp=fopen(“c:xj1110213.txt”,“w”);fprintf(fp,“ 编号

课程名称

课程学分

标准差

优秀

良好

中等

及格

不及格

n”);printf(“ 编号

课程名称

课程学分

标准差

优秀

良好

中等

及格

不及格

n”);for(j=0;j<5;j++)

{

printf(“%3d%15s%10.2f”,course[j].num,course[j].kcname,course[j].xuefen);fprintf(fp,“%3d%15s%10.2f”,course[j].num,course[j].kcname,course[j].xuefen);

printf(“%10.1f%8d%8d%8d%8d%6dn”,course[j].biaozhuncha,course[j].youxiu,course[j].lianghao,course[j].zhongdeng,course[j].jige,course[j].bujige);

fprintf(fp,“%10.1f%8d%8d%8d%8d%6dn”,course[j].biaozhuncha,course[j].youxiu,course[j].lianghao,course[j].zhongdeng,course[j].jige,course[j].bujige);

} fclose(fp);}

void pingjunfen(){ int i,j;

for(j=0;j<5;j++)

{

float zongfen=0,pingjunfen=0;

for(i=0;i<27;i++)

zongfen+=st[i].score[j];

pingjunfen=zongfen/27;

} }

void biaozhuncha(){

int i,j;

for(j=0;j<5;j++){

float zongfen=0,pingjunfen=0,x=0;

for(i=0;i<27;i++)

zongfen+=st[i].score[j];

pingjunfen=zongfen/27;

for(i=0;i<27;i++)

x+=(st[i].score[j]-pingjunfen)*(st[i].score[j]-pingjunfen);

course[j].biaozhuncha=(float)sqrt((x/27));

} }

void count(){

int i,j;

for(i=0;i<5;i++)

{

course[i].youxiu=0,course[i].lianghao=0,course[i].zhongdeng=0,course[i].jige=0,course[i].bujige=0;

for(j=0;j<27;j++)

{

if(st[j].score[i]<60)

course[i].bujige++;

else if(st[j].score[i]<=69)

course[i].jige++;

else if(st[j].score[i]<=79)

course[i].zhongdeng++;

else if(st[j].score[i]<=89)

course[i].lianghao++;

else

course[i].youxiu++;

} } }

void chengjitiao(){

int i,j;FILE *fp;fp=fopen(“c:cjt110213.txt”,“w”);do

{ printf(“请输入你要查询的编号

退出请按零”);

scanf(“%d”,&i);

fprintf(fp,“ 编号

姓名

数学分析

高等代数

C语言

大学物理

大学艺术

加权平均分

名次n”);printf(“ 编号

姓名

数学分析

高等代数

C语言

大学物理

大学艺术

加权平均分

名次n”);if(i>=0&&i<=26)fprintf(fp,“%3d%10s”,st[i-1].num,st[i-1].name);

printf(“%3d%10s”,st[i-1].num,st[i-1].name);for(j=0;j<5;j++){

printf(“%9d”,st[i-1].score[j]);

fprintf(fp,“%9d”,st[i-1].score[j]);} printf(“%12.2f%8dn”,st[i-1].jqave,st[i-1].rank);fprintf(fp,“%12.2f%8dn”,st[i-1].jqave,st[i-1].rank);fclose(fp);} while(i>0&&i<28);

}

void bujigexueshengmingdan(){

int i,j;

printf(“不及格学生名单如下:n”);printf(“ 学号

姓名

不及格课程

分数

n”);for(i=0;i<27;i++){

for(j=0;j<5;j++)

if(st[i].score[j]<60)

{printf(“%3d%12s”,st[i].num,st[i].name);

printf(“%15s%8dn”,course[j].kcname,st[i].score[j]);

// printf(“

平均分”);

// printf(“%10.2f

名次%8dn”,st[i].jqave,st[i].rank);

}

} }

void youdeng(){ int i,k;printf(“ 优等生名单如下n”);printf(“编号

姓名

数学分析

高等代数

C语言 大学物理 大学艺术 加权平均分

名次n”);for(i=0;i<27;i++){ // for(j=0;j<5;j++)

if(st[i].jqave>=90||st[i].rank<=3)

{

printf(“%2d%10s”,st[i].num,st[i].name);

for(k=0;k<5;k++)

printf(“%9d”,st[i].score[k]);

printf(“%10.2f%8dn”,st[i].jqave,st[i].rank);

}

else;

} }

void caidan()

{ loop: printf(“

&&简易教学管理系统&&n”);

printf(“press 1 for

排名后的成绩表

!n”);

printf(“press 2 for

各科成绩情况!n”);

printf(“press 3 for

成绩条!n”);

printf(“press 4 for

不及格学生名单!n”);

printf(“press 5 for

优等生名单!n”);

printf(“press 0 for

退出n”);

int t;

scanf(“%d”,&t);

switch(t)

{

case 1:

paiminghoudechengji();break;

case 2:

xiechengji();break;

case 3:

chengjitiao();break;

case 4:

bujigexueshengmingdan();break;

case 5:

youdeng();break;

case 0:

exit(0);

}

goto loop;

}

void main(){

readdata1();

readdata2();

jqave();

ranking();

pingjunfen();

biaozhuncha();count();

c课程设计 篇5

完成一个类似TC集成系统菜单的西文下拉菜单的设计,支持鼠标,不要求实现个子菜单的功能,界面仿turboc2.0系统菜单.二、课程设计的要求与数据

1、进一步掌握和利用C语言进行程设计的能力;

2、进一步理解和运用结构化程序设计的思想和方法;

3、初步掌握开发一个小型实用系统的基本方法;

4、学会调试一个较长程序的基本方法;

5、学会利用流程图或N-S图表示算法;

6、掌握书写程序设计开发文档的能力。

三、课程设计应完成的工作

1、编写完成相应题目的程序;

2、编写课程设计报告,课程设计报告的内容应包括以下6个部分:

1)需求分析:包括设计题目、设计要求以及系统功能需求分析; 2)总体设计:包括系统总体设计框架和系统功能模块图;

3)详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图; 4)调试分析过程描述:包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等,适当的包含结果截图); 5)总结:课程设计完成了哪些功能,有没有什么扩展功能?还有哪些地方需要改进?课程设计过程中的学习体会与收获、对本次课程设计的认识以及自己的建议等内容;

6)附录:主要源程序代码,含必要的注释。

3、答辩:在实验室建立程序运行的环境,并在指导教师的监督下,独立解决问题、运行程序和回答教师提出的问题。

四、课程设计进程安排 序号设计各阶段内容

地点起止日期 1 下达任务书,说明设计要求;收集资料

实验3#517 6.18 2 总体方案设计、详细设计实验3#517 6.19 3 编写程序,调试分析实验3#517 6.20 4

撰写报告并上交,答辩 实验3#517 6.21

五、应收集的资料及主要参考文献

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

[2] 谭浩强.C程序设计题解与上机指导(第三版)[M],北京:清华大学出版社,2005.7 [3] 刘振安.C程序设计课程设计,北京:机械工业出版社,2004.9 发出任务书日期: 2007年 6 月 18 日指导教师签名: 计划完成日期:

2007年 6 月 22 日基层教学单位责任人签章:

主管院长签章:

目录设

目的与

要求………………………………………………………………页码

设计………………………………………………………………………

设计………………………………………………………………………页

3.1

设计………………………………………………………………页码

3.1.1 XX

(可选)…………………………………………………页码 3.1.1 YY功

(可选)…………………………………………………页码 3.1.1 ZZ功

(可选)…………………………………………………页码 3.2数据结构设计………………………………………………………………页码

分析……………………………………………………………………页码

总结………………………………………………………………………

附录……………………………………………………………………………页码 6 答辩记录(正文处请留出适当空白)………………………………………页码 7 指导教师意见(正文处请留出十行空白)…………………………………页码 目的与要求

完成一个类似TC集成系统菜单的西文下拉菜单的设计,支持鼠标,不要求实现个子菜单的功能,界面仿turboc2.0系统菜单.总体设计 详细设计 #include“stdio.h”

#include“stdlib.h” #include“dos.h”

#include“conio.h”

#include“bios.h”

#define DOWN 0x5000

#define UP 0x4800

#define Esc 0x011b

#define ENTER 0x1c0d

#define Backspace 0xe08

#define ALT_B 12288 /*组合键alt+b*/ int key;

inttextx,texty;

char save[4096];char c[4096];structmenustruct

{

char name[40];charstr[11][20];int n;}m1[1];inti,j;void menu()

{

system(“cls”);

textbackground(BLUE);window(1,1,25,80);

clrscr();

textx=3;texty=2;gotoxy(1,2);printf(“%c”,218);for(i=0;i<78;i++)printf(“%c”,196);printf(“%c”,191);for(i=3;i<=23;i++)

{

gotoxy(1,i);

printf(“%c”,179);

gotoxy(80,i);printf(“%c”,179);

}

printf(“%c”,192);for(i=0;i<78;i++)printf(“%c”,196);printf(“%c”,217);gotoxy(1,1);

textcolor(7);

for(i=0;i<80;i++)cprintf(“%c”,219);selectitem();

drawselectitem();gettext(2,3,78,23,c);

}

selectitem(){

strcpy(m1[0].name,“*************menu*************”);strcpy(m1[0].str[0],“ intput ”);

strcpy(m1[0].str[1],“ consult ”);strcpy(m1[0].str[2],“ output ”);strcpy(m1[0].str[3],“ modify ”);strcpy(m1[0].str[4],“ delete ”);strcpy(m1[0].str[5],“ recover ”);strcpy(m1[0].str[6],“ add ”);strcpy(m1[0].str[7],“ save ”);strcpy(m1[0].str[8],“ open ”);

strcpy(m1[0].str[9],“ tong ji ”);strcpy(m1[0].str[10],“ exit ”);m1[0].n=11;

}

drawselectitem()

{

for(i=0;i<3;i++)

RedText(i,1,m1[i].name);

}

RedText(intx,inty,char *z)

{

textbackground(7);gotoxy(3+x*20,y);for(j=0;z[j];j++)

{

if(j==0)

textcolor(RED);else textcolor(BLACK);cprintf(“%c”,z[j]);

} }

BlackText(intx,inty,char *z)

{

textbackground(0);textcolor(15);gotoxy(3+20*x,y);cputs(z);

}

Run(){

while(1)

{

gotoxy(textx,texty);

key=bioskey(0);switch(key)

{

case ALT_B:

case Esc:DrawM1(0);break;

case UP:

{

if(textx==3)textx=23;textx--;gotoxy(texty,textx);

} break;

case DOWN:

{

if(textx==23)

textx=3;textx++;

gotoxy(texty,textx);

} break;

case Backspace:

{

if(texty==2&&textx==3)

continue;else {

if(texty!=2)texty--;else if(texty==2)

{

texty=78;textx--;

}

gotoxy(texty,textx);

printf(“ ”);

gotoxy(texty,textx);}

}break;

case ENTER:

{

if(textx==23)continue;textx++;texty=2;

gotoxy(texty,textx);

}break;default:

{

if(texty==79&&textx==23)continue;else if(texty==79&&textx!=23)

{

textx++;texty=2;}

gotoxy(texty,textx);printf(“%c”,key);if(texty==79)continue;else texty++;

}

}

}

}

DrawFrame(intl,intu,intr,intd,inttcolor,intbcolor)

{

textbackground(bcolor);textcolor(bcolor);for(i=1;i<=r;i++)

{

for(j=u;j<=d;j++){ gotoxy(i,j);

printf(“%c”,219);

}

}

textcolor(tcolor);for(i=u+1;i

{

gotoxy(1,i);

cprintf(“%c”,179);gotoxy(r,i);

cprintf(“%c”,179);

}

for(i=l+1;i

{

gotoxy(i,u);

cprintf(“%c”,196);gotoxy(i,d);

cprintf(“%c”,196);

}

gotoxy(l,u);

cprintf(“%c”,218);gotoxy(r,u);cprintf(“%c”,191);gotoxy(l,d);

cprintf(“%c”,192);gotoxy(r,d);

cprintf(“%c”,217);

}

DrawM1(int n)

{

gettext(1,1,80,25,save);BlackText(n,1,m1[n].name);

DrawFrame(3+20*n-1,2,3+20*n+19,3+m1[n].n,0,7);

for(i=3;i<3+m1[n].n;i++)

{

if(i==3)

BlackText(n,i,m1[n].str[i-3]);

else RedText(n,i,m1[n].str[i-3]);

}

gotoxy(79,1);MoveM1(n,3);

}

MoveM1(intn,int x){

int flag=1;while(flag)

{

gotoxy(79,1);key=bioskey(0);gotoxy(79,1);switch(key)

{

case Esc:

puttext(1,1,80,25,save);flag=0;break;case UP:

RedText(n,x,m1[n].str[x-3]);if(x==3)

x=3+m1[n].n-1;else x--;

BlackText(n,x,m1[n].str[x-3]);flag=1;

break;case DOWN:

RedText(n,x,m1[n].str[x-3]);if(x==(3+m1[n].n-1))x=3;else x++;

BlackText(n,x,m1[n].str[x-3]);flag=1;break;

case ENTER:

puttext(1,1,80,25,save);

Enter(n);flag=0;break;

}

gotoxy(79,1);

}

}

Enter(int m)

{

switch(m){

case 0: printf(“ student input”);break;

case 1: printf(“ student consult ”);break;case 2: printf(“ student output ”);break;case 3: printf(“ student modify ”);break;

case 4: printf(“ student delete ”);break;case 5: printf(“ student recover”);break;case 6: printf(“ student add”);break;case 7: printf(“ student save ”);break;case 8: printf(“ student open ”);break;case 9: printf(“ student tong ji”);break;case 10: printf(“ student exit”);exit(0);

}

}

main(){

menu();Run();

c程序设计课程作业 篇6

一、题目

1、实用的通讯录管理

2、单科课程成绩管理

3、多功能网址收藏管理

4、图书信息管理

二、调试环境

TurboC++3.0或者VC++6.0 所有同学必须提交实验报告电子版一份,内容包括: 1.课程设计说明书

2.源代码和注释、编译链接生成的目标文件、可执行文件(请将所有文件压缩成rar格式一并提交)

三、注意事项

(一)独立完成

任何人不得抄袭、拷贝。凡发现实验报告或源程序雷同,涉及的全部人员后果自负。

(二)一人一题

一人一题,要求独立完成,清考学生可以自选任意一题。

(二)课程设计说明书要求 课程设计说明书有以下内容:

题目一 实用的通讯录管理

题目简述

现代社会人们之间的交往越来越多,通信录的建立和管理显得尤为重要。本课题旨在建立一个通讯录系统,系统中保存着各人员的姓名、电话、Email以及与本人的关系(亲戚、同学、朋友、同事等)等信息,通过该系统的简单界面可以对通讯录进行新建、浏览、查找、更新、删除等操作。

具体要求

1、基本功能:(1)添加记录

先判断链表是否已经存在。若不存在,需首先自动新建一个链表,然后再添加一条或多条通讯记录。(2)显示记录 显示当前所有记录。(3)查询记录

按名字查找,并显示该记录。(4)通信录排序

按姓名的字母顺序排序,涉及到冒泡等排序算法。(5)删除记录

实现逐条删除和删除全部记录两种功能。(6)更新记录

修改已存在记录的信息(提示:需首先判断该记录是否存在)。(7)按关系显示记录

只显示与本人有指定关系(亲戚、朋友、同事、同学)的记录。(8)保存记录

存储所有记录到某个文件(.txt)或缺省文件(Phonebook.txt)。(9)读入记录

从某个文件(.txt)或缺省文件(Phonebook.txt)读入所有记录。首先判断当前是否有记录在进行操作,若有,进行存储或放弃存储,然后释放内存空间,之后才能从文件读入记录。(10)退出

结束通讯录软件操作,释放内存后退出。

2、数据录入提示(1)Name 联系人姓名。为了实现排序,可以输入英文或拼音的姓名,便于调用字符串比较等函数进行比较排序。(2)Tel 可以为固定电话号码或手机号。(3)Email 输入时要根据@判断一下是否是正确的email地址格式。Email地址首位不能是下划线’_’,斜杠‘’或‘/’,点号‘.’等(类似对输入数据的判断可作为扩展,不是必须实现的功能)。(4)Relation 可以为Relative, Friend, Workmate或Classmate中的一种,用于进行条件显示,即只显示与本人有某种关系的记录。

3、其他实现提示

对于每一项功能,应该对可能出现的异常操作进行处理,如提示重新输入或给出错误提示后成功返回主菜单界面,以免软件运行异常退出或挂起。

除了基本功能和异常处理,鼓励进行以下扩展或改进:

 有创意的设计

 采用改进程序性能的其他方法(如执行效率、访问速度、占内存量、灵活性、可移植性等) 友好的输入界面;

 对输入数据的对错判断等;  功能扩展;

 程序的简洁明了和可读性等。

主要数据结构

结构体Address: 包含Name, Tel, Email, Relation(与本人的关系)以及Address类型的指针(用于链表操作)等成员变量。

具体技术

1.指针、结构体的应用

2.单向链表的建立,插入,添加及删除等 3.文件的读写

4.简单算法:如排序算法等 测试要求

1、要求准备至少有10条记录的通信录文件(addrlist.txt),便于进行上机测试;

2、对空链表、没有记录或没有文件等情况进行处理的验证;文件操作是否正确的验证;对记录进行操作的相关测试等;

3、就某些功能实现情况及其实现细节进行现场解答。

4、编译环境可为Turbo C++ 3.0 或 VC++ 6.0。

题目二 单科课程成绩管理

2.1 题目背景

依照学校教务处的规定,各位每门课的成绩的给出要依据三方面的内容,平时成绩、期中成绩和期末成绩,期中和期末均为满分制,平时成绩则主要由平时作业组成,可能由4次到5次等,每次10分。这三项按照任课组老师指定的百分比计算总评分,例如可能总评分=平时成绩×20%+期中成绩×20%+期末成绩×60%。

现在我们希望大家给老师们做一个这样的单科课程成绩管理系统,要求能够实现上面所说的要求,具体的规范如下。2.2 程序功能

本程序利用单链表存储结构完成对学生成绩的动态管理,要求实现如下的基本功能。

2.2.1 菜单操作

在屏幕上显示菜单,通过输入0-X之间的数字调用相应的功能函数。2.2.2 创建链表

即输入学生成绩信息,按照提示信息输入学号、姓名、各个平时成绩、期中成绩和期末成绩。注意:申请内存空间,验证输入数据是否符合要求,设置输入结束标志。2.2.3 显示链表

显示当前链表中的所有记录。注意输出格式的直观。2.2.4 删除记录

删除指定学号的记录。注意删除记录要释放该记录占用的内存空间。2.2.5 查询记录

按姓名查找并显示该记录。(可扩展为按照姓名和学号两种方式查找)2.2.6 插入记录

插入记录需要输入插入位置和新记录信息。输入某个记录的学号,新结点将插入在这个指定记录之前。2.2.7 更新记录

修改已存在记录的分量信息。2.2.8 保存文件

将学生成绩信息保存到指定文件(wgrade.txt)中。2.2.9 读取记录

从指定的文件(rgrade.txt)中读入所有记录。2.2.10计算: 根据结点的平时成绩、期中成绩和期末成绩,来计算每个人的总评分和所有人的平均分(平时的成绩的次数可通过N的宏定义来进行,而每项所占的比例可以在计算的时候进行输入)2.2.11排序

根据总评分进行排序,由高到低的顺序排列 2.2.12统计:

统计各个分数段的人数,不及格的,60-69的等,并保存到文件total.txt中。2.2.13退出

结束软件操作,释放内存后退出。2.3 数据结构

将一个学生的信息当作一个结点,这个结点的类型为结构体,其中至少含有下列类型的信息:学号、姓名、平时成绩(可多次)、期中成绩、期末成绩、总评分、名次,以及指向后续结点的指针等。2.4 功能扩展

可扩展程序功能,例如可集中录入某次平时作业的成绩等。鼓励有创意和实用的扩展。

2.5 测试要求

1、要求准备分别至少有10条记录的课程成绩文件(score.txt),便于进行上机测试;

2、对空链表、没有记录或没有文件等情况进行处理的验证;文件操作是否正确的验证;对记录进行操作的相关测试等;

3、就某些功能实现情况及其实现细节进行现场解答。

4、编译环境可为Turbo C++ 3.0 或 VC++ 6.0。

题目三 多功能网址收藏管理

题目简述

信息社会我们离不开Internet,网址的保存和管理将变得十分必要。本课题旨在建立一个多功能网址管理系统,系统中保存着各网址的命名、网址、收藏日期以及类别(学习、体育、音乐、健康等)等信息,通过该系统的简单界面可以对通讯录进行新建、浏览、查找、更新、删除等操作。

具体要求

1、基本功能:(1)添加记录

先判断链表是否已经存在。若不存在,需首先自动新建一个链表,然后再添加一条或多条通讯记录。(2)显示记录 显示当前所有记录。(3)查询记录

按命名查找,并显示该记录。(4)网址的排序

按网址的字母顺序排序,涉及到冒泡等排序算法。(5)删除记录

实现逐条删除和删除全部记录两种功能。(6)更新记录

修改已存在记录的信息(提示:需首先判断该记录是否存在)。(7)按关系类别显示记录

只显示与网址有指定关系(学习、体育、音乐、健康)的记录。(8)保存记录

存储所有记录到某个文件(.txt)或缺省文件(favorite.txt)。(9)读入记录

从某个文件(.txt)或缺省文件(favorite.txt)读入所有记录。首先判断当前 7 是否有记录在进行操作,若有,进行存储或放弃存储,然后释放内存空间,之后才能从文件读入记录。(10)退出

结束通讯录软件操作,释放内存后退出。

2、数据录入提示(1)命名

自己对网址的命名。为了实现排序,可以输入英文或拼音的姓名,便于调用字符串比较等函数进行比较排序。(2)域名

可以为ftp或www。(3)收藏日期

输入时要判断一下是否是正确的日期格式。(类似对输入数据的判断可作为扩展,不是必须实现的功能)。(4)类别

可以为学习, 体育, 音乐或健康中的一种,用于进行条件显示,即只显示与网址有某种关系的记录。

3、其他实现提示

对于每一项功能,应该对可能出现的异常操作进行处理,如提示重新输入或给出错误提示后成功返回主菜单界面,以免软件运行异常退出或挂起。

除了基本功能和异常处理,鼓励进行以下扩展或改进:

 有创意的设计

 采用改进程序性能的其他方法(如执行效率、访问速度、占内存量、灵活性、可移植性等) 友好的输入界面;

 对输入数据的对错判断等;  功能扩展;

 程序的简洁明了和可读性等。

主要数据结构

结构体Address: 包含Name, Domain, Date, Sort(与网址的关系)以及Address类型的指针(用于链表操作)等成员变量。

具体技术

1.指针、结构体的应用

2.单向链表的建立,插入,添加及删除等 3.文件的读写

4.简单算法:如排序算法等 测试要求

1、要求准备至少有10条记录的通信录文件(favorite.txt),便于进行上机测试;

2、对空链表、没有记录或没有文件等情况进行处理的验证;文件操作是否正确的验证;对记录进行操作的相关测试等;

3、就某些功能实现情况及其实现细节进行现场解答。

4、编译环境可为Turbo C++ 3.0 或 VC++ 6.0。

题目四 图书管理系统

3.1 程序功能

3.1.1 必须实现的功能

 图书信息录入功能,包括图书信息的插入、修改和删除。

 借阅人员信息录入和修改功能,包括借阅人员信息的插入、修改和删除。 借书功能;  还书功能;  预约功能;  统计输出功能:

 统计馆藏书籍总数、已借出图书总数、在馆书籍数等  统计过期书及其借阅者信息;

 所有图书的列表输出、所有读者信息的列表输出功能。3.1.2扩展功能(加分) 借阅人违章罚款功能

 图书的分类统计功能(如按出版社、中图分类号、出版年份分类等) 借阅权限设定,如:

 对读者进行分类,设置不同的最大借阅数量;  有超期书籍禁止借阅等。 违章统计,如:

 统计违章次数超过x次的所有读者

 按违章次数对有违章情况的读者进行排序等。3.2 提示与实现要求 3.2.1基本数据信息

图书资料基本信息:图书编号、中图分类号、书名、作者、出版社、出版日期、ISBN、版次、定价等。

图书的扩展信息:借阅状态(空闲、借出和预约)、借阅人或预约人(借书证号),借阅时间。

读者的基本信息:借书证号、读者姓名、读者单位、读者类别(本科生、研究生、教师)

读者的扩展信息:已借图书的册数等。3.2.2 数据结构

用两个链表分别存储图书信息和读者信息,具体的链表结构由同学们自行设计,可以采用较简单的单链表,也可以采用较为复杂的链表结构,如对于图书,可以先建立中图分类号的链表,对于每种分类则可以再组织一个单独的链表;对于读者,则可以先建立读者单位链表,为每个单位建立一个单独的读者链表。注:中图分类号可以在网上搜到,为了简化设计,不要求同学们细化中图分类号,只考虑大类,如:TB 一般工业技术,TD 矿业工程,TE石油、天然气工业,TF 金工业,TG 金属学,TH 机械TJ 武器工业,TK 动力工业,TL 原子能技术,TM 电工技术,TN 无线电电子学、通信技术,TP 自动化技术、计算技术等。3.2.3 功能提示

1)、图书和读者信息的插入功能:参照在链表中插入一个节点的方法。2)、图书和读者信息的插入功能:参照在链表中插入一个节点的方法。3)、图书和读者信息的删除功能:参照链表的删除操作方法。4)、图书和读者信息的修改功能:在链表中寻找相应的记录并修改。

5)借书功能:图书状态由空闲变为借出,借书读者的借书册数等相关信息发生变化。(可选:有超期图书的读者不能借书,超过借阅权限数不能借书)。6)还书功能:图书状态发生变化,由借出状态变为空闲或预约状态。7)预约功能:图书借出时才能由其他读者使用预约功能,该图书归还后只有预约读者才能借出。

8)统计功能:“统计馆藏书籍总数、已借出图书总数、在馆书籍数、统计过期书及其借阅者信息”等功能都可以通过遍历整个链表的方式得到;所有图书的列表输出、所有读者信息的列表输出功能同样可以用遍历链表的方式得到,要求输出结果分别存在books.txt和reader.txt文件中。测试要求

1、要求准备分别至少有10条记录的图书信息文件(bookt.txt)和读者信息文件(reader.txt),便于进行上机测试;

2、对空链表、没有记录或没有文件等情况进行处理的验证;文件操作是否正确的验证;对记录进行操作的相关测试等;

3、就某些功能实现情况及其实现细节进行现场解答。

4、编译环境可为Turbo C++ 3.0 或 VC++ 6.0。

附录二: 编程规范

1、空行

每个函数定义结束之后都要加空行。

在一个函数体内,逻揖上密切相关的语句之间不加空行,其它地方应加空行分隔。

2、代码行

一行代码只做一件事情,如只定义一个变量,或只写一条语句。这样的代码容易阅读,并且方便于写注释。

代码行最大长度宜控制在70至80个字符以内。

长表达式要在低优先级操作符处拆分成新行,操作符放在新行之首(以便突出操作符)。

if、for、while、do等语句自占一行,执行语句(包括{})不得紧跟其后。不论执行语句有多少都要加{}。这样可以防止书写失误。

3、空格

关键字之后要留空格。

赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符,如“=”、“+=” “>=”、“<=”、“+”、“*”、“%”、“&&”、“||”、“<<”,“^”等二元操作符的前后应当加空格。

一元操作符如“!”、“~”、“++”、“--”、“&”(地址运算符)等前后不加空格。

4、对齐

 程序的分界符‘{’和‘}’应独占一行并且位于同一列,同时与引用它们的语句左对齐。

 { }之内的代码块在‘{’右边数格处左对齐。

5、注释

每个函数之前需要对该函数的功能和接口进行说明。

边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。12 不再有用的注释要删除。注释应当准确、易懂,防止注释有二义性。错误的注释不但无益反而有害。

6、标识符命名

C语言程序设计课程教学探讨 篇7

1《C语言程序设计》课程教学的现状分析

(1) 学生编程能力差, 影响后续课程和就业方向。

通过对学生的观察和调查, 在完整学习《C语言程序设计》课程后能熟练掌握、灵活运用的学生为15%左右, 基本掌握的学生为30%左右, 大部分学生学习的目的仅仅为了应付考试, 甚至还有10%的学生采取完全放弃的态度。

(2) 语言程序设计是一门逻辑性强、难度较大的课程, 初学者很难采取有效的方法去引导。其中基本语法和程序结构学生能理解, 但对于算法分析和程序设计时却难以下手, 导致实际应用能力较差, 走上工作岗位后不能迅速适应企业的岗位要求。

(3) 一部分学生开始有兴趣, 但随着课程内容的深入, 有的内容需要记忆、思考, 难度增大了, 兴趣就减退了, 调动不起积极性, 觉得学习《C语言程序设计》很枯燥;还有一部分学生课堂上能听得懂, 但动手编程却无从下手, 脑子一片空白。

2 形成当前现状的主要原因

(1) 对《C语言程序设计》课程认识不足

部分学生认为只有毕业后从事计算机软件开发工作的才有必要学好C语言;还有部分学生认为现在C语言己经过时, 在当今软件领域中已无用武之地, 所以学不好也无所谓。正是这一错误的学习动机导致后期的学习非常地被动。

(2) 没有激发学生学习兴趣

《C语言程序设计》是一门涉及概念复杂, 灵活性大的课程, 随着深入学习, 许多学生会觉得枯燥乏味, 从而丧失学习兴趣。所以作为教师, 如何激发学生的学习兴趣, 是教学中亟待解决的问题。

(3) 上机目的不明确

如果教师在实践教学中所布置的上机任务不明确, 学生上机之前不清楚上机内容, 没有明确上机目的。就会使学生在上机时仅仅是将教师上课时所讲的例题在电脑上编辑, 不去对具体的算法进行分析也不会对所用的语法结构进行研究, 这样根本达不到实践的目的。

(4) 学生缺乏编程的自信心。编写程序对初学者来说是有一定难度的, 所以在课程教学过程中, 在学习数据类型等基本知识, 以及顺序、选择、循环基本结构时, 要采用一些适当简单的程序让学生完成, 避免程序过难, 学生有挫败感, 继而失去继续学习的信心和兴趣。

3 改进教学方法

(1) 从实例出发, 引出语法概念。

采用启发式教学, 不能满堂灌。如C语言中的三种基本结构, 可以先介绍三种基本结构, 再讲例题;也可以从一个数学问题的提出, 采用伪代码方式介绍算法, 再讲算法的细节、如何用计算机语言实现, 最后提出某一种基本结构。显然后一种方法对学生的启发更大, 也比较容易理解和接受。

(2) 上机实践采用任务驱动教学法。

在上机实践环节采用任务驱动法, 它既能发挥教师的主导作用, 又能体现学生认知的主体作用, 形成鲜明的“双主模式”。任务驱动法的特点是通过教师巧妙设计教学任务, 把知识蕴含于任务之中, 使学生通过完成任务掌握所学知识。学生在完成具体的任务过程中要对任务进行分析, 提出问题, 并实现解决问题的方案, 通过自主学习或者小组合作学习活动, 完成学习任务, 在完成任务的过程中, 培养学生分析问题、解决问题以及编写程序的能力。

(3) 讨论教学法。

在C语言教学过程中, 充分发挥学生的积极性与主动性是学好本课程的一个重要环节。《C语言程序设计》的最大的特点就是一个题目有多种解题的方法。对于这样的一个特点, 教师可以在习题课的教学中, 采用讨论式教学方法。在此过程中, 针对某一个问题, 学生可以积极提出自己的观点、提出解决问题的思路, 通过学生的讨论, 实现解决问题的多种方法, 同时, 也可以提高学生的团结协助能力, 利于充分挖掘学生的学习潜力。

(4) 强化课程设计。

对于初学者而言, 要想在较短的课堂教学时间内要较好地理解并掌握许多算法和数据结构的应用是很不容易的。如果课程学习完毕, 仅靠考试作为学生的最终分数, 只会强迫学生去死记硬背, 而达不到课程的教学目的。为了真正地提高学生的软件设计能力, 应该给他们一个理解消化再运用的过程。这个过程就是课程设计。在课程设计中, 让学生单独或者组队开发一个具有一定难度的小型系统, 要求在实验报告中提供从系统分析、数据模型、系统流程和程序的完整内容, 以此促进学生全面掌握本课程的内容。为了防止学生中相互抄袭现象的发生, 可以在学生提交大作业时, 通过当面提问问题、解释代码含义等方法进行避免。

(5) 传统教学与多媒体教学相结合

在《C语言程序设计》课程教学过程中, 教师应该根据本门课程的实际需要, 可以考虑将传统教学与多媒体教学进行有机的结合。对于讲解C语言的数据类型、变量类型、运算符、程序结构等, 因为它们的定义、概念较多, 又没有深奥的理论, 也没有多少逻辑推理, 所以教师可以采用多媒体教学, 使课堂教学不再显得枯燥无味。但对于案例分析或程序的编写过程, 则可以发挥传统教学的优势, 进行课堂讨论、板书讲解、结合提问, 将问题层层剖析、层层深入, 达到师生互动的效果, 学生的想象力就会得到充分地发挥, 对问题的理解也变得更容易。

4 结束语

《C语言程序设计》课程的教学内容是十分丰富的, 教学方法的采用应当以服务教学内容为准则, 教学是一种互动活动, 在教学活动中, 应当大力发挥教师的“教”的主导性, 调动学生“学”的积极性, 做到密切配合教学相长。在教学活动中, 不但要注意对C语言这门课的“精讲”, 而且要注重编程能力的培养。即不但要使学生“学会”一门语言, 更重要的是使学生“会学”, 培养学生的开拓性, 开发学生的创造性思维, 从而为掌握计算机这个工具, 更好地解决实际问题打下一个良好的基础。

摘要:针对《C语言程序设计》是计算机类专业的主要专业基础课之一, 其知识领域涉及面广, 根据教学中出现教师难教与学生难学的普遍现象, 分析存在的问题及原因, 提出只有教师的教学方法和教学技巧进行合理的优化组合, 使枯燥的课堂教学生动起来, 从而达到良好效果。

关键词:C语言程序设计,教学方法,学习兴趣

参考文献

[1]王洪敏.C语言教学方法之探讨[J].北京:教育纵横, 2007.

c程序设计课程作业 篇8

【关键词】C语言;教学方式;评价系统

1.引言

现阶段,我们国家的很多高职院校都将C语言看做是比较重要的课程,并且是计算机专业学习的基础,但是,经过相关调查显示,在学校任职的教师在对C语言进行教学的过程中,比较普遍的反映就是比较难教,并且在教学的过程中教师基本上比较注重基本的专业知识的培养,而学生在学习C语言的过程中基本上的反应都是比较难学,所以说在C语言的教学过程中无论教师还是学生都极为不满意。

经过笔者深入的调查研究发现,在实施C语言程序设计的教学过程中主要存在以下几个问题:第一,在教学的过程中教师处于主体地位,学生基本上只是负责接收教师教的基本理论知识,不能有效的和老师进行互动,不能积极的发表自己的观点。第二,在教学过程之中,对学生细微意识的培养还远远不够。第三,对于学生成绩的好坏进行的评价基本上都是以考试成绩进行评价的,这样的评价方式明显是不合理的。第四,对于学生独立思考的培养不够,虽然在教学结束之后学生能够进行简单的编程,但是其综合素质方面是十分不完善的。

2.问题一,转变教学观念和教学模式

在教学过程中要不断的重视学生自主能力的培养,在学习过程之中要不断引导学生积极主动的学习,进而使得他们在学习方式上有所转变。对于在教学的过程中教师的教学地位进行重新的定义,经过研究之后教师在教学的过程中其地位主要在下面几个方面体现:(1)负责对课程进行设计。在教学的过程中,教师对于案例进行合理的分析,然后在此基础上进行教学,主要的目的是对学生的思维能力进行培养,为学生架构比较完善的知识体系结构。(2)在学生之间组织共同学习。在C语言的教学过程中分成不同的小组,然后让小组之间经常进行交流,那么一定程度上能够培养学生独立思考的能力。在教学的过程中最为主要的是要让学生了解为什么要学些C语言,不然在学生不知道为什么学习的情况下进行学习,那么他的学习就会存在一定的盲目性。(3)教师在学生学习过程中还要扮演一个合作者的角色。在教学的过程中要对学生的优点进行肯定,对于不同的学习要采取适合他们的教学方法,培养学生的兴趣,对于不同学习程度的学生设计不同的学习目标。(4)在教学过程中要及时的进行反思。主要是对教学过程中的教育方式、态度以及教学的重点进行反思,在此基础上对教学的过程进行总结,使得教学水平有效的提高。

3.问题二,协同学习与合作研究方式

由于信息技术的快速发展,使得个人获得知识的渠道有限。在教学的过程中可以根据学生的学习水平以及性格等各个方面,将能够互相学习的小组放在一个小组,这样在学习的过程中这些学生能够自主的进行学习。在学习的过程中,为了更好的掌握所学的知识就会更加及时的进行交流,久而久之也就形成了合作研究的学习方式。

4.问题三,编写符合学生思维规律的讲义

在C语言教学的过程中,之前对于语法一直都比较看重,教科书在编写的过程中比较的难懂,处于学习阶段的学生对此根本不能完全理解。在这样的教学模式之下,就使得学生即使能听懂C语言课程,但是却不能妥善的进行应用。在这样的背景之下,在编写C语言的教程的时候,需要按照学生的思维方式进行编写,这样使学生更加容易理解,并且在理解的基础上能够投入实用。教学过程中要注意培养学生的综合素质,不要使得培养的学生只能进行理论研究,却不能够将学习到的知识投入实用。

5.问题四,注重研究带动教学

随着教学改革的实施,现阶段属于一种创新性的教学模式,现代社会的发展最需要的就是创新型人才,要想培养这样的人才就需要运用创新型的教学模式。在创新性教学模式中,教学的主体是学生,教学的过程主体也是学生,因此在教学过程中一定要注重学生、教师间及时的交流沟通,同时强调在教学过程中教师、学生共同参与的重要性,最大限度的使学生创新思维的能力得到有效培养。

6.问题五,丰富教学方法和教学手段

在教学过程中,一定要充分考虑学生要求,然后根据学生可以接受的学习方式来进行教学,改变传统老师教、学生听的教学模式,对比较受学生欢迎的教师组织学习观摩,使得教学成功的案例被有效的推广。随着现如今互联网的快速发展,可以依靠互联网带动教学发展,并把传统教学模式融入到互联网教学中,进而大幅度提高教学小龙。对于那些难以理解的部分,增加动画演示。在教学的过程中要注意引导学生自主进行编程。请比较优秀的学生传授起学习的经验,培养学生合作的精神。

7.总结

经过一段时间的实践之后发现,现阶段我们所使用的教学方法是比较合理的,因为已经取得了非常显著的研究成果。在运用该教学方法之后学生自主编程的能力得到有效的提高,并且学生之间懂得了如何进行团队协作,学生对于为什么学习C语言也有了一个较为全面的认识。对于C语言的教学模式进行改革不是短时间内就能完成的,接下来还需要做很多的研究。

【参考文献】

[1]任正云.课程建设的探索实践与研究——以《C语言程序设计》为例[J].电脑知识与技术,2016(19)

[2]赵震伟.应用型高校《C语言程序设计》课程教学改革[J].黑龙江科技信息,2016(24)

[3]陶荷芳.浅谈如何在C语言教学中培养学生的合作能力[J].读与写(教育教学刊),2014(02)

[4]陈效兰,张岩.师生互动式研究型教学对创新型人才培养的探索[J].教育探索,2008(10):35-36

上一篇:年后发言稿下一篇:《熟能生巧》教学设计