首页范文程序设计的结构十篇程序设计的结构十篇

程序设计的结构十篇

发布时间:2024-04-29 11:57:59

程序设计的结构篇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

【关键词】优化设计;框架结构;结构布置;组合结构

近年来我国钢材产量连年位居世界第一,导致钢结构发展十分迅猛,但是我国钢结构的应用范围和国际还有很大差距;目前我国钢结构的应用范围还局限在航站楼、会展中心、体育场馆和工业厂房,而民用建筑主要还是采用钢筋混凝土结构,目前我国政府从政策上大力倡导民用建筑钢结构化,但是很多设计人员对钢结构的设计理念不是很了解,部分结构工程师对钢结构体系概念不清楚,对节点构造和楼板铺设方向对结构的影响和楼板平面刚度不够重视。

钢结构设计首先应该进行结构布置,布置原则符合以下要求。建筑平面宜简单,规则、对称和开展;尽量让水平荷载合力作用线与结构刚心重合;支撑在结构平面两个方向布置要对称,框筒结构柱距在1.5米和3米之间,在结构平面拐角处不布置楼梯间和电梯间;尽量不设置变形缝。尽量让结构平面规整,由于建筑设计的需要必须设缝时,要少设缝;结构立面尽量沿高度方向均匀变化;结构刚度在竖直方向要均匀连续避免突变;超过十二层的钢结构要设置地下室;结构的最大高度不得超过结构的最大高度限制值。

结构布置以后进行结构受力分析,要按照以下原则进行结构受力模型的建立。结构的作用效应按照弹性理论计算,截面设计时候考虑塑性影响;假定楼面刚度在自身平面内卫无穷大;结构计算模型一般采用平面模型,结构复杂无法按照平面模型计算时候,应用空间结构计算模型;柱间支撑两端为刚性连接;应该考虑重量荷载引起的竖向构件差异缩短所产生的影响;内力分析时候应考虑温度变化引起竖向构件差异缩短所产生的影响。

结构内力计算借助计算机来完成。结构在风载和地震作用下产生水平位移时候,竖向荷载将会加大结构的水平位移导致建筑整体失稳,因此高层钢结构内力计算必须考虑这种影响。

钢结构应该进行抗震设计,钢结构应该满足小震不坏,中震可修,大震不倒。为此钢结构应该进行多遇地震作用下的弹性分析,验算构件承载力和结构层间侧移,其次进行钢结构在罕遇地震作用下的弹塑性分析,验算结构层间侧移。钢结构的地震作用的计算方法是底部剪力法,振型分解反应谱法和时程分析法。钢结构的承载力应该放大,因为地震是一种偶然作用并不是时时发生。

钢结构还要抗风设计,因为长时间的震动会导致结构疲劳而破坏,结构在风载作用下发生的变形较大会导致填充墙开裂,建筑玻璃幕墙会因较大风压而破坏,风振加速度过大会让使用者不安。《高层民用建筑钢结构技术规程》要求钢结构顶层质心位置侧移不超过建筑高度的1/500,还可以通过限制顶点最大加速度来满足人的舒适度。

钢结构构件一般采用工字型截面,考虑混凝土与钢材的组合作用将大大改善钢结构的工作性能,通过在钢梁上面焊接栓钉使混凝土楼板和钢梁共同工作形成钢-混凝土组合梁,所用的材料没有增加多少,但是构件的承载力和刚度会增加一倍以上,由于混凝土楼板与钢梁可靠连接,从而钢梁不会发生整体稳定破坏,而是发生强度破坏,可以充分利用钢材强度高的优势,使材料的性能达到最大限度的利用,这样结构的自重也会大大降低,从而结构受到的地震作用大大降低,钢柱可以采用钢管混凝土柱,钢管由于混凝土的阻碍大大提高了稳定性,混凝土由于钢管的握裹,强度提高较多,塑性提高更多,从而吸收较大的地震能量,是一种极好的抗震构件截面形式。

钢材比混凝土贵得多,对钢结构进行优化设计很有必要,即设计的钢结构不但安全,而且钢材的用量还要尽可能的少,优化设计的种类大致有以下几种:

1)基础优化:同一个建筑可用的基础形式有多种,比方独立基础,条形基础,筏板基础,桩基础,应该进行基础方案的比较,选择一种既安全又经济的基础形式。

2)高层建筑抗风力体型的的优化:风载和建筑立面体型密切相关,美国西尔斯大厦是全钢结构,高443米,对大厦立面进行优化设计以使得建筑承受的风载尽可能小,钢材采用Q345钢,钢材用量159kg/m.m2,舒适度的限值远远高于我国钢结构规范的规定值。

3)楼层刚度优化:采用钢-混凝土组合楼盖,大大提高楼层刚度,起到减少层间位移的目的。

4)节点优化:节点设计不合理会直接导致钢结构在地震中倒塌,为了抗震,现在尽量减小节点的刚度,让节点的变形在地震中较大的发展,保证建筑歪而不倒。

5)应力优化:使得应力接近强度设计值避免浪费。

现在人们主要应用的是通过软件减小构架截面,即是应力优化,目前最常用的是ansys程序,大致分为以下几个步骤:

1基于apDaL优化设计原理

将有限单元法与优化方法结合,形成ansys优化模块,通过三大变量来实现优化过程。

1)设计变量:设计中需要不断调整数值的设计变量,比方构件的截面尺寸;

2)状态变量:是设计变量的函数,比方构件的应力小于应力允许值,结构的位移不超过规范的规定;

3)目标函数:设计变量的函数,比方结构的总重量最小。

2优化过程

2.1构建优化分析文件

1)参数化建模。将要参与优化设计的设计变量初始化,建立参数化分析模型;

2)加载和求解。在求解器中对分析模型进行加载和求解;

3)参数化提取结果。提取结构分析模型的计算结果并赋值给状态变量和目标函数;

4)建立分析文件。通过LGwRite命令生成分析文件。

2.2建立优化控制文件

1)进入优化设计模块,指定优化分析文件;

2)声明优化变量;

3)选择优化方法并进行优化分析;

4)进行优化参数评价。

2.3根据已完成的优化循环修改优化变量重新优化设计

2.4查看设计结果

3建立钢框架结构参数化有限元模型

钢梁和钢柱采用Beam188单元,Beam188单元是空间的3-D梁单元,在单元输出时能获得框架梁、柱内力分析数据。Beam188是线性单元,该单元仅有一个沿轴线方向并且位于梁的中点的积分点。选取Beam188单元来模拟框架中的梁、柱。

梁单元Beam188要定义截面库中的单元截面,允许用户自定义横截面。Beam188单元增加了单元方向关键点的定义,用来进行梁单元横截面主轴的定位。

4建立钢框架结构优化模型

4.1设计变量:钢梁的翼缘的宽度和厚度,腹板的宽度和厚度;钢柱的翼缘的宽度和厚度,腹板的宽度和厚度

4.2目标函数:一榀钢框架结构的总重量

4.3状态变量:强度和稳定约束条件,刚度约束条件

程序设计的结构篇3

关键词:VB选择结构;iF语句;评价

VisualBasic(简称VB)是面向对象的可视化编程语言,它简单易学的语法深受广大编程爱好者的青睐,同时也是中职学校计算机专业学生的一门必修课程。通过学习VB程序设计,培养学生的程序设计能力和开发软件的兴趣。VB有三种基本的程序控制结构:顺序结构、选择结构和循环结构。当一个问题涉及到对条件进行分析、比较、判断,并根据判断所得的结果采取相应的处理方式,这时就要用选择结构来解决问题。在教学过程中如何突破VB选择结构教学的重点、难点,如何让初学者理解选择结构的执行过程,掌握选择结构的应用,培养他们的逻辑思维能力、实践操作能力和解决实际问题的能力,这是笔者在教学中一直思考的问题。现就结合VB选择结构中iF语句教学的主要环节进行探讨。

一、实例导入,焕发热情

中职学生的知识基础较差,普遍学习兴趣不高。如果在选择结构教学中按照传统的先讲解iF语句的格式和功能,再进行实践操作,则未必能取得较好的教学效果。兴趣是学习的原动力,这就需要计算机教师暂时抛开晦涩难懂的概念和语法,采用生活化的实例来焕发学生的学习热情。

新课之前,首先通过局域网分发几个用iF语句编写的VB可执行程序到学生电脑上,如:手机价格竞猜游戏,让学生一开始就动手体验选择结构的魅力。学生运行程序的过程仿佛置身于游戏中,他们结合实际生活经验很轻松便推断出:如果输入的价格大于1999,则提示“猜高了”;如果输入的价格小于1999,则提示“猜低了”;如果输入的价格等于1999,则提示“恭喜您,猜对了”。学生用自己的语言思路清晰地总结出竞猜过程中的三种情况,教师顺势引出条件判断这个概念。通过讲解这个例子让学生对价格判断和提示信息对应起来,理解根据不同的判断结果执行不同的语句。通过实例导入,学生对VB编程产生了好奇心,教师结合实例让学生理解VB选择结构的执行过程,从而将将学生的被动学习转化为主动学习。

二、加工半成品,突出重点

VB选择结构教学中,如果给学生一个完整的任务书,那么按照实际的流程,学生在任务前期首先要进行界面设计、属性设置以及一些顺序结构语句的编写等。由于学生的理解程度不一样,完成进度也不一样,有些学生花长时间停留在前期工作中,一节课下来都没有进入到选择结构代码的编写,这就影响到了选择结构学习目标的落实,评价也变的非常困难。针对这一情况,VB选择结构iF语句教学中采用“半成品”加工策略,给学生一个不完整的任务,仅对iF分支语句环节进行“留白”,“留白”部分即教学的重点。学生在“半成品”到“成品”的加工过程中既学到了知识、掌握了重点,又提高了实践效率、获得了成功的体验。

如在iF双分支语句教学中,采用实例:商城迎新年促销活动,单价满200元减40,不满200元则按原价出售,根据商品原价求实付金额。教师给出界面和部分代码,对代码中iF双分支语句部分进行“留白”。教师引导学生自主探究,分析问题,学生由活动规则总结出两种判断情况(a>=200和a

三、条件迁移,化解难点

多分支iF语句的应用是VB选择结构iF语句的难点。教学中若采用条件迁移法,即通过在已掌握的双分支iF语句实例的基础上对判断条件进行增加或改变来过渡到新的例题,从而降低多分支语句应用的难度。这样的方法符合学生的认知规律和发展规律,让学生对多分支iF语句的认识、理解、运用有一个逐步深入的“螺旋式”上升的过程。

如商城迎新年促销活动,在原有基础上增加条件:单价满1000元的商品在享受满200减40后再享受9折优惠。基于学生之前已掌握了双分支iF语句应用,结合已有的数学知识,解决问题的方法和步骤便得到了简化,并能根据实际情况写出逻辑表达式和相应的执行语句。如对百分制成绩进行等级评定,在一开始的双分支iF语句(及格和不及格)的基础上通过对百分制成绩的分数段范围进行逐步细化,对应的评定等级则也有所变化(及格、良好、优秀),从而过渡到多分支iF语句。通过简单的改进实现小小的目标,通过条件迁移法化解多分支iF语句这个教学难点。条件的迁移,就是用一个接一个的问题,牵着学生的思维,让他们不停的跟着教学内容思考并实践,而不是一味的坐着被“灌”。

四、课堂教学评价

课堂教学评价是促进学生成长、教师专业发展和提高课堂教学质量的重要手段。在VB选择结构程序设计的实际教学中采取多向立体式评价方式:教师对学生的学习效果评价、学生对教师的教学满意度评价、学生的自我评价,这些评价贯穿于整个教学活动中。通过教师对学生的学习效果评价,及时反馈学生对重、难点的掌握情况,帮助学生正确认识自我,树立不断进取的信心。通过学生对教师教学满意度的评价,帮助教师了解自己的课堂教学水平以及不足之处,为优化教学过程提供科学依据,有利于教师提高课堂教学质量。通过学生自我评价对VB选择结构iF语句的知识点进行回顾与梳理,将感性知识理性化,并进行学习方法的总结与交流等。

五、结束语

基于中职学生的学习特点,我们计算机教师需要用心设计课堂,在教学中努力给学生提供生活化的问题解决环境,让学生带着疑问主动学习。采用适合学生认知规律和发展规律的教学方法突破重点、化解难点。教学中进行有效的课堂教学评价,从而切实有效地提高VB选择结构程序设计的课堂教学质量。

参考文献:

程序设计的结构篇4

关键词:实例拓展;结构化;程序设计教学;教学应用

中图分类号:tp311.1

在计算机专业的教学中,程序设计是一门最基础,也是最重要的课程之一,是培养学生计算编程能力的主要课程[1]。但是又因为这门课程涉及到很多理论性极强的内容和大量的编码知识,不容易被学生理解,所以是计算机专业教学的重点和难点。在过去传统的教学方式之下,老师只是按照大纲的顺序来讲解相关的知识点,即使举例也只是引用一些比较典型的例题,例题和例题之间缺乏联系,使得学生只能进行生硬的记忆法来掌握程序设计各种语句,不能真正理解这些编程方法,达不到自主编程的教学目的,收效甚微。为了改变这一现状,让学生能够真正理解程序结构之间的关系,能够灵活运用各种编程方法进行自主编程,在教学的过程中怎样选择具合适的实例已经成为提高教学效果的关键。我校推行的实例拓展教学法很好地解决了这一难题,在我校大力推行之后,受到广大师生的好评,结构化程序设计的教学效果明显。

1实例拓展法概述

实例拓展教学法属于教学方式创新的表现形式之一。在这种教学方法中,实例就是整个教学的中心,所有的教学活动都可以通过实例来完成,这也是这种教学方法最典型的特征[2]。运用实例拓展法进行教学,学王可以充分利用各种学习资源,通过自主探索或者相互合作的方式来完成实例任务,同时又会催生出一种新的实例。这种重在学生实践活动的教学方式就被称之为拓展实例法。这种教学方法有助于培养学生的自主学习能力,提高他们独立分析问题和解决问题的能力。在计算机结构化程序设计这种实践性较强的课程教学中,尤其适合使用这种方法。

2实例拓展法在结构化程序设计教学中的实际应用

在计算机程序设计中,VB语言是一门重要的课程,所以我们就以这门课程为例,对实例拓展教学方法在课堂上的具体应用进行具体。为了便于学生理解和练习,我们将实例分成了两种,一种在老师进行课堂理论教学时应用,另一种则在上机实践活动中应用,下面我们对实例的应用进行出详细介绍。

老师在进行教学设计时,如何安排实例是教学活动的核心所在。在对教学实例进行安排时,老师一定要结合中专学生的年龄特点、心理发展水平和实际生活的需要等因素。同时,实例的拓展应该遵循教育学的客观规律,从易到难,由浅入深,便于学生进行理解[3]。另外,实例的难度应该适中,既不能让他们一看就明白,也不能让他们冥思苦想而不得,要让大部分学生通过自己的思考能够完成,而且要将相关的知识点囊括其中,这样才能充分实例拓展的作用。

在VB结构化程序设计的教学中,课堂内容可以被大致分成顺序结构、选择结构、循环结构、数组应用和过程设计等五个部分[4]。老师在进行教学的过程中一定要全面掌握这些内容之间的内在关系。在本文中,我们将省略比较复杂的程序代码,对这5部分内容运用到的实例进行简单分析。

在进行顺序结构这一内容的教学时,我们可以以计算圆的面积为例,在输入圆的半径之后就可以计算出来。这一实例可以作为入门介绍,理解起来并不困难。在这个实例中,融入了程序的三大基本组成部分,即数据输入、处理和输出,在讲解实例的过程中,就能让学生掌握这一知识点。

在结构程序的教学中,可以在对上述实例进行拓展,提出问题:“假设圆的半径的小于0时该怎们办?”让学生进行思考,然后提出程序设计中的基本语句――选择结构的if语句。为了让学生理解if语句的语法,老师可以让学生在键盘上随意输入三个数字,求解最大值和最小值,在这个过程中介绍if语句的两种格式,即单行格式和多行格式。到这里,我们就在前两个实例的基础上衍生出了新的实例。在了解if语句的格式之后,老师还可以对实例进行进一步拓展,让学生求解分段函数,明确if语句和SelectCase这两种多支结构的语句格式。

在循环结构的教学中,我们可以引入一个新的实例来介绍循环结构Fornext语句,例如在窗体上显示出1、3、5、7、9这五个奇数。然后让学生对求解上述数字之和,对上述实例进行拓展。进一步掌握Fornext语句。在求和的基础上,再一次对实例进行拓展,让学生在100以内,求出1+3+5+7+……的最大奇数值,在讲解实例的过程中引入循环结构中一种重要的语句形式――DoLoop语句。

在讲解数组应用这一内容时,可以在任意输入3个数字求解最大值和最小值这一实例的基础上加以拓展,让学生思考怎样求出任意10个数字的最大值和最小值,通过这个实例引入数组概念和静态数组的使用方法。在这一实例的基础上还能进一步拓展,求出任意数字的最大值和最小,引入动态数组的概念的和具体的使用方法。

在进行过程设计这一内容的教学时,依然在任意求解3个数字的最大值和最小值这一实例的基础上加以拓展,将它们分成两个函数,在讲解的过程中让学生掌握过程的概念以及Function过程的建立和使用方法。在此基础上,对实例进一步拓展,将3个数字的最大值和最小值看成两个Sub过程,让学生通过老师对实例的讲解掌握Sub过程的建立和使用方法[5],并与Function过程进行对比。

以上的实例主要是在引入相关概念和讲解程序基本原理时使用的,需要在多个课时中讲解。根据所讲内容的课时安排,可适当补充其他实例,更加详细地讲解相关知识,也可以补充一些比较有趣实用的综合例子,如制作计算器、打印九九乘法表等,进一步开阔学生的眼界。

经过多年的教学实践,笔者发现在运用实力拓展法之后,学生对程序设计的学习兴趣大增,不管是课堂表现还是作业完成情况都有了明显改善,考试成绩也得到了大幅度提升。通过这种教学方法,学生能够从中学到自己需要的知识,并真正将其转化为实际应用,设计出实用的小软件来,对于他们将来学习其他知识和提高计算机操作水平都有很大的促进作用。

3结束语

综上所述,在结构化程序设计的教学中,实力拓展法对于提高教学效果,培养学生的计算机运用能力具有非常重要的作用。但是在具体的教学过程中还要从学生的实际情况出发,进行灵活地调整,才能真正激发出学生的兴趣,充分发挥实例拓展法的作用。

参考文献:

[1]武相军,白晨希.实例拓展法在结构化程序设计教学中的应用[J].计算机教育,2013(17):47-49.

[2]傅篱.计算机结构化程序设计教学探索与实践[J].计算机教育,2009(12):78-80.

[3]孙英,徐顺琼,李兴美.C语言中循环结构程序课的教学设计与探讨[J].计算机教育,2009(07):186-187.

[4]周显春.合作探究式教学法在结构化程序设计教学中的运用[J].学习月刊,2010(30):91-92.

程序设计的结构篇5

【关键词】教学改革;数据结构;程序设计竞赛

1.引言

数据结构是计算机学科的核心课程,也是实践性很强的专业基础课。数据结构课程主要讲述数据的描述与组织、数据处理的算法设计,数据结构对于提高学生的算法设计能力有着极为重要的作用。目前在数据结构课程的教学中,大多采用C语言作为描述语言,在实验时要求学生使用C语言编写程序来实现数据结构中的算法。在传统的教学中,数据结构课程的理论教学与实践教学结合不够紧密,实验教学效果不尽人意。

大学生程序设计竞赛是近年来国内各大学越来越重视的学科竞赛,也是大学生能力竞赛活动中最有影响力的一项赛事,竞赛涉及学科知识面广,有助于培养学生自主学习能力、创新能力,也有利于团队精神的培养。数据结构课程与程序设计竞赛所涉及的知识密切相关,参加程序设计竞赛能使学生将数据结构课程所学知识充分应用于竞赛中,将理论转化为实践,用实践验证及加强理论知识。

2.改革措施

根据我校制订的应用型人才培养目标,通过对计算机专业的课程体系、教学目标、计算机专业能力培养进行深入研究我校从2010年开始对数据结构、C语言程序设计、算法分析与设计这三门课程进行教学改革,理论教学改变了以往三门课程分开授课的模式,而是将它们的知识进行整合,做到了前导课、后续课的有机衔接。考虑到大学生程序设计竞赛所涉及的很多知识与数据结构课程紧密相关,我们依托程序设计竞赛,将这数据结构课程的教学改革与程序设计竞赛紧密结合。具体措施主要有以下几个方面。

2.1合理组织教学内容

教学内容的设计是教学改革的核心。我们以知识点为单元,并结合C程序设计、算法分析与设计课程来设计教学内容。在C语言程序设计中,我们适当穿插讲述了数据结构中的部分内容,如数据结构中的直接插入排序、冒泡排序、简单选择排序、顺序查找、折半查找放在将C语言程序设计中一个知识单元中。在数据结构课程教学中,穿插了算法分析与设计的有关知识,如在讲述哈夫曼树和图的最小生成树时,穿插讲述了贪心算法,在讲述图的最短路径时介绍了动态规划算法,在讲述搜索时介绍了回溯算法。

2.2精心设计训练题目

程序设计竞赛题目有命题规范、背景描述有趣和输入输出明确等特点,我们将数据结构训练题目描述成程序设计竞赛题的形式。我们根据理论教学知识点,以应用为主线、以方法与能力培养为出发点,精心设计了近100道数据结构课程训练题目,每道题目均提供一定规模的测试数据,以测试程序的正确性与效率,并上传到在线评测系统中。这些训练题目可以分为基本型、设计型和创新型三类,基本型题目侧重于提高动手能力、训练编程感觉,设计型题目侧重算法设计、训练思维能力,创新型题目大多是从以往的各种程序设计竞赛题目中精心挑选出来的,着重培养学生的创新能力。将原有实验教学中以算法为主线的训练模式改为以问题为主线的训练模式,通过具体问题描述给出实验题目,创造了一种与现实应用紧密结合的环境,较好地训练了学生选择数据结构和设计算法的能力。

2.3重新编写实验指导书

根据理论教学和实验教学要求,结合实验程序设计竞赛的知识点,我们重新编写了数据结构的实验指导书,实验指导书对教学内容中的重点和难点部分作了进一步解析和拓展。在评测系统中,针对每个实验的安排了难度不等的训练题目。通过这些训练题目,可使学生深刻理解数据结构在程序设计中的实际作用,也使学生体会到了算法设计思想的重要性。

2.4采用在线评测系统提交作业

程序设计在线评测系统是一个程序设计练习和竞赛平台,可以提供大量的程序和算法设计题目。在线评测系统除了能用于程序设计竞赛外,还可以广泛用于辅助程序设计类课程的教学,为学生提供一个开放的、自主学习的实验环境。学生通过网络可以随时提交程序代码,并可在丰富的程序与算法设计题库中寻找适当的题目来训练选择适当的数据结构和设计算法的能力。学生通过我们开发的在线评测系统提交作业。评测系统可以实时评测学生提交的作业是否正确,对错误提交还提供相应的提示信息。教师通过分析学生提交的程序代码,可以及时掌握学生做题的数量、类型和教学中存在的问题。

2.5组织数据结构课程竞赛

程序设计竞赛可以有效检验学生综合应用所学知识来分析和解决问题的能力。组织针对数据结构课程的程序设计竞赛,可以检验学生对课程的掌握情况,可以培养学生的创造力和团队合作精神,让学生亲身感受到了竞赛的氛围,激发他们的学习兴趣,也为我校集训队员的选拔奠定坚实的基础。

2.6改革课程考核方式

课程考试对学生的学习具有明显的导向作用。以往平时成绩主要来源于课后作业与出勤,这样的考核方式很难考察学生的实践动手能力,导致大部分学生只注重理论知识,难以提高学生的创新能力和实践能力。我们认为数据课程的考核应着重考核学生选择适当的数据结构和设计算法的能力,而不是死记硬背一些基础知识。为此,我们对课程的考核进行了大胆改革,将在线评测系统中的评测结果作为学生平时成绩的主要依据,并提高了平时成绩在总评成绩中的比例。

3.结语

数据结构是计算机专业的核心课程。以竞赛模式推动的数据结构课程教学改革,将理论知识学习和实际应用有机结合起来,激发了学生自主研究性学习的兴趣,提高了学生的编程能力和思维能力,取得了很好的效果。

参考文献

[1]严蔚敏,吴伟民.数据结构(C语言版)[m].北京:清华大学出版社,1997.

[2]吴永辉,王建德.数据结构编程练习[m].北京:机械工业学出版社,2012.

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

[4]王晓东.计算机算法设计与分析(第2版)[m].北京:电子工业出版社,2004.

基金项目:湖南省教学改革项目资助(湘教通[2011]315号no:408,湘教通[2008]263号no:218,湘教通[2012]401号no:459),湖南人文科技学院教学改革研究项目(RKJGZ1018)资助。

作者简介:

袁辉勇(1967—),男,湖南人文科技学院计算机科学技术系副教授,研究方向:算法分析与设计,传感器网络。

程序设计的结构篇6

1.思维导图

思维导图(mindmaps)是英国人东尼?博赞(tonyBuzan)在20世纪70年代提出的一种先进的记笔记方法,一般通过带顺序标号的树状结构来实现思维过程,它是以图和直观形象的线条进行思考和表达的,并将放射性思考实现具体化。国外的一些世界500强企业,如微软、iBm、惠普等,都是思维导图的第一受益者和倡导者。思维导图主要由图像、颜色、曲线和关键词等元素构成,其主要特点有:主题主干作为分支呈放射状、注意力主要集中在中央图形上、分支构成一个连接的节点结构体系、由关键词或关键图形构成分支。

2.“C语言程序设计”课堂教学的现状

《C语言程序设计》是一门理论与实践并重的程序设计课程,教学难度较大,对于很多知识,学生总是似是而非,概念模糊,不能完全理解和掌握。

目前,《C语言程序设计》课程教学情况主要表现在以下几个方面:

(1)在教学模式上,教师多采用多媒体教学,课堂理论加上机实验的教学模式,课堂理论为主;

(2)在教学手段上,教师按照Cai教学课件进行讲解,学生所接受的都是零散的知识,这一节课学完,下一节课可能就忘记了最基本的知识点;

(3)在教学方法上,以教师讲授为主,缺乏师生互动和驱动式任务教学,对于课程和章节,学生也不能从整体进行认识和掌握;

(4)在实验环节中,由于学生对基础理论知识掌握的不够扎实,在上机课时,只是机械的照搬教材代码,以验证课堂内容为主,不能很好地理解程序的编程思路和方法,以致于课程结束时,学生不能很好地开发一个小的C语言程序。

为了加强学生的逻辑思维能力,提高学生学习效果,我们将思维导图这一教学方法应用在《C语言程序设计》课堂教学中。

3.思维导图在C语言程序设计课堂教学中的探索

在《C语言程序设计》这门课程中,教学内容非常多,包括程序设计基础知识、常量变量、数据类型和表达式、顺序结构程序设计、选择结构程序设计、循环结构程序设计、数组、函数、指针、用户自己建立用户类型、文件的输入输出等。

(1)课程的综合性设计。由于C语言内容较多,学生对知识只是进行线性的接受,不能对课程形成整体的认识,因此,首先对课程进行整体设计。

采用Xmind思维导图设计软件,对C语言课程整体结构图进行设计,如图1所示。

在第一节课授课过程中,教师采用思维导图呈现给学生这门课程的整体结构,学生头脑中能够对课程有整体的认识和了解,有助于提高学生的学习兴趣和求知欲望,便于学生进一步学习。

(2)章节的连续性设计。C语言中的三种程序设计结构在知识讲授结束时,要进行章节的总结,将三种程序结构的相关知识以思维导图的形式展现出来,一方面不仅可以加深了学生对知识的理解和掌握,另一方面也潜移默化地引导学生主动学习和对知识连续记忆的能力。

(3)知识点的扩展性设计。在引入新章节时,教师首先向学生展示章节完整的思维导图,将其作为目标教学的工具。思维导图的运用能使学生明确学习目标、学习内容与范围,以及各知识点之间的先后顺序,能够更形象、更直观、更全面的表述学习进度目标。以循环结构一章为例,教师首先给出整体的章节结构,同时每个知识点都可以进行扩展,辅助学生记忆。

(4)学生的自主性设计。在进行章节复习时,教师展示章节完整思维导图的同时,引导学生自行绘制出思维导图,教师也可以只给出提示或关键词,引导学生建立内容全面、详实的思维导图,从而建立自己的知识结构,更好地掌握知识。

教师通过学生设计的思维导图能够发现学生的知识结构和对知识的理解和认知程度,从而更好的优化教学。学生在自我设计过程中,能够及时发现知识的盲点区,不断学习并进行弥补,提高自己对知识的掌握。

程序设计的结构篇7

关键词:高职高专程序设计教学改革

程序设计是计算机专业领域中最为核心的工作。在程序设计工作中,既要对问题进行分析,又要考虑各种设计的可能性,更高层次地,还要考虑运行程序的代价问题。作为计算机各专业的三大基础课之一,学生对其掌握的熟练程度将直接影响后续课程的学习。

一、程序设计基础课程教学的现状及面临的问题

1、教学的现状

各院校开设的程序设计基础课程,多为教授学生某一种程序设计语言,其中pascal、VB、C、C++、Java语言较为多见。C语言作为当今最为流行的程序设计语言之一,不但成为计算机专业的必修课,而且也越来越多地成为非计算机专业的学习课程。但在实际的课程教学中,许多教师和学生都认为C语言涉及的概念比较复杂,规则繁多,使用灵活,容易出错,教师教学和学生学习都感到困难,并不同程度产生畏难心理。特别地,多数院校将C语言作为计算机专业学生进校后首先接触的第一门专业基础课,这种现象尤为明显。

2、面临的问题

一直以来,关于如何讲授面向大学生的程序设计基础课程,许多人争论的焦点放在了语言选择上,把讲授的重点放在了语言的语法规则介绍上。从短期看,这样做便于学生学,也便于教师教。但从长期看,越是注重以语法来衡量学生对语言的“掌握”程度,就越是忽略了程序设计真正使用的基本思维方式和方法,最后导致学生可能在学习完一学期的课程之后,满脑子除了一些语法知识,几乎没有任何分析解决实际问题的技能。

二、教学内容的改革

纵观教学的现状和所面临的问题,笔者认为程序设计基础课程应围绕程序开发周期,即分析问题、设计程序、编写程序代码、测试程序以及其他额外步骤等展开教学。但这并不容易实现。首先,若要从程序开发周期的各个方面教授学生,需要花费较多的课时。目前各院校开设的程序设计基础课总课时不尽相同,但大多在50到60课时之间,其中有三分之一是学生实验实训环节。换句话说,教师用于讲授的时间一般只有30课时左右。其次,以C语言为例,涉及基本数据类型、运算符和表达式、控制结构、数组、函数、指针、结构体和共同体、位运算和文件等诸多内容,显然,要在30课时内讲授完是很困难的。第三,即便是用填鸭式的方式将上述知识全部灌输给学生,学生也是不可能学会的。反而会造成学生的抵抗情绪。第四,本科计算机专业的程序设计教学一般是在一年级上学期先开设程序设计导论课,然后再开设具体的语言程序设计课,这是个循序渐进的过程。然而高职高专计算机专业的培养目标和教学进度与本科的是有区别的,因此,本科计算机专业的教学模式不能全部采纳。笔者以总学时50课时,其中讲课30课时,教授C程序设计语言为例,认为课堂教学可以进行以下改革。

1、以结构化程序设计为核心,重点讲授程序设计的控制结构

人类的自然语言有千百种,归根结底都是人类思想交流、记录的工具。计算机语言同样也是对解决具体问题的算法思想的表达工具。表达的形式――程序设计语言千差万别,但表达的内容――算法则是殊途同归。这里所说的算法不单是算法的概念和具体的某种算法,还包括算法的表示方法如流程图、结构图和伪代码等。程序设计语言本身只是在最后用来描述算法的一种工具,而任何程序不外乎由顺序结构、选择结构和循环结构组成。不论用哪种语言编写程序代码,都无法脱离这三种控制结构。可以说,是否掌握它们的用法决定了学生设计程序的优劣。因此,笔者认为,在高职高专的程序设计基础课中,让学生学习、掌握如何分析实际问题和设计解决它们的算法及算法描述的同时,应重点传授三种控制结构。

以往除了三种控制结构外,指针也是C语言的教学重点,或者说是重中之重。不可否认,指针是C语言的精髓,对程序设计有锦上添花的作用。能够驾驭C这门程序设计语言,势必熟练掌握指针的运用。而且,在目前的各类计算机等级考试中,C语言的指针也是必考而且重点考查的内容。那么,仅把教学重点放在控制结构上是否合适呢?笔者是这样考虑的:

第一,学习指针需要研究指针四方面的内容:指针的类型、指针所指向的类型、指针的值或者叫指针所指向的内存区、以及指针本身所占据的内存区。这个学习的过程是相当费时的。较短的课时教授较多的内容之间存在矛盾。

第二,学习指针还要有一定数据结构的知识,对于初学程序设计的学生而言,过快地接触指针会使他们措手不及。有限的认识能力和知识水平与较复杂的应用之间存在矛盾。

第三,作为高职高专的程序设计基础课,浅显易懂实际上是非常重要的。高职高专学生的学习基础相对本科以上层次的还是较弱的,更应当使课程真正发挥“基础”的作用,成为为学生打下的坚实基础的奠基石。

那么,在高职高专的程序设计基础课中,是否就不必教学生指针的知识呢?当然不是。在学生掌握了程序设计的控制结构以后,选择性地将指针的概念及其一般的规则进行讲授,其他复杂及带有技巧性的内容,可以放在后续课程,或者在应考培训班里再作深刻的研究。

2、始终贯穿程序开发周期的教学,培养学生建立良好的程序设计风格

如1中所述,不能从语法规则角度来衡量学生对语言的“掌握”程度,不能忽略程序设计真正使用的基本思维方式和方法的教学。人类学语言很多时候不是先学语法语义规则的,而是先能听懂,然后会跟着说,然后才是学习书写以及其它更高形式。学习计算机语言也是一样的。让学生从感性再到理性去认识和理解程序设计,学生才有可能在学完课程之后大有收获。

现实中一个程序的开发是要经历一个漫长的开发周期的:分析问题阶段是整个周期中最困难的部分也是最重要的部分,需要明确期望的结果,需要明确有哪些信息参与来得到结果,需要对什么样的数据进行什么样的操作去得到期望的结果;设计程序阶段是开发过程的核心,需要把分析阶段的结果模块化,并采用算法加以描述;编写程序代码阶段用具体的计算机程序设计语言实现前一阶段的算法;测试程序则需要花费更为漫长的时间,因为实际的用户无法容忍一个有隐患的软件。这样看来,具体的程序设计语言要在整个开发周期的第三阶段才发挥作用。而程序设计风格就像一个人的习惯一样有好坏之分,好的程序设计风格会增强程序的可读性和易用性。因此,在学生学习程序设计基础之初,就应该注重培养学生的良好编程习惯,并在每个章节的教学中展开对程序开发周期的学习,让学生认识和理解整个程序开发过程,这样才不致使程序设计语言的教学脱离实际的应用。

必须注意到,高职高专的目标是培养应用型人才。学生在掌握一定理论知识的同时,更重要是实践。适量的实验实训环节必不可少,教师也应重视学生的实验实训课。以往有些教师因为总课时少,在不能增加总课时的情况下为了多讲理论便压缩实验实训课时的做法不可取。

三、教学策略的改革

作为程序设计基础课,让学生了解到什么是程序设计的基础是重要的。其实,具体的程序设计语言已经是实现程序的方式了,所以它才规则详尽、语法严谨、技巧多样。从这个角度也不难理解初学的学生为什么会感到困惑和吃力。

1、注重培养学生描述算法的能力

要用计算机解决实际问题,那么,在对问题进行分析后,就要针对问题设计解决该问题的算法。设计算法就是要把解决问题的步骤用清晰的语言表示出来。有多种方法可以描述算法,如自然语言、图像符号、伪代码等。用自然语言表示算法,人比较容易理解,但书写较烦琐,而且在某些场合,由于自然语言含义的不确切性,容易引起歧义,造成误解;对较复杂的问题,用自然语言又难以表达准确。因此,一般情况下较少采用自然语言这种方式表示算法。据笔者所知,部分院校的程序设计基础课在算法描述这个知识点的教学上以介绍流程图或结构图这类用图形符号的描述方法。笔者认为除此方法之外,也应注重对伪代码的讲授。伪代码介于自然语言与程序设计语言之间,代码简单、可读性好、并且类似自然语言,使用它可使被描述的算法较容易地以任何一种程序设计语言去实现。教师在教学过程中不一定限于具体的一种程序设计语言,训练学生用不同方法描述解决问题的算法,特别是伪代码,可以增强他们组织语言的能力,进而更好地理解程序的控制结构。

2、注重培养学生良好的程序设计风格

程序是最复杂的东西,良好的格式能使程序结构一目了然,便于编程人和其他人理解它,同时有助编程人的思维,帮助其发现程序中不正常的地方,使程序中的错误更容易被发现。因此从学生学习开始,教师就该讲授什么是良好的程序设计风格,并严格要求学生按分层缩进法书写和键入程序代码,尽量避免学生养成不良习惯后再去纠正,为时已晚。

3、注重培养学生分析问题的能力,从不同角度分析问题

多数教材在第一章就能见到程序代码,虽然在代码后会有注释,但学生在课程学习之前多数是从未接触过程序设计语言的,他们不懂语法语义规则,这个时候即使只是简单的格式输出程序代码,学生也是难于理解的;在学生学习一段时间有一定基础之后,他们又迫切需要阅读那些用于解决问题的可执行的程序代码。可见,机械地讲解教科书上的例题教学效果不好。对于一个问题,可以从提出问题的角度入手给出分析的步骤,如:什么是问题要输出的结果?什么是问题已经有的数据?用什么方法可以得到结果?或者从算法描述的角度给出同样的分析步骤;亦或从程序代码的角度,边讲解边让学生思考代码究竟是要解决一个什么问题。并且引导学生举一反三,逐渐使学生具备解决问题的能力。

四、结论

本文主要针对课时少知识点多这一矛盾对高职高专程序设计基础课教学内容和教学策略的改革进行了探讨。笔者也注意到:一个完整的课程内容通常有九大要素,即吸引注意、告知目标、追忆学前经验、呈现教材、提供指导、实际演练、提供反馈、评价成就及强化学习、保留与迁移。因此在教改过程中,除了教学内容和教学策略外,还有许多待研究的问题。

上述教学内容、教学手段的改革,已经在程序设计导论课程教学实践中运用。笔者将继续努力研究,使程序设计基础课程教学日趋完善。

参考文献:

[1](美)维尼特(Venit,S.),(美)德雷克(Drake,e.).《程序设计基础》(第三版)[m].北京:清华大学出版社,2008

[2]高林,周海燕.《程序设计方法与案例分析》[m].北京:人民邮电出版社,2005

[3]谭浩强.《C程序设计》(第三版)[m].北京:清华大学出版社,2005

程序设计的结构篇8

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

第十五周软件测试

程序设计的结构篇9

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

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

2.项目研究背景:

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

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

3.项目研究意义:

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

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

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

第一diyifanwen.com整理该文章……

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

论文摘要:本文阐述结构化方法和面向对象方法的基本概念与特点和这两种软件开发方法具体的分析设计过程,讨论了各自在不同软件开发中的应用及局限性,提出了在选用面向对象方法开发大型软件系统的同时可结合结构化方法。

一引言

结构化方法是强调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法。结构是指系统内各个组成要素之间的相互联系、相互作用的框架。结构化开发方法提出了一组提高软件结构合理性的准则,如分解与抽象、模块独立性、信息隐蔽等。针对软件生存周期各个不同的阶段,它有结构化分析(sa)、结构化设计(sd)和结构化程序设计(sp)等方法。面向对象方法是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称oo方法,是建立在“对象”概念基础上的方法学。对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。而每继承性是对具有层次关系的类的属性和操作进行共享的一种方式。所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。

二结构化方法

结构化方法包括基本的结构化方法、复杂的结构化方法idef体系、jackson方法。结构化方法的特点:①把一个复杂过程用多个单个小过程来实现;②用数据流图,可以完成整个分解过程;③结果的唯一性,同一个问题,不同的人分解出来的结果基本是一样的。也即,用结构化方法,基本上是有标准答案的;④较适合初学者学习,一个连续的处理过程。

什么是软件体系结构?一个程序和计算机系统软件体系结构是指系统的一个或多个结构。结构中包括软件的构件,构件的外部可见属性以及它们之间的相互关系。体系结构并非可运行软件,它是一种表达,使软件工程师能够:①分析设计在满足规定需求方面的有效性;②在设计变更相对容易的阶段,考虑体系结构可能的选择方案;③降低与软件构造相关的风险。软件体系结构之所以重要的三个关键原因:①软件体系结构的表示有助于对计算机系统开发感兴趣的各方(共利益者)开展交流;②体系结构突出了早期设计决策,这些决策对随后的所有软件工程工作有深远的影响,同时对系统作为一个可运行实体的最后成功有重要作用;③体系结构“构建了一个相对小的,易于理解的模型,该模型描述了系统如何构成以及其构件如何一起工作”。系统的体系结构是一个关于系统形式和结构的综合框架,包括系统构件和构件的整合。软件体系结构必须对系统结构以及数据和程序构件间的相互协作方式进行建模。

三面向对象方法

面向对象方法包括基本的面向对象方法、rup。

⑴面向对象的概念

属性——说明一个类的数据集合;类——封装数据和过程的抽象,这些是说明某些真实世界中的实体的内容和行为所必需的。换种方式说,类是一组相似对象的概括说明(如:模板、模式、蓝图);对象——某个特定类的实例。对象继承类的属性和操作;操作——也称作方法和服务,表现类的某个行为;子类——超类的特化,子类可以从超类继承属性和操作;超类——也称作基类,是一组相关类的泛化。

⑵面向对象的特点

①基于映射:把现实世界的工作过程或系统,用代码系统中的相对应的元素模拟出来,就完成了软件的设计和开发;②事物对象;事物的特征对象的属性;事物的行为对象的方法;事物之间的信息交换与协同类方法调用;③由于现实事物的复杂性,为了要更好地完成上面的模拟/映射,需要从多个角度描述系统或过程;④静态关系:多态、继承、聚合、状态转换;⑤动态关系:用例、活动、序列、协作。⑥结果的唯一性,同一个问题,有经验的人和没有经验的人,进行面向对象设计时,结果可能会判别很大;⑦适用范围:设计复杂系统、设计高质量系统、设计与现实世界对应程度比较大的系统。

四结构化方法、面向对象方法的由来与发展

最初,只有完全一项计算任务的程度,并无所谓编程方法,更无软件工程方法。随着软件复杂度的提高,出现了复杂问题分解为简单问题的一种思路:函数、模块。在20世纪70年代初,软件危机问题出现之后,随着软件工程思想的确立,从模块化思想逐渐发展出了一个软件开发规范体系:结构化方法。包括结构化的模型图:程序流程图、功能分解图等;结构化的开发建议:高内聚、低耦合;结构化的过程指引:基于瀑布模型的软件生命周期以及相关的工具、语言,这也成为了第一个软件工程方法。结构化方法继续发展,出现了其它新的结构化方法的分支。pad方法:强调程序结构的分解;jackson方法:强调数据结构与软件结构的一致;信息建模分析方法:数据流图、实体关系图。新的设计理念:数据驱动;idef体系:从信息建模分析方法发展出来;模型图;工具;设计规范。而另外一个重要的软件工程方法——面向对象方法,则是沿着另外一条路发展的。60年代为程序仿真而开发的simula语言,为了更好的模拟现实世界以进行仿真,引入了类概念和继承机。70年代末,另一个专用的面向对象语言smalltalk开始进行设计,并在80年提出一个完善版本。但这时只在实验室和科研活动中使用。随着软件复杂程度的进一步提高,低耦合、高内聚的要求进一步提高,促进了面向对象开发思想的发展,低耦合、高内聚是获得较好软件质量的要求,但数据耦合是结构化方法无法解决的问题,要么有大量的全局变量;要么是每个函数都有大量的参数,因此,把数据和代码集成封闭在一起,成了一个合理的要求,由此,出现了面向对象的思想。

结构化方法是强调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法。结构化分析方法给出一组帮助系统分析人员产生功能规约的原理与技术。它一般利用图形表达用户需求,使用的手段主要有数据流图、数据字典、结构化语言、判定表以及判定树等。结构化语言就是将自然语言加上程序设计语言的控制结构就成了结构化语言,专门用来描述加工逻辑。所以,它既有自然语言灵活性强、表达丰富的特点,又有结构化程序的清晰易读和逻辑严密的特点。结构化语言的显著特征是代码和数据的分离。这种语言能够把执行某个特殊任务的指令和数据从程序的其余部分分离出去、隐藏起来。获得隔离的一个方法是调用使用局部变量的子程序。通过使用局部变量,我们能够写出对程序其它部分没有副作用的子程序。这使得编写共享代码段的程序变得十分简单。如果开发了一些分离很好的函数,在引用时我们仅需要知道函数做什么,不必知道它如何做。切记:过度使用全局变量会由于意外的副作用而在程序中引入错误。结构化语言比非结构化语言更易于程序设计,用结构化语言编写的程序的清晰性使得它们更易于维护。这已是人们普遍接受的观点了。比如作为结构化语言的c语言主要结构成分是函数c的独立子程序。在c语言中,函数是一种构件(程序块),是完成程序功能的基本构件。函数允许一个程序的诸任务被分别定义和编码,使程序模块化。可以确信,一个好的函数不仅能正确工作且不会对程序的其它部分产生副作用。pascal是世界上第一个结构化语言,曾被认为是计算机专业理想的教学语言,在数据结构等课程中一般用pascal语言举例。access数据库是一种关系型数据库,所有的关系型数据库都是基于结构化查询语言sql的。visualfoxpro不但仍然支持标准的xbase结构化程序设计,而且在语言上还有进行了扩展,提供了面向对象程序设计的强大功能和更大灵活性。

随着计算机及其用户越来越复杂,程序员的任务也越来越繁重,所以,与其相关的编写代码的时间也就越来越长了。接下来发生了有趣的事情,程序达到一定大小以后,为其编写代码所需的时间比预期的要长的多。事实是当程序达到一定大小时,人脑就不能跟踪所有的复杂性了。复杂性完全是产生事故的原因,战胜复杂性的方法就是编写一些小的“无错”程序,并把它们连在一起,形成一个大的“无错”程序,这就是面向对象编程的起源。

面向对象的程序设计oop是delphi延生的基础。oop立意于创建软件重用代码,具备更好地模拟现实世界环境的能力,这使它被公认为是自上而下编程的优胜者。它通过给程序中加入扩展语句,把函数“封装”进windows编辑所必需的“对象”中。面向对象的编程语言使得复杂的工作条理清析、编写容易。说它是一场革命,不是对象本身而言,而是对它们处理工作的能力而言。对象并不与传统程序设计和编程方法兼容。只是部分面向对象反而会使情形更糟。除非整个开发环境都是面向对象的,否则对象产生的好处还没有带来的麻烦多。而delphi是完全面向对象的,这就是使得delphi成为一种触手可及的促进软件重要的开发工具,从而具有强大的吸引力。

面向对象的程序设计方法与编程技术不同于标准的结构化程序设计。程序设计人员在进行面向对象的程序设计时,不再是单纯地从代码的第一行一直编到最后一行,而是考虑如何创建、利用对象来简化程序设计,提高代码的可重用性。对象可是应用程序的一个自包含组件,一方面具有私有的功能,供自己使用;另一方面又提供公用的功能,供其他用户使用。随着面向对象技术成为研究的热点出现了几十种支持软件开发的面向对象方法。其中,booch,coad/yourdon,omt,和jacobson的方法在面向对象软件开发界得到了广泛的认可。特别值得一提的是统一的建模语言uml,该方法结合了booch,omt,和jacobson方法的优点,统一了符号体系,并从其它的方法和工程实践中吸收了许多经过实际检验的概念和技术。

结束语

面向对象仍将是主流,但结构化方法并不会,相反在某些领域还会有进一步应用。面向对象方法在八十年代已经得到了很大的发展,并且已在计算机科学、信息科学、系统科学和产业界得到了有效的应用,显示出其强大的生命力。可以展望在九十年代内,面向对象方法将会大更深、更广、更高的方向上取得进展。

参考文献