首页 优秀范文 程序设计的结构

程序设计的结构赏析八篇

发布时间:2023-08-03 16:44:32

序言:写作是分享个人见解和探索未知领域的桥梁,我们为您精选了8篇的程序设计的结构样本,期待这些样本能够为您提供丰富的参考和启发,请尽情阅读。

程序设计的结构

第1篇

课程衔接 层次性教学 任务驱动教学

一、引言

设计、实现一个复杂或者高级项目的软件项目,可能需要涉及程序设计语言、数据结构、算法设计与分析、计算机网络、数据库等许多课程。而计算机科学技术专业的每一门课程都是从基础理论入手,复杂、高级项目不适合作为课程的学习案例或者习题。

不少课程选用比较简单和容易理解的小项目作为例题讲解知识点或者作为习题巩固学生所学知识点。比如约瑟夫程序,在程序设计语言中是链表操作习题,而数据结构课程中又作为线性表的习题或者上机题目;图书馆管理程序,可能作为数据结构课程的线性表的课程设计题目,也可能作为数据库课程范式优化的例题;集合的交集和并集可能作为离散数学课程的习题,也常被选做数据结构课程线性表操作的算法优化例题;网络蜘蛛常被作为计算机网络课程的课程设计题目,也常因为其中的典型树形结构关系被数据结构课程选作综合性课程设计题目;多优先级作业调度既是操作系统课程的主要研究内容,也是数据结构课程队列内容的习题。

以往的教学实践反映,很多学生学完课程之后并没有达到预期的目的。究其原因,一是对学生动手能力的培养没有到位,以至于部分同学对课程的学习还停留在“纸上谈兵”的阶段;二是对学生自主学习能力的培养没有到位,以至于涉及讲授范围之外的问题学生就不知从何入手。可以采用分层次教学,就是要因材施教,根据大多数学生的情况,正确处理教学中难与易、快与慢、多与少、应知与应会的关系。充分发挥学生学习的主体作用,转化差生、培养优生,全方位增进教学效果。

目前的教学活动,主要考虑的先后关系,而没有建立良好的课程的衔接关系。需要研究、整理他们直接的衔接关系。

需要整理本课程案例,考虑与先修课程或者后修课程的关系及所选题目的价值和意义,同时对案例采用层次性分解方法,满足层次性教学需求。

鉴于计算机专业本科教学课程数量多,本文针对计算机两大具有紧密关系的核心基础课程《数据结构》和《程序设计C语言》进行探索,并期望扩展到其他课程。

二、课程的衔接关系

C语言程序设计与数据结构是工科院校计算机专业中开设的两门重要的专业基础课。在以往教学中,这两门课程是相对独立、分开授课的,因此导致内容脱节,教学效果差。一般C语言程序设计课程只注重C语言的语法体系,因此学习后却不能用C语言进行程序设计;后者则注重讲授抽象的数据关系和算法在计算机中的表示及实现,学生能进行抽象算法的描述,上机实践应用时却无从下手。然而,这两门课程都以培养学生解决实际问题的程序设计能力为共同目标。因此,如何将这两门课程有机地结合起来,构建C语言与数据结构的新体系,改革教学方法,提高教学质量,成了当前教学改革中亟待解决的问题。

在传统的教学模式下,C语言程序设计与数据结构这两门课程分开教学。C语言程序设计的学习主要在语言语法的层次上,数据结构难度较大,注重思维训练,造成学生不能结合有效结合这两门课程运用到实际中去。通过不断探索,认识到这两门课程有很多内在联系,如软件是用一种程序设计语言编写解决该问题的算法,通过编译、链接成为可执行程序而成,而算法是通过处理输入数据转换为输出的解决方案,因此数据结构和程序设计语言密不可分;再比如数据结构讨论的抽象数据关系和算法要用C语言去实现等。

针对差异化的学生现状,整理课程关系,精巧的设计教学案例和习题实现任务驱动式教学法,对于调动学生学习兴趣,先修课程的简单案例让学生能够逐渐独立实现,有助于学生产生满足感,增加学习自信心;对于案例的扩展性引导,启发学生深入思考和逐步掌握自学方法,通过自学后修课程,提出的较难的问题又有助于激发学生参与后修课程学习的积极性。

三、拟解决的主要问题

数据结构与C语言课程的结合方式的探讨,针对探讨结果设计实际结合方法,并在学生中实践,选择最佳结合方式。

数据结构与C语言,每门课程需要有经验的任课教师结合本课程特点,探讨并确定各个案例与各知识点和其他课程关系,针对学生差异性现状和任务驱动式及层次性教学需求,对选择的案例采用递增式设计;确定跨课程案例及相关课程名,涉及的知识点。探讨选择的习题(包括课堂练习题、课后思考题、课后作业、上机实验题和课程设计题目)于知识点及其他课程的关系,标注习题难度级别,以达到层次性教学目的。

针对这两门课程的案例和习题,深入探讨相互关系,特别是相互的衔接性,C语言课程首先需要讲解基本语法知识,帮助初学者建立简单的程序设计过程思想,但由于教学时间限制,只依靠课内学习和课后作业及上机实验是不能充分达到熟练运行C语言解决问题,编写项目程序的目的。

C语言是大一学生首先接触的程序设计语言,加上许多学生还存在中学时期的一切依赖老师的学习方法和观念,未能进一步学习并提高程序设计能力,因此在后续课程中,比如数据结构课程中需要在讲解数据结构抽象数据类型及解决问题的时候,学生应该尝试借用C语言编程实现抽象算法。因此,应该结合学生的这个实际情况,进一步细化和分解选择的案例和习题,让学生在C语言学习过程中学会应用C语言解决和数据结构简单问题相关任务,为数据结构课程打下坚实基础;而数据结构课程中有意识的安排一些案例和习题,让学生能够有运用C语言解决简单问题的能力,并通过数据结构课程的学习和培养,掌握复杂问题的解决方法和更加熟练的应用C语言工具。

四、总结

根据计算机课程关系,设计优化与其他相关课程有关系的案例与习题,一来可以引导学生理解后修课程部分内容,引起学习兴趣,二来在一些先修课程已经介绍本课程该知识点的基础上,提出新的解决方案或者优化方法,更容易激发学生探索问题的好奇心和解决复杂问题的满足感,加强学生理解课程相互关系和培养计算机创新思维。

以数据结构课程和程序设计语言课程为例整理课程关系,研究和设计教学案例及习题,满足学生差异化需求和对学习内容的兴趣,进行层次性教学,将其经验和方法最终推广到计算机本科教学的各课程。

参考文献:

[1]黄迪明.C语言程序设计(第2版)[M].成都:电子科技大学出版社.

[2]吴跃,李树全,尚明生.数据结构与算法(第2版)[M].北京:机械工业出版社,2010.

[3]萨师煊.数据库(第3版)[M].北京高等教育出版社,2000.

[4]傅彦,顾小丰,王庆先.离散数学及其应用.北京:高等教育出版社,2007.

第2篇

关键词:单片机 程序编制 模块执行 结构设置

中图分类号:TP368 文献标识码:A 文章编号:1007-9416(2014)05-0094-01

目前单片机的应用十分广泛,在众多行业中都担负起系统控制的任务,而单片机的功能实现则多数依靠应用程序的控制,所以针对单片机的程序编制问题就成为单片机应用的基础性问题,如何选择合适的编写结构以及方法等成为了研究的重点内容。

1 单片机程序结构设计的特征

单片机的程序编制应当从程序开发的语言入手,并针对不同的功能选择不同的程序结构,这样才能为程序编制打下良好的基础,因此在实际的操作中如何选择程序的结构模式就成为了编程的要务。随着计算机技术的成熟以及单片机的技术发展,结构化的程序设计方式被提出并应用。其主要是将程序编写纳入到模块模式下,利用结构标准化、模块化等来实现对程序的编制,利用模块化结构来简化编程的复杂程度。此类设计中是的是可重复利用性,可移植的标准性。简化程序的编制过程提高模块的利用率。从而降低出错的概率,提高单片机的应用效果。可以按照不同的单片机功能选择不同的模块,将各个模块的功能突出应用到系统中,并在特定的工作环境中解决特殊的问题。总是对软件结构的合理配置,理顺模块之间的关系,从而从宏观上完成对编程流程和结构的控制。从而实现对复杂问题的简化,提高单片机的编程效率,并提高对复杂问题的解决能力。

2 单片机的开发语言选择

在单片机的程序编制中C语言因为在应用上的优势而被广泛采用,方便的应用库函数容易实现复杂数据的结构。但是C语言不能在时序控制上获得优势,速度型算法上不易达到单片机的要求。但是随着C语言被纳入到编程范围后,其汇编混合编程的模式已经可以帮助弥补其语言上的缺点。随着单片机的调试技术的发展,单片机已经适应了C语言程序控制,从而为高级语言进入到编程中带来了可能。

3 单片机编程的常用程序结构

为了方便进行单片机的程序编制,通常可以将其程序划分为多种结构以此适应不同的功能需求。具体结构如下。

3.1 基本程序结构

其结构包括了初始化程序和工作程序两个部分,初始化程序负责在单片机上电后的复位,首先执行初始化程序,程序只要在工作前执行一次即可。初始化程序运行对个各种端口和变量、定时器、ADC等进行全面的检测和初始化。如果需要可以建立不同的初始化分支,对不同的终端进行检测和初始化,根据不同的条件来选择不同的初始化方式,比如冷启动和热启动的选择。主程序则是一个循环程序,这所执行的是单片机的工作内容,实现具体的功能,如检测、控制、通讯、人机交互等等。各个功能都是有子程序进行控制,主程序是控制调用这些程序的指挥者,以此方便模块化的程序编制和应用。

3.2 模块结构

在单机片程序中主程序负责的是模块调度工作,将实现功能的各个子程序进行合理调度,此时被调度的程序就是模块。这样的模块中所附加的是一定的功能性,采用模块化的程序结构可以方便程序多种功能的集成,即在不增加主程序难度的同时添加或者减少模块可以实现系统功能的改变,以此实现程序的优化,方便维护与降低出错率。

3.3 模块控制机制

调度主程序时不是所有的模块都被应用,所以模块在一段时间内应被控制,不是所有的循环中都需要所有模块参与。或者某些模块的执行不是经常性的而是在满足某些条件后才被执行。为了解决这个问题,可以给模块设定一个标志,模块在执行前应判断自身的标志位,只有标志位是可用的状态下才能执行相关的操作。如果标志位不可用则应进行返回程序,不执行对应的模块功能。

3.4 优先调用机制

主程序在调用模块的时候应有先后之别,因为模块运行的优先级将限制其应用,如果没有优先限制某些重要模块不能相应或者不及时。因此在调用中主程序应可以对模块的优先级进行分析与选择,按照不同的处理事件来区分模块的优先级。对模块功能的标志进行检测,对优先级较高的模块进行调用,然后查询后续功能模块并异常类推。如果出现不可用的情况则进行新一轮的检测并从优先级较高的模块开始。

3.5 前后台结构

前后台的结构是一种中断机制的引入,即按照实时性事件与突发事件进行差异化对待,实时性较高的事件被前置,让其在中断中响应,将实时性较低的事件和任务纳入到主要程序中,如显示刷新、扫描等等。形成一个以中断为界限的前后台执行程序结构。前后台的程序应按照大多数任务需求进行功能调度。在使用中应注意前后台任务结构的时候,尽可能减少中断服务程序的执行时间。可以在中断服务程序中设置一些标志,然后由后台程序检测标志来进行进一步处理。这样可以很大程度上避免前台程序和后台程序互相抢夺处理器资源,造成某些低优先级任务阻塞。目前随着单片机的发展,有些单片机的中断资源大为丰富,已经可以将所有的任务都可以通过中断来实现,这样我们就可以让中断承担全部工作,废除后台程序,除了只保留必要的初始化程序外就进人低功耗模式等待中断来处理其他任务。

4 结语

上述对单片机的程序编制结构进行了分析,从基础的结构类型出发分析了多种模式框架下,单片机程序执行的差异。同时说明多种结构不是独立存在的,而应在具体问题的解决中进行选择,选择合理而准确的程序结构,有利于单片机功能的实现,也可提高调度机制的合理性,从而有效的指挥单片机完成各种功能。

参考文献

[1]王玲.提高单片机程序设计有效性的策略探究[J].考试(综合版),2012(01):15-16.

[2]刘杰.论单片机程序设计[J].现代商贸工业,2011(07):156-157.

第3篇

软件工程飞速发展,被应用于各个行业。对软件工程的结构建设是对软件开发的重要过程,也是保障其应用的重要方式。而完善结构建设的重要过程,是将其应用于实际,应当从了解需求从而分析开始。文章描述了软件工程中的结构建设的具体流程和方式,并且通过具体案例分析了需求的实施方案。

关键词:

软件工程;结构建设;需求分析

1软件工程中的结构建设

1.1软件工程中的结构建设流程

如图1所示,首先对数据分析进行研究,通过审查数据分析结果,主要从所做软件的用户需求中做出分析,从而设计数据流程的加工过程。然后以数据流程图的分析结果为依据处理确定类型。要求针对变换型和事物型,做出分析和处理。从而对系统初始结构进行推导。根据启发式的原则对初始结构图作出相应的改进,便可以得到人们需求的结构图。利用分析模型ER图和数据字典对数据做出合理编排,从而设计出数据库和数据文件。最后以加工规格的说明和状态转换图为依托,进行工程设计。

1.2软件工程中的结构建设方法

驱动设计方法依据数据流程图的方法设计过程。在这一过程中,软件需求阶段的SA有所衔接,从数据流图的表述转变为可以应用的程序结构的数据描述。对于典型的数据分类,其中包含了变换型数据流和事务型数据流,在其类型存在区别的时候,所明确的系统结构要存在差异。可以把系统内的所有数据流当成变换流,数据沿写入系统的通道,在经历了数据的变化,从而将外部特征转换为内部描述,再通过变化中心作出分析处理,从输出系统通道离开,而得出数据就是变换流。然而在遇到事务流具有明显特征的时候,可以采用事务型的映射方式从而进行结构建设。其中变换流系统的机构中包含了输出变换和输入变换。在事务流的处理中,数据通过输入通过进入事务中心,在事务中心完成数据动作的执行,这其中事务中心是明显存在的,所有活动流都从事务中心出发,再依据辐射的形状输出。变换分析是从数据流图中导出系统结构图,首先对数据流图完成更新,然后从输入和输出以及变换中心进行分区,最后进行级别分解。在分析事务的过程里,从数据流图分析开始,从上到下进行分步骤解析,才能最终建立系统结构。首先需要对事物中心的每天过程信息进行确认,然后利用数据流图映射作为系统结构的高层。最后再次分解从而确定事物模块的下层操作模块。

2软件工程中的需求分析

在软件工程的建设中,对软件需求分析是最先开始的阶段。例如对用户的使用情况和期望情况进行调查,统计数据,从而分析得出软件工程的建设方向。本文以打车软件为例,举出2016年9—12月我国32个大中城市1765份调查结果的综合分析,如图2所示。对其使用功能和期待做出具体分析,从而得出软件的使用方向,确定建设标准。那么对软件工程的需求分析时应注意的问题,作如下分析。

2.1综合行业特性展开需求分析

软件工程的需求分析要针对所处行业的特性进行分析,然后才能结合需求进行分析。只有切合行业针对性的软件工程建设才能在应用中发挥有效作用。通过针对不同行业所属领域的热衷进行软件的开发和设计。例如工业领域对软件要求自动化或者智能化的功能,而对于硬件生产过程,软件的设计建设要从硬件使用中的方向开始。决不能在不了解使用意图的情况下,没有目标的开始软件建设,这样会导致最终设计结构与硬件无法匹配。

2.2分析结果要求清晰明了

软件工程的需求一定要做到明确,已经逻辑基础使其具备完整逻辑功能。在开展软件设计的时候,如果存在不清晰的建设需求,将会令软件的调试无法完成,也会在使用过程中出现很多问题,那么就无法完善用户体验。所以一般情况下,一定要先与用户沟通好设计需求,避免冲突发生。由于用户并不了解软件设计的原理,在设计完成后,发现与自身期望相去甚远,就会导致无法达到目标价值的体现。所以软件工程必须了解需求的重要性,以用户需求为中心从而完成设计。

2.3软件需求分析是促进软件工程完成的前提

软件工程的顺利开展要以软件需求分析为前提。如果需求分析不充分的话,必然会导致软件工程无法顺利进行,一方面会浪费大量前期工作,另一方面可能导致软件工程无法按时完成,从而要对工程需求予以确定,同时呈现用户要求的编程逻辑。从符合实际的工程需求出发,从而与硬件完成匹配,才能切实投入生产以便应用。如果在建设过程中片面强调软件突破,而造成硬件无法匹配,会带来重大损失,从而导致硬件发展无法跟上软件进程。所以要尽可能完成硬件和软件的协调,以确保软件的需求分析切实可用,才能顺利开始软件工程的建设。

[参考文献]

[1]赵承乾.软件需求分析方法创新分析[J].计算机光盘软件与应用,2013(3):56-57.

第4篇

关键词: 钢结构设计;支撑布置;空间分析程序

Abstract: The plant design should make every effort to meet the technical requirements under the premise of rational harmonic structure, layout and process layout of the contradiction between, as much as possible to use seismic performance and economical structural system. In this paper, an instance of the power plant project characteristics, the use of STAAD Pro technical analysis of its structure and layout design optimization, to provide a reference for such projects and references.

Keywords: steel structure design; support arrangement; spatial analysis procedures

1 工程概况

某发电厂主厂房由汽机房和煤仓间两大部分组成,厂房纵向总长为81m,柱距分别为9m和12m。横向总长45m,其中汽机房(即AB轴线间)30m,煤仓间(即BC轴线间)15m。主厂房外墙采用压型钢板轻型封闭,仅在B轴线处即汽机房和煤仓间分界处以及6.6kV配电室、MCC室、I/O站等少量局部设置填充墙。

2 厂房钢结构设计分析及优化

主厂房与一般建筑物相比具有平面不规则性且楼面经常出现大开孔导致楼板不连续,在地震作用下容易出现扭转。楼面活荷载大且荷载分布不均,如煤斗、粉斗、高低压加热器、除氧器等重型设备分布相对集中,有些设备还往往位于较高楼层。由于工艺设备和管道布置的限制,主厂房结构的抗侧力构件特别是支撑构件的设置受到很大的制约。因而主厂房结构往往在水平和垂直方向上刚度和质量分布都不均匀,给抗震设计带来不利影响。根据主厂房结构的上述特点,在对其进行结构设计时,与工艺专业紧密配合,在尽力满足工艺要求的前提下,合理地调和结构布置与工艺布置之间产生的矛盾,尽可能地选用抗震性能好又经济合理的结构体系,并且在结构设计中结合本工程的特点进行了布置优化的工作。

2.1结构体系分析

主厂房横向结构体系由汽机房A列柱通过屋面大跨度实腹式钢梁及下部两层汽机平台钢梁与煤仓间框架相连,与煤仓间框架及支撑共同组成。常规电厂通常是汽机房A列柱与除氧间和煤仓间双列框架共同组成抗侧力体系,具有较好的横向刚度。而本工程按照工艺布置,主厂房不设置除氧间,横向仅有煤仓间单列框架,承受横向水平地震作用及风荷载的能力较弱。针对这一情况,设计时对横向框架采用刚接加支撑的方案,即汽机房屋面钢梁、煤仓间各层框架横梁与框架柱均采用刚接,同时,在煤仓间承担较大设备荷载(粉斗等)的③、④、⑥、⑦轴线皮带层以下贯通设置大十字交叉撑,在汽机房两层平台内工艺允许的地方亦设置一组垂直支撑,这样一来,横向框架具有较好的侧向刚度,适应由支撑梁柱的屈服顺序机制,成为双重抗侧力体系,也符合多道设防的原则。

主厂房纵向框架主要采用框架梁与柱铰接加支撑的方案。经与工艺专业协调配合后,在A、B、C列纵向框架③~④和⑥~⑦轴线柱间从0m至屋面设置了两道竖向连续布置的垂直支撑。在这两跨间设置垂直支撑是经过反复比较和考虑的。一方面由于其他跨间在底层布置有大型磨煤机,C列纵向框架在这些跨间必须为其留出安装检修通道,因此底层不便设置柱间支撑,见图1;另一方面,重型设备粉斗悬挂于煤仓间③~④和⑥~⑦轴线间皮带层下方,在这两跨设置柱间垂直支撑更能有效传递地震作用产生的水平荷载。

图1 C轴线框架模型

汽机房、煤仓间各层楼面及煤仓间屋面均以压型钢板做永久底模,底模上现浇100mm厚钢筋混凝土板。连接件选用圆柱头焊钉穿透压型钢板焊接在钢梁上翼缘。以压型钢板为底模的钢筋混凝土楼板具有较好的平面内刚度,在空间结构体系中发挥着协调各榀框架刚度和侧移的作用,是重要的传递水平荷载的构件,也是将主厂房框架形成空间整体结构重要的一环。由于工艺布置的要求,楼面经常会出现大开孔,一定程度上削弱了楼板刚度,且混凝土楼板对框架柱的约束减弱,这时在开孔周围柱网区格内适当地设置楼面水平支撑,以便于增强楼板对柱的横向约束及传递水平地震力。

2.2 结构设计的优化

由于框架梁、柱的布置主要是根据工艺要求确定的,所以主厂房结构的优化布置主要指支撑布置的优化。支撑布置得合理,能够有效传递地震水平力,调整主厂房结构的刚度,使整体结构受力更合理,动力性能也更好。

2.2.1 柱间垂直支撑布置的优化

本工程与其他工程相比,垂直支撑的布置有两个显著的特点。其一,横向框架在煤仓间皮带层以下贯通采用大十字交叉撑。这与本工程的工艺布置特点密不可分。通常情况下由于沿煤仓间纵向设置有磨煤机检修单轨,煤仓间纵向成为磨煤机安装检修通道,因此只能在避开通道处局部设置支撑。本工程由于磨煤机由轨吊设备起吊沿横向进出C列进行安装和检修,横向结构布置时不再需要为其让出通道,因此大十字交叉撑的布置能够得以实现。

在抗震设计中采用大十字撑尤其是在如此重要的位置采用是具有明显好处的。在地震作用下,支撑作为主要抗侧力构件是最容易屈服的杆,而十字交叉支撑,可保证在地震作用下受压支撑失稳后,受拉肢仍能正常工作。与V形支撑或人字形支撑相比,十字交叉撑在与梁的相交处不会由于支撑杆件分别受拉、受压而对梁产生竖向不平衡力,因此对框架更为有利。其二,在煤仓间内,纵向框架柱间垂直支撑与横向框架的柱间垂直支撑相互呼应,在存在较大荷载的③~④和⑥~⑦跨形成了一个连续封闭的支撑系统,类似于钢筋混凝土框-筒结构中的“筒”。通过STAAD Pro程序分析结果(详见表1),可以发现垂直支撑这样布置以后,主厂房整体结构在地震作用下具有良好的动力特性,第一振型仅存在有很小的扭转,基本为纵向平动振型,第二振型为横向平动振型,第三振型为扭转振型。并且第一、第二振型振动周期差别很小(1.252s和1.181s),说明结构在两个主轴方向的动力特性接近,地震作用下的扭转效应得到有效改善。

表1 在③④⑥⑦轴线横向框架B、C列间(煤仓间)设置垂直支撑的结构模型数据

2.2.2支撑截面的优化

就钢结构而言,竖向支撑是抵抗地震水平荷载最有利的手段;同时,在地震作用下,支撑也是最容易屈服的杆件。由于主厂房纵向结构为铰接结构,支撑为纵向的主要抗侧力构件,当支撑失稳时,也就意味着结构在纵向罕遇地震作用下很难满足大震不倒的设计目标,因此对纵向柱间支撑尤其是底层柱间支撑截面应予以加强。同时也应当意识到,对于支撑构件的设计,并非截面尺寸越大越安全。当支撑布置一定时,在合理的范围内(即满足构件长细比和强度、结构侧移限制等)适当减小支撑截面面积可有效减小结构局部刚度,从而达到减小地震反应的效果。特别是对抗侧力不敏感部分的支撑应提高支撑截面利用率,支撑构件应力比不宜过小,以提高工程的经济性能。

3 STAAD Pro空间分析程序的运用

本工程在主厂房结构设计中采用了STAAD Pro空间分析程序进行结构分析。作为一款三维空间结构分析程序,STAAD Pro能够更加准确和快捷地建立接近真实的结构模型,它能够充分考虑各类构件之间的协调作用,更为准确地模拟约束条件等,因此结构受力分析的结果更合理、更接近实际受力情况。

STAAD Pro空间分析程序与以往平面杆系结构分析程序相比,具有明显的优点。首先,它能够克服平面杆系结构分析中无法避免的荷载重复作用和作用分配过大的缺点。其次,后期的结构动力计算结果显示,水平地震作用下,主厂房在平面内的变形表现出扭转特征,具有平面扭转不规则性,对电厂主厂房结构采用平面框架进行抗震计算将无法反映该扭转效应,同时也无法反映相邻框架之间水平支撑或楼板对整体结构的水平刚度和侧向刚度的协调作用,既不安全也不经济。

STAAD Pro空间分析程序可以真实模拟结构构件间的连接形式和约束条件。主厂房框架结构体系采用横向刚接+支撑、纵向铰接+支撑的方案时,框架柱与基础的连接形式就需要相应地采用一个方向释放弯矩而另一个方向保持固结的方式。在STAAD Pro中,通过对支座约束信息的编辑,能够轻松地达到这一目的。

STAAD Pro分析程序赋予了用户灵活处理各种荷载的自由。相比一些结构程序对用户输入的荷载通常按照规范要求自动进行组合,这种方法虽然简便,但是却很封闭,它基本不允许用户对其荷载组合进行人工干预。STAAD Pro允许用户根据情况对基本荷载进行分组输入,然后对这些荷载自行定义组合方式,列出各种组合工况,然后由程序完成组合计算。为满足合同的要求,需要对X向和Z向水平地震力分别放大1.12倍和1.05倍。因此,在有地震作用参与的荷载组合中对X向水平地震力EX和Z向水平地震力EZ分别乘以放大系数1.12和1.05,以满足合同要求。可见,STAAD Pro开放荷载组合的方法确实能为设计人员提供便利。

4 结语

综上所述,对主厂房钢结构这种体积大、构件多、结构体系复杂、结构刚度和质量分布不均的结构采用空间分析程序可以更好地反映结构实际受力和工作情况,提高设计的准确性,为设计插上翅膀。

参考文献:

[1] DL 5022-93,火力发电厂土建结构设计技术规定[S]。

[2] 刘刚。高烈度地震区大型火电厂钢结构主厂房的布置优化[J]。工业建筑,2008

作者简历:

第5篇

关键词:程序设计;数据结构;算法;编码;调试

中图分类号:G642文献标识码:A文章编号:1009-3044(2009)33-9490-02

The Effective Strategy of Raises the Student Programming Ability

XIAO Han-peng

(The Secondary School of Nanyang, Nanyang 473000, China)

Abstract: This paper analyzes the design disciplines in the computer programming of the status and the knowledge and ability, combined with their many years of computer science teaching practice of teaching computer programming students an effective strategy.

Key words: program design; data structure; algorithm; coding; debugging

计算机科学是一种创造性思维活动,其教育必须面向设计。计算机的本质是“程序的机器”, 只有懂得程序设计,才能懂得计算机,真正了解计算机是怎样工作的。培养学生程序设计能力对计算机专业的学生来说不仅是培养职业技能的需要,也是培养大学生创造性思维的重要途径。学习程序设计语言可以培养学生运用算法来解决实际问题的能力,这种解决问题的方式是计算机所独有的,也只有通过对计算机的程序设计语言和程序设计方法的学习才有可能获得这种解决问题的能力。

1 程序设计在计算机学科中的地位

程序设计是利用某种计算机语言,编制完成某一特定功能的程序的过程,是涉及描述、开发及有效实现求解的一系列活动,是利用计算机实现自动化的重要手段。

计算机学科主要是系统地研究信息描述和变换的算法过程,包括它们的理论、分析、设计、效率、实现和应用。可以这样说,一切算法的基本问题是“什么能被自动化”以及“如何有效地自动化”。这个自动化的过程就是程序设计的过程。

程序设计语言是人们学习计算机的最基本的工具,也是人们学习计算机基础与应用知识的基本课程。通过学习,使学生掌握程序设计的基本概念、基本知识和基本方法,养成良好的程序设计风格,得到一定的程序设计训练,具备初步编写程序解决实际问题的能力。程序设计也正是有形表达抽象思维的方法,在程序设计过程中贯穿阅读判断、分析思考、工具利用、抽象表达、综合创造等多项技能,是理论、抽象、设计和应用的综合能力培养过程。因此程序设计是计算机学科教学的重要内容之一,对计算机专业人才素质的培养至关重要。

2 程序设计的知识和能力构成

根据循序渐进的原则,与程序设计有关的教学内容主要有:计算机基础知识和操作、程序设计语言和基本的程序设计方法、最基本的数据结构及其基本算法、常用的算法设计方法等。在学习这些知识的同时,必须与能力的训练有机地结合起来。程序设计能力表现在以下几个方面:

1)自然语言能力。要有较强的运用自然语言描述现实事物的能力,只有运用背景知识正确且清晰地陈述问题及其求解目标,才能确定程序的功能。

2)数学描述能力。程序设计是为了告诉计算机做什么和如何做。这就需要利用定义、定理、公式、函数等数学工具把问题形式化,建立数学模型。

3)数据结构设计能力。选择合理的存储结构,在计算机中表示数学模型,是程序设计的一个重要方面。

4)算法构造能力。好的程序由精心构造的、好的算法构成。给出问题求解的离散化计算过程,是程序设计中最具有创造性的工作。

5)程序编码能力。用某种程序设计语言表达算法,尽管这种能力往往被认为技术含量不高,但也需要对程序设计语言的熟练掌握和对算法设计的深刻理解。

6)程序调试能力。程序调试能力是一种专业综合技能,需要对程序设计语言和程序结构有深刻的理解,需要熟练的操作技能,需要会设置测试数据和设置程序断点,这些都有待于学生在实践中逐步积累经验。

可以说,程序设计能力的高低很大程度上反映在驾驭自然语言、数学语言和计算机语言的能力上。这3种语言是人们毕生有用的3种通用智能工具。前两者是后者的基础,良好的英语和数学训练是学好程序设计语言和培养程序设计能力的重要基础。

3 培养程序设计能力的有效策略

知识的价值在于运用,知识的运用需要技能,而技能的形成则依赖训练。程序设计知识的学习和能力的培养需要各方面的知识基础,它是一个系统的教育训练过程,需要多个教学环节的紧密配合才能完成。

1)明确教学要求

程序设计语言课程一般是为应用性教学而设置的,因此,课程的教学不仅仅是传授知识,而且应该强调应用性,应该以培养学生的能力为主。程序设计语言的内容比较丰富,在教学中如果面面俱到,必会耗费较多课时,而且教学效果不一定好。因为过分强调程序设计语言的系统性和完整性就可能会转移学生对课程重点的注意力,关键在于教会学生如何正确运用程序设计语言编写程序,训练实用编程能力。所以必须突出重点,突出应用性,侧重教思想,即把程序设计语言的基本思想、基本环境、基本概念、基本知识和基本方法教给学生,使他们在学习中对硬件、软件环境、程序设计的基本思想和基本技巧,所学程序设计语言的基本概念和使用方法以及编程技术有一个比较全面的感性认识,从而提高解决实际问题的能力。

2)打好数学基础。严格的数学训练是程序设计能力的基础,学习和加强排列与组合、数列、数学归纳法等离散系统的数学方法对提高程序设计能力尤为重要。问题描述和建立数学模型是程序设计的前奏,数学归纳法、穷举法、构造证明法等证明技巧是算法设计方法的基础。

3)强化英语水平。程序设计语言的符号系统以英语为基础,程序设计文档语言首选英语。英文资料是计算机最新和最大的技术资料来源,英语水平是我国软件产业发展和参与国际竞争的制约因素。

4)重视阅读训练。从某种意义上来说,程序设计是用程序设计语言和方法进行的一种写作。可以想象,如果学生没有阅读过一份完整、规范、有实用价值的标准程序,即使记住了有关语言的语法规则,也不可能写出像样的程序。所以,大量阅读、分析、修改和扩充典型的算法和程序,是提高程序写作能力的有效途径。而这个重要学习环节往往未得到应有的重视,缺乏配套的程序设计阅读分析教材。教师应经常指导学生阅读程序,理解程序,提高学生分析程序的能力。

5)注重算法设计,突出数据结构内容。瑞士科学家、PASCAL语言和MODULA-2语言的发明者沃思(Wirth)教授提出了著名的公式:程序=算法+数据结构。这个公式表达了程序的实质,说明对于一个程序设计问题来讲,算法与程序设计是紧密联系的,绝不能脱离数据结构去讲解算法设计。程序设计语言的教学应该结合数据结构的基本内容。对于同一个计算问题,选用不同的数据结构,其算法大不一样,算法的优劣程度也不同。因此,要教会学生对不同的问题选择合适的数据结构。在整个程序设计课程中,必须强调算法设计方法,通过不断的算法设计训练,使学生切实掌握迭代、枚举、递归、分类等常用算法设计方法。

6)更新教学内容。计算机学科是一门综合性学科,而且程序设计语言的应用领域在不断扩大和发展。因此,在教学中应结合专业的特点和教学的要求,将软件工程的思想方法贯穿于整个教学过程,介绍程序设计语言的最新发展和应用,重视面向对象程序设计方法的引入,搞好教材内容的更新。如图形程序设计、下拉式或弹出式菜单、计算机病毒防治等等。这样不仅能把最新的知识和最新发展动态充实到教学上来,大大丰富了教学内容,而且使学生加深对程序设计语言的理解和掌握,保持对信息技术和专业的兴趣,及时跟上信息技术日新月异的发展趋势,在今后工作中保持领先地位。

7)采用先进教学手段。用传统的课堂教学方法讲授动态的算法和数据结构是十分低效的,像排序、递归等抽象动态的内容讲解就常常是费力不讨好。应该根据课程特点,采用先进的现代教学方法,如直观教学方法:利用挂图、教具等讲解,以及计算机辅助教学(CAI)和计算机辅助学习(Computer Aided Learning,简称CAL)进行教学,通常开发利用与课程内容与教学特点相适应的多媒体课件进行教学。它们是讲解算法和进行程序设计训练的最佳教学平台,既能增加学习的趣味性,又可利用图形的直观性帮助抽象和动态过程的理解。

8)加强实践环节,强化创造性思维能力培养。在教学中,常常听到学生提出这样的问题:“程序设计语言有什么用?”,有的学生还反映:“程序设计语言并不难学,就是不知道如何应用?”一些学生学到了一定的科学知识,但上机动手水平低。这种现象与普遍忽视实践环节有关。为了扭转这一局面,在整个教学过程中,必须强调实践环节的重要性,充分安排上机实践时间,加强系统训练和实践能力的培养,强化创造性思维能力培养。根据课程特点,在教学中,采用案例驱动教学,进行兴趣引导;在实践中,可以精心组织一系列由易到难、由浅入深、配套衔接、结合学科学习、有一定设计技巧的程序设计作业,最后再安排一次综合性强、有一定难度的课程设计实践,对学生进行项目训练,提高学生应用能力。通过上机作业和课程设计的完成,使学生独立思考,各显才干,总结经验,培养他们的动手能力和编程能力,以及分析问题和解决问题的能力。

4 结论

总之,培养学生计算机程序设计能力的方法和途径很多,但是编程序不难,编好程序不易。作为教师,必须从培养学生编程思维的角度出发,按照以上策略认真进行编程知识的教学和技能的培养,加强实践,提高学生科学思维的能力,真正学会程序设计的真本领。

参考文献:

[1] ,王楠.浅谈程序设计语言课程教学方法[J].吉林大学学报(信息科学版),2005(S2).

[2] 徐进华.提高学生程序设计能力的几个措施[J].计算机时代,2005(11).

[3] 李凌.浅谈高级语言程序设计课堂教学方法[J].淮北职业技术学院学报,2005(04).

第6篇

关键字:程序设计语言教学改革

中图分类号:G642 文献标识码:A 文章编号:1672-3791(2012)02(c)-0000-00

1 概述

计算机程序设计语言,通常简称为编程语言,是一组用来定义计算机程序的语法规则。它是一种被标准化的交流技巧,用来向计算机发出指令。

当今计算机程序设计语言种类繁多、共性大、更新速度快,同时软件工程和项目管理的蓬勃发展使得计算机软件开发从业人员的职业分工更为明确。从人力资源与社会保障部颁布的“计算机程序设计员国家职业标准”上看,除了要求从业者必须要有扎实的基本功外,还要具备解决问题的综合能力。因此计算机程序设计员专业的学生在计算机程序设计语言的知识和技能的学习中,不能再仅仅孤立地教授几门编程语言、几门相关的专业课程而已,而是要教会学生掌握通过计算机程序设计来解决实际问题的知识和技能,成为一名合格的“软件蓝领”。这就要求我们不能延续传统的学历教育方法,计算机程序设计语言教学需要改革,需要一种全新的教学理念和模式。

当前的教学改革更多的体现在教学方法和内容上,“学习领域”、“任务驱动”、“职业岗位导向”、“面向工作”等各种课程设计方法层出不穷。然而,纵观大部分课程改革,我们发现其教学改革更多体现在独立的课程中,并没有在课程与课程的衔接上下功夫。大部分院校均先后开设VB、C、C++、JAVA等多门程序设计语言和数据结构、数据库管理系统等专业课程,学生虽然学习了多门程序设计语言,然而每一门语言都只学了皮毛,每一门课程都学了基础,只能完成课堂和课后的作业和练习,而对于能解决什么问题,怎么解决问题,如何综合解决问题一筹莫展,碰到问题时往往觉得无从下手。

2 程序设计语言教学探索与改革:C语言学习三部曲

C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点,同时很多新型的语言都是衍生自C语言,,掌握了C语言,经过简单的再学习,就可以用其他新型的语言去进行程序开发了。因此,在计算机专业的课程中,只要把C语言学扎实了、学透了,就可以说掌握了计算机程序设计语言的精粹。在课程设计中,我们以C语言为主线,以一脉相承的C语言、C++语言、C#语言为基本知识内容,配合上数据结构、UML、数据库等相关知识点,提出语言知识入门、语言能力提高、语言技能应用三个阶段和应用层次的“C语言学习三部曲”的课程改革方案。

第一阶段:语言知识入门――C语言与数据结构整合

1、课程知识要求:

1) 掌握C语言的基本语法,如数据类型,3种语句结构,数组,指针等。

2) 掌握数据基本结构形式和操作,如线性结构,树形结构,图形结构,以及数据结点的查找、添加、删除、排序等操作。

3) 掌握“自顶先下、逐步细化”的结构化程序设计方法。

2、课程技能要求:

掌握如何用计算机解决日常问题,特别是数据的表现形式和动作行为的表现形式。

3、课程设计要点:

将C语言和数据结构进行有机整合,特别是在讲解C语言的数据类型时溶入数据结构知识,在讲解C语言的语法结构时溶入数据结构的数据操作知识。

4、课程目的:

通过该课程的学习,要求学生掌握基本程序设计思想和理论,学会数据及数据处理由现实世界向计算机世界的转换方法和过程,学会用计算机程序设计语言描述和解决日常生活中问题。

第二阶段:语言能力提高――C++语言与UML工具整合

1、课程知识要求:

1) 掌握C++语言的高级语法知识以及面向对象的概念和形式,如面向对象的三大特征:封装、继承、多态,以及模板等概念。

2) 掌握UML知识,掌握利用UML工具(如ROSE)来进行面向对象的分析和建模的方法和过程。

3) 掌握以“抽象与分类”为关键的面向对象的程序设计方法。

2、课程技能要求:

掌握如何用计算机解决日常问题,特别是以面向对象的方法来分析和解决问题。该课程要求学生在第一阶段掌握了结构化的设计方法后,进一步了解面向对象程序设计方法。

3、课程设计要点:

把C++语言和UML进行有机的整合。将UML作为面向对象程序设计的分析和设计的工具,而将C++语言作为进行面向对象程序设计的编程和实现工具。

4、课程目的:

通过该课程的学习,要求学生掌握面向对象理论,学会面向对象分析(OOA)、面向对象设计(OOD)和面向对象编程(OOP)方法和工具。

第三阶段:语言技能应用――C#语言与数据库操作整合

1、课程知识要求:

1) 掌握C#语言的高级语法知识和软件架构知识,如集合、委托、托管、、C/S与B/S架构开发方法等。

2) 掌握数据库操作知识,如SQL语法、、XML等。

2、课程技能要求:

掌握多层架构的数据库应用系统开发方法。,该课程要求学生在复习第二阶段的面向对象的设计方法后,掌握开发.Net应用系统的方法,掌握将数据存储在数据库中的方法,以及掌握对数据库进行查询、添加、删除等操作的方法和步骤。

3、课程设计要点:

将C#语言与数据库操作知识进行有机整合,在讲解用C#语言开发基于.Net的多层架构应用系统中,通过讲解与LINQ将SQL溶入C#语言。

4、课程目的:

通过该课程的学习,要求学生掌握C#语言和数据库操作,掌握通用的企业级应用系统的开发方法和过程。

3 结语

教育部部长周济在2008年度职业教育会议上说到:“以改革创新为强大动力,推动职业教育又好又快发展”。职业教育的生存和发展,离不开教学改革和创新。在进行计算机程序设计语言教学探索与研究中,我们通过走进企业,与企业软件开发人员的进行密切联系与沟通,了解市场发展与需求等一系列调研后,提出了改革方案并付诸实施。实践证明我们的改革思路是正确的,课程改革是卓有成效的。

参考文献

[1] 谭浩强,“C程序设计”[M],清华大学出版社

第7篇

(宝鸡职业技术学院,陕西 宝鸡 721013)

【摘要】数据结构是高职院校计算机专业中一门专业基础课程和核心课程,本文关注了当前《数据结构》课程教学的现状,总结该课程教学中存在的一些不足,并提出了一些见解。

关键词 数据结构;算法;程序设计

1 《数据结构》课程的作用及意义

1968年美国唐纳德·克努特(Donald Ervin Knuth)教授开创了数据结构的最初体系,他所著的《计算机程序设计艺术》第一卷《基本算法》是第一本较系统地阐述数据的逻辑结构和存储结构及其操作的著作,是《数据结构》的经典之作。随后,数据结构作为一门独立的课程开始进入大学课堂。

数据结构课程主要是研究非数值计算的程序设计问题中所出现的计算机操作对象以及它们之间的关系和操作的学科。主要内容包括数据的逻辑结构,数据的物理存储结构和对数据的操作(或算法)。通常,算法的设计取决于数据的逻辑结构,算法的实现取决于数据的物理存储结构。数据结构是通过对数据的抽象与研究,帮助我们把生活中具体的事物抽象出数学模型,从而帮助我们写出“好”的算法。

数据结构课程与数学、计算机硬件和软件有十分密切的关系,它是介于数学、计算机硬件和计算机软件之间的一门计算机专业的核心课程。伴随计算机应用领域的扩大和软、硬件的发展,非数值计算性问题使得人们越来越重视数据结构,所有的计算机系统软件和应用软件的设计、开发都要用到各种类型的数据结构,已成为高级程序设计语言、操作系统、编译原理、数据库、人工智能、图视学等课程的基础。同时,数据结构技术也广泛应用于信息科学、系统工程、应用数学以及各种工程技术领域。《数据结构》的学习越来越被人们所重视,成为构建计算机类专业群的重要课程。目前,这门课程不仅在本科段开设,同时也是高职高专院校计算机相关专业开设的主要课程之一,许多非计算机专业的理工专业也都将它作为必修课程或热门选修课。

学习数据结构的目的是使学生在软件开发的过程中能够正确、合理地选择数据的存储结构,有效地设计算法,从而提高软件整体质量,既可以为后续课程的学习以及软件设计水平的提高打下良好的基础,也可以培养学生的分析与解决问题能力,提高学生的思维能力和程序设计能力,进而促进学生的综合应用能力和专业素质的提高。

2 《数据结构》课程教学现状

《数据结构》课程具有概念抽象、理论性强、逻辑性强、难度大等特点,它涉及到不同的数据逻辑结构和存储结构,以及相应结构上的算法,因而总被认为是一门深奥、抽象的课程,一门理论性很强、和实践相脱节的课程。学完后不能形成一个完整的知识体系,学生为了考试而学习,而在程序设计的能力上不能得到提高,分析原因主要有以下几点:

2.1 教学目的不够明确

《数据结构》课程本来是以在程序设计过程中总结而得到的数据组织和操作的体验和认识,用于程序设计的指导工作,而当下的教学很大程度上只要求掌握数据结构的几种基本类型和基本操作,期望通过基本数据类型的掌握能够用于指导实际程序设计。这就使得教学过程偏重理论而忽略了本课程的根本目的和意义,导致学生对学习这门课程的作用不够明确。从而使学生感觉课程内容抽象、算法复杂、实用性不强。

因此,学生的学习目的主要变成是为了应付考试,只注重课本上的理论内容,而不去考虑在具体程序设计中如何去使用《数据结构》基本理论来设计和解决具体的问题。在课程设计中,学生只是为完成编程去苦苦思索,而根本就想不到如何去进行数据的有效组织和实现数据的基本操作。很难想象不带问题去学习一门课程,会有很高的学习积极性。

2.2 教学内容不尽合理

学习《数据结构》课程的最终目的是为了使学生获得求解问题的能力,就是从实际问题中抽象出数学模型,选择合适计算机表示的数据结构,再把解决问题的算法程序化,这是一个复杂抽象思维的过程,是一项创造性的智力劳动。但从目前的教学内容来看,强调的是数据结构的各个模型内容,每个模型只是说明模型的结构和模型的计算机实现,在理论描述上力求做到尽善尽美,从内容安排上,各个模型之间表现为相对独立的关系,使得学生在学习过程中不能将课程的内容联贯在一起而形成一个整体,更就谈不上思维训练、分析和解决问题能力的提高了。

而课程安排的实验环节,通常是对所讲述的内容的伪代码翻译成高级语言进行调试,或者是仿造例子依葫芦画瓢地来解决一个简单的问题。没有通过具体应用教会学生解决问题的思路、算法思想和数据结构的使用,在实验中也只能停留在完成课本内容,而对实际问题则是一筹莫展。

2.3 教学方式不够新颖

计算机技术日新月异,程序设计的思想也在不断发展。程序设计方法已从面向过程的设计方法发展到面向对象的程序设计方法。然而目前大部分的数据结构教学方式还是停留在面向过程的设计思路上,所使用的教材也大致类似,教师按照课本的思维方法传授知识,学生被当成听众。这种教学思维严重落后技术发展的的现象制约了教学效果的提高。

教学手段比较单一,依然主要是老师讲,学生听的状况。学生接受的知识局限于教材和老师授课的内容,学生的认知水平被压制,出现能力强的学生不满足,能力弱的学生比较吃力的现象。这种单向的教学方式,不利于《数据结构》课程的学习,对锻炼学生创造和分析问题的能力也无益处。

2.4 学生素质有所制约

必要的数学知识是学好《数据结构》课程的前提。目前,由于高职学生的基础较差,特别是数学基础更加薄弱,这对《数据结构》课程的学习极为不利。另外,《数据结构》课程的教学基本上都是在学过一门或几门程序设计语言(如C语言)的基础上进行的。不少学生对这些程序设计语言课程就没有学好,因此学习《数据结构》课程就觉得困难。再加上学习的积极性不高,学习的目的性不明确,学习习惯不良等,因此学习效果可想而知。

3 方法出路

基于改变上述现状的思考,可以从以下几方面着手:

3.1 整合教学内容

首先从教材的选用上,力求教材版本新、质量高,以防止教材内容滞后。教材内容的编排,要以程序设计的基本原理引领数据结构的内容;教材内容的描述,要以程序设计技术发展相对应的手段,如现阶段可选择面向对象的方法描述;其次要及时把反映学科前沿动态的新成果反映在授课内容里,如数据结构的描述上尽量使用面向对象的方法,描述语言尽量选择目前较为流行的C++、JAVA等语言;再次是教师在授课过程中,对教学内容进行整合,将形似分散的各种数据结构类型通过实例能够组成一个整体。

同样的,实验的内容也应是配合授课内容,对同一项目能够逐步深入,从低效率的程序设计,随着数据结构内容的不断深入,不断完善程序。体会采用不同的数据组织方式,带来不同的程序运行的效率。

3.2 改进教学方法

将学生为主体,教师为主导的教学模式始终贯彻于教学的全过程。采取实例式与研讨式教学相结合的方式,以项目作为切入点,分组组织学生对项目展开讨论,在讨论的过程中发现并提出问题,老师参与学生的讨论并针对问题讲解解决问题所需要的数据结构的知识。这样学生由被动变主动地学习课程内容,既增加了师生之间的互动,也调动了学生学习的主观能动性;同时,学生的发现问题,分析问题、解决问题的思维能力也得到提高。

3.3 加强实践环节

提高学生程序设计的能力是《数据结构》课程的目的之一,实践环节自然必不可少。而且也只有通过实践才能体会到数据结构对程序设计的影响。首先对每一部分的理论内容安排实验内容,既要使学生能够加深对所学内容的理解和应用,也要通过实验让学生逐步提高程序设计的逻辑思维能力,摆脱的单纯的为了解决某个问题而编程的粗放方式。其次是要合理安排课程设计的内容。课程设计是对所学内容的一个综合练习,也是检验学生具体应用所学内容的能力。在题目选择上应考虑学生的知识水平层次,从难度上做到难易结合,由浅入深完成设计内容。关注解决问题中程序设计的过程,规范化程序设计思维。三是剖析讲解典型程序设计中数据结构的具体使用过程,以增加学生对数据结构的实际应用的直观感性认识。

4 结束语

纵观作者数年来的《数据结构》课程的教学实践,仅是根据自己的教学经验和体会,提出了存在的问题,并在实际的教学工作中积极摸索改进方法。经过多年的努力,学生的程序设计能力都得到不同程度的提高,也增强了学生对计算机课程的学习积极性。

参考文献

[1]张红霞.数据结构教程与实践[M].北京理工大学出版社,2006.

[2]数据结构[M].西安电子科技大学出版社,2004.

第8篇

关键词:c/c++;程序设计;编程思想

1 引言

“c语言程序设计”课程是高校计算机及相关专业的传统课程,近年来该课程却逐渐向“C/C++程序设计”过渡,更有甚者干脆摒弃C语言课程直接开设C++课程,这一现象值得我们反思,究竟如何在C与C++之间取舍,二者有何联系与区别?下面分别从三方面进行阐述。

2 联系

C++是以G语言为基础增加新内容发展而来,是C语言的推广和延伸。绝大部分C语言中正确的语句在C十十中也可以使用,C语言是C++的子集。

2.1 main函数

c++与c语言中都有main函数,main函数在两种语言中都起着不可或缺的作用,担当重要作用即程序的入口。简单的不带类的c++程序中的主函数除了输入输出(Gout/cin)与G语言不同。别的二者非常类似。

2.2类与结构

类是面向对象程序设计中最基本的概念,是实现面向对象程序设计的基础与核心。类是将不同类型的数据和与数据相关的操作封装在一起的集合体,是对要处理问题的抽象描述。定义了抽象类之后可利用该类定义其实体即该类的对象。结构是c语言中很有用的一种数据类型,是以后学习c++中“类”的基础。结构体成员组合在一起形成一个整体,其成员可为不同的类型。定义结构体之后可用该结构体类型定义结构体变量。c中的结构可以说是c++中类的雏形,但其区别也是显而易见的,结构中只是有数据成员没有成员函数;结构中也没有public和private关键字,其中的数据成员默认都是公有的,一般函数都可以访问,而C++的类中的数据成员默认情况下都是私有的,只有类对象中的成员函数和友元函数能够访问,这样极大地提高了数据的安全性。

2.3模板与宏

模板是c++程序设计中的重要机制,可以节约程序代码,提高面向对象程序设计的可重用性和可维护性。模板把函数或类要处理的数据类型参数化,表现为参数的多态性,从而有效实现了程序设计中的代码重用。c语言中的宏定义是一种预处理方式。可改进程序设计环境,提高编程效率。其中带参数的宏定义方式不只是简单的字符串替换,还要进行参数替换,为日后学习面向对象程序设计中的函数模板奠定基础。

3 区别

C是一种结构化语言,其重点在于算法和数据结构。C程序设计首要考虑如何通过一个过程,对输入或环境条件进行运算处理得到输出或实现过程控制,而c++首要考虑如何构造一个对象模型,让这个模型能契合与之对应的问题域,这样就可通过获取对象的状态信息得到输出或实现过程控制。

3.1编程思想

c++与C语言最大的区别在于编程思想的截然不同,前者是面向对象的编程语言,后者则是面向过程的结构化的编程语言。面向对象程序语言将程序设计领域与日常生活拉得更近,面向过程的C语言强调程序的功能,以函数为中心,c++在C语言这一强大巨人的肩膀上发展,通过C语言强大的软硬件控制功能,融入面向对象的编程思想。强调程序的分层。分类,以抽象的类为基础,进行对象的定义与展示,使应用程序具有封装性、继承性和多态性。

3.2关键字

c语言中的关键字几乎都可以在C++中使用,但c++中增加了一些C语言中所不支持的关键字,这些关键字能够作为函数和变量的标识符在c程序中使用,尽管C++包含了所有的c,很显然没有任何e++编译器能够编译这样的c程序。例如c++中的new和delete取代了C中的malloc和free,C++中还增加了public、private、try catch。throw等很多关键字。

3.3语法格式

c++和c语言在语法格式上也有很大的不同。c程序员可以省略函数的返回类型,C++却不可以,即使无返回也应加上void类型。注释的格式:c语言只支持**。C++还支持//在C语言中输入输出是使用scanf和printf函数来实现的,而e++是使用类来实现的,C++中用于控制1/O的iostream类库替代了C语言中的stdio函数库。C++中的try/oatch/thrOw异常处理机制取代了C中的setjmp和Iongjmp函数。C++中的引用简化了c语言中过于繁杂的指针。