软件总代码行数_软件注释率_分析

软件总代码行数_软件注释率_分析
软件总代码行数_软件注释率_分析

文档名称:软件总代码行数_软件注释

率分析

作者:

日期:

1. cncc

1.1 工具简介

度量工具名称cncc

网址https://www.360docs.net/doc/066865392.html,/

操作方式命令行

实现语言C++

适用的操作系统Windows

可以度量的属性code-lines, empty-lines, comment-lines, total-lines

备注

1.2 工具优缺点总结

最新版本 cncc-1-3-1,在sourceforge中2004年已经停止更新。最大的优点是源代码全部存于一个cpp文件,便于集成。

缺点:

1.代码基本没有注释。

2.下载的代码编译有9个错误。

3.费了2个多小时也没搞定。

1.3 使用例程

无。

2. CodeCount

2.1 工具简介

度量工具名称CodeCount

网址https://www.360docs.net/doc/066865392.html,/downloads421/sourcecode/windows

/control/detail1783204.html

操作方式GUI

实现语言C++

适用的操作系统Windows

可以度量的属性total-lines, empty-lines, comment-lines, code-lines,

备注

2.2 工具优缺点总结

优点:

工具比较精简,统计源文件总行数、代码行数、空白行数、注释行数,代码有一定的注释。

缺点:

下载的源码是vc7工程,由于机器并没有vc7,利用工具进行工程类型转换,将vc7的工程转换为vc6的工作,编译出错。

核心代码如下:

BOOL bCommentSet = FALSE; //注释行统计标识有"/*"时TRUE, "*/"时FALSE

BOOL bQuatoSet = FALSE; //字符串统计标识首次一行有奇数个"时TRUE, 下一行有奇数个"时FALSE

int nLength = (int)file.GetLength();

CString bufRead;

int nLineCommentBegin = 0;

while(file.ReadString(bufRead)!=FALSE)

{

BOOL bStatedComment = FALSE;//本行作为注释行是否已统计过

BOOL bStatedCode = FALSE; //本行作为代码行是否已统计过

nLines++;

bufRead.TrimLeft(); //先将文件头的空格或制表符去掉

if(bufRead.GetLength()==0) //为空白行

{

nBlankLines++;

continue;

}

if(bCommentSet && bufRead.Find(_T("*/"))==-1)

{

nCommentLines++;

continue;

}

if(bufRead.Find(_T("//"))==-1 && bufRead.Find(_T("/*"))==-1 &&

bufRead.Find(_T("*/"))==-1)

{//如果本行根本就无注释符,则要不是注释符,要不是代码行

if(bCommentSet)

{

nCommentLines++; continue;

}

else

{

if(bufRead.Find('"')==-1)

{

nCodeLines++; continue;

}

}

}

if(bufRead.Find(_T("//"))==0 && !bCommentSet && !bQuatoSet)

{

nCommentLines++;

continue;

}

BOOL bDoubleSplashFound = FALSE;

BOOL bSplashStarFound = FALSE;

for(int i=0; i

{

//char cTemp = bufRead[i];

wchar_t cTemp = bufRead[i];

if(bufRead[i]=='/' && bufRead[i+1]=='/' && !bCommentSet && !bQuatoSet)

{

if(!bStatedComment && (m_nStatMethod==1 || m_nStatMethod ==2))

{

bStatedComment = TRUE;

nCommentLines++;

}

bDoubleSplashFound = TRUE;

//i++;//应该+1,但也没有什么用处

break;

}

else if(bufRead[i]=='/' && bufRead[i+1]=='*' && !bCommentSet && !bQuatoSet) {

if(!bStatedComment && (m_nStatMethod==1 || m_nStatMethod ==2))

{

bStatedComment = TRUE;

nCommentLines++;

}

bCommentSet = TRUE;

bSplashStarFound = TRUE;

i++;

}

//计算代码行必须在bCommentSet关闭之前

else if(bufRead[i]!=' ' && bufRead[i]!='\t' && !bCommentSet)

{

if(!bStatedCode)

{

bStatedCode = TRUE;

nCodeLines++;

}

if(bufRead[i]=='\\')

{//\之后的字符要跳过

i++;

continue;

}

if(bufRead[i]=='\'')

{

if(bufRead[i+1]=='\\')

i+=2;

else

i+=1;

continue;

}

if(bufRead[i]=='"')

{//"必须引起重视,感谢ltzhou

bQuatoSet = !bQuatoSet;

}

}

else if(bufRead[i]=='*' && bufRead[i+1]=='/' && bCommentSet && !bQuatoSet)

{

if(!bStatedComment && (m_nStatMethod==1 || m_nStatMethod ==2))

{

bStatedComment = TRUE;

nCommentLines++;

}

bCommentSet = FALSE;

bSplashStarFound = TRUE;

i++;

}

}

if(bDoubleSplashFound)

{

if(m_nStatMethod==2 && bStatedCode) //如果统计方法为第三种,且同时有代码行与注释行,则只计注释行

{

nCodeLines--;

}

if(m_nStatMethod==0 && !bStatedCode)//如果统计方法为第一种,且未作为代码行统计过,那么必为注释行

{

nCommentLines++;

}

continue;

}

if(bufRead[bufRead.GetLength()-1]=='"'&&!bCommentSet)

{//若某行最后一个是",则必定用来关闭bQuatoSet,记代码行一行,否则报错

bQuatoSet = !bQuatoSet;

if(!bQuatoSet)

{

if(!bStatedCode)

{

bStatedCode = TRUE;

nCodeLines++;

}

}

else

{

CStdioFile fileLog;

if(fileLog.Open(m_strLogFile,

CFile::modeCreate|CFile::modeWrite|CFile::modeNoTruncate)==TRUE)

{

CString strMsg;

if(fileLog.GetLength()==0)

{

strMsg.Format(_T("文件\t行\t问题\n"), strFileName, nLines);

fileLog.WriteString(strMsg);

}

strMsg.Format(_T("%s\t%d\t字符串换行未用\\\n"), strFileName, nLines);

fileLog.WriteString(strMsg);

fileLog.Close();

}

}

continue;

}

if(bufRead[bufRead.GetLength()-1]!=' ' && bufRead[bufRead.GetLength()-1]!='\t'

&& !bCommentSet

&& bufRead[bufRead.GetLength()-2]!='*' && bufRead[bufRead.GetLength()-1]!='/') {//如果最后一个字符非空格或制表符,且前面无/*,最后两个字符不是*/,则为代码行if(!bStatedCode)

{

bStatedCode = TRUE;

nCodeLines++;

}

}

if(bSplashStarFound)

{

if(m_nStatMethod==2 && bStatedCode) //如果统计方法为第三种,且同时有代码行与注释行,则只计注释行

{

nCodeLines--;

}

if(m_nStatMethod==0 && !bStatedCode && !bStatedComment) //若该行无代码如

/*abc*/ //222

//但是统计方法是第一种,则需要追加注释行计数一次

{

bStatedComment = TRUE;

nCommentLines++;

}

}

if(!bStatedComment && bCommentSet)//可能是前面有/*,在第一种统计方法中,未作为代码行计算过,那么本行肯定是注释行

{

if(m_nStatMethod==0 && !bStatedCode)

{

bStatedComment = TRUE;

nCommentLines++;

}

}

if(bQuatoSet && bufRead[bufRead.GetLength()-1]!='\\')

{

CStdioFile fileLog;

if(fileLog.Open(m_strLogFile,

CFile::modeCreate|CFile::modeWrite|CFile::modeNoTruncate)==TRUE)

{

CString strMsg;

if(fileLog.GetLength()==0)

{

strMsg.Format(_T("文件\t行\t问题\n"), strFileName, nLines);

fileLog.WriteString(strMsg);

}

strMsg.Format(_T("%s\t%d\t字符串换行未用\\\n"), strFileName, nLines);

fileLog.WriteString(strMsg);

fileLog.Close();

}

}

}

file.Close();

2.3 使用例程

通过分析其源代码,抽取解析源文件部分的功能代码,构建独立的工程,经测试可以完成代码行等数据的统计工作,但仍需要进一步测试。

下一步工作:

将本工程与实现功能单元最大行数的工程合并,最终实现关于代码行数的度量工具。

3. codeAnalysis 3.1 工具简介

度量工具名称codeAnalysis

网址https://www.360docs.net/doc/066865392.html,/downloads15/sourcecode/windows/ other/detail59645.html

操作方式GUI

实现语言C++

适用的操作系统Windows

可以度量的属性code-lines, empty-lines, comment-lines, 备注

3.2 工具优缺点总结

缺点:

1.实现过于简单,没有利用价值。

2.可以执行,但结果不正确,界面截图如下:

3. 经过代码分析,其核心统计代码考虑情况不完善。

核心代码如下:

for( int i=0; i

{

strItem = m_listSourceFile.GetItemText( i, 0);

if( !oSrcFile.Open( strItem, CFile::modeRead))

{

CString strMsg = "cannot open file : ";

strMsg += strItem;

MessageBox( strMsg);

return;

}

for( ;;)

{

if( !oSrcFile.ReadString( strLine))

break;

strLine.TrimLeft();

strLine.TrimRight();

if( 0 == strLine.GetLength())

iBlankCount++;

else if( "//" == strLine.Left(2))

iCommentCount++;

else

iSourceCount++;

}

oSrcFile.Close();

}

总结:没有使用价值。

3.3 使用例程

无。

4. codeAnalyer

4.1 工具简介

度量工具名称codeAnalyer

网址https://www.360docs.net/doc/066865392.html,/projects/codeanalyze-gpl/

操作方式GUI

实现语言java

适用的操作系统Windows Linux

可以度量的属性total-lines, empty-lines, comment-lines, code-lines

备注支持C, C++, java语言的源码

4.2 工具优缺点总结

并没有实际运行起来,因此着重分析其对应处理代码行统计的代码。

优点:

1. 该工具可以显示项目的文件树

2. 核心代码在CodeAnalysis目录下的几个类,封装非常好,例如专门处理comment的类,度量对象的类Stats。

4.3 使用例程

”CodeAnalyzer-0.7.0.jar”图标右键单击后,在“打开方式”里选择”Java(TM) Platform SE binary”。

1. 新建Code Set

选择”File”菜单里的”New Code Set”菜单项,如图4.3.1所示。

图4.3.1–新建Code Set

2. 给Code Set重命名

选中新建的Code Set ”New”,单击鼠标右键,如图4.3.2所示。

图4.3.2–给Code Set重命名

在弹出菜单中选择”Rename”选项,在弹出的对话框中输入新的code set名称,如图2.3所示。

图4.3.3–给Code Set重命名

3. 为这个Code Set选择Extension Set

选择”Tools”菜单里的”Extension Sets”菜单项,再选择”Select”子菜单项,如图2.4所

示。

再选择该子菜单项下的的”Standard C(*.c *.h)”选项,如图4.3..5所示。

图4.3.5–选择Extension Set

4. 构建Code Set视图

选中重命名后的Code Set ”Code Analyzer For C”,单击鼠标右键,如图4.3.6所示。

图4.3.6–构建code set视图

在弹出菜单中选择”Add Branch”选项,选择要检测的实例代码的路径,如图2.7

所示。

构建好的Code Set视图如图4.3.8所示。

图4.3.8–构建好的code set视图5. 执行

选择”Run”菜单里的”Run”菜单项,如图4.3.9所示。

图4.3.9–执行实例

分析的结果如图4.3.10所示。

图4.3.10–执行结果

5. 生成报告

选择”Reports”菜单里的”Full HTML Report”菜单项,如图4.3.11所示。

图4.3.11–选择报告类型

选择生成的报告的保存路径,如图4.3.12所示。

图4.3.12–选择保存路径

选择分析只包含文件夹还是文件夹文件都包括,如图2.13所示。

生成的html报告如图4.3.14所示。

图4.3.14–html报告

5. SourceMeter

5.1 工具简介

度量工具名称SourceMeter

网址https://www.360docs.net/doc/066865392.html,/projects/sourcemeter/

操作方式命令行

实现语言Java

适用的操作系统Windows/ Unix

可以度量的属性FC Number of processed files

LOT Lines of text

LOTNE Non-empty lines of text

JFLD Number of Java field definitions

备注开源。代码已找到。官方文档非常详细

SourceMeter is a tool for calculating metrics on source code

bases in any language. It provides a number of built-in

metrics, but has also been designed to make the

implementation of new metrics as simple as possible.

5.2 工具优缺点总结

优点:

1.实现方案完善

2.帮助文档齐全

3.代码有研究价值

5.3 使用例程

1. 必须有Java 2 (J2SE)环境。

2.解压下载的压缩文件。

3.修改SourceMeter.cmd (for Windows)文件,指定SourceMeter的路径。

4. 也可以将SourceMeter的bin目录设置到环境变量中,这样可以任意目录都可以执行SourceMeter。

5. 运行SourceMeter,会有使用提示

6 总结

采用CodeCount和另一开源代码(定位函数定义行)结合,进行源代码分析,可以实现软件总代码行数、软件注释率和功能单元最大有效代码行数的度量。

若进行源码研究的话,推荐CodeCount、SourceMeter、codeAnalyer。

集成这3个度量的工具采用GUI界面,开发语言采用C++,工具VC6。

张亨整理 四个常用统计软件SAS,STATA,SPSS,R语言分析比较及其他统计软件概述题库

四个常用统计软件SAS,STATA,SPSS,R语言分析比较及其他统计软件概述 一、SAS,STATA,SPSS,R语言简介 (一)SAS简介 SAS(全称Statistical Analysis System,简称SAS,翻译成汉语是统计分析系统)是全球最大的软件公司之一,是由美国NORTH CAROLINA州立大学1966年开发的统计分析软件。1976年SAS软件研究所(SAS INSTITUTE INC)成立,开始进行SAS系统的维护、开发、销售和培训工作。期间经历了许多版本,并经过多年来的完善和发展,SAS系统在国际上已被誉为统计分析的标准软件,在各个领域得到广泛应用。 其网址是:https://www.360docs.net/doc/066865392.html,/ (二)STSTA简介 STATA统计软件由美国计算机资源中心(Computer Resource Center)1985年研制。STATA 是一套提供其使用者数据分析、数据管理以及绘制专业图表的完整及整合性统计软件。它提供许许多多功能,包含线性混合模型、均衡重复反复及多项式普罗比模式。 新版本的STATA采用最具亲和力的窗口接口,使用者自行建立程序时,软件能提供具有直接命令式的语法。STATA提供完整的使用手册,包含统计样本建立、解释、模型与语法、文献等超过一万余页的出版品。 除此之外,STATA软件可以透过网络实时更新每天的最新功能,更可以得知世界各地的使用者对于STATA公司提出的问题与解决之道。使用者也可以透过STATA Journal 获得许许多多的相关讯息以及书籍介绍等。另外一个获取庞大资源的管道就是STATAlist,它是一个独立的listserver,每月交替提供使用者超过1000个讯息以及50个程序。 其网址是:https://www.360docs.net/doc/066865392.html,/ (三)SPSS简介 SPSS(Statistical Product and Service Solutions),“统计产品与服务解决方案”软件。最初软件全称为“社会科学统计软件包”(Statistical Package for the Social Sciences),但是随着SPSS产品服务领域的扩大和服务深度的增加,SPSS公司已于2000年正式将英文全称更改为“统计产品与服务解决方案”,标志着SPSS 的战略方向正在做出重大调整。为IBM公司推出的一系列用于统计学分析运算、数据挖掘、预测分析和决策支持任务的软件产品及相关服务的总称SPSS,有Windows和Mac OS X等版本。 1984年SPSS总部首先推出了世界上第一个统计分析软件微机版本SPSS/PC+,开创了SPSS微机系列产品的开发方向,极大地扩充了它的应用范围,并使其能很快地应用于自然科学、技术科学、社会科学的各个领域。世界上许多有影响的报刊杂志纷纷就SPSS的自动统计绘图、数据的深入分析、使用方便、功能齐全等方面给予了高度的评价。 SPSS是世界上最早的统计分析软件,由美国斯坦福大学的三位研究生Norman H. Nie、C. Hadlai (Tex) Hull 和Dale H. Bent于1968年研究开发成功,同时成立了SPSS公司,并于1975年成立法人组织、在芝加哥组建了SPSS总部。

程序代码注释编写规范

程序代码注释编写规范 为提高控制程序的阅读性与可理解性,现制定相关代码程序代码注释编写的编写规范。 一般情况下,源程序有效注释量必须在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. .. *************************************************/ 二、源文件头 源文件头部应进行注释,列出:版权说明、版本号、生成日期、作者、模块目的/功能、主要函数及其功能、修改日志等。 示例:下面这段源文件的头注释比较标准,当然,并不局限于此格式,但上述信息建议要包含在内。 /************************************************************ COPYRIGHT (C), MicTiVo International. Co., Ltd. FileName: Author:

UMAT全过程

UMAT全过程——技术篇 1.ABAQUS中非线性问题的处理2.用户子程序接口3.用户子程序和主程序的结合4.用户材料子程序UMAT接口的原理5.UMAT子程序流程ABAQUS是怎么计算的 I.ABAQUS一共有42个用户子程序接口,15个应用程序接口,可以定义包括边界条 件,荷载条件,接触条件,材料特性以及利用用户子程序和其它应用软件进行数值交换。 1.根据ABAQUS提供的相应接口,按照FORTRAN语法自己编写的代码,是一个独立的程序单元,可以独立地被储存和编译,也能被其他程序单元引用。 I.一般结构形式 II. 一个算例中,可以用到多个用户子程序,但必须把它们放在一个以.for为扩展名的文件中。 III.运行带有用户子程序的算例的两种方法 1.在CAE中运行,在EDIT JOB菜单中的GENRAL子菜单的USERSUBROUTINE GILE对话框中选择用户子程序所在的文件 2.在https://www.360docs.net/doc/066865392.html,MAND中运行语法如下 IV.编制用户子程序时应注意: 1.用户子程序相互之间不能调用,可以调用用户自己编写的Fortran子程序和 ABAQUS应用程序,ABAQUS应用程序必须由用户子程序调用。编写Fortran子程序时,建议子程序以K开头,以免和ABAQUS内部程序冲突。2.用户在用户子程序中利用OPEN打开外部文件时,要注意以下两点: (1)设备号的选择有限制,只能取15~18和大于100的设备号 (2)用户需提供外部文件的绝对路径而不是相对路径。3.对于不同的用户子程序,ABAQUS调用的时间不相同,有的在每个STEP的开始,有的在结尾,有的在每个 INCREMENT的开始。(当ABAQUS在调用用户子程序时,都会把当前的STEP 和INCREMENT 利用用户子程序的两个实参KSTEP 和KINC 传给用户子程序,用户可把他们输出到外部文件中,这样可清楚知道何时调用) V.ABAQUS提供给用户定义自己的材料属性的Fortran程序接口,用户材料子程序 UMAT 通过与ABAQUS主求解程序的接口实现与ABAQUS的资料交流,输入文件中,使用“UESER MATERIAL”表示定义用户材料属性。 I.UMAT子程序采用Fortran语言编制,包括以下几个部分:子程序定义语句、 ABAQUS 定义的参数说明、用户定义的局部变量说明、用户编制的程序主体、子程序返回和结束语句。I.

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; }

华为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(); }

ABAQUS子程序UMAT里弹塑本构的实现

前言 有限元法是工程中广泛使用的一种数值计算方法。它是力学、计算方法和计算机技术相结合的产物。在工程应用中,有限元法比其它数值分析方法更流行的一个重要原因在于:相对与其它数值分析方法,有限元法对边界的模拟更灵活,近似程度更高。所以,伴随着有限元理论以及计算机技术的发展,大有限元软件的应用证变得越来越普及。 ABAQUS软件一直以非线性有限元分析软件而闻名,这也是它和ANSYS,Nastran等软件的区别所在。非线性有限元分析的用处越来越大,因为在所用材料非常复杂很多情况下,用线性分析来近似已不再有效。比方说,一个复合材料就不能用传统的线性分析软件包进行分析。任何与时间有关联,有较大位移量的情况都不能用线性分析法来处理。多年前,虽然非线性分析能更适合、更准确的处理问题,但是由于当时计算设备的能力不够强大、非线性分析软件包线性分析功能不够健全,所以通常采用线性处理的方法。 这种情况已经得到了极大的改善,计算设备的能力变得更加强大、类似ABAQUS这样的产品功能日臻完善,应用日益广泛。 非线性有限元分析在各个制造行业得到了广泛应用,有不少大型用户。航空航天业一直是非线性有限元分析的大客户,一个重要原因是大量使用复合材料。新一代波音 787客机将全部采用复合材料。只有像 ABAQUS这样的软件,才能分析包括多个子系统的产品耐久性能。在汽车业,用线性有限元分析来做四轮耐久性分析不可能得到足够准确的结果。分析汽车的整体和各个子系统的性能要求(如悬挂系统等)需要进行非线性分析。在土木工程业, ABAQUS能处理包括混凝土静动力开裂分析以及沥青混凝土方面的静动力分析,还能处理高度复杂非线性材料的损伤和断裂问题,这对于大型桥梁结构,高层建筑的结构分析非常有效。 瞬态、大变形、高级材料的碰撞问题必须用非线性有限元分析来计算。线性分析在这种情况下是不适用的。以往有一些专门的软件来分析碰撞问题,但现在ABAQUS在通用有限元软件包就能解决这些问题。所以,ABAQUS可以在一个软件完成线性和非线性分析。 ABAQUS给用户提供了强大二次开发接口,尤其是在材料本构方面,给用户开发符合实际工程的材料本构模型提供了强大帮助,本文将针对其用户材料子程序展开研究,总结常用材料模型的开发方法。

程序代码编写规范

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

目录 程序编写规范及约定 (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

abaqus简单umat子程序

SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,RPL,DDSDDT, 1 DRPLDE,DRPLDT,STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED, 2 CMNAME,NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT, 3 PNEWDT,CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC) include 'aba_param.inc' CHARACTER*8 CMNAME DIMENSION STRESS(NTENS),STATEV(NSTATV),DDSDDE(NTENS,NTENS), 1 DDSDDT(NTENS),DRPLDE(NTENS),STRAN(NTENS),DSTRAN(NTENS), 2 TIME(2),PREDEF(1),DPRED(1),PROPS(NPROPS),COORDS(3),DROT(3,3), 3 DFGRD0(3,3),DFGRD1(3,3) C UMAT FOR ISOTROPIC ELASTICITY C CANNOT BE USE D FOR PLAN E STRESS C ---------------------------------------------------------------- C PROPS(1) - E C PROPS(2) - NU C ---------------------------------------------------------------- C IF (NDI.NE.3) THEN WRITE (*,*) 'THIS UMAT MAY ONLY BE USED FOR ELEMENTS 1 WITH THREE DIRECT STRESS COMPONENTS' CALL XIT ENDIF open(400,file='D:\test.txt') C ELASTIC PROPERTIES EMOD=PROPS(1) ENU=PROPS(2) EBULK3=EMOD/(1-2*ENU) EG2=EMOD/(1+ENU) EG=EG2/2 EG3=3*EG ELAM=(EBULK3-EG2)/3 write(400,*) 'temp=',temp C ELASTIC STIFFNESS C DO K1=1, NDI DO K2=1, NDI DDSDDE(K2, K1)=ELAM END DO DDSDDE(K1, K1)=EG2+ELAM

程序代码注释编写规范

程序代码注释编写规范 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. .. *************************************************/ 二、源文件头 源文件头部应进行注释,列出:版权说明、版本号、生成日期、作者、模块目的/功能、主要函数及其功能、修改日志等。 示例:下面这段源文件的头注释比较标准,当然,并不局限于此格式,但上述信息建议要包含在内。 /************************************************************

程序代码注释编写规范

百度文库- 让每个人平等地提升自我 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() */ 意:与溢出中断写初值不同}

ABAQUS-二次开发资料-UMAT

各个楼层及内容索引 2-------------------------------------什么是UMAT 3-------------------------------------UMAT功能简介 4-------------------------------------UMAT开始的变量声明 5-------------------------------------UMAT中各个变量的详细解释 6-------------------------------------关于沙漏和横向剪切刚度 7-------------------------------------UMAT流程和参数表格实例展示 8-------------------------------------FORTRAN语言中的接口程序Interface 9-------------------------------------关于UMAT是否可以用Fortran90编写的问题 10-17--------------------------------Fortran77的一些有用的知识简介 20-25\30-32-----------------------弹塑性力学相关知识简介 34-37--------------------------------用户材料子程序实例JOhn-cook模型压缩包下载 38-------------------------------------JOhn-cook模型本构简介图 40-------------------------------------用户材料子程序实例JOhn-cook模型完整程序+david详细注解[欢迎大家来看看,并提供意见,完全是自己的diy的,不保证完全正确,希望共同探讨,以便更正,带"?"部分,还望各位大师\同仁指教] 1什么是UMAT??? 1.1 UMAT功能简介!!![-摘自庄茁老师的书 UMAT子程序具有强大的功能,使用UMAT子程序: (1)可以定义材料的本构关系,使用ABAQUS材料库中没有包含的材料进行计算,扩充程序 功能。ABAQUS软件2003年度用户年会论文集 (2)几乎可以用于力学行为分析的任何分析过程,几乎可以把用户材料属性赋予ABAQUS中 的任何单元; (3)必须在UMAT中提供材料本构模型的雅可比(Jacobian)矩阵,即应力增量对应变增量 的变化率。 (4)可以和用户子程序“USDFLD”联合使用,通过“USDFLD”重新定义单元每一物质点上传 递到UMAT中场变量的数值。 1.2 UMAT开始的变量声明 由于主程序与UMAT之间存在数据传递,甚至共用一些变量,因此必须遵守有关书写格式,UMAT中常用的变量在文件开头予以定义,通常格式为: SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD, 1 RPL,DDSDDT,DRPLDE,DRPLDT, 2STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME 3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,

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、 在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或

常用统计软件介绍

常用统计软件介绍

常用统计软件介绍 《概率论与数理统计》是一门实践性很强的课程。但是,目前在国内,大多侧重基本方法的介绍,而忽视了统计实验的教学。这样既不利于提高学生创新精神和实践能力,也使得这门课程的教学显得枯燥无味。为此,我们介绍一些常用的统计软件,以使学生对统计软件有初步的认识,为以后应用统计方法解决实际问题奠定初步的基础。 一、统计软件的种类 1.SAS 是目前国际上最为流行的一种大型统计分析系统,被誉为统计分析的标准软件。尽管价格不菲,SAS已被广泛应用于政府行政管理,科研,教育,生产和金融等不同领域,并且发挥着愈来愈重要的作用。目前SAS已在全球100多个国家和地区拥有29000多个客户群,直接用户超过300万人。在我国,国家信息中心,国家统计局,卫生部,中国科学院等都是SAS系统的大用户。尽管现在已经尽量“傻瓜化”,但是仍然需要一定的训练才可以使用。因此,该统计软件主要适合于统计工作者和科研工作者使用。 2.SPSS SPSS作为仅次于SAS的统计软件工具包,在社会科学领域有着广泛的应用。SPSS是世界上最早的统计分析软件,由美国斯坦福大学的三位研究生于20世纪60年代末研制。由于SPSS容易操作,输出漂亮,功能齐全,价格合理,所以很快地应用于自然科学、技术科学、社会科学的各个领域,世界上许多有影响的报刊杂志纷纷就SPSS 的自动统计绘图、数据的深入分析、使用方便、功能齐全等方面给予了高度的评价与称赞。迄今SPSS软件已有30余年的成长历史。全球

约有25万家产品用户,它们分布于通讯、医疗、银行、证券、保险、制造、商业、市场研究、科研教育等多个领域和行业,是世界上应用最广泛的专业统计软件。在国际学术界有条不成文的规定,即在国际学术交流中,凡是用SPSS软件完成的计算和统计分析,可以不必说明算法,由此可见其影响之大和信誉之高。因此,对于非统计工作者是很好的选择。 3.Excel 它严格说来并不是统计软件,但作为数据表格软件,必然有一定统计计算功能。而且凡是有Microsoft Office的计算机,基本上都装有Excel。但要注意,有时在装 Office时没有装数据分析的功能,那就必须装了才行。当然,画图功能是都具备的。对于简单分析,Excel 还算方便,但随着问题的深入,Excel就不那么“傻瓜”,需要使用函数,甚至根本没有相应的方法了。多数专门一些的统计推断问题还需要其他专门的统计软件来处理。 4.S-plus 这是统计学家喜爱的软件。不仅由于其功能齐全,而且由于其强大的编程功能,使得研究人员可以编制自己的程序来实现自己的理论和方法。它也在进行“傻瓜化”,以争取顾客。但仍然以编程方便为顾客所青睐。 5.Minitab 这个软件是很方便的功能强大而又齐全的软件,也已经“傻瓜化”,在我国用的不如SPSS与SAS那么普遍。

程序源代码注释规范

程序注释规范说明 程序注释规范应包括以下三方面: 一、文件头部注释 在代码文件的头部进行注释,这样做的好处在于,我们能对代码文件做变更跟踪。在代码头部分标注出创始人、创始时间、修改人、修改时间、代码的功能,这在团队开发中必不可少,它们可以使后来维护/修改的同伴在遇到问题时,在第一时间知道他应该向谁去寻求帮助,并且知道这个文件经历了多少次迭代、经历了多少个程序员的开发和修改。 样本: /***************************************************** ** 作者: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;/// … }

Abaqus材料用户子程序UMAT基础知识与手册例子完整解释

1、为何需要使用用户材料子程序(User-Defined Material, UMAT )? 很简单,当ABAQUS 没有提供我们需要的材料模型时。所以,在决定自己定义一种新的材料模型之前,最好对ABAQUS 已经提供的模型心中有数,并且尽量使用现有的模型,因为这些模型已经经过详细的验证,并被广泛接受。 UMAT 子程序具有强大的功能,使用UMAT 子程序: (1)可以定义材料的本构关系,使用ABAQUS 材料库中没有包含的材料进行计算,扩充程序功能。 (2) 几乎可以用于力学行为分析的任何分析过程,几乎可以把用户材料属性赋予ABAQU S 中的任何单元。 (3) 必须在UMAT 中提供材料本构模型的雅可比(Jacobian )矩阵,即应力增量对应变增量的变化率。 (4) 可以和用户子程序“USDFLD ”联合使用,通过“USDFLD ”重新定义单元每一物质点上传递到UMAT 中场变量的数值。 2、需要哪些基础知识? 先看一下ABAQUS 手册(ABAQUS Analysis User's Manual )里的一段话: Warning: The use of this option generally requires considerable expertise(一定的专业知识). The user is cautioned that the implementation (实现) of any realistic constitutive (基本) model requires extensive (广泛的) development and testing. Initial testing on a single eleme nt model with prescribed traction loading (指定拉伸载荷) is strongly recommended. 但这并不意味着非力学专业,或者力学基础知识不很丰富者就只能望洋兴叹,因为我们的任务不是开发一套完整的有限元软件,而只是提供一个描述材料力学性能的本构方程(Constitutive equation )而已。当然,最基本的一些概念和知识还是要具备的,比如: 应力(stress),应变(strain )及其分量; volumetric part 和deviatoric part ;模量(modul us )、泊松比(Poisson’s ratio)、拉梅常数(Lame constant);矩阵的加减乘除甚至求逆;还有一些高等数学知识如积分、微分等。 3、UMAT 的基本任务? 我们知道,有限元计算(增量方法)的基本问题是: 已知第n 步的结果(应力,应变等)n σ,n ε,然后给出一个应变增量1+n d ε,计算新的应力1+n σ。UMAT 要完成这一计算,并要计算Jacobian 矩阵DDSDDE(I,J) =εσΔ?Δ?/。σΔ是应力增量矩阵(张量或许更合适),εΔ是应变增量矩阵。DDSDDE(I,J) 定义了第J 个应变分量的微小变化对

UMAT子程序在复合材料强度分析中的应用

UMAT子程序在复合材料强度分析中 的应用 本例使用UMAT用户子程序进行复合材料单层板的应力分析和渐进损伤压缩强度分析,介绍UMA T用户子程序编写方法及在Abaqus/CAE中的设置。本章使用最大应变强度理论作为复合材料单层板的失效准则,相应的Fortran程序简单易读,便于理解UAMT子程序的工作原理。 知识要点: 强度分析 UMAT用户子程序 最大应变理论 刚度折减讲师:孔祥宏 版本:Abq 6.14 难度: 关键词:强度分析,UMAT

『 2 』 第&章复合材料分析入门 &.1 本章内容简介 本章通过两个实例介绍UMAT用户子程序在复合材料单层板的应力分析和强度分析中的应用。在第一个实例中,对一个简单的复合材料单层板进行应力分析,UMAT子程序主要计算应力,不进行强度分析,本例用于验证UMA T子程序的计算精度。在第二个实例中,对复合材料单层板进行渐进损伤强度分析,UMAT子程序用于应力计算、强度分析和刚度折减。 本章所用复合材料为T700/BA9916,材料属性如表&-1所示。 表&-1 T700/BA9916材料属性 参数值强度值 E1/GPa 114 X T/MPa 2688 E2/GPa 8.61 X C/MPa 1458 E3/GPa 8.61 Y T/MPa 69.5 μ120.3 Y C/MPa 236 μ130.3 Z T/MPa 55.5 μ230.45 Z C/MPa 175 G12/GPa 4.16 S XY/MPa 136 G13/GPa 4.16 S XZ/MPa 136 G23/GPa 3.0 S YZ/MPa 95.6

世界三大统计分析软件比较

世界三大统计分析软件的比较: 2007-04-10 SAS(多变量数据分析技术与统计软件) SAS是美国SAS(赛仕)软件研究所研制的一套大型集成应用软件系统,具有比较完备的数据存取、数据管理、数据分析和数据展现的系列功能。尤其是它的创业产品—统计分析系统部分,由于具有强大的数据分析能力,一直是业界中比较著名的应用软件,在数据处理方法和统计分析领域,被誉为国际上的标准软件和最具权威的优秀统计软件包,SAS系统中提供的主要分析功能包括统计分析、经济计量分析、时间序列分析、决策分析、财务分析和全面质量管理工具等。 SAS系统是一个组合的软件系统,它由多个功能模块配合而成,其基本部分是BASE SAS模块。BASE SAS模块是SAS系统的核心,承担着主要的数据管理任务,并管理着用户使用环境,进行用户语言的处理,调用其他SAS模块和产品。也就是说,SAS系统的运行,首先必须启动BASE SAS模块,它除了本身所具有数据管理、程序设计及描述统计计算功能以外,还是SAS系统的中央调度室。它除了可单独存在外,也可与其他产品或模块共同构成一个完整的系统。各模块的安装及更新都可通过其安装程序比较方便地进行。 SAS系统具有比较灵活的功能扩展接口和强大的功能模块,在BASE SAS的基础上,还可以增加如下不同的模块而增加不同的功能:SAS/STAT(统计分析模块)、SAS/GRAPH (绘图模块)、SAS/QC(质量控制模块)、SAS/ETS(经济计量学和时间序列分析模块)、SAS/OR(运筹学模块)、SAS/IML(交互式矩阵程序设计语言模块)、SAS/FSP

(快速数据处理的交互式菜单系统模块)、SAS/AF(交互式全屏幕软件应用系统模块)等等。 SAS提供的绘图系统,不仅能绘各种统计图,还能绘出地图。SAS提供多个统计过程,每个过程均含有极丰富的任选项。用户还可以通过对数据集的一连串加工,实现更为复杂的统计分析。此外,SAS还提供了各类概率分析函数、分位数函数、样本统计函数和随机数生成函数,使用户能方便地实现特殊统计要求。 目前SAS软件对Windows和Unix两种平台都提供支持,最新版本分别为8.X和6.X。与以往的版本比较,6.X版的SAS系统除了在功能和性能方面得到增加和提高外,GUI界面也进一步加强。在6.12版中,SAS系统增加了一个PC平台和三个新的UNIX平台,使SAS 系统这一支持多硬件厂商,跨平台的大家族又增加了新成员。SAS 6.12的另一个显著特征是通过对ODBC、OLE和MailAPIs等业界标准的支持,大大加强了SAS系统和其它软件厂商的应用系统之间相互操作的能力,为各应用系统之间的信息共享和交流奠定了坚实的基础。 虽然在我国SAS的逐步应用还是近几年的事,但是随着计算机应用的普及和信息事业的不断发展,越来越多的单位采用了SAS软件。尤其在教育、科研领域等大型机构,SAS软件已成为专业研究人员实用的进行统计分析的标准软件。 然而,由于SAS系统是从大型机上的系统发展而来,其操作至今仍以编程为主,人机对话界面不太友好,系统地学习和掌握SAS,需要花费一定的精力。而对大多数实际部门工作者而言,需要掌握的仅是如何利用统计分析软件来解决自己的实际问题,因此往往会与大型SAS软件系统失之交臂。但不管怎样,SAS作为专业统计分析软件中的巨无霸,现在鲜有软件在规模系列上与之抗衡。

相关文档
最新文档