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

程序设计基本结构十篇

发布时间:2024-04-29 12:30:02

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

摘要:本文根据高职学生特点,从实际教学经验出发,分析了高职院校C语言程序设计教学现状,并简单讲述了C语言主要知识点,并提出适合高职学生学习的方法。

关键词:C程序高职院校

《C语言程序设计》是高职院校计算机及电子信息相关专业的重要专业基础课。该课程主要培养学生模块化程序设计的逻辑思维能力,使学生掌握程序设计的一般方法和技巧,并锻炼学生的思维能力和创新意识。

1C语言程序设计教学现状

C语言是理想的结构化语言,描述能力强。C语言的教学要求教师具备良好的教学能力和清晰的程序设计思想,也要求学生有一定的逻辑设计能力。一般高职院校的C语言设置在一年级开设,学生刚刚进入大学,还没有从高中生的身份完全转变过来。虽然在高中阶段学习了计算机应用基础课程,但是他们完全没有程序设计的概念,经过一段时间的学习,觉得这门课很难学、学不会。经过两个学期的C语言教学,从实际教学经历来看,主要的制约因素有以下四个:第一、学生刚进入大学,刚接触编程语言,对计算机原理理解不深,对编程更是不了解,不具备语言编写能力。第二、高职学生文化基础比较差,尤其是数学基础差,导致学生逻辑思维能力差,而C语言的学习对这方面能力又有较高的要求,所以对于稍微复杂一点的程序学生就觉得难以理解。第三、英语基础差,很多高职学生对英语望而生畏,而计算机语言基本都是用英语来实现的,C语言亦是。很多学生看到程序中的英语单词就头疼,从心理上就觉得自己学不会C语言,也就放弃了。第四、很多学生,在上课的时候能听懂了,但是上机的时候头脑一片空白,不知从哪里入手编写程序。部分能够写出程序的,也是按照教材或老师所讲的例子进行编写,一旦题目要求有变化,便不会做了。

2C语言教学规范

有一简单C程序如下:

intmain()

{

inta,b,m;

intmax(intx,inty);

printf("请输入两个数值:\n");

scanf("%d,%d",&a,&b);

m=max(a,b);

printf("两个数中较大的为%d\n",m);

return0;

}

intmax(intx,inty)

{

intz;

if(x>y)

z=x;

else

z=y;

returnz;

}

该程序的功能是通过键盘输入两个数值,经过程序的运行,将其中较大的数值进行输出。该程序简单,易于理解,但是包含C语言中很多必须掌握的知识点。简单介绍如下:

2.1C语言程序的结构通过上面简单例子可以看出,一个C语言程序的结构有以下特点:①一个程序由一个或多个源程序文件组成。②函数是C程序的主要组成部分。程序的全部工作几乎都是由各个函数分别完成的,函数是C程序的基本单位。在设计良好的程序中,每个函数都用来实现一个或几个特定的功能。③一个函数包含两个部分。函数首部和函数体两个部分构成。基本形式如下:函数类型和函数名(参数类型、参数名称……)。函数体包含声明部分和执行部分。声明部分,定义本函数中所用到的变量。执行部分,指定函数中所进行的操作。④程序总是从main函数开始执行的。⑤C程序中对计算机的操作是由函数总的语句完成的。C程序的书写格式比较自由,一条语句可以分写在多行,也可以将多条语句写在一行。但一般习惯每行只写一条语句。⑥所有的C语句的最后必须要有一个分号。⑦C语言本身不提供输入输出语句。输入和输出操作是由库函数scanf和printf等函数来完成的。

2.2掌握C语言的基本结构大部分的语言都是由顺序结构、选择结构和循环结构三种基本结构构成的,而C语言也不例外。

2.2.1顺序结构。在顺序结构中,各语句是按自上而下的顺序执行的,执行完上一个语句就自动执行下一个语句,是无条件的,不必做任何判断,是最简单的程序结构。

2.2.2选择结构。在现实生活中需要进行判断和选择的情况很多。比如,从a城市出发上高速公路,到一个岔口,有两个方向,一个去B城市方向,一个去C城市方向。

驾车者到此需要自己根据自己的目的地进行判断,选择其中一个路径。在日常生活或工作中,类似这样需要判断的情况很多。比如:如果考试不及格,要补考;70岁以上的老人,乘公交免票等等。

程序中,选择结构是一种重要的程序结构。本文前面的例子中就用到了选择结构,如果x>y,较大值为x,否则为y。该函数中,采用了if语句中,双分支选择结构。在C语言中有两种选择语句:①if语句;②switch语句。

①if语句形式有三种形式

·if(表达式)语句

·if(表达式)语句1

else语句2

·if(表达式)语句1

elseif(表达式2)语句2

elseif(表达式3)语句3

elseif(表达式m)语句m

else语句m+1

②switch语句一般形式

switch(表达式)

{

case:常量表达式1:语句1

case:常量表达式2:语句2

:::

case:常量表达式n:语句n

default:语句n+1

}

2.2.3循环结构。在日常生活中或是在程序所处理的问题中常常遇到需要重复处理的问题。比如:要向计算机输入全班50个学生的成绩等。在C语言中,需要多次重复执行一个或多个任务的问题可以用循环来处理。循环结构有while、do…while和for语句来实现。

while语句:

while(表达式)语句

do…while语句:

do语句while(表达式);

for语句:

for(表达式1;表达式2;表达式3)语句

3怎样学习C程序设计

根据C语言程序设计课程特点,结合今年来的从教经验,综合高职学生特点,C语言程序设计教学应注意以下几个方面:

①要着眼于培养能力。C语言程序设计是一门操作性很强的课程,在教学过程中应该注意培养学生分析问题、构造算法、编程和调试程序的能力。②要把重点放在解题的思路上。初学者不要在语法细节上死记硬背。一开始学习只要能看懂程序,能够编写简单的程序,然后逐步深入。

语法细节可以在后续的学习及长期的时间中掌握。③掌握基本要求,注意打好基础。在学校学习程序设计,主要学习程序设计的方法,进行程序设计的基本训练,为进一步学习打下良好的基础。④重视上机实践环节。该类课程学的好与坏,不是看你“知不知道”,而是“会不会做”。对程序而言,光靠听课和看书是学不好的,除了学习本课程要掌握的概念,还要动手编写程序,上机调试程序。⑤要学会举一反三。学习程序设计,关键是学习程序设计的思路和方法。

学会一种计算机编程语言,在学习另外一种编程语言时应该不会太困难。各种计算机编程语言,其基本规律是一样的,在学习时一定要学活用活,举一反三,掌握规律,在后期学习时就:

[1]曹莎莎.C语言教学研究与思考[J].价值工程,2012(01).

[2]雍全明.C语言教学改革探索与实践[J].新余高专学报,2005(02).

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

1.课题名称:

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

2.项目研究背景:

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

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

3.项目研究意义:

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

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

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

4.文献研究概况

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

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

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

1.内力。

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

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

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

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

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

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)生成的文件中选出最不利组合,同时给出截面配筋。

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

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

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

(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

创新的指导思想

高职计算机专业学制短,技能要求高,而大部分学生的抽象思维能力较差,要达到“因材施教,提高技能”的目标,《面向结构程序设计》教材必须在如何裁剪知识点,构建结构化编程的工程应用框架方面进行创新。经过四年的探索,我们确立了与传统的《C语言程序设计》完全不同的定位,明确了高职教材的“四个特点”:

(1)高职的C语言不是“C语言语法大全”

传统的C语言教材把C语言本身当成研究的对象,总是试图面面俱到地讲解C语言的方方面面,不适合高职使用。我们本着一切以工程实用为原则,围绕构建结构化编程的工程应用程序框架的目标,通过建立函数框架、主程序框架到应用程序框架,以案例驱动的方式,具体讲解了工程应用程序的编写过程。

(2)高职的C语言不是“数据结构基础”

传统的C语言教材,把C语言的学习和“数据结构”的内容结合起来,这样的结果是把C语言的学习引向解决抽象的数据结构问题,对高职的学生来说,老师教得辛苦,学生学得痛苦,因此,我们去掉了排序、链表等比较抽象算法的讲解,增加了使用“状态变量”控制程序功能、用户身份识别、动态数组使用、文件读写错误处理等实用内容。

(3)高职的C语言不是“程序设计基础”

传统的C语言教材承担了讲解“程序设计基础”的任务,这样的结果是没有时间讲解C语言中比较深入的技能。因此直接从建立函数框架开讲,强化用函数实现结构化编程的方法,可以让学生学到工程应用的技能。

(4)工程化的编写风格

对全书所有的案例和例题必须进行通盘的考虑,在循环、数组、指针、函数和结构化设计等单元,所有的例子都有前后的联系,强调内容的前后衔接,特别注意工程规范的引入,在变量的命名、程序格式方面,均按工程要求进行。

适用的技能与内容

根据在企业工作的实际经验,把要求学生掌握的C语言的基本技能,归纳为“八个掌握”:掌握C语言程序的基本结构;掌握编写并使用自定义函数的方法,能够使用系统函数;掌握一维数组在字符处理中的应用;掌握对一维、二维数组进行遍历的方法;掌握使用指针进行一维数组遍历的方法;掌握使用动态结构数组的方法;掌握使用文件保存数组数据的方法;掌握主程序中使用函数建立功能模块的方法,能用流程图描述简单问题的算法,能够根据流程图和算法,编制出相应的C语言程序。

“八个掌握”构建了学生使用C语言的基本技能,这些技能不是孤立的讲解,而是贯彻到案例设计的“三结构”、“四循环”中。

“三结构”是指学生要学习三个成绩管理软件的编程,分别是基于一维数组、二维数组和动态结构数组。选择数组作为基本的数据结构,一方面是贴近学生的认知水平,二是可以保持适当的连贯性。

“四循环”是指编写基于“三结构”的每一个成绩管理软件过程中,教材中提供四个以上的程序版本,引导学生改写、增加函数,并采用工具软件BeyondCompare,比较不同的程序版本之间的差异,让学生直观地看到软件的功能是如何一步一步构建起来的。通过不断反复的比较,学生就可以掌握结构化程序设计的过程和方法。

为了帮助学生掌握C程序的基本结构,在教材中还提出了两个创新:

(1)通过定义预处理区、变量声明区、执行语句区“三大区域”为特色的C程序的基本框架,让学生树立正确的程序格式与规范。

我们提出把一个基本的C程序从上到下分成三个区域。预处理区域:用于书写程序相关的预处理文件;变量声明区域:用于书写变量的声明;执行语句区域:用于书写执行语句。

这三个区域的顺序不能交换,只能是按规定的顺序书写,而程序也是按这个顺序执行。

“三大区域”概念的提出,明确规定了程序的基本框架,让学生从一开始就按固定的格式进行编程,养成良好的编程习惯。

【例1】程序的基本框架,如图1所示。

通过在变量声明区域定义要用的变量,在执行语句区域书写计算方法,程序就可以完成不同的功能,程序的基本结构并没有变化。事实上,我们要求学生以后写程序,都要在这个基本框架上进行改写。

(2)提出了使用函数的“三大步九要素”的基本方法,让学生掌握函数完整清晰的概念。

结构化程序设计的核心是函数的使用,正确使用函数,特别是使用自定义函数涉及的知识要点很多,在C语言中函数的书写又很灵活,这种灵活性对初学者来说并不是好事,往往让人找不到规律。我们提出的使用函数的“三大步九要素”的基本方法,在教学中取得了很好的效果。

【例2】程序使用函数的基本框架,如图2所示。

所谓“三大步”,是指我们在使用自定义的函数时,应该按【例2】所示的框架,对函数进行声明、定义和调用。三大步的顺序不要搞错。

所谓“九要素”,是指函数声明的三要素:返回值的类型、函数的名字、参数的类型和参数的个数。函数定义的三要素:参数、功能、返回值。函数调用的三要素:名字、参数、返回值。通过对“九要素”的理解掌握,学生能够建立起使用函数的清晰框架。

在案例选择上,全部采用工程实际和实际生活中的案例。例如,选择执行语句,在讲解了条件的表达方式后,我们只讲三种情况的处理:1)单项选择语句if(条件)语句;2)双项选择语句if(条件)-else语句;3)多项选择语句switch-case语句。讲解条件的表达时,则强调把生活中的要求转化为程序中的语句,不再是传统的if(a>b)。

例如:如果晚上6点(包括6点)以后或者气温低于18度,我就加衣服。

如果我们用time来表示时间,用temperature来表示气温,那我们可以这样来写:

if((time>=18)||(temperature<18))printf(“addingdresses!”);

经过这样的训练,引导学生用程序来表述和解决生活中的问题。在教材的编写中,始终抓住这一点:以教育心理学中的联结学习理论为指导思想,采用不断改写程序的办法,总是从实际问题入手,通过提出问题、讨论解决方法、实际动手解决、分析不同的解决方案来总结提高,各个环节环环相扣,通过反复练习与强化,让学生在旧知的基础上探索新知,在新知的不断探索中获得学习的快乐。

工程化的实训设计

结构化程序设计的教学中,如何让学生建立起结构化程序的框架,理解主函数和功能函数的不同作用是很困难的。一个简单的成绩管理软件,代码就超过300行。对初学者来说,看懂超过100行的程序就需要很长时间,又如何在短短的课堂时间里,让学生通过增加/改写函数来增加功能?这也就是很多学生学完了C语言程序设计,依然不能编写一个简单的应用程序的主要原因。

我们按照案例设计的“三结构”、“四循环”原则,设计了12个实训项目,每个项目一个程序版本,并在教材附送的光盘里,提供了全部程序的电子版本和相应的工具软件BeyondCompare,学生可以方便地比较不同的程序版本之间的差异,直观地看到软件的功能是如何一步一步构建起来的。程序的第一个版本,就是一个主函数,不超过10行,只显示程序的几项功能菜单,学生很容易理解。然后通过第二个、第三个版本,每一个版本实现或改进一个菜单的功能,直到最后版本。

程序设计基本结构篇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分母情况?使用链表结构时,须要检查其连接情况,等等。

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