c课程设计报告说明书(11篇)
1.c课程设计报告说明书 篇一
C语言课程设计报告
1.实验题目:职员信息管理系统
2.数据结构:整型int,字符型char,长整型long,结构体及结构体数组 3.源代码 :
#include“stdio.h” #include“string.h” #define N 20
/*符号常量的定义*/ struct employee
/*定义结构体类型employee*/ {
char name[15];char sex;long num;
/*职工工号可能较长,定义为长整型*/ char debt[15];int salary;char office[15];char tel[15];}emp[N];
/*定义结构体数组,并将其作为全局变量*/ void menu(){
int i;printf(“请选择您的操作:n”);printf(“tt1.增加职工信息n”);printf(“tt2.查找职工信息n”);printf(“tt3.显示所有职工信息n”);printf(“tt4.删除职工信息n”);printf(“tt0.退出n”);printf(“请选择按键!(0-4):n”);scanf(“%d”,&i);
/*从键盘输入数据并将其值赋给i*/
void input();void search();
void show();void omit();
/*被调函数定义出现在主调函数之后,应对其进行原型说明*/ switch(i)
/*使用switch语句,根据i的数值,进入相应的操作环境*/ {
case 1:input();break;
case 2:search();break;
/*在switch语句中掌握对break的使用*/ case 3:show();break;case 4:omit();break;
/*实现函数的调用*/
case 0:
{ printf(“tt-----n”);printf(“tt谢谢您对本公司职工信息管理程序的使用n”);
printf(“tt-----n”);}break;
default:printf(“您输入的数据有误,请确认后重新输入!n”);menu();} } void fun(int i)
/*search()函数和omit()函数都对此函数进行调用,输出相应职工信息*/ {
printf(“职工信息找到!!信息如下:n”);printf(“姓名t工号t性别t部门t工资t职位t电话n”);printf(“%st%ldt%ct%st%dt%st%sn”,emp[i].name,emp[i].num,emp[i].sex,emp[i].debt,emp[i].salary,emp[i].office,emp[i].tel);} void input()
/*定义input()函数,实现职工信息的录入功能*/ {
int i,j,k,a;for(i=0;i /*使用条件语句,防止原有的职工信息被覆盖*/ { printf(“增加职工信息时:n”);printf(“请输入职工姓名:”);fflush(stdin); /*刷新缓冲区,下同*/ gets(emp[i].name); /*使用gets()函数实现字符串的输入,下同*/ do { printf(“请输入职工号:”);scanf(“%d”,&a);for(k=0;k if(k /*判断所输入工号是否已存在*/ printf(“该工号已存在,请重新输入!n”);}while(k /*do-while语句控制本层循环*/ emp[i].num=a;printf(“请输入职工性别,男(M)女(F):”);fflush(stdin);emp[i].sex=getchar(); /*使用getchar()函数实现字符的输入*/ printf(“请输入职工部门:”);fflush(stdin);gets(emp[i].debt);printf(“请输入职工工资:”);scanf(“%d”,&emp[i].salary);printf(“请输入职工职位:”);fflush(stdin);gets(emp[i].office);printf(“请输入职工联系电话:”);fflush(stdin); gets(emp[i].tel);printf(“职工添加成功!!n”);printf(“还继续增加吗?继续请输入1否则输入0:n”);scanf(“%d”,&j);if(j==0)break; /*使用break语句,在条件成立时跳出for循环*/ } menu(); /*不再添加职工信息时,返回到目录函数menu()*/ } void search() /*定义search()函数,实现职工信息的查找功能*/ { int i,j,number;printf(“请输入要查找的职工号:”); scanf(“%d”,&number);for(i=0;number!=emp[i].num&&i /*i /*函数的递归调用*/ else menu(); /*不再查找职工信息时,返回到目录函数menu()*/ } void show() /*定义show()函数,实现职工信息的显示功能*/ { printf(“%st%ldt%ct%st%dt%st%sn”,emp[i].name,emp[i].num,emp[i].sex,emp[i].debt,emp[i].salary,emp[i].office,emp[i].tel);menu(); /*输出所有信息后,返回到目录函数menu()*/ } void omit() /*定义omit()函数,实现职工信息的删除功能*/ { int i;printf(“所有职工信息如下:n”);printf(“姓名t工号t性别t部门t工资t职位t电话n”);for(i=0;i /*利用for循环输出所有职工信息*/ int i,j,a,number;printf(“请输入要删除的职员号:”);scanf(“%d”,&number);for(i=0;number!=emp[i].num&&i /*i scanf(“%d”,&a);if(a==1){ strcpy(emp[i].name,“"); /*确定删除后,还原结构体成员*/ } emp[i].num=0;emp[i].sex=;strcpy(emp[i].debt,”“);emp[i].salary=0;strcpy(emp[i].office,”“);strcpy(emp[i].tel,”“);printf(”删除成功!!n“);} else printf(”无对应信息,请重新查找!!n“);printf(”还继续删除吗?继续请输入1否则输入0:n“);scanf(”%d“,&j);if(j==1)omit(); /*函数的递归调用*/ else { printf(”删除成功后“);show(); /*调用show()函数,输出删除成功后所有职工信息*/ } } void main() /*程序由主函数开始运行*/ { int i;for(i=0;i /*利用for循环语句对结构体数组赋初值*/ emp[i].num=0;emp[i].sex=;strcpy(emp[i].debt,”“);emp[i].salary=0;strcpy(emp[i].office,”“);strcpy(emp[i].tel,”“);} printf(”tt----------------------------n“);printf(”tt欢迎进入公司职工信息管理程序n“); printf(”tt----------------------------n"); menu();} 4.每种情况下的运行结果截图 1.判断输入数据是否有误的运行结果截图 2.增加职工信息并确保工号不重复时的运行结果截图 3.查找职工信息时的运行结果截图 4.显示所有职工信息时的运行结果截图 5.删除职工信息,并通过显示所有职工信息验证该信息是否确实被删除时的运行结果截图 6.继续添加职工信息时的运行结果截图 7.显示最后的所有职工信息时的运行结果截图 8.退出该系统时的运行结果截图 5.学习心得体会: 学习C语言程序设计这门课一个学期了,这是我所学的第一门计算机课程,作文一名当代的大学生,我认为这十分重要。记得宇文老师在第一节课就说过,C语言是计算机的基础,通过一个学期的学习,使我掌握了关于这门课的基本知识。这次的课程设计是对我们一个学期来所学的知识的综合考察,里面涉及到了我们大多数所学知识。记得刚开始学这门课的时候,自己很有信心学好这门课,但是经过一段时间的学习之后。才发现程序设计并不好学,它既要我们有很强的领悟能力,还需要课后的努力。之后,随着时间的推移,我慢慢掌握了这门课学习的一些窍门,学习起来也比刚开始的时候好了很多,虽然编程有时还会有错误,但比以前少了很多。这次的课程设计要求我们编一个简单的公司职工信息管理系统,在编程过程中我走了很多弯路,也犯过了很多错误。最终在其他同学的帮助和宇文老师的指导下我完成了这次课程设计,因此对C语言也有了更多的理解和体会。今后我会通过课外学习了解更多的C语言知识! 辽宁机电职业技术学院各电气类专业都开设《单片机原理与接口技术》课程。由于现在单片机编程使用C语言, 因此增设了《单片机C51程序设计》课程, 那么《C语言程序设计》作为其先导课程, 它的开设就是十分必要的。该课程已是计算机程序设计语言类专业基础课。 一、《C语言程序设计》课程的改革 《C语言程序设计》作为一门专业基础课, 其教学要真正体现“专业”、“基础”的特点。因此, 在教学中一直探索两个问题, 一是如何让学生能轻松掌握C语言的基本语法知识、程序结构等程序设计的基础;二是如何使学生学以致用, 能根据设计要求, 熟练地使用C语言进行程序设计, 并熟练调试程序, 为后续课程学习和应用打下基础。前者是知识的传授问题, 后者是应用能力的培养问题。 在传统的教学过程中, 教学出发点是学习语言, 注重C语言的语法学习, 将学生陷入繁琐的语法学习中, 过分强调了知识的传授, 而没有注重学生能力的培养。因此, 学生普遍反映C语言枯燥、难学, 学完也还是不会独立编程, 更不知道和自己的专业以及后续课程有什么联系, 当然也培养不了学生分析问题、解决问题等应用能力。我院在《C语言程序设计》课程实施中, 对教学模式、教学内容、教学方法等进行了改革。 二、《C语言程序设计》课程采用项目教学法的实施过程 将项目教学法应用于《C语言程序设计》课程教学, 为了达到既能让学生掌握C语言基础知识, 又能培养学生的能力, 我们采取任务驱动法, 即以项目为驱动力, 从分析任务开始, 讲解完成任务所需要的编程知识和技能, 在讲授知识点过程中, 引发学生解决实际问题, 最后, 以小组讨论形式共同设计制作完成项目。具体实施过程如下:设计具体教学项目, 分析建立能力模块, 构建内容体系结构, 见表1。 项目教学的具体实施是教师和学生共同参与的教学行为 (见图1) 。通过教学过程设计流程图, 直观地说明在实施项目教学中, 教师行为、学生行为与教学活动的具体关系和项目教学过程的具体步骤。 三、实施过程中注意事项 为了达到项目教学的知识目标和能力目标, 在实施项目教学的过程中, 需要注意以下事项: 1. 合理选择教学项目 教学项目选择是实现教学目标的关键, 因此, 在选择项目时, 我们考虑了以下问题:所选项目是否包含C语言编程的关键知识点;所选项目是否是现实的、实用的;所选项目是否能充分实现学生能力的培养;所选项目能否调动学生学习的积极性;另外, 项目的难度是否适中。 2. 教师要发挥好协助作用 项目教学要以学生为中心, 充分发挥学生的主动性、创造精神及自我评价能力。教师要给学生创造学习的环境, 提供学习资源, 另外在项目实施过程中, 教师的指导作用是不可忽略的, 教师要积极参与到学生的讨论中去, 并能在每个项目结束时给出正确的学习效果评价。 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语言程序设计课程具有鲜明的实践目标性,教学中,教师一定要结合学生实际,合理设计教学内容及教学环节,用恰当的方法方式引领学生进入更加广阔的计算机相关专业领域。 参考文献: Experiment Designing reporter 课程名称:高级语言程序设计 英文名称 : C Program Experiment Designing 专业:自动化 111 学号: XXX 姓名: XXX 指导教师: XXX 日期: 2012 年 6月 17日至 2011 年6 月 20 日 山东工商学院信电学院 一:课程设计内容 程序功能介绍 贪吃蛇游戏是一个经典小游戏,深受众多玩家喜爱,其规则是:一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。此游戏不仅能锻炼人的思维敏捷性,而且还可以提高玩家的逻辑判断能力。设计思路 我们小组称设计本次课题——贪吃蛇的思路为“贪快速上手贪吃蛇三步曲”: 第一步: 寻找到一个真正可以运行的已用C编好的贪吃蛇。因为我们毕竟从未看到过用C编游戏的程序,让我们两手一抹黑的开始编写是有一定的困难的,如果我们自己找一个已经设计好的程序,以此为跳板实现我们想要达到的效果,那么肯定是高效的。所以我们组统一决定,去寻找一个可以运行的C编译的贪吃蛇。第二步: 运行游戏并了解游戏程序。 我们认为,只有你运行并了解一个游戏,才能知道游戏里需要什么样的改进和创新,如果你自己本身就没玩过这个游戏,那么你就是再有技术,你也永远改进和改编不了一个游戏,因为你根本不知道你在干什么。 同样重要的是了解游戏程序。因为只有看懂了程序,才能实现对他的改编,才能游刃有余。第三步: 寻找模块并分类,而后进行改编。 寻找到你想要改变的游戏内容的控制模块,比如,我想要增加一堵墙,那么就应该找到 void DrawK(void){ setcolor(11); setlinestyle(SOLID_LINE,0,THICK_WIDTH);for(i=200;i<=500;i+=10) rectangle(i,200,i+10,209);} 然后要找到:改变蛇初始长度、颜色、初始位置的模块,改变苹果出现位置的模块,让蛇见墙死的模块,让蛇吃苹果加长的模块„„„.并且进行分类,这样下次再想实现某个目标时,可以一目了然的进行改编。对于找到的模块如何进行改编呢?怎么才能知道某个数值或函数代表什么呢? 我们有两个方法: 1.)看名字,比如snakecolor(),很明显他的意思是蛇的颜色。2.)控制变量猜想,比如设置墙的时候for(i=200;i<=500;i+=10); rectangle(i,300,i+10,309);中的200,500,300,209 代表什么呢?我们可以猜想:它很像是坐标上的(x,y)的格式,是不是呢?可可以先让其他数值不变,只让309改变,改变后发现上面的墙变粗了,由此可见这个数字控制的是一堵墙的最下面一行的坐标。 关于该程序的相关分析思路答题模板: 1.贪吃蛇程序流程图如下: 二.贪吃蛇程序的改编: 经过小组成员的认真研究我们对其进行了如下改编 第一步加墙 void DrawK(void){ /*setbkcolor(MAGENTA);*/ setcolor(5);// 可以改变颜色 setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设置线型*/ 横向上的墙: for(i=100;i<=600;i+=10)// 本行代表行坐标上:100代表墙的初始位置,i<=600代表墙的结尾。 { rectangle(i,60,i+10,69);//本行代表纵坐标上:60代表墙的最上面一行的位置,69代表墙最下面一行的位置。69-60=9,9代表墙块的厚度 } 纵向上的墙: for(i=100;i<=400;i+=10)//本行代表纵坐标上:100代表墙的初始位置,i<=400代表墙的结尾 { rectangle(100,i,109,i+10);//本行代表纵坐标上:100代表墙的最左边面一行的位置,69代表墙最右面一行的位置。69-60=9,9代表墙块的宽度 } 我们认为本模块最重要的是for语句控制的坐标代表的意思。只要明白了坐标的意思,就可以实现对游戏的改编。 第二步就是进行对新加入的墙蛇是否撞上死亡 让蛇撞墙死 if(snake.x[0]>190&&snake.x[0]< 510&&snake.y[0]>=200&& snake.y[0]<=215) /*其中,对x,y范围的控制,实际是对蛇撞击的死亡区域的限制。*/ { GameOver();/*本次游戏结束*/ snake.life=1;/*蛇死*/ } 相应的新添加的墙。 for(i=200;i<=500;i+=10)/*画围墙*/ { rectangle(i,200,i+10,209);/*指定位置*/ 第三步食物的定点出现 if(food.yes==1)/*需要出现新食物*/ 这里说明一下:rand()产生0-65535的数,在limits.h里有定义%400后产生一个0-399的数+60 则为 60 –459,即:%400+60意思是在60~399之间随机产生一个数。 { food.x=rand()%400+60; food.y=rand()%350+60; while(food.x%10!=0)/*食物随机出现后必须让食物能够在整格内,这样才可以让蛇吃到*/ food.x++; while(food.y%10!=0) food.y++; food.yes=0;/*画面上有食物了*/ } 如果将food.x=(常数a)那么食物就会出现在x=a行的随机列,对于food.y=(常数b)那么食物就出现在y=b列的随机行。 第四步对食物墙壁的颜色以及对蛇的运动速个性化调节 setcolor(4);// 对颜色的调整 int gamespeed=50000;/*游戏速度自己调整*/ 通过改变变量的值,就可以个性化选择自己喜欢的颜色,这将是一场别开生面的游戏界面。* 红色代表解析浅蓝代表提示 三.课程设计总结 有言曰:“实践出真知”,在这几天的课程设计实践中,我们组三人真正的体会到了这句话的真谛。 在经历了一学期的C语言学习后,我们从以往的“纸上谈兵”直接过渡到“实际作战”。我们实现了让静态的程序变成动态的游戏效果,虽然我们只是改编了一下别人做好的程序,但我们同样由此获益匪浅,感触颇深,当然也发现了许多自己的不足。 首先,在我们刚刚进行第一步“寻找程序”的时候,就被搁浅了,因为我们发现,在网上能找到一个真正符合我们使用标准的程序很难,就是找到了几个也没有能运行它们的程序。我们花费了前两天的时间来寻找能够使用的程序和软件,但最后还是一无所获,正当我们一筹莫展的时候,我们的导师——杨老师给我们带来了曙光,使得我们在黑暗中找到了希望的光明,杨老师给我们传来了一个上届师哥做好的程序,并且把它的运行软件也给了我们,这对我们来说无疑是雪中送炭,得到这个程序后,我们三个人看到了C语言运行一个游戏的流程和方法,我们脑中也大概有了一个思路。我们三个人以此程序为跳板,直接开始对程序模块进行挑选,因为我们已经浪费了两天,所以我们决定进行分工作业,分别去寻找:筑墙模块,加苹果模块,撞墙死模块。最后我们用了一下午时间完成了三大步中的前两大步和第三步的第一部分,剩下的就是最重要而充满挑战的改编了,从以上的操作中,让我们明白了找对一个平台的重要性,这个平台就是老师给我们的程序,就是我们的前进方向。没有了方向了的征程,一开始就是个错误。在我们寻找程序模块的时候,我们对于程序中的很多东西都是模模糊糊的概念,比如struck是什么,比如for语句的使用,以及for语句的循环体是什么,当然我们也发现了定义字符在长的程序中的方便与重要性。还有就是我们发现程序在编写时的规范性很重要,比如同级别花括号的位置的对应,对应好了,模块就好找,对应不好就很乱。还有定义函数及变量的时候,函数名字和变量名最好是见名知意,比如我们所看的程序中,gamespeed,snakecolour,food.....在最后的攻坚阶段,为了实现对程序的改编,我们使用控制变量猜想法是正确的选择,比如设置墙的时候for(i=200;i<=500;i+=10); rectangle(i,300,i+10,309);中的200,500,300,209 代表什么呢?我们猜想:它很像是坐标上的(x,y)的格式,是不是呢?我们先让其他数值不变,只让309改变,改变后发现上面的墙变粗了,由此我们知道这个数字控制的是一堵墙的最下面一行的坐标。我们用这个方法知道了其他很多数值的用途。我们用这种方法先是知道了如何设置一堵墙,在我们欣喜设置一堵墙以后才发现:蛇撞了墙后不死。在我们进行了全局来看以后才知道,原来设计一堵墙,都要再设计一个if语句来使得蛇在这个范围内会死亡。并且我们发现在设计这个if语句的时候,不仅要计算好墙的坐标,而且还要用好逻辑语言(&&,||!)同时语句的运算顺序也很重要。刚一开始我们忽略的&&和关系运算符级别的高低,使得我们设计的墙,总是撞不死蛇,为此我们很是恼火,着急的组员还在这里发生了点小摩擦,由此可见C语言的严谨性! 最后我们又通过在网上查找信息,知道了随机数发生器randomize()的用法:rand()=x%+d 意思是说在d~(x-1)之间随机产生一个数字。我们很自然的联想到,如果把food.x等于常数a;把food.y等于一个;x%+d的随机数,那不就能固定只在某一行出现苹果了吗?所以我们觉得,充分利用手边的资源也是很重要的,毕竟C语言很高深,课本上的东西总是有限的,要想知道更多的东西还需多练习,多查阅资料。总之:革命尚未成功,通知还需努力啊!四个人感受: 汤X: 就我个人而言,这次课程设计,我觉得我最大的收获就是:我明白了,我们其实真的没那么厉害,我们真的还有很多东西不会,我们真的连课本上的基本东西都没掌握,课本上的东西,真的也只是C语言这个大海中的一滴水而已。而在我本人还没有掌握好课本的知识点的情况下,做起这个程序自然很费事,一个简单的课本P293讲到的struct结构体,我一开始竟然忘记它是什么意思,不知道它是什么,就更不用谈怎么用它了。还有逻辑语言的使用。我想,现在肯定有很多同学还不知道逻辑运算的优先次序吧?这个问题我本人在使用逻辑语言的时候也不太会,还查看了书。像这些小的知识点,我个人认为如果掌握不好的话,是不可能让整个大程序运行起来的。还有比如我在遇到程序显示“else多余”的警告时候不不知所措,问了老师才知道是if()后面加了“;”而且if没有用“{}”来固定范围,这个错误原因是分号使得if语句结束了,孤立的else当然是多余的了。一个小小的分号使得程序无法运行,由此可见在今后的编程中,一定要注意谨慎,仔细。同时要注意记住平时编程的时候,出现的错误指示是什么意思。比如这次的“else多余”就是因为if后多了分号。还有在编程时候,书写一定要规范,特别是if语句的花括号的位置要对应起来,因为位置决定范围。注意定义变量和函数要使用规范的英文单词,这样才能见名知意,为以后修改找变量节省时间。对于这次课题中,“设计一个墙,就要对应一个函数舍得蛇撞墙死”,让我明白,C语言程序中各部分的联系性,牵一发而动全身,所以在编程时一定要注意全局的把握。我们最后还要说说在编程中,好好利用网络资源,因为课本里的东西总是有限的,而C语言又那么高深,像随机数发生器,还有颜色的定都是我第一次接触,这些东西的用处可是颇大,以后一定好好学习。多看,多练,多总结。最后还要感谢指导老师,杨老师对我学习的帮助和指导。徐XXX: 刚开始拿到题目时候什么也不会一片茫然,从网上找了一个程序一看,太吓人了,这么长怎么看啊,而且还是错误的。没办法只能硬着头皮去改了,但是在改的过程中才发现其实c语言没有想象的那么难而且还很有意思,只是自己平时没有好好学所以在改的时候非常吃力,有很多简单的知识都不知道,没有记住。没办法只能借助与课本了。但是几天下来发现自己已经不再像以前那样是个菜鸟了,虽然很多知识还没掌握。同时在编改程序的时候切记不能烦躁要静心慢慢来,好几次自己都因心燥出现了很多不该出现的错误浪费了很多时间。 对键盘的熟悉在编程时也是很重要的,自己在写的时候往往就是跟一指禅差不多眼睛盯着键盘打,打错了也不知道最后导致整个程序都是错误的,就因为一个打错了一个字母。 总的来说这次课程设计收获很多,也知道了自己的不足,在以后的学习中要多实践,实践很能提高自己的能力。刘XX: 4天的C语言课程设计上机学习让我感受颇多,每天都发现新的问题,又不得不绞尽脑汁解决问题,心情就像正弦函数,随着问题的出现和解决一起一伏。刚开始接触贪吃蛇的C语言成寻时,看着C-free上面出现的有十几个错误的程序,一片茫然不知所措。只能继续在网上搜索错误较少的程序,并结合书上的基础知识查看错误所在,最终发现是 作为小组中唯一的女生,明显感觉有压力,打字速度不如另外两个男生,对游戏和程序的敏感也不如他们强,有种小小的挫败感。旁边小组的同学也给我很大的压力。他们自己编写程序,我很佩服他们,越是这样想。心里越着急,越不能解决问题,每当感觉有压力的时候,就提醒自己心静,认真的看程序。在学习过程中,深深的发现了自己的不足之处,对于C语言,只学了一点点皮毛东西,想要学好C语言,编好程序,还要付出很多的努力,还要用更多的时间来学习C语言这门深奥的学科。现在只能借用别人已经写好的程序,在别人的基础上,一点点进步和学习,比如程序中筑墙,需要仿照已有的程序,结合逻辑运算,关系运算和数学知识才能让蛇撞墙死。苹果位置的出现也同样需要进一步的搜索,通过更改食物的横纵坐标以及出现的概率来确定食物的位置。编写程序时,也发现书上的东西对于程序的某些部分来说,没有什么作用,显得太浅显,想要实现老师给出的一些要求,还需要实践,通过上机学习,自己摸索才能成功。一次次修改,一次次失败,就像贪吃蛇想方设法吃苹果会Game over,我们只有认真学好基础理论,并结合实践经验才会取得进步。 在这次学习过程中,我很感谢我的组员,虽然有时我们的意见出现分歧,但是通过大家的共同努力,我们收获了很多,一起讨论,一起研究怎样解决问题,对老师提出的要求个个击破,我们拧成一股绳共同应对问题,让我感受了团队的力量希望在以后的学习过程中,我们依然能够互相帮助,共同进步。 五 课程设计修改后的程序.加墙 for(i=200;i<=500;i+=10)/*画围墙*/ { rectangle(i,200,i+10,209);/*指定位置1*/ } for(i=120;i<=200;i+=10)/*画围墙*/ { rectangle(100,i,109,i+10);/*指定位置2*/ } 2.指定位置加苹果 if(food.yes==1)/*需要出现新食物*/ { food.x=rand()60; food.y=rand()%200+60; while(food.x%10!=0) food.x++; while(food.y%10!=0) food.y++; food.yes=0;3.指定地方撞墙死 if(snake.x[0]>190&&snake.x[0]< 510&&snake.y[0]>=200&& snake.y[0]<=215) { GameOver();/*本次游戏结束*/ snake.life=1;/*蛇死*/ } if(snake.x[0]>90&&snake.x[0]<110&&snake.y[0]>=110&&snake.y[0]<=215) { GameOver();/*本次游戏结束*/ snake.life=1;/*蛇死*/ } 一、初步设计评审批复意见执行情况 本施工图设计是在初步设计及其评审意见和批复意见的基础上进行详勘,并深化、优化设计。 本合同段计算行车速度采用80km/h,路基宽24.5m。桥涵与路基同宽。 二、公路平面总体设计的说明 公路平面总体设计图是采用平、纵、横设计资料与路基防护及排水、桥涵、路线交叉等设计资料,利用我院与中南大学合作开发的公路一体化设计系统软件digiroad生成的总体设计图进行修编的。 公路平面总体设计图比例为1:2000。按《公路工程基本建设项目设计文件编制办法》的要求进行编制,对用地边界线未作详细绘制,详见本合同段第一册;公路平面总体设计图中未示出环保绿线,即路堤护坡道的内侧线(路堑边坡顶线);《导线点坐标表》《水准点表》详见本合同段第一册。 整体式路基的路线平面线为路基中心线,本合同段在K137+300~K138+972.98(对应路线右线的桩号为YK137+342.46~YK139+013.77)段和K139+652.86~K141+184.54(对应路线右线的桩号为YK139+652.86~YK141+169.29)段为分离式路基,分离式路基长3.20466km,其它路段均为整体式路基,路基的左线为保持同整体路基桩号的一致性,左幅路基同全幅式路基一样,均用“K”表示,右幅路基用“YK”表示。 三、对工程实施的建议 1、在进行主体工程施工前应作好施工组织计划,及时修好便道便桥和临时防护排水设施。 2、建议在施工前针对公路平面总体设计图对沿线水系进行全面复查。 3、施工中要加强水土保持,特别是路基开挖,要先做好排水设施,在开挖中,要边开挖边防护。 4、施工中要加强环保意识,特别是路基开挖过程中,在环保绿线与用地红线之间的草木不要破坏,特别是大树。 四、工序衔接的说明及注意事项 1、本项目路面与其他土建工程是分开施工的,要加强相互间的衔接,在进行土建工程施工时,注意做好防护与排水以及路面面工程的管道预埋。 题目:猜数字游戏 学院:电气与电子工程学院 专业:电气工程及其自动化 班级:080308 姓名:常亚梅 设计日期:20090621 总分: 一、设计题目:猜数字游戏 二、题目阐述及设计思路: 猜数字是一种开发智力的游戏,在现代社会中越来越流行,现用已学的C语言程序的各种知识练习编写简单的应用的程序来实现游戏的功能。该游戏的实现主要用到C语言中的库函数来实现图形界面能 并运用各种循环结构和分支结构来实现选择功能,以次完成整个 游戏的制作。 三、主要知识点: C语言中的库函数来实现图形界面能 并运用各种循环结构和分支结构来实现选择功能 四、程序清单: #include static int kkk=1;int currenti=1;int rpiao[5];int xpiao[5];int com[16];int money=100; void initmu(void){ int i;char s[3];char m[5];char n[2];n[0]=157;n[1]=NULL;setcolor(2);rectangle(100,20,500,120);rectangle(90,0,510,130);setcolor(14);rectangle(100,220,500,420);rectangle(90,210,510,430);setfillstyle(9,2);floodfill(91,1,2);setfillstyle(9,14);floodfill(91,211,14);/*编框,大小,位置,颜色*/ setcolor(4);for(i=0;i<=14;i++){ setcolor(4);rectangle(110+i*25,230,135+i*25,265);itoa(i+1,s,10);setcolor(15);outtextxy(115+i*25,245,s);outtextxy(120,300,“please choose the five number you want!!”);} outtextxy(120,330,“use UP choose,use LEFT and RIGHT move”);outtextxy(120,400,“press esc to quit”);/*向图内添加字母*/ itoa(money,m,10);outtextxy(230,180,n);outtextxy(250,180,m);if(kkk==1){ setfillstyle(1,4);bar(115+(currenti-1)*25,255,130+(currenti-1)*25,260);kkk=kkk-1;} } void initcom(void){ int i;for(i=0;i<=15;i++)com[i]=i;} void rrrpiao(void){ int i;int k;for(i=0;i<=4;i++){ rpiao[i]=random(15)+1;k=rpiao[i];if(com[k]==0)i=i-1;else com[k]=0;} } /*选择数字*/ void show(int k){ if(k==2)outtextxy(120,40,“you get the fourth prize 5 yuan”);if(k==3)outtextxy(120,40,“you get the third prize 20 yuan”);if(k==4)outtextxy(120,40,“congratulations!!you get 1000 yuan”);if(k==5)outtextxy(120,40,“great!!!,you get 10000 yuan!!!”);}/*每局结束后显示的结果*/ void jisuan(void){ int k=0;int i,j;for(i=0;i<=4;i++)for(j=0;j<=4;j++)if(rpiao[i]==xpiao[j])k=k+1;if(k==0||k==1)money-=10;if(k==2)money-=5;if(k==3)money+=10;if(k==4)money+=990;if(k==5)money+=9990;show(k);}/*总钱数的计算*/ void xxxpiao(void){ static int i=0;int j;int k;int key;char s[3]; key=bioskey(1);if(key)key=bioskey(0); if(key==esc){ closegraph();exit(0);} if(key==up){ xpiao[i]=currenti; for(j=0;j if(key==left){ setfillstyle(1,0);bar(115+(currenti-1)*25,255,130+(currenti-1)*25,260);if(currenti==1)currenti=15;else currenti=currenti-1;setfillstyle(1,4);bar(115+(currenti-1)*25,255,130+(currenti-1)*25,260);} if(key==right){ setfillstyle(1,0);bar(115+(currenti-1)*25,255,130+(currenti-1)*25,260);if(currenti==15)currenti=1;else currenti=currenti+1;setfillstyle(1,4);bar(115+(currenti-1)*25,255,130+(currenti-1)*25,260); }/*键盘的控制*/ if(i==5){ for(k=0;k<=4;k++){ itoa(rpiao[k],s,10);outtextxy(230+k*30,350,s);} outtextxy(120,350,“the number:”);outtextxy(120,370,“you choose:”);/*选择完毕后,显示相同的个数*/ for(k=0;k<=4;k++){ itoa(xpiao[k],s,10);outtextxy(230+k*30,370,s);} jisuan();sleep(3);cleardevice();currenti=1;i=0;kkk=1;} }/*选择完毕后,停留的时间并清屏*/ void dead(void){ if(money<10){ outtextxy(120,40,“you have not enough money”);sleep(2);closegraph();exit(0);} }/*游戏结束的条件*/ void main(void){ int gd=DETECT,gm;initgraph(&gd,&gm,"");while(1){ initmu();initcom();rrrpiao();xxxpiao();dead();} } 五、设计结果说明: 1、设计优点:此程序比较容易理解和使用,操作方便。用到的知识比较全面很好的总结和复习了我们以前学过的知识。 C语言程序是计算机专业本科教学计划中不可缺少的基础课程, 其教学效果对学生今后其他专业课程的学习及毕业后的专业工作前景都有重要的影响。该课程都具有实践操作性很强的特点, 但由于课堂教学和实验的深度和广度有限, 存在学生动手编程能力培养不足的问题[1]。因此目前高等院校在该课程结束后都开设了课程设计作为实践性教学的补充。 《C语言程序设计》课程设计的目的是通过综合训练, 引导学生应用C语言程序所学的各知识点, 解决实践问题, 帮助学生系统掌握相应课程为后续课程打下坚实的基础, 并培养学生初步分析问题解决问题能力、编程和动手能力、文档书写和表达能力、及团队合作能力, 提高学生今后就业的竞争能力。 当前程序设计课程教学仍然是以程序设计语言为主, 以概念为主, 以书面教学为主, 往往把这门课程当成以概念和知识点学习为主理论型课程, 忽视了对实际能力的培养。而课程设计传统的教学模式面临着同样问题, 其教学过程是由教师首先讲解某一具体实例, 给出计任务和基本的功能结构框架, 接着由学生按照老师要求, 仿照实例自行完成任务并提交报告, 最后由教师进行评价。这种教学模式往往很难达到理想的教学效果。 2、存在问题及原因 以下从学生角度和教学角度两个方面分析传统教学模式存在的问题。 2.1 学生方面问题 《C语言程序设计》课程的学习, 很多学生反馈这门课程难度很大, 语法知识太多, 理解和记忆困难。即使理解了课本的知识, 由于课程中所有提供的实例及所做的实验都仅针对某一知识点, 实用性不强, 面对要求综合应用所有知识去编写解决实际程序还是有很大困难[4]。 进入课程设计环节, 基础较好的学生对所接到的针对实际问题的任务, 感觉兴奋, 能顺利完成任务, 但往往仅能照搬老师所给实例解决相同问题, 若任务问题有所变化, 无法做到分析新问题并给出解决方法。基础较差的学生则表现为不知所措, 为难情绪严重, 提不起兴趣, 只想着怎么能蒙混过关。 完成课程设计后, 学生反馈感觉像又做了一次大实验, 并不能体会程序开发实际工作过程。此外由于较为容易蒙混过关, 成绩评定存在不公平。 2.2 教学模式的问题 课程设计采用传统的教学模式存在以下不足: (1) 未能有效的培养学生分析与解决问题能力。课程设计的传统教学模式仍然是“理论+实验”方式, 以教师书面教学讲解实例为主, 并给出任务和基本的功能结构框架, 学生听完后做。教师处于“主动”地位, 而学生处于“被动”地位。这中方式不利于实践环节的教学, 不能让学生充分参与其中, 因而学生的分析问题解决问题能力都得不到有效培养。 (2) 缺乏实践过程的监控。传统教学模式中, 任务的完成往往由学生自行完成, 最后提交报告。程序设计、编程、调试及测试等各个环节没有教师参与, 往往无法防范学生通过抄袭蒙混过关, 最终影响成绩评定的公平性。不利于调动学生学习的积极性。 (3) 传统教学模式中, 教师依据学生最终提交的设计报告进行评分, 未能综合考虑学生在各个环节的表现, 评分机制欠公平。 3、改革与探索 3.1 指导思路 改革传统课程设计教学模式, 通过加强实践过程管理及改变评价方式, 由原来教师为主导, 学生被动练习方式, 改为学生动手练习为主, 教师参与指导与监控的方式, 达到培养学生各方面能力, 并有效调动学生学习积极性。 3.2 加强教学过程管理与监控 传统教学模式忽略整个实践环节的监控, 容易导致部分学生蒙混过关, 不能达到理想的教学效果。为了加强对整个实践过程的监控, 改革课程设计的教学过程, 先将学生分为各学习小组, 每个小组3到4人, 同时将整个实践环节分为四个阶段:设计阶段、编程调试阶段、测试阶段及答辩阶段进行管理。 (1) 设计阶段, 小组需要针对设计任务要求自行查询有关资料, 并组织讨论得到任务的需求分析及总体模块设计框架, 将各模块设计任务分配到成员。各成员完成各模块流图后再次进行讨论完成设计报告。每次讨论结束提交讨论记录。教师可参与小组讨论, 或通过检查各小组讨论记录了解各小组进展情况进行相应指导。 (2) 编程调试阶段, 在设计报告通过教师审核后, 小组进入编程调试阶段。本阶段要求小组成员在限定的时间内各自编写设计阶段分配到个人的功能模块程序, 并完成各个功能模块调试。接着小组展开联编调试, 并记录调试过程, 提交调试报告及最后源码。同样教师可参与小组调试并对遇到困难的小组予以协助。 (3) 测试阶段, 本阶段需要小组之间交换源码进行测试, 并提交测试报告。由于《C语言程序》课程设计往往设在大一, 学生未接触过测试方法的内容和知识, 因而本阶段开始之前需要教师补充部分基本测试方法的理论知识, 并给出测试报告示例。 (4) 答辩阶段, 各小组在限定时间内论述所做设计的方法、特点及创新点, 而教师与其它小组可提问, 小组成员代表回答, 最后教师给予点评, 以达到各小组相互学习相互促进的目的。 实践环节的四个阶段, 教师通过直接参与或检查报告能有效的监控整个过程, 并了解各学生的实际动手情况。 3.3 注重各方面能力的培养 与传统教学方式不同, 通过合理安排实践过程, 学生的各方面能力都得到锻炼。在设计阶段, 能培养学生的主动学习能力和创新能力;在编程调试阶段不仅锻炼了学生的动手编程能力, 还通过小组的协作完成, 培训了学生的团队合作能力;而答辩阶段有利于培训学生的表达能力。各阶段的报告锻炼了学生的文档书写与表达能力。 3.4 改革评价方式 传统的教学模式, 学生对成绩评价存在不满, 因此有必要改革评价方式。首先, 将成绩评价由教师一人评定, 改为由学生与教师一起参评。在测试阶段, 各小组给所测试组评分, 答辩阶段, 答辩成绩为其他各小组评分的均值。其次, 教师能够通过对实践环节的监控了解小组成员所完成的任务大小及质量, 再给出综合评价。学生评分占40%, 教师评分占60%。评价方式如表1所示。 4、结束语 在采用新教学模式的两个学期以来, 在本校学生网上评教系统上, 学生给出了89, 90的综合评分, 不再出现对成绩评定不公平的意见, 很多学生谈到实践过程中克服困难与收获的喜悦。 从学生反馈来看, 在《C语言程序设计》课程设计教学中采用以学生为中心的思想, 通过合理组织各实践环节, 加强教师对各环节的监控与引导, 在环节注重学生的各方面能力培养, 能避免学生蒙混过关, 有效调动学生的主动性与积极性, 取得了较好的教学效果。 摘要:本文根据作为“C语言程序设计”综合实践环节的课程设计的教学目标, 分析了目前课程设计的教学模式下存在的一些问题, 针对问题提出了改革教学过程、评价方式的一些办法与措施。 关键词:C语言,课程设计,教学模式,教学过程 参考文献 [1]尹宝林.“C语言程序设计”课程建设的思考和实践[J].计算机教育, 2009 (23) :129~141 [2]祝胜林, 邢仲璩, 林丕源.“C程序设计"专业基础课程中三种能力培养的教学探索[J].计算机教育, 2009 (20) :10~13 [3]廉佐政, 王海珍, 李敬有等.程序设计类课程设计的教学模式研究[J].高师理科学刊.2009 (6) .11:95~97 【关键词】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 同时,本次课程设计也锻炼了学生利用图书馆和互联网查阅资料的潜力;培养了学生不怕困难、勇于克服困难的精神和耐心细致、严谨的工作作风;提高了他们撰写文档资料的潜力。 一、本次课程设计,我们主要按照以下步骤完成: 1、课程设计动员,布置设计任务,提出要求,给出参考思路,并给出大部分程序代码; 2、学生查阅资料,分析、讨论设计方案; 3、画出系统总体功能框图及各模块的流程图; 4、编写各模块程序; 5、进行模块调试; 6、完成模块联调,进行测试; 7、成果验收,完成设计报告。 二、课程设计过程综述: 1、大部分同学,态度十分认真,对课程设计的各个环节,都很感兴趣,用心性很高,创新性地进行编程和调试,任务完成相当出色,值得学习和表扬。例如:张燕龙、唐晓彤、徐怀刚、王泽连、武蒙蒙等同学。 2、有少部分同学对课程设计的目的和好处认识不足,设计不够认真。主要表此刻设计不能独立思考,编程、调试不能主动用心思考、解决问题等,个别学生甚至在课程设计没有进行任何实质性的工作。 3、也有一部分同学,对所学理论知识掌握不够扎实,不能灵活运用,自己基本上不进行设计,仅仅依靠于同组者。 4、大部分同学的程序调试潜力需要进一步锻炼和提高,这也给我们以后讲授本课程、进行课程设计提出了更高的要求。 三、体会和设想 1、对《C语言》课程的学习,课程设计是十分重要的环节,它对巩固所学理论知识,灵活运用所学知识解决实际问题、锻炼和提高学生的操作和调试技能、学生将来能否尽快适应工作都具有十分重要的实际好处。所以,从校园到老师到每一位学生都应认真对待和珍惜这个机会,严肃认真做好每一步工作,使课程设计圆满完成。 2、透过课程设计,也反映出对C语言中的一些难点资料,如指针、结构体等,大部分学生掌握得不够好,在平时授课中需进一步深入讲解、多加练习,以使学生在本课程学完后对其能有一个全面、熟练的掌握。 3、要使课程设计到达锻炼提高学生技能的目的,还应注意以下几点: (1)提前布置课程设计任务,可在学期开始就布置下去,使学生在整个学期的C语言学习中都有一个明确的目标和足够的压力,并将课程设计中的资料和出现的有关问题渗透于教学过程中。 (2)务必从思想上使学生对课程设计有足够的重视,并在设计过程中严肃认真检查、督促; (3)注意课程设计的指导方法,加强预设计过程的检查和指导,不能只给他们“鱼”,而应授之以“渔”; 优化师资队伍, 构建擅于应用现代信息技术与擅长现代职业教育体系的教学团队, 这是保证高职院校教学质量的保障。高职院校要加强对教师专业知识素质提升和教师职业精神的培养, 不断建设一支具有良好的政治素养、专业能力强、结构合理的相对稳定的师资队伍。 作为实践和理论要求都很强的课程, 务必夯实课程理论基础, 理论是实践的基础。如果对基本的语义、语法规则的理解不深刻, 就不能很好地实践和运用。为保证课堂教学的有序开展, 务必理论基础扎实可靠。C语言具有概念化、抽象化、逻辑化、语言复杂化、规则多变化等诸多专业特点, 在实践操作过程中更是不断变化。教师教好C语言, 学生学好C语言, 重中之重是掌握C语言最基本的语义和语法规则。教师必须深刻理解C语言的基本定义, 能够熟练掌握概念。在课堂教学过程中, 高职院校教师务必通过最具体、最方便、最简单的示例课剖析当前所讲授的复杂多变的语言现象和规则, 利用电子动画、形象的比喻对概念讲解和表达, 用直观形式表达, 只有学生才便于理解和记忆, 否则, 繁复的例子只会分散学生的注意力, 增加学生理解的负担。 一、课堂教学方式的改革和探索 C语言的教学内容不具体, 抽象多变, 学生不容易掌握和理解, 教学的内容和过程大多枯燥无味。高职院校教师可以通过不断的学习和研讨, 结合当今的网络资源, 向其他地区或者其他学校的优秀C语言教师请教, 在学习和探索中提升自我的教学能力。高校教师在备课过程中要学会不断整合优秀资源和学会制作良好的教学课件, 要实现C语言教学内容的有序性、层次性和结构性。 二、加强课程实践改革力度 C语言是一门实践性、体系性很强的学科, 学生必须大量实践, 实践环节尤其重要, 加强创新能力, 加强学生对所学基础知识与内容的理解和思考, 培养学生计算机C语言的实际操作能力和创新能力, 高职院校教师将课堂教学和实践摆在同等重要的地位, 重视实践的作用。让实践教学的时间和课程不断增加, 课堂教学和实践教学相结合, 最终融为一体, 互相发展。高职院校C语言的实践教学由三个实践环节组成和完成, 即我们所说的教学课堂计划内实践环节、校外实训环节和第二课堂活动。教学课堂计划内实践环节是对所学C语言基本概念的理解、巩固和提高的过程。实习场地在高职院校的校内的机房, 由各任专业计算机任课教师指导进行, 并制定了严格的实践考核体系, 保证实践有序进行。校外实训在校外计算机互联网公司开展, 达到增强学生专业知识的社会实践能力的目的, 拓展课堂知识和内容, 不断对所学知识进行深化和提升。第二课堂活动是对计算机专业的学生综合应用能力、创造能力和创新能力的培养。 三、培养学生学习兴趣 成立专业的兴趣小组, 调动学生学习C语言的积极性和热情。在课堂和实践之外, 可以组织学生自己建立兴趣小组, 选取学习成绩较好的、勤奋刻苦的、爱好学习、编程能力较强的学生建立兴趣小组, 教师作为小组的辅导教师, 定期为兴趣小组提供课程题目等, 定期组织学生开展小课题研究和探索。鼓励计算机专业的学生通过大量调研和实践, 收集当今世界领先的资料、查阅相关计算机的参考文献、分析研究设计实施来解决疑难问题, 发挥广大学生学习语言的主动性和实践的创新精神, 通过团队培养学生的团队协助和创新精神。 C语言课程改革是一项系统的工程, 要从高校师资队伍建设、课堂教学、实验步骤、实践环节、课程作业、教学设备、学生考核评价、教师教学考核等环节, 对C语言课程进行全面而系统的改革。已达到推进C语言课程教学的不断进步和发展, 让学生充分掌握教学内容的核心和实质, 激发学生继续探索知识的能力, 激发学习知识的兴趣。教师要勇于发掘学生的创新和创造潜能, 但教学过程是一个持续改进和不断完善的过程, 要不断总结课程教学的经验和教学, 不断学习和借鉴他人先进的教学改革成果, 要保证C语言教学不断提高。 参考文献 [1]谭浩强.C语言程序设计[M].北京:清华大学出版社, 2000-01. 适用于三年制专科计算机应用专业 学分:1 周数:1 一、设计目的与要求 《高级语言程序设计课程设计》是《高级语言程序设计》课程的实践环节,其教学目的是通过一些中小规模程序的编程,使学生对c语言程序设计的基本规则与方法有比较全面的理解和认识,熟练掌握高级语言程序设计技术,为以后学习更高层次的程序设计和软件开发奠定坚实基础。 通过本课程设计,应达到下列基本要求: 能够结合c语言来理解程序设计的基本概念; 掌握用c语言解决问题的基本方法和步骤,能够熟练地使用c语言编写中小型应用程序; 熟练掌握c语言编程规则,掌握函数的应用方法和编写; 熟练掌握面向过程程序设计方法; 掌握结构化程序设计思想和方法; 培养和提高学生的程序调试能力; 培养学生查阅手册、图表和文献资料的能力; 培养学生撰写报告文档的能力。 二、课程设计题目 每个题目的限选人数根据班级总人数平均后确定,但要求同一题目的学生独立完成设计题目,以下10个题目任选其一。1。职工信息管理系统设计 1.1问题描述 试设计一职工信息管理系统,职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)1.2基本要求 1.系统以菜单方式工作(2.职工信息录入功能(3.职工信息浏览功能(4.查询和排序功能:(至少一种查询方式)--算法(((1)按工资查询((2)按学历查询等 5.职工信息删除、修改功能(任选项)(2.图书信息管理系统设计 1.1问题描述 试设计一图书信息管理系统,图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。1.2基本要求 1.系统以菜单方式工作(2..图书信息录入功能(3..图书信息浏览功能(4..查询和排序功能:(至少一种查询方式)--算法(((1)按书名查询((2)按作者名查询 5..图书信息的删除与修改(3。学生信息管理系统设计 3.1问题描述 试设计一学生信息管理系统,学生信息包括:学号、姓名、年龄、性别、出生年月、地址、电话、E-mail等。3.2基本要求 1..系统以菜单方式工作 2..学生信息录入功能 3..学生信息浏览功能 4..查询、排序功能(1)按学号查询(2)按姓名查询 5..学生信息的删除与修改 4。学生选修课程系统设计 4.1问题描述 试设计一选修课程系统,假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。4.2基本要求 1.系统以菜单方式工作(2.课程信息录入功能(3.课程信息浏览功能(4.查询功能:(至少一种查询方式)--算法((1)按学分查询((2)按课程性质查询(5.学生选修课程(可选项)(5。销售管理系统 5.1问题描述 某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容:(1)销售员的代号,(2)产品的代号。(3)这种产品的当天的销售额。每位销售员每天可能上缴0-5张便条。假设,收集到了上个月的所有便条,5.2基本要求 编写一个处理系统,读取上个月的销售情况(自己设定),进行如下处理。1.计算上个月每个人每种产品的销售额。 2.按销售额对销售员进行排序,输出排序结果(销售员代号) 3.统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)4.输出统计报表 销售统计报表能反映出:销售员代号 产品代号 销售之和 每种产品之和 总和 6.学生成绩管理 6.1问题描述 对学生成绩进行管理,学生信息如下: 现有学生成绩信息,内容如下 姓名学号语文数学英语 张明明 01 李成友 02 张辉灿 03 王露 04 陈东明 05 „.......… 6.2基本要求 实现学生信息管理,软件的入口界面应包括如下几个方面: 1.系统以菜单方式工作 2.学生信息数据能实现学生信息数据的维护。此模块包括子模块有:增加学生信息、删除学生信息、修改学生信息 3.查询时可实现按姓名查询、按学号查询 4.成绩统计:输入任意的一个课程名(如数学)和一个分数段(如60--70),统计出在此分数段的学生情况。 5.能对用户指定的任意课程名,按成绩升序或降序排列学生数据并显示排序结果(使用表格的形式显示排序后的输出结果)(使用多种方法排序者,加分)6.学生可自动增加新功能模块(视情况可另外加分)7.学生成绩管理 7.1问题描述 学生成绩进行管理,学生信息包括:学号、姓名、班级、课程 1、课程 2、课程 3、课程 4、学期。 7.2基本要求 1.系统以菜单方式工作 2.能按学期、按班级完成对学生成绩的录入、修改 3.能按班级统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序 4.能查询学生成绩,不及格科目及学生名单 5.统计每门课100~85分、84~70、69~60分以上不及格的人数 6.从键盘上输入一个姓名或学号,能够查找是否是该班成员,若是,要求输出该生的全部信息 7.可以对任一学生的成绩、学号进行修改 8.可增添和删除任一学号学生的信息,增添和删除后仍能按学号排序 9.能按班级输出学生的成绩单 8.通讯录管理 8.1问题描述 设一个通信录由以下几项数据信息构成: 数据项类型 姓名字符串 地址字符串 邮政编码字符串 电话号码字符串 8.2基本要求 1.主要功能: (1)能建立、查询、修改和增删学生通讯录(2)能够按多种方式进行查询 2.要求:界面友好,易于操作 9.图书管理系统 9.1问题描述 图书信息管理系统设计,图书信息包括:登录号、书名、作者名、存在状态、分类号、出版单位、出版时间、价格、借书人姓名、性别、学号等。信息描述: 9.2基本要求 1.系统以菜单方式工作 2.新进图书基本信息 3.图书信息浏览功能 4.图书基本信息的查询和排序功能:(至少一种查询方式)--算法 按书名查、按作者名查询 5.对撤消图书信息的删除删除与修改(可选项)(6. 为借书人办理注册 7.办理借书手续(非注册会员不能借书)8.办理还书手续 10.设计一个简单计算器 10.1问题描述 模拟windows操作系统中的计算器,能进行加减乘除等计算。10.2基本要求 1.显示计算器界面 2.当用户输入一个算式后,计算器显示计算结果,同时屏幕项部显示:continue? 如果用户此时按Y键,则继续输入下一个算式,否则,程序终止 3.可以多次响应用户的计算请求 11..图书借还管理系统 11.1问题描述 对借还图书进行管理,图书被借阅,应记录借阅信息,同时图书的存库数量相应减少。还书时,应将图书数量相应增加,同时删除图书借阅信息。图书基本信息应包括:图书名称、图书编号、单价、作者、存库数量。借书人信息应包括姓名、性别、学号等。11.2基本要求 1.新进图书基本信息的输入 2.图书基本信息的查询 3.对撤消图书信息的删除 4.为借书人办理注册 5.办理借书手续(非注册会员不能借书)6.办理还书手续 12.用户登录程序设计 12.1问题描述 做一个密码验证程序,密码验证只有三次机会。12.2基本要求 1.有登录界面,用户输入密码时以*代替输出,用户登录成功后可以修改密码。2.可以有多个用户登录。 3.初次登录的密码有管理员设置。13.车票管理程序设计 13.1问题描述 一车站每天有n个发车班次,每个班次都有一班次号(1、2、3„n),固定的发车时间,固定的路线(起始站、终点站),大致的行车时间,固定的额定载客量。如 班次发车时间起点站终点站行车时间额定载量已定票人数 8:00 郫县广汉 2 6:30 郫县成都 0.5 „ 13.2基本要求 1.录入班次信息,可不定时地增加班次数据。 2.浏览班次信息,可显示出所有班次当前状总(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”的提示信息)。 3.查询路线:可按班次号查询 ,可按终点站查询。4.售票和退票功能。 A:当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数。 B:退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数。5.至少采用文本菜单界面(如果能采用图形菜单界面更好)。 三、进度安排 第1天:分析所选题目,查阅相关资料,写出需求分析,确定系统功能,划分模块;设计算法、数据结构; 第2-3天:编制代码并调试; 第4天:检查学生程序; 第5天:提交源程序清单和课程设计报告,进行答辩。 四、设计方式 1.对于每个题目,应完成算法设计和简单的应用程序设计。 a)算法设计包括解题思路,模块划分和模块代码实现方法。附传统的流程图或N-S图。b)应用程序设计包括:编辑录入源程序;反复调试、排错、运行;借用软件工程的一些方法和技巧对程序进行测试。 2.编程量以满足基本要求即可,但必须调试通过,运行结果准确。3.设计完成后,需要写成一份课程设计报告(A4纸打印出来),体现课程设计所做工作。4.结果形式:提交调试无误的源程序代码,课程设计报告一份。 五、成绩评定标准 学生成绩以优、良、中、及格和不及格5个等级评定。1.学生编写的实际软件和运行结果,占总成绩40% 2.设计报告,占总成绩40% 3.教师提问,占总成绩10% 4.出勤,占总成绩10% 六、课程设计报告要求 按照软件工程及应用程序系统设计步骤详细叙述课程设计题目的完成过程。课程设计报告的格式要求: 封面 洛阳理工学院C语言课程设计报告 题目 院系 班级 姓名 指导老师 年月日 2.课程设计内容: (1)问题描述:描述要求编程解决的问题。(本课题具有哪些功能,做了哪些工作、用了哪些方法技巧,实现结果如何) (2)基本要求:给出程序要达到的具体的要求 (3)所设计的应用程序运行所需要的软件、硬件支持环境。(4)算法分析(设计思路),描述解决相应问题算法的设计思想。 (5)功能模块划分,每个模块对应的函数、每个函数功能及参数设计情况说明。(6)系统流程图 (7)实现步骤(要求有详细的文字表述): 如安装 VC;熟悉课题;查找资料;需求分析;设计框图;录入程序; 语法排错;逻辑排错;程序测试;程序运行;数据记录;写课题设计报告等。(8)源程序完整代码以及原始数据、测试数据、输入数据及其运行结果记录。(9)简要总结及自我评价。 (10)源程序:给出所有源程序清单,要求程序有充分的注释语句,至少要注释每个函数参数的含义和函数返回值的含义。(11)参考文献 参考文献书写模板: [1] ***.C程序设计(第三版).北京:清华大学出版社,2005 [2] ***.C程序设计题解与上机指导(第三版).北京:清华大学出版社,2005 [3] ***主编.C语言程序设计实验与实训指导及题解.北京: 高等教育出版社,2005 [4] ***.C语言程序设计.北京:清华大学出版社,2008 [5] 王静, 武春岭编著.C语言程序设计基础习题集.北京:中国水利水电出版社,2008 [6] 黄维通,马力妮等编著.C语言程序设计习题解析与应用案例分析.北京: 清华大学出版社,2004 七、实习时间、地点及班级人数 【c课程设计报告说明书】推荐阅读: A01_C语言程序设计课程说明07-11 C语言课程设计选题11-13 工资管理c课程设计12-21 C语言程序设计课程教学设计08-27 c语言课程设计计划书01-11 《C语言循环结构》课程教学设计研究12-19 c语言程序设计课程教学大纲20110-31 课程设计说明书110-02 教学课程设计说明书08-07 机械原理课程设计说明书01-292.c课程设计报告说明书 篇二
3.C语言程序设计课程的教学探索 篇三
4.c语言程序贪吃蛇课程设计报告 篇四
5.c课程设计报告说明书 篇五
6.C课程设计 篇六
7.c课程设计报告说明书 篇七
8.c课程设计报告说明书 篇八
9.c语言课程设计总结 篇九
10.高职C语言程序设计课程教改探析 篇十
11.C语言程序设计教程课程设计 篇十一