文档库 最新最全的文档下载
当前位置:文档库 › 《有限单元法基本原理和数值方法》一书的源程序

《有限单元法基本原理和数值方法》一书的源程序

《有限单元法基本原理和数值方法》一书的源程序
《有限单元法基本原理和数值方法》一书的源程序

《有限单元法基本原理和数值方法》一书的源程序

--------------------------------------------------------------------------------

!********************************************************************* ! *

! PL ---- PROGRAM OF PLANE PROBLEM 96.1 *

! *

!********************************************************************* C

C-------- 输入数据顺序--------

C 1.NG 1整型

C NG 结构结点总数

C NG=0 则停止运行

C 2.NE,MC,NX,NB,ND,EO,VO,T 5整型3实型

C NE 结构单元总数

C MC 计算控制类型参数

C MC=0 平面应力

C =1 平面应变

C NX 作用载荷组数

C NB 给定位移个数

C N

D 结构刚度矩阵的半带宽

C EO 弹性模量

C VO 泊松比

C T 单元(结构)的厚度

C 3.NW A NWE,NWK,NWP,NW

D 5整型

C 输出控制参数

C =1 输出

C =0 不输出

C NWA 单元参数的输出控制参数

C NWE 单元刚度矩阵的输出控制参数

C NWK 结构刚度矩阵的输出控制参数

C NWP 载荷向量的输出控制参数

C NW

D 结点位移的输出控制参数

C 4.IJM(3,NE) 单元结点编码数组3×NE整型

C IJM(1,I); IJM(2,I); IJM(3,I)

C 第I个三角形单元的结点编号,按结点编号顺序填写

C 5.XY(2,NG) 结构结点坐标数组2×NG实型

C 6.MB(2,N,ZB(N 2×NB整型,NB实型

C MB(1,I)---第I个给定位移所在的结点号

C MB(2,I)=1--给定X方向位移

C =0--给定Y方向位移

C ZB(I)----给定位移值(以坐标正向为正)

C 7.NF,NP 2整型

C NF-----作用在结点上的集中载荷(坐标方向)的个数

C NP-----作用均布侧压的单元边数

C 若NF>0 则填写

C 8.MF(2,NF),ZF(NF) 2×NF整型,NF实型

C MF(1,I)---第I个集中载荷所在的结点号

C MF(2,I)=1--给定X方向集中力

C =0--给定Y方向集中力

C ZF(I)-----作用的集中力值

C 若NP>0 则填写

C 9.MP(2,NP),ZP (NP) 2×NP整型,NP实型

C MP(1,I)----第I个载荷作用边的起始结点号

C MP(2,I)----第I个载荷作用边的起始结点号

C ZP(I)------第I个均布载荷值

C

C 若NX>1 重复7.-9. (NX-1) 次

C

C 最后NG=0 表示数据结束

C

!-------- 输出数据顺序--------

C 1.IJM(3,NE) 单元结点编码数组3×NE整型

C IJM(1,I); IJM(2,I); IJM(3,I)

C 第I个三角形单元的结点编号,按结点编号顺序填写

C 2.XY(2,NG) 结构结点坐标数组2×NG实型

C

C 若NW A=1,则输出

C 3.I,B(7) 单元参数NE行,1×NE整型,7×NE实型

C 每行结构为:'NE='+单元号+Bi+Bj+Bm+Ci+Cj+Cm+A

C

C 若NWE=1,则输出

C 4.IO,EK(6×6)单元刚度阵NE行,1×NE整型,6×6×NE实型C 每行结构为:'NE='+单元号+EK(单元刚度阵)

C

C 若NWK=1,则输出

C 5.SK(NT,ND) 结构刚度矩阵NT×ND=2NG×ND实型

C

C 若NWD=1,则输出

C 6.I,B 结点位移数据NG行,1×NG整型,2×NG实型

C 每行结构为:单元号+U+V

C

C 7.S1,S2,S3,X1,X2,CTA

C 单元应力数据6×NE实型

C 分别代表σx,σy,τxy,σ1,σ2和主应力方向

C

C 若NX>1 重复6.-7. (NX-1) 次

C

!--------可调数组分配--------

C

C 实型数组C(100000) 整型数组IA(100000)

C C(1) XY(2,NG) IA(1) IJM(3,NE)

C C(N1) ZB(N IA(M1) MB(2,M

C C(N2) BCA(7,NE) IA(M2) MF(2,N

C C(N3) SK(NT,ND) IA(M3) MP(2,NP)

C C(N4) F(NT) IA(MEND) 下限

C C(N5) ZF(NF)

C C(N6) ZP(NP)

C C(NEND) 下限

C

!--------程序停止代码--------

! 0 正常停止

! 111 数组C越界

! 222 数组C/IA越界

! 333 单元面积非正

! 444 结构刚度矩阵主元非正

!********************************************************************* C

C 主程序

C

DIMENSION C(500000),IA(50000),EK(36)

CHARACTER*12 IN,OUT

C IN和OUT为输入文件和输出文件的文件名

WRITE(*,*)' '

WRITE(*,*)' PLEASE INPUT THE INPUT-FILE NAME (A<12)'

WRITE(*,*)' '

READ(*,5) IN

C 输入输入文件的文件名

WRITE(*,*)' '

WRITE(*,*)' PLEASE INPUT THE OUTPUT-FILE NAME (A<12)'

WRITE(*,*)' '

READ(*,5) OUT

C 输入输出文件的文件名

5 FORMA T(A12)

OPEN(5,FILE=IN, STA TUS='OLD')

OPEN(6,FILE=OUT,STATUS='UNKNOWN')

C 打开对应的输入和输出文件

10 READ(5,*) NG

IF(NG.EQ.0) STOP

C 输入结构结点数;如果结点数为0则停止运行

READ(5,*)NE,MC,NX,NB,ND,EO,VO,T

C 按顺序输入结构单元数,问题类型参数,载荷组数,给定位移个数

C 结构刚度阵的半带宽,弹性模量,泊松比和结构厚度

READ(5,*)NWA,NWE,NWK,NWP,NWD

C 按顺序输入各输出控制参数

NT=2*NG

C 确定总刚度矩阵阶数NT

C

C 计算变界数组的下限

!

M1=3*NE+1

M2=M1+2*NB

N1=2*NG+1

N2=N1+NB

N3=7*NE+N2

N4=N3+NT*ND

N5=N4+NT

C 得到各变界数组在一维大数组中的起始元素编号

C

C 检验实型数组C的下限

C

NEND=N5

IF(NEND.LE.500000) GOTO 35

WRITE(*,*)'*** EXCEED THE LIMIT OF ARRAY C(IN THE MIDDLE)!! ***' WRITE(*,30) NEND

30 FORMA T(/,'******** NEND=',I6,1X,'>80000 ********')

STOP 111

C 若C下限超出500000,则给出错误信息并停止运行

C

C 数据输入

C

35 CALL INPUT(NE,NG,NB,IA(1),C(1),IA(M1),C(N1))

C 调用INPUT子程输入数据

WRITE(*,40)

40 FORMA T(/10X,'##### INPUT PASSED #####')

C 显示提示信息

IF(MC.EQ.0) GOTO 45

C 检验是否是平面应力问题

C

C 平面应变问题

C

E=EO/(1.0-VO*VO)

V=VO/(1.0-VO)

C 平面应变问题时,先进行弹性常数替换

GOTO 50

C

C 平面应力问题

C

45 E=EO

V=VO

50 NX1=NX

A1=E/(1.0-V*V)/4.0

A2=0.5*(1.0-V)

C 初始化NX1,A1和A2 / NX1为剩余载荷的组数

C

C 计算单元参数

C

CALL ABC(NE,NG,NW A,IA(1),C(1),C(N2))

WRITE(*,55)

55 FORMA T(/10X,'##### ABC PASSED #####')

C 调用ABC子程计算单元参数并显示提示信息

C

C 集成结构刚度矩阵K

C

DO 60 I=N3,N4

C(I)=0.0

60 CONTINUE

C 初始化结构刚度矩阵SK

DO 65 K=1,NE

C 遍历结构的所有单元

IO=K

CALL KE(IO,NE,NWE,T,A1,A2,V,EK(1),C(N2))

CALL SUMK(IO,NE,ND,NT,IA(1),C(N3),EK(1))

C 调用KE子程计算出单元刚度阵并调用SUMK子程将其集成到结构刚度阵中

65 CONTINUE

WRITE(*,70)

70 FORMA T(/10X,'##### SUMK PASSED #####')

C 显示提示信息

CALL CHECK(NT,ND,NWK,C(N3))

C 调用CHECK子程检验结构刚度阵中的主元是否非正

WRITE(*,75)

75 FORMA T(/10X,'##### CHECK PASSED #####')

C 显示提示信息

80 READ(5,*) NF,NP

C 输入集中载荷个数NF和均布载荷个数NP

C

C 再次计算变界数组的下限

C 并检验实型数组C和整型数组IA的下限

C

M3=M2+2*NF

N6=N5+NF

NEND=N6+NP-1

MEND=M3+2*NP-1

C 计算C和IA的下限

NM=0

IF(NEND.LE.500000) GOTO 85

WRITE(*,*)'*** EXCEED THE LIMIT OF ARRAY C (AT THE END)!! ***'

WRITE(*,30) NEND

NM=1

85 IF(MEND.LE.50000) GOTO 95

WRITE(*,*)'*** EXCEED THE LIMIT OF ARRAY IA (AT THE END)!! ***' WRITE(*,90) MEND

90 FORMA T(/,'******** MEND=',I6,1X,'>500 ********')

STOP 222

95 IF(NM.EQ.1) STOP 222

C 检验两个数组的下限,若下限超出则给出错误信息并停止运行

C

C 集成结构结点载荷列阵P

C

DO 100 I=N4,N5

C(I)=0.0

100 CONTINUE

C 初始化结构结点载荷列阵F

IF(NF.GT.0) CALL PF(NF,NP,NT,NWP,C(N4),IA(M2),C(N5))

WRITE(*,105)

105 FORMAT(/10X,'##### PF PASSED #####')

C 若集中载荷个数>0,调用PF子程集成各结点集中力并显示提示信息

IF(NP.GT.0) CALL PP(NP,NT,NG,NWP,C(1),C(N4),IA(M3),C(N6))

WRITE(*,110)

110 FORMAT(/10X,'##### PP PASSED #####')

C 若均布载荷个数>0,调用PP子程集成各均布载荷并显示提示信息

C

C 引入给定位移

C

CALL DBC(NT,ND,NB,NX,NX1,C(N3),C(N4),IA(M1),C(N1))

WRITE(*,115)

115 FORMAT(/10X,'##### DBC PASSED #####')

C 调用DBC子程引入给定位移消除系数矩阵的奇异性,并显示提示信息

C

C 求解线性方程组KA=P

C

CALL GAUSS(NT,ND,NWD,NX,NX1,C(N3),C(N4))

WRITE(*,120)

120 FORMAT(/10X,'##### GAUSS PASSED #####')

C 调用GAUSS子程求解线性方程组并显示提示信息

C

C 计算单元应力

C

CALL STRESS(NE,NT,A1,A2,V,IA(1),C(N2),C(N4))

WRITE(*,125)

125 FORMAT(/10X,'##### STRESS PASSED #####')

C 调用STRESS子程输出各单元应力并显示提示信息

NX1=NX1-1

IF(NX1.GT.0) GOTO 80

C 剩余载荷组自减1;若还有载荷剩余则继续计算

GOTO 10

C 重新输入

END

C********************************************************************* C 1 *

C 子过程名称: INPUT *

C 子过程功能: 按顺序输入并输出计算所需数据*

C *

C********************************************************************* SUBROUTINE INPUT(NE,NG,NB,IJM,XY,MB,Z

C 形参说明

C 输入:

C NE 整型,结构单元总数

C NG 整型,结构结点总数

C NB 整型,给定位移的个数

C IJM(3,NE) 整型,单元结点编码数组

C XY(2,NG) 实型,结构结点坐标数组

C MB(2,N 整型,位移约束信息数组

C ZB(N 实型,位移约束数值数组

DIMENSION IJM(3,NE),XY(2,NG),MB(2,N,ZB(N

C

READ(5,*) ((IJM(I,L),I=1,3),L=1,NE)

C 输入单元结点编码数组

READ(5,*) ((XY(I,J),I=1,2),J=1,NG)

C 输入结构结点坐标数组

READ(5,*)((MB(I,L),I=1,2),L=1,N,(ZB(L),L=1,N

C 输入位移约束信息和数值数组

WRITE(6,20)((IJM(M,I),M=1,3),I=1,NE)

20 FORMA T(1X,4(3I4,3X),3I4)

C 输出单元结点编码数组

WRITE(6,40)((XY(M,I),M=1,2),I=1,NG)

40 FORMA T(1X,6E12.5)

C 输出结构结点坐标数组

RETURN

END

C********************************************************************* C 2 *

C 子过程名称:ABC *

C 子过程功能:根据各单元的结点坐标, *

C 计算并输出所有单元的各参数*

C *

C********************************************************************* SUBROUTINE ABC(NE,NG,NW A,IJM,XY,BCA)

C 形参说明

C 输入:

C NE 整型,结构单元总数

C NG 整型,结构结点总数

C NWA 整型,单元参数输出控制,0-不输出,1-输出

C IJM(3,NE) 整型,单元结点编码数组

C XY(2,NG) 实型,结构结点坐标数组

C 输出:

C BCA(7,NE) 实型,结构单元参数数组

C 变量说明

C X(2,5) 实型,当前计算单元的结点坐标数组

C B(7) 实型,当前计算单元的单元参数数组

DIMENSION IJM(3,NE),XY(2,NG),BCA(7,NE),X(2,5),B(7)

C

IF(NWA.EQ.1) WRITE(6,5)

5 FORMA T(/10X,'PARAMETERS OF ELEMENTS BCA(7,NE)'/)

C 若控制打开,则输出单元参数提示信息

DO 80 I=1,NE

C 遍历所有单元

DO 10 K=1,3

C 遍历单元内的3个结点

K1=IJM(K,I)

C 取结点在结构中对应的结点号

DO 10 J=1,2

X(J,K)=XY(J,K1)

C 得到当前结点的坐标值

10 CONTINUE

DO 20 J=1,2

X(J,4)=X(J,1)

X(J,5)=X(J,2)

20 CONTINUE

C 为编程方便,每单元多存两个结点坐标

DO 30 K=1,3

B(K)=X(2,K+1)-X(2,K+2)

C 计算Bm

B(K+3)=X(1,K+2)-X(1,K+1)

C 计算Cm

30 CONTINUE

B(7)=(B(1)*B(5)-B(4)*B(2))*0.5

C 计算单元面积A

IF(NWA.GT.0) WRITE(6,40)I,B

40 FORMA T(1X,'NE=',I3,/3X,7E10.4)

C 若输出控制打开,则输出单元号和对应的参数

IF(B(7).LE.0.0) GOTO 60

C 若当前单元面积为负,则出错

DO 50 J=1,7

BCA(J,I)=B(J)

50 CONTINUE

C 将当前单元参数数组中的值传送给输出数组

GOTO 80

60 WRITE(6,70)I,(IJM(J,I),J=1,3)

70 FORMA T(/5X,'ELEMENT',I5,5X,'AREA IS NONPOSITIVE',5X,'IJM',3I5)

STOP 333

C 显示出错信息并停止运行

80 CONTINUE

RETURN

END

C********************************************************************* C 3 *

C 子过程名称:KE *

C 子过程功能:根据结构单元参数数组,计算出*

C 指定单元的单元刚度矩阵*

C *

C********************************************************************* SUBROUTINE KE(IO,NE,NWE,T,A1,A2,V,EK,BCA)

C 形参说明

C 输入:

C IO 整型,计算单元编号

C NE 整型,结构单元总数

C NWE 整型,刚度矩阵输出控制,0-不输出,1-输出

C IJM(3,NE) 整型,单元结点编码数组

C XY(2,NG) 实型,结构结点坐标数组

C T 实型,单元厚度

C A1 实型,材料系数,A1=E/(4*(1-V**2))

C A2 实型,材料系数,A2=(1-V)/2

C V 实型,泊松比

C BCA(7,NE) 实型,结构单元参数数组

C 输出:

C EK(6,6) 实型,单元刚度矩阵

DIMENSION B(7),BCA(7,NE),EK(6,6)

DO 10 I=1,7

B(I)=BCA(I,IO)

10 CONTINUE

C 得到计算单元的参数

A=A1/B(7)*T

DO 20 I=1,3

DO 20 J=I,3

C 将单元刚度矩阵分块成3×3个子矩阵

I1=2*I

J1=2*J

EK(I1-1,J1-1)=A*(B(I)*B(J)+A2*B(I+3)*B(J+3))

EK(I1-1,J1)=A*(V*B(I)*B(J+3)+A2*B(I+3)*B(J))

EK(I1,J1-1)=A*(V*B(I+3)*B(J)+A2*B(I)*B(J+3))

EK(I1,J1)=A*(B(I+3)*B(J+3)+A2*B(I)*B(J))

C 计算每个子矩阵各元素的值

20 CONTINUE

DO 30 I=3,6

DO 30 J=1,I

EK(I,J)=EK(J,I)

30 CONTINUE

C 根据对称性得到左下角矩阵的值

IF(NWE.EQ.0) GOTO 60

C 若输出控制关闭,则直接结束子过程

WRITE(6,40) IO

40 FORMA T(/1X,'EK NE=',I5)

WRITE(6,50)EK

50 FORMA T(1X,6E11.4)

C 输出单元号和对应的刚度矩阵

60 RETURN

END

C********************************************************************* C 4 *

C 子过程名称:SUMK *

C 子过程功能:将指定单元的单元刚度矩阵集成到结构刚度*

C 矩阵中,结构刚度矩阵以二维等带宽方式存储*

C *

C********************************************************************* SUBROUTINE SUMK(IO,NE,ND,NT,IJM,SK,EK)

C 形参说明

C 输入:

C IO 整型,计算单元编号

C NE 整型,结构单元总数

C N

D 整型,结构刚度矩阵的半带宽

C NT 整型,结构刚度矩阵的阶数

C IJM(3,NE) 实型,单元结点编码数组

C EK(6,6) 实型,单元刚度矩阵

C 输出:

C SK(NT,ND) 实型,结构刚度矩阵

DIMENSION IJ(3),SK(NT,ND),IJM(3,NE),EK(6,6)

C

DO 10 I=1,3

IJ(I)=IJM(I,IO)

10 CONTINUE

C 取出计算单元的结点号

DO 20 I=1,3

DO 20 J=1,3

C 遍历单元刚度矩阵的3×3个子矩阵

IF(IJ(I).GT.IJ(J)) GOTO 20

C 如果是下三角元素,则不储存

M=2*IJ(I)-1

N=2*(IJ(J)-IJ(I))+1

C 得到在结构刚度矩阵中等带宽储存的行列码

MO=2*I-1

NO=2*J-1

C 得到对应在单元刚度矩阵中的行列码

SK(M,N)=SK(M,N)+EK(MO,NO)

SK(M,N+1)=SK(M,N+1)+EK(MO,NO+1)

SK(M+1,N)=SK(M+1,N)+EK(MO+1,NO+1)

IF(IJ(I).EQ.IJ(J)) GOTO 20

C 不存储主子块的下三角元素

SK(M+1,N-1)=SK(M+1,N-1)+EK(MO+1,NO)

C 将单元刚度矩阵的元素叠加到结构刚度矩阵中

20 CONTINUE

RETURN

END

C********************************************************************* C 5 *

C 子过程名称:CHECK *

C 子过程功能:检验结构刚度矩阵的主元并输出结构刚度矩阵, *

C 如果主元非正,则输出错误信息并停止运行*

C *

C********************************************************************* SUBROUTINE CHECK(NT,ND,NWK,SK)

C 形参说明

C 输入:

C NT 整型,结构刚度矩阵阶数

C N

D 整型,结构刚度矩阵半带宽

C NWK 整型,结构刚度矩阵输出控制,0-不输出,1-输出

C SK(NT,ND) 实型,结构刚度矩阵

C 变量说明

C M 整型,错误主元个数

DIMENSION SK(NT,ND)

C

IF(NWK.EQ.0) GOTO 30

WRITE(6,20) ((SK(I,J),I=1,NT),J=1,ND)

20 FORMA T(1X,5E13.6)

C 若输出控制打开,则输出结构刚度矩阵

30 M=0

C 置错误个数为0

DO 50 I=1,NT

C 遍历结构刚度矩阵各主元

IF(SK(I,1).GT.1E-10) GOTO 50

WRITE(6,40)I,SK(I,1)

40 FORMA T(/10X,'MAIN ELEMENT IS NONPOSITIVE NT=',I4,5X,E12.6)

M=M+1

C 若主元非正,则输出错误信息,并使错误个数+1

50 CONTINUE

IF(M.GT.0) GOTO 60

GOTO 70

60 STOP 444

C 若错误个数>0则停止运行

70 RETURN

END

C********************************************************************* C 6 *

C 子过程名称F *

C 子过程功能:将结点集中力装入等效载荷列阵, *

C 同时输出等效载荷列阵*

C *

C********************************************************************* SUBROUTINE PF(NF,NP,NT,NWP,F,MF,ZF)

C 形参说明

C 输入:

C NF 整型,坐标方向上集中载荷的个数

C NP 整型,作用均布侧压的边数

C NT 整型,等效载荷列阵元素个数

C NWP 整型,载荷输出控制,0-不输出,1-输出

C MF(2,NF) 整型,作用于结点上集中载荷的信息数组

C MF(1,I):第I个载荷作用的结点号

C MF(2,I):第I个载荷作用的方向,0-Y向,1-X向

C ZF(NF) 实型,作用于结点上集中载荷的值

C 输出:

C F(NT) 实型,等效载荷列阵

DIMENSION MF(2,NF),ZF(NF),F(NT)

C

READ(5,*) ((MF(I,L),I=1,2),L=1,NF),(ZF(L),L=1,NF)

C 输入集中载荷信息和数值数组

DO 40 I=1,NF

C 遍历所有集中载荷

N=2*MF(1,I)-MF(2,I)

C 得到载荷在结构等效载荷列阵中的对应顺序

F(N)=F(N)+ZF(I)

C 将集中载荷叠加到结构等效载荷列阵中

40 CONTINUE

RETURN

END

C********************************************************************* C 7 *

C 子过程名称P *

C 子过程功能:计算均布侧压的等效结点载荷并装入等效载荷列阵, *

C 同时输出等效载荷列阵*

C *

C********************************************************************* SUBROUTINE PP(NP,NT,NG,NWP,XY,F,MP,ZP)

C 形参说明

C 输入:

C NP 整型,作用均布侧压的边数

C NT 整型,等效载荷列阵元素个数

C NG 整型,结构结点总数

C NWP 整型,载荷输出控制,0-不输出,1-输出

C MP(2,NF) 整型,作用于单元边上均布载荷的信息数组

C MF(1,I):第I个载荷作用边的起始结点号

C MF(2,I):第I个载荷作用边的终止结点号

C ZP(NF) 实型,作用于单元边上均布载荷的值

C 输出:

C F(NT) 实型,等效载荷列阵

DIMENSION MP(2,NP),ZP(NP),XY(2,NG),F(NT)

C

READ(5,*) ((MP(I,L),I=1,2),L=1,NP),(ZP(L),L=1,NP)

C 输入均布载荷信息和数值数组

DO 40 I=1,NP

C 遍历所有均布载荷

N1=MP(1,I)

C 得到载荷的起始结点号

N2=MP(2,I)

C 得到载荷的终止结点号

PX=XY(2,N1)-XY(2,N2)

PY=XY(1,N2)-XY(1,N1)

PX=.5*ZP(I)*PX

PY=.5*ZP(I)*PY

C 得到等效结点载荷PX=qt(Yi-Yj)/2,PY=qt(Xi-Xj)/2

F(2*N1-1)=F(2*N1-1)+PX

F(2*N1)=F(2*N1)+PY

F(2*N2-1)=F(2*N2-1)+PX

F(2*N2)=F(2*N2)+PY

C 将均布载荷的等效结点载荷叠加到结构等效载荷列阵中

40 CONTINUE

RETURN

END

C********************************************************************* C 8 *

C 子过程名称BC *

C 子过程功能:引入给定位移的边界条件,消除系数矩阵的奇异性*

C *

C********************************************************************* SUBROUTINE DBC(NT,ND,NB,NX,NX1,A,B,MB,Z

C 形参说明

C 输入:

C NT 整型,系数矩阵阶数

C N

D 整型,系数矩阵的半带宽

C NB 整型,给定位移的个数

C NX 整型,载荷的总组数

C NX1 整型,载荷的剩余组数

C A(NT,ND) 实型,系数矩阵(兼输出)

C B(NT) 实型,等效结点载荷列阵(兼输出)

C MB(2,N 整型,给定位移的信息数组

C MB(1,I):第I个给定位移的结点号

C MB(2,I):第I个给定位移的方向,0-Y向,1-X向

C ZP(N 实型,给定位移的值

DIMENSION MB(2,N,ZB(N,A(NT,ND),B(NT)

C

DO 60 I=1,NB

C 遍历所有给定位移

N=2*MB(1,I)-MB(2,I)

C 取要修改的方程的序数

Z=ZB(I)

C 取对应位移的值

IF(ABS(Z).LT.1E-10) GOTO 20

C 若位移为0,用对角元素改1法,否则用对角元素乘大数法

IF(NX.NE.NX1) GOTO 10

C 若不是第1组载荷,则只在B中引入给定位移

A(N,1)=A(N,1)*1E+15

10 B(N)=A(N,1)*Z

C 对角元素乘大数,并修改对应的等效结点载荷

GOTO 60

C 以下为对角元素改1法

20 IF(NX.NE.NX1) GOTO 50

C 若不是第1组载荷,则只在B中引入给定位移

A(N,1)=1.0

C 将对角元素置1

DO 30 J=2,ND

A(N,J)=0.0

30 CONTINUE

C 将对应行元素置0

DO 40 K=2,ND

IF(N.LT.K) GOTO 50

M=N-K+1

A(M,K)=0.0

40 CONTINUE

C 将对应列元素置0

50 B(N)=0.0

C 等效结点载荷置0

60 CONTINUE

RETURN

END

C********************************************************************* C 9 *

C 子过程名称:GAUSS *

C 子过程功能:使用高斯消元法求解线性方程组*

C *

C********************************************************************* SUBROUTINE GAUSS(NT,ND,NWD,NX,NX1,A,

C 形参说明

C 输入:

C NT 整型,结构刚度矩阵阶数

C N

D 整型,结构刚度矩阵半带宽

C NW

D 整型,载荷向量输出控制,0-不输出,1-输出

C NX 整型,载荷的总组数

C NX1 整型,载荷的剩余组数

C A(NT,ND) 实型,系数矩阵

C B(NT) 实型,等效结点载荷列阵(兼输出)

C

DIMENSION A(NT,ND),B(NT)

C

C

C 消去过程

C

N=NT-1

IF(NX.EQ.NX1) GO TO 10

ASSIGN 50 TO M

GO TO 20

10 ASSIGN 30 TO M

20 DO 60 K=1,N

M1=ND-1

IF((M1).GT.(NT-K)) M1=NT-K

DO 60 L=1,M1

C=A(K,L+1)/A(K,1)

IF(ABS(C).LT.1E-18) GO TO 60

GO TO M,(30,50)

30 M2=ND-L

DO 40 J=1,M2

A(K+L,J)=A(K+L,J)-C*A(K,J+L)

40 CONTINUE

50 B(K+L)=B(K+L)-C*B(K)

60 CONTINUE

C

C 回代过程

C

B(NT)=B(NT)/A(NT,1)

DO 80 K=1,N

I=NT-K

M1=ND

C=B(I)

IF((K+1).LT.(ND)) M1=K+1

DO 70 J=2,M1

L=I+J-1

C=C-A(I,J)*B(L)

70 CONTINUE

B(I)=C/A(I,1)

80 CONTINUE

C

C 输出求解结果

C

IF(NWD.EQ.0)GOTO 150

N=NT/2

N11=N/2

IF(FLOAT(N11)+.3-FLOAT(N)/2.0.GT.1E-7)N=N-1

DO 140 I=1,N,2

NT2=NT/4

NT3=NT/2

FL1=FLOAT(NT2)+.3-FLOAT(NT3)/2

IF((FL1.LT.0).AND.(I.EQ.N)) GOTO 120

J=2*I-1

K=2*I

I1=I+1

J1=J+2

K1=K+2

WRITE(6,110) I,B(J),B(K),I1,B(J1),B(K1)

110 FORMAT(1X,2(I3,3X,E11.5,2X,E11.5,5X))

GOTO 140

120 J=2*I-1

K=2*I

WRITE(6,130)I,B(J),B(K)

130 FORMA T(1X,I3,3X,E11.5,2X,E11.5)

140 CONTINUE

150 RETURN

END

C********************************************************************* C 10 *

C 子过程名称:STRESS *

C 子过程功能:根据结构各结点的位移,输出各单元的*

C 单元应力,主应力和应力主方向*

C *

C********************************************************************* SUBROUTINE STRESS(NE,NT,A1,A2,V,IJM,BCA,F)

C 形参说明

C 输入:

C NE 整型,结构单元总数

C NT 整型,结点位移列阵元素个数

C A1 实型,材料系数,A1=E/(4*(1-V**2))

C A2 实型,材料系数,A2=(1-V)/2

C V 实型,泊松比

C IJM(3,NE) 整型,单元结点编码数组

C BCA(7,NE) 实型,结构单元参数数组

C F(NT) 实型,结构结点位移列阵

C 变量说明

C B(7) 实型,当前计算单元的单元参数数组

C R(6) 实型,当前计算单元的结点位移数组

C A 实型,A=E/(2*(1-V**2)*Ae)

C S1,S2,S3 实型,当前计算单元的应力σx,σy,τxy

C X1,X2 实型,当前计算单元的主应力σ1,σ2

C CTA 实型,当前计算单元的主应力方向

DIMENSION IJM(3,NE),BCA(7,NE),F(NT),B(7),R(6)

C

WRITE(6,5)

5 FORMA T(/,10X,' ',/)

DO 60 I=1,NE

C 遍历所有单元

S1=0.

S2=0.

S3=0.

C 当前单元的应力值初始化

DO 20 J=1,7

B(J)=BCA(J,I)

C 取当前单元的单元参数

20 CONTINUE

A=2*A1/B(7)

C 得到E/(2*(1-V**2)*Ae)

DO 30 J=1,3

C 遍历单元内的3个结点

N=IJM(J,I)*2

R(2*J-1)=F(N-1)

R(2*J)=F(N)

C 取对应结点的结点位移

30 CONTINUE

DO 40 J=1,3

K=2*J

S1=S1+A*(B(J)*R(K-1)+V*B(J+3)*R(K))

S2=S2+A*(V*B(J)*R(K-1)+B(J+3)*R(K))

S3=S3+A*A2*(B(J+3)*R(K-1)+B(J)*R(K))

40 CONTINUE

C 计算当前单元的应力

C σx=A*Σ(Bi*Ui+V*Ci*Vi),σx=A*Σ(V*Bi*Ui+Ci*Vi)

C τxy=A*Σ(A2*Ci*Ui+A2*Bi*Vi)

P=.5*(S1+S2)

Q=.5*(S1-S2)

X1=P+SQRT(Q*Q+S3*S3)

X2=2*P-X1

C 计算当前单元的主应力

CTA=0.

IF (S3.GT.0) CTA=A TAN((X1-S1)/S3)

C 计算当前单元的主应力方向

WRITE(6,50) S1,S2,S3,X1,X2,CTA

50 FORMA T(1X,E10.4,2X,E10.4,2X,E10.4,2X,E10.4,2X,E10.4,2X,F8.4)

C 按顺序输出当前单元的σx,σy,τxy,σ1,σ2和主应力方向

60 CONTINUE

RETURN

END

matlab源代码实例

1.硬币模拟试验 源代码: clear; clc; head_count=0; p1_hist= [0]; p2_hist= [0]; n = 1000; p1 = 0.3; p2=0.03; head = figure(1); rand('seed',sum(100*clock)); fori = 1:n tmp = rand(1); if(tmp<= p1) head_count = head_count + 1; end p1_hist (i) = head_count /i; end figure(head); subplot(2,1,1); plot(p1_hist); grid on; hold on; xlabel('重复试验次数'); ylabel('正面向上的比率'); title('p=0.3试验次数N与正面向上比率的函数图'); head_count=0; fori = 1:n tmp = rand(1); if(tmp<= p2) head_count = head_count + 1; end p2_hist (i) = head_count /i; end figure(head); subplot(2,1,2); plot(p2_hist); grid on; hold on; xlabel('重复试验次数'); ylabel('正面向上的比率'); title('p=0.03试验次数N与正面向上比率的函数图'); 实验结果:

2.不同次数的随机试验均值方差比较 源代码: clear ; clc; close; rand('seed',sum(100*clock)); Titles = ['n=5时' 'n=20时' 'n=25时' 'n=50时' 'n=100时']; Titlestr = cellstr(Titles); X_n_bar=[0]; %the samples of the X_n_bar X_n=[0]; %the samples of X_n N=[5,10,25,50,100]; j=1; num_X_n = 100; num_X_n_bar = 100; h_X_n_bar = figure(1);

数据结构实验指导书(2016.03.11)

《数据结构》实验指导书 郑州轻工业学院 2016.02.20

目录 前言 (3) 实验01 顺序表的基本操作 (7) 实验02 单链表的基本操作 (19) 实验03 栈的基本操作 (32) 实验04 队列的基本操作 (35) 实验05 二叉树的基本操作 (38) 实验06 哈夫曼编码 (40) 实验07 图的两种存储和遍历 (42) 实验08 最小生成树、拓扑排序和最短路径 (46) 实验09 二叉排序树的基本操作 (48) 实验10 哈希表的生成 (50) 实验11 常用的内部排序算法 (52) 附:实验报告模板 .......... 错误!未定义书签。

前言 《数据结构》是计算机相关专业的一门核心基础课程,是编译原理、操作系统、数据库系统及其它系统程序和大型应用程序开发的重要基础,也是很多高校考研专业课之一。它主要介绍线性结构、树型结构、图状结构三种逻辑结构的特点和在计算机内的存储方法,并在此基础上介绍一些典型算法及其时、空效率分析。这门课程的主要任务是研究数据的逻辑关系以及这种逻辑关系在计算机中的表示、存储和运算,培养学生能够设计有效表达和简化算法的数据结构,从而提高其程序设计能力。通过学习,要求学生能够掌握各种数据结构的特点、存储表示和典型算法的设计思想及程序实现,能够根据实际问题选取合适的数据表达和存储方案,设计出简洁、高效、实用的算法,为后续课程的学习及软件开发打下良好的基础。另外本课程的学习过程也是进行复杂程序设计的训练过程,通过算法设计和上机实践的训练,能够培养学生的数据抽象能力和程序设计能力。学习这门课程,习题和实验是两个关键环节。学生理解算法,上机实验是最佳的途径之一。因此,实验环节的好坏是学生能否学好《数据结构》的关键。为了更好地配合学生实验,特编写实验指导书。 一、实验目的 本课程实验主要是为了原理和应用的结合,通过实验一方面使学生更好的理解数据结构的概念

员工入职承诺书

员工入职承诺书 致:**************有限公司 为明确本人在工作期间之责任和职业道德,我愿向公司做出以下承诺: 一、本人承诺入职并与公司签订劳动合同时,所提供的资料信息都是真实可查的,这些资料信息包括但不限于:身份证明、户籍证明、离职证明、学历证明、各项专业证书、照片、历史背景、工作经验、求职简历与入职登记表中的信息及其他由本人提供的资料信息。如在签署劳动合同之后,公司发现本人提供的上述信息有欺诈成分的,本人同意公司随时解除劳动合同,并无需支付任何经济补偿。 二、本人承诺在与公司签订劳动合同时,与任何用人单位之间不存在劳动关系,并且不存在任何没有处理完的法律责任。如果该承诺不属实,则本人与原用人单位之间的劳动纠纷由本人独立承担相应的责任,公司不承担任何连带责任,并有权随时解除本人的劳动合同。 三、本人承诺在与公司签订劳动合同时,公司规章制度、员工手册和个人岗位说明书我已学习和完全理解,并愿意在劳动合同履行的过程中严格遵守和履行各项制度;若有违反,愿意接受公司相关处罚,触犯法律的,愿承担法律责任。 四、本人承诺在任职期间,不在外兼职,并严格遵守公司规定的作息时间,因工作需要自愿服从加班的安排和接受岗位调配。本人清楚公司加班报批流程,日常加班审批,除部门主管签字确认外,还需经人力资源部部长签字确认,否则,加班视为无效。 五、本人承诺在任职期间,自觉维护公司荣誉,不利用职务之便贪腐舞弊,不泄露和探听薪资或商业秘密,不伪造或盗用公司印信文件等不正当手段来从事其他活动。 六、本人承诺在任职期间,自觉维护公司利益,不侵占公司、同事或客人的财物、不贪占、无故损毁公司财物,对与本人发生的相关业务经费,愿意接受公司的调查和处理。 七、本人承诺在任职期间,遵守公司保密规定,保守公司秘密,不将公司的任何材料带离工作场所,不向他人泄露公司秘密,保证不散播不利于公司的言论,更不做中伤公司的事,自觉维护公司声誉。 八、本人承诺在任职期间,本人保证遵守公司薪酬保密规定,不向他人透露自己薪酬或探听他人薪酬;如有违反,则公司可以视情节轻重给予本人负激励、降职或解除劳动合同的行政处分。 九、本人承诺在任职期间,因故申请离职时,我将提前一个月以书面形式呈报公司,并在公司为我职位招聘到合适的接替人员,办妥相关移交手续后离职。如擅自离职,甘愿接受公司处罚。 十、本人离职后,不得单独或联合他人实施有损公司利益和诋毁公司形象的行为,不得

matlab语音识别系统(源代码)最新版

matlab语音识别系统(源代码)最新版

目录 一、设计任务及要求 (1) 二、语音识别的简单介绍 2.1语者识别的概念 (2) 2.2特征参数的提取 (3) 2.3用矢量量化聚类法生成码本 (3) 2.4VQ的说话人识别 (4) 三、算法程序分析 3.1函数关系 (4) 3.2代码说明 (5) 3.2.1函数mfcc (5) 3.2.2函数disteu (5) 3.2.3函数vqlbg (6) 3.2.4函数test (6) 3.2.5函数testDB (7) 3.2.6 函数train (8) 3.2.7函数melfb (8) 四、演示分析 (9) 五、心得体会 (11) 附:GUI程序代码 (12)

一、设计任务及要求 用MATLAB实现简单的语音识别功能; 具体设计要求如下: 用MATLAB实现简单的数字1~9的语音识别功能。 二、语音识别的简单介绍 基于VQ的说话人识别系统,矢量量化起着双重作用。在训练阶段,把每一个说话者所提取的特征参数进行分类,产生不同码字所组成的码本。在识别(匹配)阶段,我们用VQ方法计算平均失真测度(本系统在计算距离d时,采用欧氏距离测度),从而判断说话人是谁。 语音识别系统结构框图如图1所示。 图1 语音识别系统结构框图 2.1语者识别的概念 语者识别就是根据说话人的语音信号来判别说话人的身份。语音是人的自然属性之一,由于说话人发音器官的生理差异以及后天形成的行为差异,每个人的语音都带有强烈的个人色彩,这就使得通过分析语音信号来识别说话人成为可能。用语音来鉴别说话人的身份有着许多独特的优点,如语音是人的固有的特征,不会丢失或遗忘;语音信号的采集方便,系统设备成本低;利用电话网络还可实现远程客户服务等。因此,近几年来,说话人识别越来越多的受到人们的重视。与其他生物识别技术如指纹识别、手形识别等相比较,说话人识别不仅使用方便,而且属于非接触性,容易被用户接受,并且在已有的各种生物特征识别技术中,是唯一可以用作远程验证的识别技术。因此,说话人识别的应用前景非常广泛:今天,说话人识别技术已经关系到多学科的研究领域,不同领域中的进步都对说话人识别的发展做出了贡献。说话人识别技术是集声学、语言学、计算机、信息处理和人工智能等诸多领域的一项综合技术,应用需求将十分广阔。在吃力语音信号的时候如何提取信号中关键的成分尤为重要。语音信号的特征参数的好坏直接导致了辨别的准确性。

数据结构实验指导书

《数据结构》实验指导书 实验一顺序表 实验目的: 熟悉顺序表的逻辑特性、存储表示方法和顺序表的基本操作。 实验要求: 了解并熟悉顺序表的逻辑特性、存储表示方法和顺序表的基本操作的实现和应用。 实验内容: 1、编写程序实现在线性表中找出最大的和最小的数据元素,并符合下列要求: (1)设数据元素为整数,实现线性表的顺序存储表示。 (2)从键盘输入10个数据元素,利用顺序表的基本操作建立该表。 (3)利用顺序表的基本操作,找出表中最大的和最小的数据元素(用于比较的字段为整数)。 2、编写一个程序实现在学生成绩中找出最高分和最低分,并符合下列要求: (1)数据元素为学生成绩(含姓名、成绩等字段)。 (2)要求尽可能少地修改第一题的程序来得到此题的新程序,即要符合第一题的所有要求。(这里用于比较的字段为分数) 实验二链表 实验目的: 熟悉链表的逻辑特性、存储表示方法的特点和链式表的基本操作。 实验要求: 了解并熟悉链式表的逻辑特性、存储表示方法和链式表的基本操作的实现和应用。

实验内容: 1、编写一个程序建立存放学生成绩的有序链表并实现相关操作,要求如下: (1)设学生成绩表中的数据元素由学生姓名和学生成绩字段组成,实现这样的线性表的链式存储表示。 (2)键盘输入10个(或若干个,特殊数据来标记输入数据的结束)数据元素,利用链表的基本操作建立学生成绩单链表,要求该表为有序表 并带有头结点。(用于比较的字段为分数)。 (3)输入关键字值x,打印出表中所有关键字值<=x的结点。(用于比较的关键字字段为分数)。 (4)输入关键字值x,删除表中所有关键字值<=x的结点。(用于比较的关键字字段为分数)。 (5)输入关键字值x,并插入到表中,使所在的链表仍为有序表。(用于比较的字段为分数)。 实验三栈的应用 实验目的: 熟悉栈的逻辑特性、存储表示方法和栈的基本操作。 实验要求: 了解并熟悉栈的逻辑特性、顺序和链式存储表示方法和栈的基本操作的实现和应用。 实验内容: (1)判断一个表达式中的括号(仅有一种括号,小、中或大括号) 是否配对。编写并实现它的算法。 (2)用不同的存储方法,求解上面的问题。 (3)* 若表达式中既有小括号,又有大括号(或中括号),且允许 互相嵌套,但不能交叉,写出判断这样的表达式是否合法的算 法。如 2+3*(4-{5+2}*3)为合法;2+3*(4-{5+2 * 3} 、 2+3*(4-[5+2 * 3)为不合法。

员工入职承诺书范本(超实用)

员工入职承诺书 本人,于年月日入职,在公司/部门任职岗位,为明确本人在工作期间之责任和职业道德,我愿向公司做出以下承诺: 一、本人在入职时保证个人资料、相关证件真实有效,并已接受相关医院体制检查,在过往单位工作过程中无任何职业病病史,也未存在任何职业病倾向,更无职业病潜伏状况。 二、本人已与原工作单位解除劳务关系,无劳资或经济纠纷等相关事宜,无任何竞业限制约定,若出现原单位追究我本人相关责任,均与公司无任何关系,给公司带来的损失,将由我本人承担。 三、公司规章制度和岗位职责我已学习和明确,将严格遵守和履行各项制度;若有违反,愿意接受公司相关处罚,触犯法律的,愿承担法律责任。 四、任职期间,不在外兼职,并严格遵守公司规定的作息时间,因工作需要将服从加班的安排和接受岗位调配。。 五、自觉维护公司荣誉,不利用职务之便贪污舞弊,不泄露和探听薪资,不伪造或盗用公司印信文件等不正当手段来从事其他活动。 六、自觉维护公司利益,不侵占公司、同事或客人的财物、不贪占、无故损毁公司财物,对与本人发生的相关业务经费,愿意接受公司的调查和处理。 七、遵守公司保密规定,保守公司秘密,不将公司的任何材料带离工作场所,不向他人泄露公司秘密,保证不散播不利于公司的言论,更不做中伤公司的事,自觉维护公司声誉。 八、在工作时间内必须穿戴公司提供的工作服等劳保用品,并保证整洁;中途辞职,所发放的劳保用品需要上交,若遗失,则按价赔偿。 九、个人意见或建议,保证做到逐级反映;当反映意见或建议未获解决或采纳时,保证以书面形式向上级反映。如确需当面反映时,保证在工作结束后进行。 十、因故申请离职时,我将提前一个月以书面形式呈报公司,并办妥相关移交手续。如擅自离职,甘愿将本人未领的所有工资、福利等作为违约处罚。 十一、离职后,不得单独或联合他人实施有损公司利益和形象的行为,不得直接、间接或变相利用未经允许的公司品牌和资源的任何业务;若有违背,则愿承担一切法律责任。 以上承诺,系本人真实意愿之反映。 承诺人: ______年____月____日

详细设计文档 (含系统说明书,源代码说明书)

东北师范大学 外语培训机构数据库详细设计文档 雷蕾张丽云丁鼎孔祥楠 2009-11-1

目录 第一章引言 (1) 1.1项目说明 (1) 1.2文档目的 (1) 1.3参考资料 (1) 第二章设计流程图 (3) 2.1注册功能流程图 (3) 2.2用户登录功能流程图 (4) 2.3搜索课程功能流程图 (5) 2.3前台用户下载资料或留言功能流程图 (5) 2.3后台管理员功能流程图 (6) 第三章类规格说明 (7) 2.1模块类图 (7) 3.2 jsp页面说明 (8) 3.3类说明 (10) 第四章程序设计说明 (15)

第一章引言 1.1项目说明 1、在互联网络高速发展的今天,网站是企业在因特网上全面介绍公司信息的一个发布平台:可以把任何想让人们知道的东西放入网站,如公司简介、公司的厂房、生产设施、研究机构、产品的外观、功能及其使用方法等,都可以展示于网上。 2、网站树立培训机构形象,让别人看到自己,展示培训机构的实力。培训机构就能够在国内和世界"亮相",无疑是一种宣传机构、产品和服务的机会。从广告意义上看,培训机构网站事关机构形象建设,没有网站也谈不上机构形象。 3、主动抢占先机,培训机构建设自己的网站,这是时代发展的必然,任何一家培训机构要想跟上时代发展的潮流,必须要有展示自己的一个信息平台。为了不被竞争对手建立网站抢占先机,为了不落后于时代潮流,应该考虑建站的必要性。 4、可以扩大业务范围,可以与潜在客户建立商业联系:这是该网址最重要的功能之一,也是为什么那么多的国外企业非常重视网站建设的根本原因。现在,世界各国大的采购商主要都是利用互联网络来寻找新的产品和新的供应商,因为这样做费用最低,效率最高。原则上,全世界任何地方的人,只要知道了公司的网址,就可以看到公司的产品。因此,关键在于如何将公司网址推介出去。一种非常实用而有效的方法是将公司的网址登记在全球著名的搜索引擎(如Google,百度,雅虎等)上,并选择与公司的产品及服务有关的关键字,则可以使潜在的客户能够容易地找到公司和产品。这正是国际商业上通行的做法,而且被实践证明是十分有效的。 5、给广大热爱外语,渴望了解外语信息的群体提供一个方便快捷的平台。 1.2文档目的 该文档的阅读群体是该项目组的全部成员,为了让所有成员能对本网站的数据库构成,数据流向有个深刻的了解,方便在以后的编程中合理运用。 1.3参考资料 数据库原理及应用教程2版 北京人民邮电出版社 著者:陈志泊王春玲 数据库原理与应用 北京清华大学出版社 著者:狄文辉宋真君白劲波

基于MATLAB的潮流计算源程序代码(优.选)

%*************************电力系统直角坐标系下的牛顿拉夫逊法潮流计算********** clear clc load E:\data\IEEE014_Node.txt Node=IEEE014_Node; weishu=size(Node); nnum=weishu(1,1); %节点总数 load E:\data\IEEE014_Branch.txt branch=IEEE014_Branch; bwei=size(branch); bnum=bwei(1,1); %支路总数 Y=(zeros(nnum)); Sj=100; %********************************节点导纳矩阵******************************* for m=1:bnum; s=branch(m,1); %首节点 e=branch(m,2); %末节点 R=branch(m,3); %支路电阻 X=branch(m,4); %支路电抗 B=branch(m,5); %支路对地电纳 k=branch(m,6); if k==0 %无变压器支路情形 Y(s,e)=-1/(R+j*X); %互导纳 Y(e,s)=Y(s,e); end if k~=0 %有变压器支路情形 Y(s,e)=-(1/((R+j*X)*k)); Y(e,s)=Y(s,e); Y(s,s)=-(1-k)/((R+j*X)*k^2); Y(e,e)=-(k-1)/((R+j*X)*k); %对地导纳 end Y(s,s)=Y(s,s)-j*B/2; Y(e,e)=Y(e,e)-j*B/2; %自导纳的计算情形 end for t=1:nnum; Y(t,t)=-sum(Y(t,:))+Node(t,12)+j*Node(t,13); %求支路自导纳 end G=real(Y); %电导 B=imag(Y); %电纳 %******************节点分类************************************* * pq=0; pv=0; blancenode=0; pqnode=zeros(1,nnum); pvnode=zeros(1,nnum); for m=1:nnum; if Node(m,2)==3 blancenode=m; %平衡节点编号 else if Node(m,2)==0 pq=pq+1; pqnode(1,pq)=m; %PQ 节点编号 else if Node(m,2)==2 pv=pv+1; pvnode(1,pv)=m; %PV 节点编号 end end end end %*****************************设置电压初值********************************** Uoriginal=zeros(1,nnum); %对各节点电压矩阵初始化 for n=1:nnum Uoriginal(1,n)=Node(n,9); %对各点电压赋初值 if Node(n,9)==0;

2017数据结构实验指导书

《数据结构》实验指导书 贵州大学 电子信息学院 通信工程

目录 实验一顺序表的操作 (3) 实验二链表操作 (8) 实验三集合、稀疏矩阵和广义表 (19) 实验四栈和队列 (42) 实验五二叉树操作、图形或网状结构 (55) 实验六查找、排序 (88) 贵州大学实验报告 (109)

实验一顺序表的操作 实验学时:2学时 实验类型:验证 实验要求:必修 一、实验目的和要求 1、熟练掌握线性表的基本操作在顺序存储和链式存储上的实现。 2、以线性表的各种操作(建立、插入、删除等)的实现为重点。 3、掌握线性表的动态分配顺序存储结构的定义和基本操作的实现。 二、实验内容及步骤要求 1、定义顺序表类型,输入一组整型数据,建立顺序表。 typedef int ElemType; //定义顺序表 struct List{ ElemType *list; int Size; int MaxSize; }; 2、实现该线性表的删除。 3、实现该线性表的插入。 4、实现线性表中数据的显示。 5、实现线性表数据的定位和查找。 6、编写一个主函数,调试上述算法。 7、完成实验报告。 三、实验原理、方法和手段 1、根据实验内容编程,上机调试、得出正确的运行程序。 2、编译运行程序,观察运行情况和输出结果。 四、实验条件 运行Visual c++的微机一台 五、实验结果与分析 对程序进行调试,并将运行结果进行截图、对所得到的的结果分析。 六、实验总结 记录实验感受、上机过程中遇到的困难及解决办法、遗留的问题、意见和建议等,并将其写入实验报告中。

【附录----源程序】 #include #include using namespace std; typedef int ElemType; struct List { ElemType *list; int Size; int MaxSize; }; //初始化线性表 bool InitList(List &L) { L.MaxSize=20; L.list=new ElemType[L.MaxSize]; for(int i=0;i<20&&L.list==NULL;i++) { L.list=new ElemType[L.MaxSize]; } if(L.list==NULL) { cout<<"无法分配内存空间,退出程序"<L.Size+1||pos<1) { cout<<"位置无效"<

员工入职承诺书 实用版

XXXXXX股份有限公司 员工入职承诺书 XXXXXXXXXXX股份有限公司(以下简称公司): 本人(身份证号码),于年月日正式入职,在部(店)部门任职岗位,为明确本人在工作期间之责任和职业道德,我愿向公司做出以下承诺: 一、本人保证在入职时提供的个人资料信息(包含但不限于:个人身份信息、学历信息、工作经历、通信地址、联系方式、婚姻状况、政治面貌、健康情况、社保公积金缴纳情况等)、相关证件(包含但不限于:身份证件、学历证明、健康证明、资格证书等)真实、准确、有效。一经核实本人提供虚假材料,或未能在入职后一个月内提交《入职须知》中规定的有效入职资料,公司有权依据《劳动合同法》之规定,即时解除与本人的劳动合同关系,且不支付任何经济补偿金。 二、本人入职前已接受相关医院体检检查,无传染性疾病、精神疾病或其它影响岗位职责正常开展的疾病;在过往单位工作过程中无任何职业病病史,也未存在任何职业病倾向,更无职业病潜伏状况。 三、本人已与原工作单位解除劳动合同关系,办理完毕各项离职交接手续,无劳资或经济纠纷等相关事宜,无任何竞业限制约定。若出现原单位追究我本人相关责任,均与公司极其分(子)公司无任何关系,给公司带来的相关损失(包括但不限于:经济损失、声誉损失),将由我本人全额承担。 四、劳动合同期内,本人严格遵守《劳动法》、《劳动合同法》的规定,不与其他单位建立劳动或劳务合同关系,若因双重或多重劳动或劳务关系产生的相关纠纷,其后果及各项损失均由本人承担,与公司无关。 五、公司规章制度(包含但不限于:《企业文化》、《人事管理制度》、《考勤制度》、《员工奖惩条例》、《十大禁令》、《薪酬福利制度》、《绩效考核办法》、《薪资保密制度》、《安全生产及管理》等)以及岗位职责,本人已学习和明确,并严格遵守和履行公司的各项规章制度,并愿意在劳动合同履行的过程中及时查收、阅知、学习各项新颁发的规章制度,且受其约束。若有违反,愿意接受公司相关处罚;触犯法律的,愿承担法律责任。 六、自觉维护公司荣誉,不利用职务之便贪污舞弊,不泄露和探听薪资及其他公司秘密,不伪造或盗用公司印信文件等不正当手段来从事其他活动;自觉维护公司利益,不侵占公司、同事、供应商、及消费者的财物,不贪占、无故损毁公司财物,对与本人发生的相关业务经费,愿意接受公司的调查和处理。 七、遵守公司保密规定,保守公司秘密(包括但不限于:薪资秘密、交易秘密、经营秘密、管理秘密、技术秘密等),不将公司的任何涉密材料带离工作场所,不向他人泄露公司秘密,保证不散播不利于公司的言论,更不做中伤公司或同事的事,自觉维护公司声誉。 八、劳动合同期内,认可并积极配合公司各项考核及考核结果的相关处理意见;因工作需要将服从公司加班安排或接受岗位调配。 九、个人意见或建议,保证做到逐级反映;当反映意见或建议未获解决或采纳时,保证以书面形式向上级反映;如确需当面反映时,保证在工作结束后进行。 十、因故申请离职时,我将提前一个月(试用期提前3天)以书面形式呈报公司人力资源部,并办妥相关移交手续。如未按法定时间要求履行提前提交书面离职申请而擅自提前离职或离岗,或未按规定办理完毕各项离职交接手续,甘愿将本人未领的所有工资、福利等作为违约处罚。 十一、离职后,不得单独或联合他人实施有损公司利益和形象的行为,不得直接、间接或变相利用未经允许的公司品牌和资源的任何业务;若有违背,则愿承担一切法律责任。 如有违反上述承诺,本人将接受公司包括但不限于:降职、降薪(级)、停职(薪)、转岗、各类处分乃至解除劳动合同的处理意见;本承诺书作为劳动合同附件,与劳动合同具有同等法律效力,自本人签字确认之日起生效。 以上内容如无疑问,请将加框内容复写: 承诺人:确认时间:______年____月____日

代码说明书

系统编码规范 1.目的 为了统一开发过程中关于代码编写时的编写规范和具体开发工作时的编程规范,保证代码的一致性,便于交流和维护,特制定此规范。 2.适用范围 本规范适用于开发组全体人员,为详细设计,代码编写和代码审核提供参考和依据。 3.代码格式 在编写代码过程中,建议遵循以下规则。 (1)缩进规则:使用四个空格作为每层次代码的缩进值。 (2)在括号对对齐的位置垂直对齐左右括号,如: For(i=0;i++) { …. } (3)沿逻辑结构行缩进代码,如:

If…then If…then … Else … End if Else … End if (4)为了防止在阅读代码时左右滚动代码编辑器,每行代码或注释不得超过一个显示屏。 (5)当一行分别为几行时,通过将串联运算符放在每行的末尾而不是开头,清楚地表示没有后面的行是不完整的。 (6)Case 规则:default case 总应该存在,如果不允许到达,则应该保证:若到达了就会触发一个错误。Case的选择条件最好使用int或string类型。 (7)对齐规则:变数的申明和初始化都应对齐。

4.注释规范 4.1. 块注释 //用户名非空 验证+长度验证 +合法性验证 function checkUserName(){ var name = document.myform1.txtUser; if(name.value==""){ alert("请输入用户名"); name.focus(); return false; }else if(name.value.length<4||name.value.length>16){// 用户名长度验证 alert("用户名输入的长度4-16个字符"); name.select(); return false; } 4.2. 行注释 用户名非 空验证+长 度验证+合 法性验证 function checkUserName(){ var name = document.myform1.txtUser; if(name.value==""){ alert("请输入用户名"); name.focus(); return false; }else if(name.value.length<4||name.value.length>16){//用户名 长度验证 alert("用户名输入的长度4-16个字符"); name.select(); return false;

《数据结构》实验指导书

《数据结构》实验指导书 实验类别:课内实验实验课程名称:数据结构 实验室名称:软件工程实验室实验课程编号:N02070601 总学时:64 学分: 4 适用专业:计算机科学与技术、网络工程、物联网工程、数字媒体专业 先修课程:计算机科学导论、离散数学 实验在教学培养计划中地位、作用: 数据结构是计算机软件相关专业的主干课程,也是计算机软硬件专业的重要基础课程。数据结构课程实验的目的是通过实验掌握数据结构的基本理论和算法,并运用它们来解决实际问题。数据结构课程实验是提高学生动手能力的重要的实践教学环节,对于培养学生的基本素质以及掌握程序设计的基本技能并养成良好的程序设计习惯方面发挥重要的作用。 实验一线性表的应用(2学时) 1、实验目的 通过本实验,掌握线性表链式存储结构的基本原理和基本运算以及在实际问题中的应用。 2、实验内容 建立某班学生的通讯录,要求用链表存储。 具体功能包括: (1)可以实现插入一个同学的通讯录记录; (2)能够删除某位同学的通讯录; (3)对通讯录打印输出。 3、实验要求 (1)定义通讯录内容的结构体; (2)建立存储通讯录的链表结构并初始化; (3)建立主函数: 1)建立录入函数(返回主界面) 2)建立插入函数(返回主界面) 3)建立删除函数(返回主界面) 4)建立输出和打印函数(返回主界面) I)通过循环对所有成员记录输出 II)输出指定姓名的某个同学的通讯录记录 5)退出 实验二树的应用(2学时) 1、实验目的 通过本实验掌握二叉排序树的建立和排序算法,了解二叉排序树在实际中的应用并熟练运用二叉排序树解决实际问题。 2、实验内容 建立一个由多种化妆品品牌价格组成的二叉排序树,并按照价格从低到高的顺序 打印输出。 3、实验要求 (1)创建化妆品信息的结构体; (2)定义二叉排序树链表的结点结构; (3)依次输入各类化妆品品牌的价格并按二叉排序树的要求创建一个二叉排序树链表;(4)对二叉排序树进行中序遍历输出,打印按价格从低到高顺序排列的化妆品品牌信息。 实验三图的应用(2学时)

公司员工入职承诺书范文

公司员工入职承诺书范文 公司员工入职一般都会签订一份承诺书,下面小编为大家精心整理的公司员工入职承诺书,希望可以帮到大家 【公司员工入职承诺书一】本人_________,于_____年_____月_____日入职,在__________________公司_____部门任职_____岗位,为明确本人在工作期间之责任和职业道德,我愿向公司做出以下承诺: 一、本人承诺入职并与公司签订劳动合同时,所提供的资料信息都是真实可查的,这些资料信息包括但不限于:身份证明、户籍证明、离职证明、学历证明、各项专业证书、照片、历史背景、工作经验、求职简历与入职登记表中的信息及其他由本人提供的资料信息。如在签署劳动合同之后,公司发现本人提供的上述信息有欺诈成分的,本人同意公司随时解除劳动合同,并无需支付任何经济补偿。 二、本人承诺在与公司签订劳动合同时,与任何用人单位之间不存在劳动关系,并且不存在任何没有处理完的法律责任。如果该承诺不属实,则本人与原用人单位之间的劳动纠纷由本人独立承担相应的责任,公司不承担任何连带责任,并有权随时解除本人的劳动合同。 三、本人承诺在与公司签订劳动合同时,公司规章制度和岗位职责我已学习和明确,并愿意在劳动合同履行的过程中严格遵守和履行各项制度;若有违反,愿意接受公司相关处罚,触犯法律的,愿承担法律责任。

四、本人承诺在任职期间,不在外兼职,并严格遵守公司规定的作息时间,因工作需要将服从加班的安排和接受岗位调配。 五、本人承诺在任职期间,自觉维护公司荣誉,不利用职务之便贪污舞弊,不泄露和探听薪资,不伪造或盗用公司印信文件等不正当手段来从事其他活动。 六、本人承诺在任职期间,自觉维护公司利益,不侵占公司、同事或客人的财物、不贪占、无故损毁公司财物,对与本人发生的相关业务经费,愿意接受公司的调查和处理。 七、本人承诺在任职期间,遵守公司保密规定,保守公司秘密,不将公司的任何材料带离工作场所,不向他人泄露公司秘密,保证不散播不利于公司的言论,更不做中伤公司的事,自觉维护公司声誉。 八、本人承诺在任职期间,在工作时间内必须穿戴公司提供的工作服等劳保用品,并保证整洁;中途辞职,所发放的劳保用品需要上交,若遗失,则按价赔偿。 九、本人承诺在任职期间,个人意见或建议,保证做到逐级反映;当反映意见或建议未获解决或采纳时,保证以书面形式向上级反映。如确需当面反映时,保证在工作结束后进行。 十、本人承诺在任职期间,本人保证遵守公司薪酬保密规定,不向他人透露自己薪酬或探听他人薪酬;如有违反,则公司可以视情节轻重给予本人罚款、降职或解除劳动合同的行政处分。 十一、本人承诺在任职期间,因故申请离职时,我将提前一个月以书面形式呈报公司,并在公司为我职位招聘到合适的接替人员,办

源代码是什么

源代码是什么 源代码(也称源程序),是指一系列人类可读的计算机语言指令。在现代程序语言中,源代码可以是以书籍或者磁带的形式出现,但最为常用的格式是文本文件,这种典型格式的目的是为了编译出计算机程序。计算机源代码的最终目的是将人类可读的文本翻译成为计算机可以执行的二进制指令,这种过程叫做编译,通过编译器完成。 代码组合 源代码作为软件的特殊部分,可能被包含在一个或多个文件中。一个程序不必用同一种格式的源代码书写。例如,一个程序如果有C语言库的支持,那么就可以用C语言;而另一部分为了达到比较高的运行效率,则可以用汇编语言编写。较为复杂的软件,一般需要数十种甚至上百种的源代码的参与。为了降低种复杂度,必须引入一种可以描述各个源代码之间联系,并且如何正确编译的系统。在这样的背景下,修订控制系统(RCS)诞生了,并成为研发者对代码修订的必备工具之一。还有另外一种组合:源代码的编写和编译分别在不同的平台上实现,专业术语叫做软件移植。 质量 对于计算机而言,并不存在真正意义上的“好”的源代码;然而作为一个人,好的书写习惯将决定源代码的好坏。源代码是否具有可读性,成为好坏的重要标准。软件文档则是表明可读性的关键。 作用 源代码主要功用有如下2种作用: 生成目标代码,即计算机可以识别的代码。 对软件进行说明,即对软件的编写进行说明。为数不少的初学者,甚至少数有经验的程序员都忽视软件说明的编写,因为这部分虽然不会在生成的程序中直接显示,也不参与编译。但是说明对软件的学习、分享、维护和软件复用都有巨大的好处。因此,书写软件说明在业界被认为是能创造优秀程序的良好习惯,一些公司也硬性规定必须书写。

最常用的matlab图像处理的源代码

最常用的一些图像处理Matlab源代 码 #1:数字图像矩阵数据的显示及其傅立叶变换 #2:二维离散余弦变换的图像压缩 #3:采用灰度变换的方法增强图像的对比度 #4:直方图均匀化 #5:模拟图像受高斯白噪声和椒盐噪声的影响 #6:采用二维中值滤波函数medfilt2对受椒盐噪声干扰的图像滤波 #7:采用MATLAB中的函数filter2对受噪声干扰的图像进行均值滤波 #8:图像的自适应魏纳滤波 #9:运用5种不同的梯度增强法进行图像锐化 #10:图像的高通滤波和掩模处理 #11:利用巴特沃斯(Butterworth)低通滤波器对受噪声干扰的图像进行平滑处理 #12:利用巴特沃斯(Butterworth)高通滤波器对受噪声干扰的图像进行平滑处理 1.数字图像矩阵数据的显示及其傅立叶变换 f=zeros(30,30); f(5:24,13:17)=1; imshow(f, 'notruesize'); F=fft2(f,256,256); % 快速傅立叶变换算法只能处矩阵维数为2的幂次,f矩阵不 % 是,通过对f矩阵进行零填充来调整 F2=fftshift(F); % 一般在计算图形函数的傅立叶变换时,坐标原点在 % 函数图形的中心位置处,而计算机在对图像执行傅立叶变换 % 时是以图像的左上角为坐标原点。所以使用函数fftshift进 %行修正,使变换后的直流分量位于图形的中心; figure,imshow(log(abs(F2)),[-1 5],'notruesize');

2 二维离散余弦变换的图像压缩I=imread('cameraman.tif'); % MATLAB自带的图像imshow(I); clear;close all I=imread('cameraman.tif'); imshow(I); I=im2double(I); T=dctmtx(8); B=blkproc(I,[8 8], 'P1*x*P2',T,T'); Mask=[1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]; B2=blkproc(B,[8 8],'P1.*x',Mask); % 此处为点乘(.*) I2=blkproc(B2,[8 8], 'P1*x*P2',T',T); figure,imshow(I2); % 重建后的图像 3.采用灰度变换的方法增强图像的对比度I=imread('rice.tif'); imshow(I); figure,imhist(I); J=imadjust(I,[0.15 0.9], [0 1]); figure,imshow(J); figure,imhist(J);

数据结构实验指导书(C版)

数据结构实验指导书(C语言版) 2017年9月

目录 1、顺序表的实现 (1) 2、链栈的实现 (3) 3、前序遍历二叉树 (5) 4、图的深度优先遍历算法 (7) 5、散列查找 (9)

1、顺序表的实现 1. 实验目的 ⑴掌握线性表的顺序存储结构; ⑵验证顺序表及其基本操作的实现; ⑶理解算法与程序的关系,能够将顺序表算法转换为对应的程序。 2. 实验内容 ⑴建立含有若干个元素的顺序表; ⑵对已建立的顺序表实现插入、删除、查找等基本操作。 3. 实现提示 定义顺序表的数据类型——顺序表结构体SeqList,在SeqList基础上实现题目要求的插入、删除、查找等基本操作,为便于查看操作结果,设计一个输出函数依次输出顺序表的元素。简单起见,本实验假定线性表的数据元素为int型,要求学生: (1)将实验程序调试通过后,用模板类改写; (2)加入求线性表的长度等基本操作; (3)重新给定测试数据,验证抛出异常机制。 4. 实验程序 在编程环境下新建一个工程“顺序表验证实验”,并新建相应文件,文件包括顺序表结构体SeqList的定义,范例程序如下: #define MaxSize 100 /*假设顺序表最多存放100个元素*/ typedef int DataType; /*定义线性表的数据类型,假设为int型*/ typedef struct { DataType data[MaxSize]; /*存放数据元素的数组*/ int length; /*线性表的长度*/ } SeqList; 文件包括建立顺序表、遍历顺序表、按值查找、插入操作、删除操作成员函数的定义,范例程序如下: int CreatList(SeqList *L, DataType a[ ], int n) { if (n > MaxSize) {printf("顺序表的空间不够,无法建立顺序表\n"); return 0;} for (int i = 0; i < n; i++) L->data[i] = a[i]; L->length = n; return 1; }

源代码例子以及页面设置说明

chdgdfgeclid.a 1 2 #ifnfdgdfdef __CHEDGDFGCLID_A_ 3 #dedfgdffine __CHEGDFGCLID_A_ 4 5 /************************************************************************/ 6 /* 定义*/ 7 /************************************************************************/ 8 #defgdfgdfine FLADGDFGSH_SEDGDFGION 9 #defidgdne EDFGDFNS_ ADDGDFDESS_TEST 10 11 #defidgdfne EDGDFGNS_ ADDEDGDGSS_TEST_3 12 13 #defdgdfine NDGDFGEED _CHECK 6 14 15 typdfgdfedef enum 16 { CA_ONEISDGDFGEMPTY, 17 18 CA_TWOISEDGDFGMPTY, 19 CA_TWOISFFDGDFGULL 20 }chedgdfckusdfdfm; 21 typedsfsdfef ssfsdftruct 22 23 { TX_U8 desfdfsKey[9]; 24 25 TX_U8 desfsdfdsresult[9]; 26 TX_U64 crc64; }DedgdfgsDatsfsdfdsa_f; 27 28 29 /************************************************************************/ 30 /* 函数声明*/ 31 /************************************************************************/ 32 TX_ ChesfsfckValid(checkenum checkcase); 33 TX_ ResfsdfadFlash(void); 34 TX_ ReadRanFromPanel(void); 35 TX_ ResfsdfadSerial(void); TX_ ResfsdfadIPanel(void); 36 37 vdgdfgoid Plasdfsdfsfsdfsdar_To_Linear(TX_U8,TX_U9 N); 38 TX_BOOL BufferIsEmsfsdfdsfty(TX_U9 buffer[],int bufsdfdsffer_len); 39 40 TX_BOOL TX_BoxValid(void); 41 TX_U64 GetBxNo(void); 42 usfsdfdsfed char *GetPFSDlSerial(void); 43 #endgdfdif 44 3 sr_burGDFGnflash.h 45 /* 46 sr_busdgdfffsgdfsdsh.a - hdfsdfer file for sr_bfdfsdflash.D 47 48 */ 49 50 #ifndgdfgdef _SR_BURFSDFNFLASH_A_

相关文档
相关文档 最新文档