数据结构课程设计

发布 2022-10-05 03:26:28 阅读 5986

编制计算平面静定桁架内力的通用程序。

一、 什么是桁架内力的计算。

桁架的内力计算,可假定节点为铰接。将荷载集中于各个节点上,按节点荷载求得各杆件的轴向力。节间荷载对上弦杆所引起的弯矩,在选择杆件截面时再行考虑。

求桁架杆件内力时,恒荷载(包括自重)按全跨分布。活荷载除按全跨分布外,尚应根据各种桁架的受力特点,分别按可能出现的不利分布情况进行组合。

二、 桁架内力的通用程序。

c program for the staticall determinate plane truss)

c version 1.2 2011.1.18

c program made by he right reserved

c 主程序读入并输出控制数据,分配动态数组地址,并通过调用各子程序来调用。

c 整个计算。

dimension w(80000),iw(80000),wt(80000)

double precision wt

integer iw

character idfn*12,outfn*12,title(5)*72

write(*,1)

1 format(1x,'请键入输入文档名称:')

read (*a12)')idfn

open (3,file=idfn,status='old')

write(*,2)

2 format(1x,'请键入输出文档名称:')

read (*a12)')outfn

open (4,file=outfn,status='new')

write(4,3)idfn

3 format(1x,'输入文档:',1x,a12)

write(4,4)outfn

4 format(1x,'输出文档:',1x,a12)

read (3,'(a72)')title(m),m=1,5)

write(4,5)(title(m),m=1,5)

5 format(1x,a72)

write(4,6)

6 format(/19x,'原始数据'//19x,'基础信息'

2x,'弹性模量',5x,'杆件数',4x,'节点数',3x,'支承条件数',5x,'荷载情况数')

read (3,*)e,nm,nj,ns,nlc

write(4,7) e,nm,nj,ns,nlc

7 format(1x,1pe10.3,i7,4x,i7,4x,i7,7x,i7)

write(4,8)

8 format(/19x,'杆件信息'

$//1x,'杆件',6x,'始端',2x,'末端',4x,'截面面积',7x,'截面二次矩')

l1=1l2=l1+nm

l3=1l4=l3+nm

l11=l4+nm

l12=l11+nj

l21=l2+nm

l22=l12+nj

l31=l21+ns

l32=l31+3*nj

l41=l32+6*nm

call iomjs(nm,nj,ns,iw(l1),iw(l2),w(l3),w(l4),w(l11),w(l12),$iw(l21),w(l22))

call idun(nj,n,iw(l31),w(l11),w(l12))

call lcvct(nm,iw(l1),iw(l2),iw(l32),nj,iw(l31))

call lcdia(nm,n,iw(l32),iw(l41),iw(l41),iw(l41),maxbdw,na)

l51=1l52=l51+36

l53=l52+na

l54=l53

l61=l41+n

call forma(e,nm,nj,n,na,iw(l1),iw(l2),w(l3),w(l4),w(l11),w(l12),$iw(l32),wt(l51),iw(l41),wt(l52))

call as(ns,nj,n,na,iw(l21),iw(l31),iw(l41),wt(l52))

call ldlt(n,na,iw(l41),wt(l52),wt(l53))

do 100 lc=1,nlc

read(3,*)nlj

l62=l22+ns

l63=l62+nlj

l64=l63+nlj

l71=l54+n

l81=l61+nlj

call b0(lc,n,nlj,wt(l54))

if( ioljb(n,nj,nlj,iw(l31),iw(l61),w(l62),w(l63),$w(l64),wt(l54))

read(3,*)nlm

l82=l81+nlm

l83=l64+nlj

l84=l83+nlm

call f0(nlm,nm,wt(l71))

if( iolmfb(nm,nj,n,nlm,iw(l81),iw(l82),w(l83),w(l84),$iw(l1),iw(l2),w(l11),w(l12),iw(l32),wt(l71),wt(l54))

call bs(ns,nj,n,iw(l21),w(l22),iw(l31),wt(l54))

call slveq(n,na,maxbdw,iw(l41),wt(l52),wt(l54))

call cotf(e,nm,nj,n,iw(l1),iw(l2),w(l3),w(l4),w(l11),w(l12),$iw(l32),wt(l54),wt(l71))

100 continue

print*,'hwm'

enc 子程序iomjs 读入并输出杆件,结点及支承条件的数据。

subroutine iomjs (nm,nj,ns,ist,ien,ar,ri,x,y,is,vs)

dimension ist(nm),ien(nm),ar(nm),ri(nm), x(nj),y(nj),is(ns),vs(ns)

c 子程序ke 计算整体坐标单刚。

subroutine ke (m,e,nm,nj,ist,ien,ar,ri,x,y,ae)

dimension ist(nm),ien(nm),ar(nm),ri(nm),x(nj),y(nj)

double precision ae(4,4),c,s,e1,a1,a2,a3

call kebar(m,e,nm,nj,ist,ien,ar,ri,x,y,c,s,e1)

a1=e1*c*c

a2=e1*c*s

a3=e1*s*s

ae(1,1)=a1

ae(2,1)=a2

ae(2,2)=a3

ae(3,1)=-a1

ae(3,2)=-a2

ae(3,3)=a1

ae(4,1)=-a2

ae(4,2)=-a3

ae(4,3)=a2

ae(4,4)=a3

return

endc 子程序forma 形成总刚a

subroutine forma (e,nm,nj,n,na,ist,ien,ar,ri,x,y,lv,ae,ld,a)

dimension ist(nm),ien(nm),ar(nm),ri(nm),x(nj),y(nj),lv(4,nm),ld(n)

double precision a(na),ae(4,4)

do 300 m=1,nm

call ke(m,e,nm,nj,ist,ien,ar,ri,x,y,ae)

do 200 i=1,4

do 100 j=1,i

if (lv(i,m).

a(ld(lv(i,m))-lv(i,m)+lv(j,m))=

$a(ld(lv(i,m))-lv(i,m)+lv(j,m))+ae(i,j)

elsea(ld(lv(j,m))-lv(j,m)+lv(i,m))=

$a(ld(lv(j,m))-lv(j,m)+lv(i,m))+ae(i,j)

endif100 continue

200 continue

300 continue

return

end c 子程序as 总刚a引入支承条件

subroutine as (ns,nj,n,na,is,iu,ld,a)

dimension is(ns),iu(3,nj),ld(n)

double precision a(na)

do 100 m=1,ns

j=is(m)/10

i=mod(is(m),10)

k=iu(i,j)

a(ld(k))=1d22

100 continue

return

end c子程序ldlt 解方程组之一总刚分解。

subroutine ldlt(n,na,ld,a,t)

dimension ld(n)

double precision a(na),t(n),sum

do 300 i=2,n

ldi=ld(i)

i1=i-ldi+ld(i-1)+1

do 200 j=i1,i-1

ldj=ld(j)

if( goto 50

j1=j-ldj+ld(j-1)+1

50 continue

if( j1=i1

sum=0.0d0

do 100 k=j1,j-1

sum=sum+t(k)*a(ldj-j+k)

100 continue

t(j)=a(ldi-i+j)-sum

数据结构课程设计

课程设计说明书 题目哈夫曼编码问题的设计和实现。课程名称数据结构课程设计。院 系 部 中心。专业。班级。学生姓名。学号。设计地点。指导教师。设计起止时间 2008 年6月 2日至 2008 年 6月 6 日。目录。1 问题描述 2 1.1 题目内容 2 1.2 基本要求 2 1.3 测试数据 2 2...

数据结构课程设计

数据结构 课程设计。实验报告。学院 信息工程学院。班级 姓名 学号 指导老师 题目2 一元多项式的计算。1 实验目的。1 掌握链表的灵活运用 2 学习链表初始化和建立一个新的链表 3 知道怎样去实现链表删除结点操作与插入结点 4 理解链表的基本操作 包括数据域数据的相加 并能灵活运用。2 实验内容。...

数据结构课程设计

班级 信计 1102 姓名 李娜娜。学号 1108060209 设计日期 2013.07.15 西安科技大学计算机学院 1.实验题目 编制一个演绎扫雷游戏的程序。2.问题描述。做一个n x m的扫雷游戏,每个方格包含两种状态 关闭 closed 和打开 opened 初始化时每个方格都是关闭的,一个...