c语言程序设计实例范文

时间:2023-03-27 18:57:51

导语:如何才能写好一篇c语言程序设计实例,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。

c语言程序设计实例

篇1

关键词: C语言程序设计; 案例式教学; 计算思维; 能力

中图分类号:G642 文献标志码:A 文章编号:1006-8228(2013)01-55-02

Study and practice of case teaching of C language programming

Xiong Qijun, Ning Bin, Gu Qiong

(College of mathematics & Computer Science Hubei University of Arts and Science, Xiangyang, Hubei 441053, China)

Abstract: A feasible project of case teaching is put forward for C language programming. Its application in teaching is illustrated from various aspects. The result shows that it plays a positive role in improving the students' programming ability, computational thinking ability and creative ability.

Key words: C language programming; case teaching; computational thinking; ability

0 引言

“C语言程序设计”课程是计算机及相关专业学生进入大学所学习的第一门专业基础课程。教学实践证明,该门课程对引领学生进入编程世界、掌握基本概念和原理、产生编程兴趣和爱好、完成从传统学科的思维方式向计算思维方式的转变、培养编程意识、形成编程风格、提高编程能力等,起着决定性的作用。因此,加强对C语言程序设计课程的教学与研究至关重要。

我校自2008年提出“211”人才培养模式以来,对教学的研究与改革如火如荼,秉持理论够用,重在实践的原则,开展教学研究及实践。针对C语言程序设计课程的教学,笔者曾提出了“四期六段教学模式”[1]、“多元教学模式”[2]等,有力地推动着教学的研究和改革。

1 案例教学法基本思想及特点

目前,案例教学被广泛应用于医学、法学和管理学等学科的教学之中。案例教学模式是一种互动式的教学方法,以案例分析为基础,解决问题为主线, 教学内容围绕案例的讨论、分析逐步展开,通过对案例的剖析,激发学生的求知欲,调动学生的积极性,使学生主动地思考,让学生充分讨论并发表各自的见解,教师适时引导和评判,最后推导出结论[3]。案例是实现案例教学的前提和基础,教学案例并不是简单的举例,不仅要求案例所涉及的知识点要丰富,并且要求案例具有针对性、系统性、可实践性和启发性。

由此可见,比起简单的说教,将案例式教学引入程序设计语言的教学之中,可以起到示范、模仿、思考、启发、应用、拓展的作用。

2 案例教学法在C语言教学中的应用

案例教学的一般过程是“提出案例-案例分析-要点讲解-知识点导入-模仿-应用-拓展”。

2.1 通过案例上好第一次课

C语言教材的第一章是C语言概述,主要讲述其发展历史、特点、应用领域、程序结构、上机操作步骤等。在讲授这部分内容时,不需要按部就班,因为计算机语言的发展历史、特点是纯文字的、抽象的、枯燥的,即使演讲得天花乱坠,在现阶段也是不能被学生所理解的,还可能让学生产生厌恶、畏惧的情绪。

第一节课就通过案例直接切入主题:让学生了解计算机解题的步骤、程序的基本组成和框架。

通过简单的算术运算导入计算机如何解题。譬如计算圆的面积。先用口头语言或文字进行描述:先需要给定圆周率、指定半径;然后才是根据固定的计算公式进行计算;最后是显示结果。这种一目了然的计算步骤,既展示了解题的算法,又体现了顺序程序的基本结构,符合人的思维习惯,是容易被理解和接受的,在此基础上,现场敲入代码,添加头文件、主函数,再进行编译和运行。以这个实例为基础,再去认识常量、变量、输入输出函数、主函数、语句等。这样,围绕一个简单的例子,既演示了解题算法、也讲述了程序的基本框架。上好第一节课,尽早将学生引入编程世界、尽早让学生开始模仿编程、尽早让学生建立程序框架的概念是可行的,也是必须的。

2.2 通过案例完成教学内容取舍和组合

以教材和教学内容为基础,对教学内容进行适当的取舍和组合,起到降低难度、分散难点的作用。

⑴ 单纯的语法教学向实用型教学转变。C语言的语法规则繁多且复杂,初学者很难理解、记忆、明晰和掌握。在讲述时可以化繁为简,只讲授最简洁、常用的格式,且嵌入到实际的例子之中,而不是单独去说教。譬如“输入输出的格式控制”,在教学中追求简单和实用,暂时剔除复杂和灵活方面的内容。即化语法教学向实用化教学方向转变。

⑵ 及早引入函数的概念和使用简单的函数。将库函数、自定义函数与数学上的函数进行类比,譬如“求平方根的函数sqrt”,明晰使用函数的原因和目标,再循序渐进地讲述函数的名称、参数和返回值等专业术语。

⑶ 及早引入指针和地址的概念。指针既是C语言的难点,也是其亮点,更是重点,及早建立指针和地址的概念和关系,了解指针最基本的用法,加强练习分散难点[4]。

⑷ 循环结构的程序设计是教学的重点和难点,必须列举大量的案例,花大量的时间进行讲授和练习。在讲授和练习过程中,务必采用手工执行循环体的方式,写下每次执行时循环变量、中间变量的结果,将循环体执行3到5次,循环体的功能自然能清晰明了。在这项技能掌握熟练之后,再讲述单步跟踪调试。学习过程中切忌“只动眼不动手”。攻克了循环结构,特别是多重循环这个难关,后续的函数、数组的教学就简单多了。

2.3 通过案例逐步建立计算思维的思想

求和、乘积,是讲述循环时的常例,求和时一般设置和的初值为0,乘积初值为1。必须将这个基本规律传授给学生,并加以灵活使用。

计算机解题的算法虽然来源于数学,但更是数学知识应用的升华。

例如:如何将一个二进制数字串转化成十进制数。可以这样引入:一个5位十进制整数12048如何用数学式子表示?数学上可以这样写:1*104+2*103+0*102+4*101+8*100,这要进行多少次乘法和加法(禁止使用pow指数函数进行运算);如果写成(((1*10+2)*10+0)*10+4)*10+8,需要进行多少次乘法和加法,谁的效率更高呢?由此再过渡到使用数组实现一个二进制数字串转化成十进制数。

在这个案例中,并没有高深的数学知识,只有思维的转变。然而,形成计算思维是一个长期引导、积累、思索、实践的过程,不能操之过急。

2.4 通过案例建立知识的关联

求最值(最大值、最小值、次大值、次小值)的算法,从讲授选择结构时就可以开始灌输和培养。从2个数、3个数求最值,到数组求最值,到选择排序,都使用了这样的思想——“将左手中握着的最值与右手中的一个个数进行比较、替换”,可见,知识之间存在强烈的内在联系。早早地灌输求最值的思想,为讲授后续算法做铺垫。

2.5 通过案例发现规律拓展应用

在讲述循环结构的程序设计时,通过求1+2+3+…+n的值,可以过渡到求1+3+5+…的值,再过渡到求1-3+5-7+…的值,过渡到求1+(1+2)+(1+2+3)+…的值;从求1+1/2+1/3+…的值,过渡到求1+1/2+2/3+3/5+…的值……。通过举例,让学生学会观察和分析,寻找项与项之间的关系和规律,学会观察、思考、应用,最终达到举一反三的效果。

2.6 通过精选案例收获多重效果

精选案例,注重案例的实用性、趣味性、综合性,能达到立竿见影、事半功倍的教学效果。

譬如:在讲述关系运算、逻辑运算时,列举的例子通常是简单的关系运算或者关系运算的逻辑组合,虽然容易理解,但缺乏趣味性,难以引人入胜。我们可以引入一些推理题,如“谁做了好人好事”、“谁是罪犯”[5]。通过这样的例子,既讲授了基本的概念和原理,又列举了知识的应用领域,极具实用性、趣味性、可引起学生的共鸣,自然能收到良好的教学效果。

3 培养能力综合考核

为了提高学生对程序的编辑能力,必须要求熟练计算机基本操作技术。譬如:在实验课上、在C语言的集成开发环境中,必须强调对Tab、Insert、Home、End等按键的功能和使用,因为它们能加快代码编辑的速度和质量。

为了提高编程能力,必须增加课外学时,勤学苦练,将其与水滴石穿、冰冻三尺非一日之寒、点石成金进行类比,充分说明只有经历大量的程序阅读,编写、调试练习,才能成就文如泉涌、火眼金睛。

为了真正检验学习效果,必须改变只凭一次考试决定该课程成绩的做法。考试的次数要增加、考试形式要多样化,可以是机考、笔试、单元测验、答辩等,便于及时掌握教学效果,检查、督促和改进。

4 结束语

教学实践证明,采用案例教学,将抽象的概念、枯燥的语法、繁多的算法,转化为一个个具体生动的实例,再加上学生多阅读、多思考、多练习,就能够很好地解决素质教学中倡导的“3W1H问题(what,where,why,how)”,使C语言程序设计课程达到良好的教学效果,从而使后续的程序设计类课程教学游刃有余。

参考文献:

[1] 熊启军,袁磊,谷琼.基于“四期六段”模式的C语言教学[J].现代计算机,2012.5:40-42

[2] 曹文平,熊启军.多元教学模式在C语言教学中的探索与实践[J].教育理论与教学研究,2012.6:31-32

[3] 丁海燕,袁国武,周小兵,白孟尧.高级语言程序设计案例式教学模式的探讨[J].计算机教育,2011.4:65

篇2

关键词:C程序设计;历奇教育;案例教学;项目驱动;教学模式

中图分类号:G642 文献标识码:A 文章编号:1009-3044(2017)17-0134-02

C语言功能丰富,表达能力强,以其丰富灵活地控制、简洁高效的语句表达、清晰的程序结构、良好的移植性,被广泛应用于系统软件和应用软件的开发中。C语言诞生时间虽早,面临C#、Java等新兴语言强有力的冲击,但是C语言依然以其良好的底层操作、较小的时空开销等优势在互联网+时代显示出强大的生命力,成为现代软件程序员中广泛使用的编程语言之一,《c程序设计》也成为高等职业学校计算机类专业广泛开设的一门重要专业课程。在软件开发领域,IT企业对C语言程序员的需求量相当大,我国每年毕业的计算机专业学生虽然数量很多,但是企业依然难以招聘到可以直接上岗无缝对接的软件开发人才。如何做好课程内容与职业标准对接、教学过程与生产过程对接,探索适合职业教育特点的有效教学模式成为重要研究课题。本文就《c程序设计》课程教学所存在的问题进行深入分析,探索新型有效的教学模式,使教学质量不断提高。

1 C程序设计教学内容分析

《C程序设计》是理论实践一体化专业基础课程、课证融通类课程,是《数据结构》、《软件工程》及其他编程语言类课程的前导课程,也是国家工业和信息化部计算机软件水平考试程序员初级资格考试中要求的主要程序设计语言。课程开设的主要目的是使学生掌握一种基础编程语言,了解c语言的基本开发要求,掌握C语言数据类型、结构化程序设计方法、数组及函数的使用、指针结构体、文件等基本操作。课程实践性很强,既要掌握概念、理解原理,又要动手编程,使学生通过C语言的学习得到程序设计的基本训练,进而为学习其他语言进行软件开发打好基础。课程学习难度大,需要以大量的案例、典型的项目以及良好的互动开展教学,运用丰富的教学手段提高学生的学习兴趣,帮助学生理解掌握艰深的知识。

2高职学生学情分析

《C程序设计》作为专业基础课程,一般在大学一年级开设,在传授知识的基础上还要培养学生踏实的工作作风,以及耐心、毅力和团队合作精神。对于高职院校大一新生来说,学生普遍缺乏程序设计方面的知识基础和逻辑思维,在刚接触C语言程序设计时,会觉得软件设计是新潮的高科技工作,在进行学习时情绪会相当高涨,很有学习热情;但是当初学语言的新鲜感过去,面对艰深的编程语法即便是依然努力也是难以掌握,此时学生的厌学情绪就会接踵而来,在教学过程中跟不上教师的节奏,学习主动性和积极性不够,甚至放弃学习。同时,学生解决新问题的能力不足,遇到课本上的例题或以前遇到过的问题可以很好地解决,但是一旦遇到新问题便不知如何下手,只能照搬照抄,不能灵活运用。

为此,刚开始接触语法学习时,教师要根据学生的情况多通过相关案例和有趣的研讨活动进行引入,从简单的例子开始做起,采用少讲多练的形式进行教学,多给学生提供练习语法的机会,让学生逐步克服对编程的恐惧心理,随着编程能力的逐步提升,学生的自信心也会不断增强。

3基于历奇教育理念的混合式教学模式设计

历奇教育(Adventure Education)是指“在合作、互动、有趣的氛围下,以自主参与、经历体验为基础,在分享中生成、在探究中成长的教育新理念、教学新模式、学习新方法”。对于相对枯燥难懂的程序设计类课程,历奇教育模式可以经过教师精心设计的一系列教学活动,通过学生的自主探究、协作学习和交流分享来活跃课堂氛围,激发学生学习兴趣,有效解决学生学习积极性不高的问题。基于历奇教育理念,结合网络教学、案例教学、项目驱动等教学方法,我们设计了一种适合本课程的混合式教学模式,以提高程序设计课程教学的效果。

3.1优化教学内容,开展案例教学

《C程序设计》课程当前有关的教材种类繁多,许多都是结合编写者的经验进行编写,彼此之间内容差异不大,形式不够新颖,特点不够突出,甚至有的书本知识出现语言不通、内容不全和科学性错误;侧重点也不尽相同,有的偏重于理论知识,有的偏重于实际经验,适用性千差万别。为此,教师在开展课程教学时应当认真选择教学内容,注意其是否真的适合学生使用,章节编排必须保证合理,条理必须清楚,结构简明扼要,讲解的时候一定要遵循深入浅出的原则,既具备相应的实践经验,又要具有相应的知识完整度,要保证科学性不出现误差,程序案例必须精心选择和设计,难易适当,数量合适,既能用来进行教学,也方便学生自己课下自主练习。

在案例教学过程中,要经过对学生的实际情况进行了解之后再做决断,选择最适合的案例,对象是什么、类是什么、成员方法是什么、成员变量是什么,都要进行具体的思考,每节课要学习的知识点和要完成的教学任务都要合理安排,在案例讲解和学生操作过程中要做好充分的指引,提供实训指导书、实训任务书给学生,把C语言程序设计相关知识凝练成相应的案例,最后将这些整合起来就形成完整的项目。在相应的案例后面布置一定的练习题,第一个练习应该将主要部分放在“仿”,第二个练习应该将主要部分放在“改”,这对第一个例子起着加工精简的作用,第三个练习的主要部分应该注重“提高”,这样能够便于学生进行深刻的理解和有序的练习,从而增强学习的效果。

3.2精心设计活动,增强学习动力

作为一种程序设计语言,对学生的数学功底和逻辑思维能力要求很高,艰苦的编程工作会使学生精神高度紧张,在学习过程中学生会出现不知所措的局面和情绪较为波动的现象。因此,在进行知识点讲解的过程中要把理论与实际案例相结合,尽可能使用形象生动的课件、动画和微课等教学资源吸引学生注意力,尽可能运用历奇教育理念组织研讨分享和各种有趣的教学活动,使学生保持较强的专注力和学习兴趣。每讲完一组知识点,就应该及时归纳总结,并向学生提出相应的实际问题进行巩固练习,让学生能够运用所学的知识来解决现实问题。

在这个过程中教师只是起引导的作用,对学生的大脑思维进行开发。这样做能够让学生更加明确学习目标,将教学内容进行相应的规整,不断降低教学难度。当学生看到自己的学习成果时,学生的成就感瞬间爆棚,从而使得学生学习的信心不断增强,由此也对程序设计语言产生浓厚的兴趣,让学生明白自己W到了什么,什么还没有学,下一步应该学什么,教师要让学生明白自己的目标定位是什么,采用双向互动教学方式,引导学生对自己的学习情况进行认识,这比只是掌握知识要重要得多。

3.3项目驱动教学,提高实践能力

结合高职教育的教学目标和特点,《C程序设计》课程教学应当以“任务驱动”、“项目导向”模式为主,结合其他模式的不同特点,相互补充,目的是要帮助学生学会学习,提高能力。在项目教学中,学习过程成为一个人人参与的创造性的实践活动,它注重的不是最终的结果,而是完成项目的过程。在课程教学过程中以任务或项目为中心,组织教学内容,通过讲练结合,使学生在完成工作任务或具体项目的过程中学会知识的应用,构建相关理论知识,发展职业能力。

项目设计以学生编程能力的培养为线索来进行,突出对高职学生职业能力的训练,理论知识的选取紧紧围绕工作任务完成的需要来进行,同时又充分考虑高等职业教育对理论知识学习的需要,并融合了相关职业资格证书对知识、技能和态度的要求。通过系列教学项目,培养高职学生计算机编程基本思想、编程基本技能以及逻辑思维能力,掌握运用C语言编程来解决生活中实际问题的方法和步骤,为可持续发展能力和拓展职业空间打下坚实基础。

篇3

关键词: C 语言;汇编语言;混合编程

中图分类号:TP313 文献标识码:A 文章编号:1006-4311(2014)24-0231-02

0 引言

汇编语言是一种面向机器的语言,其优点是运行速度快,占用存储空间小,可直接对硬件进行控制。缺点是编写、调试困难、移植性差。C语言简洁、灵活、库函数丰富、调试方便、移植性好,目前已被广泛地应用于系统软件和应用软件的开发中,为了发挥各自优势,取长补短,采用混合编程。大部分程序,如界面、人机接口(外壳程序)、数据处理等用C语言编写,以提高程序的开发效率。而某些程序,如需要缩短程序的运行时间,或需要对硬件进行直接操作,或需要利用操作系统的某些功能模块,或频繁使用的程序、或需要占用内存空间少的程序(内核程序),则用汇编编写,以提高程序的运行效率。

1 嵌入式汇编

嵌入式汇编也称行内汇编,源程序中直接插入汇编语句。汇编语句可直接访问C程序中定义的常量、变量、函数。不必考虑二者之间的接口,方便编程。

1.1 嵌入式汇编语句的格式

格式:asm操作码 操作数[;或换行]

其中:操作数可以是汇编语句中的立即数、寄存器、表达式等还可以是C中的常量、变量、标号等。分号;是汇编语句结束符,并非注解,要用注解,用C的注解。如下例

所示。

1.2 汇编语句访问C的数据

嵌入的汇编语句可以访问C语言程序中的任何标识符,包括变量、常量、标号、函数名、寄存器变量、函数参数等。如下例所示。

1.3 汇编语言与C语言接口规则

1.4 编译过程

命令行键入命令:TCC-B-Iinclude-Llib 文件名.c即可. TCC会自动调用TASM.EXE和TLINK.EXE,并且TLINK.EXE能正确的找到需要的.obj和.lib文件,要保证TC目录下存在TASM.EXE文件。如果单步编译,可能会碰到很多的问题,主要是TLINK.EXE不会自己去找.obj和.lib文件。该命令的功能是:.C编译TCC.ASM汇编TASM.OBJ连接TLINK.EXE。

2 Turbo C模块连接方式

C、汇编程序各自编程,各自编译,然后连接在一起。

2.1 汇编语言与C语言接口规则

①命名约定:汇编的名字前加一个下划线,C的名字前不加下划线(编译后内部自动加),以确保两个模块内部名字一致。

3 结语

混合编程,主要涉及接口,汇编调C的函数、全局变量。C调汇编的函数、变量。本文对此做了浅述。

参考文献:

[1]谭浩强.C语言程序设计[M].清华大学出版社,2004.

篇4

关键词:卓越计划;C语言;教学方法;研究性教学

中图分类号:TN70-4;G642

鉴于“C语言程序设计”这门课的重要性,以及目前在实际教学过程中这门课存在的亟待解决问题,在景德镇陶瓷学院计算机科学与技术专业被立为江西省“卓越工程师教育培养计划”的背景下,改革该课程的教学组织形式和教学方法,提高教学效果,为实施“卓越计划”奠定坚实的基础。

1 教学组织形式和教学方法改革

“C语言程序设计”这门课程是为计算机专业一年级本科生开设的专业必修课,景德镇陶瓷学院信息工程学院在制定课程教学大纲时,理论教学32学时,上机实践32学时。开设课程时间为大一第一学期,学生几乎没有任何的编程基础知识。学生刚接触时普遍认为这门课程难度较大,容易打击学生的学习积极性并导致学习兴趣不高。“卓越计划”的目的是旨在培养适应社会需求,具有较强工程能力,实践能力和创新能力的技术人才,因此需要在实际的教学过程中改变教学组织形式并进行教学方法改革,本文提出了五种教学组织形式和教学方法,如图1所示,并将其贯穿于整个理论教学和实践教学过程中。下面将结合具体的实例来介绍这些教学方法。

图1 五种教学组织形式和教学方法

(1)启发式。比如编程实现求圆的周长和面积。学生在学习了C语言的基本数据类型与表达式后,就可以写出如下的程序。

void main()

{

float r,l,s,pi;

r=2.0;

pi=3.14;

l=2*pi*r;

s=r*r*pi;

}

这个例子中半径只能固定为某一个值,如果半径变了,需要修改程序。如果问题改成:从键盘输入圆半径,求圆的周长与半径并输出,要求圆的半径可变。这样给学生以启迪,并引出了输入输出函数的教学内容,并可以调动学生学习这部分内容的积极性。

(2)探究式。假设a=3,b=5,编程实现交换两个变量a和b的值。刚开始学生会写出如下的程序。

void main()

{

int a=3, b=5;

a=b;

b=a;

printf(“a=%d,b=%d”,a,b);

}

程序运行后发现a和b的值都是5。实验结果与预期的不一样,这样需要探究分析下出现这样结果的原因,需要学生学会编程工具的调试功能,经过单步调试发现,执行完a=b这条语句后a的值已经是5,在执行b=a后,没有将a原来的值3赋给b,而是将a新的值5赋给了b,再进一步的探究分析,原来a是变量,经过a=b这个赋值操作后a原来的值没有了,这就需要定义个临时变量int t 来存储a的值,程序修改如下:t=a;a=b;b=t;

(3)讨论式。在讲授了利用循环语句求1到100的累加和之后,马上给出思考题,求解100的阶乘,然后让学生进行分组讨论,如何在1到100的累加和的程序上做修改,1到100的累加和的程序如下。

void main()

{

int s=0;

int i;

for(i=1;i

s+=i;

printf(“s=%d”,s);

}

经过五分钟左右的讨论后,绝大部分学生做出了两处修改:s=1;s*=i;但是运行程序后发现结果与预期不一样。老师经过引导,指出要注意变量的数据类型及范围,学生经过讨论后发现需要修改s的数据类型和输出函数的格式控制字符串。经过讨论和老师的引导后,首先对循环语句有了更深刻的了解,同时巩固了之前所学的输入输出函数和数据类型这两个知识点。

(4)参与式。在理论课教学时,主要以老师的知识点灌输为主,学生参与较少,即使参与,多以简单地回答老师的提问,偶尔会有一些老师引导式的讨论,学生的主动性发挥得不够。参与式教学方式中,将以学生为主,老师为辅。这种参与式教学方式主要在实践教学中应用。因为上机实践部分不同于理论教学部分,需要学生全身心的参与到程序设计开发过程中来,自己动手编写程序。比如求ax2+bx+c=0的解。大多数同学在编写该程序时,仅考虑到该方程有两个实根的情况,未考虑到该方程有可能不是一元二次方程以及方程的根是虚根这两种情况。学生只有参与到该程序的编写当中,才知道在编程时需要全面考虑问题的各种可能性。

(5)合作式。经过了所有知识点的学习后,学生已基本掌握了程序设计的常用方法和编程技巧,也积累了一些编程和调试的经验。但是之前的课程教学过程中以及上机实践过程中所使用的例子都较为简单,基本上学生个人可以独立完成,然而现在的系统和软件开发不是一个人所能完成的。因此为了进一步提高学生的动手能力、解决实际问题的能力,特别是团队协作与合作能力。为此,设计了五个综合性的应用程序设计实例,分别是简易学生选修课程系统,可以进行方程求解和科学计算的计算器,简单学生成绩统计,班级学生通讯录,商品库存管理。模仿数学建模比赛,三个学生一个小组,分工协作完成功能描述与划分、总体设计、详细设计、程序编写、总结报告等任务,让学生充分地体验合作式程序开发过程。

2 结束语

本文结合了C语言程序设计教学过程中典型的实际案例,介绍了启发式、探究式、讨论式、参与式、合作式等五种教学组织形式和教学方法,并在2013级计算机专业学生的C语言课程教学中进行了实践,表明学生的编程能力、动手能力和协作能力得到了一定的提高,符合计算机科学与技术专业的“卓越工程师教育培养计划”的目标。

参考文献:

[1]朱福珍,杨自恒,蒋爱平,王晓飞,甄佳奇,付丽.基于“卓越计划”的“数字图像处理”课程教学研究[J].中国电力教育,2013(28):128-129.

[2]林健.面向“卓越工程师”培养的课程体系和教学内容改革[J].高等工程教育研究,2011(05):1-9.

[3]徐静.卓越工程师培养计划下“Java程序设计”课程改革[J].计算机时代,2013(09):65-66.

[4]白忠建,李巧勤.面向卓越工程师培养的C++教材研究与建设――兼谈C++课程建设[J].教育教学论坛,2013(06):193-195.

[5]章义来,叶君耀.C语言程序设计[M].国防科技大学出版社,2011.

作者简介:徐星(1984-),男,博士,副教授;柳炳祥(1966-),男,信息工程学院书记,博士,教授,硕导。

篇5

【关键词】微课 C语言 程序设计

一、何谓微课

2008年美国的戴维・彭罗斯,运用建构主义理论,以在线学习或移动学习为目的,提炼课程要点,制成了十几分钟的微课并上传网络,从此微课被提出进入了大众视野。我国广东佛山教育局的胡铁生,率先在国内提出了以“微视频为中心”的新型教学资源这一理念。近年来随着翻转课堂的推行以及可汗学院在互联网上推出的系列微视频,微课在全球迅速走红成为教育界关注的热点话题。

“微课”是按照新课程标准及教学实践要求,以“微视频”为主要载体,针对某个知识点或教学环节而开展教与学活动,包括各种教学资源有机组合。

微视频是微课的核心,为了使教学更有效,基于学生的认知特点和视觉驻留规律,时间长度控制在5~10分钟左右。微视频可以无论是在课前、课内、课后都可以使用。学生可以在课前先预习,这样课堂上教师就可以把课内重点放在学生对知识的掌握吸收上,比如进行个性化的辅导、讨论来解决问题。如果课上有些同学还想复习或者上课没有听清,课后都能够继续使用视频、课件等资源进行学习。随着手机、平板电脑等终端的普及,碎片化移动学习逐渐成为人们学习生活方式的主流,微课适合学习者自主学习、按需学习、个性化学习,既可查缺补漏又能强化巩固知识,是传统课堂学习的一种重要补充和拓展资源,真正做到了以学位本。

二、微课的具体应用

1.课程背景

C语言程序设计是高职计算机信息管理专业的一门专业基础课,也是许多非计算机专业的主要选修课,是一门实践性与应用性较强的课程,目的是培养学生算法设计的基本思想和程序设计的基本技能。但是根据笔者的实践,许多同学学习编写程序感到比较困难,上课也听不懂,因此害怕编写程序。通过与学生的交谈,同事的交流,以及教学实践,笔者发现主要原因是一方面是课程本身的逻辑性强,有一定的灵活性,课程本身有一定的难度,另一方面是学生在一开始学习的时候就不是很感兴趣,学习也没有成就感,就丧失了自信心。顺序结构、选择结构、循环结构是结构化程序的三种基本程序结构,其中编写顺序结构程序是后续学习编写选择结构、循环结构程序的基础,正式学习编写程序一般是从编写顺序结构程序开始的,很多同学由于一开始学编写顺序结构程序时学习不得法,不能真正理解如何来编写程序,入不了门,在心理上害怕编写程序,看到问题就无从下手,导致后续的学习没有兴趣,无法继续后续的学习。微课展示时时间段、主题鲜明、内容简洁,可以使学生在注意力较为集中的时期对教学重点和难点有一个较好的把握,也可以反复学习。针对以上这些情况,因此选取编写简单顺序结构程序为题作为微课的内容。

2.微课在C语言程序设计中的教学设计实例

【微课名称】

编写简单顺序结构程序

【教学背景】

本知识点是计算机信息管理专业高职二年级《C语言程序设计》课程中的一个知识点,在学习该知识点之前要求已经掌握C语言的书写格式和调试环境、常量和变量、数据类型、运算符表达式及输入输出函数。

【教学目标】

(1)了解顺序结构程序的特点;

(2)理解简单顺序结构程序的编写思路;

(3)学会编写简单的顺序结构程序。

【教学重点】

(1)顺序结构程序的特点;

(2)编写简单的顺序结构程序的思路。

【教学难点】

灵活编写简单的顺序结构程序。

【教学活动设计】

本微课采用演示法和讲授法,从具体简单的两个整数的加法为例,先提出生活中怎样完成求两个整数的和。这个问题学生在小学就学过,肯定都能回答出来,即一个加数加上另一个加数得出和。接下来引导学生思考,如果把这个任务交给计算机程序来自动完成应该如何实现,由于不知道两个整数具体是多少,也就是说这两个参与运算的整数是可变的,所以可以定义两个整型变量比如a和b来存放参与运算的两个加数,由于加数是可变的,那么最终计算出的和也是可变的,所以还需要定义一个变量比如sum来存放最终的和,接着通过一个赋值语句sum=a+b;可以让计算机自动把和求出来,最终为了让结果显示出来,还需要将结果输出。通过一步步进行分析,了解为什么要写这么一条语句,最终完成程序的编写。为了让学生对程序能进一步理解,我还对程序执行的过程进一步进行模拟,让学生在程序执行的过程中看到每个语句起的作用,进一步理解该程序。虽然针对不同的问题,编写程序的语句不同,但是顺序结构编写程序的思想还是一致的,通过编写完成两个整数的加法这个特殊的例子,最终归纳出一般顺序结构程序的步骤:(1)定义需要的变量,使部分变量有值,可以通过赋值的方法,也可以通过输入的方法。(2)根据具体的要求,让计算机完成相应的操作或运算。(3)将最终得到的结果输出,给出问题解决所需要的结果。

这是一个由特殊到一般、由简单到复杂的过程,符合学生的认知规律。为了检验或评价学习的效果并巩固所学内容,课后还安排了练习(微课学习任务单并附有答案),旨在引导学习者学会编写简单的顺序结构程序,达到触类旁通、举一反三的效果,在设计该微课任务单时,安排的练习也是从简单到复杂,在难易度上有一定的梯度,方便学生循序渐进的练习。该微课配套的学习资源主要有微视频、课件、微课学习任务单。

附:任务单

微课学习任务单

【教学反思】

1.收获

制作微课对于教师的个人专业化成长是有很大的帮助的。首先需要教师转变教学理念,在教学过程中教师是真正的主导者,学生是学习的主体,现在的学习必须具有更高的实效性。本微视频采用的是超级录屏软件结合power point 2007来制作的,实现起来比较简单。通过此次微课的制作与实践,笔者对于微课的概念有了进一步的理解,也熟悉了微课设计与制作的流程。在制作微课的过程中,为了制作微视频,我还熟悉了微课制作的几个小软件,比如:超级录屏、Camtasia Studio、屏幕录像专家等。另外,在选题时,需要仔细斟酌,要思考选取哪个知识点来作为微课程的内容,可以针对教学的难点,也可以针对教学的重点,在这个思考的过程中,又加深了教师对教材知识内容的进一步理解。

当然微课的受益者还是学生,由于选取的内容出发点门槛比较低,从简单的例子引到计算机程序,一定程度上帮助学生化解了学习的难度,提高对学习的自信心。另外本课程内容有一定的实践性,学生在学习的过程中也可以动手体验,一定程度上也能提高学习者学习的参与度。有了微视频、课件等教学资源,学生可以反复学习和使用,无论在课堂内外,都能学习,能帮助接受能力弱的同学慢慢学,学会“知新”;能帮助所有同学重新回顾课堂上所讲内容,学会“温故”。如果学生在课前提前预习,教师上课的时间就可以主要花在让学生对知识进行消化、吸收与促进上,课堂的形式可以有互动讨论、答疑解惑等多种形式,而不是纯粹的知识讲解,这能让学生的学习相对原来的传统学习更具有有效性,一定程度上也帮助学生慢慢养成自主学习的习惯,使课内学习与课外学习相互衔接,满足学生的个性学习和共性学习。

此次微课实施后,从学生的微课任务单以及学生的反映来看,效果相对于传统的教学都不错,对学生的帮助还是比较大的。

2.不足

本微课虽然通过简单通俗的例子把问题讲清楚了,但是由于学习的内容还不能直接作用于生产生活,在教学的实用性方面还有所欠缺。另外,内容在激发学生学习的兴趣方面还需要下功夫,还不能达到引人入胜的效果。

三、结束语

微课作为一种新型的学习形式和资源,无论对老师还是学生都是一种机遇,在C语言程序设计课程教学中,要真正做到增强学习效果,需要全面使用微课这种资源还需要开发系列化的微课程,形成本门课程的微课“资源库”,并在教学实践中逐步加以提高和完善,这也需要更多的时间和精力。本文是笔者在本门课程中的初次应用,还存在许多的不足,需要不断地完善和思考。

【参考文献】

[1] 汪琼. 微课关键在课不在微,《中国教育网络》,2013(10).

[2] 黎加厚. 微课的含义与发展,《中小学信息技术教育》,2013(04).

[3] 陈磊、魏林. C语言课程中循环嵌套的微课教学设计与思考,《科教导刊》,2014(12).

篇6

关键词:For语句 循环结构 条件表达式

1、for语句的表达形式

for(表达式1;表达式2;表达式3),3个表达式的主要作用:表达式1设置初始条件,只执行一次;表达式2循环条件表达式,用来判断程序是否继续执行,在每次执行循环体前先执行此表达式,决定是否继续执行循环体;表达式3是对循环的调整,是在执行完循环体后才进行的。所以我们可以对for语句这样理解 for(循环变量赋初值;循环条件;循环变量自增或自减)例如:

for(i=1;i

sum=sum+i;

其中i=1是给循环变量赋初值1,i

(1)for语句表达形式中的表达式1可以省略,但表达式1后边的分号不能省略。例如:

for(;i

(2)for语句表达形式中的表达式2也可以省略,但表达式2后边的分号不能省略。即不设置和检查循环结束的条件。例如:for(i=1; ;i++) sum=sum+i;此时循环无终止的进行下去,也就说表达式2一直为真.

(3)表达式3也可以省略,但此时程序设计者应另外设法保证循环能正常结束。

(4)表达式1和表达式3都没有,只有表达式2,即只给出循环结束条件。对于没有表达式1和表达式3的for循环语句,为了让循环正常执行,应当在for语句前给循环变量赋初值。 从此处我们可以看出for语句比while语句功能更强大,除了可以给出循环条件外,还可以赋初值,使循环变量自动增减等。

(5)表达式1、表达式2和表达式3都可以省略。例如:for(; ;) printf(“%d\\n”,i);

相当于 while(1) printf(“%d\\n”,i);即就是不设初值,不判断表达式2的条件(表达式2始终为真),不改变循环变量。这样程序就无终止的执行循环体语句。显然这样的程序是没有任何价值的。

(6)表达式1可以是设置循环变量初值的赋值表达式,也可以是与循环变量无关的其他表达式。

例如:for(sum=0;i

(7)表达式1和表达式3可以是一个简单的表达式,也可以是逗号表达式,即就是包含一个以上的简单表达式,中间用逗号隔开。

如:for(sum=0,i=1,i

(8)表达式2一般是关系表达式(如i

①for(i=0;(ch1=getchar())!=’\\n’;i+=ch1);在表达式2中先从终端接收一个字符赋给ch1,然后判断这个赋值表达式的值是否不等于‘\\n’(转移字符 换行),如果不等于’\\n’,就执行这个循环体,它完成的作用是不断输入字符,将他们的ASCⅡ码相加,直到输入一个“换行”符为止,程序结束执行。这里我们要注意的是:此时for语句的循环语句为空语句,把本来要在循环体内处理的内容放在表达式3中,作用是一样的,可见for语句功能的强大,可以再表达式中完成本来应在循环体内完成的操作。

②for(;((ch1=getchar())!=’\\n’;) printf(“%c”,ch1);这个for语句中只有表达式2,而无表达式1和表达式3.它的作用是每读入一个字符后立即输出该字符,直到输入一个“换行”为止。

运行情况: Computer((输入) Computer(输出)。这里我们要注意的是:从终端键盘向计算机输入时,是在按Enter键以后将一批数据一起送到内存缓冲区去的。因此输出结果不是CCoommppuutteerr,即不是从终端输入一个字符马上输出一个字符,而是在按Enter键后数据才送入内存缓冲,然后每次从缓冲区读一个字符,再输出该字符。

从上面的介绍我们可以看到,C语言的FOR语句使用非常灵活,变化多端。C语言的FOR语句比其他语言中的for语句灵活和强大的多。可以把循环体和一些循环控制无关的操作也作为表达式1和表达式3的出现,这样程序可以比较简洁。

2、for语句的执行过程

(1)先求解表达式1.

(2)再求解表达式2,如果表达式2为真,则执行FOR语句中的循环体,然后执行(3),如果为假,则循环结束,转到第(5)步。

(3)求解表达式3.

(4)转回步骤(2)继续执行。

(5)循环结束,执行for语句下面的一个语句。

3.种循环的比较

(1) 在处理循环语句中,while、do-while和for 都可以用来处理同一个问题,一般情况下他们3个可以互换。

(2)在while循环和do-while循环中,只在while后面的括号内指定循环条件,因此为了使循环能正常结束,应在循环中包含使循环区域结束的语句。For循环可以在表达式3中包含使循环趋于结束的操作,甚至可以将循环体重的操作全部放到表达式3中。因此for语句的功能更强,凡是while循环能完成的,用for循环都能实现。

(3)用while和do-while循环时,循环变量初始化的操作应在while和do-while语句之间完成。而for语句可以在表达式1中实现循环变量的初始化。

(4)while、do-while和for循环,都可以用break语句跳出循环,用continue语句结束本次循环。

4.种循环举例:求1+2+3+……+100,即∑100n=1n

(作者单位:陕西国际商贸学院)

参考文献:

[1]《电脑知识与技术》2009年第24期。

篇7

[关键词]STC51 DHT11 LCD1602

中图分类号:TP274 文献标识码:A 文章编号:1009-914X(2016)24-0105-01

引言

温度、湿度和人类的生产、生活有着密切的关系,同时也是工业生产中最常见最基本的工艺参数,例如机械、电子、石油、化工等各类工业中广泛需要对温度湿度进行检测与控制。随着人们生活水平的提高,人们对自己的生存环境越来越关注,空气中温湿度的变化与人体的舒适度和情绪都有直接的影响,所以对温度湿度的检测及控制就非常有必要了。

1.总体方案设计

按照系统功能的具体要求,在保证实现其功能的基础上,尽可能降低系统成本。总体设计方案如图1所示。从图中可以看出,系统设计以STC51单片机为控制核心,包含微处理器模块、DHT11温湿度传感器模块、阈值设置模块、1602字符液晶显示模块、报警模块。

2.系统硬件设计

2.1 DHT11传感器模块接口电路设计

DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上。

DHT11传感器与单片机采用单总线的方式进行通讯。由于测量范围电路小于20米,在DHT11传感器的DATA引脚接一个10K的上拉电阻后直接与51单片机的P2.0引脚连接。

2.2 1602液晶显示模块设计

液晶显示原理是利用液晶物理特性, 通过电压对其显示区域控制,有电就有显示,这样即可以显示出图形。LCD1602液晶是一种工业字符型液晶,能够同时显示2行,每行16个字符。在本系统中,第一行显示测量的温度和湿度值,第二行显示温度上下限值和湿度上下限值。当温度或湿度超过设定范围是,该测量值闪烁显示。

LCD1602液晶显示器与单片机采用并行通讯方式。单片机的P0口与LCD1602的8位双向数据端即第7~14脚相连,单片机的P1.0~P1.2与LCD1602数据通讯控制口RS、RW、EN脚相连。

2.3 阀值设置和报警电路设计

该温湿度测试仪阀值的设置通过按键来完成,设置内容包括温度上、下限和湿度上、下限四项内容。设计了K1、K2、K3、K4四个按键。K1为设置键,该键按下进入设置状态,设置项闪烁显示,再次按下此键退出设置状态;K2为切换键,按下K2切换设置的项目,设置项目在四个之间轮换;K3为加一键,按下该键设置值在原来的基础上加一;K4为减一键,按下该键设置值在原来的基础上减一。由于按键数量比较少,而且单片机I/O口资源充足,在本系统中采用独立式按键接口设计,按键一脚接地,另一脚与单片机的P2.0~P2.3相连。

报警采用蜂鸣器鸣叫和指示灯闪烁来实现,当测量的温度或湿度超过设定的上限或下限则发出报警。蜂鸣器和指示灯分别与单片机的P2.4、P2.5相连。单片机引脚的驱动电流比较小,不足以驱动蜂鸣器工作,因此采用三极管C9013驱动蜂鸣器发声。

3.系统软件设计

该温湿度测试仪的软件分模块设计,包括主程序、键盘扫描处理程序、显示程序、温湿度测量处理程序、声光报警程序组成。

3.1 主程序设计

该系统的主程序流程图如图2所示。系统上电后对单片机I/O口、LCD1602、温湿度传感器进行初始化设置。在主循环中单片机循环执行读取温湿度传感器的测量数据,对测量数据进行处理计算得到当前的温度和湿度值;单片机执行按键识别与处理程序;温湿度及温湿度的上下限送LCD1602显示;测量的温湿度值与阀值进行比较,如果超出阀值范围则发出声光报警。

3.2 传感器模块程序设计

DHT11作为新型的单总线温湿度数字传感器控制方便。总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号。主机发送开始信号结束后,延时等待20-40us后, 读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可, 总线由上拉电阻拉高。总线为低电平,说明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉高80us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平的长短定了数据位是0还是1.格式见下面图示.如果读取响应信号为高电平,则DHT11没有响应,请检查线路是否连接正常.当最后一位数据传送完毕后,DHT11拉低总线50us,随后总线由上拉电阻拉高进入空闲状态。

4 结论

本文在论述了温湿度测试仪系统的总体设计方案,根据这个方案完成了系统的硬件和软件设计、应用程序的编写及调试,经实际运行验证,取得了满意的效果。

参考文献

[1]张秀国.单片机C语言程序设计.北京大学出版社.2008。

篇8

1微课建设总体思路

如果需要将一门课程建设成微课程的形式到网上,让更多的人方便学习,需要做的第一步就是选题,,即站在一门课的整体内容的角度,梳理整个框架,摘出课程中所有可以作为重点、难点或易错点的知识点,作为微课选题的目标范围;第二步,是对每个串起来就能掌握整个课程内容的知识点进行精心设计,包辑如何导人、如何展示、.如何交互等;第三步,根据设计结果,采用合适的制作工具,制作出一个一个小而精的微视频,并配上学习任务单(与微课程配套的学案,主要包括学习目标、学习资源、学习方法、学习任务、学习反思和后续学习预告),加上片头片尾,那么,一个完整的微谋程系列就出炉了

2微课教学设计三部曲

在制作微视频之前,先要进行微:课的教学设计,就像盖楼一样,要先对未来的大楼进行设计规划,有了设计图,下一步就可以按照设计图施工了u同样的道理,有了微课的设计结果,就可以按照这个结果制作微视频了u如果你想做个精致、实用、符合教学规律的微课视频甚至是系列,就需要前期做精心设计u传统的教学方式是在一节课50分钟或45分钟之内讲解几个知识点,包括导人、讲授、活动、评价及小结等环节,这些也同样适用于微课,只是微课程只涉及1个知识点,时间在8分钟之内因此,微课教学更需要在財间、语言、展示、手段等方面进行精炼、精确和精彩的设计与安排,设计的越详细越到位,将来的微视频制作才更有的放矢u那么,针对一般敎学的导人、讲授和小结三个环节来看看分别需要考虑哪方面的设计

2.1导入

在讲授一个新知识点的内容时需要通过某种方式介绍给学生,包括为什么要学习这方面的内容(必要性),该内容在什么情况下需要用到(情景或背景)等等u因此,导人的方式可以有问题导人、情景导人、故事导人、目标导人等等具体采用哪种导人方式还要看内容本身的需要,但不管哪种导人都要遵循时间短、简明扼要、流畅衔接、目标明确的特点,以符合微课小而精的碧求

2.2讲授

将课程内容导人之后,下一步就是以流畅的衔接方式进人讲授环节u这个环节可以融人教师丰富的教学经验和个性的教学风格,在有限的时间内将知识点的主要内容进行讲解和展示4语言方面,尽量闻练、准确、能风趣幽默一些更好;思路要清晰明了;简单的内容点到为止不必啰嗦,复杂有难度的内容可以用案例法、类比法、举例法、演示法、操作法等教学方法以直观、形象、通俗易懂的方式讲解;展示手段可以用文字、表格、图表、动画、实物、实验、截取视频直播、现场操作等方式;对于启发性教学,还需要设计恰当的交互环节总之,教师在这个环节可以充分发挥自己的教学特长,如高超的内容组织编排能力、一流的口才、强大的动手操作能力、丰富的想象力、时间的把控力等。

2.3小结

最后用1分钟或半分钟的时间对整个知识点内容做一个简短的小结,包括重点、难点、易错点的总结、步骤思路的梳理、课后思考或内容引申等,主要是起到点睛或提纲挈领的作用u这个环节虽然简短,但却必不可少。

3微课教学设计实例

以《C语言程序设计课程中“数组与指针”一节中的“用指针访问一维数组”知识点给出具体的微课设计实例供同行参考下面具体展示该设计实例主要包括的几个部分。

3.1选题意图

“用指针访问一维数组”知识点是该课程的“指针”一章中的教学重点和.教学难点,指针和数组不仅是C语言中的两种重要数据类型,也是C++、C#等其他窜言中必备的数据类型,而且在实际编程中因指针访问数组对于提升算法的空间效率和时间效率效果显著,因此,如果将该知识点做成微课形式,贝不但提升授课效果,而且可以服务学生的课后巩固复习,帮助学生强化二者的基:本概念、使用操作及应用技巧,为学生在今后的编程过程中提升和优化软件功能奠定基础u

3.2教学目标

教学目标包括:①领悟理解用指针访问一维数组的好处;②识别记忆如何定义指向数组元素的指针变量并赋值;③简单应用方面,能够用指针访问一维数组元素来实现,如比较大小、排序、矩阵操作等u

3.3教学过程及设计意图

该过程共需6分钟,分7步进行,具体见图3~6该过程按照前面所述的导人、讲授、小结的顺序进行设计,并在讲授环节使用了多种教学法

3.4设计亮点

该实例的设计亮点有5个:①在导人和讲授环节融人了多达9种的教孛方法,尤其在讲授环节,采用温故知新法引出需要的前期知识即一维数组和指针变量的定义,然后使用陈述法并穿插对比法和归纳法说明指向一维数组的指针变量的赋值与引用方法,有了这个基础,下一步就是如何应用了u因此使用举例法结合图示法说明应用过程,之后采用列举法说明注意事项,这样,主要知识点都讲授完毕,花一点时间做个小结梳理,从思路上将应用要点串一遍,形成4匡架知识(归纳法),最后,为了让学生加深对下标法和指针法表示数组元素的区别理解,设计一个练习题和一个思考题加以巩固(练习法);②本知识点的选取原则既考虑到内容的重点性和难点性,叉考虑到该知识点对后续知识学习的铺垫功能;③媒体选择了图示法和程序法,将课件中的部分内容直接展示于此,有利于描述的直观性和简洁性;④在互动环节设计了课堂绛习和思考题;⑤梳理了整个教学过程框架:问题导人->讲授:先概念、后使用、再应用->小结:梳理重点和思路。

4结束语

篇9

人物语录:或许对于他人来说,软件编程是一件复杂且需要无限耐心的工作。但对于我来说,软件编程是一件非常有趣的事情,特别是在解决程序中某个BUG的时候,所体验到的成就感是无法用言语描述的。

不知是因为日常生活太平凡,还是因为人们的思维易于停滞,大多数人总是善于“习惯”。因习惯,而“视若无睹”;因习惯,而“毫无创新”。 罗曼・罗兰曾说过:“唯有创造才是快乐,只有创造的生灵才是生灵。”作为软件工程师的陈杰,大概就是一位如上所说的“生灵”。在笔者与其谈到为何要以“孤胆”作为自己的网名时,这位低调的软件工程师说:“ ‘孤胆’其实是我在学生时代为了转换心情而玩的一个游戏。在那个时候,我就憧憬自己可以成为一名拥有孤胆胆魄,但不封闭自我内心的人。”

“”曾经疯狂的快乐时光

虽然笔者与陈杰是第一次交谈,但完全没有感到拘束或是无法顺畅交流的压迫感。在交谈中,陈杰兴奋的说起上学时候的事,“在上学时,我的学习成绩处于中等偏上,一旦学习起来,就会完全置入其中。记得有一次写项目,早上7点我就起床开始敲代码,一直到晚上10点,除了去了几趟厕所,我基本上就没有离开过电脑。午饭也是请人送来的,那段日子我非常地疯狂,也许那段时光是我为数不多的快乐时光。”陈杰在说这句话的时候,他自己或许并没有发觉到,他的语气与神情中,正透露出他品质中某种坚定的意念,也正是由于这样的意念令他在将来的软件编程的工作中,感到乐趣无穷。

原本,陈杰在大学期间所学的专业是机电一体化,毕业后,学校将其分配到合作单位――中国核工业建设集团做技术员。在回忆那段经历时,陈杰的语气中显露出成熟。“第一份工作地点是在深圳的一个郊区,每天坐着班车来回。由于去市区一趟要来回6、7个小时,因此,大多数休息时间我都是在宿舍里度过的。在这家公司里,我的工作职责是负责核电站内设备的安装,具体主要是负责电气队一组施工材料的申请;核实仓库到货情况;与不同部门协调、沟通等。第一份工作我大概做了1年,就主动辞职了。因为我觉得再这样下去,只是在无意义的消耗自己的生命。人生的成长难道不是在于不断地前进吗?我对自己主动辞职这件事情,一点也不后悔。”

便捷的“奢华”源自幕后英雄

结束了第一份工作,陈杰来到了南京,经过一段时间的考虑后,他决定到北大青鸟学习软件工程。当笔者问其在软件工程的学习中最大的乐趣是什么时,陈杰笑着说,“学习软件工程的乐趣在于,计算机能够按照我的指示做出相应的反应。”

软件工程培训课程结束后,陈杰成功进入一家500强企业,总公司位于德国,中国总部位于上海。新的工作,新的工作职责,对于陈杰来说,意味着新的挑战与机遇。“在新公司里,我的工作主要是根据项目经理的设计实施开发。我还清晰得记得,有一次需要改一个业务需求,当我拿到这个需求之后,发现其中的代码有不少问题,改了两天也没有搞定,最后,我重构了那个业务需求的代码。同事知道后说真佩服我的勇气,因为我所重构的业务需求中所包含的代码真的十分多,并且还需要理解原先的开发者思路。但我个人认为,比起不断地给程序打补丁,重构代码更有长远意义。”

在说起新工作时,笔者发现陈杰显得很活泼,而不再是之前他自称的“低调”。在谈论到新工作的成就时,陈杰表示说:“软件工程师其实是一份十分需要耐心与技术的工作。说到这份工作的成就,我会不自主地联想到‘幕后英雄’这个词来。”

交谈中,陈杰很兴奋地向笔者介绍了时下热门的电子购物方式的“隐秘”。他说,“喜欢网络购物的人都知道淘宝商城,便捷且安全的购物模式越来越受到人们的青睐。但其实,普通大众都只是看到最表面的东西,即见即所得的东西。买家拍下的某个订单是如何出现在卖家的后台,卖家后台中的多个订单又是如何高效运作等这类问题,我相信大多数人都没有考虑过。但这些问题恰恰是我作为软件工程师的工作。”

作为一名“风头正劲”的职场奋斗者,陈杰说了自己的从业体会:“自从成为了软件工程师,我学会用简单的方法解决复杂的问题。这一点对于是否能够成为优秀的软件工程师是尤为重要的。因为一段简洁、清晰的代码将可使程序使用者感受到更为舒适、快捷的操作体验。”

大多数人都知道,软件工程师是一份十分枯燥的工作,一定要耐得住寂寞才能有所作为。陈杰对此深有体会,在采访即将结束时,他告诉笔者,“每天面对着如蝌蚪般的代码,是一件非常锻炼人的事情。除此之外,与领导通过邮件沟通这项日常工作也非常能锻炼人,因为你要非常清晰地描述自己已经做的工作,在工作中发现的问题,以及解决这些问题的方法。若一个人不具有清晰的逻辑思维,很容易将邮件写的杂乱无章,直接影响工作效率。”

期待和自己喜欢的人牵手同行

在对陈杰采访结束后的当天晚上,他给笔者发了一份与上司沟通的邮件。邮件的内容如陈杰之前所说的一样,逻辑思维十分清晰,不同重点与注意事项也用不同的颜色标注了出来。在邮件的末尾处,陈杰说:“比起名牌的大学毕业生,我可能微不足道。但是我相信,每个人都有只属于他的闪光点,而人的一生就如走在旅途中寻找自我的闪光点一般,不断地向前迈进。作为一名软件工程师,我感到很充实,以自己踏实、积极的上进心不断地向前迈进。我有一个小小的希望,就是能够在南京买一套房子,与自己喜欢的人住在里面,朝着共同的目标,一起努力下去。”

专业Tips:

软件工程专业简介:软件工程师是对应用软件、创造软件的人们的统称。软件工程师按照所处的领域不同可以分为系统分析员,软件设计师,系统架构师,程序员,测试员等。目前,我国软件高级人才的短缺已经成为制约我国软件产业快速发展的一个瓶颈。在中国,国内市场对软件人才的需求每年高达80万人,而高校计算机毕业生中的软件工程人才还很缺乏,尤其是高素质的软件工程人才极度短缺。

篇10

【关键词】 野外;监护仪;便携

在当今的医疗领域中,无论诊断还是护理工作,都越来越依赖于仪器设备的辅助。在大多数医院中,床旁监护仪都是不可或缺的基础设施。现代的监护仪发展十分迅速,然而,针对病房监护设计的监护仪,追求大屏幕,高清晰,高精确度,多功能,模块化插件,乃至工业设计,外观装潢,不可避免的存在体积大,重量大,搬运不便,易受物理损坏,脱离电源后工作时间有限等问题。

而在野外急救,维稳处突,部队卫勤保障方面,却恰恰需要一款重量轻,体积小,结实耐用,持续工作时间长的监护设备。

鉴于此,可以认为,在野外的特殊条件下,对监护仪的要求重点在于解决有和无的问题,而非花样繁多的附加功能。从这个前提出发,分析现有监护仪体积过大的原因,主要有三点。

1.为便于查看,显示屏设计的很大。

2.因为显示屏和电路板的高耗电,不得不配备体积和重量都较大的电池。

3.因为过大的显示屏和美观需要,不得不使用远大于装载电路板需要的机壳。

借助日新月异的电子技术,分别在屏幕,处理器,机械工作部件,电池,以及机体结构上下功夫,并且采取特殊的节电设计,是可以得到符合要求的便携式监护仪的。

1 硬件设计

处理器方面,使用低功率16位RISC混合信号处理器的MSP430, 在保持低功率的同时,得以能同步连接至模拟信号传感器,模拟信号和数字组件。针对将来设备小型化、便携化的趋势,该单片机专门对功耗方面做了优化。作为一款16位单片机,它又具备了远高于8位处单片机的运算和处理能力。

整个系统则分为四个部分。

1.输入设备:包括电极片,袖带及压力传感器,血氧饱和探头等传感器,和医务人员操作装置。

2.转换部分,包括数据采集,过滤干扰,A/D转换(模拟信号/数字信号转换)。

3.运算处理部分。

4.输出部分,包括屏幕,报警灯,扬声器。

2 输入设备

此类采用市场上现有成熟设备,在操作设备方面,则应考虑到野外条件和耐用,省电等理由,使用传统的按钮式操作。

3 转换部分

该部分由五个不同的模块组成,实现对探头输入模拟信号的接收,转化,放大工作。

4 心电检测

采用现通用的三电极胸部检测方法。由于传感器探头外接,引线较长,所以心电检测容易受到外部干扰。而心电信号比较微弱,在探头信号必需放大处理,所以采用输入阻抗高、漂移低的运算放大器作为第一级放大。过滤掉干扰之后再对信号进行二次放大,再经过波形变换电路后,直接送入单片机的模拟信号输入口,再利用单片机内置的16位模数转化器,将模拟信号转化为数字信号,即提取了心率信号,可用于屏显和储存。

5 血压测量

参考第三军医大学学报上的文章《一片8Xc196 mc 单片机的便携式多参数监护仪的研制》,血压参数可以采用无创袖套间接方式来检测,其检测原理选用先进的振动法(Oscillometric method) [1,2]通过单片机控制的气泵和电磁阀,我们可以实现血压的定时自动检测。具体方法是用一个压力传感器在袖带放气过程之中同时检测袖带的静压及脉搏波的变化情况。

6 体温测量

温度传感器选用集成数字温度传感器LM92,它耗电低,分辨率高,在10℃~50℃之间最大误差仅有0.5℃。它采用串行的方式直接输出12位数字信号,不占用单片机的A/D转化器资源,数据可以直接由单片机处理,可靠性高,是测量体温的理想芯片。

7 呼吸频率测量

由于使用单片机内置的A/D转化器,所以呼吸频率的测量不像体温测量一样直接由探头发出数字信号,所以选用四电极恒流源电阻桥法来测量呼吸频率,由交流恒流源输出100 kHz 的正弦波信号对呼吸信号进行调制处理,在本仪器内部对调制信号放大,解调,滤波,即可得到较为完美的呼吸信号。然后输入单片机的模拟输入口,再利用单片机内置的16位模数转化器,将模拟信号转化为数字信号,可用于屏显和储存。

8 血氧饱和度

根据郎伯比尔定律采用光电技术测定。鉴于现有探头技术已很成熟,故选用普通血氧探头在此不做赘述。设置定时电路以控制LED发光次序,并将检测到的光电信号转换为电压信号,经放大,滤波,信号基线电平变换和去直流分量等信号调理过程后,输出至具有自动增益调整功能的电压/电流转换电路,然后由积分电路对信号积分,最后用A/D转换器转换成数字信号。为加强信号质量,可配备masimo血氧饱和度套件过滤噪声影响。

9 运算处理部分

由于MSP430F42X系列单片机仅有三对模拟信号输入口,而测量的模拟信号超过三种,因些需要采用分时技术对模拟信号输入口进行复用。如系统原理图所示,通过一片74LS138 h芯片进行译码,将三位单片机接口的状态字转化为8个端口,在某个时间点只有一个端口输出为高电平1,代表与此端口连接的功能模块工作,其余端口均为0,与其相连的功能模块不工作。由于单片机的运算速度很快,因此感觉不到监控参数是分时测量的。

软件使用C语言进行开发。C语言具有实时性高,编写效率较汇编语言高,易读易维护的特点,并且相关的调试技术也很成熟,是开发单片机系统的理想语言。

基于上述的硬件设计,由软件定时,使某个时间点只测量某一个参数,具体测量参数调用相应的子程序进行测量,再将测量数据汇集到相应的储存和显示参数上。

10 输出设备

屏幕方面,使用分辨率为640×480像素的彩色液晶屏,可以提供丰富的色彩。按钮采用加大设计,方便在野外或是移动过程中使用,减少误按率。配置背光,便于在黑暗中查看。

由于显示屏尺寸较小,同屏只显示心电波形和两参数,所以设置切换开关,可手动切换,也可自动每10 s切换一次。

屏幕耗电较大,为解决这个问题,屏幕具备两种模式,在通常模式下,屏幕常亮,用于对需要连续观测的重症患者监护,在省电模式下,屏幕常灭,工作人员可手动点亮屏幕,30 s无操作自动熄灭。在屏幕熄灭的情况下,监护仪依然在工作,依然能储存患者信息可供医护人员以后查看,并且在出现异常情况时能报警并自动点亮屏幕。

11 功耗和电源

根据TI的官方资料,MSP430F42X在工作模式下消耗电流仅400 μA,而待机模式更是低至1.6微安。液晶显示屏工作电流约为200 mA(带背光)充气泵工作时消耗电流500 mA,工作1 min,停止4 min。可视为连续工作电流为100 mA。

其他传感器工作电流总和不超过100 mA,因此整个仪器最大连续工作电流不超过500 mA。本仪器采用4芯锂电池并联供电,电池规格为3.7V 6000 mAH,在整机以最大功耗工作时,工作时间应不低于12 h。考虑到电池老化,在充放电大约600次之后电池容量将下将一半,但此时连续工作时间仍不低于6 h。足以满足大多数情况需要,更远优于市面上现行监护仪1.5~2 h的工作时间。

12 体积体积和重量

由于采用了大规模集成电路,并且尽可能地利用了单片机内部的集成器件和功能,使得元件较少,可以大大缩小电路板尺寸,降到150 mm×80 mm。显示屏,电路板,电池三者采取重叠的布局,长宽均可保持在180 mm×90 mm以内。

为防止野外使用时的摔落和碰撞,外壳应加入一定缓冲的空隙。并在外壳与原件之间布设减震装置。整个仪器的体积最终应在200 mm×100 mm×50 mm左右,重量500 g左右。基本实现了小巧,便携,耐用的初衷。同时,在外壳设计上,对显示屏,按钮,电线接口的易损部件,采取内凹式设计予以保护。

13 结论

该设备具备以下功能:①ECG显示与测量功能:信号采集时可实时显示心电波形和心率,并可存储1 min 的ECG波形数据,存储的ECG波形可重放、冻结、水平滚动,并可通过光标对ECG波形的幅度、相关时间进行测量。②血压测量:其测量范围为0~250 mm Hg(0~33.33 kPa),可同时检测收缩压、平均压、舒张压三个血压指标。③呼吸频率:测量范围0~100 次/ min。④体温:测量范围0℃~60℃,精度0.1℃。⑤趋势图显示功能:可显示24 h 内的心率、血压(收缩压、平均压、舒张压) 、体温、呼吸频率,血氧饱和度的趋势图。

该机可由医护人员随身放置,可配备挂扣,扣于腰带上携行,需要数量较多时,可以大批装箱运送,在使用过程中,可以用简易支架放置于任意平台,也可挂扣于担架等处。配备完善装具时,可以充分发挥,小,灵,轻,便的优势,提供医护人员所需最基本的生理指征。同时,记录的生理数据,也可以在返回后方医院时作为医生判断的依据。无论是在自然灾害,战场救护,野外卫勤保障方面,都有着广泛的用途和显著的作用。

参 考 文 献

[1] 王成,张剑戈,李斌,钱明理,黄盺编著.医疗仪器原理.上海交通大学出版社,2008.

[2] 沈建华, 杨艳琴, 翟骁曙编著. MSP430系列16位超低功耗单片机原理与应用. 北京:清华大学出版社,2004.

[3] 张晞, 王德银, 张晨编著. MSP430系列单片机实用C语言程序设计. 北京:人民邮电出版社,2005.

[4] 魏小龙编著. MSP430系列单片机接口技术及系统设计实例. 北京:北京航空航天大学出版社,2002.