C语言程序设计课程教学设计

2024-08-27

C语言程序设计课程教学设计(精选16篇)

1.C语言程序设计课程教学设计 篇一

C语言课程设计

一、课程设计目的

1.复习、巩固C语言的基础知识,进一步加深对C语言的理解和掌握。

2. 提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力。3.培养学生在项目开发中团队合作精神,创新意识及能力。

4.本课程设计主要以学生独立思考解决问题为主,教师指导为辅,结合上机操作,完成指定的任务,作出设计报告。

二、课程设计内容

第一题:背单词软件开发(学号为单号的必须作)

1.录入单词

China 中国 Japan 日本

…….使用文件存放。

2.随机测试

系统随机显示单词(用户可以选择中译英,或英译中),对回答错误的单词应该可再回答一次。能够统计回答的正确单词的个数。3.顺序测验

4.查找单词的汉语或英语意思(输入中文查对应的英语意思,输入英文查对应汉语意思)

第二题:小学数学四则运算(学号为双号的必须作)12+56=?

1.要求系统随机生成0~100之内的整数。2.对回答错误的题目应该可重新回答一次。3.能够统计回答的正确题目的个数。

4.回答错误的题目写入“error_record.txt”文件中。

第三题:学生成绩管理系统

要求:1.学生的信息用结构体来表示。

struct stu{ int

sno;

//学号

char name[8];

//姓名

char sex[3];

//性别

char inclass[8];

//班级

float math;

//数学成绩

float English;

//英语成绩

float computer;

//计算机成绩 }

2.能够按学号、按性别、按班级查询。查询方式可以自己补充。3.能够统计每个学生的平均成绩、总成绩、并可以按平均成绩和总成绩进行排序,并在屏幕上打印排序结果。

4.能够修改、删除、添加学生的信息。

5.系统的各个功能模块要求用函数的形式实现。6.在主函数里通过菜单来调用各个函数。

7.用链表或数组来存储班级学生(思考用数组和链表的异同)。

8.学生的信息能够保存在文件里(思考用二进制文件和文本文件的异同)。如果用文本文件存储,则文件格式如下: 学号 姓名

性别

班级

数学

英语

计算机 1001 王鹏

一班

68.5 58

1002 李云

一班

68.5 88

1003

王海

一班

78.5 98

…….2001 赵亚男

二班

58.5 48

2002 刘飞

二班

68.5 78

提示:

文本文件读写------fscanf,fprint 二进制文件读写----fread,fwrite 9.能够对文件进行读写、修改、删除。

第四题:中文分词器软件(选做题—加分)

与英文的以空格作为分界符不同,在中文中词与词之间没有明显的区分标记,中文信息处理中的一个重要的基础就是词的切分,也称中文分词。本题目是开发一个简单的中文分词器软件。

提示算法:

基于字符串匹配的分词方法这种方法又叫做机械分词方法,它是按照一定的策略将待分析的汉字串与一个“充分大的”词典中的词条进行匹配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。按照扫描方向的不同,字符串匹配分词方法可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配。

建议采用最大正向匹配算法。

例如:对一个字符串S,从前到后扫描,对扫描的每个字,从词库中寻找最长匹配.比如假设S=“我是中华人民共和国公民”,词库中有“中华人民共和国”,“中华”,“公民”,“人民”,“共和国”......等词.当扫描到“中”字,那么从中字开始,向后分别取1,2,3,......个字(“中”,“中华”,“中华人”,“中华人民”,“中华人民共”,“中华人民共和”,“中华人民共和国”,“中华人民共和国公”),词库中的最长匹配字符串是“中华人民共和国”,那么就此切分开,扫描器推进到“公”字。

S的分词结果为:我/是/中华人民共和国/公民

提供的词典是7个文件:chivoc2.txt,chivoc3.txt,„„,chivoc8.txt,分别存储2字词,3字词,„„,8字词。

三、课程设计要求: 1.对系统进行功能模块分析,控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善,合理。2.系统设计要实用,编程简练、可用、功能全面。3.说明书、流程图要清楚。

4.记录设计情况(备查,也为编写设计说明书作好准备)。

5.设计成果:设计说明书一份(包含源代码的详细注释说明)。

四、补充

1.程序=算法+数据结构

一个好的程序应该有好的算法和好的数据结构。

指导教师:潘惠勇

李国伟

2012.4.23

2.C语言程序设计课程教学设计 篇二

1 激发学生的学习兴趣

要想学生学好C语言,提高学生的学习兴趣,首先必须让学生对课程有个全局的认识。学生在接触一门新课程前,最关心的问题就是这门课程是学什么、学完之后可以做什么[1]。因此,在教学之初,教师应首先使学生明确学习这门课程的目的、要求以及目标,使学生初步了解该课程在本专业中处于什么位置,为什么要学习该课程,学好该课程对于个人的专业发展有什么作用,教师可以结合程序设计在本专业中应用的实例,使学生明白学习该课程的重要性和必要性,从而激发学习兴趣。另外,由于C语言的概念比较抽象,在每一章初期概念讲解阶段,可以多举一些与生活密切相关的例子,为概念的引入做准备,以激发学生的学习兴趣。例如,在介绍数组这个概念时,由于数组是一种新的数据类型,为加深学生的理解,可以提出一个问题让同学们思考:一个班学生的学习成绩应该如何存储呢?并提示学生这些数据有何特点,从而引出在C语言中如何存储,从而引出数组这个概念。这种方法能够发展学生的探索能力,避免了直接的理论说教,不仅能激发学生的学习兴趣,还能加深学生对新知识点的理解。此外,在教学过程中,布置一些有趣味性的编程题目,积极鼓励有能力的同学参加软件设计大赛,使学生通过独立或团体完成一个软件设计,增强他们的学习自信,调动学习热情,提高学习兴趣。

2 注重知识的归纳总结

和自然语言一样,许多字词可能是相近的、相反的或者是相同的,字词间存在着内在的联系[2]。在C语言中,涉及到此类的知识点时,可以采用归纳总结的方法进行教学。例如,循环结构中的while语句,dowhile语句和for语句。在学生充分掌握三种语句的基础上,教师对这三种循环语句进行归纳总结,归纳三种语句的异同点,并针对同一程序详细介绍如何用这三种语句分别实现。便于学生对循环结构的灵活掌握。另外,C语言中学到的知识点都是零星、片面的,有些甚至是容易混淆的,比如说运算符的优先级和结合性,教师在课堂中对此类知识点进行归纳总结,方便学生的比较与记忆。并且在新的一章开始学习之前,对上一章的内容进行重点、难点以及小结的归纳总结,便于学生温故而知新,避免学生边学边忘,前后知识不衔接的问题。

3 注重算法思维的培养

算法是程序设计的灵魂,在程序设计中要设计一个好的程序首先要对程序的算法有较详细的了解,其次才是采用编程语言对算法的实现。但很多学生学完C语言课程后不会编程,甚至不知道从何下手。造成这一现象的主要原因是由于程序设计的思想与学生传统的思维方式不一致,学生缺乏对算法的抽象思维能力,因此不会分析问题,无法写出算法,这就需要教师在介绍程序范例时注重学生算法思维能力的培养。教师首先提出问题,可以选择一些与实际生活贴近的小例子,如鸡兔同笼问题,引发学生进行思考,然后详细分析问题,启发学生用现有的思维方式去思考如何解决,得到解决问题方法后再启发学生将其转化为算法,并可以改变现有条件,使学生在对新问题的思考过程中,培养学生对算法举一反三的能力,最后教师对算法进行总结归纳,加深学生对这类问题的理解。将具体问题和学生的现有知识联系起来,有利于克服学生的畏难情绪,也有利于使学生快速掌握算法。

4 认真上好实验课

《C语言程序设计》是一门实践性很强的课程,“边学边练”是掌握这门课程的最好方法。因此,我们根据理论教学进度安排了实验课,并制定了专门的实验指导书,实验指导书明确了上机实验目的和要求,制定了实验内容和详细的操作步骤,并为程度较高的学生设置了选做题目。在实验过程中,注重以学生为主体,教师为主导,安排的实验内容循序渐进,采用模仿-改正-编程的实践训练思路来培养学生[3],使学生在运行程序和调试程序中锻炼分析问题和解决问题的能力,对于实验过程中学生提出的疑难问题,教师首先加以引导或者提示,启发他们独立思考解决问题,经过自己思考解决问题往往印象比较深,也能激发学生的学习热情,对于实验中存在问题比较多的题目,教师及时进行总结,并在课堂中统一进行指导,不仅节约时间,满足同学们的需要,而且对知识的掌握起到巩固加强的目的。

5 提高教师素质

由于《C语言程序设计》课程教学任务较重,所以计算机专业老师难以承担所有的课程教学任务,造成许多任课老师都是各个院系的非专业老师,缺乏系统的程序设计思想。针对这一情况,学校每学年都多次组织计算机学院多年从事课程教学并且经验丰富的专业老师对任课教师进行培训,针对课程内容进行串讲,在串讲过程中,任课老师可以对在教学过程中的疑难问题以及教材中出现的问题进行讨论。促进教师之间的教学交流,并创建了QQ群以及网络平台,便于老师们之间的信息共享以及交流,努力提高教师素质。另外,学校每学年组织《C语言程序设计》教学竞赛,教师教学的积极性显著提高,使教师不断扩充自己的知识水平和能力,不断学习新的教学方法和手段,从而提高课堂教学效果。

6 改革考核方式

为了扎实推进学校教学改革,切实提高《C语言程序设计》课程教学质量,对《C语言程序设计》课程考试环节进行了改革,在传统的考核方式理论成绩(70%)和平时成绩(30%)基础上,新增了上机考试环节,课程成绩由平时成绩(15%)、理论成绩(70%)、机试成绩(15%)等3部分组成。理论考试重点考核学生的C语言基础知识、编程思想和算法分析能力,上机考试重点考核学生的动手编程操作能力和程序调试能力。机试的考试系统由学校自主开发,学生考试时由系统自动从100套试题库中随机抽题进行考试,做到了严格的公平公正。实践后表明,这种考核方式能够更加客观地反映学生的知识掌握程度,同时能够促进学生主动学习,提高学生的动手操作能力。

实践证明,C语言的教学改进可以提高学生的学习兴趣,有利于学生对相关概念的理解以及编程能力的培养,使学生逐步掌握分析问题、解决问题的思维能力,同时也为非计算机类专业学生将程序设计思想灵活运用到自己的专业领域打下了基础。

参考文献

[1]胡丹.非计算机专业《C语言程序设计》教学探讨[J].电脑知识与技术,2011,7(34):8983-8985.

[2]邓静.C语言程序设计教学方法的探讨[J].教育教学论坛,2010(9):88.

3.C语言程序设计课程教学设计 篇三

《C语言程序设计》教学内容枯燥抽象,学生不容易理解,加上编者对教材的处理上过于注重实践技能的培养,采用“任务驱动”法组织教材内容,通过一些实际案例阐述各章节的重要知识点,又通过案例延伸对相关知识点进行了扩展和延伸,使得各知识点都融合在各案例当中。这样虽然达到了各教学知识点的有机统一,但从知识点的连贯性和层次性上来讲,不容易被学生理解掌握。同时,该教材用学生信息管理项目案例作为主线,对于毫无编程经验的职专生来说,起点过高。

C语言程序设计的学习,主要涉及到C语言基础知识框架的建立和算法思想的培养,算法思想即是数学建模的过程,而且c语言的编写都是用英语字符来完成的,这就需要学生在数学和英语两科的综合运用能力上达到一定的要求,而职业类学校的学生恰恰在这两个科目上弱项,这就进步增大了教学的难度。在教学实际过程中,可能遇到无论教师怎么解释,学生都不知所云的情况。

同时,在c语言的学习程当中,也往往要涉及很多计算机硬件原理的知识,对于处于高二的职专生来讲,对一些计算机基础知识还不能达到融会贯通的程度,计算机知识不系统,这就更加增大了实际教学的难度。

针对以上教材的情况以及学生的实际接受能力,经过教学实践的摸索探讨,我总结出了如下“C语言程序教学”的方法 。

1.在教材的处理上,结合学生实际,做到有针对性地制定教学目标,提高学生的接受能力。

我在实际教学过程中,还是以本教材为主,但在知识结构上做了一些细化。在给学生分析完教材中的案例后,对涉及到的相关知识点进一步完善和系统,使学生整体上掌握住案例的实质。例如;在讲“变量”的过程当中,变量值的储存是一个访问内存物理地址的过程。在这里,就需要对学生扩展一些关于内存物理地址方面的知识点,让学生对整个变量值的储存过程能够清楚明亮,从而提高学生对知识点的接受能力和牢固度。

在备课过程中,在意识地在每课时的教案中穿插一些计算机小知识,以激发学生学习的兴趣,提高学生学习程序涉及的积极性。

2.把教授的专业性知识与学生熟悉的相关常识相联系。

在C语言授课过程中,可能会遇到一些专业性的术语,学生从来没接触过,不知道为何物。这种情况下,授课老师可以列举一些与之有联系的比较实际的常识来做类比。比如我在给学生讲授C语言程序的基本构成单位为“函数”时,因为C语言中的“函数”和数学中“函数”不是一种概念,而是完成一个相应功能的程序模块,学生容易混淆。所以我把C语言中的“函数”比作是人体里的各种器官,其最大的作用就是完成相应的功能,我们人体是各个器官的组合体,而C语言程序就是各个“函数”的组合体,这样,学生对函数的概念就会明了很多。

3.采用“自主——合作——探究”式的学习方式。

教材的编者在出版说明中谈到,要强调学生学习的自主性,强调以学生的团队学习为主,让学生分成小组共同就某些问题讲行探讨,使学生最大限度的自主掌握知识。当然,这是一种理想化的教学方式,但在实际教学过程中也不是不能实现,最起码在一定程度上可以实现,所以任课教师可以试着去培养学生的这种能力。

一些教師在教学设计中虽能体现出学生“自主—— 合作 ——探究”的意识,但在具体操作中形式化严重,实效性不强。

兴趣是学生的最好老师,大部分学生还是比较喜欢计算机这个专业的,我们应该充分抓住学生的这一特点,发挥他们的主体作用,让他们自主探索,自主学习。职校二年级的学生已经有了较好的判断、推理和逻辑思维能力。我在教学过程中,经常采取提取问题-探索问题-解决问题的方法。老师可以自行出个例子,设置疑问,让学生自主学习,这样的教学效果要比在课堂上死讲要好的多。比如,在讲解条件和循环语句,多配以流程图来增强学生直观性和理解性。在讲数组时,采用图例分析,让学生对数组各元素分布情况,产生准确的认识和理解。现在的高中学生,很自我,独立意识和接触新鲜事物的能力非常强,让学生自行分组设计一些小课题,即提高了学生的自主能力,也让同学之间也不由自主的互相帮助起来。最主要的是让学生自己发现问题并解决问题。这时候老师就要做好引路人,在学生自主学习的时候,给予适当帮助。

4.精讲多练,加强实践。在学生理解项目思想,确定项目的算法后,有针对性地对项目中涉及的知识点进行讲解,对于那些学生自己能完成的内容,少讲,只做提示,甚至不讲。课堂上留足够的时间,让学生多进行实践操作,同时加强巡查辅导,及时发现和纠正学生的错误。

总之,在难度较大的课程教学过程中,不仅要备好课,还需要用创新精神探究各种教学方法,培养学生的实践能力。作为年轻老师,我们应该一丝不苟地去面对学生,面对教材,面对自己这神圣的职业。

4.C语言课程设计总结 篇四

一、设计题目:

猜数字和贪吃蛇小游戏。

专业:09电气工程及其自动化 组号:第十组

组员:马邢(组长)、王维、毛亮、汪小成、魏坤波、陈维康、高裴石、石峰、葛良志、冯鑫源

指导教师:黄莉莉

二、任务分配:

我们组分为两队,一对制作贪吃蛇游戏,另一对制作猜数字游戏。制作贪吃蛇的人员是马邢,葛良志,高裴石,石峰,陈维康。石峰和高裴石负责收集程序材料,马邢和葛良志负责整理和编写程序,陈维康辅助我们工作。制作猜数字的是魏坤波,王维,毛亮,汪小成,冯鑫源。魏坤波和王维负责编写程序,其他三人收集材料并帮助他们人编写和调试程序。

三、心得体会:

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。

回顾起此次课程设计,至今让我我们仍感慨颇多,的确,从从拿到题目到完成整个编程,从理论到实践,几个星期的日子里,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识,也懂得集体团队的重要性。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,一定把以前所学过的知识重新温故。

5.C语言程序设计课程教学大纲 篇五

中央电大教务处教学管理科 2007年08月29日

第一部分 大纲说明

1.课程性质、任务与目的

《C语言程序设计》是中央电大计算机科学与技术专业(专科起点本科)的一门专业基础课。主要任务是介绍C语言中的数据类型、数据表示、运算规则、语句定义、函数调用、程序结构、文件使用、编程方法等内容。目的是使学生能够利用一种计算机程序设计语言编写出解决较简单的数值计算和数据处理问题的程序,为学习后续课程奠定程序设计和算法设计的基础。

2.与其他课程的关系

学习《C语言程序设计》课程需要了解计算机基本组成,并具有对计算机进行基本操作的技能。本课程的后续课程为《数据结构》、《操作系统》、《数据库》等。

3.课程教学特点

《C语言程序设计》是一门知识性和实践性都很强的课程,必须在学习中掌握C语言的语法规则,并在上机实践中体会和加深理解,通过实际的上机操作训练,还能够学习到书本上学不到的知识和技能,提高自己进行程序设计和开发的实际能力。

4.教学主要内容

(1)介绍C语言上机操作环境、程序基本结构,系统函数的使用;

(2)介绍常用输入输出函数的作用;

(3)介绍C语言基本数据类型、常量、变量、运算符、数学函数、表达式等的表示与含义;

(4)介绍各种分支语句、循环语句的流程控制功能及相应的程序设计方法;

(5)介绍一维数组和二维数组的定义与作用,字符串数组的特殊存储格式与作用;

(6)介绍指针的定义和运算,变量存储空间的动态分配,数组名的指针含义;

(7)介绍用户函数的定义与调用,值参数和指针参数的使用,变量的作用域,递归函数;

(8)介绍结构和联合类型的定义与应用,结构链表的建立和使用;

(9)介绍文件的概念,文件的打开和关闭,字符文件和字节文件的处理操作。

(10)介绍利用C语言编写解决实际问题的程序设计思路和方法。

5.教学基本要求

本课程教学内容包括了解、理解和应用三个层次,并且逐步递进,具体含义如下:

(1)了解层次:记忆C语言中的基本概念和语法规则;

(2)理解层次:掌握C语言中的每个语法成分和语句的定义格式、含义及作用;

(3)应用层次:利用C语言,结合实际解决问题的需要,能够分析和编写程序。

第二部分 媒体使用和教学过程建议

1.课程学分和学时

本课程为4学分、72学时、第一学期开设。电视、实验和面授辅导学时各为20、27和25学时。课程中各章内容及学时分配如下表所示。

序号 一 二 三 四 五 六 七 C语言概述 数据类型与表达式 流程控制语句 数组和字符串 指针 函数 结构与联合

内容

电视学时 实验学时 面授学时 3 3 2 2 3 3 2 4 4 4 4 4 3 3 3 3 4 3 八

文件 2 3 4

2.教学媒体设计

(1)课程以文字教材为主,文字教材采用合一型。文字教材担负起形成整个课程体系系统性和完整性的任务,是学生学习的主要媒体形式。因此教材要概念准确、条理清晰、深入浅出、便于自学,并且要包含实验指导和实验内容。

(2)电视课程作为文字教材的强化媒体,配合文字教材讲授课程的基本知识以及重点和难点。

(3)面授辅导课程由面授教师系统地辅导教学内容,保证教学进度,检查学习效果,随时解答学生的问题,是非常重要的教学活动。

(4)CAI课件是利用计算机进行自主学习的重要教学手段,它能够集名师讲授、动画教学演示、作业练习、学习效果检查等为一体,不受时间、地点和空间的限制,深受学习者喜爱。

(5)网络资源媒体可以汇集有关教学文件为学生查询提供方便,还可以进行网络交流答疑活动,便于师生定期或随时开展。

3.教学过程建议

本课程的电视和面授课堂教学要把知识讲授与上机操作演示结合起来,同时要加强学生的上机操作练习和指导,使所学知识都能够得到上机运行结果的充分验证。

第三部分 教学内容和教学要求

第一章 C语言概述

(一)教学内容

1.C语言的特点

2.C语言中的基本语法成分和程序结构

3.常用输入输出函数printf和scanf的作用

4.C程序的编辑、编译、链接和运行

(二)教学要求

了解:C语言的特点,基本的语法成分,程序的结构,C程序的编辑、编译、链接和运行的过程。

理解:常用输入输出函数printf和scanf的作用

第二章 基本数据类型与表达式

(一)教学内容

1C语言中的基本数据类型;

2.整数、实数、字符、枚举等常量的表示;

3.使用#define编译预处理命令定义符号常量;

4.变量的定义和分类;

5.各种运算符的表示和应用;

6.数值、关系、逻辑表达式的求值;

7.常用数值函数的调用,如绝对值函数、平方根函数、指数函数、对数函数、取整函数等的调用。

(二)教学要求

理解:C语言中的基本数据类型种常量和变量的表示,运算符的优先级和结合性,表达式的构成,常用数学函数的调用格式与作用。

第三章 流程控制语句

(一)教学内容

1.if语句的定义格式和作用;

2.switch语句的定义格式和作用;

3.for语句的定义格式和作用;

4.while语句的定义格式和作用;

5.do---while语句的定义格式和作用;

6.continue和break语句的定义格式和作用;

7.return和goto语句的定义格式和作用。

(二)教学要求

理解:各种语句的定义格式;

应用:分析程序,按照解决问题的需要编写出相应程序。

第四章 数组和字符串

(一)教学内容

1.数组和数组元素的有关概念;

2.一维数组的定义和应用;

3.二维数组的定义和应用;

4.字符串的存储和字符与字符串函数的使用。

(二)教学要求

了解:数组和数组元素的有关概念;

理解:一维数组和二维数组的定义格式,字符串的存储格式,字符与字符串函数的调用格式;

应用:会分析含有数组和字符串应用的程序,根据数值计算和数据处理问题编写出数组应用程序。

第五章 指针

(一)教学内容

1.指针的有关概念;

2.指针的各种运算

3.数组元素的指针访问方式

4.数据存储空间的动态存储分配

(二)教学要求

了解:指针的有关概念;

理解:指针的各种运算符的含义,一维和二维元素的指针访问方式,动态存储分配与释放函数的含义;

应用:会分析含有指针操作的程序。

第六章 函数

(一)教学内容

1.函数的定义格式和各个语法成分的作用;

2.函数的调用格式以及调用过程;

3.值参数和指针参数的不同作用;

4.变量的作用域分类;

5.递归函数的概念和调用过程。

(二)教学要求

了解:函数的定义、声明、调用与返回的有关概念;

理解:函数的定义和调用过程,值参数和指针参数的使用,变量的各种不同作用域;

应用:会分析一个函数定义的功能,根据问题编写出对应的函数。

第七章 结构与联合(一)教学内容

1.结构的基本概念

2.结构的定义与初始化

3.结构成员的访问和结构变量的赋值

4.结构与数组

5.结构与函数

6.结构与链表

7.联合的定义与使用

(二)教学要求

了解:结构和联合的有关概念;

理解:结构和联合的定义格式,结构和联合成员的访问,结构作为函数参数的应用,结构作为链表中结点类型的应用;

应用:会分析和编写使用结构的函数或程序

第八章 文件

(一)教学内容

1.数据文件的概念

2.文件的打开和关闭,3.文件的操作方式

4.字符文件的访问

5.字节文件的访问

(二)教学要求

了解:文件的有关概念;

理解:文件的各种访问方式;

应用:会分析和编写使用文件的程序。

第四部分 实验

6.《C语言》课程设计教学大纲 篇六

《C语言程序设计》课程设计教学大纲

一、课程名称: C语言程序设计

二、课程代码: Z04013

三、课程管理: 计算机工程学院(部)计算机应用教研室

四、教学对象: 计算机类相关专业

五、教学时数: 总时数 20 学时

六、课程性质: 专业主干课

七、课程衔接: 先修课程《计算机基础》

1、巩固和验证所学的理论知识,加强对对课本知识点的感性认识,实现与理论教学的衔接。

2、培养程序设计基本素养,包括总体规划,模块化结构设计,各功能通过函数来实现。通过课程设计,最终使学生能够独立完成程序规划,熟练编写简单程序,为以后进一步学习打下基础。

3、培养创新思维和创意灵感,锻炼独立的设计能力,提高独立分析、研究、解决问题的能力,设计出原创系统。

九、课程设计的要求

1、全面了解C语言程序设计过程,掌握规划设计一个小型应用系统的方法。

2、掌握C语言基本特点,根据自己的兴趣点、爱好选题,并进行设计。

3、准确应用函数、数组、结构体、指针等知识。

十、课程设计时间和地点

2014年6月9日至6月18日每天下午 A5-***

十一、课程设计进程安排:

6月9日 根据兴趣爱好确定题目。6月10日—16日 展开设计。

6月17日 测试程序,并做相应的修改。6月18日 设计报告撰写与修改、提交。

十二、评分标准

A—优秀

系统切合实际,具有一定的使用价值。

程序设计意图表达清晰,富有原创性,具有独特性。界面友好具有吸引力。

知识运用准确无误,方法简单有效。各部分衔接流畅自然。设计说明书完整、规范

八、课程设计目的

设计说明书逻辑性强,条理清晰 课程设计期间无旷课及病事假 B—良好

系统切合实际,具有一定的使用价值。程序设计意图表达清晰。界面友好具有一定吸引力。

知识运用无误,方法简单有效。各部分衔接好。设计说明书完整,较规范 设计说明书逻辑性强,条理清晰 课程设计期间无旷课及病事假 C—中等

系统切合实际,具有一定的使用价值。程序设计意图表达较为清晰。界面友好具有一定吸引力。

知识运用无大错误,方法简单有效。注意各部分衔接。设计说明书条理清晰

课程设计期间无旷课及病事假 D—及格

系统一般切合实际,具有一定的使用价值。程序设计意图表达较为清晰。界面友好具有一定吸引力。知识运用无特大错误。

课程设计期间无旷课,病事假1——2次。E—不及格

程序设计意图表达难以看懂。界面设计差。知识运出现严重错误,无设计说明书

课程设计期间无旷课,病事假3次及以上。

十二、课程设计主要参考资料

1、任正云,C语言程序设计(第二版),水利水电出版社

7.高职C语言课程设计探讨 篇七

做为一门程序设计语言, C语言对于高职院校的学生非常重要, 它是学好JAVAT等其它高级语言的基础。因为C语言既有高级语言的特点, 又具有汇编语言的特点。它可以作为系统设计语言, 编写工作系统应用程序, 也可以作为应用程序设计语言, 编写不依赖计算机硬件的应用程序。所以, 高职院校的学生必须学好它。

C语言以其功能齐全、表达能力丰富、使用灵活方便、目标程序效率高、可移植性好、可直接对硬件进行操作等众多优点, 而备受青睐。C语言是培养学生程序设计能力的开端, 形成初步的基本程序设计思想和观念, 培养初步的分析和解决问题的能力。对于学生将来是否能够成为一个合格或优秀计算机专业人才, 起着重要作用。但C语言较之于现在流行的可视化编程, 界面枯燥, 语法烦琐, 如何在有限的学时内, 让对计算机一无所知的大一新生能够掌握C语言基本原理的同时, 能熟练运用程序设计的方法分析问题、解决问题, 成为C语言工作的重要组成部分。

1 C语言课程设计的目的

经过C语言课程设计, 能够充分掌握软件设计的基本方法, 了解C语言的好处和其可用性、重要性和必要性可以培养独立思考、综合运用所学有关相应知识的能力, 增加了同学之间的团队合作精神, 巩固C语言课程学习的内容, 强化动手编程能力。

经过这种课程设计, 使学生了解高级程序设计语言的结构, 具备初步的高级语言程序设计能力。掌握基本的程序设计过程和技巧, 掌握基本的分析问题和利用计算机求解问题的能力。为后续各门计算机课程的学习和毕业设计打下坚实基础。

2 C语言课程设计的基本流程

它的具体流程如下:

首先, 做一个系统, 对其进行功能模块的分析、控制模块的分析, 然后检查是否符合课题要求, 能否实现其相应的功能;能不能够加以其他的功能或其他的修饰, 能否使程序设计更加合理和完善;

其次, 整个系统设计必须要达到实用的目的, 编程过程进量要简练, 可用, 其功能要全面;

第三, 课程设计的说明书及其流程图等要表述清楚;

第四, 为编写设计说明书作好准备, 要有相应的记录设计情况;

第五, 必须采用模块化程序设计的方法, 以及正确完整的书写格式, 并按设计的报告格式进行上机调试;

最后, 要提交设计内文档写作和程序开发必须同步。

也就是说:应该先完成程序设计目的分析和功能模块分析后, 再进行编码和程序调试、测试工作。编程测试要求学生把自己编写好的程序录入到计算机, 然后进行程序语法调试, 如语法正确, 再选取一些数据进行程序测试。这一部分是课题设计的关键, 也是需要花费时间最多的部分。在此过程中要求学生学会按模块一个一个地进行调试。

在编译时有时会出现比较多的出错提示。这时应努力理解、领会提示信息的含义, 并据此改正错误。当编译提示的出错信息不止一条时, 只须先注意其中第一条。因为从第二个错误开始的若干错误很可能是随带错误, 只要更正了第一个错误, 它们便自然更正了。对于C语言初学者, 最好先将程序以书面的形式描述出来, 然后录入计算机调试。在经过定性、定量分析后, 学生对所要进行的设计进行书面算法设计。强调学生在编程时要代码规范、使用注释, 养成良好的编程风格。通过将程序写到纸上, 不仅能使学生进一步掌握C语言语法, 而且学生在编程过程中如遇到问题, 可以有足够的时间提前到图书馆或网上查阅资料, 保证了程序的正确率和有限的上机调试时间。

实践证明, C语言课程设计对提高教学质量有明显的优越性, 克服了重理论, 轻实践的弊端。由于课程设计不是一般的书面作业或上机操作实验, 而是一次完整的软件设计。这就要求提前做比较多的准备工作, 如收集整理资料和编写较多的教学文件等。

3 C语言课程设计内容调整——适当取舍和整合

课程设计成功的首要条件是选择一个合适的题目。题目要符合实际, 不仅要使学生掌握C语言程序设计教学中的重要知识点、了解程序模块化开发等内容, 而且还要与现实生活联系密切, 具有一定的实用性和趣味性, 由于C语言程序设计是工科很多专业必修的课程, 所以在选题时尽可能体现本专业的特色, 具有一定的先进性和实用性, 增强学生对专业知识的领悟与应用能力, 可以与单片机结合进行课程设计

大多数C语言教材内容是按照“数据类型-基本结构-数组-函数-指针-文件”这样的顺序进行知识点编排, 内容详尽全面、讲解细致[1]。这样的做法偏于陈腐, 因此, 针对这些情况, C语言课程设计内容要进行适当的取舍和整合。

3.1 整合

适当的调整知识点的设计顺序, 增强知识点之间的联系, 这样可以直接把知识转化成能力。但在教材整合要注重知识的渐进性, 符合课程设计的认知规律。比如, 讲解整型数据的时候可以和该类型的输入输出语句的格式说明相结合, 通过两个数求最大值的例子, 引入if选择结构、关系运算符和关系表达式、流程图的画法的讲解。通过判断一个数的奇偶的例子, 引入算术运算符和算术表达式、等于运算符的讲解。这样就把书上的数据类型、运算符和表达式、顺序结构和选择结构四章的内容打乱、重组。

3.2 取舍

与其把所有内容通讲, 还不如挑一些内容精讲, 让学生熟练掌握这些知识。对于未讲的内容, 可以通过循序渐进的方式, 在例题或作业中逐步的加入。

4 C语言课程设计方法的改革——采用案例C语言法

传统C语言方式是以教材为中心, 从书本到书本, 从概念到概念, 导致C语言课程设计对理论与实践的脱节。而案例C语言法十分注重其效果, 通过案例分析解决实际问题。对设计的目标进行定性分析, 进行定量分析。可采取自顶向下、逐层分解的方法, 将课题分成有若干个模块, 然后对各模块重点和难点内容进行重点讲解, 使重点突出, 难点分散, 最终各个击破。

计算机学科是一门实践性很强的学科, 只“听”、“读”、“写”是远远不够的。在程序开发过程中, 程序调试的工作量要比编程大得多, 上机调试程序是一个不可缺少的重要环节。因此, 要明确上机目的, 验证程序的正确性, 具体的分析算法和语法结构。这样, C语言课程设计的实践目的才能达到。

C语言课程设计内容主要分成2部分:1) 理论课的例题;2) 针对理论课所讲的内容, 布置题目。如可以设计出一个工资管理系统:

(1) 设计要求

矩阵乘法:编写一个函数实现矩阵A (2行3列) 与矩阵B相乘 (3行2列) , 乘积放在C数组中。在主函数中输入相乘的两数组, 并输出结果。

工资管理:结构体数组、函数、指针、算法、流程结构及文件等的综合应用。

程序说明:有N个工人, 每个工人的数据包含职工号 (不重复) 、姓名、工资总和及分项工资, 试设计一工资管理系统。

(2) 功能模块的设计

输入记录函数EMP*create ()

算法:先声明一个首节点head, 并将head->next设为NULL。每输入一个数据就声明一个新节点p, 把p->next设为NULL, 并且链接到之前列表的尾端。

记录函数void er int (EMP*head)

算法:先将p结点的指针指向第一个结点, 将p结点 (即第一个结点) 的数

输出。然后再将p结点的指针指向p指针的的指针 (即下一结点) , 将p结点第一结点) 的数据输出。重复执行此步聚直到p指针指向NULL为止。

查找记录函数void search (EMP*head)

算法:采用线性查找法往下一个节点查找。输入所要查找的职工的职工号k,

设一个指针变量p, 先指向第一个结点, 当strcmp (p->name, k) &&p!=NULL时, 使p后移一个结点, 如果p!=NULL, 输出p所指的结点。

需要注意的是, 在整个设计过程中, 要设计好流程图。

在C语言课程设计中应该注意程序中频繁的调用函数会增加系统的负担, 降低程序的执行速度, 花费较多的时间, 影响C程序的执行效率。这就要求我们在编写程序时, 在程序的可靠性得到保证的前提下, 根据具体情况找出最优的、能充分利用系统资源和提高程序运行效率的一种最佳方法。当然, 在不同的系统和不同配置的计算机上程序的运行效率是不尽相同的, 程序的效率问题是在编写较大或较复杂程序时应该充分考虑的。

5 结论

本文通过对C语言课程设计的探索和改革, 探讨了在C语言课程设计中的设计方法和应注意的一些重要问题, 通过这些探索, 能够使学生的理论水平和实践能力大大提高, 这对C语言的学习和课程设计有一定的指导作用, 学生综合能力也会不断的增强。

参考文献

[1]谭浩强.C语言程序设计教程[M].北京:清华大学出版社, 2007.

[2]李博.多媒体C语言中存在的问题及解决措施[J].才智, 2009, 8.

[3]李炜.计算机高级语言程序设计的C语言改革与时间[J].安徽师范大学学报:自然科学版, 2003, 26 (2) .

[4]管小卫.C语言课程设计探讨[J].广西轻工业, 2009, 1.

8.C语言程序设计课程教学设计 篇八

【关键词】《C语言程序设计》;教学情境;创设

《C语言程序设计》是中专计算机专业学生的一门必修的程序设计专业课程,是计算机软件开发的入门语言。当前社会,计算机行业人才济济,就业竞争激烈。中专学生要在软件开发工作竞争中有一席之地,必须要有一定的社会经验和较强实践操作技能。因此,要使我们培养的中专生能适应当前用人单位的需求,具有较强的社会竞争力,我们在教学实践过程中必须根据学生将来的软件开发工作岗位的真实工作环境来设置教学情境,帮助学生掌握职业的基本理论和操作技能。

一、《C语言程序设计》教学情境创设的关键因素

《C语言程序设计》是一门实践性、应用性强的课程,其最终目标是培养学生的程序设计的开发能力,程序设计的科学态度、创新精神和团队合作意识,以及发现问题、提出问题、解决问题的能力,并以此来促进学生人格的完善。基于程序设计工作过程的情境的设定是该课程教学的中心环节。在经过多方调研和实际教学经验后,发现对于缺乏实践经验的中专生来说,在教学过程中,教学情境的创设需要考虑教学目标、学生认知水平、情感交流,实践活动环境和人际交往等因素。

1.创设的情境需服从于教学目标

教学情境的创设必须服务并服从于内容主题和学习目标。情境设置只是一个教学手段,是为目标服务的。教师所选择的学习情境的素材应指向明确、具体的学习目标,能够在学习活动与学习内容之间搭建平台。

例如:在“影视制作俱乐部会员信息系统”的程序开发项目中,操作界面情境的设置是服务于C语言的“图形处理”教学内容;会员信息添加、显示、排序、查找、删除、修改等情境的设置是服务于“数值计算”、“数组应用”、“函数调用”等学习内容。情境本身又融人活动和内容之中,成为学生与新知识之间的桥梁,成为三维目标相融合的桥梁。

2.创设的情境需与学生现有认知水平相适应

教育学和心理学的研究表明:当学习的知识与学生已有的知识结构和生活经验有联系时,或与学生今后职业息息相关时,学生才会对学习有兴趣。兴趣是最好的老师,学生有了学习兴趣,他们的思维就会保持在积极的学习状态中。在教学中,教师应从学生的心理出发,有意识的创设情境,激发学生的求知欲望,使学生在已有知识的基础上,不断获取新知识,令其学有所得。

例如:为了让学生了解《C语言程序设计》课程的作用与地位,可以依托多媒体教学课件,利用FLASH动画演示生动、有趣的C语言程序,给学生提供生动直观、形象的展示效果。在“图形处理及综合能力应用”情境中,创设“绘制几何图形、卡通时钟、学生信息管理系统”等与学生日常生活息息相关的学习情境,通过这些富有启发性的情境以激发学生的兴趣、发挥学生的主动性。

3.创设的情境需与学生情感欲望相适应

苏联心理学家赞可夫说:“教学法一旦触及学生的情绪和意志领域,触及学生的精神需要,这种教学就能发挥高度有效的作用”。因此,良好的心理环境对教学有重要的积极影响。它有利于沟通教学信息,促进教师与学生、学生与学生之间产生心理相容和情感交流;有得于克服和消除学生心理和生理疲劳,提高学习效率和教学效果;有助于维护正常的教学秩序,顺利完成教学任务。

例如:在创设“绘制几何图形”的学习情境时,教师根据教学目标,有意识的提出如何绘制倒三角形,棱形等思考问题,并给予学生适宜的时间进行思考。等待时间的长短会影响学生回答的效果,充足的思考时间有助于学生提供完整答案,减少焦虑和紧张;冗长的等待时间会使课堂节奏松散,学生倦怠,丧失回答的积极性和主动性。因此,一切微小的情境设定都需充分考虑学生的生理与心理需求。

4.创设的情境需注重实践环境操作

对于计算机初级程序员来说,程序设计的开发能力和实践技作技能是衡量学生就业能力的主要方面。在教学过程中,通过校企合作、校内实训基地建设,采取工学结合、上机实训等方式,以任务或项目为载体,给学生提供丰富的实践机会,创设尽可能与工作实境接近的教学环境,实现教学情境与工作情境的有机融合,锻炼学生发现问题,解决问题的实际工作能力,以提高他们的就业竞争力。

5.创设的情境需注重人际间的交流

随着社会的发展,科技的进步,工作中的项目不可能一个人独立完成,所以作为中专教师,有责任培养学生的团队合作能力,让他们学会在团队中工作,与他人交流和分享获得的信息、创意及成果。教师在创设情境时,可以进行合理的分组,让小组间成员合作学习,组员间关系是平等互助的,教师、组长和组员能根据各自优势、喜好与性格进行角色分配与子任务制定,共同克服实践过程中出现的困难,共同为完成任务而努力协作。

例如:在“影视制作俱乐部会员信息系统”的程序开发项目中,把操作界面、会员信息添加、会员信息显示、会员信息排序、会员信息查找、会员信息删除、会员信息修改等不同功能模块分派给各个小组完成。每组中设定个组长,负责协调,设定一个副组长负责技术问题,另设3名小组成员,在进行项目的信息搜索、方案制订、组织实施和综合实训时,各组通过讨论,集思广益,拓展思路,小组内互相帮助,小组间互相竞争,使学生的能力得到了全面训练,同时也使学生的收集信息、处理信息、分析问题、解决问题的能力得到培养和加强。

二、《C语言程序设计》教学情境创设的注意点

1.情境设置真实化

教学情境应该是社会生活中真实发生和可能发生的,即使是虚拟的情境也应该符合起码的生活逻辑,而不是教师为情境而情境的人为编造。“真实”应为创设教学情境的第一要旨。教師要在学生鲜活的日常生活环境中发现、挖掘学习情境的资源,设法让学生将要学习的概念与他们的经验建立联系,使真实可靠的问题情境成为学生感知的思维对象,在学生心理造成一种悬而末决但又必须解决的求知状态。

2.情境作用于教学的全过程

教学的目的是让学生掌握知识,让学生通过知识的学习获得终身学习的能力。因此,教师在教学中要尽可能创设恰当的学习情境,让学生在情境中感悟、体验、使学生在情境中得到激发和升华,从而达到提高能力之目的。

3.情境促进学生的有效发展

教师设置的情境应能使学生产生强烈的继续学习的愿望,促进学生终身学习能力的形成,促进学生智力因素和非智力因素的平衡发展。教学情境不仅要针对学生的现有发展水平,更重要的是针对学生的可能发展水平,体现“最近发展区”理论,促进学生的有效发展。

总之,情境的创设是关乎课程实施的成败,是整个课程实施的过程中的重要环节。教学情境的创设要根据教学内容、学生的心理特点、认知能力和情感发展等综合因素来设定。

参考文献

[1]刘晓峰.有效创设堂教学情境的几点策略[J].吉林教育(综合),2009(10):21-22.

[2]朱德全.试论教学情境的生成策略[J].高等教育研究,2005(19):28-30.

[3]朱红雨.高职项目化教学中教学情境创设的实践[J].职教论坛,2011.

9.C语言程序设计课程教学设计 篇九

【课程代码】

0770105

【学

分】【参考学时】

【讲授学时】

【实验学时】

【实习学时】

0 【课程性质】

专业必修课

【参考教材】1.谭浩强 《C程序设计》(第三版)清华大学出版社

2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)

3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社

【课程基础】

在学这门课之前,学生最好对计算机基本结构、软硬件概念和上机操作知识有一定的了解,但不是必须的。本课程和“计算机导论”课程同时开设,可以互学互用。【适应对象】

本课程适用于计算机科学与技术-计算机科学与技术专业、软件工程-软件工程专业、电子信息科学类-电子信息科学与技术专业以及数学专业的学生学习。【教学目的】

通过对C语言的语法规则、数据类型、数据运算、语句、系统函数、程序结构的学习,使学生了解结构化程序设计基本思想和方法,并养成良好的编程风格,培养出扎实的软件开发基本技能;使学生初步掌握利用计算机处理问题的思维方式和程序设计的基本方法和编程技巧,熟练地应用C语言编写简单的程序,掌握基本的程序调试方法和步骤,为进一步学习后续课程和将来从事应用软件开发奠定良好的基础。【内容提要】

C语言的各种数据类型,运算符,表达式;结构化程序设计语句;数组;函数的概念和用法;编译预处理命令;指针运算及其使用;位运算;文件的操作;算法的基本表示方法及结构化程序设计方法。

第1章 C语言概述

第一节C语言出现的历史背景 第二节C语言的特点

C语言的特点 第三节 简单的C程序介绍

简单C程序的结构 第四节C程序的上机步骤 【基本要求】

了解C语言的历史; 掌握C语言的特点;

掌握C语言的运行环境,初步了解运行一个C语言程序的过程。【参考学时】2学时

【参考资料】[ 1.谭浩强 《C程序设计》(第三版)清华大学出版社 2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社 ]

第2章 程序的灵魂-算法

第一节 算法的概念

算法的定义。

第二节 简单算法举例

第三节 算法的特性

算法的特点。

第四节 怎样表示一个算法

用自然语言表示算法;用流程图表示算法;三种基本结构; N-S图;用伪代码表示算法;用计算机语言表示算法。第五节 结构化程序设计方法 【基本要求】

1、掌握算法的概念,算法的特性;

2、掌握结构化程序设计的三种基本结构;

3、掌握用流程图、N_S流程图和伪代码等算法描述方法来描述具体的算法的方法以及结构化程序设计的方法。重点:结构化程序的三种基本结构,顺序,选择,循环;结构化程序设计的方法,自顶向下,逐步细化,模块化设计,结构化编码。难点:用流程图、N_S流程图和伪代码算法描述方法来描述具体的算法。【参考学时】4学时

【参考资料】[1.谭浩强 《C程序设计》(第三版)清华大学出版社 2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社] 第3章 数据类型、运算符与表达式

第一节 C的数据类型

第二节 常量和变量

常量和符号常量;变量的定义和使用。

第三节 整型数据

整型常量的表示方法;整型常量;整型常量的类型。第四节 实型数据

实型常量的表示方法;实型常量;实型常量的类型。第五节 字符型数据

字符常量;字符变量;字符数据在内存中的存储形式及其使用方法;字符串常量。第六节 变量赋初值 变量赋初值的方法。

第七节 各类数值型数据间的混合运算

运算规则和实例。

第八节 算术运算符和算术表达式

算术运算符;算术表达式。

第九节 赋值运算符和赋值表达式

赋值运算符;赋值表达式。第十节 逗号运算符和逗号表达式

逗号运算符;逗号表达式。【基本要求】

1、掌握C语言所提供的数据类型以及基本数据类型常量的书写方法和变量的定义、赋值和初始化方法;

2、掌握基本运算符的运算规则及优先级别;

3、了解C语言的数据类型体系和运算符体系;

4、能正确构成有基本数据类型组成的基本类型的表达式。

重点:基本数据类型常量的书写方法和变量的定义、赋值、初始化、使用方法;基本运算符的运算规则及优先级别;表达式的构成规则和计算。难点:运算符的优先级别;混合表达式计算;逻辑值的表示方法。【参考学时】4学时

【参考资料】[1.谭浩强 《C程序设计》(第三版)清华大学出版社 2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社] 第4章 最简单的C程序设计-顺序程序设计

第一节 C语句概述

C语言中的语句类型。第二节 赋值语句

赋值语句的用法。

第三节 数据输入输出的概念及在C语言中的实现

输入、输出概念;输入/输出实现方式。第四节 字符数据的输入输出

putchar函数的使用;getchar函数的使用。第五节 格式输入与输出

printf函数的使用;scanf函数的使用。第六节 顺序结构设计程序举例 【基本要求】

1、了解C语言所包含的语句;

2、熟练掌握赋值语句以及字符输入输出、格式输入输出函数的使用方法;

3、学会按照一定的格式输出相应的数据类型,能正确设计顺序结构的程序。重点:赋值语句的格式和功能;字符和格式输入/输出函数的调用格式和功能。难点:格式输入/输出函数中格式控制字符的使用。【参考学时】4学时

【参考资料】[1.谭浩强 《C程序设计》(第三版)清华大学出版社 2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社]

第5章 选择结构程序设计

第一节 关系运算符和关系表达式

关系运算符及其优先次序;关系表达式。第二节 逻辑运算符和逻辑表达式

逻辑运算符及其优先次序;逻辑表达式。第三节 if语句

if语句的三种形式;if语句的嵌套;条件运算符。第四节 switch语句

swtich语句的用法。第五节 程序举例 【基本要求】

1、掌握关系运算符、逻辑运算符的运算规则以及关系表达式和逻辑表达式的使用;

2、掌握条件运算符、条件表达式的使用;

3、熟练掌握条件选择语句if语句的使用;

4、熟练掌握多分支语句switch语句的使用。

重点:关系运算符、逻辑运算符、条件运算符的使用,混合运算时的优先级别; if语句的语法格式;if语句的嵌套;使用switch语句实现多分支结构的程序设计方法。

难点:运算符混合运算的优先级别;if语句的嵌套;switch语句的使用。【参考学时】4学时

【参考资料】[1.谭浩强《C程序设计》(第三版)清华大学出版社2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社]

第6章 循环控制

第一节 概述

C语言中实现循环的语句类型。第二节 goto以及用goto语句构成循环

goto语句的用法。第三节 while语句

while语句的用法。第四节 do-while语句

do-while语句的用法。第五节 for语句

for语句的用法。第六节 循环的嵌套

循环嵌套的种类;嵌套语法。第七节 几种循环的比较

第八节 break语句和continue语句

break语句;continue语句。第九节 程序举例 【基本要求】

1、熟练掌握循环结构的控制语句:while语句、do_while语句、for 语句的用法;

2、掌握三种循环控制语句的区别和联系;

3、掌握break、continue、goto语句的功能和语法格式;

4、能够根据循环结构的要求正确选取循环语句来实现循环,掌握循环程序的执行过程。

重点:三种循环语句while、do_while、for的使用;break、continue、goto语句的使用;循环程序的执行过程;嵌套的循环程序。

难点:循环程序的执行过程;嵌套的循环程序。【参考学时】4学时

【参考资料】[谭浩强 《C程序设计》(第三版)清华大学出版社2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社]

第7章 数组

第一节 一维数组的定义和使用

一维数组的定义;一维数组元素的引用;一维数组的初始化;一维数组程序举例。第二节 二维数组的定义和使用

二维数组的定义;二维数组的引用;二维数组的初始化;二维数组程序举例。第三节 字符数组

字符数组的定义;字符数组的初始化;字符数组的引用;字符串和字符串结束标志;字符数组的输入输出;字符串处理函数;字符数组的应用。【基本要求】

1、掌握数组的概念、一维数组、二维数组和多维数组的定义和使用;

2、掌握字符数组、字符串的区别和具体应用;

3、掌握处理字符串的系统函数的使用方法。

重点:一维数组、二维数组和多维数组的定义和使用;字符串的处理函数的使用。难点:字符数组、字符串的区别,存放若干字符和存放字符串的字符类型数组的差别。【参考学时】6学时

【参考资料】[1.谭浩强 《C程序设计》(第三版)清华大学出版社 2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社]

第8章 函数

第一节 概述

函数的作用及分类。第二节 函数定义的一般形式

无参函数的定义形式;有参函数定义的一般形式;空函数;形参声明的方式。第三节 函数参数和函数的值

形式参数;实际参数;函数的返回值。第四节 函数的调用

函数调用的一般形式;函数调用的方式;对被调函数的声明;函数原型。第五节 函数的嵌套调用

函数嵌套调用的含义及其方式。第六节 函数的递归调用

递归;函数递归调用的方式。第七节 数组作为函数参数

数组元素作为函数实参;数组名作为函数参数;多维数组名作为函数参数。第八节 局部变量和全局变量

局部变量;全局变量;局部变量和全局变量的使用。第九节 变量的存储类别

动态存储方式和静态存储方式;auto变量;用static声明局部变量;register变量;用extern声明外部变量;用static声明外部变量;变量的声明和定义的区别。第十节 内部函数和外部函数

内部函数;外部函数。

第十一节 如何运行一个多文件的程序

在Turbo C集成环境下编译连接多文件结构的方法。【基本要求】

1、熟练掌握函数的结构、设计方法和调用方法;

2、掌握函数调用中数据传递的两种方式——值传递和地址传递的区别;

3、掌握C程序中变量的存储类型以及使用;

4、掌握嵌套调用函数、递归函数的使用并能正确使用各种常用的系统函数。

重点:函数的定义和调用方法;调用函数时数据传递方法;常用系统函数的使用。难点:值传递和地址传递的区别;编写递归函数。【参考学时】8学时

【参考资料】[1.谭浩强 《C程序设计》(第三版)清华大学出版社 2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社]

第9章 预处理命令

第一节 宏定义

不带参数的宏定义;带参数的宏定义。第二节 “文件包含”处理

“文件包含”命令及其使用。第三节 条件编译

条件编译命令及其使用。【基本要求】

1、掌握宏定义和宏替换的一般方法;

2、掌握文件包含的处理方法;

3、了解条件编译的作用和实现方法。

重点:无参数的宏定义和宏替换;带参数的宏定义和宏替换;文件包含处理。难点:带参数的宏定义和宏替换。【参考学时】1学时

【参考资料】[1.谭浩强 《C程序设计》(第三版)清华大学出版社 2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社]

第10章 指针

第一节 指针和地址的概念

内存地址及其访问方式;指针。第二节 变量的指针和指向变量的指针变量

变量的指针;指针变量的定义;指针变量的引用;指针变量作为函数参数。第三节 数组和指针

指向数组元素的指针;通过指针引用数组元素的方法;数组名指针变量作为函数参数的用法;指向多维数组的指针和指针变量。第四节 字符串和指针

字符串的表示形式;字符串指针作为函数参数;使用字符指针变量与使用字符数组的区别。

第五节 函数的指针和指向函数的指针变量

用函数指针变量调用函数;用指向函数的指针作为函数参数。第六节 返回指针值的函数

返回指针的函数的定义及其使用。第七节 指针数组和指向指针的指针

指针数组的概念;指向指针的指针;指针数组作main函数的形参。第八节 有关指针的数据类型和指针运算的小结

指针数据类型;指针运算;void指针类型。【基本要求】

1、掌握地址和指针的概念及二者之间的关系;

2、熟练掌握定义指针变量和访问该变量的方法;

3、掌握指针变量的各种使用方法。

重点:指针变量的定义、初始化和赋值方法;利用指向变量、数组、字符串的指针变量来正确引用变量、数组、字符串;指针变量作为函数参数的情况;

难点:指针变量作为函数参数的情况;指向多维数组的指针变量和多维数组的地址。【参考学时】9学时

【参考资料】[1.谭浩强 《C程序设计》(第三版)清华大学出版社 2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社]

第11章 结构体与共用体

第一节 概述

结构体类型的作用;结构体类型的定义。第二节 定义结构体变量的方法

定义结构体变量的三种方法。第三节 结构体变量的引用

结构体变量的引用原则。第四节 结构体变量的初始化

结构体变量的初始化方法。第五节 结构体数组

结构体数组的定义;结构体数组的初始化;结构体数组的应用。第六节 指向结构体类型数据的指针

指向结构体变量的指针;指向结构体数组的指针;用结构体变量和指向结构体的指针作为函数参数。

第七节 用指针处理链表

链表的概念;链表的结构;处理动态链表的函数;动态链表的建立;链表的输出;链表的删除操作;链表的插入操作;链表的应用。第八节 共用体

共用体的概念;共用体变量的引用方式;共用体类型数据的特点。第九节 枚举类型

枚举的概念;枚举型数据的定义和使用。第十节 用typedef定义类型

typedef定义类型的方式。【基本要求】

1、熟练掌握结构体构造数据类型的定义、初始化和使用;

2、掌握链表处理的过程以及共用体数据类型的定义和使用;

3、了解枚举类型的定义和使用和typedef自己定义类型的方法。

重点:结构体、共用体、枚举类型的特点和使用;结构体型变量、数组、指针变量的定义、初始化和成员引用方法;链表的建立,插入和删除等操作。

难点:嵌套的结构类型数据的处理;链表处理。【参考学时】8学时

【参考资料】[1.谭浩强 《C程序设计》(第三版)清华大学出版社 2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社]

第12章 位运算

第一节 位运算和位运算符

“按位与”运算符;“按位或”运算符;“异或”运算符;“取反”运算符;左移运算符;右移运算符;为运算赋值运算符。第二节 位运算举例 第三节 位段

位段的概念;位段的使用。【基本要求】

掌握位运算符和位运算的基本操作。

重点:位运算符的功能;位段的概念及使用。难点:位段的使用。【参考学时】2学时

【参考资料】[1.谭浩强 《C程序设计》(第三版)清华大学出版社 2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社]

第13章 文件 第一节 C文件概述

文件的概念;文件的类型和处理方式。第二节 文件类型指针

文件指针的定义方法。第三节 文件的打开与关闭

文件的打开;文件的关闭。第四节 文件的读写

fputc函数及其使用;fgetc函数及其使用;fread函数和fwrite函数及其使用;fprintf函数和fscanf函数及其使用;其他读写函数。第五节 文件的定位

rewind函数;fseek函数和随机读写;ftell函数。第六节 出错的检测

ferror函数;clearerr函数。第七节 文件输入输出小结

【基本要求】

1、要求掌握缓冲文件系统中有关文件操作的系统函数的使用方法;

2、掌握设计并编写对文件进行处理的实用程序。

重点:缓冲文件系统中“文件型”指针的概念;有关文件操作的系统函数的使用。难点:文件处理系统函数的使用,掌握各个函数中参数的功能和区别。【参考学时】4学时

10.C语言课程设计上机实习内容. 篇十

一、程序设计题目: 简单的学生成绩管理程序设计

二、程序设计功能及要求:

1、原始数据输入和结果输出要求使用文件存放;

2、计算每个学生三门功课的平均分,并按平均分排列名次,若平均分相同则名次并列;结果写入文件。

3、统计全班每门课程的平均分,并计算各分数段(60以下,60~69,70~79,80~89,90以上)的学生人数;结果写入文件。

4、按格式在屏幕上打印每名学生成绩条;

5、在屏幕上打印出所有不及格学生的下列信息:学号,不及格的课程名,该不及格课程成绩;

6、(选做)在屏幕打印优等生名单(学号,三门课程成绩,平均成绩,名次),优等生必须满足下列条件:

1)平均成绩大于90分;或平均分大于85分且至少有一门功课为100分;或者平均分大于85分且至少两门课程成绩为95分以上;

2)名次在前三名

3)每门功课及格以上;

(若完成选做题,课程设计成绩将给予加分)

三、文件格式

1、原始数据文件格式(具体数据自行编写)

学号 姓名

英语

C语言 高等数学

张三

李四 ….….….2、输出数据文件(由程序自动生成)1)学生综合成绩文件。(由程序自动生成)

学号 姓名 英语 C语言 高等数学平均成绩 名次

张三 76 89 78 80.5 5 李四 ….….….3 ….2)统计结果文件。

分数段

英语

C语言

高等数学

<60

60~69

70~79

80~89

>=90 …

平均成绩

75.5 …

四、实习报告要求

1、程序分析和设计

2、流程图

3、源程序清单

4、调试过程: 测试数据及结果,出现了哪些问题,如何修改的5、程序有待改进的地方。

11.C语言程序设计课程教学设计 篇十一

【关键词】C语言程序设计  教学改革

【中图分类号】G71 【文献标识码】A 【文章编号】2095-3089(2015)05-0228-01

一、《C语言程序设计》课程的作用及特点

《C语言程序设计》课程在计算机类专业人才培养方案中占有重要地位。C语言的学习,对学生编程思维的建立,把现实问题转化为程序问题的能力培养,具有至关重要的作用。C语言又是学好其它专业课程的基础,如何提高课程的教学效果,调动学生的学习兴趣,对学习其它相关程序类课程具有非常重要的意义。[1]

C语言功能强大、应用广泛,这是它从上世纪70年代到现在经久不衰,被人们追崇的主要原因。C语言是一门实践性、操作性很强的课程[2],集抽象性、逻辑性、实践性于一身。在教学过程中怎么把这门课教好、学好,是对教师很大的考验。

二、《C语言程序设计》课程教学改革措施及成效

根据《C语言程序设计》的课程特点,以及高职学生的自身特点,在我们多年教学经验的基础上,我们对该课程进行了以下教学改革。

1.让学生充分了解这门课程,提高学生学习的主动性。

上第一节课的时候,就把该课程的性质、作用以及它在专业培养中的地位,它对应哪些工作岗位,能解决哪些实际问题,给学生做详细说明,让同学们充分了解这门课,对它有理性和感性的认识,才会有进一步学习它的欲望和兴趣。

2.应用“项目导入、任务驱动”的教学方法,增加学生学习的兴趣。

总听人们说,C语言是一门深奥、枯燥又难学的课程,如果采用传统的教学方法,确实给人这样的感觉。我们在多年的教学过程中不断探索、创新、改革,采用了“项目导入、任务驱动” 的教学方法,取得了较好的教学效果。我们积累了好多综合性的教学案例,在刚开课时,不着急讲解理论知识,选择一个综合案例作为项目,展示该项目的功能,并要求学生学完这门课后,在实训环节必须完成此项目。让学生了解学习目标、学习任务,以及学习成果,从而调动学习兴趣,增加学习动力和压力。在教学过程中,以此项目为依据,采用“任务驱动”的方法展开教学。把项目分成若干模块,比如输入模块、数据处理模块、输出模块等等,每个模块都是一个任务,每个任务又包含若干子任务,每个子任务的完成都涉及若干知识点。这样以项目引导、任务驱动的方式带动知识点的学习。学习是为了完成任务、实现项目。这样,学习变得更加有目标、有动力,使学生的学习兴趣、学习主动性和积极性、学习效率有了很大提高,效果显著。

3.“以赛促学”,增强学生自信心。

组织学生参加各种大赛,是督促学生学习、提高学生自信心的很好途径。我们组织学院级的ACM程序设计大赛,同学们都很积极、踊跃。赛前同学们争先恐后地在机房练习做题,遇到困难时彼此讨论得热火朝天、争执得面红耳赤,运行成功时兴奋得欢呼雀跃,学习气氛空前高涨。同学们在分析问题、解决问题过程中,锻炼了他们的能力、提高了他们的素质、增强了他们的自信。通过比赛选拔优秀学生参加自治区级ACM程序设计大赛,通过备战比赛进一步提高了他们的编程能力。去年,我们的学生取得了自治区三等奖的好成绩,比一些本科院校的学生表现得都好。通过比赛,同学们增加了学习C语言的兴趣,夯实了C语言编程基础,为以后的学习和工作起到了很好的促进作用。

4.以在线学习与测试系统作为常态化学习工具。

我们利用杭州电子科技大学开发的ACM在线学习与测试系统进行教学和练习,同学们网上注册用户名和密码,可以随时随地登录做题,编程提交后等待测试结果,若通过则显示红色的 “accepted”,同学们做题积极性很高。我们还利用北京大学在线裁判系统录入了自己的题目,有针对性地训练和测试同学们的学习,收到了很好的教学效果。通过在线学习与测试系统,同学们可以随时随地在线做题、测试,还可以在编程论坛上与志同道合的朋友们一起探讨、研究、分享,同学们学习积极性和学习效率得到了很大的提高。

三、总结

C语言教学改革是很多老师研究的课题,怎么增强学生学习兴趣、提高教学效率,也是我们每个老师关心的问题。本文依据我院实际情况,就高职学生学习C语言的一些问题和解决方案进行了阐述。要想教好这门课,需要教师从学生实际出发,改变教学理念,采用适合的教学方法和手段,与时俱进,整合各种教学资源,建立全方位、立体化的教学环境,想方设法调动学生学习的主动性、积极性,才能收到好的教学效果。

参考文献:

[1]蔡志荣.高职程序类课程教学效果量化管理的思考——以《C语言程序设计》课程为例[J].职教论坛,2014(26)

12.C语言程序设计课程教学设计 篇十二

关键词:C语言程序设计,教学改革,考核机制

0 引言

计算机与信息技术是现代社会人们必备的重要技能之一。作为衡量人们计算机水平的一个重要科目———C语言程序设计出现在各种职称考试和计算机等级水平考试当中。在国内外各大高校中, 该课程都占据着重要的地位, 不仅是计算机专业学生的必修课, 也是很多非计算机专业学生学习的课程[1]。该课程对培养计算思维、抽象的理论思维和实验思维有着举足轻重的作用。笔者根据多年的教学实践和经验, 从教学内容、教学方法及手段、考核机制三大方面进行研究。

1 教学内容改革

笔者学校本科生采用的教材是国家十二五规划教材, 谭浩强主编的《C语言程序设计》第2版, 其中包含的章节有:C语言概述、C语言程序的算法、数据类型、运算符与表达式、顺序程序设计、选择结构程序设计、循环控制、数组、函数、预处理命令、指针、结构体和共同体、位运算、文件。在大多数高校, 《C语言程序设计》这门课程开设在大一或大二阶段, 此时学生自学能力不强, 计算机技术水平相不高。自2008年以来, 我们将该课程的学习时数由以前的72学时调整为90学时, 其中理论占54学时, 实验占36学时。在此基础上, 增加了一周的课程设计, 为学生指定2~3种不同的小任务, 要求大家用软件工程的设计思想结合C语言来完成任务, 包括需求分析、系统设计、编码实现, 直至测试、撰写设计报告并进行答辩[2]。

1.1 理论内容改革

在讲授理论知识时, 应该以先进性、实用性和趣味性为指导, 尽可能将最新、最实用的技术融入教学中, 注重实践和理论相结合的教学方法, 内容由浅入深逐步展开。每讲一个知识点, 都要力求在VC++6.0的编辑环境下, 对该内容进行测试, 加深对重点知识的理解和记忆。

根据学生的学习特点, 我们将书本上的重难点再次细分, 化分为更小更容易理解的知识点, 让学生循序渐进地学习, 从而达到掌握相关知识点的目的。例如:在讲授C语言数据类型、运算符和表达式时, 如果把这些知识点全部压缩在一个课时上讲解, 学习起来就会比较困难。但如果只讲算数型的数据类型和简单的算术运算符及表达式, 学生理解起来就会比较轻松。让学生编写一个简单的C程序用来复习讲授中的知识点, 使学生建立起自信心, 提升学习的积极性;当下次讲授更加复杂的数据类型、逻辑运算符及表达式时, 学生就会较为顺利地接受并掌握相关知识点。

根据初学者的认知规律和特点, 我们分散难点, 降低台阶, 在课程中慢慢渗透理论体系, 将难点内容化解到各章节中去讲解。例如, 函数的内容可以分散到循环、数组、指针、文件等章节中去, 不断深入, 而指针与数组、函数、文件的应用融合在一起讲解更易于理解[3]。

1.2 实验内容改革

俗话说“眼过千遍, 不如手过一遍”, 实践教学环节有着举足轻重的作用。C语言是一门实践性非常强的课程, 我们针对该课程内容的抽象性和综合应用性, 对实践教学环节进行了精心的设计。注重课程实验、实训和课程设计的完整性, 在内容的设计上突出对应性、严密性和应用性, 使实践教学内容和理论教学内容有机地结合在一起, 相辅相成。理论知识为实验内容打基础, 实验内容又反过来巩固和加深理论知识。

为了培养学生的知识应用能力, 我们对实验内容进行了较大的改革, 在原有基础性实验内容的基础上增加了“拔高”部分的实验内容, 覆盖的知识点更多, 难度更大, 此部分内容每隔一至三次基本实验后进行一次“拔高”训练。如在讲解到指针这一章节时, 我们要求将任意输入的英文字符串进行大小写转换, 同时按照ASCII码进行从小到大排序。在做实验前, 先让学生分组讨论, 得出读取英文字母及顺序存放的算法流程图, 然后逐一上机实现。此实验不仅综合了之前所学的有关知识点, 使学生对重点内容加深了理解, 同时又培养了学生分析问题、解决问题的能力, 使学生体会到用计算机编程方法解决问题所带来的快乐, 激发学生的求知欲。

2 教学手段及方法改革

在《C语言程序设计》教学过程中, 由于C语言涉及的概念比较复杂, 规则繁多, 使用灵活, 容易出错。因此, 教师在教学过程中, 在准确把握授课内容的同时, 必须找到适合学生学习特点的教学方法[4]。在教学过程中, 我们采取传统板书和现代多媒体技术相结合的方式授课, 汲取两者之优点, 最大限度地提高课堂教学效果。在授课过程中, 板书内容部分一般写出本次课程的教学大纲、内容结构以及重要的知识点, 而多媒体课件则涉及到具体的知识点讲解, 其中还加入了仿真技术, 使一些抽象的内容 (如冒泡算法等) 表现生动, 易于理解。课堂教学中要注意知识讲解的连贯性和启发性, 在每次讲解新章节时都应当花5~10分钟左右的时间复习之前学习过的内容;在讲解新内容时可以适当以发散式的思维来多次重复记忆重要的知识点;对于一些类似于算法、指针、数组等需要理解记忆的知识点, 应当尽量让学生理解其中的内涵, 从而达到记忆和应用的效果。

案例教学法是基于构件注意理论的一种教与学的模式, 是一种综合性的教学方法。在课堂教学中要强调学以致用, 以提高学生的探究兴趣为原则, 教学过程设计如图1所示。

在设计各个教学内容模块的过程中, 以程序设计作为贯穿各模块的主线, 采用逐步引导的方式, 精选出既能体现关键语法知识点, 又具有实用性和趣味性的程序实例, 以实例驱动的方式进行讲解, 从问题的提出、分析、算法的设计到最终编码测试, 让学生了解程序开发的全过程。教师在案例的分析与要点的讲解过程中导入知识点, 再对知识点展开语法讲解[5]。

在课后, 我们充分发挥网络资源, 建立了C语言程序设计网络教学系统, 其作为课堂教学的有力补充取得了良好的应用效果。网络教学系统包括教学大纲、教学电子课件、教师的教学录像、课后小结、即时练习、课后作业、在线答疑、模拟考试等内容模块, 充分弥补了课堂教学的不足, 学生可以随时随地自主学习该课程。

3 考核机制

《C语言程序设计》这门课程的理论性和实践性特点突出, 考试采用全程机考, 其中理论部分占卷面成绩的分值为60%, 编程操作题占40%, 操作题所采用的编程环境和实验课采用的环境均为Visual C++6.0。考核中知识点的难易度和教学大纲中的知识点保持一致, 并参考全国计算机等级水平考试的要求出题。判卷过程也是电脑判卷, 学生提交电子试卷后, 考试成绩将自动产生并归档, 最大限度地杜绝了人为因素的干扰。该考试系统与其网络课件相配套, 学生在考试结束后, 可以登陆该课程的网络教学系统查看答题情况, 对于每一道出错的考题都给出正确答案和解析, 使考试成绩不理想的学生及时了解自己的薄弱点, 有针对性地再次进行学习, 从而顺利达到考核要求。

4 结语

《C语言程序设计》课程对培养学生的逻辑思维能力、计算思维能力和以计算机分析并解决问题的能力都有着重要意义。以上教学内容、教学手段和方法、考核机制是笔者根据多年实际教学经验总结得出的, 在实际教学过程中, 取得了良好的效果。如何更好地教授好这门课程, 还需要各方面专家学者的共同努力。

参考文献

[1]张素芹, 吴连生.独立学院《C语言程序设计》教学改革实践[J].计算机教育, 2010 (14) .

[2]周军.高职院校C语言程序设计教学改革探讨[J].价值工程, 2011, 30 (35) .

[3]陈婷.C语言程序设计实验教学改革探究[J].实验技术与管理, 2010, 27 (10) .

[4]陈莲君, 朱晴婷.培养能力为主线的《C语言程序设计》课程教学研究[J].计算机教育, 2011 (14) .

13.C语言课程设计停车场报告 篇十三

指导老师:吴杰 学生姓名:刘超 班级序号:02305231 学生证号:20051004279

一.题目要求

设有一个可以停放N辆汽车的狭长停车场,它只有1个大门可以供车辆进出。车辆按到达停车时间的早晚依次从停车场罪戾面向大门口停放。如果停车场已放满N辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排放在便道上的第一辆车就进入停车场。停车场内如有某辆车要开走,在他之后进来的车都必须先退出停车场为它让路,等待其开出停车场后,这些车辆再依原来次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车未进停车场就要离开,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆次序。

二.需求分析

停车场采用栈式结构,停车场外的便道采用队列结构(即便道就是等候队列)。

停车场的管理流程如下:①当车辆要进入停车场时,检查停车场是否已满,如果未满则车辆进栈(车辆进入停车场);如果停车场已满,则车辆进入等候队列(车辆进入便道等候)。②当车辆要求出栈时,该车到栈顶的那些车辆先弹出栈(在它之后进入的车辆必须先退出车场为它让路),再让该车出栈,其他车辆再按原次序进栈(进入车场)。当车辆出栈完毕后,检查等候队列(便道)中是否有车,有车则从队列头取出一辆车压入栈中。

三.总体设计

采用面向对象设计方法:先抽象出类,再分析每个类有哪些成员变量,每个类应该实现哪些功能(即应该有哪些成员函数)。最后,根据要求实现类的成员函数,完成该模拟的逻辑设计和实现。

四.详细设计

#include #include #include

#define MAX 2 /*车库容量*/ #define price 0.05 /*每车每分钟费用*/ typedef struct time{ int hour;int min;}Time;/*时间结点*/ typedef struct node{ char num[10];Time reach;Time leave;}CarNode;/*车辆信息结点*/ typedef struct NODE{ CarNode *stack[MAX+1];int top;}SeqStackCar;/*模拟车站*/ typedef struct car{ CarNode *data;struct car *next;}QueueNode;typedef struct Node{ QueueNode *head;QueueNode *rear;}LinkQueueCar;/*模拟通道*/

void InitStack(SeqStackCar *);/*初始化栈*/ int InitQueue(LinkQueueCar *);/*初始化便道*/ int Arrival(SeqStackCar *,LinkQueueCar *);/*车辆到达*/ void Leave(SeqStackCar *,SeqStackCar *,LinkQueueCar *);/*车辆离开*/ void List(SeqStackCar,LinkQueueCar);/*显示存车信息*/

void main(){ SeqStackCar Enter,Temp;LinkQueueCar Wait;int ch;InitStack(&Enter);/*初始化车站*/ InitStack(&Temp);/*初始化让路的临时栈*/ InitQueue(&Wait);/*初始化通道*/ while(1){ printf(“n1.the car arrive”);printf(“ 2.the car leave”);printf(“ 3.the schedule ”);printf(“ 4.outn”);while(1){ scanf(“%d”,&ch);if(ch>=1&&ch<=4)break;else printf(“nplease choose: 1|2|3|4.”);} switch(ch){ case 1:Arrival(&Enter,&Wait);break;/*车辆到达*/ case 2:Leave(&Enter,&Temp,&Wait);break;/*车辆离开*/ case 3:List(Enter,Wait);break;/*列表打印信息*/ case 4:exit(0);/*退出主程序*/ default: break;} } }

void InitStack(SeqStackCar *s)/*初始化栈*/ { int i;s->top=0;for(i=0;i<=MAX;i++)s->stack[s->top]=NULL;} int InitQueue(LinkQueueCar *Q)/*初始化便道*/ { Q->head=(QueueNode *)malloc(sizeof(QueueNode));if(Q->head!=NULL){ Q->head->next=NULL;Q->rear=Q->head;return(1);} else return(-1);} void PRINT(CarNode *p)/*打印出站车的信息*/ { int A1,A2,B1,B2;printf(“nplease input thedepart time:/**:**/”);scanf(“%d:%d”,&(p->leave.hour),&(p->leave.min));printf(“nthe number of the car:”);puts(p->num);printf(“nthe time the car arrive: %d:%d”,p->reach.hour,p->reach.min);printf(“the depart time: %d:%d”,p->leave.hour,p->leave.min);A1=p->reach.hour;A2=p->reach.min;B1=p->leave.hour;B2=p->leave.min;printf(“nthe fee: %2.1f元”,((B1-A1)*60+(B2-A2))*price);free(p);} int Arrival(SeqStackCar *Enter,LinkQueueCar *W)/*车辆到达*/ { CarNode *p;QueueNode *t;p=(CarNode *)malloc(sizeof(CarNode));flushall();printf(“ninput the number of the car(例:陕A1234):”);gets(p->num);if(Enter->toptop++;printf(“nthe place of the car.”,Enter->top);printf(“nthe time thecar arrive:/**:**/”);scanf(“%d:%d”,&(p->reach.hour),&(p->reach.min));Enter->stack[Enter->top]=p;return(1);} else /*车场已满,车进便道*/ { printf(“n该车须在便道等待!”);t=(QueueNode *)malloc(sizeof(QueueNode));t->data=p;t->next=NULL;W->rear->next=t;W->rear=t;return(1);} } void Leave(SeqStackCar *Enter,SeqStackCar *Temp,LinkQueueCar *W){ /*车辆离开*/ int i, room;CarNode *p,*t;QueueNode *q;/*判断车场内是否有车*/ if(Enter->top>0)/*有车*/ { while(1)/*输入离开车辆的信息*/ { printf(“n请输入车在车场的位置/1--%d/:”,Enter->top);scanf(“%d”,&room);if(room>=1&&room<=Enter->top)break;} while(Enter->top>room)/*车辆离开*/ { Temp->top++;Temp->stack[Temp->top]=Enter->stack[Enter->top];Enter->stack[Enter->top]=NULL;Enter->top--;} p=Enter->stack[Enter->top];Enter->stack[Enter->top]=NULL;Enter->top--;while(Temp->top>=1){ Enter->top++;Enter->stack[Enter->top]=Temp->stack[Temp->top];Temp->stack[Temp->top]=NULL;Temp->top--;} PRINT(p);/*判断通道上是否有车及车站是否已满*/ if((W->head!=W->rear)&&Enter->tophead->next;t=q->data;Enter->top++;printf(“n便道的%s号车进入车场第%d位置.”,t->num,Enter->top);printf(“n请输入现在的时间/**:**/:”);scanf(“%d:%d”,&(t->reach.hour),&(t->reach.min));W->head->next=q->next;if(q==W->rear)W->rear=W->head;Enter->stack[Enter->top]=t;free(q);} else printf(“n便道里没有车.n”);} else printf(“n车场里没有车.”);/*没车*/ } void List1(SeqStackCar *S)/*列表显示车场信息*/ { int i;if(S->top>0)/*判断车站内是否有车*/ { printf(“n车场:”);printf(“n 位置 到达时间 车牌号n”);for(i=1;i<=S->top;i++){ printf(“ %d ”,i);printf(“%d:%d ”,S->stack[i]->reach.hour,S->stack[i]->reach.min);puts(S->stack[i]->num);} } else printf(“n车场里没有车”);} void List2(LinkQueueCar *W)/*列表显示便道信息*/ { QueueNode *p;p=W->head->next;if(W->head!=W->rear)/*判断通道上是否有车*/ { printf(“n等待车辆的号码为:”);while(p!=NULL){ puts(p->data->num);p=p->next;} } else printf(“n便道里没有车.”);} void List(SeqStackCar S,LinkQueueCar W){ int flag,tag;flag=1;while(flag){ printf(“n请选择 1|2|3:”);printf(“n1.车场n2.便道n3.返回n”);while(1){ scanf(“%d”,&tag);if(tag>=1||tag<=3)break;else printf(“n请选择 1|2|3:”);} switch(tag){ case 1:List1(&S);break;/*列表显示车场信息*/ case 2:List2(&W);break;/*列表显示便道信息*/ case 3:flag=0;break;default: break;} } }

程序运行过程:

1。主系统程序

2.选择所需系统

存储完毕程序继续进行。

选择2为车辆离开启动程序:

选择4退出程序。

五.总结

14.C语言程序设计课程教学设计 篇十四

摘要:该文主要探讨了C语言程序设计课程在现有高等教育体系中教学内容及方法。提出了C语言程序设计课程的教学内容应该分成基础课程和高级课程两部分;提出了根据现实中的问题和需要学习的知识点为依据来编排教学案例,通过增加问题的难度逐步学习掌握更多的知识点。

关键词:C语言程序设计;教学内容;教学方法

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)13-0161-03 C语言程序设计课程在教学中出现的问题

C语言是现今计算机领域通用的语言之一,虽然并不像上个世纪80年代那样一枝独秀,但仍具有非凡的魅力。C语言是Thompson、Ritchie等人开发UNIX操作系统的副产品,并用C语言并UNIX操作系统进行了重写。在C语言普及后,国际标准化组织又多次对C语言进行了标准化,包括C89标准、C99标准和最新的C11标准。C语言对现代编程语言产生了巨大的影响,许多流行的现代编程语言都借鉴了大量C语言的特性,包括C++,JAVA,OC,Swift,C#等。

考虑到大量新编程语言的普及程度。高等院校学生还有学习C语言的必要吗?对于这个问题回答:首先,学习C有利于更好的理解其他新式编程语言,能让程序员更好地掌握继承自C语言的基本特性。其次,现有大量的C语言代码需要维护。最后,C语言仍然是众多工程领域最重要的编程语言,包括嵌入式开发、智能机器人、智能家居和智能电子产品等。

现今国内大部分高校都会首选C语言作为计算机编程的入门语言。各专业开设的C语言课程一般都是一个学期讲完,学时数大概在48~64课时之间。由于学生没有编程基础,很难在这么短的时间内熟悉C语言的各个知识点。在各个高校C语言程序设计课程教学中,有两种教学方法比较主流:一种是采用多媒体演示+黑板板书、并用一定的课时量上机练习编程的教学方法,这种方法可以在一学期内讲解完C语言课程大部分知识点。但是这种教学方法需要学生课后自己花时间上机练习编程。而且由于教师不在现场,学生出现的问题得不到及时解决,容易对编程产生厌恶感,导致学习失败。另一种方法是采用教室与机房一体化的教学方法,教师采用多媒体演示+黑板板书,通过设计好的项目来引导学生学习,指导学生现场编程,通过多年的实践发现,这种教学方法的效果比上一种好,但是由于班级学生人数众多,即使采用小班教学,也有30个左右的学生需要指导。在一学期的课时内,没有足够的时间指导学生学完全部重要的知识点。

本文的主要目的就是探讨C语言程序设计课程中教学的内容及教学方法,提供解决以上教学方式中出现的问题的思路。C语言程序设计课程教学内容的探讨

C语言程序设计课程教学中,选择一本好的教材非常重要。什么是好的教材?首先教材作者应该是C语言编程方面的专家、有实际项目的开发经验、熟悉C语言的标准。其次教材中应该有好的教学案例和精?x的习题,教学内容应该由浅入深、知识点全面、对C语言初学者经常犯的错误有提示和解答。我们不应该选择那种字典式、看起来全面但不便于学习的教材。国内的有些教材喜欢纠结于语法上的细节,故意把语句写得很复杂以考查学生是否掌握了相关的语法知识,这样做甚至会使习题的答案陷入了未定义行为的泥潭,对学生编程能力的提高是有害的。

通过对前面所述的两种主流教学方法的分析发现,由于C语言程序设计课程学时的限制,不可能既全面的讲解各个知识点,又让学生较快地掌握C语言的编程技术。因此有必要将C语言程序设计课程分成基础课程和高级课程来教学。

基础课程包括以下内容:

1)C语言概述和C语言编译器的使用;

2)C语言的基本概念、格式化输入/输出和表达式;

3)选择语句、循环语句和基本数据类型;

4)数组、函数和指针;

5)结构、联合与枚举;

6)底层程序设计;

7)预处理器和多文件程序的编写。

高级课程包括以下内容:

1)指针和数组;

2指针的高级应用:动态存储分配、链表、指向指针的指针和指向函数的指针;

3)标准库、输入/输出、标准库对数值和字符数据的支持;

4)错误处理和国际化特性;

5)C99标准和C11标准。

在课程教学中,教师最好采用项目化教学的方式,对基本知识点的熟练应用进行重点训练,使学生能够用所学的编程知识和技巧解决实际的项目问题。高级课程是否需要开设,关键看学生的专业和需求。对于电气电子信息类专业的学生,应该开设C语言的高级课程,使学生有能力使用C语言进行单片机和嵌入式技术的开发。C语言程序设计课程教学方法的探讨

C语言程序设计作为一门应用性很强的课程,检验学生学习的效果如何就是看学生编程的能力。欧美高校普遍采用的教学方法是在大班教学中采用多媒体演示+黑板板书的方式教学,然后在小班讨论课程中以助教辅导的方式练习编程。国内高校很少采用教授大班讲解课程,然后分班由助教辅导的教学模式,这就决定了国内的教学方式与欧美高校有所不同。由于需要教师一个人完成所有的教学任务,一个较好的教学模式就是采用项目化教学方式,将课程分为基础课程和提高课程进行教学。对C语言编程要求较高的专业,学习基础课程和高级课程两个部分,分两学期完成。对于一般的工科专业,可以只学习基础课程,重点了解编程的思想和编程的现代方法。

15.高职C语言程序设计课程教改探析 篇十五

优化师资队伍, 构建擅于应用现代信息技术与擅长现代职业教育体系的教学团队, 这是保证高职院校教学质量的保障。高职院校要加强对教师专业知识素质提升和教师职业精神的培养, 不断建设一支具有良好的政治素养、专业能力强、结构合理的相对稳定的师资队伍。

作为实践和理论要求都很强的课程, 务必夯实课程理论基础, 理论是实践的基础。如果对基本的语义、语法规则的理解不深刻, 就不能很好地实践和运用。为保证课堂教学的有序开展, 务必理论基础扎实可靠。C语言具有概念化、抽象化、逻辑化、语言复杂化、规则多变化等诸多专业特点, 在实践操作过程中更是不断变化。教师教好C语言, 学生学好C语言, 重中之重是掌握C语言最基本的语义和语法规则。教师必须深刻理解C语言的基本定义, 能够熟练掌握概念。在课堂教学过程中, 高职院校教师务必通过最具体、最方便、最简单的示例课剖析当前所讲授的复杂多变的语言现象和规则, 利用电子动画、形象的比喻对概念讲解和表达, 用直观形式表达, 只有学生才便于理解和记忆, 否则, 繁复的例子只会分散学生的注意力, 增加学生理解的负担。

一、课堂教学方式的改革和探索

C语言的教学内容不具体, 抽象多变, 学生不容易掌握和理解, 教学的内容和过程大多枯燥无味。高职院校教师可以通过不断的学习和研讨, 结合当今的网络资源, 向其他地区或者其他学校的优秀C语言教师请教, 在学习和探索中提升自我的教学能力。高校教师在备课过程中要学会不断整合优秀资源和学会制作良好的教学课件, 要实现C语言教学内容的有序性、层次性和结构性。

二、加强课程实践改革力度

C语言是一门实践性、体系性很强的学科, 学生必须大量实践, 实践环节尤其重要, 加强创新能力, 加强学生对所学基础知识与内容的理解和思考, 培养学生计算机C语言的实际操作能力和创新能力, 高职院校教师将课堂教学和实践摆在同等重要的地位, 重视实践的作用。让实践教学的时间和课程不断增加, 课堂教学和实践教学相结合, 最终融为一体, 互相发展。高职院校C语言的实践教学由三个实践环节组成和完成, 即我们所说的教学课堂计划内实践环节、校外实训环节和第二课堂活动。教学课堂计划内实践环节是对所学C语言基本概念的理解、巩固和提高的过程。实习场地在高职院校的校内的机房, 由各任专业计算机任课教师指导进行, 并制定了严格的实践考核体系, 保证实践有序进行。校外实训在校外计算机互联网公司开展, 达到增强学生专业知识的社会实践能力的目的, 拓展课堂知识和内容, 不断对所学知识进行深化和提升。第二课堂活动是对计算机专业的学生综合应用能力、创造能力和创新能力的培养。

三、培养学生学习兴趣

成立专业的兴趣小组, 调动学生学习C语言的积极性和热情。在课堂和实践之外, 可以组织学生自己建立兴趣小组, 选取学习成绩较好的、勤奋刻苦的、爱好学习、编程能力较强的学生建立兴趣小组, 教师作为小组的辅导教师, 定期为兴趣小组提供课程题目等, 定期组织学生开展小课题研究和探索。鼓励计算机专业的学生通过大量调研和实践, 收集当今世界领先的资料、查阅相关计算机的参考文献、分析研究设计实施来解决疑难问题, 发挥广大学生学习语言的主动性和实践的创新精神, 通过团队培养学生的团队协助和创新精神。

C语言课程改革是一项系统的工程, 要从高校师资队伍建设、课堂教学、实验步骤、实践环节、课程作业、教学设备、学生考核评价、教师教学考核等环节, 对C语言课程进行全面而系统的改革。已达到推进C语言课程教学的不断进步和发展, 让学生充分掌握教学内容的核心和实质, 激发学生继续探索知识的能力, 激发学习知识的兴趣。教师要勇于发掘学生的创新和创造潜能, 但教学过程是一个持续改进和不断完善的过程, 要不断总结课程教学的经验和教学, 不断学习和借鉴他人先进的教学改革成果, 要保证C语言教学不断提高。

参考文献

[1]谭浩强.C语言程序设计[M].北京:清华大学出版社, 2000-01.

16.C语言程序设计课程教学设计 篇十六

[关键词] 计算机 C语言程序 教学方法

一、 引言

《C语言程序设计》课程非计算机专业学生的一门重要公共基础课,属于教育部提出的高等学校计算机基础教育三个层次的第二层次--计算机技术基础的一门主要课程,此外,还是学生考计算机等级考试二级时所选择的一种考试形式,因此,在整个课程体系中占有重要地位。教好这门课程,不仅能够使学生掌握知识、具有分析问题解决问题的能力,还能使得学生在计算机等级考试复习中取得先机,并在考试中能够取得较好的成绩。

C语言功能强大,表达能力强,但其丰富的功能所带来的繁多的数据类型和复杂的语法结构,给初学者产生了不少困难。在教学过程中,它不但要求教师具有良好的教学水平和教学方法,也要求学生具有良好的逻辑设计能力,因此,教师在教学过程中必须找到适合学生学习特点的教学方法,使学生在短暂的课堂学习时间内,学到尽可能多的C语言概念和C语言编程技巧。

二、 重视第一节课

通常教师认为C语言第一节课非常好上,只要简单介绍一下什么是C语言,以及C语言的开发环境,举几个简单的例子就可以了。笔者认为,第一节课是本门课程最为重要的一节,第一节课上不好,没有给学生留下深刻的印象,会直接影响学生接下来学习的积极性。

三、 编程思路与解题思路并重

C是一个结构化语言,它的重点在于算法和数据结构。教师对C语言基本语法的讲解,只是使学生手中有了解题的工具,而编程思想的培养可以使学生学会使用C语言这个工具实现程序。

非计算机专业的学生学习C语言程序设计课程,不仅仅希望能够锻炼逻辑思维能力,学会编写程序的方法,而且从实际需要出发,他们更希望通过这门课程的学习,能够通过国家计算机等级考试中二级中的VB科目考试,在就业过程中多一个筹码。在考试中,很大一部分题目,学生要去读懂别人的程序去答题,而通常在课堂中,学生只是学习、练习怎样用C语言去实现练习题目,而对于像等级考试中出现的比较复杂、异类的程序,九无从下手。

在课堂上学习本节课的内容时,并不是每位学生都对前面课程的知识掌握的非常牢固,教师在讲解本节课程内容时应有一段时间来复习,特别是这节课要用到的知识。复习的过程中采用方法可以多种多样,既可以采用随堂提问,也可以采用小测验的形式。这样学生才可以在课堂中做到“温故而知新”。同样在,本次课结束的时候,留有预习内容,让学生在课外了解下节课的知识点。采用这种方式,C语言课程内容会非常连贯,衔接流畅,学生也可以将知识点串联成知识面、知识体。

五、 对于不同内容,采用不同的教学方法

C语言课程内容非常多,知识点的难度、特点也不一样,因此在整个课程内容上,对于不同的内容,应采用不同的教学方法。笔者在实际教学中主要以下的教学方法,取得不错的效果。

(1) 对于基本语法,如数据类型、运算符、表达式,采用讲解法;

(2) 对于基本语法的应用,如顺序结构语句、循环结构语句,采用演示法;

(3) 对于难点重点,如函数、数组、指针,采用启发式教学;

(4) 对于综合程序设计采用融入式教学方式等。

六、 一题多解

C语言中一个题目的解题方法多种多样,通常教师在课堂中只是讲解一种解题方法,并且在实际的教学过程中,比较快的进入题目的讲解过程,学生只能惯性的理解教师的解题思路,没有时间思考。在给出题目之后,教师应留给学生足够的时间去思考,往往学生会举出几个解答思路,教师再给与一定的分析引导,这样学生就能够深刻的理解解题的思路、方法。

七、 合理安排上机实践

在布置实验内容时,教师要注重实验例题潜在的价值。好的实验例题能够澄清学生模糊的知识点,有助于知识的理解及掌握。

上一篇:春秋战国的纷争的训练习题下一篇:大学新生接待工作方案