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

程序设计的结构赏析八篇

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

程序设计的结构

程序设计的结构第1篇

1、整体思路清楚,目标明确。

2、设计工作中阶段性非常强,有利于系统开发的总体管理和控制。

3、在系统分析时可以诊断出原系统中存在的问题和结构上的缺陷。

4、用户要求难以在系统分析阶段准确定义,致使系统在交付使用时产生许多问题。

5、用系统开发每个阶段的成果来进行控制,不能适应事物变化的要求。

6、系统的开发周期长。

程序设计的结构第2篇

关键词:软件工程;结构化;面向对象;程序设计

中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)21-30451-02

In Programming Structurized Method and Object-oriented Method Comparison

FU Yu-jiang

(Hainan Software Professional Technology Institute,Qionghai 571400,China)

Abstract: The structurized method and the object-oriented method are 2 cores thought in the software development programming.These two programming method not only displays for in the program language, the analysis and the design difference, displays in the development thought and the development angle of view difference.

Keywords: Software Engineering; Structurization; Object-oriented; Programming

在计算机系统开发领域中存在各种各样的系统分析和设计方法,其中结构化方法与面向对象方法是软件开发程序设计中的2个核心思想。结构化方法来自于20世纪60年代流行的结构化设计语言,例如PASCAL、C语言等,经过几十多年的研究及应用,最为成熟且影响最大。而面向对象方法近10年来发展较快,被广泛应用于计算机软件的各个领域,如计算机仿真、系统设计、人工智能程序设计等各个方面,显示出了强大的生命力,现已呈现出取代结构化方法的趋势。本文具体分析了两者在系统分析设计中的差别及优劣。

1 结构化方法分析与设计

结构化方法承袭了传统的编程思想与编程方法,结构化方法只是对传统程序结构的改进。模块是结构化编程的基本单位,计算方法(简称为算法)是程序的核心,结构化分析和结构化设计是结构化方法软件开发最关键的两个时期。

1.1 结构化方法的基本思想

结构化方法程序设计的基本思想是:自顶向下,采用模块化技术,分而治之,逐步求精地将信息系统按功能分解为若干模块进行分析与设计,应用子程序实现模块化,模块内部由顺序结构、选择结构、循环结构等三大基本控制结构组成。即从代表目标系统整体功能的单个处理着手,自顶向下不断地把复杂的处理分解为子处理,这样一层一层地分解下去,直到仅剩下若干个容易实现的子处理为止,并写出各个最低层处理的描述。

1.2 结构化分析

结构化分析是一种面向数据流而基于功能分解的分析方法,在该阶段主要通过采用数据流程图、编制数据字典等工具,描述边界和数据处理过程的关系,力求寻找功能及功能之间的说明。通常所说的“结构化分析”就是“数据流分析”。

数据流分析的核心特征是“分解”与“抽象”。“分解”和“抽象”是两个相互有机联系的概念,下层是上层的分解,上层是下层的抽象。例如,假设系统很复杂,为了理解它,将它分成了5个子系统,如果子系统仍然比较复杂还可以再继续分解它,如此下去,直到每个子系统足够简单,能清楚地被理解和表达为止。

典型的结构化分析方法可以描述为:功能分解=功能+子功能+功能接口。问题域映射为功能和子功能,规格说明间接反映问题域。分析的结果是系统、子系统、功能、子功能层次结构的建立。

1.3 结构化设计

结构化设计通常与结构化分析方法衔接起来使用,以数据流图为基础,将数据流图表示的信息转换成程序结构的设计描述,在该阶段力求寻找功能的实现方法,完成软件层次图或软件结构图。

结构化设计通常表述为:结构图+关系数据模式,其中,结构图描述软件系统的程序结构,关系数据模式描述软件系统的数据库结构。因此,结构化设计工作主要包括程序结构设计和数据库结构设计。设计过程分两步完成,第一步构造出一个具体的系统设计方案,决定系统的模块结构(包括决定模块的划分、模块间的数据传递及调用关系);第二步在总体设计的基础上,将实体联系图转换成关系数据模式,确定每个模块的内部结构和算法,产生每个模块的程序流程图,最终在此基础上设计建立外模式。

1.4 结构化分析设计的局限

1)不能直接反映问题域:结构化分析方法以数据流为中心,强调数据的流动及每一个处理过程,不是以问题域中的各事物为基础,打破了各事物的界限,分析结果不能直接反映问题域,容易隐蔽一些对问题域的理解偏差。

2)数据和代码缺乏保护机制:一个特定全程数据既可以作这些数据的过程访问,也可以被其他过程访问,这给程序设计带来了不安定因素,一个不正常的数据修改或者过程调用可能会破坏正常的程序执行流程或结果。

3)分析和设计体系不一:结构化分析的结果是数据流图,结构化设计的结果是模块结构图。二者的表示体系不一致,分析文档很难与设计文档对应,所以从分析到设计的“转换”过程容易因理解上的错误而使得设计文档与用户的原本需求相差甚远。

4)开发过程复杂: 由于结构化方法将过程和数据分离为相互独立的实体, 程序员在编程时必须时刻考虑到所要处理的数据的格式。对于不同的数据格式做相同的处理或对于相同的数据格式做不同的处理都需要编写不同的程序,而且往往不能对数据的安全性进行有效的控制。如果程序进行扩充或升级,也需要大量修改函数,因此结构化程序的可重用性不好。要使数据与程序始终保持兼容,已成为程序员的一个沉重的负担。

2 面向对象分析与设计

2.1 面向对象的基本思想

面向对象方法的出发点是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界、解决问题的方法与过程,也就是使描述问题的问题空间与实现解法的求解空间在结构上尽可能一致。

面向对象是一种运用对象、类、继承、封装、聚合、消息传递、多态性等概念来构造系统的软件开发方法。它打破了传统的代码、数据分离做法,将一种数据结构和操作该数据结构的方法捆在一起,封装在一个程序内,实现了数据封装和信息隐藏,通过“操作”作为接口实现信息传递。对外部来说,只知道“它是做什么的”,而不知道“它是如何做的”,使得数据封装、信息隐藏、抽象代码共享等软件工程思想得到充分体现。

2.2 面向对象的重要特征

1)抽象:从许多事物中舍弃个别的、非本质的特征,抽取共同的、本质性的特征,就叫作抽象。抽象是形成概念的必须手段。

2)类和对象:“类”是面向对象语言中的一种抽象数据类型。面向对象方法认为客观世界是由各种对象组成的,复杂的对象可以由比较简单的对象以某种方式组合而成。例如人、车、学校、球场、商店、螺丝钉等都可以看做是对象。对象按照不同性质可以划分成各种对象类。“对象”可以理解为“类”的一个实例,每个对象都有自己的属性(状态和特征)和方法(行为)。

3)继承: 即特殊类的对象拥有其一般类的全部属性与服务。由于具有“继承”性这个特点,使得程序员对共同的属性以及方法只说明一次,并且在具体的情况下可以扩展细化或修改这些属性及方法。

4)封装:表示对象状态的数据和实现各个操作的代码,都被封装在对象里面,它与外界的联系是通过对象的对外接口(方法)实现。外界不需要关心对象是如何进行各种细节处理。

5)多态:指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。就如不同的对象,收到同一消息可以产生不同的结果。

2.3 面向对象分析(Object Oriented Analysis OOA)

面向对象分析是面向对象软件工程方法的第一个环节,OOA的任务是把对问题域和系统的认识理解,正确地抽象为规范的对象(包括类、继承层次)和消息传递联系,最终建立起问题域的简洁、精确、可理解的面向对象模型,为后续的面向对象设计和面向对象编程提供指导。面向对象分析方法可以描述为:OOA=对象+类+继承+消息传递。

面向对象分析通常建立三种模型:对象模型、动态模型、功能模型。其中,对象模型描述了系统的静态结构,在第一轮迭代中可能只确定类的名称和类间的关系。动态模型表示瞬时的、行为化的系统的“控制”性质,它规定了对象模型中的对象的合法变化序列。功能模型表明了系统中数据之间的依赖关系,以及有关数据的处理功能,它有一组数据流图组成。

面向对象的分析过程实际上是依次建立对象模型、动态模型、功能模型,之后反复迭代,细化类的属性和服务(方法)。之后可以根据需要,再按此过程逐渐迭代细化。

2.4 面向对象设计(Object Oriented Design OOD)

1)OOA和OOD采用一致的概念、原则和表示方法,二者之间不存在鸿沟,不需要从分析文档到设计文档的转换,二者之间也不强调严格的阶段划分。能体现二者之间关系的是软件生命周期模型――喷泉模型(如图1),其中分析与设计没有严格的边界,它们是连续的、无缝的、允许有一定的相交。在分析阶段所获得的信息,不仅是设计阶段的输入,同时也是设计阶段的一个完整部分,分析得到对象及其相互关系,而设计则是解决这些对象及其相互关系的实现问题。

OOA与OOD的区别主要是,OOA与系统的问题域更加相关,OOD与系统的实现更加密切;OOD是对OOA所得出的对象模型的直接细化和抽象,得到可直接实现的类图。

2)面向对象设计可看作是面向数据流图与面向数据结构的结构化方法的统一,把数据及其操作封装,再取个名字为对象。对象是高性能的数据,整个程序的执行就是若干对象彼此通信。这种以对象为中心的模块,不但内聚、耦合性能良好,而且适于并发。这样,系统的设计就可看成把系统所要求解的问题解释为一些对象及对象间消息传递的过程。

2.5 面向对象方法的优点

面向对象技术较之与传统的结构化方法有其独到之处:

1)可重用性。可重用性是面向对象软件开发的一个核心思路。通过类的继承关系,使公共的特性能够共享,简化了对象、类的创建工作量,增加了代码的可重性。另外,重用经过测试的代码还可以使产生额外错误的可能性达到最小。

2)可扩展性。可扩展性是对现代应用软件提出的又一个重要要求。类的继承性使类能反映现实世界的层次结构,多态性反映了现实世界的复杂多样。类的继承性和多态性使软件编码具有良好的可重用性和可扩展性。无需修改源代码就可以使软件功能容易扩充和修改。

3)数据保护。数据和操作数据的算法不再分离,它们被封装在一起,对象内部的行为实现细节被隐藏。封装防止了程序相互依赖性而带来的变动影响。

4)可管理性。面向对象的开发方法采用类作为构建系统的部件,以对象作为系统的基本组成单元,使整个项目的组织更加合理、方便,因为归纳事物、划分成类进行管理符合人们在认识和管理客观世界的习惯思维方式。

3 结束语

结构化和面向对象是软件工程的程序设计方法中最本质的思想方法。结构化编程的基本思想就是把大的程序划分为若干个相对独立、功能简单的程序模块。它以过程为中心,强调的是过程,强调功能和模块化,通过一系列过程的调用和处理完成相应的任务。面向对象编程以对象为中心,是对一系列相关对象的操纵,发送消息给对象,由对象执行相应的操作并返回结果,强调的是对象。理论上,面向对象的程序设计方法将产生更好的模块内聚和耦合特性,使得软件更易于重用与维护。但在实践中程序设计方法关注软件生命周期的各个环节,从需求分析、总体设计到编码、测试和维护。同时设计方法在各个阶段需要工具和环境的支撑,因此在选择程序设计方法时,需要综合考虑这些因素。

参考文献:

[1] 郭溪川.对比分析面向对象方法与结构化方法[J].农业网络信息,2006(11).

[2] 郭燕慧.面向对象软件分析设计与测试[M].北京:科学出版社,2004.

[3] 王德军,郝永芳.结构化程序设计方法与面向对象的程序设计方法的比较[J].铁路计算机应用,2003,12(11).

程序设计的结构第3篇

全书共20章。1.Python编程101:对使用Python语言编程进行总体介绍,包括创建对象、对象调用方法、运算符重载、读取文件方法、XML文件等内容;2.计算复杂度:包括计算机体系结构介绍、常见的计算复杂性、摊销复杂度的方法等;3.递归:包括时栈和堆的概念、简单递归函数的编写、运行,递归计算机图形学、列表与字符串等;4.排序:包括选择排序、归并排序、快速排序、链表、栈和队列等内容;5.集合与映射:数独游戏介绍、集、散列等相关概念,最后分析规划问题;6.树:抽象语法树和表达、前缀和后缀表达式、解析前缀表达式、二叉搜索树等内容;7.图:包括图的定义及理论、存储结构及算法实现、Kruskal算法、Dijkstra算法、图的表示方法等;8.Bloom过滤器、Trie数据类型等相关内容;9.堆:包括堆的主要思想及其建立、排序算法、与其他算法的比较等;10.平衡二叉搜索树:二叉搜索树的概念、存储结构与性质、AVL树与 Splay树等具体实例;11.B树:包括关系型数据库的概念、B树的组织结构、优势、实现、B树的插入与删除等内容;12.启发式搜索:包括深度优先搜索与广度优先搜索、A*搜索、最佳搜索等相关内容;13.附录A:整数操作符;14.附录B:浮算子;15.附录C:字符串运算符和方法;16.附录D:列表操作符和方法;17.附录E:字典操作和方法;18.附录F:Turtle方法;19附录G:TurtleScreen方法;20.附录H:完整的程序。

作者Kent D.Lee博士是美国艾奥瓦洲路德学院计算机科学教授,已成功出版两本著作:Python编程基础和编程语言基础。另一作者Steve Hubbard博士是路德学院数学与计算机科学系教授。

本书介绍了初级与高级的数据结构和算法问题,每一章开始提供了学习目标,复习题和编程练习,以及众多的例证;同时在相关的网站提供可下载的程序和补充文件。本书可以作为计算机学科相关专业的教材或参考书,同时对计算机科技工作者也有参考价值。

程序设计的结构第4篇

当前,计算机技术飞速发展,程序设计技术已从结构化程序设计技术向面向对象程序设计技术过渡,对一个规模较大的应用程序,总体框架是由面向对象程序设计构搭而成,而在局部实现时仍需采用结构化程序设计技术。C语言是一种很好的结构化程序设计语言,因此,笔者论述了C中的的结构化程序设计的方法。

结构化程序设计(STRUCTURED PROGRAMING,简称SP)的概念是由荷兰学者E·W.DUKSTRA等人在20世纪60年代后期提出的,是以模块化设计为中心,将原来较为复杂的问题化简为一系列简单模块的设计,也就是将—个大的计算任务划分为一个个比较小的任务,这些小任务均由函数来完成。而函数既可以是C的标准库函数。也可以是自定义函数。在C中,一个具备一定规模的C程序往往是由多个函数组成,其中必有一个名为main的主函数,由main来调用其他函数,必要的话,其他函数还可以调用另外的函数。同一函数可以被一个或多个函数调用一次或多次。模块的独立性还为扩充已有的系统、建立新系统带来了不少的方便,因为我们可以充分利用现有的模块作积木式的扩展。

结构化程序设计的思想是一个程序的任何逻辑问题,均可用顺序结构、选择结构和循环结构这3种基本结构来描述。顺序结构的程序流程是按语句的书写顺序依次执行;选择结构是对给定条件进行判断,根据判断结果决定执行两分支中的一个分支或多分支中的一个分支;循环结构是在给定条件成立的情况下,反复执行某个程序段。实现这些程序流程的语句都是流程控制语句。流程控制语句在程序设计中起着重要的作用,通过3种基本控制结构使结构化程序具有唯一的人口和出口,没有死循环,而且程序的静态形式与动态执行形式之间具有良好的对应关系。在C语言中,有4种语句是顺序执行的:①空语句,光有一个分号“;”作为语句结束符,它表示什么也不做。②表达式语句,表达式后面加一个分号,表达式语句主要有赋值语句、自加减运算符构成的语句和逗号表达式语句。③函数调用语句,它是由一个函数调用加上一个分号组成的。④复合语句,由“{”和“}”把一些变量说明和语句组合放在一起,又称为语句块。选择语句有if语句和switch语句。循环语句有for,while和do-while语句以及一些辅助流程转向语句如continue,break,goto等。顺序结构,选择结构和循环结构共同作为各种复杂程序的基本构造单元,由这3种结构经过反复嵌套构成的程序称为结构化程序,也就是说,结构化程序是由上述3种基本结构组成的。但如果在编程过程中无限制地使用转移语句(-goto),会使程序的控制流程强制性地向前或向后跳转而导致程序的流程无序可循,结构杂乱无章。结构化构造减少了程序的复杂性,提高了可靠性、可测试性和可维护性,使用少数的基本结构,就可使程序逻辑结构清晰,易读易懂,并且容易验证程序的正确性。对—个初学计算机语言的人来说。最重要的就是要有正确的程序流程概念,不仅要懂得而且要灵活应用。由此可见,用结构化方法设计的结构是清晰的,有利于编写出结构良好的程序。因此。结构化程序设计方法的主要原则可以概括为自顶向下,逐步求精,模块化,限制使用goto语句。

程序设计的结构第5篇

结构程序化设计方法如下:

结构化程序设计方法是按照模块划分原则以提高程序可读性和易维护性、可调性和可扩充性为目标的一种程序设计方法。在结构化的程序设计中,只允许三种基本的程序结构形式,它们是顺序结构、分支结构、(包括多分支结构)和循环结构,这三种基本结构的共同特点是只允许有一个流动入口和一个出口,仅有这三种基本结构组成的程序称为结构化程序。结构化程序设计适用于程序规模较大的情况,对于规模较小程序也可采用非结构化程序设计方法。

(来源:文章屋网 )

程序设计的结构第6篇

【关键词】软件开发;方法创新;发展过程

软件开发在今天这样一个日新月异的社会中对于软件行业的发展有着极其重要的作用,软件的开发是软件行业向前发展不可缺少的推动力,软件的开发可以说影响了软件行业发展的快慢。随着社会的不断进步,不同的经济发展条件下,对于软件的需求也是不同,因此要对软件的开发方法进行创新,尽可能的跟上时展的潮流。软件的开发经过一代又一代人的努力取得了今天的成就,但是我们还要不断的努力,对软件的开发方法进行创新。

1软件发展的几大阶段概述

软件作为计算机的重要组成部分,它的发展是伴随着计算机的发展而发展的,从电子计算机产生,软件也随着相伴而生,可以说电子计算机和软件是相互依存的关系,经过长时间的发展,到现在为止,软件的发展历史大概可以分为三个阶段:结构化的程序设计阶段;面向对象的程序设计和系统分析阶段;基于组件软件的系统开发阶段。结构化的程序设计的概念最早是1965年提出的,它是软件开发历史上一个非常重要的里程碑,它的主要观点是采用一种自上而下、一步一步精细化和模块形式的程序设计方法,它主要使用三种基本结构控制结构构造程序,任何的程序都可以使用顺序、选择、循环三种基本结构进行结构构造的控制。结构化的程序设计主要强调的是程序的易读性;面向对象的程序设计是一种程序设计的典范,同时也是一种重要的程序开发的方法,它把对象作为程序设计基本单元,可以提高软件的实用性、灵活性。面向对象程序设计与传统的程序设计相比具有很大的优势,目前面向对象程序世纪的灵活性已经得到了证实,并且在许多大型的设计项目中被广泛的应用。我们现在所说的面向对象不仅是一种程序设计方法,也是一种程序开发的方法;组件化是软件技术发展到一定阶段的产物,是可以改善软件可靠性、实用性行之有效的办法。

2两个主要软件开发的创新发展

2.1面向对象软件开发方法的创新发展

面向对象软件开发方法是计算机发展到一定水平的必然结果,面向对象的软件开发方法是为了把电子计算机技术与现实生活中的问题结合起来的开发方法,能够更好的为我们的生活提供便利,计算机具有一定的虚拟性,虽然能够依靠先进的技术描绘出现实社会中的东西但是需要计算机技术与现实世界相符合。在面向对象的软件开发过程中主要有两种典型的方法,这两种典型的方法可以使计算机数据和我们的生活现实完美的结合到一起。面向对象的程序设计方法的目标是如何把计算机技术与现实社会的实际结合到一起,解决虚拟与现实结合的问题。软件一般都是有生命周期的,软件的生命周期是建立在面向软件的基础上的,存进了00D和00A两种方法的形成。面向对象软开发方法的创新发展是一个长期的过程,是需要我们不断的去探索的过程,随之时代的发展面向对象软件开发方法的创新发展对于社会发展来说是非常重要的。

2.2结构化软件开发方法的创新发展

计算机发展中的两个主要软件开发方法另一个就是结构化的软件开发方法,对于计算机来说结构化的软件开发方法是非常重要的,结构化的软件开发方法主要可以分为几个主要的部分:结构化分析、结构化设计和实现的过程。

3结构化软件开发创新发展中的重要环节

3.1软件开发中存在的问题

虽然软件的程序设计是一个精密的设计过程,但是在进行设计的过程中也会存在一定的问题,我们要及时地找出其中的问题,据调查在结构化软件开发出现之前,软件的开发活动主要以个体为主,只是注重自己的想法,不知道和他人进行配和,在进行编写程序是随自己的想法走,只要自己舒服就可以,有的人过分的追求程序编写的技巧,没有制定专门的编写软件程序的准则。还有的人认为开发软件知识编写程序,对于程序编写之外的一切事情都不关心,知识一味的按照自己的思想向前走,给软件的程序开发带来了严重的阻碍,也给软件事业的发展带来了极大的影响。

3.2用创新的思维解决软件开发中的的问题

我们要解决软件程序设计中的问题就要对我们的软件开发思维进行创新,这种创新的思维观念要求我们在进行程序的编写是不要随自己心情,也不要过分的追求编写程序的技巧,要注重团队的力量,把软件的程序编写与我们的生活世纪结合起来,还要考虑到程序便捷性和实用性,还要合理的使用顺序、选择、循环着三种结构使我们编写的程序变得更加的完善。编写程序只是软件开发过程中的一个组成部分,还要加强对其他部分的重视力度,我们才能更好的进行程序的编写,我们在软件的设计过程中不能只重视程序的编写还要中和的考虑其他方面的问题。

3.3对软件的核心技术进行创新

软件开发中的核心技术程序设计,因此要想实现软件的创新就要对软件的核心技术进行创新,软件的核心技术是一个非常重要的部分,按照新的思维模式对软件的设计进行创新,结合C语言和Pascal语言不断的完善软件设计,通过创新的思维模式我们可以更具有便捷性和实用性,给我们的软件行业带来好处,创新是任何行业都要面临的问题,同样的创新也是一个行业发展的不竭动力,会给行业的发展带来极大的便利。软件核心技术创新对于软件行业的发展有着非常重要的作用。

3.4用创新的思维完善软件开发中的问题

目前,我们的软件开发的过程还是不够完善,软件开发中还存在一定的问题,我们要用创新思维来完善软件开发中的问题,完善的内容主要是将思维创新的观念应用到软件的设计和软件的结构化设计中去去,使我们设计的软件更加的完善。软件设计的完善会使我们的软件在应用的过程中减少食物,软件中的存在的缺点少,就更有利我们软件行业的发展,给软件行业的发展带来便利,是软降的使用更加的具有便捷性和实用性。

4结语

软件可以说和电子计算机技术是相伴而生的,二者对于今天社会的发展是缺一不可的,从消费者的角度来看大多数的消费者希望软件在原有的质量的基础上变得更加的便捷化、简单化。通过上诉对软件创新过程的研究,我们可以知道软件带给我们的好处,软件的创新发展的研究给我们今天经济的发展也带来了一定的影响。创新是一个逐渐发展、逐渐渗透的过程,在创新发展的过程中,我们要先对软件设计的核心进行创新,通过创新可以更好的发展。

参考文献

[1]高禹堂,冯相忠,刘宇阳.软件开发方法演变的几个主要因素[J].自然辩证法通讯,2011(05).

程序设计的结构第7篇

毕业设计开题报告1.课题名称:

钢筋混凝土多层、多跨框架软件开发

2.项目研究背景:

所要编写的结构程序是混凝土的框架结构的设计,建筑指各种房屋及其附属的构筑物。建筑结构是在建筑中,由若干构件,即组成结构的单元如梁、板、柱等,连接而构成的能承受作用(或称荷载)的平面或空间体系。

编写算例使用建设部最新出台的《混凝土结构设计规范》gb50010-2002,该规范与原混凝土结构设计规范gbj10-89相比,新增内容约占15%,有重大修订的内容约占35%,保持和基本保持原规范内容的部分约占50%,规范全面总结了原规范实施以来的实践经验,借鉴了国外先进标准技术。

3.项目研究意义:

建筑中,结构是为建筑物提供安全可靠、经久耐用、节能节材、满足建筑功能的一个重要组成部分,它与建筑材料、制品、施工的工业化水平密切相关,对发展新技术。新材料,提高机械化、自动化水平有着重要的促进作用。

由于结构计算牵扯的数学公式较多,并且所涉及的规范和标准很零碎。并且计算量非常之大,近年来,随着经济进一步发展,城市人口集中、用地紧张以及商业竞争的激烈化,更加剧了房屋设计的复杂性,许多多高层建筑不断的被建造。这些建筑无论从时间上还是从劳动量上,都客观的需要计算机程序的辅助设计。这样,结构软件开发就显得尤为重要。

一栋建筑的结构设计是否合理,主要取决于结构体系、结构布置、构件的截面尺寸、材料强度等级以及主要机构构造是否合理。这些问题已经正确解决,结构计算、施工图的绘制、则是另令人辛苦的具体程序设计工作了,因此原来在学校使用的手算方法,将被运用到具体的程序代码中去,精力就不仅集中在怎样利用所学的结构知识来设计出做法,还要想到如何把这些做法用代码来实现,

第一整理该文章……

4.文献研究概况

在不同类型的结构设计中有些内容是一样的,做框架结构设计时关键是要减少漏项、减少差错,计算机也是如此的。

建筑结构设计统一标准(gbj68-84)该标准是为了合理地统一各类材料的建筑结构设计的基本原则,是制定工业与民用建筑结构荷载规范、钢结构、薄壁型钢结构、混凝土结构、砌体结构、木结构等设计规范以及地基基础和建筑抗震等设计规范应遵守的准则,这些规范均应按本标准的要求制定相应的具体规定。制定其它土木工程结构设计规范时,可参照此标准规定的原则。本标准适用于建筑物(包括一般构筑物)的整个结构,以及组成结构的构件和基础;适用于结构的使用阶段,以及结构构件的制作、运输与安装等施工阶段。本标准引进了现代结构可靠性设计理论,采用以概率理论为基础的极限状态设计方法分析确定,即将各种影响结构可靠性的因素都视为随机变量,使设计的概念和方法都建立在统计数学的基础上,并以主要根据统计分析确定的失效概率来度量结构的可靠性,属于“概率设计法”,这是设计思想上的重要演进。这也是当代国际上工程结构设计方法发展的总趋势,而我国在设计规范(或标准)中采用概率极限状态设计法是迄今为止采用最广泛的国家。

结构的作用效应常见的作用效应有:

1.内力。

轴向力,即作用引起的结构或构件某一正截面上的法向拉力或压力;

剪力,即作用引起的结构或构件某一截面上的切向力;

弯矩,即作用引起的结构或构件某一截面上的内力矩;

扭矩,即作用引起的结构或构件某一截面上的剪力构成的力偶矩。

2.应力。如正应力、剪应力、主应力等。

3.位移。作用引起的结构或构件中某点位变(线位移)或某线段方向的改变(角位移)。

4.挠度。构件轴线或中面上某点在弯短作用平面内垂直于轴线或中面的线位移。

5.变形。作用引起的结构或构件中各点间的相对位移。变形分为弹性变形和塑性变形。

6.应变:如线应变、剪应变和主应变等。

极限状态整个结构或结构的一部分超过某一特定状态就不能满足设计规定的某一功能要求,此特定状态称为该功能的极限状态。极限状态可分为两类:

1.承载能力极限状态。结构或结构构件达到最大承载能力或达到不适于继续承载的变形的极限状态:

(1)整个结构或结构的一部分作为刚体失去平衡(如倾覆等);

(2)结构构件或连接因材料强度被超过而破坏(包括疲劳破坏),或因过度的塑性变形而不适于继续承载;(3)结构转变为机动体系;

(4)结构或结构构件丧失稳定(如压屈等)。

2.正常使用极限状态。结构或结构构件达到使用功能上允许的某一限值的极限状态。出现下列状态之一时,即认为超过了正常使用极限状态:

(1)影响正常使用或外观的变形;

(2)影响正常使用或耐久性能的局部损坏(包括裂缝);

(3)影响正常使用的振动;(4)影响正常使用的其它特定状态。

结构设计的基本任务,是在结构的可靠与经济之间选择一种合理的平衡,力求以最低的代价,使所建造的结构在规定的条件下和规定的使用期限内,能满足预定的安全性、适用性和耐久性等功能要求。为达到这个目的,人们采用过多种设计方法。以现代观点看,可划分为定值设计法和概率设计法两大类。

1.定值设计法。将影响结构可靠度的主要因素(如荷载、材料强度、几何参数、计算公式精度等)看作非随机变量,而且采用以经验为主确定的安全系数来度量结构可靠性的设计方法,即确定性方法。此方法要求任何情况下结构的荷载效应s(内力、变形、裂缝宽度等)不应大于结构抗力r(强度、刚度、抗裂度等),即s≤r。在20世纪70年代中期前,我国和国外主要都采用这种方法。

2.概率设计法:将影响结构可靠度的主要因素看作随机变量,而且采用以统计为主确定的失效概率或可靠指标来度量结构可靠性的设计方法,即非确定性方法。此方法要求按概率观念来设计结构,也就是出现结构荷载效应3大于结构抗力r(s>r)的概率应小于某个可以接受的规定值。这种方法是20世纪40年代提出来的,至70年代后期在国际上已进入实用阶段。我国自80年代中期,结构设计方法开始由定值法向概率法过渡。

面向对象编程

使创建windows程序较为容易的关键技术是面向对象编程,或oop。这种技术可以创建可重用组建,它是程序的组成模块。

几个定义

控件提供程序可见界面的可重用对象。控件的示例有文本框、标签和命令按钮。

事件由用户或操作系统引发的动作。事件的示例有击键、单击鼠标、一段时间的限制,或从端口接收数据。

方法嵌入在对象定义中的程序代码,它定义对象怎样处理信息并响应某事件。例如,数据库对象有打开纪录集并从一个记录移动到另一个记录的方法。

对象程序的基本元素,它含有定义其特征的属性,定义其任务和识别它可以响应的事件的方法。控件和窗体是visualbasic中所有对象的示例。

过程为完成任务而编写的代码段。过程通常用于响应特定的事件。

属性对象的特征,如尺寸、位置、颜色或文本。属性决定对象的外观,有时也决定对象的行为。属性也用于为对象提供数据和从对象取回信息。

5.设计主要内容

本软件适用于现浇钢筋混凝土多层、多跨的框架的设计。毕业设计要完成的工作包括:

1.平面钢架分析程序的改造

对结构力学教研室版平面钢架分析程序进行修改和补充。要求:

(1)编写自动生成节点坐标和单元节点编号的程序,或以图形方式输入计算简图。

(2)修改程序,使之适合多工况内力计算;(3)根据输入、输出数据的特点,设计适当的人机界面。输出应可选的显示各构件端力和内力图。

2.编写钢筋混凝土多层多跨框架机构的构件设计程序

(1)根据有关的规范,应明确计算的各种荷载(恒载、楼屋面活载、风荷载和地震作用等)的计算方法,在次基础上编写自动生成各种荷载作用下的结点荷载和单元荷载的程序。

地震作用按底部剪力法确定。自振周期用经验公式确定。

(2)计算各种荷载单独作用时框架各杆件的内力。计算结构存放在各自的杆端力(随机)文件中。

对竖向荷载下的梁端弯距进行塑性调幅。

(3)在(2)中产生的杆端力文件基础上,分别计算各种可能的荷载组合下,梁、柱控制截面的内力。计算结果存放在适当的文件中。

(4)从(3)生成的文件中选出最不利组合,同时给出截面配筋。

梁、柱截面配筋的确定应考虑抗震设计的要求。

(5)部分编程较熟练的同学可根据计算结果和构造规定,用auto-cadvba绘制梁、柱配筋图。

5.成果形式

本毕业设计的成果应包括:

1.可运行的、并能给出正确计算结果的源程序

在存放源程序的软盘中,应至少有一个算例的数据文件,可在基本不需另外键入数据的前提下,显示正确地运行结果。

2.软件使用手册

这是为用户准备的关于软件使用方法、操作步骤和其他必要的文字材料。

3.软件说明书

这是软件作者的工作档案,是软件维护的基本资料。其中应包括:

(1)软件所依据的工作档案、力学和工程结构模型的较为详细的描述,主要的计算公式及其使用的符号的含义,重要算法的文字说明:

(2)程序的结构:模块的划分的情况、各模块相互之间的关系及各模块的功能;

(3)带有较为详细的注释的源程序文本。其中应注明各标识符的含义(尽可能的采用通用公式中的符号)。各程序段的功能、相应的数学公式和特殊算法的说明;(4)为使他人根据软件说明书读懂你的程序所必需的其他资料。

(5)部分编程较熟练的同学可递交梁、柱配筋图纸一张。

4.对自己所编程序的评价

(1)对算例计算结果的合理性进行必要的分析;

(2)总结软件设计过程中的经验和及教训,提出设计改进意见。

以上各项资料处源程序文本以软盘形式提交外,其余均用计算机打印。

6.进度计划

第一周毕业实习,参观工程,收集资料。

第二周需求分析:描述计算机模型,编些初步的软件说明书。

第三周软件设计:选择模块划分的方案

第四周模块设计:数据输入界面设计(梁柱截面数据)

或数据输入界面设计(可视化图形输入)

第五周数据输入界面设计(框架数据、附加荷载)

第六周模块设计:荷载计算(恒载、活载),相应的内力计算

第七周荷载计算(风荷载、地震作用),相应的内力计算

第八周模块设计:梁配筋计算

第九周梁荷载组合,确定梁配筋

第十周梁荷载组合,确定梁配筋

第十一周模块设计:柱配筋计算

第十二周柱荷载组合,确定柱配筋

第十三周柱荷载组合,确定柱配筋

第十四周软件测试或用autocadvba绘制梁、柱配筋图;

第十五周软件测试

第十六周整理源程序,编写软件说明数和用户手册

程序设计的结构第8篇

关键词:C语言;循环;for语句

1. 前言

顺序结构、选择结构、循环结构是结构化程序设计的三种基本结构,结构化程序设计的基本思想是任何程序都可以用顺序结构、选择结构、循环结构这三种基本结构来表示。因此在《C语言程序设计》课程中,掌握这三种基本程序结构对进行程序设计是非常重要的。而循环结构是这三种结构中最复杂的一种结构,几乎所有的结构化程序都离不开循环结构。在C语言中,可以实现循环结构的语句主要有for、while和do-while三种语句,其中for语句是整个C语言教学内容中的重点内容之一,功能最为强大,同时也是学生掌握和运用难度较大的一种语句。

2. 如何设计引例

据引英文原版教材将循环描述为:repeatation,重复,在《辞海》中循环被解释为:事物周而复始的运动或变化。可看出,循环实际上就是重复的过程。

2.1 运用实例解释循环思想

教师在教学过程中的“教”和学生的“学”是取得较好的教学效果,达到教学目标的重要途径,教师怎么“教”和引导学生如何“学”是教师在教学设计环节要思考的问题。引用实例在课堂的教学设计环节是非常重要的,一个好的引例能把抽象问题简单化、具体化,可以使学生感兴趣,有利于学生的理解掌握。在讲解循环结构时,就可利用现实生活中的具体实例来说明什么是循环以及为什么要研究循环。例如:学生在学校里每天都要经从寝室出发到食堂就餐再到教室上课,这样三点一线的重复生活,直到学校放假,这样重复的生活才各一段落;运动员要跑3000米,需要沿着400米的操场跑道重复跑7圈半才能跑完全程。这些例子的共同点都在于:它们存在重复性的动作,这些重复性的动作就是循环。

2.2 编程中的循环问题

在引入实例后,我们可提出问题:在程序设计中是否有类似的重复相同的动作出现?如果存在,我们又如何用程序实现?利用最简单的输出“*”的例子,同学们利用学过的知识很快能写出程序:

#include

main()

{

printf(“*”);

}

若改成:输出20个“*”。同样,学生可以利用上面的方法实现:

#include

main()

{

printf(“*”);

printf(“*”);

……

}

很显然,虽然程序结果可以实现,但是麻烦费时且程序复杂。要如何改进呢?将程序改为循环结构,使同一事物具有相同操作的部分用循环语句实现,就可以减少程序的复杂性,提高运行效率。

3.实例问题的解决

掌握for循环语句的格式、执行流程和功能,对于学习for循环并编写程序是非常重要的。在多年的教学过程中,笔者发现学生对for循环语句的结构和用法较容易掌握。但在实际应用中,学生分析和解决问题的能力较薄弱。因此,讲解的重点就放在应用上。根据知识点的特点,将教学内容由易到难,从浅入深分为3个层次讲解。

3.1 for循环语句的一般格式和执行流程

(1)for循环语句的一般格式:

for([表达式1];[表达式2];[表达式3])

语句组;

表达式1:给循环控制变量赋初值,指定循环的起点;

表达式2:循环条件,它决定什么时候退出循环;

表达式3:循环变量增值,规定循环控制变量每执行一次循环后按什么方式变化。

这3个表达式之间用“;”隔开。

因此,for循环语句可直观地描述为:

for([循环变量赋初值];[循环继续条件];[循环变量增值])

语句组;

(2)for循环语句的执行过程

求解“循环变量赋初值”表达式。

求解“循环继续条件”表达式。如果其值非0,执行;否则,转向。

执行循环体语句组,并求解“循环变量增值”表达式,然后转向。

执行for语句的下一条语句。

可以将for语句的执行过程简化为四要素格式,见图1:

在介绍了for语句的格式和执行过程后,采用案例教学法和任务驱动教学法,将刚才的例子,用for语句实现。程序段如下:

int i;

for(i=0;i

printf(“*”);

3.2 for循环语句灵活的语句格式

for循环语句灵活的语句格式是学习for语句格式的重点内容,结合实例进行“举一反三”,使学生提高对重点知识点学习。

for语句一般格式:for([循环变量赋初值];[循环继续条件];[循环变量增值])

语句组;

其中:“循环变量赋初值”、“循环继续条件”、“循环变量增值”部分均可缺省,甚至全部缺省,但分号不能省略。“循环变量赋初值”表达式可以是逗号表达式,也可以是其他表达式。

举例:求“1+2+3+……+100”的和,采用for语句的一般格式,程序段如下:

int n,sum=0;

for(n=1;n

sum+=n;

采用for语句的灵活格式,程序段分别修改如下:

n=1; n=1;

for( ;n

sum+=n; { sum+=n;if(n==100)

break;

程序段a:“循环变量初始化”缺省 n++;}

程序段b:“循环变量初始化”、“循

环条件”、“循环变量增值”均缺省

经过分析得出结论:两种格式的程序段运行结果等价。

3.3 for循环语句的实际运用

运用for循环语句解决实际问题是学习的最终目标,教师应结合具体实例,讲解算法。在教学过程中通过解决一个实际问题:输出几何图形。我们应首先分析图形的构成,找出其中的规律:如图2(a)的图形可以分解为(b)(c)两部分。从图2可以看出,三角形(b)(c)的每一行是由若干个星号、一个回车换行符和若干个空格构成,将星号数、行号、空格数和分别设为k、i、j,则可以形成下表:

分析表1,可以得出图2(b)的星号数k、行号i、空格数j之间的关系: j=3-i,k=2*i+1

分析表2,可以得出图2(c)星号数k、行号i、空格数j之间的关系:j=i+1,k=5-2*i

则图2(b)三角形可以表示为:第i行由(3-i)个空格和(2*i+1)个星号和1个回车换行符构成。因此,输出图2(b)三角形的主要程序段a:

4.实现循环结构程序的要点

设计循环结构程序要根据具体的问题,确定三方面的内容:循环前的准备。包括确定循环变量、循环初值、循环结束条件。选择合适的循环变量――使程序结构简洁;循环体语句――哪些操作需要重复执行;循环结束条件――重复操作何时结束。在实际应用时,可以根据具体问题的需要,选择相应的循环语句进行设计程序。

5.结束语

以上内容是本人在教学过程中的一些体会,希望可以对初学者学习循环结构及for循环语句有所帮助,为学好《C语言程序设计》课程打下基础。

参考文献

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

[2]苏传芳,C语言程序设计[M],北京:电子工业出版社,2011.