c语言课程设计运动会比赛计分系统(含任务书)

2024-06-22

c语言课程设计运动会比赛计分系统(含任务书)(精选3篇)

c语言课程设计运动会比赛计分系统(含任务书) 第1篇

一、课程设计目的

将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。通过课程设计,学生在下述各方面的能力应该得到锻炼:

(1)进一步巩固、加深学生所学专业课程《C语言教程》的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。

(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。

(3)利用所学知识,开发小型应用系统,掌握运用C语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。

(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。(5)掌握自顶而下的设计方法,将大问题进行模块化,领会结构化程序设计的方法。

(6)熟练掌握C语言的基本语法,灵活运用各种数据类型。

(7)进一步掌握在集成环境下如何调试程序(单步调试,设置断点、观察表达式,分块调试)和修改程序。

二、课程设计名称及内容

课程设计名称:运动会比赛计分系统

设计内容:设计一个运动会比赛计分系统,该系统要求对运动会比赛得分进行管理和维护。

三、任务和要求

要求:初始化输入:N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数 各项目名次取法有如下几种:

(1)取前5名:第一名得分7分,第二名得分5,第三名得分3,第四名得分2,第五名得分1;

(2)取前3名:第一名得分5,第二名得分3,第三名得分2;(3)用户自定义:各名次权值由用户指定。

四、设计方案提示

(1)界面

系统以菜单方式工作(2)输入数据并存入文件

使用到结构体变量和动态链表,由程序提醒用户填写比赛结果,输入各项目获奖运动员信息。对输入的信息进行合法性判断,直到输入正确为止。都输入完成后,调用写文件函数对指定的文件进行写操作,把输入的信息写入到文件中。(3)显示所有记录

将文件中的所有记录以表格的形式输出。如果文件未打开会出现“文件打开失败!按任意键返回...”,关闭文件。(4)查询

所有信息记录完毕后,用户可以查询各个学校的比赛成绩,生成团体总分报表,查看参赛学校信息和比赛项目信息等。二:算法设计:

信息输入模块、比赛结果录入模块以及查询模 题目的总体要求是要建立三个模块:信息输入模块、建立三个模块 块。在建立完之后,要求该程序能够在用户将各种必要的信息记录之后,用户可以查询所 有学校的比赛成绩,而且也可以生成团体总分表,查看参赛学校信息和比赛项目信息等一切 录入的信息,为此,要示编程人员能通过一些具体的程序将以上的功能加以实现。在建立三个模块的大前提下,我们将采用结构体,循环体,指针和各种函数来实现这 种功能,在数据结构体中,要采用结构体数组,其中包括学校、项目、运动员三个结构体。学校结构体成员包括学校校名、竞赛项目、得分项目结构体成员包括项目名、权值。(1)在此程序中,包括几个头文件:mainfile.h;dos.h;conio.h;momery.h;接下来,定义全)局变量,其中包括“参赛学校项目数 N;男子项目数 M;女子项目数 W;参赛学校g_school;竞赛项目 g_sport;各名次链表指针 ptrHead,ptrThis,ptrNew;总体设计:系统设计为信息输入模块、比赛结果录入模块和查询模块三个模块。总

体设计:系统设计为信息输入模块、比赛结果录入模块和查询模块三个模块。

(2)各种结构的分析:)各种结构的分析: 静态存储方式: 它是指在程序运行期间由系统分配固定的存储空间的方式,全局变量全部存 静态存储方式: 放在静态存储区中,在程序开始执行时给全局变量分配存储区,程序执行完毕就释放,在程 序执行过程中它们占据固定的存储单元,而不是动态地进行分配和释放。用 static 声明局部变量:使用该变量可以使局部变量的值在函数调用结束后不消失而保留原 值,这即为静态局部变量的特点。静态局部变量属于静态存储类别,在静态存储区内分配存储单元,在程序整个运行期间都不 释放。对静态局部变量是在编译时赋初值的,即只赋初值一次,在程序运行时它已有初值,以后每次调用函数时不再重新赋初值而只是保留上次函数调用结束时的值。如在定义局部变 量时不赋初值的话,则对静态局部不说,编译时自动赋初值 0(对数值型变量)或空字符

总体设计 信息输入模块 比赛结果录入模块 查询模块 设置参赛信息 设置竞赛项目总数 主菜单 设置竞赛项目信息 设置项目名次取法 生成报表 打印竞赛项目信息 填充参赛信息 请输入您的选择 开始。而对自动变量来说,如果不赋初值则它的值是一个不确定的值。虽然静态局部 变量在函数调用结束后仍然存在,但其他函数是不能引用它的。Malloc 函数 函数的作用是在内存的动态存储区中分配一个长度为 size 的连续空间。此函数的值 是一个指向分配域起始地址的指针,如果此函数未能成功地执行,则返回空指针。链表是动态地进行存储分配的一种结构,所谓建立动态链表是指在程序执行过程中从无到有 地建立一个链表,即一个一个地开辟结点和输入各结点数据,并建立起前后相链的关系。循环结构是结构程序设计的基本结构之一,它和顺序结构、选择结构共同作为各种复 循环结构 杂程序的基本构造单元。通常用 while、do…while 语句实现循环,最常用的是 for 3

语句的循 环,夺循环中还有循环的嵌套,它是指一个循环体内又包含另一个完整的循环结构。用语句 来实现从循环体内跳出来,即提前结束循环,接着执行循环下面的语句,但 break 语句不能 用于循环语句和 swich 语句之外的任何其他语句中。另外一种就是 continue 语句,它的作用 是结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判 定。Swich 语句 语句是多分支选择语句,它后面括号内的“表达式”,ANSI 标准允许它为任何类 型。当表达式的值与一个 case 后面的常量表达式的值相等时,就执行此 case 后面的语句,若所有的 case 中的常量表达式的值都没有与表达式的值匹配的,就执行 default 后面的语句,每一个 case 的常量表达式的值必须都不相同;否则就会出现相互矛盾的现象。各个 case 和 default 的出现次序不影响执行结果,执行完一个 case 后面的语句后,流程控制转移到下一 个 case 继续执行。“case 常量表达式”只是起语句标号作用,并不是在该处进行条件判断。在执行 swich 语句时,根据 swich 后面表达式的值找到匹配的入口标号,就从此标号开始执 行下去,不再进行判断程序流程图 开始 请输入您的选择 c s i p q 编号 n=0? i<=2 i=0 i=1 0 2 1 MAX—M MAX—W 男团总分 女团总分 r 团体总分 输出 t 生成报表 结束 HOU 第 6 页 2010/9/5 项目名次的取法及每一名次的分值 开始 请选择编号 0 1 2 0 7 输入名次 0 5 1 5 1 3 t=i 2 3 2 2 i=i+1 3 2 i>0 4 1 n<5 n<3 输出

****************************MENU1******************************* ****** 1.enter!!2.record!!3.search!!******************************************************************************* choice your number:()

二、课程设计体会 在此次的 C 语言的课程设计中,我不仅 学到了许多有庆这方面的专业知识,更重要的是我学会了如何在拿到一个题目时进行简单的 程序分析,并编译出一些相对简单的程序,当然了,对自己编译出的不对的程序,我也能 4

进 行一些分析,并对其进行完善。在此次的学习过程中,老师教给了我们很多的东西,从一开 始的不懂 VC++这种软件,到最后的我们可以进行较熟练的应用它,也许在这过程中,我们 无论是学生还是老师都遇到了一些小的困难,但是在我们师生的共同努力下,我们最终还是 克服了它,单从这一点来说,我们就学到了许多的东西,比如 teamwork,同学之间的相互 帮助以及与老师的配合,都证明了这一点,我相信这是我此次学习C 语言程序的最大收获。在我的程序设计的过程中,遇到了很大有难题,特别是在刚拿到我的题目时,头脑中 根本没有头绪,更不要说去编译程序了,当时真的很担心是否可以完成老师布置的任务,但 慢慢的在学习的过程中,我开始懂得了一些编译的方法,就尝试着去编译一些程序,结果还 是很好,最后我编出了我题目的程序,但是在程序的运行过程中,又遇到了新的难题,那就 是我所编的程序中有太多的错误,根本无法进行运行,没办法,只好硬着头皮修改,不过还好,在老师和同学们的帮助下,我最终将我的程序成功地进行了运行,在我自己的程序运行 时,心中有一种说不出的高兴,是的,自己这几天的努力总是没有白费。

五.附录:

源代码:

#include #include #include #define n 2 #define m 1 #define w 1 typedef struct { int top;int range[5];int mark[5];int itemnum;

}itemnode;typedef struct {

int schoolnum;

int score;

int mscore;

int wscore;

itemnode c[m+w];}headnode;headnode h[n];

void input(){

int i,j,k,s;

for(i=0;i

{

h[i].schoolnum=0;

h[i].score=0;

h[i].mscore=0;

h[i].wscore=0;

}

for(i=0;i

{

printf(“n学 校

编 号:”);

scanf(“%d”,&h[i].schoolnum);

for(j=0;j

{

printf(“n项 目

编 号:”);

scanf(“%d”,&h[i].c[j].itemnum);

printf(“n取前3或前5名:”);

scanf(“%d”,&h[i].c[j].top);

while(h[i].c[j].top!=3&&h[i].c[j].top!=5)

{printf(“n输入错误,请重新输入!:”);

scanf(“%d”,&h[i].c[j].top);break;}

printf(“n获得几个名次:”);6

scanf(“%d”,&k);

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

h[i].c[j].range[s]=0;

for(s=0;s

{ l: printf(“n名

次:”);

scanf(“%d”,&h[i].c[j].range[s]);

if(h[i].c[j].top==3)

switch(h[i].c[j].range[s])

{

case 0:h[i].c[j].mark[s]=0;

break;

case 1:h[i].c[j].mark[s]=5;

break;

case 2:h[i].c[j].mark[s]=3;

break;

case 3:h[i].c[j].mark[s]=2;

break;

default:{puts(“输入错误!请重新输入!”);

goto l;}

}

else

switch(h[i].c[j].range[s])

{

case 0:h[i].c[j].mark[s]=0;

break;

case 1:h[i].c[j].mark[s]=7;

break;

case 2:h[i].c[j].mark[s]=5;

break;

case 3:h[i].c[j].mark[s]=3;

break;

case 4:h[i].c[j].mark[s]=2;

break;

case 5:h[i].c[j].mark[s]=1;

break;

default:{puts(“输入错误!请重新输入!”);

goto l;}

}

h[i].score=h[i].score+h[i].c[j].mark[s];

if(j<=m-1)

h[i].mscore=h[i].mscore+h[i].c[j].mark[s];

else

h[i].wscore=h[i].wscore+h[i].c[j].mark[s];

}

printf(“n”);

}

} }

void output(){

int choice,i,j,t;

int a[n];

int sign;

do

{

printf(“n***************************1.按学校编号****************************n”);

printf(“*****************************2.按学校总分****************************n”);

printf(“*****************************3.按男团总分****************************n”);

printf(“*****************************4.按女团总分****************************n”);

printf(“*****************************请根据提示进行操作!:”);

scanf(“%d”,&choice);

printf(“n”);

switch(choice)

{

case 1:for(i=0;i

{

printf(“n学校编号:%dn”,h[i].schoolnum);

printf(“学校总分:%dn”,h[i].score);

输出

输出

输出

输出

printf(“男团总分:%dn”,h[i].mscore);

printf(“女团总分:%dn”,h[i].wscore);

printf(“n”);

}

break;

case 2:for(i=0;i

a[i]=i;

for(i=0;i

{

for(j=i+1;j

if(h[a[i]].score

{

t=a[i];

a[i]=a[j];

a[j]=t;

}

}

for(i=0;i

{

printf(“n学校编号:%dn”,h[a[i]].schoolnum);

printf(“******************学校总分:%dn”,h[a[i]].score);

printf(“******************男团总分:%dn”,h[a[i]].mscore);

printf(“******************女团总分:%dn”,h[a[i]].wscore);

printf(“n”);

}

break;

case 3:for(i=0;i

a[i]=i;

for(i=0;i

{

for(j=i+1;j

if(h[a[i]].mscore

{

t=a[i];

a[i]=a[j];

a[j]=t;

}

}

for(i=0;i

{

printf(“n学校编号:%dn”,h[a[i]].schoolnum);

printf(“******************学校总分:%dn”,h[a[i]].score);

printf(“******************男团总分:%dn”,h[a[i]].mscore);

printf(“******************女团总分:%dn”,h[a[i]].wscore);

printf(“n”);

}

break;

case 4:for(i=0;i

a[i]=i;

for(i=0;i

{

for(j=i+1;j

if(h[i].wscore

{

t=a[i];

a[i]=a[j];

a[j]=t;

}

}

for(i=0;i

{

printf(“n学校编号:%dn”,h[a[i]].schoolnum);

printf(“******************学校总分:%dn”,h[a[i]].score);

printf(“******************男团总分:%dn”,h[a[i]].mscore);

printf(“******************女团总分:%dn”,h[a[i]].wscore);

printf(“n”);

}

break;

}

printf(“是否继续操作(1/0)?:”);

scanf(“%d”,&sign);

printf(“n”);

}while(sign==1);

}

void chaxun(){

int

choice;

int

i,j,k,s;

printf(“n*****1:按学校编号查询n”);

printf(“n*****2:按项目编号查询n”);

printf(“n*****请选择查询方式:”);

scanf(“%d”,&choice);

switch(choice)

{

case 1:

do

{

printf(“要查询的学校编号:”);

scanf(“%d”,&i);

if((i>n)||(i<=0))

printf(“错误:这个学校没有参加此次运动会!n”);

else

{

printf(“******************要查询的项目编号:”);

scanf(“%d”,&j);

if(j>m+w||j==0)

printf(“******************此次运动会没有这个项目******************n”);

else

{

printf(“这个项目取前 %d名,该学校的成绩如下:n”, 11

h[0].c[j-1].top);

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

if(h[i-1].c[j-1].range[k]!=0)

printf(“名次:%dn”,h[i-1].c[j-1].range[k]);

}

}

printf(“是否继续操作(1/0)?:”);

scanf(“%d”,&s);

printf(“n”);

}while(s==1);

break;

case 2:

do

{

printf(“要查询的项目编号:”);

scanf(“%d”,&s);

if(s>m+w||s==0)

printf(“此次运动会不包括这个项目n”);

else

{

printf(“该项目取前 %d名,取得名次的学校n”,h[0].c[s-1].top);

for(i=0;i

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

if(h[i].c[s-1].range[j]!=0)

printf(“

:%d,名次:%dn”,h[i].schoolnum,h[i].c[s-1].range[j]);

}

printf(“是否继续操作(1/0)?:”);

scanf(“%d”,&i);

printf(“n”);

}while(i==1);

break;

} }

void write(){

int i,j,s;

FILE *fp;

if((fp=fopen(“sportsdata结果.txt”,“a+”))==NULL)

{

printf(“不能打开文件n”);

exit(1);

} fputs(“学校编号

学校总分

男子总分”,fp);fputs(“n”,fp);

for(i=0;i

{

fprintf(fp,“%2dtt ”,h[i].schoolnum);

fprintf(fp,“%2dtt”,h[i].score);

fprintf(fp,“%2dtt”,h[i].mscore);

fprintf(fp,“%2d ”,h[i].wscore);

fputs(“n”,fp);

}

fclose(fp);}

女子总分

void read()

{

FILE *fp;

int i,j,s;

if((fp=fopen(“sportsdata.txt”,“r”))==NULL)

{

printf(“文件不存在,不能打开文件!n”);

exit(1);

}

for(i=0;i

{

fscanf(fp,“%d”,&h[i].schoolnum);

// for(j=0;j

// {

fscanf(fp,“%d”,&h[i].c[j].itemnum);

fscanf(fp,“%d”,&h[i].c[j].top);

// for(s=0;s<5;s++)

// {

fscanf(fp,“%d”,&h[i].c[j].range[s]);

// }

// }

}

fclose(fp);}

int main(){

FILE *fp;

int choice;

int flag1=1,flag2=1;

system(“cls”);

do

{

printf(“n####***********************************************####n”);

printf(“n####******************校级运动会分数统计系统*******************####n”);

printf(“nn ####^^^^^^^^^^^^^^1.录入信息^^^^^^^^^^^^^^####n”);

printf(“nn ####^^^^^^^^^^^^^^2.读取信息^^^^^^^^^^^^^^####n”);

printf(“nn

####^^^^^^^^^^^^^^3.显示信息^^^^^^^^^^^^^^####n”);

printf(“nn

####^^^^^^^^^^^^^^4.查询信息^^^^^^^^^^^^^^####n”);

printf(“nn

####^^^^^^^^^^^^^^5.退出程序^^^^^^^^^^^^^^####n”);

printf(“n####*************************************************************####n”);

printf(“nn请根据提示选择操作!:”);

scanf(“%d”,&choice);

if(choice==1)

flag1=0;

else

if((fp=fopen(“sportsdata.txt”,“r”))!=NULL)

flag2=0;

else

{

system(“cls”);

printf(“没有信息,请你录入信息!n”);

}

}while(flag1&&flag2);

switch(choice)

{

case 1:

欢迎使用程序

printf(“n==========请输入信息========n”);

input();

write();printf(“==========信息已存入档=========”);

main();

case 2:

read();

write;

break;

case 3:

printf(“===========输出信息==========n”);

if(flag1)

read();

output();

main();

case 4:

printf(“===========查询信息==========n”);

if(flag1)

read();

chaxun();

main();

case 5:

printf(“n退出系统!谢谢使用!nn”);exit(0);

default:

printf(“输入错误!n”);exit(0);

} 六主要知识点

 面向过程程序设计方法  界面制作,switch的应用。 数组或链表的实现与应用。 文件的读写。

七.其他

程序设计可在VC++、C++ Builder环境下进行。八.参考资料

[1] 黄明等编著《C语言课程设计》北京:电子工业出版社

[2] 郭翠英编著《C语言课程设计案例精编》北京:中国水利水电出版社 [3] 宁正元《数据结构(c语言)》 南京:东南大学出版社。2000年6月第1版 [4] 严蔚敏等 《数据结构(c语言版)》 北京:清华大学出版社,1997年4月第1版 [5] 谭浩强编著《C程序设计题解与上机指导(第3版)》北京:清华大学出版社 [6] 谭浩强编著《C程序设计(第3版)》北京:清华大学出版社

c语言课程设计运动会比赛计分系统(含任务书) 第2篇

《C语言程序设计》

课程设计报告

部:

专业班级: 电子资讯工程(2)班

号:

070306210

名:

设计题目:

同学通讯录设计

起讫日期: 2008.6.16 至 2008.6.29 指导老师:

徐 化 祥

2008 年 6 月

宿迁学院课程设计报告

课程设计(论文)内容要求:

1.本课程设计的目的

(1)熟练掌握C语言的基本知识和技能;(2)掌握程序设计的一些经典算法和基本方法;(3)了解数组、指针和结构体的应用;

(4)利用所学的基本知识和技能,解决日常生活中经常面临的问题;(5)培养分析、解决问题的能力;提高学生的科技论文写作能力。

2.课程设计的任务及要求 1)课程设计题目:同学通讯录设计

2)基本要求:

(1)设计一个菜单将在实现的功能显示出来,并有选择提示;

(2)通讯簿应包含姓名、性别、电话号码、QQ号码、Email、班级、宿舍等基本信息;(3)能够查询全部成员清单;

(4)能够按号码或姓名查询某一个成员的信息;(5)能够增加、修改某一个成员的信息;

(6)要求有错误提示功能,例如性别只能输入F,M,输入错误提示重新输入。

3)创新要求:

(1)加入删除功能,实现对指定成员信息的删除操作;

(2)信息的输入输出可以用文件的存取和显示的方式,建立文件,直接存取默认檔或指定文件。

4)课程设计报告编写要求

(1)要按照课程设计模板的规格书写课程设计报告;(2)报告包括目录、正文、心得体会、参考文献等;

(3)课程设计论文用A4纸统一打印,装订按学校的统一要求完成。

5)参考数据:

(1)谭浩强.C程序设计(第三版).北京:清华大学出版社,2005.7(2)张强华.C语言程序设计.北京:人民邮电出版社,2001.8(3)http:///

6)提交内容:

6.18

209实验室

编程设计与调试

6.186.28

209实验室 提交所有数据

6.282345int i,j;/*下面的循环是对初始值的处理*/ for(i=0;i

strcpy(stu[i].sex,”“);stu[i].age=0;strcpy(stu[i].tel,”“);strcpy(stu[i].major,”“);strcpy(stu[i].classes,”“);strcpy(stu[i].room,”“);strcpy(stu[i].qq,”“);strcpy(stu[i].email,”“);strcpy(stu[i].others,”“);}

宿迁学院课程设计报告

int print1(){ int n;printf(”tttt<<通讯录>>n“);printf(”**************************************************************n“);printf(”t欢迎使用本通讯录应用程序,愿您从中找到所需要的信息。n“);printf(”制作人:冀鹏超 & 李长明t学号:070306210 & 070306211t班级:07电子信息(2)班n“);printf(”**************************************************************n“);printf(”n“);printf(”ttt1.浏览通讯簿n“);printf(”ttt2.输入同学信息n“);printf(”ttt3.查询同学信息n“);printf(”ttt4.删除同学信息n“);printf(”ttt5.增加同学信息n“);printf(”ttt6.修改同学信息n“);printf(”ttt7.退出通讯簿n“);printf(”n请输入您的选择(1-7):“);scanf(”%d“,&n);return n;} void menu(struct txl stu[]){ int i,j,flag=1;char str[15];for(;flag==1;){ switch(print1())

电话{

:case 1: for(i=0;stu[i].age!=0;i++){ printf(”姓名: %sn性别:%sn年龄:%dn%sn

%sn

宿

%sn

%snQQ号:%snEmail: %sn“,stu[i].name,stu[i].sex,stu[i].age,stu[i].tel,stu[i].classes,stu[i].room,stu[i].major,stu[i].qq,stu[i].email);

} printf(”其它信息:%sn“,stu[i].others);if(i==0)printf(”目前通讯簿为空,请先输入信息n“);

宿迁学院课程设计报告 ,stu[i].room,stu[i].major,stu[i].qq,stu[i].email);

}

if(i==N)printf(”t通讯簿中没有你要找的同学!n“);break;

printf(”其它信息:%sn“,stu[i].others);break;} case 4: printf(”现在你将进行删除操作!请输入要删除的同学的名字,按Enter结束.n“);

scanf(”%s“,str);for(i=0;i

if(strcmp(stu[i].name,str)==0){

printf(”姓名: %sn性别:%sn年班级:%sn

宿舍:%sn

专业:%snQQ龄:%dn电话:%sn号:%snEmail: %sn“,stu[i].name,stu[i].sex,stu[i].age,stu[i].tel,stu[i].classes,stu[i].room,stu[i].major,stu[i].qq,stu[i].email);

printf(”该同学将被删除n“);

}

宿迁学院课程设计报告

scanf(”%s“,stu[i].name);printf(”输入同学的性别: “);scanf(”%s“,stu[i].sex);printf(”输入同学的年龄: “);scanf(”%d“,stu[i].age);printf(”输入同学的电话: “);scanf(”%s“,stu[i].tel);printf(”输入同学的班级: “);scanf(”%s“,stu[i].classes);printf(”输入同学的宿舍: “);scanf(”%s“,stu[i].room);printf(”输入同学的专业: “);scanf(”%s“,stu[i].major);printf(”输入同学的QQ号: “);scanf(”%s“,stu[i].qq);printf(”输入同学的Email: “);scanf(”%s“,stu[i].email);printf(”输入同学的其它信息: “);scanf(”%s“,stu[i].others);} } break;case 7: flag=0;break;default: printf(”你的输入有错误,请重新输入!n");} } } void main(){ struct txl stu[N];

} init(stu);menu(stu);

宿迁学院课程设计报告

四、测试结果

1.通讯录菜单如下图所示:

2.输入“1”,进行“浏览通讯录操作:

3.输入“2”,进行“输入同学信息”的操作:

宿迁学院课程设计报告

8.输入“7”,进行“退出通讯簿”操作:

宿迁学院课程设计报告

五、设计心得

自从记事以来就听过了计算机这个高科技,现在终于实现了自己的一个小小愿望——成为了计算机系的一名学生,这学期我们学的C语言,以前就听过这个名字,打开书一看简直一窍不通,学好这门科简直就是一个挑战,课前课后都要把书啃一遍,要不然上课就跟不上,终于学期快结束了,我们有一个课程设计,在两个星期内,完成一个复杂的程序,我们的题目是做一个通讯簿。

通过为期一周的C课程设计实验课使我了解到了一个程序开发的过程,虽然规模不大,但为我以后的编程学习打下了基础。在编程的过程中,我体会到了学习编程的辛苦,为了一个算法的实现而思考,为了一个小小的编译错误而花时间去寻找,这需要很大的毅力和耐心,而且要有良好的思维,这才使得我完成这个任务,也使我感到一分喜悦,毕竟自己完成了一个有模有样的程序。于此,我也发现自己的一些不足,良好的编程习惯的养成,坚定的毅力和耐心仍是我要加强的,同别人的交流也是必须的,这样才能不断使我进步。在这次设计中,我遇到了很多困难,但我没有向困难低头,通过查询数据,虚心向同学、老师请教,才一一得到了解决。我发现平时学的太少了,在今后我首先要把老师在课堂讲的弄懂,弄透,在此基础上利用课余时间多看课外书籍,拓宽知识面。在设计过程中,合作精神必不可少。单凭一个人的力量是不能完成的,毕竟一个人学的很有限。每个人掌握的不同。我相信:态度决定一切,只有努力才有收获。

总的来说,这次程序设计让我获益匪浅,对C语言也有了进一步的认识:C语言功能高、表达能力强、使用灵活方便、目标程序效率高。

C语言是在国内外广泛使用的一种计算机语言,我相信除了以上优点之外还有许多,希望能在以后的学习中有更深入的认识。

很感谢这次的课程设计,它使我更加深刻地体会到多看专业书的重要性,只有掌握了一定量的专业知识才能得心应手地解决诸多问题;另外,做任何事都要有耐心,不要一遇到困难就退缩;在学习和工作中要时刻谨记“团结”二字,它好比通向成功的铺路石,不可或缺。

人生的道路是曲折的,但正是因为曲折人生才光彩夺目,在人生的路上,总遇到重重困难,但正是因为困难我们才变的更坚强。今后的路还很长,面对困难,让我们用行动去俘虏它吧!

宿迁学院课程设计报告

六、参考文献

[1] 谭浩强.C++程序设计.北京:清华大学出版社,2004 [2] http:/// [4] http:///

[5] 刘振安.C程序设计课程设计.北京:机械工业出版社,2004 [6] 张强华.C语言程序设计.北京:人民邮电出版社,2001.8

c语言课程设计运动会比赛计分系统(含任务书) 第3篇

学好《C语言程序设计》这门课程对于学生学习其它计算机专业课程是非常重要的。而计算机知识本身在不断地更新和变化, 这对教学目标提出了更高的要求。授人“鱼”, 不如授人“渔”, 不但要让学生学会知识本身, 而且更重要的是培养学生学会学习[1]。传统教学方法不能适应这样的要求, 笔者认为“任务驱动法”是一种能够很好的适应新的教学目标的教学手段。

1 什么是“任务驱动”

所谓“任务驱动”就是在教学过程中, 学生在教师的帮助下, 紧紧围绕一个共同的任务活动中心, 在强烈的问题动机的驱动下, 通过对学习资源的积极主动应用, 进行自主探索和互动协作的学习, 并在完成既定任务的同时, 引导学生产生一种学习实践活动, 使学生带着真实的任务在探索中学习[2]。

C语言是一门实践性很强、极富创造性的课程。在C语言课中采用“任务驱动”教学法, 就是让学生在一个个典型的编程“任务”的驱动下展开教学活动, 引导学生由简到繁、由易到难、循序渐进地完成一系列“任务”, 从而得到清晰的思路、方法和知识的脉络, 在完成“任务”的过程中, 培养分析问题、解决问题的能力。在这个过程中, 学生还会不断地获得成就感, 可以更大地激发他们的求知欲望, 逐步形成一个感知心智活动的良性循环, 从而培养出独立探索、勇于开拓进取的自学能力。

2《C语言程序设计》课程的特点适合采用任务驱动法

《C语言程序设计》课程是一门实践性很强, 要求学生大量实验上机操作的学科。它的教学目的更重要在于让学生学会一门能够在未来的工作中派得上用场的手艺, 同时培养对软件开发工作的感觉。“任务驱动法”符合C语言程序设计课程教学的层次性和实用性, 符合由表及里逐层深入的学习途径, 符合探究式教学模式, 便于学生循序渐进地学习C语言程序设计的知识和技能。在《C语言程序设计》课程教学中采用“任务驱动式”教学方法有利于构建教学情景, 营造宽松的学习环境, 激发学生的学习兴趣;有利于学生自主学习, 获得再学习的能力;有利于充分调动学生的学习主动性;有利于学生创新能力、创新意识的培养。

3“任务驱动”教学法的教学过程

3.1 教师引导期

教师主要是根据知识要点提出具体任务和要求, 并对如何完成这一任务作一些方法上的阐述。这些任务不但要包含对所有的知识要点的理解运用, 而且要稍难于知识点, 这样有机会让学生去发现并解决问题, 向更高的目标来挑战自己。由于学生自身水平有差异, 因此在教学中可以将任务分成两个层次:即基本任务和提高任务。对于一般大多数同学只要求完成基本任务;而对于那些基础好、学习上有余力的同学要求他们完成提高任务, 给他们一个发挥自学的空间。

如在学习编写水仙花数时, 对于未知三位数x, 学生不知如何求个位数、十位数、百位数, 我便问同学们假设x为68, 如何求出个位数8和十位数6学生们便通过整除和求余数的方法求出个位数、十位数。

而提高任务的要求是:如何求出更多位数的各个位数。这种由简单应用到层层递进的方法, 学生比较容易理解和接受, 符合学生的学习心理。

这一阶段的特点是:教师主要是方法上的指导, 还可结合实际应用作一些启发性的提问, 使学生知道从哪里入手做以及从哪些方面可以做些变化。这一阶段的关键是教师引而不发, 充分调动学生的操作欲望和好奇心。

3.2 学生操作应用期

以学生具体操作为主。在教师引导后, 很多学生已经跃跃欲试了。这时候, 教师应留给学生充足的操作时间, 让学生大胆去试, 使他们在使用中体会、感受和领悟。这期间, 学生会遇到一些问题。对学生存在的共性问题, 可由教师统一示范, 集体解决;对个别学生的个别问题可作单独辅导。这是学生消化和吸收知识的阶段, 是学生由不会到会, 由初识到熟练掌握的阶段, 也是学生充分调动各种感官, 发挥各种能力的阶段, 时间上可占整个教学进度的一半左右, 在教学进程中是一个紧张的高潮期。

3.3 交流讨论期

主要是教师查漏补缺, 讲解一些共同的难点和重点, 并触类旁通给出大量应用实例, 进一步加深学生对所学知识的理解。这一阶段特点是教师点评为辅, 尽可能开展一些热门问题的讨论, 还可以进行作品欣赏或方法交流, 让学生在思路上得到一些启发, 看一看其它同学是如何完成该任务的, 在方法上和自己有什么不同。这一阶段的特点是集思广益, 开拓思路, 鼓励创新。在教学节奏上给学生一个放松的时间。

3.4 总结期

采用任务驱动教学模式, 由于教师主要是在方法上进行引导, 学生主要时间花在动手摸索上。这就存在学习能力不同的同学, 在同一节课内所掌握的知识多少也不同, 容易造成学生成绩两极分化和教学知识点的疏漏。针对这些问题, 就要求教师在采用任务驱动模式进行教学的同时, 要加强课堂小结和知识点的回顾, 使学习能力差的同学或操作有疏漏的同学能通过教师的总结和回顾, 跟上教师的教学进度, 全面掌握知识点, 达到教师的教学要求[3]。

4 应该注意的问题

把好任务设计关:

整个教学过程实质上是由若干个任务串连而成的, 所有的教学活动都围绕任务展开, “任务”直接影响教学效果, 因此, “任务”设计、编排非常关键。任务设计时要注意的几个问题:

首先, “任务”设计要有明确的目标, 任务化要恰当, 要兼顾知识本身的系统性, 控制好分解的数量并留有伸缩余地, 把握好任务的质量, 不能不分主次, 喧兵夺主。不能分得过细, 避难趋易。语言表述准确, 减少理解障碍。不能简单地把教学内容转化为一个个问题作为任务提出。

第二, 任务的设计要注意新旧知识的联系。知识和技能是一个逐步积累的过程, “任务”设计时要考虑知识前后的联系, 在学习新知识的同时不断复习巩固旧知识点。

第三, “任务驱动”教学法, 强调以学生为中心, 要注重鼓励学生根据内容自己提出任务, 积极支持鼓励学生结合专业调查和社会实践自定任务, 扩大学生参与面和活动量, 培养学生自学能力。

总之, 在C语言程序设计课程的教学中, 根据教学内容的需要, 运用“任务驱动法”, 有利于改变学生获取知识的方法, 让学生在探索中学习, 最终使学生由被动接受知识转变为主动获取知识, 进而培养学生善于钻研和勇于创新的精神以及实际的软件开发能力。任务驱动法在C语言程序设计课程教学中是一种值得推广的好方法。

摘要:大多数高职院校把“C语言程序设计”作为学生的入门语言。在C语言教学中通常是:先讲语句的格式是什么, 它有什么功能, 在程序中如何使用它, 然后就是举例做练习。这种传统教学方法没有充分发挥学生的能动作用, 学生综合应用所学知识能力差。为了在教学中能够调动教师、学生两方面的积极性, 重点分析了C语言课程的特点, 就“任务驱动”教学法在C语言教学中的应用进行了探讨。

关键词:任务驱动,计算机教学,C语言教学

参考文献

[1]潘洪军.高校计算机专业课程结构体系构建的思考[J].现代教育科学, 2005, 195 (4) :116-118.

[2]克里斯托佛.K.纳普尔.高等教育与终身学习[M].上海:华东师范大学出版社, 2003.

上一篇:东营市青年摄影家协会章程下一篇:唯美的情人节日志优秀