结构化程序设计范文
时间:2023-04-08 03:38:03
导语:如何才能写好一篇结构化程序设计,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。
篇1
1、整体思路清楚,目标明确。
2、设计工作中阶段性非常强,有利于系统开发的总体管理和控制。
3、在系统分析时可以诊断出原系统中存在的问题和结构上的缺陷。
4、用户要求难以在系统分析阶段准确定义,致使系统在交付使用时产生许多问题。
5、用系统开发每个阶段的成果来进行控制,不能适应事物变化的要求。
6、系统的开发周期长。
篇2
【关键字】案例教学 C语言程序设计 课程改革
【中图分类号】TP311.1-4;G642.0
程序设计方法大体上分成两种:一种是结构化程序设计,一种是面向对象程序设计。结构化程序设计思想的原则是:自顶向下,逐步求精,模块化。绝大多数高校对学生进行结构化程序设计思维培养都是通过“C语言程序设计”课程进行的,但是多数课堂在进行“C语言程序设计”课程时都是按照教材的章节进行讲解[1][2],对C语言缺少一个整体的设计,并且实例之间都是离散的,没有关联,这样对于学生形成结构化程序设计思维造成了很大的困难。学生在学习“C语言”之后,往往知道其中的一些概念,如数组、结构体、指针、函数等等,会使用的就会减少一部分,而对“C语言”能够有一个整体的理解,对结构化程序设计思维有深入了解的,能够独立编程[3]的就少之又少。
为了培养学生的“结构化程序设计思维”,让学生对“C语言”有一个整体的掌握,并且能够熟练使用“C语言”进行程序设计,我们采用“全程案例式”教学方式进行C语言程序设计课程改革。
所谓“全程案例式”C语言程序设计教学是指在C语言的教学过程中从头到尾选用一个典型案例,如“学生成绩管理系统”,仿照教务管理平台对学生成绩进行管理。这样的案例学生非常了解,能够对其中的角色功能有明确的认知,这样就很容易分析清楚整个系统的功能模块构成,在此基础上对各个功能模块和数据类型进行设计,从而培养学生的结构化程序设计思维。
一、问题分析
教学人员对教务管理平台都不陌生,在分析问题的时候可以让学生自己设定学生成绩管理系统的角色和功能,然后实现。一般情况下,学生成绩管理系统可以分成三种角色,一是管理员,主要负责访问成绩管理平台成员数据的增、h、改、查等操作,二是教师,主要负责学生成绩的录入、修改、查看等操作,三是学生,可以查看自己的成绩信息。同时三种成员都可以修改自己登陆平台的密码,功能模块划分如图1所示。通过对系统功能模块的划分,可以让学生理解结构化程序设计“自顶向下,逐步求精,模块化”的程序设计思想,并在此基础上,开发对应的功能函数。
二、学生分组
将学生分组,如25名同学分成5组,每组5人,有一位组长。每组分别独立完成以上教务管理平台中对应的功能模块,可以根据本组的讨论有所增删。这样每位同学平均完成两个功能模块,从而保证在课堂教学时间能够完成该项目。组长负责整个案例的任务分配,同时解决小组成员实施时遇到的技术问题,当然组成的最后成绩也会较高。
三、教学内容
仿照工程化的思路,如设计一个产品,需要有工人、原材料、工人。工人使用工具按一定的步骤加工原材料得到一个一个的零件,再将这些零件有机地组装起来就会形成一个产品。C语言的教学内容也可以按照以上思路进行分解,首先要有人,即程序员也就是学生;原材料是C语言的数据类型,包括基本类型(整型、实型、字符型、枚举型)、构造类型(数组、结构体、共用体)、指针类型和空类型;工具是运算符,用来操作某种类型的数据;操作步骤包括顺序结构、选择结构和循环结构;程序员使用工具按照一定的步骤加工原材料就能够得到一个零件,即函数;再将这些函数按图1进行组装就能够形成最后的学生成绩管理系统的源文件,同时能够对存储在外部文件中的人员数据等信息进行访问。[4]
将C语言的教学内容按照内在逻辑分成五大部分,学生容易理解并掌握。
四、教学方式
在教学上,采用“全程案例教学”,第一节课就开始写代码。开发工具可以使用C-Free、Dev-C++、Visual C++等,让学生理解C语言、C++语言和开发工具的区别。
根据问题的需要,首先要设计一个“学生成绩管理系统”的欢迎界面,通过该界面的设计讲解顺序结构,尤其是输出语句的使用。接下来应该是用户权限选择,如“1、管理员 2、教师 3、学生”,这就要用到选择结构,讲解if语句和switch语句。此时要在选择语句中使用一些数据类型,因此可以在此处讲解基本数据类型(字符型、整型、实型、枚举型)。在用户进行选择时要进行选择数据的输入,此时讲解输入语句。此时的程序只能进行一次用户的选择,如果想再次选择则需要重新执行程序,在此处可以进行循环结构的讲解,可以多次选择用户,直到用户自己退出程序为止。在循环结构中要用到相关的表达式,可以在此处进行表达式的讲解。当然,也可以先讲解基本数据类型和表达式,之后再进行顺序结构、选择结构、循环结构的设计。
在选择了相应的用户权限之后,就要执行对应的用户功能,如管理员功能、教师功能、学生功能等。此时给学生讲解程序设计中的模块,即函数,让学生深刻理解模块的概念及实现方式。在进入到相应的函数之后,如学生函数,此时应该确认学生的身份是否合法,通过键入如学号和密码来验证该学生是否合法,如合法则可以查询成绩,如不合法则重新登陆或退出。而学生的信息适合使用结构体类型数据来存储,很多学生信息则需要用结构体数组来存储,在此处给学生讲解构造数据类型(结构体、共用体、数组),通过学生结构体数组来模拟数据库表,在此处给学生讲解相关的数据库知识。学生功能包括成绩查询和修改密码两部分,所以要写两个相关的子函数,此处深入讲解函数的相关知识,如函数的调用、参数传递等。这部分是学生成绩管理系统的核心功能,工作量较大。
在完成相关数据的存储之后,发现关机之后数据就没有了,通过回顾内存与外存的区别,所以要把数据库存储在外存储器上,这就要用到文件。建立若干个文件用来存储管理员、教师和不同班级学生的记录(可用二维数组或多维数组来区别系或班级等),通过对文件的读写来实现对数据库数据的存取,基本达到学生成绩管理系统的使用目标。
在这个过程中,除了必要的知识介绍外,重在培养学生的结构化程序设计思维,理解C语言的几大组成部分并熟练使用,同时养成设计代码的规范性。
五、考核方式
全程采用案例教学就不适合出试卷进行考核,因此在考核方式上更适合过程化考核[5]。我们将考核内容分成两个部分,平时考核占60%(出勤占20%,平时训练占80%),最终考核占40%(小组考核占50%,个人考核占50%)。这样可以弱化对知识点的考查,重在考查学生对程序的分析与设计的能力。
六、实践教学
在实践教学环节(课程设计[6])可以安排类似的管理系统供学生分析和设计,此时每组要求选择不同的系统进行设计,每组独立设计系统功能框图、分工并实现,从而巩固并强化课堂所学的内容。
七、第二课堂
第二课堂可以参加相关的学科竞赛,如“ACM大学生程序设计竞赛”、“蓝桥杯全国软件和信息技术专业人才大赛”等学科竞赛,从而开阔学生的视野,加强学生的实际编程能力。当然,如果想参加相关的学科竞赛,还需要有一定的数据结构知识和算法知识,这需要对学生进行相关的培训或由学生自学完成。这对于学生是一次很好的升华,学生获得的相关学科竞赛读书对于将来的就业是一个很好的准备。
综上,通过一个典型案例将C语言程序设计课程内容有机地组织起来,将C语言教学内容分成五大部分,使学生容易理解并形成一个较强的印象。在实验室教学,人手一机,边讲边练,重在培养学生分析问题和设计程序的能力,培养学生的结构化程序设计思维。
参考文献
[1]蒲海波 兴趣驱动的案例教学在C语言教学中的应用[J]计算机光盘软件与应用 2013年第7期:192-193
[2]丁海燕 高级语言程序设计案例教学模式的探讨[J]计算机教育2011年第8期: 65-68
[3]吴美红 基于CDIO模式的案例教学在C语言程序设计中的应用[J]电脑知识与技术 2013年第11期:2632-2633
[4]李伟光 提高C语言实际应用能力的研究与实践[J]煤炭技术2012年11期:242-243
[5]薛小锋 案例教学在非计算机专业C语言程序设计教学中的应用[J]江苏技术师范学院学报2010年第4期:80-82
[6]波 模块化案例教学在C语言程序设计课程中的应用[J]计算机教育 2009年第21期:62-65
篇3
【关键词】信息管理专业;面向对象程序设计;教学改革
面向对象程序设计具有抽象、封装、继承与多态的特点,比传统的结构化程序设计具有更高的可重用性、易扩展性和易维护性,目前它已成为开发大中型应用软件的主流方法。从软件产业发展角度来看,程序设计已经从传统的结构化程序设计转向面对对象的程序设计方法。因此为顺应市场需求,国内各个高校的计算机、信息管理专业及其他相关专业都开设了面向对象程序设计课程,如Java、VB、VC。我校信息专业将《面向对象程序设计》确立为学生必修的专业基础课程,旨在培养学生熟练掌握面向对象的程序设计思想和设计方法,应用面向对象思想解决信息分析处理、应用系统开发等实际问题,具备较强的信息处理分析和软件开发能力。面向对象程序设计虽作为软件开发的常用语言,但它是把所学的专业知识转化为应用的桥梁,在应用型人才培养过程中显得尤为重要,所以,《面向对象程序设计》课程在整个信息专业教学体系中占据非常重要的地位。
随着21世纪全球信息化进程的发展,教育肩负着培养民族创新精神和高素质创新人才的历史使命。为此,我专业对近年来《面向对象程序设计》课程教学情况进行了调研,分析教学过程中存在的问题,探讨新的教学方案,培养创新型应用人才,以提高学生素质为宗旨,以培养创新精神和实践能力成为课程教学改革的最终目标。
1 教学中存在的问题
一直以来,根据我校信息管理专业的人才培养方案,在学生大一时期先开设结构化程序设计语言《C语言程序设计》,然后再开设《面向对象程序设计》(我校选择Java语言),主要目的是想让学生通过结构化语言作为入门,构建起一定的编程思想,为后续课程打下基础,进而学习更深的编程方法。但从以往的教学情况看,存在着以下几个问题:
第一,学生先学习C语言程序设计,然后学习Java程序设计,存在着从结构化程序设计到面向对象程序设计思想的转变,而面向对象编程思想与面向过程编程思想差异较大,学生在学习上有一定的难度,因而学生感觉不易接受,导致不良的教学效果。
第二,由于学生在学习面向对象程序设计课程之前,都学习过C语言,对编程语言有了一定的了解,有很多学生在学习C语言的过程中已经对程序设计类课程开始望而却步了,甚至对编程类课程采取放弃的态度,他们觉得“C语言都没有学好,Java肯学也学不好了”,导致对编程失去兴趣和学习的信心,因此产生了消极抵触的情绪,这种心态严重影响着这门课程的教学效果。
第三,面向对象程序设计语言所涉及的概念多、语法结构复杂,学生在学习的开始阶段往往出现不能理解掌握面向对象的基本思想,如类、对象及通过类调用方法等设计思想,使得学生常常感到茫然,缺乏学习兴趣,教学效果差,学生的程序设计能力较低。
第四,在教学过程中存在“重语言轻思想”现象。“以语法知识为主线,按照教材章节讲解语法知识”来安排教学内容,往往忽视了培养学生面向对象程序设计的思想,导致学生认为是又学习一门编程语言。并且语法的内容也增加了学生学习的枯燥,而且对于基本结构等知识显得重复了。
第五,教学内容零散,缺乏系统观念。老师在授课时一般侧重于零碎知识的教学,没能把知识连贯成为一个整体“只见树木不见森林”。学生只学到了零散的语法知识,基本上是围绕着对基本语法的理解来解决一些简单的问题,而不能系统地运用这些语法练习开发具有一定复杂程度的系统。同时由于教学中用到的实例程序与实际工程应用联系不够紧密,整个教学缺乏整体性和实用性,导致学生综合应用能力比较差,使得学生在学习过程中不能很好地将所学到的知识融于到实际工作中。
2 教学改革实践
面对学生出现的“学会但不会用”尴尬状况,如何让学生在学习完面向对象程序设计课程后能充分掌握面向对象的设计思想和方法,并能真正满足社会工作岗位的需求,是我们迫切要解决的问题。为此,我们的教学要不断探索新的方法,以培养“应用型人才”为目标,提出一些建设性的改革措施:
2.1 适应社会市场需求,整合教学内容体系
目前,程序设计已经从传统的结构化程序设计转向面对对象的程序设计,在实际工作岗位中很少设计结构化的编程。因此,为了适应社会市场需求,并根据学生实际学习的情况,整合教学内容体系。考虑取消开设结构化程序语言课程,直接进入面向对象程序设计的思想,并增加面向对象程序设计课程的学时,让学生能够构建一个完整的面向对象程序设计思想的体系结构。
2.2 以案例导入知识点,讲解教学内容
在教学过程中以一个案例为主线来展开,把相关的知识点融入案例的各个环节中去,层层推进,直至得到一个完整的解决方案,从而达到学习知识、培养能力的目的。把实际的案例分解成若干个简单的任务,贯穿在课堂中讲解,从而让学生在实际的案例中学习Java语言知识。学生通过案例研究,培养一种独立分析和处理问题的能力,这样不但克服了传统教学方式“传递――接受”存在的问题,而且还能增强学生的自信心,提高学习的效率,发展学生创造性思维,以培养其解决实际问题的能力。
2.3 采用任务驱动的教学方法
以任务引路,学生边学边练,教师与学生互动,教与学双方共同参与,学生自主完成学习任务的教学活动。在授课过程中,教师在讲解每个知识点前,先提出相关内容任务,并且以现实生活中常见的例子,这样可以让学生有着直观感受,带着疑问听课,激发学生学习的兴趣。
2.4 加强实践教学,提高学生的综合运用能力
Java程序设计是一门实践性非常强的课程。毕业学生的亲身经历使我们认识到,如果只是一味地抱着课本看,不亲手编写程序,不用它解决实际问题,永远都学不会编程。综合运用所学知识设计开发有一定复杂程度的与实际联系紧密的系统,根据任务模块对学生分组,让学生在整个过程中,能够提高自己团队合作精神、对知识的综合运用能力及项目经验。
2.5 开展情景模拟
开展情景模拟,虚拟项目管理是引导学生培养其综合实践能力的举措,它为学生充分展示自己的创造性和聪明才智提供了机会和环境。组织学生以小组为单位,采用工作组的形式,让他们身临其境,扮演不同的角色,设身处地去当一个软件工程师,把自己置身于一个实际项目中。这样既可以增加学生对软件开发项目的感性认识和兴趣,又提高了他们的管理者才能。同时通过软件开发的实践,积累经验以提高分析和解决问题的能力,并激发学生实践的积极性与创造性,开拓思路,进行新创意,培养创造性的工程设计能力,并且促进综合素质的提高。
总之,顺应信息专业的发展要求及市场需求,我们正努力抓住课程特点,明确教学目标,不断改进和提高教学方法,通过多种途径培养学生学习的主动性、动手能力、应用能力和创新能力,实现真正意义上的“应用为本,学以致用”。
【参考文献】
[1]丁智国,钱婕.面向对象程序设计课程教学改革[J].计算机教育,2011(9):9-11.
[2]黄素萍.面向对象程序设计教学改革模式研究[J].教育教学论坛,2013(2):264-265.
篇4
关键词 高职教育 C语言 结构化编程 互联网
如何提高高职计算机类专业学生非图形模式下的结构化编程能力,是高职计算机教育中的一个普遍问题。作者通过三年的努力,对“C语言程序设计”课程在教学内容、教材建设、实训设计、网站建设和考核方式等诸多方面,进行了大胆的改革和探索,将电子教材、电子教案、学习论坛、编程工具、学习资料等,整合成为学习网站,在教学过程中通过论坛程序不同版本,实施案例驱动,课后通过QQ群进行辅导答疑,通过论坛、电子邮件进行作业提交批改,建立了基于案例驱动的结构化编程教学模式。本文具体论述了基于案例驱动的高职C语言结构化编程教学的过程和方法。
1 教学内容
在课程设计上,针对高职计算机专业学制短,技能要求高的特点,提出了“一条线两阶段,三结构四循环”的教学模式。
“一条线”是指在一年级的编程教学课中,贯彻C语言一条线。曾经有一种观点,认为高职计算机专业的编程语言教学,直接从面向对象语言开始学习,可以节约时间。但是,70%的企业依然要求学生具备面向过程的结构化编程能力。考虑到企业的需求,结合后续的课程安排,我们决定在一年级的课程安排上,贯彻C语言“一条线”,即在第一学期,开设“程序设计基础”,第二学期,开设面向过程的“C语言程序设计”。
“两阶段’指课程安排分为“程序设计基础”和“C语言程序设计”两个阶段。“程序设计基础”解决程序的基本结构,重点在建立学生的结构化程序的基本框架和概念;以C语言为基本语言,使学生能有实际操作的平台,但准确把握“把C语言作为伪语言”的原则,不让学生陷入C语言多变的泥淖,而把注意力放在结构化程序的基本结构上。“C语言程序设计”放在解决C语言的使用上,把握“C语言”是编程工具而不是研究对象的原则,根据企业的编程规范,对“C语言”进行简化,重点是如何使用C语言解决一般复杂程度的结构化编程问题。
“三结构”是指在一年的学习中,学生要学习三个成绩管理软件的编程,分别是基于一维数组、二维数组和动态结构数组。从企业实际应用来看,动态空间的使用,可以用动态数组解决。因此我们去掉了链表,重点是让学生写出有工程实际意义的结构化程序。
“四循环”是指编写基于“三结构”的每一个成绩管理软件过程中,教师四个以上的程序版本,引导学生改写、增加函数,让学生直观地看到软件的功能是如何一步一步构建起来的。
结构化程序设计的教学中,如何让学生建立起结构化程序的框架是很困难的。一个简单的成绩管理软件,代码就超过300行。对初学者来说,看懂超过100行的程序就需要很长时间,学生又如何能在短短的课堂时间里通过增加/改写函数来增加功能呢?这也就是很多学生学完了C语言程序设计,依然不能编写一个简单的应用程序的主要原因。我们发现通过论坛程序版本,利用工具软件BeyondCompare,比较不同的程序版本之间的差异,可以让学生直观地看到软件的功能是如何一步一步构建起来的,如图1所示。程序的第一个版本,就是一个主函数,不超过10行,只显示程序的几项功能菜单,学生很容易理解,然后通过第二个、第三个版本,每一个版本实现或改进一个菜单的功能,直到最后版本。
通过图1,我们可以看到程序功能的增加是由哪些代码实现的,而通过不断反复的比较,学生就可以掌握结构化程序设计的过程和方法。
在教学过程中,通过比较版本,让学生直观地看到复杂的程序功能是如何由简单的函数一个一个构成的。学生经过“程序设计基础”的课程设计,基本掌握主函数与模块函数的作用和相互关系,可以看懂超过100行的C语言源程序,理解基于一维数组的成绩管理系统;在“C语言程序设计”的课程设计中,学生对主函数与模块函数的理解更加深入,可以看懂超过300行的C语言源程序,理解基于动态结构数组的成绩管理系统,掌握主函数的设计方法,并按照规范的格式写出自己的函数。回想三年前,因为没有采用这种方法,只要是超过20行的程序,学生就普遍反映看不懂。由此可见,采用新的方法后,学生编程能力的提高十分明显。
2 教材建设
2004年9月清华大学出版社出版了作者主编的21世纪高职高专规划教材《程序设计基础》,教材主要在三个方面进行了改革。
(1)强调把生活中的问题转化为程序的能力,使学生真正能够编写实用的程序
在教材编写思想上,重点放在培养学生把生活中的问题转变成为程序并进行处理的能力,强调转变讲授思路,推行引导学生首先想清楚“我要做什么?”,然后才教给学生“如何做”,最后上机进行验证的三步教学法。
在教材的编写风格上,对全书所有的例题进行了通盘的考虑,在循环、数组、函数和结构化设计等单元,所有的例子都有前后的联系,强调内容的前后衔接,特别注意工程规范的引入,在变量的命名、程序格式方面,均按工程要求进行。在案例选择上,全部采用工程实际和实际生活中的案例。
(2)提出了以“三大区域”为特色的c程序的基本框架
通过把一个基本的C程序从上到下分成预处理区、变量声明区、执行语句区“三大区域”为特色的C程序的基本框架,让学生树立正确的程序格式与规范。“三大区域”概念的提出,明确规定了程序的基本框架,让学生从一开始就按固定的格式进行编程,养成良好的编程习惯。
(3)提出了使用函数的“三大步九要素”的基本方法,建立使用函数的清晰框架
我们提出的使用函数的“三大步九要素”的基本方法,在教学中取得了很好的效果。
所谓“三大步”,是指我们在使用自定义的函数时,对函数进行声明、定义和调用。三大步按顺序进行。
所谓“九要素”,是分别指函数声明、定义、调用各有三要素共九点:函数声明的三要素:返回值的类型、函数的名字、形式参数。函数定义的三要素:形式参数、功能、返回值。函数调用的三要素:名字、实际参数、返回值。通过对“九要素”的理解掌握,学生能够建立起使用函数的清晰框架。
3 实训设计
对高职学小的技能培养,实训是很重要的环节。我们采用了项目驱动的思想来设计实训项目,每一单元的实训,都是构成最终程序的不同版本,在“程序设计基础”头程序版本8个,“C语言程序设计”共程序版本10个,构成了实用的软件框架,学生相当于参与了一个中等复杂程度的软件开发,积累了经验。在今后的实际工作中,完全可以以此为模板,进行结构化程序的开发。
4 网站建设
利用互联网技术,建立基于互联网的学习资源。2003年建立了“光华之窗”教学网站,在网站平台上,将电子教材、电子教案、学习论坛,编程工具、学习资料等,整合成为学习网站,设计了“程序设计基础”、“C语言程序设计”教学论坛,两年来积累了完整的教学过程资料。可以说,网站的建设和运行,为课程的质量提供了保证,避免了“课随老师走”的问题。
5 考核方式
篇5
2、线性表的定义:线性表的顺序存储结构及其插入与删除运算。栈和队列的定义;栈和队列的顺序存储结构及其基本运算。线性单链表、双向链表与循环链表的结构及其基本运算。
3、树的基本概念:二叉树的定义及其存储结构;二叉树的前序、中序和后序遍历。顺序查找与二分法查找算法;基本排序算法(交换类排序,选择类排序,插入类排序)。
4、程序设计基础:程序设计方法与风格。结构化程序设计。面向对象的程序设计方法,对象,方法,属性及继承与多态性。
5、软件工程基础:软件工程基本概念,软件生命周期概念,软件工具与软件开发环境。结构化分析方法,数据流图,数据字典,软件需求规格说明书。结构化设计方法,总体设计与详细设计。
6、软件测试的方法:白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。程序的调试,静态调试与报考调试。
7、数据库设计基础:数据库的基本概念:数据库,数据库管理系统,数据库系统。数据模型,实体联系模型及 E-R 图,从 E-R 图导出关系数据模型。
篇6
计算机二级公共基础知识考试大纲基本要求:
1、掌握算法的基本概念。
2、掌握基本数据结构及其操作。
3、掌握基本排序和查找算法。
4、掌握逐步求精的结构化程序设计方法。
5、掌握软件工程的基本方法,具有初步应用相关技术进行软件开发的能力。
篇7
关键词:循环结构;C语言程序设计;非计算机专业
中图分类号:TP393文献标识码:A文章编号:1009-3044(2012)26-6323-05
Discussion on Loop Structure Teaching in C Language Programming of Non-computer Specialty
XIA Yun
(College of Mathematics and Computer Science, Anhui Normal University , Wuhu 241000 , China)
Abstract: The teaching of loop structure is an important component in C language programming. This paper designed 5 teach? ing examples for the students of non-computer specialty. This paper analyzes the teaching progress in detail and emphasizes the teaching points of the loop structure teaching. And it produces a good effect in the actual teaching progress.
Key words: loop structure; C Language programming; non-computer specialty
大学计算机应用基础作为一门课程大约于20世纪90年代中期开设,现在已成为大学里的计算机学习基础课程,是所有非计算机专业大一新生的必修公共基础课,也是培养学生基本素质的一门重要课程[1]。作为大学计算机应用基础课程,理工类专业大部分会开设程序设计课程,有部分专业会开设C程序设计课程。C语言是一种语法灵活、适用范围广的高级程序设计语言。结构化程序设计方法有三种基本结构:顺序结构、分支结构和循环结构。顺序结构和分支结构比较简单,循环结构从教学上来说是重点也是难点。本文主要对C语言循环结构教学进行探讨。
1教学内容的分析
C语言循环结构编程主要涉及到三种循环结构语句while、do-while和for。本文作者认为非计算机专业开设这门课程,主要是讲解程序设计的方法,培养学生的编程能力和思维能力,因此,在教学中上述的三种语句可以以while语句为重点,讲解循环结构编程的思想,do-while和for语句可以简单举例说明它们的流程。在讲解循环结构编程分析时,可以以流程图或者用自然语言逐步描述操作步骤的形式,指出循环结构编程关键是找到在什么情况下需要反复执行某些操作,并找到这些反复执行的操作是什么。
2教学用例的分析
在课程教学过程中,需要用一些例子来配合讲解循环结构的编程。在教学时,选取一些比较合适的例子,可以很好地帮助学生理解所教授的内容。教师在教学过程中除了要加强课堂启发外,尽可能结合课程自身的特点,注重学生现场演练,并采用任务驱动、师生互动、鼓励学生等教学手段来提高其学习的主动性和积极性[2]。
2.1导入的例子
在教学活动中,讲授后面知识内容时要与前面知识相互呼应[3],因此,在上课时,可以以这样的问题开始,例题1:用户输入正整数n值的大小后,要求计算1+2+3+…+n,将所得出的结果输出。这个例题主要是复习前面的内容,复习输入、输出函数和分支结构的编程。该问题提出后,可以让同学们思考一下,然后再进行提问,提问时可以让学生说出编程思路,若课堂时间比较多也可以请学生直接编写源代码并运行。
提问时,有的同学可能给出如下的顺序结构编程的解答:
步骤1:输入整数n
步骤2:求s=(1+n)*n/2
步骤3:输出s
while (j
{输出i*j
j++;}
由此,得出在循环while (i
循环结构是结构化程序设计的一种重要结构,在教学中不仅需要学生掌握这种结构的语法,更重要的是培养学生的设计思维和思考方法,本文主要是从教学的角度,对循环结构的整个教学过程设计了5个教学用例,并对其进行展开分析,重点是让学生掌握循环结构编程的思想,实际上就是在问题分析过程中找循环条件和循环操作,在实际教学中取得了较好的效果。
[1]何文海,吴明珠,谢剑刚.情商与智商相结合的教学模式[J].现代计算机,2007(8):73-75.
[2]郭海花,陈允芳,王健.非计算机专业中“VB程序设计”教学方法初探[J].计算机教育,2009(18):98-100.
篇8
关键词:C语言;结构化程序设计;循环结构
中图分类号:TP
文献标识码:A
文章编号:1672-3198(2010)13-0329-02
1 for循环语句的应用规则
C语言中的for循环语句使用非常灵活,不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句。
1.1 for循环语句的格式
for(表达式1;表达式2;表达式3)语句;
这里边的“语句”就是循环体语句,若其中只有一条语句,可以不用花括号,若多于一条,则必须用花括号将这些循环体语句括起来。
1.2 for循环语句的执行过程
(1)先操作表达式1;
(2)操作表达式2,若其值为真(值为非0),则执行for语句中的循环体语句一次,然后执行下面第三步,若为假(值为0),则结束循环,转到第5步;
(3)操作表达式3;
(4)转回上面第2步骤继续执行;
(5)结束循环,执行for语句下面的语句。
一定要搞清楚这三个表达式的执行次序!且要注意表达式1只执行一次!
通常,表达式1用来为循环变量赋初值,表达式2用来设置执行循环的条件,表达式3用来改变循环变量的值。所以for语句的格式也可以这样描述:
for(循环变量赋初值;循环条件;循环变量增值)语句;
2 fo与while语句的编程对比
通过结合例子,如求sum=1+2+3+…+100的和,来分别看一下for和while语句的编程效果。
首先用for循环语句来编程实现
main()
{
int i,sum=0;/*定义变量i,sum为基本整型,且为sum赋初值0*/
for(i=1;i
printf(“sum=%d”,sum); /*退出循环后的语句,即输出sum的值*/
}
再用while语句进行编程实现
main()
{
int i=1,sum=0; /*定义变量i,sum为基本整型,且为它们分别赋初值1和0*/
while(i
{
sum=sum+i; /*将变量i与其前各项之和累加*/
i++; /*循环变量增加1*/
} /*循环体多于一个语句时要用花括号括起来*/
printf(“sum=%d”,sum); /*退出循环,输出sum的值*/
}
对比以上程序,显然我们发现,用for语句在编程语句上更简单、方便,编程效率更高。而while语句在编程过程中,要书写更多的语句。
3 for语句的深入应用
(1)for语句一般形式中的表达式1可以省略,此时应在for语句之前给循环变量赋初值。注意省略表达式1时,其后的分号不能省略。如for(;i
(2)表达式2也可以省略,即没有判断循环的条件,此时编译系统将循环条件默认为真,循环将无终止地循环下去,这种情况可以在循环体中设置条件控制循环。
例如:for(i=1;;i++)sum=sum+i;为死循环语句,若使其实现1+2+3+…+100后结束循环,则可以在循环体中加上控制条件:
for(i=1;;i++){if(i>100)break;sum=sum+i;}
(3)表达式3也可以省略,即没有设置用来改变循环变量的语句,循环将无终止地循环执行下去,但此时程序设计者可以在循环体中加上用来改变循环变量的语句。如:
for(i=1;i
{sum=sum+i;
i++;/*循环变量增加1,改变循环变量的值*/
}
另外表达式3不一定都要写成如i++这样的形式,要根据循环变量的实际变化规律而定,如可以写成这样的形式:i=i+2或i=i*3…。
(4)可以省略表达式1和表达式3,只有表达式2即只给循环条件。此时可以在程序的适当位置对循环变量赋初值和改变循环变量的值。如:
int i=1,sum=0; /*定义变量i,sum为基本整型,且为它们分别赋初值1和0*/
for(;i
sum=sum+i++; /*改变循环变量的值*/
(5)三个表达式都可以省略。
如:for(;;)语句;
即不设初值,没有判断条件(认为表达式2为真值),循环变量不增值,将无终止的执行循环体。在实际应用中程序设计者可以将这三个内容分写在程序的适当位置。
如:
main()
{
int i=1,sum=0; /*定义变量赋初值1和0*/
for(;;)
{if(i>100);{sum=sum+i++;}}/*为循环设置控制条件,改变循环变量的值*/
printf(“sum=%d”,sum);
}
(6)表达式1也可以是设置循环变量初值的赋值表达式,也可以是与循环变量无关的其他表达式.且可以有多个,此时用逗号将其分隔开,如:
for(i=1,sum=0;i
{
sum=sum+i;
}
(7)当循环的次数不确定时,表达式2即控制循环的条件语句,其判断对象就不能是循环变量了。如:
已知s=1+2+3+…+n,求满足s>=1000的最小n值。
这个程序的循环执行的条件为“s
main()
{ int n,s; /*定义变量赋不赋初值*/
for(n=1,s=0;s
s=s+n; /*将变量n与其前各项之和累加*/
printf(“n=%d”,n-1); /*,输出n的值*/
}
用while语句可以这样编写:
main()
{int n=1,s=0;
while(s
s=s+n++;
printf(“n=%d”,n-1);
}
上面这个程序循环的次数在编写程序时不能确定,遇到这种情况人们首先想到的是用while语句来实现循环,以为for语句无法实现,其实这是一种误解。在BASIC语言中for循环只能用在循环次数确定的循环当中,而C语言中for语句格式却有其特殊性,而应用更具灵活性。
参考文献
篇9
关键词:循环控制,goto语句,while语句,do…while语句,for语句
1、引言
循环结构式结构化程序设计的三种基本结构之一。在要求多次重复执行时,循环结构会使程序简单高效,具有很大的优越性,因此应用相当广泛。。日常生活中,很多问题都要用到循环控制,如输入全校学生成绩, 求若干个数据的和, 求阶乘,这些都是重复处理的问题。。循环就是重复,可以解决这类问题。
2、循环控制
2.1、循环结构
循环结构, 又称重复结构, 即反复执行某一部分的操作。循环结构是结构化程序设计的三种基本结构之一。在C语言中, 主要有以下四种循环语句:用goto语句构成循环、用while语句实现循环、用do…while语句实现循环、用for语句实现循环。这四种语句都可以完成循环结构的功能,但是在语法、程序流程上又有各自的特点。(以下程序均以求为例)
2.2、goto语句以及用goto语句构成循环
goto语句为无条件转向语句,它的一般形式为:
goto 语句标号;
语句标号用标识符表示,它是由字母、数字、和下划线组成,其第一个字符必须为字母或下划线,不能用整数来作标号。例如:
goto part_1;
是合法的,而
goto 111;
却是不合法的。
由于滥用goto语句容易使程序流程无规律、可读性差,所以主张限制使用它,但是也不绝对禁止。goto语句一般与if语句一起构成循环语句。例如:
#include<stdio.h>
void main()
{
int i,sum=0;
i=1;
loop:if(i<=100)
{
sum=sum+i;
i++;
goto loop;
}
printf(“%d ”,sum);
}
运行结果为:5050
2.3、用while语句构成循环
while语句用来实现“当型”循环结构,一般形式如下:
while(表达式) 语句
当表达式为非0值时,执行while语句中的内嵌语句。例如:
#include<stdio.h>
void main()
{
int i,sum=0;
i=1;
while(i<=100)
{
sum=sum+i;
i++;
}
printf(“%d ”,sum);
}
需要注意的是:
(1)如果循环体包含了一个以上的语句,应用花括号括起来,以复合语句的形式出现。如果不加花括号,那么while语句的范围只能到while后第一个分号处。
(2)循环体中应该有能使循环语句结束的语句,否则会造成死循环。
2.4、用do…while语句实现循环
do…while语句,要先执行循环体,再判断循环条件是否成立。其一般形式为:
do
循环体语句
while(表达式);
具体是这样执行的:先执行一次指定的循环体语句,然后判别表达式,当表达式的值为“真”(即非0)时,返回重新执行循环体语句,如此反复,直到表达式的值等于0为止。例如:
#include<stdio.h>
void main()
{
int i,sum=0;
i=1;
do
{
sum=sum+i;
i++;
}
while(i<=100);
printf(“%d ”,sum);
}
2.5、用for语句实现循环
for语句的一般形式为:
for(表达式1;表达式2;表达式3) 语句
其最简单的理解形式如下:
for(循环变量赋初值;循环条件;循环变量增值) 语句
例如:
for(i=1;i<=100;i++) sum=sum+i;
需要说明的是:
(1) for语句的一般形式中“表达式1”可以省略,但是其后面的分号不能省略。这时应在for语句之前给循环变量赋初值。
(2) 若表达式2省略,则不判断循环条件,循环会无终止地进行下去,即认为表达式2始终为真。
(3) 表达式3也可省略,但这时程序设计者应另外设法保证循环能正常结束。
(4) 可省略表达式1和表达式3,只有表达式2,即只给循环条件。
(5) 三个表达式都可省略,此时无终止地执行循环体。
(6) 表达式1可以是设置循环变量初值的赋值表达式,也可以是与循环变量无关的其他表达式。
(7) 表达式一般是关系表达式或逻辑表达式,也可以是数值或字符表达式,只要其值为非0,就执行循环体。
由此可见,for循环语句的使用方法最为灵活。
2.6、四种循环的比较
(1)除goto语句不主张使用外,其他三种语句一般情况下可以互相替换,处理同一问题。。
(2)在while和do…while语句中,因为只能在while后的括号内指定循环条件,所以循环体中应当包含能使循环趋向结束的语句。
(3)for语句可以在表达式1中实现循环变量的初始化,而while和do…while语句应在while和do…while语句之前完成循环变量的初始化。
(4)除goto语句和if语句构成的循环外,其他三种语句都可以用break语句跳出循环,用continue语句结束本次循环。
3、结束语
循环结构和顺序结构、选择结构共同作为各种复杂程序的基本构造单元,在程序设计中占有重要地位。只有认真分析总结,才能熟练掌握循环结构的概念和使用,提高编程效率和质量。
参考文献:
[1]谭浩强.C程序设计.北京:清华大学出版社,2005.
[2]C编写组.常用C语言用法速查手册.北京:龙门书局,1995.
篇10
论文摘要:信息资源的价值越来越高,建设以数据库为中心的管理信息系统,对提高金融管理水平和生活质量具有重要的意义,本文以具体实例阐述了面向对象程序设计方法的特点,并分析其优点和不足的地方,以便于在经济工作中运用面向对象软件开发实践方法具体设计相关管理信息系统。
1前言
随着我国经济信息化工作的不断发展提升,对金融工作者的计算机应用知识要求越来越高,有些企业的信息系统正面临从传统的核算软件向管理决策性的大型管理软件的再开发。当前我国企业经济发展对管理信息系统开发的需求很大,如何正确安排软件的结构,合理组织、管理软件的生产,不仅是从事软件开发专业人员的事,也是广大从事金融管理工作人员及学员必需掌握的知识,金融工作人员经常就会被要求加入到系统开发中去,向系统开发人员提供有关专业技术支持,帮助开发人员了解企业的财务处理程序、经营过程,管理要求及用户的信息需求等。为了缩短了软件的研制时间,提高了软件的开发效率,面向对象程序设计由此应运而生。面向对象事件驱动程序设计方法是程序设计方法的一次变革.我们应迎头赶上井掌握这门新技术。
2面向对象方法程序设计(00)的基本过程
计算机软件技术发展非常快,越来越多的实用软件工具有不同程度的面向对象自动编程功能,软件工程各阶段的自动化程度也将越来越高.面向对象程序设计是目前程序设计方法的主流,是程序设计在思维和方法上的一次巨大进步。WWW.133229.coM面向对象程序设计思想是面向对象,即设计的重要任务在于描述对象,程序是由事件驱动的,因而,在执行过程中,持续等待的是一个发生在对象上的事件。而发生什么事件则要看使用者的操作,如单击、双击鼠标等。至于下一步的程序流向,则要看驱动的是什么事件。这类程序设计的主要目的是从任何方便与简化使用人手,由使用者控制程序流向,这在一定程序上增加了编程的难度,以基于vfp6.0面向对象的程序设计应用为例,假设某储户到银行提取存款x元,试问银行出纳元应如何付款最佳(即各种票颊钞票总张数最少)。
2.1分析
可以从最大的票额(100元)开始,算出所需张数,然后在剩下的部分算出较小面额的张教,直到最小票额(1元)。
2.2设计步辣
(l)建立应用程序用户最界面。
选择“新建”表单设计器,增加一个命令按钮command1、14个标签labeli_label14,7个文本框texti_text7。
(2)设置对象属性.如表i:
表单的默认按钮
(3)编写程序代码:
说明:文本框的interactivechange事件当文本框中的内容被改变时发生。
2.3建立程序界面与程序运行结果
在企业的金融信息系统中其它应用需求诸如:求各种所得税的纳税情况,水电费收支情况,工资管理情况等应用,软件需求大,需求的具体要求各有千秋,程序代码和界面是千变万化的,系统开发人员和信息管理应用工作者应根据具体的要求按一定的语法规则去改变程序的结构和方式,形成各自的风格,以满足企业信息管理系统对应用软件日益增长的需要。
3面向对象系统开发(00)方法的原理
面向对象方法是在吸取结构化思想和优点的基础卜发展起来的,是对结构化方法的进一步发展和扩充。各种分析方法在财经软件开发过程中墓本目标是相同的。都以较低的成本开发高质量的软件,系统开发从问题域中的实体与关系出发,体系结构是由对象类及其关系构成,对象之间通过消息传递信息,通过执行服务一消息链完成指定功能,一旦用户要求修改,可以只更改局部内容即可。但不管采取什么开发方法,软件开发的墓本活动包括:需求定义、设计(design),实现、验证/确认,一个面向对象的程序的每一成份应是对象,计算是通过新的对象的建立和对象之间的通信来执行的。“面向对象”一词是针对“面向过程’一词提出的,是在本质上不同于传统的结构化方法的一种新方法,但其是基于或扩展结构化的思想,且包含三个基本的原理:封装、继承及多态。面向对象方法是吸取结构化方法的思想和优点的基础上发展起来的,是对结构化方法的进一步发展和扩充。
4面向对象系统开发(00)方法的特点和发展趋势
面向对象程序设计方法是一种正在发展中的方法,它认为客观世界是由对象组成的,用对象表示软件应用领域里的事物,用消息传送表现事物之间的相互联系,它用对象和消息来描述事物及其相互之间的联系,用类和继承来描述对象,建立问题或模型、描述系统。它是一种运用对象、类、继承、聚合和消息等概念来构造程序的设计方法。面向对象的程序设计方法主要的构成可为:对象+类十继承十消息。软件系统利用以上四个概念进行设计或实现的,使认为其是面向连接的.面向对象程序设计的特点是唯一性,从前一阶段到后一阶段高度连续,将面向对象分析ooa、面向对象程序设计oop、面向对象设计ood集成到生存期各阶段中,相对于结构化程序设计方法来说.面向对象程序设计方法具有其独到的以下优点:开发方法的唯一性,开发阶段的高度连续性.表示方法的一致性。问题空间实体的自然表示,减轻了设计者的负担。设计之初不必考虑很完整的地方,建立完整的体系结构,可促进复用性,易于维护,易于修改,可合理利用其共同性,减少其复杂性。
例如,在基本的发visualfoxfro,vi-sualbasic.visualc++中,控件(control)、表单(form)等都是一个个对象.对其中对象的操作,可以通过属性、事件和方法来实现。面向对象是当前软件方法学的主要方向,也是目前最有效的开发方法之一。其基本思路是:把一个复杂问题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。在应用中,面向对象的分析方法首先定义对象及其属性,根据问题域中的操作规则和内在性质定义对象的行为特征(服务),建立状态模型,用状态模型描述对象的生命周期,分析对象之间的关系,采用封装,继承,消息通信等原则使问题域的复杂性得到控制,根据对象及其生命周期定义处理过程。当然,面向对象设计方法有很多不足之处,在开发大型软件方面,面向对象设计方法无疑其有很好的优势,但这种优势只有其在开发大型软件上才体现出来,软件的重用使其冗余相对较大。对于小型软件和要求讲究效率的场合来讲,结构化程序设计方法仍有其使用的必要。
以金融管理信息系统为例,随着金融软件的推广应用,企业电算化应用水平不断提高,软件已不能满足企业管理水平提高的需求,为此我国金融软件开发应用工作者又相继推出了atm系列、银证转账软件产品,井与会计管理软件功能相关联和对接,主要包括:账务处理、资金管理、帐务分析、销售等功能,在管理型软件各功能模块中还将满足纳税处理、提供审计线索等功能需求。将推出成熟的商品化金融企业管理信息软件,以实现企业内部物流、资金流与信息流的一体化管理,实现管理与决策有机统一,并通过建立在internet/intranet/extranet上,实现企业内部资源与企业外部资源构成的整个供应链的管理.