程序设计的基本结构十篇

发布时间:2024-04-29 12:37:24

程序设计的基本结构篇1

关键词:结构化程序设计;顺序结构;选择结构;循环结构;算法

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

结构化程序设计(structuredprograming,简称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语句。将程序设计针对的问题进行分解,直到分解到对应于一个个功能更简单,又独立的模块,每个模块再分解到上述3种基本程序结构。

程序设计的基本结构篇2

C语言结构化程序设计循环结构效率

一、引言

学习和应用计算机高级程序设计语言的人都知道,在这些语言中为实现结构化程序设计,一般都会采用三种最基本的结构,即顺序结构、选择结构和循环结构。因此,掌握这三种基本结构的使用方法,是学习和掌握高级程序设计语言课的基础。这三种基本结构中,顺序结构和选择结构和我们平常的思维习惯相似。因此,最容易理解和掌握;而循环结构是这三种基本结构中最复杂的一种结构,与我们日常的思维习惯不尽相同,因此理解起来相对来说比较困难。但是,几乎所有的程序都离不开循环结构,利用它可以简化程序、提高工作效率。因此,学习和应用高级程序设计语言的人又必须要掌握循环结构。但是,通过本人近几年的教学发现,大多数学生在学到循环结构一段时间后,干脆将这门课给放弃了,原因是他们觉得循环结构太难理解了。用顺序结构和选择结构做一个小程序还可以,用循环结构实在难理解。鉴于这个原因,本人将日常授课中总结出来的一点心得从初学者的角度写出来,希望能对即将和正在学习高级程序设计语言课的人有所帮助。当然,我们在这里是以C语言为例来说的,其实这方面的知识对其他语言比如VisualBasic语言等同样适用。

在C语言中,循环结构主要是由For语句、while语句、Do-while语句三种结构来实现的。而在这三种循环结构语句中又以for语句的应用更为广泛。因为for语句在其开头语句中就已经包含了循环变量的初始值、循环变量的终止值、循环的判断条件以及循环变量的变化趋势等这些内容,因此在编写其循环体时,只用考虑其循环体应该包含的主要功能就行了,而不用在For语句之前对循环变量的初始值进行过多地考虑,同样也不用在循环内部考虑其循环变量如何变化。对大多数有程序设计经验的人来说,使用for语句实现循环结构是一件轻而易举的事情。但是,对于没有经验的初学者来说,要想将for语句的作用及使用方法掌握住也不是一件容易的事情,更不用说while语句、Do-while语句的使用了。因此,本文从初学者的角度,阐述了C语言中循环结构的几种典型应用。

二、用循环结构输出几何图形

在教学过程中,不管开设哪一种高级程序设计语言课,只要一讲到循环结构,大多数老师几乎不约而同地选择输出简单的几何图形来作为讲解循环结构的最好实例。

对于这种类型的题目,初学者往往最容易想到的方法就是采用多条输出语句来完成程序的设计。虽然这种方法很快能够实现所要效果,但其缺陷也是很明显的:缺乏灵活性、程序修改起来不方便,也不符合程序设计的思想。比如,我想让大家输出8行,每行36个“*”。这个时候,我们就不得不在输入“*”的时候特别仔细,因为一不小心可能个数就不对了。

但是,这样的问题如果用循环语句来实现的话,程序不但可以简化多,并且可以很灵活地将其修改成我们想要的效果。

因此,在讲解这一类图形时,授课教师最好引导学生按照正常的程序设计思想,先分析图形的组成结构,找出其中变化的规律,然后按照所找到的规律用循环结构来编写出相对应的程序代码,这样一旦要求有一点点变化不用大篇幅地修改程序,而只用找到关键的几个地方修改一下就可以了。教师在讲解的过程中,可以举一反三,多次修改、让学生反复练习,直到他们理解为止。

现在,我们来具体分析一下该图形,看看它有什么样的特点,然后我们利用For循环将它的程序代码编写出来。

三、结束语

以上关于循环结构的使用基本上都是在程序设计教学过程中的一些体会与总结,可能比较肤浅,但是对于初学者来说,掌握这些知识还是有必要的。在进行课程教学的过程中,将自己在学习过程中得到的一些好的方法传授给学生,让他们从中去实践、体会,从而引起他们更大的学习兴趣是必要的。如何让一名初学者尽快摆脱日常的思维定式,更加透彻地理解和掌握程序设计中的基本思想,领会程序设计的精髓,是高级语言程序设计这门课程在讲授过程中,应该时刻注意的问题。更希望学生在学习的过程中不只是从老师这里拿一些现成的经验去使用,更重要的是让学生学会自己去发现问题、解决问题,总结出一些更好的程序设计方法,为以后进行软件开发与设计打下良好的基础。

参考文献:

[1]谭浩强.C程序设计(第三版)[m].清华大学出版社,2005.

[2]苏运霖.计算机程序设计艺术第1卷・基本算法[m].北京:国防工业出版社,2002.

[3]谭浩强.C语言程序设计(第二版)[m].北京:清华大学出版社,1999.

程序设计的基本结构篇3

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

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

(来源:文章屋网)

程序设计的基本结构篇4

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

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

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

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

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

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

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

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

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.

程序设计的基本结构篇5

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(强度、刚度、抗裂度等),即SR。在20世纪70年代中期前,我国和国外主要都采用这种方法。

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

面向对象编程

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

几个定义

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

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

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

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

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

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

5.设计主要内容

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

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

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

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

(2)修改程序,使之适合多工况内力计算;

(3)根据输入、输出数据的特点,设计适当的人机界面。输出应可选的显示各构件端力和内力图。

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

这篇土木工程毕业设计开题报告的关键词是土木工程,毕业设计,报告,设计程序

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

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

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

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

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

(4)从(3)生成的文件中选出最不利组合,同时给出截面配筋。梁、柱截面配筋的确定应考虑抗震设计的要求。

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

6.成果形式

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

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

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

2.软件使用手册

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

3.软件说明书

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

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

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

(3)带有较为详细的注释的源程序文本。其中应注明各标识符的含义(尽可能的采用通用公式中的符号)。各程序段的功能、相应的数学公式和特殊算法的说明;

(4)为使他人根据软件说明书读懂你的程序所必需的其他资料。

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

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

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

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

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

7.进度计划

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

第十五周软件测试

程序设计的基本结构篇6

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

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绘制梁、柱配筋图;

第十五周软件测试

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

程序设计的基本结构篇7

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

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

关键词:算法设计;能力培养;实践教学

中图分类号:G424文献标识码:a文章编号:1009-3044(2016)15-0170-01

1概述

作为信息类专业重要的专业基础课程,C语言程序设计课程为学生打下坚实的语言及算法设计基础具有非常重要的意义,各高校也非常重视本课程的建设。但是,在本门课程的教学中,也普遍存在着一些问题:

1)教学目标不明确;

2)算法分析与设计能力培养偏弱;

3)面向实际应用的综合性设计性实践动手能力培养偏弱。

针对上述问题,本人在本课程的长期教学实践过程中,在教学理念设计、教学内容设置、实践教学体系建设等方面做了大量的研究与实践,并取得了良好的教学效果。

2教学理念设计

在C语言课程的学习中,学生普遍存在“看得懂、不会写”的情况,主要是由于在课程的教学理念上定位不明确,存在“重语法结构,轻语言运用”的问题。

C语言程序设计课程,在本质上和中文、英文等语言类课程一样,也是一门语言类课程。语言类课程的教学,既要重视语法结构的讲授,但更为重要的如何培养学生运用语言的能力。

经过多年的探索与实践,本人在本课程教学上,形成了如下的教学理念:以“语言应用”目标,遵循“程序”(语法结构)和“设计”(算法思想)并重的原则,科学合理地设置课程教学内容,重点建设实践教学环节。

3教学内容设置

课程建设的重点是教学内容设置。基于上述教学理念,本人分别在“程序”层面与“设计”层面的教学内容设置上做了如下的探索。

在“程序”层面,注重“知识体系的整体性”。在本课程的教学中,教师一般都注重每个知识点的讲授,但较少涉及“知识点设置的原因”及“各知识点之间的内在联系”,因而造成学生“知识体系零散化”,从而进一步削弱了学生语言运用的能力。针对这一问题,本人从语言的角度,将各知识点划分为两个层次:程序结构及程序控制结构,不同层次突出不同的教学目标。

1)程序结构包括“数据类型、运算符和表达式、数组、函数、指针、结构体和共用体、文件”这些知识点,重点突出对语法及上述知识点相互之间层次递进的关系的掌握。具体方法是:针对一个问题,从知识发现者的角度,引导学生从“能否用已学的知识解决、解决过程有什么问题、应该怎么做”这一个循序渐进的过程,从一个已学的知识点过渡到另一个知识点,使学生理解并掌握相关知识点之间的内在联系,对分散的知识点形成一个整体性的认知,从而使学生碰到具体问题时,具备选择最合适的知识点或知识点的组合的能力,这对提高学生的实践动手能力至关重要。2)程序控制结构的知识点包括“顺序结构、选择结构、循环结构”,重点突出对语法和语义的掌握,尤其是分析不同语法结构的异同点。

在“设计”层面,注重对如下的算法设计能力的培养:1)在循环、数组及函数等知识点中,加强对常见的经典算法思想的训练,如枚举、递归、递归、迭代、排序等。2)针对学习或工作中的实际应用问题,注重包括建模在内的计算思维能力的训练。3)逐步培养学生求解最优解的算法设计能力。4)引入部分aCm或程序设计大赛题目作为案例,引导学生尽早接触学科竞赛,激发学习兴趣,促进教学和竞赛的良好融合。

4实践教学环节建设

C语言课程,是一门动手能力极强的课程,因此实践教学环节尤其重要。本课程的实践教学环节,一般分为实验和课程实习。由于难度及学时限制,实验环节基本以验证性实验为主,使学生欠缺综合性、设计性实践动手能力的训练;当进入课程实习环节,学生突然面临综合性、设计性的项目时很难适应,项目完成质量总体不高。

为了解决上述问题,本人采取了如下的措施:

1)实验环节分为基础层次和提高层次两个类别的实验项目。基础层次为验证性实验项目,在课内完成;提高层次为综合性实验项目,采取课内和课外相结合的方式。为了向第二个环节课程实习更好地过渡,对于每次实验课程中的综合性实验项目,采用“总分总”的方式:即首先设计与课程实习类似的综合性的案例,然后将它科学合理地划分为若干模块,并切分到每次实验中;学生在每次实验时,完成该项目的一个模块,循序渐进地完成所有实验后,学生就可以完成这个完整的综合性的实验项目。

如:设计一个经典的学生成绩管理系统,并科学合理地切分至每次的实验中。在顺序结构实验中,实现输入一个学生的各门课程的分数并求出该学生的平均分;在选择结构实验中,判断学生的登录信息是否正确;在循环结构实验中,对于输入的错误的登陆,限定重新登陆的次数;在数组实验中,实现全班每个学生的平均分、单科及平均分的排序;在函数实验中,将输入、登陆、求平均分、排序等功能用函数实现;在指针实验中,采用动态数组实现函数实验中的各项功能;在结构体实验中,用一个结构体数组改写前面的若干个数组,并重新实现前述的各项功能;在文件实验中,将第一次输入的数据写入文件中,并实现从文件中读取数据到结构体数组中。

通过上述训练,既夯实了学生的基础,同时,在有限的学时内,也极大地提高了学生综合性的实践动手能力,并为第二阶段的课程实习奠定了良好的基础。

2)在课程实习环节,设计一个与实验环节类似的面向实际应用的项目,从设计到实现,全部由学生自主完成。同时,为了更好地激发优秀学生的学习兴趣,适当增加项目的难度及复杂度。

通过上述的方法,极大地增强了学生的综合性、设计性的C语言程序的实践动手能力。

5总结

在C语言程序设计课程教学中,围绕“语言应用”这一目标,在教学内容设置上突出“知识整体性”以及“算法设计”,在实践教学环节建设上突出“面向应用的综合性、设计性能力培养”,经过多轮的教学研究与实践,取得了较好的教学效果。但是,目前面向应用的综合性、设计性实验项目案例资源库尚待进一步丰富与完善,在今后还需加强上述资源库的建设,以期更好地提升学生的实践动手能力,提高专业人才的培养质量。

参考文献:

[1]王颖,杨文莲,刘丽娟.C语言教学中不容小觑的思维能力培养[J].中国科技信息,2011(2):212-213.

[2]吴永芬,陈卫卫.面向创新实践能力培养的C语言程序设计实践教学改革[J].计算机教育,2014(3):88-91.

程序设计的基本结构篇9

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

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

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

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绘制梁、柱配筋图;

第十五周软件测试

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

程序设计的基本结构篇10

【关键词】C语言 教学目标 程序设计思想 软件工程

目前,有相当多的高等学校不但将C语言列为计算机专业学生的必修课,而且是理工科非计算机专业的必修课。对于计算机专业学生来说,C语言程序设计是一门专业基础课,对后续专业课程至关重要;对于非计算机专业的理工科学生来说,这是一门公共基础课,是各专业学生的计算工具。专业不同,教学目标就应该有所差别。但是,现在很多高校并没有一定的区分,而是统一的教学目标,统一的教学模式,过于注重语句、语法和一些细节,基本上是以高级语言自身的体系为脉络展开的。这样,就给计算机专业学生学习后续课程及研究生阶段的课题研究留下了隐患。在这里,笔者对计算机专业C语言的教学目标做一个简单的探讨。

一、程序设计思想的培养

对于计算机专业学生而言。程序设计以及后来的软件设计是整个计算机专业发展的一个重要方向,因此,程序设计思想的培养对于学生来说至关重要。思想的培养不能单单通过做大量的题目,而是要有一定的方法,循序渐进才能做到事半功倍的效果。

计算机编程思维的形成并不是一蹴而就的,对于从未受过算法设计训练的学生来说,刚开始编程时,可能会感到无从下手。对此,我们可以从整体到具体细节,一步步引领学生来进行编程。

1.把程序设计简单归纳为数据输入、加工处理与结果输出三个部分。学生遇到问题时,首先,分析已知的数据是什么,需要求解的数据是什么。然后,就是由已知求未知的过程,把这一过程用C语言描述出来就可以了。对于讲解的每一道题目,我们都让学生这样来分析,慢慢地,学生就会有一个整体的认识了。

2.针对“由已知求未知的过程”,就是我们所说的算法了,它是程序的灵魂。算法就是我们的思考过程。但要把思考过程一步步描述出来还是不简单的。首先,我们可以通过放慢我们的思考过程或加长我们的思考过程来实现。例如,5个整数求最大值。有的同学说,我一眼就看出来了,根本不需要思考。那我们如果来求50个数或者100个数的最大值,这次我们就不会一眼看出答案了,这时候,我们的思考过程就清晰了,先求出前两个数的最大值放到变量max中,在拿max和第三个数比较,最大值仍放到max中,max再和第四个数比较……以此类推,最后max里放的就是所有数据的最大值。这就是一种算法。把它用C语言描述出来就可以了。其次,我们需要通过做大量的题目或阅读大量好的程序,来积累一些好的算法。

3.把算法描述为C程序。这一步,需要学生们认真掌握C语言的语法规则。学生需要做大量的针对性的单项练习,一个一个规则来掌握。还要在具体的程序编写中进行综合练习。有具体的使用环境中,这些语法的掌握应该是不难的。

二、与后继课程密切联系

过去的C语言教学多注意基本概念的掌握,对于算法与程序设计的风格未能系统的训练,与后继课程《数据结构》的教学严重脱节。C语言的教学重点固然是C语言的各种数据类型及应用,但是《数据结构》中的许多基本概念与思想也应渗透到C语言的教学中去。

1.C语言的发明就是为了方便操作系统的开发,因此具有丰富的指针结构与位操作功能,这在unix操作系统中已经得到了很鲜明的体现。操作系统的设计涉及许多复杂的数据结构。为了实现这些结构,C语言构造了许多复杂的数据类型,如函数指针,结构指针函数,不一而足。这些模式很简洁地描述了数据的关联模式。显然。C语言许多数据类型本身就是复杂的数据结构的抽象,这一抽象过程就构成了这种结合的基础,这种交叉、渗透还是学生高涨学习情绪的最好切入点。

2.通过C语言中的数据排序,数据查找这些题目的实现,对于数据排序和查找算法的分析比较,我们就可以和数据结构课程中的查找、排序章节结合起来,对查找排序的各种方法作进一步的了解。

3.学习指针这一章时,通过链表的建立、插入、删除等的学习,可以和《数据结构》课程的线性表中的单链表建立联系,再通过与数组知识的结合,又可以和线性表的顺序存储结构,静态链表产生联系。这样不仅使学生们对后继课程有个较详细的了解,加强了课程之间的联系。还进一步提高了大家的学习热情。

三、把软件工程的思想融入教学

随着学生对程序设计语言的学习进步,自然地产生了软件设计的渴望,老师要适时引入一些软件的基本设计方法,对启迪学生悟性很有好处,也使学生找到学习的门路。主要可以从两个方面加以引入。

1.在教学中加入面向数据流的设计方法,这是一种传统的结构化软件设计方法(简称SD),对于初学者易于理解,尤其是在C语言程序设计的课程设计中有很好的效果。让学生了解软件设计的一般方法,程序的模块化结构和数据的输入/输出结构,明确模块间的控制关系,从总体上把握软件的结构,在课程后期的综合练习中有特别的意义。

2.在编程过程中加入程序健壮性、安全性的问题

在程序设计中,适时提醒点拨学生注意编程安全很有必要。例如,在设计“学生成绩管理系统”时,键盘录入的某课程成绩或者在数据文件中提供的成绩数据的范围、属性是否正确的检查,就是编程的安全问题中的被动式保护性编程。在整个程序设计课程中,到处都是编程安全例子。例如・数组界限是否正确?表达式中是否有0分母情况?使用链表结构时,须要检查其连接情况,等等。

再者,对于程序的健壮性,使学生们认识到,一个程序。不仅仅输入一个合法数据能得到一个正确的输出。这个程序就是正确的。而输入一个非法的数据,他也能给出一个合理的输出,这才是一个正确的、健壮的程序。例如,输入三角形的三边,求面积。如果我们输入三个数据。就出一个面积数据,那这就不是一个健壮的程序,必须是输入的三个数据能构成三角形,才输出面积;如果构不成三角形,就应该输出一行提示:输入非法。这样的程序才是个正确的程序。