第一篇:基于案例教学法的C语言教学设计
基于案例教学法的C语言教学设计
摘 要: 针对公安院校学生主体的特殊性,结合高级语言程序设计课程,提出案例教学法。分析了案例教学法的特点,以选择结构为例,运用案例教学法分析教学设计过程。教学设计注重培养学生的学习兴趣,提高学生理论联系实际的能力。
关键词: 案例教学法; C语言; 教学设计; 选择结构
中图分类号:G642 文献标志码:A 文章编号:1006-8228(2016)06-104-03
Abstract: In view of the particularity of police colleges students' learning,combined with high-level language programming courses,the case teaching method is put forward.Analyzed the characteristics of the case teaching method,taking “selection structure” as an example,the teaching design process is analyzed by using the case teaching method.The teaching design focuses on the cultivation of students' learning interest and the improvement of students' ability of integrating theory with practice.Key words: case teaching; C language; teaching design; selection structure
0 引言
高级语言程序设计是我院网络安全与执法专业的核心基础必修课程,是网络安全执法课程体系的基石,也是培养学生的计算思维和程序设计能力的起点[1]。该课程不仅直接影响后续数据结构、电子取证、信息安全等专业课程的学习,而且对构建专业认同感和融合度有着重要意义。由于我院是公安院校,教学工作不同于普通高等院校,学院日常采用警务化管理,文武兼修,所以在高级语言程序设计教学中有一定的特殊性,主要表现在以下方面。
⑴ 课程总学时少。相较于普通高等院校计算机专业,我院高级语言程序设计总学时偏少,且实验学时占比不大,学生普遍缺乏动手实践能力。
⑵ 课余时间碎片化。公安院校学生课下警务活动较多,学生课余时间有限,学习缺乏连续性。专业知识学习依赖课堂和教师,学习形式比较单一,遇见问题往往“雾里看花”,无法将实际问题转化成程序语言,编程思维能力不足。
⑶ 教学模式传统。传统的教学模式是以语法为主线,以例题讲解为辅助手段,概念性知识较多,会加重学生学习疲劳感,学生学习兴趣不高,教学效果不理想。
针对以上情况,本文提出案例教学法作为新的教学方法,通过案例进行课堂教学,希望能够调动学生学习的主动性和积极性,培养学生的创新能力和理论联系实际的能力。案例教学法
20世纪初,哈佛大学创造了案例教学法。即围绕一定的训练目的把实际中真实的情景加以典型化处理,形成供学员思考、分析和决断的案例,通过独立研究和相互讨论的方式,来提高学员分析问题和解决问题的能力的一种方法。这种教学方法在当今世界的教育和培训中得到了广泛的应用[2]。在高级语言程序设计教学中,教师根据教学任务和教学目标,运用案例材料,组织引导学生参与其中对案例进行分析和思考,激发学生学习兴趣,从而提高学生实际动手能力和探究、创新能力[3]。引入案例教学法,可以让学生投入案例,积极思考,将一个个孤立的知识点串联起来,以小见大,构建完整的知识体系,提高程序设计思维能力。本文选择谭浩强的《C程序设计》(第四版)中的第4章“选择结构程序设计”为教学内容来探讨基于案例教学法的教学设计过程。教学目标
2.1 知识目标
了解6种关系运算符以及其优先次序、3种逻辑运算符以及其优先次序、条件运算符;掌握关系表达式、逻辑表达式的概念及其运算规则;了解if语句的3种形式、if语句的嵌套形式和switch语句形式。
2.2 技能目标
会灵活应用if语句进行条件语句的判断并通过编译工具编写程序,在VC环境中进行编译,查找错误然后解决。
2.3 情感目标
激发学生对编程的兴趣,形成编程设计思维;善于与其他学习者、老师沟通交流形成共识;培养独立思考、分析程序的能力。教学设计及教学过程
本次课程以案例法引入,通过猜数字游戏聚焦学生的注意力,调动课堂气氛,然后激发学生的求知欲[4],引导学生解析猜数字游戏背后的代码,通过分析代码,提出问题,在解决问题中讲授新知识新概念,最后总结知识、对照案例,巩固加深。教学过程主要以集体教学为主,分为案例引入、案例分析与讨论、案例总结三个部分。
3.1 案例引入
案例法教学难点之一就是如何选择案例。教师需深入研读教材,根据教学对象和教学内容知识点分布,合理选择代表性案例,并对案例进行评估,预估学生在分析案例中遇到的问题和反应,从而拟定相应的教学方案。针对公安院校学生主体和选择结构的知识要点,选择猜数字作为本次教学的案例。
本次课中,以猜数字游戏开场,首先介绍游戏规则,号召学生积极参与,选取2-3名同学猜数字,其他同学可出谋划策,以此调动全体学生积极性。
3.2 案例分析与讨论
什么是选择结构:游戏结束之后,控制课堂气氛,引导学生探索游戏背后的知识,结合顺序结构的知识抛出问题。如:这段游戏代码主要是什么结构?否定顺序结构后,从头到尾分析游戏的步骤,根据流程图的知识,让学生画出猜数字程序的简单流程图。通过对流程图的讲解自然引出选择结构的概念,形成对选择结构的初步认识。让学生列举出日常生活中选择的例子,一一点评,每一个选择的例子都涉及到条件的判断,所以说选择结构的关键点就是条件判断。
if 语句:根据选择结构的学习,判断猜数字游戏输入数字提示信息是否属于选择结构?我们把猜数字游戏的输入数字提示信息转化为具体的问题:如果输入的数字比谜底大,那么输出提示信息,请输入一个小一些的数字,如果输入的数字比谜底小,那么输出提示信息,请输入一个大一些的数字。展开小组讨论,得出输入数字提示信息是选择结构后,写出输入数字提示信息的伪代码。然后分析猜数字程序代码,根据程序中的注释语句和伪代码,可找到对应的输入数字提示信息的代码,代码如下:
演示PPT,对照输入数字提示信息的执行流程,呈现3种if语句的形式及其执行流程图。在黑板上,板书并讲解if语句使用的注意事项。如else子句是可选的,使用时须与if语句配对使用。要求学生在VC环境中编写输入数字提示信息的小程序,并进行编译和调试,出现错误时可讨论修改,老师予以点评。将学生分成小组,3人一组,探讨猜数字程序中选择结构的语句,可参考PPT和书本,每组选出一个代表,讲解找到的程序结构语句。老师再次讲解点评,并通过VC执行结果,让同学参与其中,深刻领会if语句的用法以及选择结构的内涵。
关系运算符和关系表达式:if语句中的表达式可以是关系表达式也可以是逻辑表达式。其中最直观、最容易理解的就是关系表达式。关系表达式又是由关系运算符构成的。要求学生查找猜数字程序里的关系运算符和关系表达式,小组内部讨论。演示PPT,呈现关系运算的概念、6种关系运算符(、>=、==、!=)、图示法归纳6种关系算符的优先次序规律,帮助学生理解记忆。
逻辑运算符和逻辑表达式:分析猜数字程序里的语句“c=='n'||c=='N'”,通过注释语句和程序运行流程分析这一语句的含义;引出逻辑运算符和逻辑表达式的含义。演示PPT,呈现3种逻辑运算符(&&、||、!)、逻辑运算的真值表、以图示法归纳3种逻辑运算符的优先次序规律。结合猜数字程序中的对再来一局的判断方法来讲解逻辑表达式的规则。由于关系运算符和关系表达式已经讲过,所以逻辑运算符和逻辑表达式可采用小组讨论总结,提高学生自学能力。
扩展:进一步思考if语句中的表达式除了关系表达式和逻辑表达式,还可以有什么?数值或者数值表达式可不可以?小组可以讨论,带着问题在VC环境验证自己的猜想。随机抽取学生进行总结发言,最后教师补充。通过对if语句的表达式深入学习,加深对if语句的理解,对两种表达式的知识起到复习巩固的作用。
switch语句:switch语句是多分支选择语句。学生在掌握if语句的基础上可自学。演示PPT,呈现switch语句的一般形式。老师布置任务:用switch语句改写猜数字程序中的结果等级评价语句。小组讨论并上机操作执行,得到结果,最后每组选出一个代表,先讲解编程的思路,接着使用VC工具演示程序的执行过程和结果,最后教师给予评价,教师对表现最佳的小组给予鼓励和表扬。
3.3 案例总结
回顾本次课的内容,总结重点和难点。重新复盘猜数字程序流程,展示猜数字程序流程图,讲解程序。这样培养学生阅读程序的能力,同时加深学生对程序结构的认识。对有疑问的学生答疑,增加互动交流。布置课后作业,以小组为单位(3人一组),提交猜数字程序实验报告。结束语
程序设计类课程传统教学方式是以教师和教材为中心,从书本到书本,从概念到概念,忽视了对学生学习潜能的开发,导致学生理论与实践的脱节。本文针对学习对象的特点,改革传统的教学观念,提出了案例教学法,并以选择结构程序设计为例,阐述了该方法在教学过程中的应用。案例教学法是以案例为主线,以知识点为支线,注重引导学生通过案例分析与讨论解决实际问题,理清课程知识体系。案例教学法的运用有利于学生程序思维的建立,有利于学生程序设计能力的提高,同时对促进教学改革和加强素质教育有着积极的意义。
案例教学法的实施过程中仍有一些问题值得注意,比如案例的选择、理论知识点教授与案例分析的有机融合及协调[5]、课时安排等,这就要求教师能够很好地处理这些问题,以保证在采用案例教学时取得最佳的教学效果。
参考文献(References):
[1] 牟琴,谭良,周雄峻.基于计算思维的任务驱动式教学模式的
研究[J].现代教育技术,2011.21(6):44-49
[2] 苗冬霞.浅析“C语言程序设计”课程的案例教学[J].武汉工程
职业技术学院学报,2006.18(2):90-92
[3] 肖明.案例教学法在“C++语言程序设计”教学中的应用[J].计算机教育,2010.6:83-86
[4] 于启红.案例教学法在编程语言课程中的作用探讨[J].计算
机时代,2014.11:62-64
[5] 张润莲,张向利,叶进.案例教学法及其运用[J].桂林电子工业
学院学报,2004.24(4):102-105
第二篇:《C语言》教学设计
《C语言》教学设计
一、教学设计
本课程的教学设计是根据软件人才的培养目标,突出创新型、应用型人才的培养方案而设计的,实行“基础知识+基本技能+项目实践+技术延伸”的教学理念。
基础知识是指涵盖该课程的主要知识点;基本技能是指通过实验案例来训练学生的基本项目开发技能,巩固提高学生对基本知识点的理解;项目实践是指通过项目形式,训练学生的综合能力;技术延伸则是指涵盖相关领域的最新技术发展,属于不断更新的动态模块。
根据本课程的教学设计我们精选C程序设计课程的教学内容,精心设计教学案例和课堂讨论题目,实验类型和实验内容,通过特定的教学方法来予以实现。
二、教学方法
C程序设计课程主要采取案例教学法和实践教学法。本课程主讲教师利用业余时间深入大连高新园区、软件园区和软件行业的大中小型企业,搜集、整理了大量的教学案例,有效地运用于课堂教学。通过案例教学,增强了C程序设计教学的实务性和应用性,提高了学生运用C程序设计解决实际问题的能力。在多年的教学实践中,总结了多种C程序设计的教学方法和软件人才培养模式,并在计算机教育和电脑知识与技术上发表。具体方法如下:
方法之一:实行“1+3案例教学”的教学方法
“1+3案例教学”的教学方法是指针对每一个难懂的问题或概念,都会找三个案例程序。一个是非常易于理解概念的例子;一个是引起学生兴趣的例子;一个是现实当中非常实用的例子。采用这种方法可以使学生容易理解难懂的计算机程序,又能引起学生的学习兴趣,还能让学生了解企业的实际应用。
方法之二:突出讲授C语言程序设计的普遍性和特殊性
程序设计课程可以分不同层次,C语言只是其中的一种,在这门课的讲授中,要突出程序设计方法的讲解,让学生分清哪些是C语言所特有的,哪些是通用程序设计语言所共有的,这样就可避免讲了一种程序设计语言,再讲一种,既不深入也不透彻。当日后学生根据专业的使用情况及学生的具体状况来选择某种高级语言作为实际操作语言时,学生就具有了学习程序设计语言的能力、扩展的能力,而不是就学C语言而学C语言。但不同的专业对该课程的要求可以有所差异,但不论哪种情况,都不能停留在某种高级语言的介绍,而是要突出讲述程序设计方法,正确地选择算法与数据结构,进行正规的程序设计训练,这样才可深入、透彻的了解程序设计语言的真谛。
方法之三:强调“做中学”的教学模式
“做中学”的教学模式是指在实际的教学过程当中,不是按照从基础理论到专业理论,再到实习的路径来展开教学的,而是把教学顺序完全颠倒过来,先从“做”开始,在做的过程中,以任务驱动方式,通过实例讲授程序设计的基本概念和基本方法,重点放在思路上。学生如遇到问题,再以此问题为基点去学习专业理论。这样做不仅有利于学生实践能力的培养,同时也有助于学生自主学习能力和兴趣的提高。
方法之四:采取粗讲和细讲的方法,缓解课程内容多和学时相对少的矛盾
高校计算机教学的特点是:知识更新快,内容范围广,应用要求高。由此带来的问题之一就是课时的相对减少。在实际教学工作中,我体会到,要缓解课程内容多和学时相对少的矛盾,就是要将“粗讲”和“细讲”结合起来,例如,在《C语言程序设计》课的教学中,前面的几章主要是常量、变量、数据类型、运算符和表达式等一系列规则性、语言的语法要求很强且很琐碎的内容,如果一开始就按部就班地一条条给学生讲解这些规则,常常使学生产生“只见树木,不见森林”、茫然不知所措的感觉。所以应该先通过一个简单的C程序实例“细讲”为什么要制定这些规则,使学生清楚这些规则在程序中的用途,然后对于这些规则“是什么”就可有代表性的“粗讲”,甚至有些部分可以不讲,让学生边用边学。
方法之五:突出重点,鼓励和引导探索式学习
《C语言程序设计》这门课授课的原则是要让学生先抓重点而后才是细节,重点放在思路、算法、编程构思和程序实现上。语句只是表达工具,讲一些最主要的,细枝末节的东西根本不讲,让学生自学,动手上机练,计算机是实践性极强的学科,所学的内容和要实践的东西是一个整体,所以学生可以自己动手来学,书上看不懂的在机器上动手试试,往往就弄懂了,因此很多东西完全是可以自学的。教师应引导学生在解题编程的实践中探索其中带规律性的认识,将感性认识升华到理性高度,只有这样,学生才能举一反三。在这一过程中教师起着很大的引导作用,要求学生在课堂上积极思考,尽量当堂学懂,突出上机训练,在编写程序的过程中,使学生提高利用计算机这个智力工具来分析问题和解决问题的能力。
方法之六:选择合适的数据结构,设计满足限定条件的最优算法在C语言程序设计中,用设计程序解决问题时除了认真分析问题之外,最重要的是选择合适的数据结构,并设计满足限制条件的算法或选择最优的算法。因此,要求学生要熟练掌握各种常见的数据结构,深刻理解某些经典算法的原理和时间、空间复杂度,掌握算法设计的一般步骤。
方法之七:养成良好的编程习惯
让学生养成良好的编程习惯是十分重要的。我们在与国内一些软件公司的技术人员座谈时了解到,中国软件之所以上不去的原因之一就有“习惯问题”。印度十个人编程,会编出一样的东西,而我们十个人编程会有十种风格。因为我们忽略了一个重要问题是“顾客”的感受,因为程序的编写是给别人看的,而不是只给我们自己看的,这样才更符合软件规范的要求。鉴于此,在课堂上我们非常注意让学生养成良好的编程习惯,如:强调程序的可读性、规范性;变量必须加注释;程序构思要有说明;学会如何调试程序;尽量使程序优化;还要求对程序的运行结果做正确与否的判断与分析等。
方法之八:强化实践教学模式
对程序设计教学模式进行改革,以强调动手实践、上机编程为切入点;以任务驱动方式,通过实例讲授程序设计的基本概念和基本方法。重点放在思路上,即:在C/C++语言的环境下,针对问题进行分析,构建数学模型,提出算法并编程实现,同时要求养成良好的编程习惯,在此过程中培养学生的思维能力和动手能力,鼓励学生探索、研究和创新。只有让学生动手,才会有成就感,进而对本课程产生兴趣,学起来效果才比较好。因此,我们的基本思想应该是在理论指导下,让学生动手、动脑更多地上机实践。因为学生只有在编写大量程序之后,才能获得真知灼见,感到运用自如。注重学生动手能力的培养是这门课和以往课程最大的不同之处。
三、教学手段
为了实现本课程确立的教学目标,落实教学内容,改革教学方法,提高教学效率,我们利用课程组教师的优势,应用现代教育技术,长期地进行了教学手段的改革和信息化建设,并取得了很好的成果。
(一)多媒体教学
《C程序设计》课程在我校是最先采用了现代信息技术、应用多媒体技术进行课堂教学的课程之一。本课程组的全体教师早已全部掌握了应用多媒体信息技术进行课堂教学,制作了多媒体课件和多媒体教学案例。通过多媒体教学,突破了传统教学手段的时空限制,节省了大量宝贵时间,增加了课堂教学的信息量,使课堂教学形象化、生动化。随着现代信息技术的不断发展,这些多媒体课件在实际应用中也在不断的修改和完善,其质量不断提高,教学效果也非常好,受到了学生的普遍好评。
(二)网络教学
本课程组较早就开始着手进行网络教学系统的开发建设,目前网上教学资源已经十分丰富,极大地方便了教师与学生之间的交流。在网络平台上,学生可以看到与C程序设计课程相关的所有资料。教师给学生布置作业,学生可以在网上直接作答,教师在网上直接批阅。学生在学习中遇到问题,可以在网上直接向教师请教和讨论。通过课内教学与课外研讨相结合的方式,使教与学有机地融合在一起,有利于学生充分消化和理解教学内容。
(三)实验教学
我们在开展案例教学的同时,积极开展实验教学。通过实验教学,指导学生自己动手完成各项业务操作,使学生验证、理解、巩固了所学的计算机知识;指导学生运用所学的知识,分析和解决实际问题,使知识转化为能力。在验证实验和应用实验的基础上,指导学生进行开拓型训练,使学生拓展了思维,增强了创新能力。
在学时安排上,理论教学与上机实践的学时比例基本为1:1。本课程设置“验证型实验教学+设计型实验+综合型实验教学”的实验教学体系,构建递阶型实践教学模式,验证型实验教学是与理论课同时进行的上机实习;设计型实验是与理论课同时进行的学生自行设计的运用理论学习内容进行实际开发的实验;综合型实验教学是理论课讲授完毕后的集中实训,是综合能力的训练。对程序设计教学模式进行改革,强化实践教学,以强调动手实践、上机编程为切入点,是本门课程的特色。
四、教改举措
(一)精选教学内容,改革课程设计,实行“基础知识+基本技能+项目实践+技术延伸”的教学理念
根据软件人才的培养目标,我们精选C程序设计课程的教学内容,精心设计教学案例和课堂讨论题目,突出创新型、应用型人才的培养。
基础知识涵盖该课程的主要知识点;基本技能则通过实验案例来训练学生的基本项目开发技能,巩固提高学生对基本知识点的理解;项目实践通过项目形式,训练学生的综合能力;技术延伸则涵盖相关领域的最新技术发展,属于不断更新的动态模块。
(二)改革教学方法,实行“1+3案例教学”的教学方法
摒弃了过去传统的灌输式教学方式,采用灵活案例式教学方法和实践教学方法。尤其是采用实用、有效的“1+3案例教学”的教学方法。即针对每一个难懂的问题或概念,都会找三个案例程序。一个是非常易于理解概念的例子;一个是引起学生兴趣的例子;一个是现实当中非常实用的例子。采用这种方法可以使学生容易理解难懂的计算机程序,又能引起学生的学习兴趣,还能让学生了解企业的实际应用,提高了学生的实践能力。
(三)改革作业形式
布置的作业题侧重于应用性,训练学生应用能力。在作业的布置和批改上,均通过网上进行。
(四)改革实验形式
为强调“以学生为中心”的实验教学模式,自主开发了“C 程序设计网络化实验教学平台”。
(五)改革考试形式
为辅助教师加强对学生实践环节的考核,自主开发了“C 程序设计网络化考试软件”,以保证实验教学的质量。
(六)改革教学模式,强调“做中学”
“做中学”的教学模式是指在实际的教学过程当中,不是按照从基础理论到专业理论,再到实习的路径来展开教学的,而是把教学顺序完全颠倒过来,先从“做”开始,在做的过程中,以任务驱动方式,通过实例讲授程序设计的基本概念和基本方法,重点放在思路上。学生如遇到问题,再以此问题为基点去学习专业理论。这样做不仅有利于学生实践能力的培养,同时也有助于学生自主学习能力和兴趣的提高。
第三篇:错误案例教学法在C语言教学的应用论文[范文]
摘要:C语言程序设计是一门为许多高校包括独立学院的非计算机专业理工系学生开设的一门公共选修课程,其课程设置目标是培养理工类非计算机专业学生的编程思维和编程能力。笔者基于多年来对“C语言程序设计”课程的实际教学经验,发现把编程错误案例进行搜集和分析以及讨论的教学法融入C语言教学中,能让学生有更好的分析问题、解决问题的能力,并且可以大大提高编程效率。
关键词:C语言程序;编程思维;错误案例教学法
1C语言中错误类型和产生的原因
1.1C语言程序中的错误分类
在C语言学习编程过程中,一般是三种错误,语法错误、逻辑错误以及运行错误。
(1)语法错误:没有按照语言的规范进行编程而产生的错误。如缺少标点符号,变量没有申明,变量类型出错,函数名称写错等等,这些语法错误机器一般会给出提示,比如Error和Warning,在运行的时窗口下会显示错误的个数以及出错的原因等信息,很容易被发觉,如果没有修改则会影响整个程序的运行。
(2)逻辑错误:程序可以正常运行,但是得不到预期的结果。常见错误有复合语言的花括号后加分号,输入输出的数据类型与所用格式说明符不一致等等。而这样的逻辑错运行时候并没有提示,比较难发现,对于初学者而言比较困难,只有在编程中进行系统和全面的考虑才能避免逻辑错误。
(3)运行错误:在既没有语法编译错误,也无语法逻辑错误的情况下程序运行时发生的错误或者程序会忽然停止运行,比如类型溢出,数字表达式格式有误,除零错误等等。
1.2程序错误解析
(1)为申明变量或使用一些没有赋值的自动变量:C语言是一门十分严谨的程序语言,必须严格遵守变量必须先申明后使用的原则,但是很多初学者没有养成良好的编程习惯就会忘记,直接使用,这样就会不断有提示变量未定义的错误。
(2)不区分字母的大小写:在C语言中,大小写字母是不同的字符,比如A和a表示的是两个不同的变量。
(3)分号的乱用:由于分号是C语言的重要组成部分,比如简单语句以分号为结束标志,复合语句是用一对花括号括起来的一组语句,空语句只有一个分号。学生很容易忘记加分号,或者多加分号。
(4)赋值符号当成“=”使用:在很多人的思维里面“=”符号是“等于”的关系,如A=36,就认为是左边的A等于右边的36,实际上是把右边的36赋值给左边的A,如果学生的思维停留在前者“等于”的关系,就会明显出现编译的错误。
(5)数据类型定义错误,造成数据的溢出:C语言中的整数数据类型在-32768到32767之间,由于很多时候编写程序都是用的是inta,b,一些初学者都会默认用int来定义所有的变量,忽略了数据类型的范围,一旦结果超出了这个范围,甚至是小数,就会得到不一样的结果,而这个结果可能在程序的运行并不报错,也比较难发现。综上所述,这些错误很多都是学习程序的学生没有养成良好的编程习惯而造成,这样的错误防不胜防。只有在错误中学习,不断对错误进行分析,才能提高自身的编程能力。
2基于错误案例培养的C语言程序设计改革的具体措施
2.1对错误案例进行搜集和分类
搜集错误案例是一项艰苦的劳动,需要花费一定的时间和精力。首先教师需要明确C语言课程的所有教学内容,对错误案例的搜集也要有针对性,对于教师的要求就是需要研读教材,根据教学的对象和教学内容知识点分布,搜集实践教学中记录的错误日志文件,进行错误案例设计,并对错误案例进行评估,记录学生在分析错误案例中遇到的问题和反应,从而拟定相应的教学方案。其次可以让学生组织兴趣小组,大约5-6人一组,这样可以减轻教师的工作,可以由组长协助教师和组员对于提交的错误进行分类和整理,甚至可以按章节按知识点进行分类,因为学生编程过程中肯定有很多重复的错误,如果一一进行上报和记录会非常繁琐,组长只需对错误的类别和错误的频率进行记录,就会很有利的协助教师进行错误案例的设计。最后即学生自己的工作,因为真正需要学习实践的是学生本人,虽然每个组有组长,但是组长同样也是学生,他(她)的工作是既要保证自己的学习,也要汇总其他组员的学习情况,工作比较繁重,所以最好要求每一个学生自己也准备错误日志笔记本,对自己在实践练习中出现的问题,涉及到的知识点,疑问,错误的原因进行整理和记录,当然如果学生觉得时间有限,也可以用手机进行拍照,如果能通过翻阅图书,搜索网络的方式改正错误更好,实在没有能力改正可以去请教其他组员和教师,这样更能加深对错误的记录,尤其需要关注编程过程中经常出现的典型问题,这类问题可能经过多次调试也没有结果,需要加强对待,如果经过大家的帮忙或老师的指导后有了解决方案也需要记录下来,以备下次练习出现相关性问题可以自行解决。
2.2对错误案例进行分析和讨论
通过上面的途径,教师汇总了课堂教学中的错误案例后,就可以进行典型错误案例设计,可以在课堂正常教学中穿插讲解,比如可以先对学生提出错误案例问题,引导学生探索错误案例涉及的知识点,疑问,最终的解决方案等等。比如讲解选择结构的错误案例代码,可以先询问学生这段错误的案例代码主要是什么结构?如果是选择结构,再从头到尾分析代码的步骤,根据所学流程图的知识,让学生根据此段代码画出该程序的简单流程图。再通过对流程图的讲解很自然引出选择结构的语法知识点,并找出该代码真正错误的原因,最后让学生列举出日常生活中涉及到选择结构即条件判断的例子。教师还可以根据错误的类型在实践环节中给出相应的错误代码,让学生检验课堂学习的效果,避免编程过程中犯同类错误,在更正错误的过程中发现积极性,培养良好的编程习惯。
2.3教学效果及评价
通过在C语言程序课教学中引入错误案例学习,既能提高学生自主学习的效率、在实践中取得了更好的教学效果,也能大大提高学生的编程能力,例如,学生在定义数组的时候容易忽视数组的个数,可能会错误地使用下标的数字,只要教师在错误案例中重复申明该类错误,学生才会加深记忆,经过强调学生则会避免此类错误。通过对上课学生进行匿名问卷调查发现,100%的学生认为采用错误案例分析和讨论的学习模式比传统教师课堂填鸭式讲授语法知识点的模式更能提高自己的学习能力和学习效率。
3结论
想要提高C语言的编程能力,以及提高教学效果,可以从错误案例的搜集与分类开始,再引导学生通过错误案例分析与讨论解决实际问题,理清课程知识体系。错误案例教学法的运用有利于学生程序思维的建立,有利于学生程序设计能力的提高,同时对促进教学改革和加强素质教育有着积极的意义。在实际编程过程中还有其他的可能性,这需要教师在以后的教学过程中更要留心,更要注意错误经验的积累,所以研究此问题不仅仅可以提高学生的编程能力,而且对于教师自身教学技能理论加强也有着重要的实际意义。
参考文献:
[1]余丽红,龙诺春,林春景.C语言实践中易出现的编程错误及解答[J].数字技术与应用,2014(8):220-221.[2]杨冬云.C语言学习中几个常见典型错误分析[J].电脑知识与技术,2017,13(13):65-66.[3]薛非.品悟C:抛弃C程序设计中的谬误与恶习[M].北京:清华大学出版社,2012.[4]于启红.案例教学法在编程语言课程中的作用探讨[J].计算机时代,2014(11):62-64.
第四篇:C语言课堂教学案例
C语言课堂教学案例
2、输入三角形三边长,求三角形面积。#include “math.h” main(){
float a,b,c,s,area;
scanf(“%f ,%f,%f”,&a,&b,&c);s=1.0/2*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));printf(“area=%fn”,area);}
例2 从键盘输入一个大写字母,要求改用小写字母输出。#include
char c1,c2;
c1=getchar();
printf(“%c,%dn”,c1,c1);
c2=c1+32;
printf(“%c,%dn”,c2,c2);}
【例2】输入并运行程序,写出运行结果。main(){
int a,b,sum;
a=123;b=456;
sum=a+b;
printf(“sum is %dn”,sum);}
1、已知三个数a,b,c,找出最大值放于max中。#include “stdio.h” main(){
int a,b,c,max;
/*定义四个整型变量*/ scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);if(a>=b)
max=a;
/*a>=b*/ else
max=b;
/*amax)
max=c;
/*c是最大值*/ printf(“max=%d”,max);}
2、输入某学生的成绩,经处理后给出学生的等级,等级分类如下:
90分以上(包括90): A
80至90分(包括80):B
70至80分(包括70):C
60至70分(包括60):D
60分以下:E
#include“stdio.h” main(){
int score;
char grade;
printf(“nplease input a student score:”);
scanf(“%d”,&score);
if(score>100||score<0)
printf(“ninput error!”);
else
{ if(score>=90)
grade='A';
else
{ if(score>=80)
grade='B';
else
{if(score>=70)grade='C';
else
{ if(score>=60)grade='D';else grade='E';
}
}
}
printf(“nthe student grade:%cn”,grade);
} }
方法二:用switch语句
#include“stdio.h” main(){ int g,s;char ch;printf(“ninput a student grade:”);scanf(“%d”,&g);s=g/10;if(s<0||s>10)printf(“ninput error!”);else { switch(s){ case 10: case 9: ch='A';break;case 8: ch='B';break;case 7: ch='C';break;case 6: ch='D';break;default: ch='E';} printf(“nthe student scort:%cn”,ch);} }
【程序6】
题目:用*号输出字母C的图案。
1.程序分析:可先用’*’号在纸上写出字母C,再分行输出。2.程序源代码: #include“stdio.h” main(){
printf(“hello c-worldn”);
printf(“ ***n”);
printf(“ *n”);
printf(“*n”);
printf(“*n”);
printf(“*n”);
printf(“ ****n”);}
=============== 【程序7】
题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!1.程序分析:字符共有256个。不同字符,图形不一样。
2.程序源代码:
#include “stdio.h“ main(){ char a=176,b=219;printf(“%c%c%c%c%cn“,b,a,a,a,b);printf(“%c%c%c%c%cn“,a,b,a,b,a);printf(“%c%c%c%c%cn“,a,a,b,a,a);printf(“%c%c%c%c%cn“,a,b,a,b,a);printf(“%c%c%c%c%cn“,b,a,a,a,b);}
=============== 【程序8】
题目:输出9*9口诀。
1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。2.程序源代码: #include “stdio.h” main(){ int i,j,result;printf(“n”);for(i=1;i<10;i++){
for(j=1;j<10;j++)
{
result=i*j;
printf(“%d*%d=%-3d”,i,j,result);/*-3d表示左对齐,占3位*/
} } } printf(“n”);/*每一行后换行*/
===============
【程序9】
题目:要求输出国际象棋棋盘。
1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。2.程序源代码: #include“stdio.h” main(){int i,j;for(i=0;i<8;i++){for(j=0;j<8;j++)if((i+j)%2==0)printf(“%c%c”,219,219);else
printf(“ n”);} } =============== 【程序10】
题目:打印楼梯,同时在楼梯上方打印两个笑脸。
1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。2.程序源代码:
#include“stdio.h” main(){ int i,j;printf(“11n”);/*输出两个笑脸*/
} for(i=1;i<11;i++){ for(j=1;j<=i;j++)
printf(“%c%c”,219,219);} printf(“n”);
【程序5】
题目:输入三个整数x,y,z,请把这三个数由小到大输出。1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x〉y则将x与y的值进行交换,然后再用x与z进行比较,如果x〉z则将x与z的值进行交换,这样能使x最小。2.程序源代码:
main(){ int x,y,z,t;scanf(“%d%d%d”,&x,&y,&z);if(x>y){t=x;x=y;y=t;} /*交换x,y的值*/ if(x>z){t=z;z=x;x=t;}/*交换x,z的值*/ if(y>z){t=y;y=z;z=t;}/*交换z,y的值*/ printf(“small to big: %d %d %dn”,x,y,z);}
===============
【程序23】
题目:打印出如下图案(菱形)* *** ****** ******** ****** *** * 1.程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重for循环,第一层控制行,第二层控制列。2.程序源代码:
main(){
int i,j,k;for(i=0;i<=3;i++){ for(j=0;j<=2-i;j++)
printf(“ ”);for(k=0;k<=2*i;k++)
printf(“*”);printf(“n”);} for(i=0;i<=2;i++){ for(j=0;j<=i;j++)
printf(“ ”);for(k=0;k<=4-2*i;k++)
printf(“*”);printf(“n”);} }
【程序34】
题目:练习函数调用 1.程序分析: 2.程序源代码: #i nclude } void three_hellos(void){ int counter;for(counter = 1;counter <= 3;counter++)hello_world();/*调用此函数*/ } void main(void){ three_hellos();/*调用此函数*/ } =============== 【程序37】 题目:对10个数进行排序 1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。 2.程序源代码: #define N 10 main(){ int i,j,min,tem,a[N];/*input data*/ printf(“please input ten num:n”);for(i=0;i scanf(“%d”,&a[i]);} printf(“n”);for(i=0;i printf(“%5d”,a[i]);printf(“n”); /*sort ten num*/ for(i=0;i for(j=i+1;j if(a[min]>a[j]) min=j; tem=a[i]; a[i]=a[min]; a[min]=tem;} /*output data*/ printf(“After sorted n”);for(i=0;i =============== 【程序40】 题目:将一个数组逆序输出。 1.程序分析:用第一个与最后一个交换。2.程序源代码: #define N 5 main(){ int a[N]={9,6,5,4,1},i,temp;printf(“n original array:n“); for(i=0;i for(i=0;i a[i]=a[N-i-1]; a[N-i-1]=temp;} printf(“n sorted array:n“);for(i=0;i } 【程序66】 题目:输入3个数a,b,c,按大小顺序输出。 1.程序分析:利用指针方法。2.程序源代码: /*pointer*/ main(){ int n1,n2,n3;int *pointer1,*pointer2,*pointer3;printf(“please input 3 number:n1,n2,n3:”);scanf(“%d,%d,%d”,&n1,&n2,&n3);pointer1=&n1;pointer2=&n2;pointer3=&n3;if(n1>n2)swap(pointer1,pointer2);if(n1>n3)swap(pointer1,pointer3);if(n2>n3)swap(pointer2,pointer3);printf(“the sorted numbers are:%d,%d,%dn”,n1,n2,n3);} swap(p1,p2)int *p1,*p2;{int p;p=*p1;*p1=*p2;*p2=p;} =============== 【程序70】 题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。 1.程序分析: 2.程序源代码: main(){ int len;char *str[20];printf(“please input a string:n”);scanf(“%s”,str);len=length(str);printf(“the string has %d characters.”,len);} length(p)char *p;{ int n;n=0;while(*p!=' '){ n++;p++;} return n;} 【程序71】 题目:编写input()和output()函数输入,输出5个学生的数据记录。1.程序分析: 2.程序源代码: #define N 5 struct student { char num[6];char name[8];int score[4];} stu[N];input(stu)struct student stu[];{ int i,j;for(i=0;i { printf(“n please input %d of %dn”,i+1,N); printf(“num: ”); scanf(“%s”,stu[i].num); printf(“name: ”); scanf(“%s”,stu[i].name); for(j=0;j<3;j++) { printf(“score %d.”,j+1); scanf(“%d”,&stu[i].score[j]); } printf(“n”);} } print(stu)struct student stu[];{ int i,j;printf(“nNo.Name Sco1 Sco2 Sco3n”);for(i=0;i{ printf(“%-6s%-10s”,stu[i].num,stu[i].name);for(j=0;j<3;j++) printf(“%-8d”,stu[i].score[j]);printf(“n”);} } main(){ input();print();} ===================== 【程序88】 题目:读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。 1.程序分析: 2.程序源代码: main(){ } int i,a,n=1;while(n<=7){ do { scanf(“%d”,&a);} while(a<1||a>50);for(i=1;i<=a;i++) printf(“*”);printf(“n”);n++;} getch(); 【程序97】 题目:从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个#为止。1.程序分析: 2.程序源代码: #include “stdio.h” main(){ FILE *fp;char ch,filename[10];scanf(“%s”,filename);if((fp=fopen(filename,“w”))==NULL){printf(“cannot open filen”);exit(0);} ch=getchar();ch=getchar();while(ch!='#'){fputc(ch,fp);putchar(ch);ch=getchar();} fclose(fp);} =============== 【程序98】 题目:从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。输入的字符串以!结束。1.程序分析: 2.程序源代码: #include “stdio.h” main(){FILE *fp;char str[100],filename[10];int i=0;if((fp=fopen(“test”,“w”))==NULL){ printf(“cannot open the filen”);exit(0);} printf(“please input a string:n”);gets(str);while(str[i]!='!'){ if(str[i]>='a'&&str[i]<='z')str[i]=str[i]-32;fputc(str[i],fp);i++;} fclose(fp);fp=fopen(“test”,“r”);fgets(str,strlen(str)+1,fp);printf(“%sn”,str);fclose(fp);} 在C源文件当前的目录下可以看到:test的文件 =============== 【程序99】 题目:有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中。1.程序分析: 2.程序源代码: #include “stdio.h” main(){ FILE *fp;int i,j,n,ni;char c[160],t,ch;if((fp=fopen(“A”,“r”))==NULL){printf(“file A cannot be openedn”);exit(0);} printf(“n A contents are :n”);for(i=0;(ch=fgetc(fp))!=EOF;i++){c[i]=ch;putchar(c[i]);} fclose(fp);ni=i;if((fp=fopen(“B”,“r”))==NULL){printf(“file B cannot be openedn”);exit(0);} printf(“n B contents are :n”);for(i=0;(ch=fgetc(fp))!=EOF;i++){c[i]=ch;putchar(c[i]);} fclose(fp);n=i;for(i=0;ifor(j=i+1;jif(c[i]>c[j]){t=c[i];c[i]=c[j];c[j]=t;} printf(“n C file is:n”);fp=fopen(“C”,“w”);for(i=0;i{ putc(c[i],fp);putchar(c[i]);} fclose(fp);} =============== 【程序100】 题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出 平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件“stud”中。1.程序分析: 2.程序源代码: #include “stdio.h” struct student { char num[6];char name[8];int score[3];float avr;} stu[5];main(){int i,j,sum;FILE *fp;/*input*/ for(i=0;i<5;i++){ printf(“n please input No.%d score:n”,i);printf(“stuNo:”);scanf(“%s”,stu[i].num);printf(“name:”);scanf(“%s”,stu[i].name);sum=0;for(j=0;j<3;j++){ printf(“score %d.”,j+1);scanf(“%d”,&stu[i].score[j]);sum+=stu[i].score[j];} stu[i].avr=sum/3.0;} fp=fopen(“stud”,“w”);for(i=0;i<5;i++)if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)printf(“file write errorn”);fclose(fp);} 20 =============== 21 C语言课程设计任务书1 题目:学院教学信息管理系统 功能:学院教学信息管理系统,每一条记录包括一位教师的职工号、姓名、职称、性别、3门课程,教学效果综合评分。系统要求实现以下功能: 1、输入:输入每一位教师记录,将其信息写入文件中。 2、显示:显示每位教师记录。示。示。 3、排序:按职工号或教学效果综合评分进行排序,并显 4、查找:完成按姓名或课程查找教师的相关记录,并显分步实施: 1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数。 2、建立一个文件,将每位教师的相关(教学)信息写入文件中并能显示于屏幕上。 3、完成排序(按职工号、姓名、职称等)、查找等功能。要求: 1、用C语言实现程序设计; 2、利用结构体数组实现教师信息的数据结构设计; 3、系统的各个功能模块要求用函数实现; 4、界面友好(良好的人机交互)。课程设计实验报告要求: 1、预习报告:题目、课程设计任务、数据结构、程序的总体设计(算法)、模块划分。 2、实验总结报告:流程图、主要源程序代码(需打印)、测试情况及调试中问题与解决方案、小结等。 C语言课程设计任务书2 题目:酒店房间登记与计费管理系统 功能: 1、屏幕上出现一个界面,让操作员能够方便的选择所需要进行的操作,包括登记入住、查询房间的入住情况、查询当前费用、结账退房等操作。 2、对不同标准的房间实施不同的收费标准,也可以按天收费或按小时收费,可根据顾客需要在登记的入住的时候进行选择。 3、在结账退房时,根据入住的时间,计费方式和房间单价计算出总费用。分步实施: 1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数; 2、完成最低要求:建立房间列表,完成登记入住、查询房间入住情况功能。 3、进一步要求:完成计费和费用查询功能。要求: 1、用C语言实现系统; 2、系统的各个功能模块要求用函数实现; 3、界面友好(良好的人机交互),程序加必要的注释。课程设计实验报告要求: 1、预习报告:题目、课程设计任务、数据结构、程序的总体设计(算法)、模块划分。 2、实验总结报告:流程图、主要源程序代码(需打印)、测试情况及调试中问题与解决方案、小结等。 C语言课程设计任务书3 题目:学生成绩管理系统 功能:学生成绩管理系统,每个学生是一个记录,包括学号,姓名,性别,3门课程成绩。系统 要求实现以下功能: 1、信息录入:录入学生成绩信息(包括学生学号、姓名、各门课程的成绩等); 2、信息查询:输入学号,查询学生各门课程的成绩,并显示。 3、排序:按各门课程的成绩平均分进行排序,并显示。 4、信息删除与修改——输入学号,删除该学生的成绩信息。分步实施: 1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数。 2、建立一个文件,将每位学生的信息写入文件中并能显示于屏幕上。 3、完成上述信息查询(学生学号、姓名等)、排序、信息删除与修改功能。 要求: 1、用C语言实现程序设计; 2、利用结构体数组实现学生信息的数据结构设计; 3、系统的各个功能模块要求用函数的形式实现; 4、界面友好(良好的人机交互),程序加必要的注释。课程设计实验报告要求: 1、预习报告:题目、课程设计任务、数据结构、程序的总体设计(算法)、模块划分。 2、实验总结报告:流程图、主要源程序代码(需打印)、测试情况及调试中问题与解决方案、小结等。 C语言课程设计任务书4 题目:职工档案管理系统设计 功能:职工档案管理系统设计,每个职工是一条记录,包括编号,姓名,性别,出生年月,所在 部门,职称,工资级别、电话等。系统可实现以下功能: 件中。 1、输入功能:输入每一位职工记录,将其信息存入文 2、显示功能:完成全部职工记录的显示。 3、查找功能:完成按编号或姓名查找职工的相关记录,并显示。分步实施: 1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数。 2、建立一个文件,将每位职工的信息写入文件中并能显示于屏幕上。 3、完成上述查找(编号,姓名,性别等)、修改等功能。 4、进一步要求,修改记录设置密码操作。要求: 1、用C语言实现程序设计; 2、利用结构体数组实现职工信息的数据结构设计; 3、系统的各个功能模块要求用函数的形式实现; 4、界面友好(良好的人机交互),程序加必要的注释。课程设计实验报告要求: 1、预习报告:题目、课程设计任务、数据结构、程序的总体设计(算法)、模块划分。 2、实验总结报告:流程图、主要源程序代码(需打印)、测试情况及调试中问题与解决方案、小结等。 C语言课程设计任务书5 题目:学生管理系统设计 功能:学生管理系统设计,每个学生是一条记录,包括姓名、学号、性别、出生年月、专业、班级、家庭地址、宿舍号码等。系统要求实现以下功能: 1、输入功能:录入学生信息(包括学生学号、姓名、性别、出生年月、专业等); 2、显示功能:完成学生记录的显示。 3、查找功能:完成按学号或姓名查找学生的相关记录,并显示。分步实施: 1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数。 2、建立一个文件,将每位学生的信息写入文件中(人数利用宏定义设定)并能显示于屏幕上。 3、完成上述显示、查找(姓名,性别等)、修改等功能。 4、进一步要求,修改记录设置密码操作。要求: 1、用C语言实现程序设计; 2、利用结构体数组实现学生信息的数据结构设计; 3、系统的各个功能模块要求用函数的形式实现; 4、界面友好(良好的人机交互),程序加必要的注释。课程设计实验报告要求: 1、预习报告:题目、课程设计任务、数据结构、程序的总体设计(算法)、模块划分。 2、实验总结报告:流程图、主要源程序代码(需打印)、测试情况及调试中问题与解决方案、小结等。 C语言课程设计任务书6 题目:银行存取款管理设计 功能:能够输入和查询客户存款取款记录。在客户文件中,每个客户是一条记录,包括编号、客户姓名、支取密码、客户地址、客户电话、账户总金额;在存取款文件中,每次存取款是一条记录,包括编号、日期、类别、存取数目、经办人。类别分为取款和存款两种。本系统能够输入客户存款或取款记录;根据客户姓名查询存款和取款记录。分步实施: 1、初步完成总体设计,搭好框架,确定人机对话界面,确定函数个数; 2、建立一个文件,输入客户的必要信息,能对文件进行显示、输入、修订、删除等。 3、进一步要求:完成客户姓名查询存款和取款记录,并能得到每次帐户总金额。要求: 1、用C语言实现系统; 2、利用结构体数组实现信息的数据结构设计; 3、系统的各个功能模块要求用函数的形式实现; 4、界面友好(良好的人机交互),程序加必要的注释。课程设计实验报告要求: 1、预习报告:题目、课程设计任务、数据结构、程序的总体设计(算法)、模块划分。 2、实验总结报告:流程图、主要源程序代码(需打印)、测试情况及调试中问题与解决方案、小结等。 C语言课程设计任务书7 题目:院职工工资管理系统设计 功能:院职工工资管理系统应包含职工的全部信息。每个职工是一条记录,包括姓名、性别、出生年月、年龄、婚姻状况、家庭住址、职称、工资级别情况等。本系统重点进行工资管理,系统登陆后可计算职工工资总额和平均工资,可按工资进行排序,并能够找出工资级别相同的职工名单。分步实施: 1、初步完成总体设计,搭好框架,确定人机对话界面,确定函数个数; 2、建立一个文件,将每位职工的信息写入文件中并能显示于屏幕上。 3、计算职工工资总额和平均工资,可按工资进行排序,并能够找出工资级别相同的职工名单。要求: 1、用C语言实现程序设计; 2、利用结构体数组实现职工信息的数据结构设计; 3、系统的各个功能模块要求用函数的形式实现; 4、界面友好(良好的人机交互),程序加必要的注释。课程设计实验报告要求: 1、预习报告:题目、课程设计任务、数据结构、程序的总体设计(算法)、模块划分。 2、实验总结报告:流程图、主要源程序代码(需打印)、测试情况及调试中问题与解决方案、小结等。 C语言课程设计任务书8 题目:通讯录管理系统 功能:录入联系人信息(包括姓名、电话号码、地址、备注等);通讯录管理系统要求实现以下功能: 1、输入每一位联系人记录,将其信息存入文件中。 2、查询所有联系人的信息,并按可选的自定义规则进行排序; 3、记录修改,将修改的记录信息保存于文件中。分步实施: 1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数。 2、建立一个文件,将每条记录信息写入文件中并能显示于屏幕上。 3、完成上述查询(姓名、电话号码等)、信息删除与修改功能。 4、进一步要求,修改记录设置密码操作。要求: 1、用C语言实现程序设计; 2、利用结构体数组实现联系人信息的数据结构设计; 3、系统的各个功能模块要求用函数的形式实现; 4、界面友好(良好的人机交互),程序加必要的注释。课程设计实验报告要求: 1、预习报告:题目、课程设计任务、数据结构、程序的总体设计(算法)、模块划分。 2、实验总结报告:流程图、主要源程序代码(需打印)、测试情况及调试中问题与解决方案、小结等。 C语言课程设计任务书9 题目:计算机辅助教学(CAI)软件开发:教小学生学算术。 功能:可做个位数,十位数的加,减,乘和除,减法不能得负数,除法要除尽,屏幕上随机出现两个数,提示小学生给出答案,答错了要提示重新输入,直到答对为止。要统计给分,且累计,够一定分数后可进级,即从个位进到十位。同样,也可降级。(rand(),#include 1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数; 2、完成基本要求:能答对个位数的加法和减法,并有统计功能,即一次答对的成功率为 90%上后可晋级,做十位数的加减; 3、进一步要求:完成乘法和除法的学习,也有晋级功能。要求: 1、用C语言实现程序设计; 2、系统的各个功能模块要求用函数的形式实现; 3、界面友好(良好的人机交互),程序加必要的注释。课程设计实验报告要求: 1、预习报告:题目、课程设计任务、数据结构、程序的总体设计(算法)、模块划分。 2、实验总结报告:流程图、主要源程序代码(需打印)、测试情况及调试中问题与解决方案、小结等。 C语言课程设计任务书10 题目:学生考勤系统设计 功能:学生考勤系统应包含各班学生的全部信息。每个学生是一条记录,包括姓名、性别、学号、出勤情况等。本系统可模拟考勤过程,记录考勤结果,并能够在课程结束后按照设定的考勤评分标准自动给出每个学生的考勤分数。分步实施: 1、初步完成总体设计,搭好框架,确定人机对话界面,确定函数个数; 2、建立一个文件,将每条记录信息写入文件中并能显示于屏幕上 3、完成上述添加(出勤情况)、查找(学号,姓名,性别等)、修改等功能。 4、进一步要求:自动给出每个学生的考勤分数 要求: 1、用C语言实现程序设计; 2、利用结构体数组实现信息的数据结构设计; 3、系统的各个功能模块要求用函数的形式实现; 4、界面友好(良好的人机交互),程序加必要的注释。课程设计实验报告要求: 1、预习报告:题目、课程设计任务、数据结构、程序的总体设计(算法)、模块划分。 2、实验总结报告:流程图、主要源程序代码(需打印)、测试情况及调试中问题与解决方案、小结等。 C语言课程设计任务书11 题目:学生选修课程系统设计 功能:假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息。试设计一选修课程系统。分步实施: 1、初步完成总体设计,搭好框架,确定人机对话界面,确定函数个数; 2、建立一个文件,将每条记录信息写入文件中并能显示于屏幕上 3、完成上述添加、查找(课程编号、课程名称、课程性质等)、修改等功能。 4、进一步要求:学生选修课程(可选项)要求: 1、用C语言实现程序设计; 2、利用结构体数组实现信息的数据结构设计; 3、系统的各个功能模块要求用函数的形式实现; 4、界面友好(良好的人机交互),程序加必要的注释。课程设计实验报告要求: 1、预习报告:题目、课程设计任务、数据结构、程序的总体设计(算法)、模块划分。 2、实验总结报告:流程图、主要源程序代码(需打印)、测试情况及调试中问题与解决方案、小结等。 C语言课程设计任务书12 题目:商品订购系统设计。 功能:屏幕上出现一个界面,让顾客或输入商品名称,或商品型号,或选择列表进而输入商品编号都可以,如查到所选商品,则列出商品编号、商品名称、商品型号、商品价格、商品产地、库存数量和已订购数量;然后给出选购流程:所选商品编号—列出对应商品的信息—要求顾客输入邮寄地址信息—确认订购,是否继续选购其它商品,列出所有选订商品,再次确认订购。建立两个文件,分别存放商品信息与订购信息。分步实施: 1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数; 2、完成最低要求:建立一个小系统,包括10种产品能供顾客选择。 3、进一步要求:完成全部功能的系统。要求: 1、用C语言实现程序设计; 2、利用结构体数组实现信息的数据结构设计; 3、系统的各个功能模块要求用函数的形式实现; 4、界面友好(良好的人机交互),程序加必要的注释。课程设计实验报告要求: 1、预习报告:题目、课程设计任务、数据结构、程序的总体设计(算法)、模块划分。 2、实验总结报告:流程图、主要源程序代码(需打印)、测试情况及调试中问题与解决方案、小结等。 C语言课程设计任务书13 题目:设备管理系统设计 功能:设备管理系统应包含各种设备的全部信息,每台设备为一条记录(同一时间同一部门购买的若干台相同设备可作为1条记录),包括设备号、设备名称、领用人、所属部门、数量、购买时间、价格等。能够显示和统计各种设备的信息。分步实施: 1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数; 2、建立一个文件,将每条记录信息写入文件中并能显示于屏幕上 3、能对文件进行补充、修订、删除,能统计所有设备的总价值。 4、进一步要求:完成设备按种类、按所属部门进行统计。要求: 1、用C语言实现程序设计; 2、利用结构体数组实现信息的数据结构设计; 3、系统的各个功能模块要求用函数的形式实现; 4、界面友好(良好的人机交互),程序加必要的注释。课程设计实验报告要求: 1、预习报告:题目、课程设计任务、数据结构、程序的总体设计(算法)、模块划分。 2、实验总结报告:流程图、主要源程序代码(需打印)、测试情况及调试中问题与解决方案、小结等。 C语言课程设计任务书14 题目:学生计算机机房管理系统设计 功能:该计算机房共有100台计算机,分为20排,每排50台。管理系统应包含每台计算机一周内的使用全部信息,包括计算机序号、配置、位置、状态、使用情况的历史记录(包括使用者姓名、学号、使用时间段)等。本系统可以模拟学生上机和离开的登记过程,查询机房计算机的使用情况。分步实施: 1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数; 2、建立一个文件,将相关的信息写入文件中并能显示于屏幕上; 3、能实现学生上机的登记过程模拟; 4、进一步要求:查询机房计算机的使用情况。要求: 1、用C语言实现程序设计; 2、利用结构体数组实现信息的数据结构设计; 3、系统的各个功能模块要求用函数的形式实现; 4、界面友好(良好的人机交互),程序加必要的注释。课程设计实验报告要求: 1、预习报告:题目、课程设计任务、数据结构、程序的总体设计(算法)、模块划分。 2、实验总结报告:流程图、主要源程序代码(需打印)、测试情况及调试中问题与解决方案、小结等。 C语言课程设计任务书15 题目:商店销售管理系统。 功能:屏幕上出现一个界面,让售货员输入商品编号或者商品名称,可以进货,进货后商品库存同时增加。顾客买走商品后,售货员输入商品编号或者商品名称,可以生成销售清单,统计本次销售总的价钱,同时库存数量相应减少。完成前面的基本功能后,还可以完成增加新的商品或删除不需要的商品的功能,以及每天销售统计功能等。分步实施: 1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数; 2、建立一个文件,将相关的信息写入文件中并能显示于屏幕上; 3、能按商品编号进货和销售; 4、进一步要求:完成增加新的商品或删除不需要的商品的功能,以及每天销售统计功能等。 要求: 1、用C语言实现程序设计; 2、利用结构体数组实现信息的数据结构设计; 3、系统的各个功能模块要求用函数的形式实现; 4、界面友好(良好的人机交互),程序加必要的注释。课程设计实验报告要求: 1、预习报告:题目、课程设计任务、数据结构、程序的总体设计(算法)、模块划分。 2、实验总结报告:流程图、主要源程序代码(需打印)、测试情况及调试中问题与解决方案、小结等。 C语言课程设计任务书16 题目:计算机辅助教学(CAI)软件开发:教小学生学英语。 功能:屏幕上随机出现一个汉语单词,英语单词,汉语词组,英语词组或一短句提示小学生给出相应答案,答错了要提示要求重新输入,直到答对为止。要统计给分,且累计,够一定分数后可进级,即从单词到词组,从词组到短句。同样,也可降级。起步阶段可各选30个,软件可扩充,即扩大词库的容量。 (rand(),#include 1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数; 2、完成最低要求:能教单词,并有统计功能,即一次答对的成功率为90%以上后可晋级; 3、进一步要求:完成词组和短语的问答,也有晋级功能。要求: 1、用C语言实现程序设计; 2、利用结构体数组实现信息的数据结构设计; 3、系统的各个功能模块要求用函数的形式实现; 释。 4、界面友好(良好的人机交互),程序加必要的注课程设计实验报告要求: 1、预习报告:题目、课程设计任务、数据结构、程序的总体设计(算法)、模块划分。 2、实验总结报告:流程图、主要源程序代码(需打印)、测试情况及调试中问题与解决方案、小结等。 C语言课程设计任务书17 题目:飞机订票系统设计 功能:本飞机共有80个坐位,分20排,每排4个位子。编号为A,B,C,D。如10D表示10排D座。A和D靠窗,19到20排为吸烟区。本系统可让乘客自己选座号和区域,直到乘客满意为止,无法满足的话,只能改乘另一个航班。定上票的乘客需给出姓名和身份证号,最后要打印出乘客清单。分步实施: 1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数; 2、完成最低要求:建立一个小系统,包括5排座位,两个区域,能供乘客选择; 3、进一步要求:完成全部功能的系统。要求: 1、用C语言实现程序设计; 2、利用结构体数组实现信息的数据结构设计; 3、系统的各个功能模块要求用函数的形式实现; 释。 4、界面友好(良好的人机交互),程序加必要的注课程设计实验报告要求: 1、预习报告:题目、课程设计任务、数据结构、程序的总体设计(算法)、模块划分。 2、实验总结报告:流程图、主要源程序代码(需打印)、测试情况及调试中问题与解决方案、小结等。 C语言课程设计任务书18 题目:高速公路计费系统设计 功能:在某高速公路出口收费处,对三种类型的车辆计费,大型车每公里0。5元,中型车每公里0。4元,小型车每公里0。3元,来车验条,乘公里数即得该收的款项。在交班时要统计出总数。 分步实施: 1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数; 2、完成最低要求:建立一个只有三个入口的计费系统,并能进行统计计算,打印出报表; 3、进一步要求:完成任意多个入口的通用系统。要求: 1、用C语言实现程序设计; 2、利用结构体数组实现信息的数据结构设计; 3、系统的各个功能模块要求用函数的形式实现; 释。 4、界面友好(良好的人机交互),程序加必要的注课程设计实验报告要求: 1、预习报告:题目、课程设计任务、数据结构、程序的总体设计(算法)、模块划分。 2、实验总结报告:流程图、主要源程序代码(需打印)、测试情况及调试中问题与解决方案、小结等。 # include int main(){struct student *p,*pt,*head;int i,j,sum,average,length,inum,flag=1;int find=0;while(flag==1){printf(“input length of list(<10):”);flag=0;} for(i=0;i for(i=0;i<10;i++){sum=0;for(j=0;j<3;j++)sum+=p->score[j];p->aver=sum/3;average+=p->aver;} printf(“input num:”);scanf(“%d”,&inum);pt=head;p=pt;if(pt->num==inum){p=pt->next;head=pt=p;find=1;} else pt=pt->next;while(pt!=NULL){if(pt->num==inum){p->next=pt->next;find=1;} else p=pt;pt=pt->next;} if(!find)printf(“no find %d.”,inum);p=head;printf(“nNO.name sex scoren”);while(p!=NULL){printf(“%4s%8s%6s%9sn”,p->num,p->name,p->sex,p->score);p=p->next;} return 0;}第五篇:C语言设计