第一篇:Perl软件学习心得
Per l 不需要任何特别的文件名字或后缀名,但最好不要使用后缀名
在 Perl 中,注释由# 开始,如果文本的第一行前两个字符是“ #!”,接着的就是执行下面文件的程序。#!行和程序的可移植性相关,需要找到每台机器的存放地点。幸运的是,通常都被放在/usr/bin/perl或/usr/local/bin/perl中。
如果不是这样,则需要找到你自己机器上perl的存放地点,然后使用那个路径。
Perl 中不需要声明变量
Perl 内部没有整数值。程序中的整数被当做等价的浮点数来处理.八进制以 0 开头,十六进制以 0x 开头,二进制 0b 开头。在十六进制中 A 到 F(或者 a 到 f)分别表示 10 到 15.Perl 允许用下划线来分隔61298040283768,因此可以像下面这样书写:61_298_040_283_768加(+),减(-),乘(*),除(/)模数运算符(%)。10%3 的值是 10 除以 3 的余数。两个操作数首先变成它们对应的整数值,如 10.5%3.2 转换为
10%3◆后再计算两个*号表示,如 2**3,表示 2 的 3 次方.由小写的字母 x 表示。这种操作能把操作符左边字符串重复操作符右边数字那么多次。
use warnings一直都需要警告(warning),可以在 #!这一行加上-w,如:#!/usr/bin/perl – w 当程序中包含可能的错误时,可以要求 Perl 警告你
把 use diagnostics 加入程序后通过它可以看到更详细的警告信息
标量变量的名字由一个美圆符号($)后接 Perl 标识符:由字母或下划线开头,后接字母,数字,或者下划线。或者说由字母,数字和下划线组成,但不能由数字开头。大小写是严格区分的。
每一个二元操作符都有一个等价的二元赋值形式:由这个符号后接等号组成。例如,下面两行是等价的:
$fred = $fred + 5;# 没有用二元赋值操作符 $fred+=5;#利用二元赋值操作符 下面的也是等价的: $barney = $barney*3;$barney*=3;上述两例中,变量借助自身而非别的变量来改变自身的值。另一个常用的赋值操作符是字符串连接符号(.);其赋值形式为(.=): $str = str.“”;#$str后接空格 $str.=“”’;#同上
$mean = “ brontosaurus steak”;
$barney = “fred ate a $meal ”;#$barney 现在是“fred ate a brontosaurus steak” $barney = ‘fred ate a’.$meal;#同上
如果一个变量未被赋值,则将使用空值替换$barney = “fred ate a $meat ”;#$barney 现在是“fred ate a ”
在字符串中变量前($符号前)加上反斜线(),变量将不会被内插(替换): $fred = ‘ hello’;
print “ The name is $fred.n”;#打印出美圆符号,变量不会被其值替换 print ‘ The name is $fred’.“ n”;# 同上
花括号({})。用花括号将变量名括起来。或者将字符串分隔成几个部分,再用连接符(.)串起来:
$what = “ brontosaurus steak ”;$n = 3;print “fred ate $n $whats.n”;# 不是 steaks,而是$whats的值 print “fred ate $n ${what}s.n”;# 现在是使用变量$what print “fred ate $n $what”.“ s.n”;#另一种方法
print ‘fred ate ’.$n.‘’.$what.“ s.n ”;#一种复杂的方法
35!= 30+5 #false 35 == 35.0 #true ‘35’eq‘ 35.0’ #false(按照字符串比较)‘fred’ lt ‘barney’ #false ‘fred’ lt ‘free’ #true ‘fred’ eq ‘fred’ #true ‘fred’ eq ‘Fred’ #false ‘’gt ‘’ #true
if($name gt ‘ fred’),print “ ‘ $name’ comes after ‘ fred ’ in sorted order.n”;}else{ print “ ‘ $name’ does not come after ‘ fred’.n”;print “ Maybe it’ s the same string, in fact.n”;}
$text = “ a line of textn”;#也可以由
chomp($text =
defined 函数,它将在为undef时返回 false,其余返回 true $madonna =
小写的字母 x 表示。这种操作能把操作符左边字符串重复操作符右边数字那么多次: “fred”x 3 # “fredfredfred” 例子2.5将给出换行的事例
数组下标可以是任何能返回数值的表达式。如果其值不为整数,则自动将其转换为小于它的最大整数值:$number = 2.71828;print $fred[$number100]’;#得到‘ bedrock’ , 第 0 个元素 $rocks[-200] = ‘ crystal’;# 严重错误(fatal error!)
数组是由括号括起来并且其元素由逗号分隔开的列表。(1,2,3)# 含有 1,2,3 的列表(1,2,3,)# 同上,最后一个逗号被忽略()# 空列表-0 个元素(1 ..100)# 包含 100 个整数的列表(1 ..5)#同(1,2,3,4,5)(1.7 .. 5 .7)#同上—最小值和最大值被转换成整数(5 ..1)#空列表—..中的左值应小于右值,否则为空(0,2 .. 6,10,12)#同(0,2,3,4,5,6,10,12)($m ..$n)# 由$m 和$n 的值决定(0 .. $#rocks)#上节中有$#rocks 的介绍 用qw表示数组: qw!fred barney betty wilmadino!qw# fred barney betty wilmadino # #有些像注释 qw(fred barney betty wilmadino)qw{fred barney betty wilmadino } qw[fred barney betty wilmadino ] qw
@giant = 1..1e5;#包含 100,000 个元素的表
@stuff =(@giant, undef, @giant);#包含 200,001 个元素的表
@rocks = qw / bedrock slate lava /;@tiny =();#空表
@giant = 1..1e5;#包含 100,000 个元素的表
@stuff =(@giant, undef, @giant);#包含 200,001 个元素的表 @copy = @quarry;#将一个数组中的值拷贝的另一个数组中
pop 操作将数组的最后一个元素取出并返回: @array = 5..9;$fred = pop(@array);#$fred得到 9,@array 现在为(5,6,7,8)$barney = pop @array;#$barney gets 8, @array 现在为(5,6,7)pop @array;#@array 现在为(5,6)(7 被丢弃了)
pop 相反的操作是 push,它可以将一个元素(或者一列元素)加在数组的末尾: push(@array,0);#@array 现在为(5,6,0)push @array,8;#@array 现在为(5,6,0,8)push @array,1 ..10;#@array 现在多了 10 个元素 @others =qw/9 0 2 1 0 /;push @array,@others;#@array 现在又多了 5 个元素(共有 19 个)push 的第一个参数或者 pop 的唯一参数必须是数组变量。
unshift和
shift 对一个数组的开头进行操作(数组的左端有最小下标的元素)。下面是一些例子: @array = qw# dinofred barney #;$m = shift(@array);#$m 得到“dino” , @array 现在为(“fred” , “ barney”)$n = shift @array;#$n 得到”fred” , @array 现在为(“ barney”)shift @array;#@array 现在为空
$o = s hift @array;#$o 得到undef, @arry仍为空 unshift(@array,5);#@array 现在为(5)unshift @array,4;#@array 现在为(4,5)@others = 1..3;unshift @array, @others;#array 现在为(1,2,3,4,5)
@rocks = qw{flintstone slate rubble };print “ quartz @rocks limestone n ”;# 输出为 5 种 rocks 由空格分开
$email = “ fred@bedrock.edu”;#错误!将会替换@bedrock $email = “ fred@bedrock.edu”;#正确
$email = ‘ fred@bedrock.edu’;# 另一种方法
只有一个元素的数组的被其值替换的行为和你预期的类似: @fred = qw(hello dolly);$y = 2;$x = “ This is $fred*1+’ s place”;# “ This is dolly’ s place” $x = “ This is $fred[$y-1]’ s place”;# 同上
@fred = qw(eating rocks is wrong);$fred = “ right ”;#我们将打印“ this is right[3] ”
print “ this is $fred[3] n ”;#打印出“ wrong”使用 $fred[3] print “ this is ${fred}[3] n ”;# 打印出“ right”(由花括号分开)print “ this is $fred”.“ [3] n”;#正确(两个字符串,右.分开)print “ this is $fred [3] n”;# 正确(利用反斜线转义)
foreach从列表的第一个元素一直循环执行到最后一个元素,一次迭代一个:
foreach $rock(qw/ bedrock slate lava /){print “ One rock is $rock.n”;#打印出 3 种 rocks
reverse(逆转)操作将输入的一串列表(可能是数组)按相反的顺序返回 @fred = 6 ..10;@barney = reverse(@fred);# 得到 10,9,8,7,6 @wilma = reverse 6 .. 10;#同上,没有使用额外的数组 @fred = reverse @fred;#将逆转过的字符串存回去
sort 操作将输入的一串列表(可能是数组)根据内部的字符顺序进行排序 @rocks = qw/ bedrock slate rubble granite /;@sorted = sort(@rocks);#得到 bedrock, granite, rubble, slate @back = reverse sort @rocks;#为 slate 到 bedrock @rocks = sort @rocks;#将排序的值写回@rocks @numbers = sort 97 .. 102;# 得到 100,101,102,97,98,99
标量和列表上下文
+ something #something 必须是标量 sort something #something 必须是列表
如果 something 是相同的字符串,在一种情况下,它返回一个变量值,在另一种情况下,它可能返回列表◆。Perl 中的表达式将根据其 context 返回适当的值。
在列表 context 中,它返回反转的列表。在标量 context 中,返回反转的字符串(或者将反转的结果串成一个字符串):
@backwards = reverse qw / yabbadabba doo /;# 返回 doo, dabba, yabba $backwards = reverse qw/ yabbadabba doo /;# 返回oodabbadabbay
函数 scalar它不是一个真实的函数因为其仅是告诉 Perl 提供一个标量 context: @rocks = qw(talc quartz jade obsidian);print “ How many rocks do you have?n”;
print “ I have ” , @rocks, “rocks!n”;# 错误,输出 rocks 的名字 print “ I have ” , scalar @rocks, “ rocks!n ”;#正确,输出其数字
@lines =
所有的 Perl 子程序都会返回值,在 Perl 中返回值和不返回值是没有区别的。当 Perl 遍历此子程序时,将会计算每一步的值。此子程序中最后计算的值将被返回。最后一个被计算的表达式是 print 语句。其返回值通常为 1。用my创建私有变量。使用 my 创建新的,私有数组:my @phone_number。sub max { my($m,$n);#新的,私有变量($m,$n)= @_;#赋值 if($m > $n){$m} else{$n} } my($m,$n)= @_;
hash看作一堆数据(a barrel of data),每一个数据都有一个相应的标签。可以通过标签(key)访问此标签对应的元素(value)$hash{$some_key} $family_name, “ fred”= “ rubble”;
$family_name{“fred” } = “astaire”;# 将新值赋给已经存在的元素
$family_name{ “wilma” } = “flintstone”;#新增一个 key(也包括 value)$family_name{ “ betty” }.= $family_name{“ barney ” };#创建一个新元素 $grantie = $family_name{“larry” };#没有larry:得到undef %some_hash =(“foo”, 35, “bar”, 12.4, 2.5, “hello”, “wilma”, 1.72e30, “betty”, “bye n”);@array_array = %some_hash;%new_hash = %old_hash;将%old_hash展开成 key/value 的列表,再将其赋给%new_hash,其将 key/value 对一个一个加入的。%inverse_hash = reverse %any_hash;
my %last_name =(“fred” => “flintstone”, “dino” =>undef,“barney”=> “rubble”;“betty”=> “rubble”,);上面代码中,很容易辨别出哪一个是 key,哪一个是 value。注意列表中最后一个逗号
my %hash =(“a” =>1, “ b”=>2, “ c ”=>3);my @k = keys %hash;my @v = values %hash;
my $count = keys %hash;#得到 3,是指有 3 个 key/value 对。
each 函数,它将返回 key/value 对的2元素列表。一般只在 while 循环中使用 each: while(($key, $value)= each %hash){ print “ $key => $valuen”;
}while 循环的条件表达式,这是在标量 context 中。列表赋值语句在标量 context 中返回的是元素的个数,在本例中,是2。
each 返回的 key/vlaue对,顺序是混乱的(它其顺序和 keys 和 values 函数返回的顺序相同)。如果想将其按序排放,可以对它们排序(使用 sort),大致如下: foreach $key(sort keys %hash){ $value =$hass{$key};print “ $key => $valuen”;
#也可以不使用额外的临时变量$value #print “ $key => $hash,key-n”;}
exists 函数,如果 hash 中存在此 key,则返回 true,这和 是否有对应的 value 无关: if(exists $books{$dino}){ print “ Hey, there’ s a libaray card for dino!n ”;}
delete 函数将某个给定的 key(包括其对应的 value)从 hash 中删除。(如果不存在这个 key,则什么也不做;不会有警告或者错误信息。)my $person = “ betty”;
delete $books{$person};#将$person 的借书卡删除掉
在双引号的字符串中使用单个 hash 元素: foreach $person(sort keys %books){ if($books{$person}){ print “ $person has $books{$person} items n ” #fred有3个 } }
正则表达式,在 Perl 中通常被称为模式(pattern):某个模板是否匹配某个字符串.某个给定的模式将这些字符串分成两类:一类是能匹配的,一类是不能匹配的。
要匹配某个模式(正则表达式)和$_的关系,可以将模式放在正斜线(//)之间,如下: $_ = “ yabbadabba doo”;if(/abba/){ print “ It matched!n”;
}模式匹配通常返回 true 或 false,因此经常用在 if 或 while 的条件表达式部分
引入特殊字符的原因,它们被叫做元字符(metacharacters),在正则表达式中具有特殊的含义。点(.)是通配符,它可以匹配任何单个的字符,但不包括换行符(“ n ”)。因此,模式/bet.y/将匹配 betty。同时也匹配betsy ,bet=y , bet.y,或者说任意字符串后接 bet, 然后是任意的单个字符(不包括换行符),后接 y。如果只希望点(.)匹配句号,可以使用反斜线。这条规则对 Perl 正则表达式中所有元字符均有效:元字符前使用反斜线将使它变成普通的字符。反斜线是第二个元字符。如果需要真正的反斜线,需要重复使用两个反斜线。
星号(*)表示匹配前一项0次或者多次。.* 将匹配任意多个任意字符(不含换行符)的字符串。加(+)的意思是可以匹配前面一项的一个或多个。问号(?),其含义是前面一个项出现一次,或者不出现。括号(())用来表示分组。例如,模式/fred+/ 能匹配上如fredddddddd,这样的字符串,但这种字符串在实际中没有什么用途。模式/(fred)+/能匹配上像fredfredfred这样的字符串。
竖线(|),在这种用法中通常被读作“或(or)”,意思是匹配左边的或者右边的。
字符类,是方括号[]中的一列字符,可以匹配上括号内出现的任意单个字符。它匹配一个字符,但这个字符可以是列中的任意一个。字符类前使用符号^将取此字符类的补集。也就是说,[ ^def ]]将匹配上这三个字符中之外的任意单个字符。[^n-z]将匹配上 n,-, z 之外的任何字符。
任何数字的类,[0-9],可以被简写为:d。w 被称作“ word’字符:[A-Za-z0-9_]。
s 对于匹配空白(whitespace)将非常方便。它等价于[ f tnr ],其含 5 个空白字符:格式符(form-feed);制表符(tab),换行符,回车,以及空格符。使用[^ d] , [^ w], 和[^ s],其含义分别是,非数字的字符,非 word(记住我们对 word 的定义)的字符,和非空白的字符。也可以使用它们对应的大写形式:D, W, S 来完成。[ dD],它的意思是任何数字,和任何非数字,则意指任何字符。
不区分大小写:/I匹配 FRED 时,也能匹配上fred, Fred,可以使用修饰符 /i: print “ Would you like to play a game? ”;chomp($_ =
print “ In that case, I recommend that you go bowling.n”;}
匹配任何字符:/s
b,是针对单词使用的。如/bfred b/可以匹配上单词fred,但不能匹配frederick
符号^(脱字字符◆)表示在字符串的开头进行匹配,而符号$则表示在结尾◆
只想要一个词界锚定,当使用 / bhunt/ 将匹配上像 hunt , hunting , hunter,这样的单词,但不会匹配 shunt,而/stoneb/ 将匹配 sandstone, flintstone,而不能匹配上 capstones。非词界锚定为B。它将在任何非b 匹配的点上进行匹配。因此,模式/bsearchB/将匹配 searches , searching, searched , 但不能匹配 search,或者 researching。
匹配上的那部分字符串将自动存储在$&之中。$`中含有正则表达式引擎在匹配成功前所找到的变量,而$'为此模式还没有匹配的剩余部分。
花括号({}),花括号中有 2 个数字,由逗号隔开,表示前面一项允许重复的次数。模式/a{5,15}/将匹配 5 个到 15 个 a 中的任意一个(包括 5,和 15)。星号(*)等同于{0,},表示 0 个或多个。加号(+)等同于{1,},表示 1 个或多个。而问号(?)则等同于{0,1}。
1.在此优先级表的最顶端是括号:(()),在分组和引用内存值的时候使用。括号内部的任何部分比括号外的部分结合更紧 密。
2.第二级是数量词。这里有星号(*), 加号(+),问号(?)以及由花括号表示的数量词,如{5,15}, {3, }, {5}等。它们通常 和前一项元素结合。3.第三级的是锚定和序列(sequence)。锚定包括(^)表明字符串的开头,($)表明结尾,(b)词界符,(B)非词界符。序列(一
个元素紧接着一个元素)实际上是一种操作,虽然它没有使用元字符。这段话的含义是一个单词中的字母结合更紧密,就 像锚定紧贴字母一样。
4.优先级最低的是竖线(|),表示或。由于其优先级最低,它通常将模式划分成几个部分。它在优先级最底端是因为我们希
望像|/fred|barney/ 里面的字母比或(|)结合更紧密。如果或(|)的优先级比序列的优先级更高, 那么,上述模式的含义是匹配fre, 接着是 d 或者 b , 然后是arney。因此,或(|)的优先级最低,字母序列的优先级要高些。s ///操作的则类似于“查询并替换(search and replace)”。它将替换变量中◆模式所匹配上的部分:$_ = “ He’ s out bowling with Barney tonight.”;s/Barney/Fred/;#Barney 被 Fred 替换掉 print “ $_n”;
如果没有匹配上,则什么也不会发生,此变量也不会有任何更改:s/// 会返回一个 Boolean 值。如果成功替换则返回 true ;否则返回 false。
修饰符/g 要求 s/// 将不相重叠◆的所有匹配上的部分都进行替换: $_ = “home, sweet home!”;s/home/cave/g;print “ $_n”;# “ cave, sweet cave!”;
全局替换的一个常用地方是将多个空格用单个空格替换掉:
$_ = “ Input data t may hav e extra whitespace.”;s/s+/ /g;#现在是“ Input data may have extra whitespace.”
s/^s+//;#将开头的空白去掉 s/s+$//;#将结尾的空白去掉
除了/g 修饰符外◆,替换操作中还可以使用/i , /x, 和 /s,这些在普通的模式匹配中已经出现过的修饰符。
U 要求紧接着的均是大写: $_ = “ I saw Barney with Fred.”;
s/(fred|barney)/U$1/gi;#$_ 现在是“ I saw BARNEY with FRED.”
要求后面的均为小写:L:
s/(fred)|barney/L$1/gi;#$_现在是“ I saw barney with fred.”
split,它根据某个模式将字符串分割开。这对于由制表符分割开,冒号分割开,空白分割 开,或者任意字符分割开的数据是非常有用的◆。任何可在正则表达式之中(通常,是一个简单的正则表达式)指定分离符(separator)的地方,均可用 split。@fields = split /separtor/, $string;split◆将模式同字符串进行比较,将由分离符所分隔开的子串作为列表返回回来 @fields = split /:/, “abc:def:g:h”;#返回(“abc” , “def” , “ g” , “ h”)可能得到空的元素,如果其中有两个分隔符是连在一起的:
@fields = split /:/, “abc:def::g:h”;#得到(“abc” , “def” , “” , “ g” , “ h”)这里有一条规则:开头的空元素会被返回,但结尾的空元素被丢弃◆空白/ s+/这个模式进行分割是非常常见的。在这个模式下,所有的空白等价于单个空格: my $some_input = “ This is a t test.n”;
my @args = split /s+/, $some_input;#(“ This ” , “ is” , “ a ” , “ test.”)默认时,split 对$_操作,模式为空白: my @fields = split;#同 split / s+/, $_;
join 函数将这些分割的部分组合成一个整体。join 函数类似于: my $result = join $glue, @pieces;join 函数的第一个参数是粘合元素(glue),它可以是任意字符串 my $x = join “ :” , 4, 6, 8, 10, 12;#$x 为“ 4:6:8:10:12”
在fred and barney went bowling last night 上使用/fred.+barney/ 进行匹配.+,它将匹配除了换行符之外的任意字符,次数大于等于一。但,由于加号(+)是贪婪的;它将尽可能的进行匹配。因此,它将匹配剩余的所有字符串
在fred and barney went bowling last night 上使用/fred.+?barney/ 进行匹配 不是使用加号(+), 而是使用非贪婪的数量词 +?,它将匹配一次或 多次(加号的意思),但其匹配尽可能少的次数,而非尽可能多的次数
第二篇:office软件学习心得
Excel的功能很强大。我刚使用Excel的时候,那时觉得并没有什么出奇的地方,认为仅仅是一个成绩统计的工具,排排名次、算算平均分。工作几年发现excel的功能不是一般的强大,可平常应用还是仅限于简单的成绩统计,而没有进一步深入系统的学习,想想还是自己比较懒惰。如果能够学会excel,基本上很多其他的数据处理软件都不需要了。很高兴有了这样一个学习的机会,通过学习也确实掌握了不少原来不会的实际应用。
经过短短的三天实习,我们学会了利用WORD设计教材封面、邀请函。在完成实习任务的同时,我也温习了课本,更学到了以前没有学到的许多东西。
在电子信息技术高速发展的当今社会,互联网已经成为了联系世界各国的桥桥梁和纽带,成为了人们快速获取信息、发布信息和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。因此,网站建设的地位就显而易见了。它已经成为了政府、企事业单位信息化建设的重要组成部分,备受人们的关注。
计算机将具备更多的智能成分,它将具有多种感知能力、一定思考能力与判断能力及一定的自然语言能力。除了提供自然的输入手段(如手写输入、语音输 入)外,让人们能产生身临其境的感觉的各种交互设备已经出现,将虚拟的电子技术现实化,在这里得到了集中体现。今天,人们谈到计算机必然把它同网络技术联系起来,孤立的未加入网络技术的计算机已经越来越少了。人们通过网络,可以更多的共享计算机硬件资源、软件资源和信息资源。“网络就是计算机”的概念,已经被人们逐渐接受。
通过本次实习,我认识到自己的计算机只是还很缺乏,有许多知识都还不是很清楚,等遇到要用的时候,还需要去翻书才能了解。相信在以后的工作和学习中,我会努力学习,克服困难,把自己的计算机技术学好,适应这个社会的发展,成为一个合格的大学生。
第三篇:SPSS软件学习心得(模版)
SPSS软件学习心得
SPSS(Statistical Product and Service Solutions),名称是“统计产品与服务解决方案”软件。SPSS软件的统计分析步骤:
(1)读入数据文件,或直接建立SPSS数据文件,或调用其它类型的数据文件,如:Excel、纯文本文件等;
(2)调用统计分析程式或模板;
(3)选择变量,设定参数并运行;
(4)查看统计分析输出结果。
SPSS的主要功能分为两个方面:一个是对数据文件的建立和管理;另一个是提供了各种统计分析方法。对数据文件的建立和管理主要通过Data菜单和Transform菜单实现,可以对数据进行修改编辑、查找、排序、合并、分割、抽样、加权、重新编码、编秩、设定种子数及计算或转换新的变量等多种功能;提供各种统计分析方法则是通过Analyze菜单实现.可以对数据集进行一般统计分析,如描述性统计、探索性分析、t检验、单因素和多因素方差分析、协方差分析、四格表和列联表卡方检验、相关分析、线性回归分析、非参数检验、生存分析等。
特点:不需编程,完全采用菜单和对话框的操作方式,绝大多数操作过程仅靠鼠标点击即可完成,简便易学,易于操作;具备完备的统计图表制作功能,能绘制精美的统计图表,并可以极其方便地对其编辑和修饰。
应用例子:如为了科学合理的评估和开发利用河北省土壤中水分,并在不同地区因地制宜的采取相应措施,选定了干旱指数、土壤质地和植被等指数,用层次分析法,计算出每个指标的权重,利用SPSS统计软件,对河北省土壤水资源进行分类,细分为了8类,实现了有效合理地利用土壤水分。
第四篇:AutoCAD2000软件学习心得[定稿]
AutoCAD2000软件学习心得
翻过很多CAD的教材,觉得如果对照那些教材学习CAD的话,确实都能够在一定程度上掌握这个软件。但是,我觉得这远远不够,从书本到实战,还有一大段距离。但在网上资料的帮助下加上这段日子的实际刻苦操练,基本已掌握CAD软件的制图方法,并有一些自己的心得体会:
1、基础很重要
实践证明,“手工图板”绘图能力是计算机绘图能力的基础,学习《AutoCAD》,需要一定的画法几何的知识和能力,需要一定的识图能力,尤其是几何作图能力,一般来说,具有绘画功底的人,学起来较容易些,效果较好!
2、循序渐进
整个学习过程应采用循序渐进的方式,先了解计算机绘图的基本知识,如相对直角坐标和相对极坐标等,使自己能由浅入深,由简到繁地掌握AutoCAD 202_的使用技术。
3、学以致用
在学习AutoCAD 202_命令时始终要与实际应用相结合,不要把主要精力花费在各个命令孤立地学习上;要把学以致用的原则贯穿整个学习过程,以使自己对绘图命令有深刻和形象的理解,有利于培养自己应用AutoCAD 202_独立完成绘图的能力。
4、熟能生巧
配套的《计算机绘图习题集》作为上机实验书,它能使我们更加深入地理解、熟练AutoCAD 202_的命令。要强迫自己做几个综合实例,分别详细地进行图形的绘制,使自己可以从全局的角度掌握整个绘图过程,力争使自己学习完AutoCAD 202_课之后就可以投身到实际的工作中去。
掌握技巧
1、常见问题要弄懂
(1)同样画一张图,有的同学画的大小适中,有的同学画的图形就很小,甚至看不见,这是为什么?
这是因为绘图区域界限的设定操作没有做,或虽用LIMITS命令进行了设定,但忘记了用ZOOM命令中的ALL选项对绘图区重新进行规整。绘图区域的设定是根据实际的绘图需要来进行的。
(2)有同学用线型名称为“HIDDEN”的线型画线段,但发现画出的线段看上去像是实线,这是什么原因引起的?
这是“线型比例”不合适引起的,也就是说“线型比例”太大,也可能是太小。解决问题的办法是将线型管理器对话框打开,修改其“全局比例因子”至合适的数值即可。
(3)在进行尺寸标注以后,有时发现不能看到所标注的尺寸文本,这是什么原因引起的?
这是因为尺寸标注的整体比例因子设置得太小,将尺寸标注方式对话框打开,修改其数值变大即可。
以上三个问题仅仅是我的同学们上机过程中遇到的最典型的三个问题和困难。实际问题不胜枚举,作为学员彻底弄懂这些问题,很有必要,对提高绘图质量和效率很有帮助。
2、有比较,才有鉴别
容易混淆的命令,要注意使自己弄清它们之间的区别。如ZOOM和SCALE,PAN和MOVE,DIVIDE和MEASURE等等。
3、层次要分明
图层就像是透明的覆盖图,运用它可以很好地组织不同类型的图形信息。学习过程中,我的同学图省事,直接从对象特性工具栏的下拉列表框中选取颜色,线型和线宽等实体信息,这很不好,使得处理图形中的信息不那么容易,要特别注意纠正自己的这一不好习惯。严格做到层次分明,规范作图。我的体会是:养成良好的习惯,受益匪浅。
4、粗细要清楚
能够显示实体的线宽是AutoCAD 202_的新功能。使用线宽,可以用粗线和细线清楚地展现出部件的截面,标高的深度,尺寸线以及不同的对象厚度。作为学员,一定要通过图层指定线宽,显示线宽。提高自己的图纸质量和表达水平。
5、内外有别
利用AutoCAD 202_的“块”以及属性功能,可以大大提高绘图效率。“块”有内部图块与外部图块之分。
内部图块是在一个文件内定义的图块,可以在该文件内部自由作用,内部图块一旦被定义,它就和文件同时被存储和打开。
外部图块将“块”的主文件的形式写入磁盘,其他图形文件也可以使用它,要注意这是外部图块和内部图块的一个重要区别。
6、滴水不漏
图案填充要特别注意的地方是构成阴影区域边界的实体必须在它们的端点处相交,也就是说要封闭,要做到“滴水不漏”;否则会产生错误的填充。作为学员最好还要学会如何查找“漏洞”,修复错误。
7、写文字要规范
文字是工程图中不可缺少的一部分,比如:尺寸标注文字、图纸说明,注释、标题等,文字和图形一起表达完整的设计思想。尽管AutoCAD 202_提供了很强的文字处理功能,但符合工程制图规范的文字,并没有直接提供。因此要学会设置“长仿宋体”这一规范文字。具体操作的简要步骤是,打开“文字样式”对话框,新建一个样式,可取名为“长仿宋体”,对话框中字体名改为选用“仿宋体GB-2312”,宽度比例也要改为0.67。尺寸标注的文字可改为“italic.shx”代替“仿宋体GB-2312”。
另一种作用规范文字更简单的方法是,直接使用AutoCAD 202_样板文件提供的“工程字”样式;注意,使用前要用“使用模板”方式启动AutoCAD 202_,选择国标标题(如:GBA3)进入绘图状态。再将“工程字”样式置为当前工作样式。这种方法,大多数教科书中没有提及,作为学员要注意补充一下这一训练。
8、特殊字符,特殊处理
实际绘图中,常需要输入一些特殊字符,如角度标志,直径符号等。这些中利用AutoCAD提供的控制码来输入,较易掌握。
另一些特殊字符,如“τ”、“α”、“δ”等等希腊字母的输入,掌握起来就不那么容易了。它要用到MTEXT命令的“其他„”选项,拷贝特殊字体的希腊字母,再粘贴到书写区等操作。尤其要注意字体的转换等编辑。
还有一些特殊文本,如“φ”在机械制图中应用较多,叫做带上、下偏差的尺寸公差标注,也可用MTEXT命令的“堆叠”功能来实现。这样做远比在尺寸标注对话框中调节相应功能数值方便得多。我个人的体会是:特别方便!
9、不依规矩,不成方圆
工程标注是零件制造、工程施工和零部件装配时的重要依据。在任何时候一幅工程图中,工程标注是不可少的重要部分。在某些情况下,工程标注甚至比图形更重要。
我的许多同学不怕绘图,怕标注;原因之一是尺寸标注方式对话框里选项太多,自己又理解不清,更不知道这些选项之间如何配合,所以往往很难达到理想的标注效果。
为此,除应弄清对话框里各选取项的含义及常用值外,还应督促自己学习时应遵守如下五个规程:
1、为尺寸标注创建一个独立的层,使之与图形的其他信息分开,便于进行各种操作。
2、为尺寸文本建立专门的文字样式(如前述“长仿宋体”)和大小。
3、将尺寸单位设置为所希望的计量单位,并将精度取到所希望的最小单位。
4、利用尺寸方式对话框,将整体比例因子设置为绘制图形时的比例因子。
5、充分利用目标捕捉方式,以便快捷拾取寻找点。
10、两个空间、两个作用,两个练习
在AutoCAD 202_环境中有两种空间:模型空间和图纸空间,其作用是不同的。一般来说,模型空间是一个三维空间,主要用来设计零件和图形的几何形状,设计者一般在模型空间完成其主要的设计构思;而图纸空间是用来将几何模型表达到工程图之上用的,专门用来进行出图的;图纸空间有时又称为“布局”,是一种图纸空间环境,它模拟图纸页面,提供直观的打印设置。目前的设计方向是进入三维的零件建模和设计,那么零件设计好之后需要表达到工程图上时,需要对其进行各个角度的投影,标注尺寸,加入标题栏和图框等等操作,此时在模型空间已经不能方便地进行这些操作了,在图纸空间则非常方便。在图纸空间中可能创建并放置视口对象,还可以添加标题栏或其他几何图形。可以在图形中创建多个布局以显示不同视图,每个布局可以包含不同的打印比例和图纸尺寸。布局显示的图形与图纸页面上打印出来的图形完全一样。
为了使自己深刻理解“图纸空间”的作用,学习时,要根据老师要求求至少做两个这方面的实际例子,巩固“图纸空间”的概念。不得偷懒!
11、九九归一
计算机绘图的目标就是要使设计的结果在生产实践中发挥作用。目前的设计结果基本上以纸基图纸的方式进入到生产中,同时,在设计单位,纸基的图纸也是图纸档案管理的主要对象。虽然计算机辅助设计的发展方向是达到设计、生产的无纸化,但除了极少数巨型的制造企业外,绝大多数普通的设计生产单位还是以纸基图作为组织设计生产的依据。因此,怎样将AutoCAD 202_设计产生的电子格式的图纸转换成描绘在规定幅面上的纸基格式的图纸,是一个与生产实际结合得非常紧密的问题,在某种意义上来说,这一步与图形的修改、编辑等绘图过程同等重要。
因此,“打印”的学习,除了弄清楚对话框的使用外,还应积极参加老师组织的一次演示课,使自己真实感受一下“计算机绘图”的这一最后环节。
综上所述,学然后知不足。AutoCAD还有许多实用的功能,尤其是一些三维功能。学无止境,只要大家在学习中善于总结和归纳,一定能找到最佳学习方法。
第五篇:软件编程学习心得
软件编程学习心得
随着计算机技术的发展和工作的需要,为了能够更好的维护公司生产管理系统;公司安排我们到北大青鸟APTECH进修。我们选择了时下最流行、发展速度较快的语言C#。C#学习共分三个阶段,目前我只学习了第一个阶段;现将我在北大青鸟学习第一阶段为期两个月的学习心得总结如下:
C#是一种新的面向对象的编程语言,专门用于.NET运行时。C#编译器只能生成受管制的代码,也可以使用.NET基类。C#语言自C/C++演变而来。但是,它具有简单、现代、完全面向对象和类型安全等诸多特性。下面就简单说说简单和现代其中两种特性。
1、简单
C#具有C++所没有的一个优势就是学习简单。该语言首要的目标就是简单。很多功能(还不如说是缺少了C++的一些功能)有助于C#全方位的简单。
在C#中,没有C++中流行的指针。默认地,您工作在受管理的代码中,在那里不允许如直接存取内存等不安全的操作。我想没有C++程序员可以声称,从没有使用指针访问过不属于他们的内存。
C#弃用其它操作符,名字空间、成员和引用仅使用单个操作符 “.”。现在一个程序员所需要理解的就是嵌套名字的注解了。
C#使用统一的类型系统。这种系统充许您把各种类型作为一个对象查看,它是一个原始类型还是一个full-blown 类。和其它编程语言相比,由于加框(boxing)和消框(unboxing)的机制,把简单类型当作对象处理并不能获得性能的改善。稍后将详细解释加框和消框,但基本上仅当需要时才使用对象访问简单类型这种技术。
2、现代
投入学习C#的努力是一笔大投资,因为C#是为编写NGWS 应用程序的主要语言而设计。很多用C++可以实现或者很费力实现的功能,在C#中不过是一部分基本的功能而已。根据应用程序的特殊需求,可以很容易地创建出新的一种数据类型。
指针不再是编程武器的一部分。运行时NGWS提供了一个垃圾收集器,负责C#程序中的内存管理。因内存和应用程序都受到管理,所以很必要增强类型安全,以确保应用的稳定性。
异常处理是C#的主要功能。C#的异常处理与C++的不同点在于它是交叉语言的(运行时的另一个功能)。在没有C#之前,您必须处理怪异的HRESULTs,但现在由于使用了基于异常的健壮的出错处理,这一切都结束了。
对于现代的应用程序,安全是首要的,C#也不会例外。它提供了元数据语法,用于声明下述NGWS安全模式的能力和许可。元数据是NGWS运行时的一个关键的概念。
通两个多月学习,我能够很好的掌握C#语言的基本语句、语法以及老师补充的一些要点;能够编写简单的应用程序,例如电子邮件的收发等,为接下来的第二、第三阶段学习打下了良好的基础。