起点作文网

二级c语言程序设计(整理2篇)

时间: 2024-09-10 栏目:办公范文

二级c语言程序设计范文篇1

关键词:C语言;教学改革;实践教育;程序设计;认知结构

0、引言

C语言课程已经成为工科类大学生必学的基础课程,C语言学习的好坏直接影响后续其他课程的学习效果。在C语言课程的教学活动中,许多教师和学生都认为计算机语言课程的教学方法相对比较单调和死板,无论教材编写还是教师上课,一般都按照“先介绍编程语言基本语法、数据类型、运算符和表达式等基本知识,然后讲解程序结构等编程规则及例题,最后上机实验”等环节组织教学内容。C语言课程作为基础课程,一般都安排在大一上学期。由于刚进大学校园,大学生对一切都还在适应过程中,在中学虽然学过一些信息技术相关知识,但对计算机语言的理解和应用还很肤浅,因此在开始学习C语言时比较茫然。从认知结构理论看,学生需要借助自然语言知识建立相关学科知识结构并理解相关知识点。

另外,C语言程序设计课程很多时候是作为学习其他高级语言和其他专业实践课程如开发计算机辅助设计软件的基础课程而开设的。从国际上流行的构思、设计、实现和运作(CDIO:Conceive,Design,Implement,Operate)工程教育教育理念看,能否学好并应用好c语言是其他课程“实现、运作”的基础。虽然已有学者应用CDIO理念探讨c语言教学改革,但还没有融合认知结构,结合课程体系加以探讨和分析。

笔者首先分析融合认知结构的C语言教学思想,进而研究融合CDIO教育理念的C语言教学方法,最后选择分析分形图形、语音信号分析、物理课程的海市蜃楼虚拟实验演示等软件包作为c语言课程的综合开发范例,吸引学生关注c语言的有趣应用,融会贯通各知识点,使得学生不仅通过虚拟实验加深对知识的感性理解,而且通过构建问题情境激发学习兴趣和积极性。同时,从软件开发者角度理解实现虚拟实验的机理和方法,使学生从“学知识”状态转变到理解知识的“教知识”状态,提高理解和应用知识的能力,进而提高对计算机语言的理解能力,激发学习后续课程的兴趣,培养良好的自主学习习惯。

1、融合认知结构的c语言教学思想

认知结构,就是学习者头脑里的知识结构。知识结构是某一学科领域的基本观念,包括一般原理以及对应的学习态度和方法。认知结构理论学派包括瑞士的J·皮亚杰、美国的J·S·布鲁纳和D·P·奥萨贝尔等著名心理学家,他们认为学生掌握学科的知识结构有助于更容易地理解学科的基本原理、提高记忆的效果、促进学习迁移、缩小“高级”知识和“初级”知识之间的差距。个人的认知结构是指通过学习过程中的同化作用,不断扩大并改进所积累的知识,学习者的认知结构一旦建立,就为学习其他新知识奠定了基础。知识结构与认知结构是构建有效课堂教学的两个重要因素,C语言教学也应充分考虑这两个因素。

学习C语言要借助学习自然语言的经验和方法,学生应该像学习自然语言一样学习c语言,这是因为C语言同自然语言一样,是程序员与计算机、计算机与计算机交流的工具。学好c语言要分两个层次:第一个层次是学会应用c语言进行基本编程;第二个层次是应用c语言编程解决工程和科研项目中的实际问题。第二个层次已经不是简单学会C语言的问题,而涉及算法、数据结构、操作系统等其他专业课程知识。编好大型软件如同写好一部小说。仅掌握词汇、语法等知识是不够的,还需要丰富的生活阅历,阅读大量与小说内容相关的文献资料。

计算机指令要求准确执行,并且每一条指令的结果都可以预知,因此与计算机通信的c语言与自然语言相比要简单得多。C语言和自然语言的一般学习步骤及特点见表1。

学习C语言的最终目的是应用c语言编写程序,尤其是大型应用程序,因此最终要从软件工程角度认识C语言课程的地位和作用,根据大学课程体系和知识体系加以分析。软件为各个学科服务,具有很强的渗透性,可以催生许多新学科和新产业,而软件工程知识具有非常强的学科交叉应用性和工程实践性,因此我们必须在C语言教学过程中,帮助学生建立软件“工程”的思想和理念。另一方面,不同年级的专业知识结构不一样,因此在一年级要培养学生学习c语言的兴趣,明白c语言能干什么,各门课程的虚拟实验软件或计算机辅助设计软件就是最好的“C语言应用的佐证和范例”;在学生二年级开始专业课学习后,我们可帮助学生应用C语言开发虚拟实验软件包,将一年级时的用户体验和获取知识的感受转化为软件开发的用户需求,应用所学知识满足和实现用户需求;学生在三、四年级,除了接受项目导师指导外,还承担起指导低年级学生的任务,更深层次体会c语言各知识点要求,从而更好地理解和应用计算机程序语言,提高抽象分析和解决问题能力,完成软件工程师职业素质的培养。c语言在软件开发应用中认知深化示意图如图1所示,描述学习和应用C语言的过程,即从虚拟实验到应用C语言实现虚拟实验,以此过程培养软件工程师的职业素质。

2、融合CDIO教育理念的c语言教学

针对工程教育问题,麻省理工学院和瑞典皇家工学院等4所大学从2000年起开始探索研究,经过4年实践创立了CDIO工程教育教育模式。CDIO以产品研发到产品运行的生命周期为载体,让学生主动参与实践,有机融合所学知识和体悟“工程”理念,因此我们将CDIO教育理念融入C语言教学过程中,要求从事c语言教学课程的教师,以实现虚拟实验软件产品研发及运行为载体,组建实验项目团队,将学生从各门课程的计算机虚拟实验感官实践,吸引到应用c语言开发各门功课的虚拟实验软件包上。

在传统c语言程序设计课程的教学过程中,我们基本上是按照教材编排的章节次序讲授,先介绍定义,然后讲解指令语法,最后阐述不完整的应用例程。这样的教学只是在堆积概念,使学生难于理解c语言的语法特性和应用价值,因此我们应该像学习自然语言一样设计应用场景,应用语言实践;从CDIO理念出发梳理每一章节主要知识点,构建一个有趣、短小但功能完整的c语言实验案例,见表2。

c语言实验案例可应用在每一节课的教学中,既包含当天课程所要学的新知识,又大量使用前面课程中已学过的指令,构成“构思、设计、实现和运作”理念的实际应用环节;从而提高学生学习主动性和兴趣,让学生在完成具体实验范例的同时巩固旧知识并学习新知识,感受程序设计的乐趣,增强学习c语言的自信心。

3、融合认知结构和CDIO教育理念的c语言教学

综上所述,融合认知结构和CDIO教学理念的C语言教学模式包括3个核心要素。

(1)指导教师:从认知结构的角度引导学生,督查学生对知识结构的掌握情况,解答疑难问题。

(2)项目团队:不同年级或不同知识水平的学生扮演不同角色,实现C语言应用能力的升华。

(3)实验案例软件开发:作为CDIO工程教学的载体,从学生熟悉的背景知识点出发,让学生以学习者、软件使用者和软件开发者等身份,多角度体会并掌握c语言程序设计知识点。

融合认知结构的C语言实验案例的CDIO标准分析见表3。

在融合认知结构和CDIO教学理念教学改革的过程中,我们也改革了课程考核模式。CDIO标准要求以项目案例为载体,在每个项目的构思、设计、实施、运作等14个层面都涉及教学关键知识点,围绕这些知识点对学生的学习效果进行评估。基于这一思想,我们改变以期末卷面考试为主要评价依据的考试方式,而是综合c语言实验案例评估学生的最终学习成绩,将考核分为平时成绩和期末成绩两部分,各占50%。第一部分考核是从表2前9个实验案例中挑选3个得分最高成绩的平均成绩,作为学生的平时成绩;第二部分考核是学生自行选题或从教师提供的题库选择、设计并实现一个综合型实际案例,覆盖不少于5个知识点,该成绩作为学生的期末成绩。

4、虚拟实验案例分析

虚拟实验通过虚拟软件提供友好的人机界面,结合视、听功能,图文并茂,信息量大,同时具有一定的娱乐性。学生通过自主操纵虚拟设备进行实验,不会损坏任何仪器设备,从而能够有效激发对基础课实验的兴趣,充分调动动手参与实验的积极性。要实现虚拟实验软件功能,学生不仅要掌握C语言所有知识点,还需要学习图形人机界面编程知识、更复杂的编程技术和实现技巧,才能实现用户所需的人机界面,从而进一步感受学无止境的境界。我们由此选择一个与其他课程有关的虚拟实验软件包开发作为C语言课程最后考核实验,如分形图形、语音信号分析、折射定律演示等。这些虚拟软件包开发不仅要用到c语言大部分知识点,而且为了提供友好的人机界面,还需学生学习图形界面编程知识。我们以开发折射定律演示软件包为例,分析该融合认知结构和CDIO理念的演示软件包所涉及的知识点。

折射定律是中学物理中的知识,对于学生来说比较熟。我们首先要求c语言学习者从中学生(用户)的角度,回忆当时学习折射定律时的困惑,如如何能够更好地理解折射定律,选择什么现象来演示软件以达到较好的教学效果等。最后,我们选择海市蜃偻现象作为折射定律演示软件的开始。海市蜃楼虚拟实验示意图和实践要素分别如图2和图3所示。

为了增强虚拟演示实验的趣味性,参与虚拟实践的学生需从学习者角度思考如何设计虚拟演示实验中的情节,使其有发生发展的动态过程,引出海市蜃楼这一自然现象,从而引出折射定律知识。学生可通过构造故事情节,形成趣味性的动态演示过程,如“走在沙漠中的人,会看到远处物体的倒景仿佛是从水面反射出来,从而易被这种景象所迷惑,以为前方有水源而奔向前去,但总是可望而不可及。”在确定演示场景后,进而从程序开发者角度进行讨论,利用c语言知识点实现每一部分软件功能,如利用数据表示知识点实现基本场景参数数据的输入和保存、利用流程控制知识点实现光线角度的变化判定等。由于演示软件涉及的一切知识点最终都要反映在虚拟实验软件产品中,因此学生作为软件开发者也必须掌握这些知识,才能将其最终反映在实验场景中。这不仅加深学生对折射定律知识的理解和应用,而且让学生体会到c语言在开发应用软件包中的作用,增加与软件工程有关的理论知识应用经验。

二级c语言程序设计范文篇2

关键词:C、C#、Java;面向对象程序设计;NET环境

Abstract:C-sharpisonekindofhigh-levelprogramminglanguagewhichMicrosoftCorporationissued,isMicrosoftCorporation'snewestachievement.Fromthetimesequence,AppearswhatmostearlyisC,thenisC++,finallyisC-sharp.Ciscompletelytheprocedure-orientedtheprogramminglanguage,C-sharpistheJAVAsuperversion,C-sharpiscompletelyobject-oriented.ThispaperhasmadethesimpleelaborationtobetweenCandtheC-sharprelationandthedifference.

Keywords:C;C-sharp;JAVA;object-orientedprogramming;.NETenvironmen

C#(读作“C-sharp”)是微软公司发布的一种面向对象的、运行于.NETFramework环境之上的高级程序设计语言。其在PDC上登台亮相,是微软公司研究员AndersHejlsberg的最新成果。很多人会提出这样的一个问题,那就是C与C#有无区别呢?答案是肯定的,那二者的区别又在哪里呢,说到二者的区别,就必须先谈谈二者之间的联系。

1C与C#的联系

有一种有趣的说法“C添两个+号,就是C++再添加两个+号,就成了c#了(四个+就成了#)”,还有一种说法“C是爷爷,C++是爸爸,C#是孙子”,从这些形象的比喻中,我们应该能体会到从C到C#的变化过程。

从时间顺序上说,最早出现的是C,然后是C++,最后是C#。C++是为了解决软件危机而引入面向对象的概念,C#是为了实现平台统一和JAVA争夺市场下的产物。从性能上说,C的效率最高,C++次之,C#最低。C是完全面向过程的结构化编程语言,它的特点是语言体积小、效率高、语言灵活,给程序的限制小,而且可以方便地对低层进行操作,所以它非常适合于开发操作系统、驱动程序,嵌入式等对速度要求较高的程序。C++是向下完全兼容C的,C++与C相比最显著的变化就是增加了面向对象的成分,也就是增加了类的概念,因为它的增加使软件开发可以比较容易地描述人类的思维,使得软件的开发和维护变得相对简单,直接降低了软件的成本,但因为C++是面向对象的语言,这本身就制约它的速度,所以C++适合开发那些大型项目,现代的大部分语言都或多或少的借鉴了C++和C的某些特性。C#被包括在.NET平台下,是一个面向对象、面向网络、面向组件的语言,有很多地方与JAVA非常相似,擅长于开发网络方面的程序。因此,更确切地说,C#是一个需.NET平台支持的开发语言,单纯看C#没有意义,需要了解.NET平台的开发知识。

从编译角度看,C/C++编译生成目标文件都是可被CPU直接理解的机器码,而C#编译后生成的是MSIL(MicrosoftIntermediateLanguage),这种语言不能直接被CPU执行,而是依靠.NETframework翻译(Just-in-timeCompiling)成opcode后再送到CPU执行的。因此,这也是上面为什么说C#运行效率最低的缘故。(平均意义上的效率低,不是绝对的)。

C#可认为是C的升级加强版。C是一种优良的面向过程的程序设计语言,而且得到了普遍的推广。但是随着面向对象编程思想的兴起,C已经不能满足要求,因此继而出现了C++、Java、C#等。C#是Microsoft公司设计的一种编程语言。C#和Java都是在语法上借用了C的一些形式而已。跟C/C++没有多少联系了。C#松散地基于C/C++,并且有很多方面和Java类似。Microsoft是这样描述C#的:“C#是从C和C++派生来的一种简单、现代、面向对象和类型安全的编程语言。C#主要是从C/C++编程语言家族移植过来的,因此,C和C++的程序员会马上熟悉它。C#试图结合VisualBasic的快速开发能力和C++的强大灵活的能力。”

2C与C#的区别

了解了C与C#之间的联系,我们就可以讨论一下二者的区别了。C是一种面向过程的程序设计语言,而C#是一种面向对象的程序设计语言。二者的区别体现在很多方面,接下来就分别对它们各自的特点做个描述,从中大家可体会它们之间的不同之处。

2.1关于C

C是面向过程编程的语言,主要用来编写操作系统、单片机程序、底层操作软件(与硬件关系较大的),它适合作为系统描述语言,即可用来编写系统软件,也可用来编写应用软件。虽然语法相对繁琐,但对硬件的底层编程和对内存的管理的灵活性方面C是其他高级语言所不可及的。

C是结构化编程的典型代表,其用作程序开发时主要是结构化模块,函数的应用和编程。在其原来结构化开发的基础上增加类,就变成了C++,所以可以说C++是带类的C语言。C语言的应用非常广泛,UINX系统中90%的代码是用C语言开发的,其余是汇编等。无论是windows还是Linux及Uinx以及MAC等操作系统,都可用C来开发程序。

C的不足之处就是:C非常的灵活,高级的不易掌握,据说微软培养一名C程序员需要2年的时间。另外,如果单用C语言开发视窗系统,不用C++是很困难的。

2.2关于C#

C#是从C/C++演化而来的类JAVA的语言,完全面向对象(大家常说的VB、Delphi只是基于对象)。C#是专门针对在.NETFramework上开发应用程序所设计的新程序语言,C#有点类似C++,或者说更像JAVA,因此它有着易用、弹性大的特点,不但提供完整的面向对象支持,在程序语法的执行效率上也比VisualBasic快,所以说C#是为.NET平台量身定做也不为过。

C#程序设计语言学习容易,内部封装了巨量的类库,用户可以直接拿来使用,无论用它开发win程序还是web程序,都十分方便,里有强大的IDE环境vs.net,这是比JAVA好的特点之一。C#代表了编程语言的发展方向,有资料称微软技术专家认定下一代操作系统的80%代码都是用C#来写。

在C#里面基本上放弃了C的指针。语法基本没有区别,个人感觉首先C#不必对指针进行太多的研究,然后是可移植性等,其他的区别相当大,可以说不是一个方向的。

C#与C的语法基本没有区别,但稍有不同,下面就举个例子说明一下——分别在C和C#中声明数组:

intarray1[5];//在C中声明一维数组

int[]array1=newint[5];//在C#中声明一维数组

intarray2[3][4];//在C中声明二维数组

int[,]array2=newint[3,4];//在C#中声明二维数组

int[][]array3=newint[3][];//在C#中声明不规则数组

可见,在C#中声明数组的方式和C中的声明方式是不一样的,在C#中声明数组时,方括号[]必须跟在类型后面,而不是标识符后面,若将[]放在标识符后是不合法的语法,另一细节是,C#中数组的大小不是其类型的一部分,而在C语言中它却是数组类型的一部分,C#还允许建立不规则数组。

    【办公范文】栏目
  • 上一篇:贸易历史论文(收集5篇)
  • 下一篇:案例分析法(收集3篇)
  • 相关文章

    推荐文章

    相关栏目