<?xml version="1.0" encoding="gb2312"?>

<!-- RSS generated by oioj.net on 4/16/2004 ; 感谢LeXRus提供 RSS 2.0 文档; 此文件可自由使用，但请保留此行信息 --> 
<!-- Source download URL: http://blogger.org.cn/blog/rss2.asp       -->
<rss version="2.0">

<channel>
<title>ccnu8的博客</title>
<link>http://blogger.org.cn/blog/blog.asp?name=ccnu8</link>
<description>ccnu8的博客</description>
<copyright>blogger.org.cn</copyright>
<generator>W3CHINA Blog</generator>
<webMaster>webmaster@blogger.org.cn</webMaster>
<item>
<title><![CDATA[考研小结与计划(1)]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=ccnu8&amp;id=8662</link>
<author>ccnu8</author>
<pubDate>2005/9/17 23:43:51</pubDate>
<description><![CDATA[&nbsp;&nbsp;&nbsp; 明天是中秋节了,为了考研,今年没有回家.也许是长大了,现在比以前更恋家了.在外边真的好多事做自己去做,自己去想,而家里则是一个完全能够什么都不用想的地方,可能最让人头疼的事情是今天晚上吃什么!而在这里,吃什么都吃不过瘾,吃不爽!<BR>&nbsp;&nbsp;&nbsp; 不知道今天是我从开始准备考研的多少天,不过说习理话,考研到现在还是没有达到我原想的状态,听了两次新东方的讲课,考研真的是好难呀!有很多英语单词我都不认识,而那些是考研的核心词汇.到今天的0:00,还有120天,这120天就是决定是否能考的上的了,我的第一个计划是一定完不成以,但我想只要我的政治上多下点时间,可以将这次落下的补回来,不管怎么说吧,一定要在30号之前将政治看一遍,共英语的第一轮完成,这是本月的计划!<BR>&nbsp;&nbsp;&nbsp;&nbsp; 先写一下下个月的计划:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 启动英语阅读220篇<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.1----10.7&nbsp; 一周之内完成第二次的英语单词学习<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.8----10.18&nbsp;&nbsp;&nbsp; 十天看完专业课的两本书,只是过一次<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.18----10.25&nbsp;&nbsp; 一周内完成政治的第二次复习<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.25---10.30&nbsp;&nbsp; 补以前没有完成的内容并对程序题有一定练习<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (本月内有关于实习的事情一定要在最短时间内解决,且不能浪费零碎时间!)<BR>&nbsp;&nbsp;&nbsp;&nbsp; 11月要做的事情是:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1)做真题<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2)220继续,时间方面了在提高上来.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3)政治可能去做一下考研班,题目也要做的!<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4)专业课也不能放,将主要内容概念完成.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5)对程序的学习还是要多上机.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6)认识睡觉,不玩游戏!<BR>&nbsp; 暂时的计划就这样,希望在一个月之后再看时不会因为没有完成而叹惜,那是没有用的.前天李冬骂了我两句,说努力不是靠喊出来的,说的很对,谢谢她!明天上自习!<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>]]></description>
</item><item>
<title><![CDATA[考研日子第一篇]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=ccnu8&amp;id=8446</link>
<author>ccnu8</author>
<pubDate>2005/9/9 17:57:20</pubDate>
<description><![CDATA[
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">今天是我本来想准备教研的那一天的后两个半月，这两个半月中几本上就上了一个星期的自习，还是过程中全加起来。不过我完成了实习和本科中的最后一门考试。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">今天给家里打了个电话，虽然我已经完成实习半个月了，可是没有告诉家里，因为不想回家，本来是想在这里学习的，可是这么长时间都过去了，想一想真的是什么都没做，只上多学会了一个游戏</SPAN><FONT face="Times New Roman"> </FONT><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，不过也算是个收获吧。家里对我考研的希望很大，全心全意想我能考上，可是说实在的，我真的是没底。</SPAN><FONT face="Times New Roman"> </FONT><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">大学让我对所有的考试都怕起来，再没有高中时的那种精神了，也没有那种干劲了。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">教研时间不多了，还有四个月，对我来说要用两个月的时间将英语学好真不是一件简单的事情，何况还有三门课，不过为了能圆两个老人的愿望，我想我能尽力。本来写这个东西是为了鼓励自己的，可是写到现在，越来越不像话了！</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">总结过去，其实都是我放弃的太早了，从第一次的四级到最后一次的程序员考试，我都那么早放弃了，这也是我失败的最大原因。所以这次最重要的就是不能放弃，到最后一天，最后一小时，一分钟。第二就是我平时我够努力，以前可能是事情多，班长加上网站的工作，是借口，也是事实，那现在，我什么都不用做了，只剩下一件事做，那就是考研到底。其实早就不服的就是龚，我们都是在一起考，他却拿到了计算机三级，程序员的证书</SPAN><FONT face="Times New Roman"> </FONT><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，而我一样都没拿到，回想起来我做的真的是不如他，在考四级的时候也是一样的，我错了。想一想郑秋燕能得到那些，也是一样的，我比之不如啊！</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">快要年终小结了，今年不知道还有什么可写的。可能过的没有以前那么充实了。说到这里，我发现大家对我的印象似乎超过了我实际的能力，不知道为什么他们还觉得我在某引些方面不错，现在看来，我并没想到哪点比别人强。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">算了，不多写了，总之这次考研不放弃，这就是我今天最想写在上边的！</SPAN></P>]]></description>
</item><item>
<title><![CDATA[PHOTOSHOP 快捷键精中选精]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=ccnu8&amp;id=5426</link>
<author>ccnu8</author>
<pubDate>2005/4/30 23:24:36</pubDate>
<description><![CDATA[1，双击桌面是打开，按住CTR双击是新建（老生常谈了，却是重中之重，良好作图习惯的开始），其他的文件操作请用ALT F A和ALT F S（适用于任何软件，请于0.2秒内按完这三个键，检验标准：肉眼可看File菜单弹出不到一半即消失……咦，扯远了。）；
<P>&nbsp;&nbsp; &nbsp;2，“[”和“]”调节所有画笔啊橡皮啊图章金银财宝月光宝盒什么的的笔头大小，其调节范围远远超过面版上能找到的。传说没有压感笔的大瞎们就是熟练运用这个来模仿削尖画笔的，嘿嘿嘿嘿~~~</P>
<P>&nbsp;&nbsp; &nbsp;3，数字键快速调节图层和画笔的不透明度，当前工具是笔、橡皮、渐变等有透明选项的时候优先调节工具，否则调整当前图层。按下2就是20%，快按两下2，就是22%。按0则回到100%； </P>
<P>&nbsp;&nbsp;&nbsp; 4，在绝大多数含有数字的对话框里（有些滤镜不听使唤），上下方向键可以升降1个单位，配合SHIFT可以升降10个单位，同理应用于图层和选区的移动。并且！！SHIFT配合“-”和“+”快速调节图层的混合模式；</P>
<P>&nbsp;&nbsp; &nbsp;5，ALT的主要用处是调出前面某个操作的参数记忆。如CTRL F重执行滤镜的时候加个ALT使其可以编辑，CTRL L调色阶什么的时候就更明显了，用于小批量带微调的操作； </P>
<P>&nbsp;&nbsp;&nbsp; 6，最后是功能强大的空格键，除了那只手外，主要用于遮罩工具时的选区重定位。比如你要比着一个椭圆把外轮廓搞定，就可以配合空格不断的试。在复合选取的时候更是无可代替。同时还用于直线工具的起点重定位。<BR>F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 <BR>帮助 剪切 拷贝 粘贴 画笔 颜色 图层 信息 动作 未知 未知 恢复 　　　　　　　 Shift+ 填充 羽化 反选 　 键名 单键命令 组 合 键 Ctrl+ Shift+Ctrl Alt+Ctr Ctrl+Shift+Alt 　　　 <BR>A 直接选取工具 全选 &lt;无&gt; &lt;无&gt; &lt;无&gt; <BR>B 画笔工具 色彩平衡 &lt;无&gt; 色彩平衡（历史） <BR>C 裁切工具 拷贝 合并拷贝 <BR>D 前背景色复位 取消选择 重新选择 羽化 <BR>E 橡皮擦工具 合并图层 合并可见图层 盖印 盖印可见图层 <BR>F 屏幕切换 上次滤镜 褪去滤镜 上次滤镜（对话框） <BR>G 渐变工具 编组 取消编组 <BR>H 抓手工具 隐藏选区 隐藏路径 <BR>I 吸管工具 反相 反选 &lt;无&gt; &lt;无&gt; <BR>J 喷枪工具 拷贝为新层 剪切为新层 拷贝命名新层 剪切并命名粘贴 <BR>K 油漆筒工具 预置 &lt;无&gt; 预置(上次) &lt;无&gt; <BR>L 套索工具 色阶 自动色阶 色阶（历史） &lt;无&gt; <BR>M 选框工具 色彩曲线 &lt;无&gt; 曲线（历史） &lt;无&gt; <BR>N 铅笔工具 新文件 新图层 新文件(默认) 新图层(默认) <BR>O 减淡工具 打开 &lt;无&gt; 打开为 &lt;无&gt; <BR>P 钢笔工具 打印 页面设置 &lt;无&gt; &lt;无&gt; <BR>Q 快速蒙板 退出 &lt;无&gt; &lt;无&gt; &lt;无&gt; <BR>R 涂抹工具 显示标尺 &lt;无&gt; &lt;无&gt; &lt;无&gt; <BR>S 橡皮图章 存盘 存储为 存储副本 &lt;无&gt; <BR>T 文字工具 自由变换 规律移动 &lt;无&gt; 规律复制 <BR>U 度量工具 色相/饱和度 去色 色相/饱和度(历史) <BR>V 移动工具 粘贴 粘贴入 外部粘贴 <BR>W 魔棒工具 关闭文件 &lt;无&gt; &lt;无&gt; &lt;无&gt; <BR>X 前背景色互换 剪切 &lt;无&gt; <BR>Y 历史画笔 CMYK预览 色域警告 &lt;无&gt; <BR>Z 缩放工具 撤消/还原 逐步还原 逐步撤消 　<BR>　　 ~ 彩色通道预览 <BR>1 透明度调整 红色通道预览 调入红色通道 <BR>2 绿色通道预览 调入绿色通道 <BR>3 蓝色通道预览 调入蓝色通道 <BR>4 @通道1预览 调入@通道1 <BR>5 @通道2预览 调入@通道2 …… <BR>0 满屏显示 实际象素尺寸 <BR>Shift+ Alt+ [ 画笔减细 图层下移 移至底层 最小笔头 激活下一图层 ] 画笔加粗 图层上移 移至顶层 最大笔头 激活上一图层 Del/← 填充背景色 填充对话框 填充前景色 方向键 轻移(1象素) 轻移(10象素) 微调字符间距 + 添加锚点工具 扩大视窗 - 删除锚点工具 减小视窗 窗口调整 ； 显示参考线 贴紧参考线 锁定参考线 ” 显示网格 贴紧网格 　　　 Pageup 上卷一屏 左卷一屏 左卷10象素 上卷10象素 <BR>Pagedown 下卷一屏 右卷一屏 右卷10象素 下卷10象素 <BR>还原/重做前一步*作 [Ctrl]+[Z] 　 <BR>还原两步以上*作 [Ctrl]+[Alt]+[Z] 　 <BR>重做两步以上*作 [Ctrl]+[Shift]+[Z] 　 <BR>剪切选取的图像或路径 [Ctrl]+[X]或[F2] 　 <BR>拷贝选取的图像或路径 [Ctrl]+[C] 　 <BR>合并拷贝 [Ctrl]+[Shift]+[C] 　 <BR>将剪贴板的内容粘到当前图形中 [Ctrl]+[V]或[F4] 　 <BR>将剪贴板的内容粘到裖蛑?[Ctrl]+[Shift]+[V] 　 <BR>自由变换 [Ctrl]+[T] 　 <BR>应用自由变换(在自由变换模式下) [Enter] 　 <BR>从中心或对称点开始变换 (在自由变换模式下) [Alt] 　 <BR>限制(在自由变换模式下) [Shift] 　 <BR>扭曲(在自由变换模式下) [Ctrl] 　 <BR>取消变形(在自由变换模式下) [Esc] 　 <BR>自由变换复制的象素数据 [Ctrl]+[Shift]+[T] 　 <BR>再次变换复制的象素数据并建立一个副本 [Ctrl]+[Shift]+[Alt]+[T] 　 <BR>删除裖蛑械耐及富蜓∪〉穆肪?[DEL] 　 <BR>用背景色填充所选区域或整个图层 [Ctrl]+[BackSpace]或[Ctrl]+[Del] 　 <BR>用前景色填充所选区域或整个图层 [Alt]+[BackSpace]或[Alt]+[Del] 　 <BR>弹出“填充”对话框 [Shift]+[BackSpace] 　 <BR>从历史记录中填充 [Alt]+[Ctrl]+[Backspace] 　 <BR>调整色阶 [Ctrl]+[L] 　 <BR>自动调整色阶 [Ctrl]+[Shift]+[L] 　 <BR>打开曲线调整对话框 [Ctrl]+[M] 　 <BR>在所选通道的曲线上添加新的点(‘曲线’对话框中) 在图象中[Ctrl]加点按 　 <BR>在复合曲线以外的所有曲线上添加新的点(‘曲线’对话框中) [Ctrl]+[Shift] 　 <BR>移动所选点(‘曲线’对话框中) [↑]/[↓]/[←]/[→] 　 <BR>以10点为增幅移动所选点以10点为增幅(‘曲线’对话框中) [Shift]+[箭头] 　 <BR>选择多个控制点(‘曲线’对话框中) [Shift]加点按 　 <BR>前移控制点(‘曲线’对话框中) [Ctrl]+[Tab] 　 <BR>后移控制点(‘曲线’对话框中) [Ctrl]+[Shift]+[Tab] 　 <BR>添加新的点(‘曲线’对话框中) 点按网格 　 <BR>删除点(‘曲线’对话框中) [Ctrl]加点按点 　 <BR>取消选择所选通道上的所有点(‘曲线’对话框中) [Ctrl]+[D] 　 <BR>使曲线网格更精细或更粗糙(‘曲线’对话框中) [Alt]加点按网格 　 <BR>选择彩色通道(‘曲线’对话框中) [Ctrl]+[~] 　 <BR>选择单色通道(‘曲线’对话框中) [Ctrl]+[数字] 　　　<BR>打开“色彩平衡”对话框 [Ctrl]+[B] 　 <BR>打开“色相/饱和度”对话框 [Ctrl]+[U] 　 <BR>全图调整(在色相/饱和度”对话框中) [Ctrl]+[~] 　 <BR>只调整红色(在色相/饱和度”对话框中) [Ctrl]+[1] 　 <BR>只调整黄色(在色相/饱和度”对话框中) [Ctrl]+[2] 　 <BR>只调整绿色(在色相/饱和度”对话框中) [Ctrl]+[3] 　 <BR>只调整青色(在色相/饱和度”对话框中) [Ctrl]+[4] 　 <BR>只调整蓝色(在色相/饱和度”对话框中) [Ctrl]+[5] 　 <BR>只调整洋红(在色相/饱和度”对话框中) [Ctrl]+[6] 　 <BR>去色 [Ctrl]+[Shift]+[U] 　 反相 [Ctrl]+[I] 　 <BR>从对话框新建一个图层 [Ctrl]+[Shift]+[N] 　 <BR>以默认选项建立一个新的图层 [Ctrl]+[Alt]+[Shift]+[N] 　 <BR>通过拷贝建立一个图层 [Ctrl]+[J] 　 <BR>通过剪切建立一个图层 [Ctrl]+[Shift]+[J] 　 <BR>与前一图层编组 [Ctrl]+[G] 　 <BR>取消编组 [Ctrl]+[Shift]+[G] 　 <BR>向下合并或合并联接图层 [Ctrl]+[E] 　 <BR>合并可见图层 [Ctrl]+[Shift]+[E] 　 <BR>盖印或盖印联接图层 [Ctrl]+[Alt]+[E] 　　　 <BR>将当前层下移一层 [Ctrl]+&lt;] 　 <BR>将当前层上移一层 [Ctrl]+[&gt; 　 <BR>将当前层移到最下面 [Ctrl]+[Shift]+&lt;] 　 <BR>将当前层移到最上面 [Ctrl]+[Shift]+[&gt; 　 <BR>激活下一个图层 [Alt]+&lt;] 　 <BR>激活上一个图层 [Alt]+[&gt; 　 <BR>激活底部图层 [Shift]+[Alt]+&lt;] 　 <BR>激活顶部图层 [Shift]+[Alt]+[&gt; 　 <BR>调整当前图层的透明度(当前工具为无数字参数的,如移动工具) [0]至[9] 　 <BR>保留当前图层的透明区域(开关) [/] 　 <BR>投影效果(在”效果”对话框中) [Ctrl]+[1] 　 <BR>内阴影效果(在”效果”对话框中) [Ctrl]+[2] 　 <BR>外发光效果(在”效果”对话框中) [Ctrl]+[3] 　 <BR>内发光效果(在”效果”对话框中) [Ctrl]+[4] 　 <BR>斜面和浮雕效果(在”效果”对话框中) [Ctrl]+[5] 　 <BR>应用当前所选效果并使参数可调(在”效果”对话框中) [A] 图层混合模式 　 <BR>循环选择混合模式 [Alt]+[-]或[+] 　 <BR>正常 [Ctrl]+[Alt]+[N] 　 <BR>阈值（位图模式） [Ctrl]+[Alt]+[L] 　 <BR>溶解 [Ctrl]+[Alt]+[I] 　 <BR>背后 [Ctrl]+[Alt]+[Q] 　 清除 [Ctrl]+[Alt]+[R] 　 正片叠底 [Ctrl]+[Alt]+[M] 　 屏幕 [Ctrl]+[Alt]+[S] 　 叠加 [Ctrl]+[Alt]+[O] 　 柔光 [Ctrl]+[Alt]+[F] 　 强光 [Ctrl]+[Alt]+[H] 　 颜色减淡 [Ctrl]+[Alt]+[D] 　 颜色加深 [Ctrl]+[Alt]+[B] 　 变暗 [Ctrl]+[Alt]+[K] 　 变亮 [Ctrl]+[Alt]+[G] 　 差值 [Ctrl]+[Alt]+[E] 　 排除 [Ctrl]+[Alt]+[X] 　 色相 [Ctrl]+[Alt]+[U] 　 饱和度 [Ctrl]+[Alt]+[T] 　 颜色 [Ctrl]+[Alt]+[C] 　 光度 [Ctrl]+[Alt]+[Y] 　 <BR>去色 海棉工具+[Ctrl]+[Alt]+[J] 　 加色 海棉工具+[Ctrl]+[Alt]+[A] 　 <BR>暗调 减淡/加深工具+[Ctrl]+[Alt]+[W] 　 中间调 减淡/加深工具+[Ctrl]+[Alt]+[V] 　 高光 减淡/加深工具+[Ctrl]+[Alt]+[Z] 　 全部选取 [Ctrl]+[A] 　 <BR>取消选择 [Ctrl]+[D] 　 重新选择 [Ctrl]+[Shift]+[D] 　 <BR>羽化选择 [Ctrl]+[Alt]+[D] 　 反向选择 [Ctrl]+[Shift]+[I] 　 <BR>路径变选区 数字键盘的[Enter] 　 <BR>载入选区 [Ctrl]+点按图层、路径、通道面板中的缩约图 　 <BR>按上次的参数再做一次上次的滤镜 [Ctrl]+[F] 　 <BR>退去上次所做滤镜的效果 [Ctrl]+[Shift]+[F] 　 <BR>重复上次所做的滤镜(可调参数) [Ctrl]+[Alt]+[F] 　 <BR>选择工具(在“3D变化”滤镜中) [V] 　 <BR>立方体工具(在“3D变化”滤镜中) [M] 　 <BR>球体工具(在“3D变化”滤镜中) [N] 　 <BR>柱体工具(在“3D变化”滤镜中) [C] 　 <BR>轨迹球(在“3D变化”滤镜中) [R] 　 <BR>全景相机工具(在“3D变化”滤镜中) [E] 　 <BR>显示彩色通道 [Ctrl]+[~] 　 <BR>显示单色通道 [Ctrl]+[数字] 　 <BR>显示复合通道 [~] 　 <BR>以CMYK方式预览(开关) [Ctrl]+[Y] 　 <BR>打开/关闭色域警告 [Ctrl]+[Shift]+[Y] 　 <BR>放大视图 [Ctrl]+[+] 　 <BR>缩小视图 [Ctrl]+[-] 　 <BR>满画布显示 [Ctrl]+[0] 　 <BR>实际象素显示 [Ctrl]+[Alt]+[0] 　 向上卷动一屏 [PageUp] 　 向下卷动一屏 [PageDown] 　　　 向左卷动一屏 [Ctrl]+[PageUp] 　 向右卷动一屏 [Ctrl]+[PageDown] 　 向上卷动10 个单位 [Shift]+[PageUp] 　 向下卷动10 个单位 [Shift]+[PageDown] 　 向左卷动10 个单位 [Shift]+[Ctrl]+[PageUp] 　 向右卷动10 个单位 [Shift]+[Ctrl]+[PageDown] 　 将视图移到左上角 [Home] 　 将视图移到右下角 [End] 　 显示/隐藏选择区域 [Ctrl]+[H] 　 显示/隐藏路径 [Ctrl]+[Shift]+[H] 　 <BR>显示/隐藏标尺 [Ctrl]+[R] 　 显示/隐藏参考线 [Ctrl]+[;] 　 <BR>显示/隐藏网格 [Ctrl]+[”] 　 贴紧参考线 [Ctrl]+[Shift]+[;] 　 <BR>锁定参考线 [Ctrl]+[Alt]+[;] 　 贴紧网格 [Ctrl]+[Shift]+[”] 　 <BR>显示/隐藏“画笔”面板 [F5] 　 显示/隐藏“颜色”面板 [F6] 　 <BR>显示/隐藏“图层”面板 [F7] 　 显示/隐藏“信息”面板 [F8] 　 <BR>显示/隐藏“动作”面板 [F9] 　 显示/隐藏所有命令面板 [TAB] 　 <BR>显示或隐藏工具箱以外的所有调板 [Shift]+[TAB] 　　 <BR>文字处理(在”文字工具”对话框中) 　 <BR>左对齐或顶对齐 [Ctrl]+[Shift]+[L] 　 中对齐 [Ctrl]+[Shift]+[C] 　 <BR>右对齐或底对齐 [Ctrl]+[Shift]+[R] 　 左／右选择 1 个字符 [Shift]+[←]/[→] 　 下／上选择 1 行 [Shift]+[↑]/[↓] 　 选择所有字符 [Ctrl]+[A] 　 <BR>选择从插入点到鼠标点按点的字符 [Shift]加点按 　 左／右移动 1 个字符 [←]/[→] 　 下／上移动 1 行 [↑]/[↓] 　 左／右移动1个字 [Ctrl]+[←]/[→] 　 <BR>将所选文本的文字大小减小2 点象素 [Ctrl]+[Shift]+[&lt;] 　 <BR>将所选文本的文字大小增大2 点象素 [Ctrl]+[Shift]+[&gt;] 　 <BR>将所选文本的文字大小减小10 点象素 [Ctrl]+[Alt]+[Shift]+[&lt;] 　 <BR>将所选文本的文字大小增大10 点象素 [Ctrl]+[Alt]+[Shift]+[&gt;] 　 <BR>将行距减小2点象素 [Alt]+[↓] 　 将行距增大2点象素 [Alt]+[↑] 　 <BR>将基线位移减小2点象素 [Shift]+[Alt]+[↓] 　 <BR>将基线位移增加2点象素 [Shift]+[Alt]+[↑] 　 <BR>将字距微调或字距调整减小20/1000ems [Alt]+[←] 　 <BR>将字距微调或字距调整增加20/1000ems [Alt]+[→] 　 <BR>将字距微调或字距调整减小100/1000ems [Ctrl]+[Alt]+[←] 　 <BR>将字距微调或字距调整增加100/1000ems [Ctrl]+[Alt]+[→]
<SCRIPT language=javascript>postamble();</SCRIPT>
 </P>]]></description>
</item><item>
<title><![CDATA[学习一下吧]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=ccnu8&amp;id=5413</link>
<author>ccnu8</author>
<pubDate>2005/4/30 15:59:21</pubDate>
<description><![CDATA[<P>好久没有来了,学到现在了其实还是个菜鸟!学几个命令吧:</P>
<P>ipconfig</P>
<P>netstat</P>
<P>&nbsp;</P>]]></description>
</item><item>
<title><![CDATA[如何用CSS制作横向菜单?]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=ccnu8&amp;id=4861</link>
<author>ccnu8</author>
<pubDate>2005/4/11 21:17:27</pubDate>
<description><![CDATA[
<DIV id=ctitle>如何用CSS制作横向菜单?</DIV>
<DIV id=author>作者：阿捷 2005-4-11 16:54:52</DIV>
<STYLE type=text/css>
.test2 ul{list-style:none;}
.test3 ul{list-style:none;}
.test4 ul{list-style:none;}
.test5 ul{list-style:none;width:300px;}
.test3 li{float:left;}
.test4 li{float:left;width:100px;}
.test5 li{float:left;width:100px;}
.test6 ul{list-style:none;}
.test6 li{float:left;width:100px;}
.test6 a:link{color:#666;background:#CCC;text-decoration:none;}
.test6 a:visited{color:#666;text-decoration:underline;}
.test6 a:hover{color:#FFF; font-weight:bold;text-decoration:none;background:#F00;}
.test7 ul{list-style:none;}
.test7 li{float:left;width:100px;background:#CCC;margin-left:3px;line-height:30px;}
.test7 a{display:block;text-align:center;height:30px;}
.test7 a:link{color:#666;background:#CCC;text-decoration:none;}
.test7 a:visited{color:#666;text-decoration:underline;}
.test7 a:hover{color:#FFF; font-weight:bold;text-decoration:underline;background:#F00;}
.test8 ul{list-style:none;}
.test8 li{float:left;width:100px;background:#CCC;margin-left:3px;line-height:30px;}
.test8 a{display:block;text-align:center;height:30px;}
.test8 a:link{color:#666;background:url(images/arrow_off.gif) #CCC no-repeat 5px 
12px;text-decoration:none;}
.test8 a:visited{color:#666;text-decoration:underline;}
.test8 a:hover{color:#FFF; 
font-weight:bold;text-decoration:none;background:url(images/arrow_on.gif) #F00 no-repeat 5px 
12px;}
</STYLE>

<P>尽管在我的网站和文章里都有提到CSS制作菜单的方法，但很多初学者还是不太清楚如何实现，以及实现原理，我想专门写一篇详细教程会对大家比较有帮助。</P>
<P>我们先来看一个菜单的例子，最终效果是:</P>
<DIV class=test8>
<UL>
<LI><A href="http://www.w3cn.org/article/tips/2005/1">首页</A> </LI>
<LI><A href="http://www.w3cn.org/article/tips/2005/2">产品介绍</A> </LI>
<LI><A href="http://www.w3cn.org/article/tips/2005/3">服务介绍</A> </LI>
<LI><A href="http://www.w3cn.org/article/tips/2005/4">技术支持</A> </LI>
<LI><A href="http://www.w3cn.org/article/tips/2005/5">立刻购买</A> </LI>
<LI><A href="http://www.w3cn.org/article/tips/2005/6">联系我们</A> </LI></UL></DIV>
<DIV style="CLEAR: both"></DIV>
<P>然后我们来详细讲解步骤</P>
<H4>第一步：建立一个无序列表</H4>
<P>我们先建立一个无序列表，来建立菜单的结构。代码是：</P><SPAN class=code>&lt;ul&gt;<BR>&lt;li&gt;&lt;a href="1"&gt;首页&lt;/a&gt;&lt;/li&gt;<BR>&lt;li&gt;&lt;a href="2"&gt;产品介绍&lt;/a&gt;&lt;/li&gt;<BR>&lt;li&gt;&lt;a href="3"&gt;服务介绍&lt;/a&gt;&lt;/li&gt;<BR>&lt;li&gt;&lt;a href="4"&gt;技术支持&lt;/a&gt;&lt;/li&gt;<BR>&lt;li&gt;&lt;a href="5"&gt;立刻购买&lt;/a&gt;&lt;/li&gt;<BR>&lt;li&gt;&lt;a href="6"&gt;联系我们&lt;/a&gt;&lt;/li&gt;<BR>&lt;/ul&gt; </SPAN>
<P>效果是：</P>
<UL>
<LI><A href="http://www.w3cn.org/article/tips/2005/1">首页</A> 
<LI><A href="http://www.w3cn.org/article/tips/2005/2">产品介绍</A> 
<LI><A href="http://www.w3cn.org/article/tips/2005/3">服务介绍</A> 
<LI><A href="http://www.w3cn.org/article/tips/2005/4">技术支持</A> 
<LI><A href="http://www.w3cn.org/article/tips/2005/5">立刻购买</A> 
<LI><A href="http://www.w3cn.org/article/tips/2005/6">联系我们</A> </LI></UL>
<H4>第二步：隐藏li的默认样式</H4>
<P>因为看起来不是很好看，菜单通常都不需要li默认的圆点，我们给UL定义一个样式来消除这些圆点。</P>
<P>当然，为了更好的控制整个菜单，我们把菜单放在一个div里。页面代码变成：</P><SPAN class=code>&lt;div class="test"&gt; &lt;ul&gt;<BR>&lt;li&gt;&lt;a href="1"&gt;首页&lt;/a&gt;&lt;/li&gt;<BR>&lt;li&gt;&lt;a href="2"&gt;产品介绍&lt;/a&gt;&lt;/li&gt;<BR>&lt;li&gt;&lt;a href="3"&gt;服务介绍&lt;/a&gt;&lt;/li&gt;<BR>&lt;li&gt;&lt;a href="4"&gt;技术支持&lt;/a&gt;&lt;/li&gt;<BR>&lt;li&gt;&lt;a href="5"&gt;立刻购买&lt;/a&gt;&lt;/li&gt;<BR>&lt;li&gt;&lt;a href="6"&gt;联系我们&lt;/a&gt;&lt;/li&gt;<BR>&lt;/ul&gt; &lt;/div&gt; </SPAN>
<P>CSS定义为：</P><SPAN class=code>.test ul{list-style:none;} </SPAN>
<P>说明：“.test ul”表示我要定义的样式将作用在test的层里的ul标签上。</P>
<P>现在的效果是没有圆点了：</P>
<DIV class=test2>
<UL>
<LI><A href="http://www.w3cn.org/article/tips/2005/1">首页</A> 
<LI><A href="http://www.w3cn.org/article/tips/2005/2">产品介绍</A> 
<LI><A href="http://www.w3cn.org/article/tips/2005/3">服务介绍</A> 
<LI><A href="http://www.w3cn.org/article/tips/2005/4">技术支持</A> 
<LI><A href="http://www.w3cn.org/article/tips/2005/5">立刻购买</A> 
<LI><A href="http://www.w3cn.org/article/tips/2005/6">联系我们</A> </LI></UL></DIV>
<H4>第三步：关键的浮动</H4>
<P>这里是菜单变成横向的关键，我们给li元素加上一个“float:left;”属性，让每个li浮动在前面一个li的左面。</P>
<P>CSS定义为：</P><SPAN class=code>.test li{float:left;} </SPAN>
<P>效果是：</P>
<DIV class=test3>
<UL>
<LI><A href="http://www.w3cn.org/article/tips/2005/1">首页</A> </LI>
<LI><A href="http://www.w3cn.org/article/tips/2005/2">产品介绍</A> </LI>
<LI><A href="http://www.w3cn.org/article/tips/2005/3">服务介绍</A> </LI>
<LI><A href="http://www.w3cn.org/article/tips/2005/4">技术支持</A> </LI>
<LI><A href="http://www.w3cn.org/article/tips/2005/5">立刻购买</A> </LI>
<LI><A href="http://www.w3cn.org/article/tips/2005/6">联系我们</A> </LI></UL></DIV>
<DIV style="CLEAR: both"></DIV>
<P>看，菜单变横向了。就这么简单！下面需要做的就是优化细节了。</P>
<H4>第四步：调整宽度</H4>
<P>菜单都挤在一起不好看怎么办？我们来调节li的宽度。</P>
<P>在CSS中添加定义width:100px指定一个li的宽度是100px，当然你可以根据你的需要调整数值：</P>.test li{float:left;width:100px;} 
<P>效果是：</P>
<DIV class=test4>
<UL>
<LI><A href="http://www.w3cn.org/article/tips/2005/1">首页</A> </LI>
<LI><A href="http://www.w3cn.org/article/tips/2005/2">产品介绍</A> </LI>
<LI><A href="http://www.w3cn.org/article/tips/2005/3">服务介绍</A> </LI>
<LI><A href="http://www.w3cn.org/article/tips/2005/4">技术支持</A> </LI>
<LI><A href="http://www.w3cn.org/article/tips/2005/5">立刻购买</A> </LI>
<LI><A href="http://www.w3cn.org/article/tips/2005/6">联系我们</A> </LI></UL></DIV>
<DIV style="CLEAR: both"></DIV>
<P>如果我们同时定义外面div的宽度，li就会根据div的宽度自动换行，例如定义了div宽350px，6个li的总宽度是600px，一行排不下就自动变成两行：</P>.test{width:350px;} 
<P>效果是：</P>
<DIV class=test5>
<UL>
<LI><A href="http://www.w3cn.org/article/tips/2005/1">首页</A> </LI>
<LI><A href="http://www.w3cn.org/article/tips/2005/2">产品介绍</A> </LI>
<LI><A href="http://www.w3cn.org/article/tips/2005/3">服务介绍</A> </LI>
<LI><A href="http://www.w3cn.org/article/tips/2005/4">技术支持</A> </LI>
<LI><A href="http://www.w3cn.org/article/tips/2005/5">立刻购买</A> </LI>
<LI><A href="http://www.w3cn.org/article/tips/2005/6">联系我们</A> </LI></UL></DIV>
<H4>第五步：设置基本链接效果</H4>
<P>接下来，我们通过CSS来设置链接的样式，分别定义:link、:visited、:hover的状态</P><SPAN class=code>.test a:link{color:#666;background:#CCC;text-decoration:none;}<BR>.test a:visited{color:#666;text-decoration:underline;}<BR>.test a:hover{color:#FFF; font-weight:bold;text-decoration:underline;background:#F00;}<BR></SPAN>
<P>效果是：</P>
<DIV class=test6>
<UL>
<LI><A href="http://www.w3cn.org/article/tips/2005/1">首页</A> </LI>
<LI><A href="http://www.w3cn.org/article/tips/2005/2">产品介绍</A> </LI>
<LI><A href="http://www.w3cn.org/article/tips/2005/3">服务介绍</A> </LI>
<LI><A href="http://www.w3cn.org/article/tips/2005/4">技术支持</A> </LI>
<LI><A href="http://www.w3cn.org/article/tips/2005/5">立刻购买</A> </LI>
<LI><A href="http://www.w3cn.org/article/tips/2005/6">联系我们</A> </LI></UL></DIV>
<DIV style="CLEAR: both"></DIV>
<H4>第六步：将链接以块级元素显示</H4>
<DIV style="CLEAR: both"></DIV>
<P>有朋友问，菜单链接的背景色为什么没有填满整个li的宽度？恩，解决的方法很简单，在a的样式定义中增加display:block，使链接以块级元素显示。</P>
<P>同时我们微调了如下细节：</P>
<UL>
<LI>用text-align:center将菜单文字居中； 
<LI>用height:30px增加背景的高度； 
<LI>用margin-left:3px使每个菜单之间空3px距离； 
<LI>用line-height:30px;定义行高，使链接文字纵向居中； </LI></UL>
<P>CSS定义象这样：</P><SPAN class=code>.test a{display:block；text-align:center;height:30px;}<BR>.test li{float:left;width:100px;background:#CCC;margin-left:3px;line-height:30px;} </SPAN>
<P>效果变成：</P>
<DIV class=test7>
<UL>
<LI><A href="http://www.w3cn.org/article/tips/2005/1">首页</A> </LI>
<LI><A href="http://www.w3cn.org/article/tips/2005/2">产品介绍</A> </LI>
<LI><A href="http://www.w3cn.org/article/tips/2005/3">服务介绍</A> </LI>
<LI><A href="http://www.w3cn.org/article/tips/2005/4">技术支持</A> </LI>
<LI><A href="http://www.w3cn.org/article/tips/2005/5">立刻购买</A> </LI>
<LI><A href="http://www.w3cn.org/article/tips/2005/6">联系我们</A> </LI></UL></DIV>
<DIV style="CLEAR: both"></DIV>
<P>这样就漂亮多了吧。</P>
<H4>第七步：定义背景图片</H4>
<P>我们通常都会在每个链接前加一个小图标，这样导航更清楚。CSS是采用定义li的背景图片来实现的：</P><SPAN class=code>.test a:link{color:#666;background:url(arrow_off.gif) #CCC no-repeat 5px 12px;text-decoration:none;}<BR>.test a:hover{color:#FFF; font-weight:bold;text-decoration:none;background:url(arrow_on.gif) #F00 no-repeat 5px 12px;} </SPAN>
<P>说明：“background:url(arrow_off.gif) #CCC no-repeat 5px 12px;”这句代码是一个CSS缩写，表示背景图片是arrow_off.gif；背景颜色是#CCC；背景图片不重复"no-repeat"，背景图片的位置是左边距5px、上边距12px；</P>
<P>默认状态下，图标为arrow.off.gif，当鼠标移动到链接上，图标变为arrow_on.gif</P>
<P>效果变成：</P>
<DIV class=test8>
<UL>
<LI><A href="http://www.w3cn.org/article/tips/2005/1">首页</A> </LI>
<LI><A href="http://www.w3cn.org/article/tips/2005/2">产品介绍</A> </LI>
<LI><A href="http://www.w3cn.org/article/tips/2005/3">服务介绍</A> </LI>
<LI><A href="http://www.w3cn.org/article/tips/2005/4">技术支持</A> </LI>
<LI><A href="http://www.w3cn.org/article/tips/2005/5">立刻购买</A> </LI>
<LI><A href="http://www.w3cn.org/article/tips/2005/6">联系我们</A> </LI></UL></DIV>
<DIV style="CLEAR: both"></DIV>
<P>现在css的完整代码是：</P><SPAN class=code>.test ul{list-style:none;}<BR>.test li{float:left;width:100px;background:#CCC;margin-left:3px;line-height:30px;}<BR>.test a{display:block;text-align:center;height:30px;}<BR>.test a:link{color:#666;background:url(arrow_off.gif) #CCC no-repeat 5px 12px;text-decoration:none;}<BR>.test a:visited{color:#666;text-decoration:underline;}<BR>.test a:hover{color:#FFF; font-weight:bold;text-decoration:none;background:url(arrow_on.gif) #F00 no-repeat 5px 12px;} </SPAN>
<P>页面的完整代码是：</P><SPAN class=code>&lt;div class="test"&gt;<BR>&lt;ul&gt;<BR>&lt;li&gt;&lt;a href="1"&gt;首页&lt;/a&gt;&lt;/li&gt;<BR>&lt;li&gt;&lt;a href="2"&gt;产品介绍&lt;/a&gt;&lt;/li&gt;<BR>&lt;li&gt;&lt;a href="3"&gt;服务介绍&lt;/a&gt;&lt;/li&gt;<BR>&lt;li&gt;&lt;a href="4"&gt;技术支持&lt;/a&gt;&lt;/li&gt;<BR>&lt;li&gt;&lt;a href="5"&gt;立刻购买&lt;/a&gt;&lt;/li&gt;<BR>&lt;li&gt;&lt;a href="6"&gt;联系我们&lt;/a&gt;&lt;/li&gt;<BR>&lt;/ul&gt;<BR>&lt;/div&gt; </SPAN>
<P>好了，主要步骤就是这7步，立刻拷贝和修改代码试试，你也可以用CSS做横向菜单了！</P>]]></description>
</item><item>
<title><![CDATA[Asp.net动态生成html页面]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=ccnu8&amp;id=3983</link>
<author>ccnu8</author>
<pubDate>2005/3/20 22:01:13</pubDate>
<description><![CDATA[
<P>作者：uponce&nbsp;&nbsp;<BR><BR>　　此功能适用于后台数据库功能不强的web站点，即大部分文本不是存放在数据库的记录中，而是放在html文件或者xml文件中，仅仅把索引放到数据库中，如文章标题、类别、查询关键字等。这样适合于后台没有诸如MS&nbsp;Sql&nbsp;Server这样的数据库支持的Web站点。&nbsp;<BR><BR>　　适用于新闻发布系统，比如sina、163等都是采用动态生成html页面的。&nbsp;<BR><BR>　　适用于需动态定制页面的程序。比如论坛、聊天室等。可以加载定制好的html页面，来加强美观。&nbsp;<BR><BR>　　思路&nbsp;<BR><BR>　　1.&nbsp;利用如Dw-Mx这样的工具生成html格式的模板，在需要添加格式的地方加入特殊标记(如$htmlformat$),动态生成文件时利用代码读取此模板，然后获得前台输入的内容，添加到此模板的标记位置中，生成新文件名后写入磁盘，写入后再向数据库中写入相关数据。&nbsp;<BR><BR>　　2.&nbsp;使用后台代码硬编码Html文件，可以使用HtmlTextWriter类来写html文件。&nbsp;<BR><BR>　　优点&nbsp;<BR><BR>　　1.&nbsp;可以建立非常复杂的页面，利用包含js文件的方法，在js文件内加入document.write()方法可以在所有页面内加入如页面头，广告等内容。&nbsp;<BR><BR>　　2.&nbsp;静态html文件利用MS&nbsp;Windows2000的Index&nbsp;Server可以建立全文搜索引擎，利用asp.net可以以DataTable的方式得到搜索结果。而Win2000的Index服务无法查找xml文件的内容。如果包括了数据库搜索与Index索引双重查找，那么此搜索功能将非常强大。&nbsp;<BR><BR>　　3.&nbsp;节省服务器的负荷，请求一个静态的html文件比一个aspx文件服务器资源节省许多。&nbsp;<BR><BR>　　缺点&nbsp;<BR><BR>　　思路二：&nbsp;如果用硬编码的方式，工作量非常大，需要非常多的html代码。调试困难。而且使用硬编码生成的html样式无法修改，如果网站更换样式，那么必须得重新编码，给后期带来巨大的工作量。&nbsp;<BR><BR>　　因此这里采用的是第一种思路&nbsp;<BR><BR>　　示列代码&nbsp;<BR><BR>　　1.定义(template.htm)html模板页面&nbsp;<BR><BR><BR>　　&lt;html&gt;&nbsp;<BR>　　&lt;head&gt;&nbsp;<BR><BR>　　&lt;title&gt;&lt;/title&gt;&nbsp;<BR><BR>　　&lt;meta&nbsp;http-equiv="Content-Type"&nbsp;content="text/html;&nbsp;charset=gb2312"&gt;&nbsp;<BR><BR>　　&lt;/head&gt;&nbsp;<BR><BR>　　&lt;body&nbsp;&gt;&nbsp;<BR><BR>　　&lt;table&nbsp;$htmlformat[0]&nbsp;height="100%"&nbsp;border="0"&nbsp;width="100%"&nbsp;cellpadding="10"&nbsp;cellspacing="0"&nbsp;bgcolor="#eeeeee"&nbsp;style="border:1px&nbsp;solid&nbsp;#000000"&gt;&nbsp;<BR><BR>　　&lt;tr&gt;&nbsp;<BR><BR>　　&lt;td&nbsp;width="100%"&nbsp;valign="middle"&nbsp;align="left"&gt;&nbsp;<BR><BR>　　&lt;span&nbsp;style="color:&nbsp;$htmlformat[1];font-size:&nbsp;$htmlformat[2]"&gt;$htmlformat[3]&lt;/span&gt;&nbsp;<BR><BR>　　&lt;/td&gt;&nbsp;<BR><BR>　　&lt;/tr&gt;&nbsp;<BR><BR>　　&lt;/table&gt;&nbsp;<BR><BR>　　&lt;/body&gt;&nbsp;<BR><BR>　　&lt;/html&gt;&nbsp;<BR><BR><BR>2.asp.net代码：&nbsp;<BR><BR><BR>　　//---------------------读html模板页面到stringbuilder对象里----&nbsp;<BR>　　string[]&nbsp;format=new&nbsp;string[4];//定义和htmlyem标记数目一致的数组&nbsp;<BR><BR>　　StringBuilder&nbsp;htmltext=new&nbsp;StringBuilder();&nbsp;<BR><BR>　　try&nbsp;<BR><BR>　　{&nbsp;<BR><BR>　　using&nbsp;(StreamReader&nbsp;sr&nbsp;=&nbsp;new&nbsp;StreamReader("存放模板页面的路径和页面名"))&nbsp;<BR><BR>　　{&nbsp;<BR><BR>　　String&nbsp;line;&nbsp;<BR><BR>　　while&nbsp;((line&nbsp;=&nbsp;sr.ReadLine())&nbsp;!=&nbsp;null)&nbsp;<BR><BR>　　{&nbsp;<BR><BR>　　htmltext.Append(line);&nbsp;<BR><BR>　　}&nbsp;<BR><BR>　　sr.Close();&nbsp;<BR><BR>　　}&nbsp;<BR><BR>　　}&nbsp;<BR><BR>　　catch&nbsp;<BR><BR>　　{&nbsp;<BR><BR>　　Response.Write("&lt;Script&gt;alert('读取文件错误')&lt;/Script&gt;");&nbsp;<BR><BR>　　}&nbsp;<BR><BR>　　//---------------------给标记数组赋值------------&nbsp;<BR><BR>　　format[0]="background=\"bg.jpg\"";//背景图片&nbsp;<BR><BR>　　format[1]=&nbsp;"#990099";//字体颜色&nbsp;<BR><BR>　　format[2]="150px";//字体大小&nbsp;<BR><BR>　　format[3]=&nbsp;"&lt;marquee&gt;生成的模板html页面&lt;/marquee&gt;";//文字说明&nbsp;<BR><BR>　　//----------替换htm里的标记为你想加的内容&nbsp;<BR><BR>　　for(int&nbsp;i=0;i&lt;4;i++)&nbsp;<BR><BR><BR>　　{&nbsp;<BR>　　htmltext.Replace("$htmlformat["+i+"]",format[i&nbsp;]);&nbsp;<BR><BR>　　}&nbsp;<BR><BR>　　//----------生成htm文件------------------――&nbsp;<BR><BR>　　try&nbsp;<BR><BR>　　{&nbsp;<BR><BR>　　using(StreamWriter&nbsp;sw=new&nbsp;StreamWriter("存放路径和页面名",false,System.Text.Encoding.GetEncoding("GB2312")))&nbsp;<BR><BR>　　{&nbsp;<BR><BR>　　sw.WriteLine(htmltext);&nbsp;<BR><BR>　　sw.Flush();&nbsp;<BR><BR>　　sw.Close();&nbsp;<BR><BR>　　}&nbsp;<BR><BR>　　}&nbsp;<BR><BR>　　catch&nbsp;<BR><BR>　　{&nbsp;<BR><BR>　　Response.Write&nbsp;("The&nbsp;file&nbsp;could&nbsp;not&nbsp;be&nbsp;wirte:");&nbsp;<BR><BR>　　}&nbsp;<BR><BR><BR>　　小结&nbsp;<BR><BR>　　用此方法可以方便的生成html文件。程序使用了是循环替换，因此对需替换大量元素的模板速度非常快。&nbsp;<BR></P>
<P><FONT color=#ff0000>(说明:本文是因需要才放到我自己的上边,所以请作者大哥原谅,绝非想占为己有！)</FONT></P>]]></description>
</item><item>
<title><![CDATA[ASP.net下的前台日历控件源代码(转载!)]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=ccnu8&amp;id=3982</link>
<author>ccnu8</author>
<pubDate>2005/3/20 21:52:03</pubDate>
<description><![CDATA[<P>ASP.net下的前台日历控件源代码(不刷新页面)</P>
<P>&nbsp;</P>
<P>js脚本<BR>//==================================================== 参数设定部分 =======================================================<BR>var bMoveable=true;&nbsp; //设置日历是否可以拖动<BR>var _VersionInfo=""&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //版本信息</P>
<P>//==================================================== WEB 页面显示部分 =====================================================<BR>var strFrame;&nbsp; //存放日历层的HTML代码<BR>document.writeln('&lt;iframe id=nickDateLayer scrolling=0 frameborder=0 style="position: absolute; width: 144; height: 211; z-index: 9998; display: none"&gt;&lt;/iframe&gt;');<BR>strFrame='&lt;style&gt;';<BR>strFrame+='INPUT.button{BORDER-RIGHT: #9496E1 1px solid;BORDER-TOP: #9496E1 1px solid;BORDER-LEFT: #9496E1 1px solid;';<BR>strFrame+='BORDER-BOTTOM: #9496E1 1px solid;BACKGROUND-COLOR: #fff8ec;font-family:宋体;}';<BR>strFrame+='TD{FONT-SIZE: 9pt;font-family:宋体;}';<BR>strFrame+='&lt;/style&gt;';<BR>strFrame+='&lt;scr' + 'ipt&gt;';<BR>strFrame+='var datelayerx,datelayery; /*存放日历控件的鼠标位置*/';<BR>strFrame+='var bDrag; /*标记是否开始拖动*/';<BR>strFrame+='function document.onmousemove() /*在鼠标移动事件中，如果开始拖动日历，则移动日历*/';<BR>strFrame+='{if(bDrag &amp;&amp; window.event.button==1)';<BR>strFrame+=' {var DateLayer=parent.document.all.nickDateLayer.style;';<BR>strFrame+='&nbsp; DateLayer.posLeft += window.event.clientX-datelayerx;/*由于每次移动以后鼠标位置都恢复为初始的位置，因此写法与div中不同*/';<BR>strFrame+='&nbsp; DateLayer.posTop += window.event.clientY-datelayery;}}';<BR>strFrame+='function DragStart()&nbsp; /*开始日历拖动*/';<BR>strFrame+='{var DateLayer=parent.document.all.nickDateLayer.style;';<BR>strFrame+=' datelayerx=window.event.clientX;';<BR>strFrame+=' datelayery=window.event.clientY;';<BR>strFrame+=' bDrag=true;}';<BR>strFrame+='function DragEnd(){&nbsp; /*结束日历拖动*/';<BR>strFrame+=' bDrag=false;}';<BR>strFrame+='&lt;/scr' + 'ipt&gt;';<BR>strFrame+='&lt;div style="z-index:9999;position: absolute; left:0; top:0;" onselectstart="return false"&gt;&lt;span id=tmpSelectYearLayer&nbsp; style="z-index: 9999;position: absolute;top: 3; left: 19;display: none"&gt;&lt;/span&gt;';<BR>strFrame+='&lt;span id=tmpSelectMonthLayer&nbsp; style="z-index: 9999;position: absolute;top: 3; left: 78;display: none"&gt;&lt;/span&gt;';<BR>strFrame+='&lt;table border=1 cellspacing=0 cellpadding=0 width=142 height=160 bordercolor=#9496E1 bgcolor=#9496E1 &gt;';<BR>strFrame+='&nbsp; &lt;tr &gt;&lt;td width=142 height=23&nbsp; bgcolor=#FFFFFF&gt;&lt;table border=0 cellspacing=1 cellpadding=0 width=140&nbsp; height=23&gt;';<BR>strFrame+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr align=center &gt;&lt;td width=16 align=center bgcolor=#9496E1 style="font-size:12px;cursor: hand;color: #FFFFFF" ';<BR>strFrame+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; onclick="parent.nickPrevM()" title="向前翻 1 月" &gt;&lt;b &gt;&amp;lt;&lt;/b&gt;';<BR>strFrame+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;&lt;td width=60 align=center style="font-size:12px;cursor:default"&nbsp; ';<BR>strFrame+='onmouseover="style.backgroundColor=\'#C6C7EF\'" onmouseout="style.backgroundColor=\'white\'" ';<BR>strFrame+='onclick="parent.tmpSelectYearInnerHTML(this.innerText.substring(0,4))" title="点击这里选择年份"&gt;&lt;span&nbsp; id=nickYearHead&gt;&lt;/span&gt;&lt;/td&gt;';<BR>strFrame+='&lt;td width=48 align=center style="font-size:12px;cursor:default"&nbsp; onmouseover="style.backgroundColor=\'#C6C7EF\'" ';<BR>strFrame+=' onmouseout="style.backgroundColor=\'white\'" onclick="parent.tmpSelectMonthInnerHTML(this.innerText.length==3?this.innerText.substring(0,1):this.innerText.substring(0,2))"';<BR>strFrame+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; title="点击这里选择月份"&gt;&lt;span id=nickMonthHead &gt;&lt;/span&gt;&lt;/td&gt;';<BR>strFrame+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width=16 bgcolor=#9496E1 align=center style="font-size:12px;cursor: hand;color: #FFFFFF" ';<BR>strFrame+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; onclick="parent.nickNextM()" title="向后翻 1 月" &gt;&lt;b &gt;&amp;gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;';<BR>strFrame+='&nbsp;&nbsp;&nbsp; &lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;';<BR>strFrame+='&nbsp; &lt;tr &gt;&lt;td width=142 height=18 &gt;';<BR>strFrame+='&lt;table border=1 cellspacing=0 cellpadding=0 bgcolor=#9496E1 ' + (bMoveable? 'onmousedown="DragStart()" onmouseup="DragEnd()"':'');<BR>strFrame+=' BORDERCOLORLIGHT=#9496E1 BORDERCOLORDARK=#FFFFFF width=140 height=20&nbsp; style="cursor:' + (bMoveable ? 'move':'default') + '"&gt;';<BR>strFrame+='&lt;tr&nbsp; align=center valign=bottom&gt;&lt;td style="font-size:12px;color:#FFFFFF" &gt;日&lt;/td&gt;';<BR>strFrame+='&lt;td style="font-size:12px;color:#FFFFFF" &gt;一&lt;/td&gt;&lt;td style="font-size:12px;color:#FFFFFF" &gt;二&lt;/td&gt;';<BR>strFrame+='&lt;td style="font-size:12px;color:#FFFFFF" &gt;三&lt;/td&gt;&lt;td style="font-size:12px;color:#FFFFFF" &gt;四&lt;/td&gt;';<BR>strFrame+='&lt;td style="font-size:12px;color:#FFFFFF" &gt;五&lt;/td&gt;&lt;td style="font-size:12px;color:#FFFFFF" &gt;六&lt;/td&gt;&lt;/tr&gt;';<BR>strFrame+='&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;';<BR>strFrame+='&nbsp; &lt;tr &gt;&lt;td width=142 height=120 &gt;';<BR>strFrame+='&nbsp;&nbsp;&nbsp; &lt;table border=1 cellspacing=2 cellpadding=0 BORDERCOLORLIGHT=#9496E1 BORDERCOLORDARK=#FFFFFF bgcolor=#fff8ec width=140 height=120 &gt;';<BR>var n=0; for (j=0;j&lt;5;j++){ strFrame+= ' &lt;tr align=center &gt;'; for (i=0;i&lt;7;i++){<BR>strFrame+='&lt;td width=20 height=20 id=nickDay'+n+' style="font-size:12px"&nbsp; onclick=parent.nickDayClick(this.innerText,0)&gt;&lt;/td&gt;';n++;}<BR>strFrame+='&lt;/tr&gt;';}<BR>strFrame+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr align=center &gt;';<BR>for (i=35;i&lt;39;i++)strFrame+='&lt;td width=20 height=20 id=nickDay'+i+' style="font-size:12px"&nbsp; onclick="parent.nickDayClick(this.innerText,0)"&gt;&lt;/td&gt;';<BR>strFrame+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td colspan=3 align=right &gt;&lt;span onclick=parent.closeLayer() style="font-size:12px;cursor: hand"';<BR>strFrame+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; title="' + _VersionInfo + '"&gt;&lt;u&gt;关闭&lt;/u&gt;&lt;/span&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;';<BR>strFrame+='&nbsp;&nbsp;&nbsp; &lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr &gt;&lt;td &gt;';<BR>strFrame+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;table border=0 cellspacing=1 cellpadding=0 width=100%&nbsp; bgcolor=#FFFFFF&gt;';<BR>strFrame+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr &gt;&lt;td&nbsp; align=left&gt;&lt;input&nbsp; type=button class=button value="&lt;&lt;" title="向前翻 1 年" onclick="parent.nickPrevY()" ';<BR>strFrame+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; onfocus="this.blur()" style="font-size: 12px; height: 20px"&gt;&lt;input&nbsp; class=button title="向前翻 1 月" type=button ';<BR>strFrame+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value="&lt; " onclick="parent.nickPrevM()" onfocus="this.blur()" style="font-size: 12px; height: 20px"&gt;&lt;/td&gt;&lt;td ';<BR>strFrame+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; align=center&gt;&lt;input&nbsp; type=button class=button value=今天 onclick="parent.nickToday()" ';<BR>strFrame+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; onfocus="this.blur()" title="当前日期" style="font-size: 12px; height: 20px; cursor:hand"&gt;&lt;/td&gt;&lt;td ';<BR>strFrame+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; align=right&gt;&lt;input&nbsp; type=button class=button value=" &gt;" onclick="parent.nickNextM()" ';<BR>strFrame+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; onfocus="this.blur()" title="向后翻 1 月" class=button style="font-size: 12px; height: 20px"&gt;&lt;input ';<BR>strFrame+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; type=button class=button value="&gt;&gt;" title="向后翻 1 年" onclick="parent.nickNextY()"';<BR>strFrame+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; onfocus="this.blur()" style="font-size: 12px; height: 20px"&gt;&lt;/td&gt;';<BR>strFrame+='&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;';</P>
<P>window.frames.nickDateLayer.document.writeln(strFrame);<BR>window.frames.nickDateLayer.document.close();&nbsp; //解决ie进度条不结束的问题</P>
<P>//==================================================== WEB 页面显示部分 ======================================================<BR>var outObject;<BR>var outButton;&nbsp; //点击的按钮<BR>var outDate="";&nbsp; //存放对象的日期<BR>var odatelayer=window.frames.nickDateLayer.document.all;&nbsp; //存放日历对象<BR>function setday(tt,obj) //主调函数<BR>{<BR>&nbsp;if (arguments.length &gt;&nbsp; 2){alert("对不起！传入本控件的参数太多！");return;}<BR>&nbsp;if (arguments.length == 0){alert("对不起！您没有传回本控件任何参数！");return;}<BR>&nbsp;var dads&nbsp; = document.all.nickDateLayer.style;<BR>&nbsp;var th = tt;<BR>&nbsp;var ttop&nbsp; = tt.offsetTop;&nbsp;&nbsp;&nbsp;&nbsp; //TT控件的定位点高<BR>&nbsp;var thei&nbsp; = tt.clientHeight;&nbsp; //TT控件本身的高<BR>&nbsp;var tleft = tt.offsetLeft;&nbsp;&nbsp;&nbsp; //TT控件的定位点宽<BR>&nbsp;var ttyp&nbsp; = tt.type;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //TT控件的类型<BR>&nbsp;while (tt = tt.offsetParent){ttop+=tt.offsetTop; tleft+=tt.offsetLeft;}<BR>&nbsp;dads.top&nbsp; = (ttyp=="image")? ttop+thei : ttop+thei+6;<BR>&nbsp;dads.left = tleft;<BR>&nbsp;outObject = (arguments.length == 1) ? th : obj;<BR>&nbsp;outButton = (arguments.length == 1) ? null : th; //设定外部点击的按钮<BR>&nbsp;//根据当前输入框的日期显示日历的年月<BR>&nbsp;var reg = /^(\d+)-(\d{1,2})-(\d{1,2})$/;<BR>&nbsp;var r = outObject.value.match(reg);<BR>&nbsp;if(r!=null){<BR>&nbsp; r[2]=r[2]-1;<BR>&nbsp; var d= new Date(r[1], r[2],r[3]);<BR>&nbsp; if(d.getFullYear()==r[1] &amp;&amp; d.getMonth()==r[2] &amp;&amp; d.getDate()==r[3]){<BR>&nbsp;&nbsp; outDate=d;&nbsp; //保存外部传入的日期<BR>&nbsp; }<BR>&nbsp; else outDate="";<BR>&nbsp;&nbsp; nickSetDay(r[1],r[2]+1);<BR>&nbsp;}<BR>&nbsp;else{<BR>&nbsp; outDate="";<BR>&nbsp; nickSetDay(new Date().getFullYear(), new Date().getMonth() + 1);<BR>&nbsp;}<BR>&nbsp;dads.display = '';</P>
<P>&nbsp;event.returnValue=false;<BR>}</P>
<P>var MonHead = new Array(12);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //定义阳历中每个月的最大天数<BR>&nbsp;&nbsp;&nbsp; MonHead[0] = 31; MonHead[1] = 28; MonHead[2] = 31; MonHead[3] = 30; MonHead[4]&nbsp; = 31; MonHead[5]&nbsp; = 30;<BR>&nbsp;&nbsp;&nbsp; MonHead[6] = 31; MonHead[7] = 31; MonHead[8] = 30; MonHead[9] = 31; MonHead[10] = 30; MonHead[11] = 31;</P>
<P>var nickTheYear=new Date().getFullYear(); //定义年的变量的初始值<BR>var nickTheMonth=new Date().getMonth()+1; //定义月的变量的初始值<BR>var nickWDay=new Array(39);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //定义写日期的数组</P>
<P>function document.onclick() //任意点击时关闭该控件 //ie6的情况可以由下面的切换焦点处理代替<BR>{<BR>&nbsp; with(window.event)<BR>&nbsp; { if (srcElement.getAttribute("Author")==null &amp;&amp; srcElement != outObject &amp;&amp; srcElement != outButton)<BR>&nbsp;&nbsp;&nbsp; closeLayer();<BR>&nbsp; }<BR>}</P>
<P>function document.onkeyup()&nbsp; //按Esc键关闭，切换焦点关闭<BR>&nbsp; {<BR>&nbsp;&nbsp;&nbsp; if (window.event.keyCode==27){<BR>&nbsp; if(outObject)outObject.blur();<BR>&nbsp; closeLayer();<BR>&nbsp;}<BR>&nbsp;else if(document.activeElement)<BR>&nbsp; if(document.activeElement.getAttribute("Author")==null &amp;&amp; document.activeElement != outObject &amp;&amp; document.activeElement != outButton)<BR>&nbsp; {<BR>&nbsp;&nbsp; closeLayer();<BR>&nbsp; }<BR>&nbsp; }</P>
<P>function nickWriteHead(yy,mm)&nbsp; //往 head 中写入当前的年与月<BR>&nbsp; {<BR>&nbsp;odatelayer.nickYearHead.innerText&nbsp; = yy + " 年";<BR>&nbsp;&nbsp;&nbsp; odatelayer.nickMonthHead.innerText = mm + " 月";<BR>&nbsp; }</P>
<P>function tmpSelectYearInnerHTML(strYear) //年份的下拉框<BR>{<BR>&nbsp; if (strYear.match(/\D/)!=null){alert("年份输入参数不是数字！");return;}<BR>&nbsp; var m = (strYear) ? strYear : new Date().getFullYear();<BR>&nbsp; if (m &lt; 1000 || m &gt; 9999) {alert("年份值不在 1000 到 9999 之间！");return;}<BR>&nbsp; var n = m - 10;<BR>&nbsp; if (n &lt; 1000) n = 1000;<BR>&nbsp; if (n + 26 &gt; 9999) n = 9974;<BR>&nbsp; var s = "&lt;select&nbsp; name=tmpSelectYear style='font-size: 12px' "<BR>&nbsp;&nbsp;&nbsp;&nbsp; s += "onblur='document.all.tmpSelectYearLayer.style.display=\"none\"' "<BR>&nbsp;&nbsp;&nbsp;&nbsp; s += "onchange='document.all.tmpSelectYearLayer.style.display=\"none\";"<BR>&nbsp;&nbsp;&nbsp;&nbsp; s += "parent.nickTheYear = this.value; parent.nickSetDay(parent.nickTheYear,parent.nickTheMonth)'&gt;\r\n";<BR>&nbsp; var selectInnerHTML = s;<BR>&nbsp; n = n-70;<BR>&nbsp; for (var i = n; i &lt; n + 200; i++)<BR>&nbsp; {<BR>&nbsp;&nbsp;&nbsp; if (i == m)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {selectInnerHTML += "&lt;option&nbsp; value='" + i + "' selected&gt;" + i + "年" + "&lt;/option&gt;\r\n";}<BR>&nbsp;&nbsp;&nbsp; else {selectInnerHTML += "&lt;option&nbsp; value='" + i + "'&gt;" + i + "年" + "&lt;/option&gt;\r\n";}<BR>&nbsp; }<BR>&nbsp; selectInnerHTML += "&lt;/select&gt;";<BR>&nbsp; odatelayer.tmpSelectYearLayer.style.display="";<BR>&nbsp; odatelayer.tmpSelectYearLayer.innerHTML = selectInnerHTML;<BR>&nbsp; odatelayer.tmpSelectYear.focus();<BR>}</P>
<P>function tmpSelectMonthInnerHTML(strMonth) //月份的下拉框<BR>{<BR>&nbsp; if (strMonth.match(/\D/)!=null){alert("月份输入参数不是数字！");return;}<BR>&nbsp; var m = (strMonth) ? strMonth : new Date().getMonth() + 1;<BR>&nbsp; var s = "&lt;select&nbsp; name=tmpSelectMonth style='font-size: 12px' "<BR>&nbsp;&nbsp;&nbsp;&nbsp; s += "onblur='document.all.tmpSelectMonthLayer.style.display=\"none\"' "<BR>&nbsp;&nbsp;&nbsp;&nbsp; s += "onchange='document.all.tmpSelectMonthLayer.style.display=\"none\";"<BR>&nbsp;&nbsp;&nbsp;&nbsp; s += "parent.nickTheMonth = this.value; parent.nickSetDay(parent.nickTheYear,parent.nickTheMonth)'&gt;\r\n";<BR>&nbsp; var selectInnerHTML = s;<BR>&nbsp; for (var i = 1; i &lt; 13; i++)<BR>&nbsp; {<BR>&nbsp;&nbsp;&nbsp; if (i == m)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {selectInnerHTML += "&lt;option&nbsp; value='"+i+"' selected&gt;"+i+"月"+"&lt;/option&gt;\r\n";}<BR>&nbsp;&nbsp;&nbsp; else {selectInnerHTML += "&lt;option&nbsp; value='"+i+"'&gt;"+i+"月"+"&lt;/option&gt;\r\n";}<BR>&nbsp; }<BR>&nbsp; selectInnerHTML += "&lt;/select&gt;";<BR>&nbsp; odatelayer.tmpSelectMonthLayer.style.display="";<BR>&nbsp; odatelayer.tmpSelectMonthLayer.innerHTML = selectInnerHTML;<BR>&nbsp; odatelayer.tmpSelectMonth.focus();<BR>}</P>
<P>function closeLayer()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //这个层的关闭<BR>&nbsp; {<BR>&nbsp;&nbsp;&nbsp; document.all.nickDateLayer.style.display="none";<BR>&nbsp; }</P>
<P>function IsPinYear(year)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //判断是否闰平年<BR>&nbsp; {<BR>&nbsp;&nbsp;&nbsp; if (0==year%4&amp;&amp;((year%100!=0)||(year%400==0))) return true;else return false;<BR>&nbsp; }</P>
<P>function GetMonthCount(year,month)&nbsp; //闰年二月为29天<BR>&nbsp; {<BR>&nbsp;&nbsp;&nbsp; var c=MonHead[month-1];if((month==2)&amp;&amp;IsPinYear(year)) c++;return c;<BR>&nbsp; }<BR>function GetDOW(day,month,year)&nbsp;&nbsp;&nbsp;&nbsp; //求某天的星期几<BR>&nbsp; {<BR>&nbsp;&nbsp;&nbsp; var dt=new Date(year,month-1,day).getDay()/7; return dt;<BR>&nbsp; }</P>
<P>function nickPrevY()&nbsp; //往前翻 Year<BR>&nbsp; {<BR>&nbsp;&nbsp;&nbsp; if(nickTheYear &gt; 999 &amp;&amp; nickTheYear &lt;10000){nickTheYear--;}<BR>&nbsp;&nbsp;&nbsp; else{alert("年份超出范围（1000-9999）！");}<BR>&nbsp;&nbsp;&nbsp; nickSetDay(nickTheYear,nickTheMonth);<BR>&nbsp; }<BR>function nickNextY()&nbsp; //往后翻 Year<BR>&nbsp; {<BR>&nbsp;&nbsp;&nbsp; if(nickTheYear &gt; 999 &amp;&amp; nickTheYear &lt;10000){nickTheYear++;}<BR>&nbsp;&nbsp;&nbsp; else{alert("年份超出范围（1000-9999）！");}<BR>&nbsp;&nbsp;&nbsp; nickSetDay(nickTheYear,nickTheMonth);<BR>&nbsp; }<BR>function nickToday()&nbsp; //Today Button<BR>&nbsp; {<BR>&nbsp;var today;<BR>&nbsp;&nbsp;&nbsp; nickTheYear = new Date().getFullYear();<BR>&nbsp;&nbsp;&nbsp; nickTheMonth = new Date().getMonth()+1;<BR>&nbsp;&nbsp;&nbsp;&nbsp; if (nickTheMonth &lt; 10){nickTheMonth = "0" + nickTheMonth;}<BR>&nbsp;&nbsp;&nbsp; today=new Date().getDate();<BR>&nbsp;&nbsp;&nbsp;&nbsp; if (today &lt; 10){today = "0" + today;}<BR>&nbsp;&nbsp;&nbsp; //nickSetDay(nickTheYear,nickTheMonth);<BR>&nbsp;&nbsp;&nbsp; if(outObject){<BR>&nbsp; outObject.value=nickTheYear + "-" + nickTheMonth + "-" + today;<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; closeLayer();<BR>&nbsp; }<BR>function nickPrevM()&nbsp; //往前翻月份<BR>&nbsp; {<BR>&nbsp;&nbsp;&nbsp; if(nickTheMonth&gt;1){nickTheMonth--}else{nickTheYear--;nickTheMonth=12;}<BR>&nbsp;&nbsp;&nbsp; nickSetDay(nickTheYear,nickTheMonth);<BR>&nbsp; }<BR>function nickNextM()&nbsp; //往后翻月份<BR>&nbsp; {<BR>&nbsp;&nbsp;&nbsp; if(nickTheMonth==12){nickTheYear++;nickTheMonth=1}else{nickTheMonth++}<BR>&nbsp;&nbsp;&nbsp; nickSetDay(nickTheYear,nickTheMonth);<BR>&nbsp; }</P>
<P>function nickSetDay(yy,mm)&nbsp;&nbsp; //主要的写程序**********<BR>{<BR>&nbsp; nickWriteHead(yy,mm);<BR>&nbsp; //设置当前年月的公共变量为传入值<BR>&nbsp; nickTheYear=yy;<BR>&nbsp; nickTheMonth=mm;</P>
<P>&nbsp; for (var i = 0; i &lt; 39; i++){nickWDay[i]=""};&nbsp; //将显示框的内容全部清空<BR>&nbsp; var day1 = 1,day2=1,firstday = new Date(yy,mm-1,1).getDay();&nbsp; //某月第一天的星期几<BR>&nbsp; for (i=0;i&lt;firstday;i++)nickWDay[i]=GetMonthCount(mm==1?yy-1:yy,mm==1?12:mm-1)-firstday+i+1 //上个月的最后几天<BR>&nbsp; for (i = firstday; day1 &lt; GetMonthCount(yy,mm)+1; i++){nickWDay[i]=day1;day1++;}<BR>&nbsp; for (i=firstday+GetMonthCount(yy,mm);i&lt;39;i++){nickWDay[i]=day2;day2++}<BR>&nbsp; for (i = 0; i &lt; 39; i++)<BR>&nbsp; { var da = eval("odatelayer.nickDay"+i)&nbsp;&nbsp;&nbsp;&nbsp; //书写新的一个月的日期星期排列<BR>&nbsp;&nbsp;&nbsp; if (nickWDay[i]!="")<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp; //初始化边框<BR>&nbsp; da.borderColorLight="#9496E1";<BR>&nbsp; da.borderColorDark="#FFFFFF";<BR>&nbsp; if(i&lt;firstday)&nbsp; //上个月的部分<BR>&nbsp; {<BR>&nbsp;&nbsp; da.innerHTML="&lt;b&gt;&lt;font color=gray&gt;" + nickWDay[i] + "&lt;/font&gt;&lt;/b&gt;";<BR>&nbsp;&nbsp; da.title=(mm==1?12:mm-1) +"月" + nickWDay[i] + "日";<BR>&nbsp;&nbsp; da.onclick=Function("nickDayClick(this.innerText,-1)");<BR>&nbsp;&nbsp; if(!outDate)<BR>&nbsp;&nbsp;&nbsp; da.style.backgroundColor = ((mm==1?yy-1:yy) == new Date().getFullYear() &amp;&amp;<BR>&nbsp;&nbsp;&nbsp;&nbsp; (mm==1?12:mm-1) == new Date().getMonth()+1 &amp;&amp; nickWDay[i] == new Date().getDate()) ?<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "#C6C7EF":"#E0E0E0";<BR>&nbsp;&nbsp; else<BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp; da.style.backgroundColor =((mm==1?yy-1:yy)==outDate.getFullYear() &amp;&amp; (mm==1?12:mm-1)== outDate.getMonth() + 1 &amp;&amp;<BR>&nbsp;&nbsp;&nbsp; nickWDay[i]==outDate.getDate())? "#FFD700" :<BR>&nbsp;&nbsp;&nbsp; (((mm==1?yy-1:yy) == new Date().getFullYear() &amp;&amp; (mm==1?12:mm-1) == new Date().getMonth()+1 &amp;&amp;<BR>&nbsp;&nbsp;&nbsp; nickWDay[i] == new Date().getDate()) ? "#C6C7EF":"#E0E0E0");<BR>&nbsp;&nbsp;&nbsp; //将选中的日期显示为凹下去<BR>&nbsp;&nbsp;&nbsp; if((mm==1?yy-1:yy)==outDate.getFullYear() &amp;&amp; (mm==1?12:mm-1)== outDate.getMonth() + 1 &amp;&amp;<BR>&nbsp;&nbsp;&nbsp; nickWDay[i]==outDate.getDate())<BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp; da.borderColorLight="#FFFFFF";<BR>&nbsp;&nbsp;&nbsp;&nbsp; da.borderColorDark="#9496E1";<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp; }<BR>&nbsp; }<BR>&nbsp; else if (i&gt;=firstday+GetMonthCount(yy,mm))&nbsp; //下个月的部分<BR>&nbsp; {<BR>&nbsp;&nbsp; da.innerHTML="&lt;b&gt;&lt;font color=gray&gt;" + nickWDay[i] + "&lt;/font&gt;&lt;/b&gt;";<BR>&nbsp;&nbsp; da.title=(mm==12?1:mm+1) +"月" + nickWDay[i] + "日";<BR>&nbsp;&nbsp; da.onclick=Function("nickDayClick(this.innerText,1)");<BR>&nbsp;&nbsp; if(!outDate)<BR>&nbsp;&nbsp;&nbsp; da.style.backgroundColor = ((mm==12?yy+1:yy) == new Date().getFullYear() &amp;&amp;<BR>&nbsp;&nbsp;&nbsp;&nbsp; (mm==12?1:mm+1) == new Date().getMonth()+1 &amp;&amp; nickWDay[i] == new Date().getDate()) ?<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "#C6C7EF":"#E0E0E0";<BR>&nbsp;&nbsp; else<BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp; da.style.backgroundColor =((mm==12?yy+1:yy)==outDate.getFullYear() &amp;&amp; (mm==12?1:mm+1)== outDate.getMonth() + 1 &amp;&amp;<BR>&nbsp;&nbsp;&nbsp; nickWDay[i]==outDate.getDate())? "#FFD700" :<BR>&nbsp;&nbsp;&nbsp; (((mm==12?yy+1:yy) == new Date().getFullYear() &amp;&amp; (mm==12?1:mm+1) == new Date().getMonth()+1 &amp;&amp;<BR>&nbsp;&nbsp;&nbsp; nickWDay[i] == new Date().getDate()) ? "#C6C7EF":"#E0E0E0");<BR>&nbsp;&nbsp;&nbsp; //将选中的日期显示为凹下去<BR>&nbsp;&nbsp;&nbsp; if((mm==12?yy+1:yy)==outDate.getFullYear() &amp;&amp; (mm==12?1:mm+1)== outDate.getMonth() + 1 &amp;&amp;<BR>&nbsp;&nbsp;&nbsp; nickWDay[i]==outDate.getDate())<BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp; da.borderColorLight="#FFFFFF";<BR>&nbsp;&nbsp;&nbsp;&nbsp; da.borderColorDark="#9496E1";<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp; }<BR>&nbsp; }<BR>&nbsp; else&nbsp; //本月的部分<BR>&nbsp; {<BR>&nbsp;&nbsp; da.innerHTML="&lt;b&gt;" + nickWDay[i] + "&lt;/b&gt;";<BR>&nbsp;&nbsp; da.title=mm +"月" + nickWDay[i] + "日";<BR>&nbsp;&nbsp; da.onclick=Function("nickDayClick(this.innerText,0)");&nbsp; //给td赋予onclick事件的处理<BR>&nbsp;&nbsp; //如果是当前选择的日期，则显示暗黄色的背景；如果是当前日期，则显示亮紫色的背景<BR>&nbsp;&nbsp; if(!outDate)<BR>&nbsp;&nbsp;&nbsp; da.style.backgroundColor = (yy == new Date().getFullYear() &amp;&amp; mm == new Date().getMonth()+1 &amp;&amp; nickWDay[i] == new Date().getDate())?<BR>&nbsp;&nbsp;&nbsp;&nbsp; "#C6C7EF":"#E0E0E0";<BR>&nbsp;&nbsp; else<BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp; da.style.backgroundColor =(yy==outDate.getFullYear() &amp;&amp; mm== outDate.getMonth() + 1 &amp;&amp; nickWDay[i]==outDate.getDate())?<BR>&nbsp;&nbsp;&nbsp;&nbsp; "#FFD700":((yy == new Date().getFullYear() &amp;&amp; mm == new Date().getMonth()+1 &amp;&amp; nickWDay[i] == new Date().getDate())?<BR>&nbsp;&nbsp;&nbsp;&nbsp; "#C6C7EF":"#E0E0E0");<BR>&nbsp;&nbsp;&nbsp; //将选中的日期显示为凹下去<BR>&nbsp;&nbsp;&nbsp; if(yy==outDate.getFullYear() &amp;&amp; mm== outDate.getMonth() + 1 &amp;&amp; nickWDay[i]==outDate.getDate())<BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp; da.borderColorLight="#FFFFFF";<BR>&nbsp;&nbsp;&nbsp;&nbsp; da.borderColorDark="#9496E1";<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp; }<BR>&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; da.style.cursor="hand"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; else{da.innerHTML="";da.style.backgroundColor="";da.style.cursor="default"}<BR>&nbsp; }<BR>}</P>
<P>function nickDayClick(n,ex)&nbsp; //点击显示框选取日期，主输入函数*************<BR>{<BR>&nbsp; var yy=nickTheYear;<BR>&nbsp; var mm = parseInt(nickTheMonth)+ex; //ex表示偏移量，用于选择上个月份和下个月份的日期<BR>&nbsp;//判断月份，并进行对应的处理<BR>&nbsp;if(mm&lt;1){<BR>&nbsp; yy--;<BR>&nbsp; mm=12+mm;<BR>&nbsp;}<BR>&nbsp;else if(mm&gt;12){<BR>&nbsp; yy++;<BR>&nbsp; mm=mm-12;<BR>&nbsp;}</P>
<P>&nbsp; if (mm &lt; 10){mm = "0" + mm;}<BR>&nbsp; if (outObject)<BR>&nbsp; {<BR>&nbsp;&nbsp;&nbsp; if (!n) {//outObject.value="";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;}<BR>&nbsp;&nbsp;&nbsp; if ( n &lt; 10){n = "0" + n;}<BR>&nbsp;&nbsp;&nbsp; outObject.value= yy + "-" + mm + "-" + n ; //注：在这里你可以输出改成你想要的格式<BR>&nbsp;&nbsp;&nbsp; closeLayer();<BR>&nbsp; }<BR>&nbsp; else {closeLayer(); alert("您所要输出的控件对象并不存在！");}<BR>}</P>
<P>前台调用方法<BR>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"<BR>"<A href="http://www.w3.org/TR/html4/loose.dtd">http://www.w3.org/TR/html4/loose.dtd</A>"&gt;<BR>&lt;html&gt;<BR>&lt;head&gt;<BR>&lt;meta http-equiv="Content-Type" content="text/html; charset=gb2312"&gt;<BR>&lt;script language="javascript" src="./nickDate.js"&gt;&lt;/script&gt;<BR>&lt;title&gt;无标题文档&lt;/title&gt;<BR>&lt;/head&gt;</P>
<P>&lt;body&gt;<BR>&lt;table width="100%"&nbsp; border="0"&gt;<BR>&nbsp; &lt;tr&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;td&gt;&lt;input name="Input" type="text" id="text1" onBlur="setday(this);"&nbsp; onClick="setday(this);" readonly="true" size="20"&gt;&lt;/td&gt;<BR>&nbsp; &lt;/tr&gt;<BR>&lt;/table&gt;</P>
<P>&lt;/body&gt;<BR>&lt;/html&gt;<BR></P>]]></description>
</item><item>
<title><![CDATA[一些学习理论]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=ccnu8&amp;id=3731</link>
<author>ccnu8</author>
<pubDate>2005/3/15 22:49:55</pubDate>
<description><![CDATA[<A></A>
<P>学习理论与一些教学模式</P>
<P>行为主义<BR>&nbsp;&nbsp;&nbsp; 行为主义最主要的是强调世界是客观存在的，人们的认知过程是靠刺激、强化来完成的，这样，行为主义就是以“刺激——强化——刺激”来完成对人的教育过程。对现我国内的各种网上或是工作者，或是很有名望的杂志上大都这样来说：行为主义学习理论（行为主义是以教师为中心的教学结构的心理学基础）将被建构主义(建构主义主张教师指导下的以学生为中心的学习)等理论取代。正是在新的教育思想、新的教学和学习理论的指导下，以教师为中心的教学结构才会有根本性的变革，创建出既能发挥教师主导作用，又能充分体现学生主体作用的新型教学结构，历史学科与信息技术才能实现真正意义上的整合。<BR>&nbsp;&nbsp;&nbsp; 我很不同意这种看法，在我看来，建构主义并没有那么伟大，他不能解决一切问题，我们这样对待行为主义及一些客观主义的东西，对他们是不分平的。我们出生的时候并不知道什么，而我们却在一到二年之内学会说话，这是能够建构得出来的吗。在教育界，还没有人能很清楚的说出为什么在人的脑还没有发育完全的时候，就能够以这样快的速度来学习一种语言，而这，根据建构主义的想法，是怎么也不可想象的。但是，一个很好的理由可以说明这样一个问题，孩子多先会叫妈妈，因为他受到的这种刺激最多，这是一个典型的行为主义学的成果。所以，在CAI设计中，行为主义是一个必不可少的东西，这种方法，可以使学生在反复练习中得到解决问题的方法，得到一些最基本的知识，只有有了这种基础知识，才可能建构更多的知识体系，所以，我们不可以将行为主义一杆子打死，他还是有着不可替代的作用的。<BR>认知主义<BR>　认知主义者中有一部分人诸如信息加工的理论家，基本上还是采取客观主义的传统。他们认为世界是由客观实体及其特征和客观事物之间的关系所构成。他们与行为主义者不同之处在于强调内部的认知结构。教学的目标在于帮助学习习得这些事物及其特性，使外界客观事物(知识及其结构)内化为其内部的认知结构。<BR>&nbsp;&nbsp; 我认为，建构主义只是认知主义的一部分，或可以说是一个发展，但不大同意将二者分开讨论，这样的方法，就好像说天津的狗不理包子是最好吃的，我们不能说他不是包子，或说现在食物中，包子与狗不理包子是两种食物品种。认知主义应该是包含了建构主义的。</P>
<P>建构主义<BR>(3)从鱼的故事认识建构主义<BR>&nbsp;&nbsp;&nbsp; 德国的一则关于“鱼牛”的童话<BR>&nbsp;&nbsp;&nbsp; 在一个小池塘里住着鱼和青蛙，他们是一对好朋友。他们听说外面的世界好精彩，都想出去看看。鱼由于自己不能离开水而生活，只好][<BR>让青蛙一个人走了。这天，青蛙回来了，鱼迫不急待地向他询问外面的情况。青蛙告诉鱼，外面有很多新奇有趣的东西。“比如说牛吧，”青蛙说：“这真是一种奇怪的动物，它的身体很大，头上长着两个犄角，吃青草为生，身上有着黑白相间的斑点，长着四只粗壮的腿，还有…..”。鱼惊叫道：“哇，好怪哟！”，同时脑海里即刻勾画出她心目中的“牛”的形象：一个大大的鱼身子，头上长着两个犄角，嘴里吃着青草，……（见图）。 <BR>&nbsp;&nbsp; 这是一则典型的建构主义的例子，我们从中不难看出，建构主义，在我们的学习与工作中，还是有着重要的作用的。这个例子说明理解依赖于个人经验，即由于人们对于世界的经验各不相同，人们对于世界的看法也必然会各不相同。知识是学习者在与情景的交互作用过程中自行建构的。因而学生应该处于中心地位，教师是学习的帮助者。因而“学习是意义建构的过程”。<BR>　　要设计ＣＡＩ的时候，我们要以先进的教育思想、教与学理论（特别是建构主义理论）为指导，要紧紧围绕“新型教学结构”的创建这一核心来进行整合，要注意运用“学教并重”，双主为主要教学思想，用这样的教学设计理论来进行课程整合的教学设计，要高度重视各学科的教学资源建设，这是实现课程整全的必要前提。要注意结合各门学科的特点建构易于实现学科课程整合的新型教学模式。这样的思想来指导ＣＡＩ的制作。让同学们在一个建构的环境下主动学习知识。<BR>人本主义<BR>人本主义是美国当代心理学主要流派之一，由美国心理学家A.H马斯洛创立，现在的代表人物有C.R罗杰斯人本主义反对将人的心理低俗化，动物化的倾向，故被称为心理学中的笫三思潮。1.马斯洛的自我实现论<BR>　　马斯洛认为人类行为的心理驱力不是性本能，而是人的需要，他将其分为两大类、七个层次、好象一座金字塔，由下而上依次是生理需要、安全需要，归属与爱的需要，尊重的需要，认识需要，审美需要、自我实现需要。人在满足高一层次的需要之前，至少必须先部分满足低一层次的需要。第一类需要属于缺失需要，可到起匮乏性动机，为人与动物所共有，一旦得到满足，紧张消除，兴奋降低，便失去动机。第二类需要属于生长需要，可产生成长性动机，为人类所特有，是一种超越了生存满足之后，发自内心的渴求发展和实现自身潜能的需要。满足了这种需要个体才能进入心理的自由状态，体现人的本质和价值，产生深刻的幸福感，马斯洛称之为“顶峰体验”。马斯洛认为人类共有真、善、美、正义、欢乐等内在本性，具有共同的价值观和道德标准，达到人的自我实现关键在于改善人的“自知”或自我意识，使人认识到自我的内在潜能或价值，人本主义心理学就是促进人的自我实现。<BR>　　2.罗杰斯的自我理论。<BR>　　刚出生的婴儿并没有自我的概念，随着他（她）与他人、环境的相互作用，他（她）开始慢慢地把自己与非自己区分开来。当最初的自我概念形成之后，人的自我实现趋向开始激活，在自我实现这一股动力的驱动下，儿童在环境中进行各种尝试活动并产生出大量的经验。通过机体自动的估价过程，有些经验会使他感到满足、愉快，有些即相反，满足愉快的经验会使儿童寻求保持、再现，不满足、不愉快的经验会使儿童尽力迥避。在孩子寻求积极的经验中，有一种是受他人的关怀而产生的体验，还有一种是受到他人尊重而产生的体验，不幸的是儿童这种受关怀尊重需要的满足完全取决于他人，他人（包括父母）是根据儿童的行为是否符合其价值标准，行为标准来决定是否给予关怀和尊重，所以说他人的关怀与尊重是有条件的，这些条件体现着父母和社会的价值观，罗杰斯称这种条件为价值条件，儿童不断通过自己的行为体验到这些价值条件，会不自觉地将这些本属于父母或他人的价值观念内化，变成自我结构的一部分，渐渐地儿童被迫放弃按自身机体估价过程去评价经验，变成用自我中内化了的社会的价值规范去评价经验，这样儿童的自我和经验之间就发生了异化，当经验与自我之间存在冲突时，个体就会预感到自我受到威胁，因而产生焦虑。预感到经验与自我不一致时，个体会运用防御机制（歪曲、否认、选择性知觉）来对经验进行加工，使之在意识水平上达到与自我相一致。如果防御成功，个体就不会出现适应障碍，若防御失败就会出现心理适应障碍，罗杰斯的以人为中心的治疗目标是将原本不属于自己的是经内化而成的自我部分去除掉，找回属于他自己的思想情感和行为模式，用罗杰斯的话说“变回自己”“从面具后面走出来”，只有这样的人才能充分发挥个人的机能。人本主义的实质就是让人领悟自己的本性，不再倚重外来的价值观念，让人重新信赖、依靠机体估价过程来处理经验，消除外界环境通过内化而强加给他的价值观，让人可以自由表达自己的思想和感情，由自己的意志来决定自己的行为，掌握自己的命运，修复被破坏的自我实现潜力，促进个性的健康发展<BR>&nbsp;&nbsp;&nbsp; 对于以上的教学方式，我们应该是采取扬长避短的态度。要做到各种理论的互为补充 ，建构主义是深化教学改革的主要理论基础之一，但行为主义，认识主义同样可以指导我们对于教学的设计。信息技术是各种学习理论应用于教学的催化剂、必要条件，我们在克服客观主义学习理论的“机械论”、“还原论”的弊端的同时，要看到我们在认识客观事物时，这些理论有着他闪光之处。同时，在让教学活动与实际问题挂钩，支持学习者发掘或形成问题，提供真实的学习任务和学习环境，让学习者拥有学习的主动权，为学习者提供必要的援助，鼓励学习者检验和积累各种不同的观点鼓励学习者相互交流、取长补短，发挥现代媒体因素的作用等重要的建构主义理论的同时，也要考虑其不要及的地方，这样才能让我们的CAI设计达到一个高度，才能真正的教育于人，而不是一纸空文。<BR>&nbsp;&nbsp;&nbsp; 对于以上的教学理论，现总结以下教学模式，以利指导教学。<BR>认知灵活性理论及其随机通达教学（Random Access Instruction）<BR>　　认知灵活性理论是建构主义的一支，它取了一条中间路线，反对传统教学机械地对知识做预先限定（prespecificateon），让学生被动接受；但同时它也反对极端建构主义只强调学习中的非结构的一方面，忽视概念的重要性。它主张，一方面要提供建构理解所需的基础，同时要留给学生广阔的建构的空间，让他们针对具体情境采用适当的策略（Spiro et al,1991）。<BR>不良结构领域（ill-structured dommains）与学习<BR>　　结构不良领域有以下两点：（1）知识应用的每个实例中，都包含着许多应用广泛的概念相互作用（即概念的复杂性）；（2）同类的各个具体实例之间，所涉及的概念及其相互作用的模式有很大差异（即实例间的差异性）。结构不良领域是普遍存在的，可以说，在所有的领域，只要将知识运用到具体情境中去，都有大量的结构不良的特征（Spiro et al. 1991）。据此，我们不可能依靠将已有知识简单提取出来去解决实际问题，只能根据具体情境，以原有的知识为基础，建构用于指导问题解决的图式，而且，往往不是单以某一个概念原理为基础，而是要通过多个概念原理以及大量的经验背景的共同作用而实现。<BR>　　根据以上观点，斯皮罗等人（Spiro et al, 1991），对于学习进行了解释。他们认为，学习可以分为两种：初级学习与高级学习。初级学习是学习中的低级阶段，教师只要求学生知道一些重要的概念和事实，在测验中只要求他们将所学的东西按原样再生出来，这里所涉及的内容主要是结构良好的领域（well—structured domanin）。而高级学习则与此不同，它要求学生把握概念的复杂性，并广泛而灵活地运用到具体情境地中，这时，概念的复杂性以及实例间的差异性都显而易见，因而大量涉及到结构不良领域的问题。乔纳生（D.H.Jonassen,1991）在此基础上提出了知识获得的三阶段（见图1），在初级阶段，学生往往还缺少可以直接迁移的关于某领域的知识，这时的理解多靠简单的字面编码（literal coding）。在教学中，此阶段所涉及的主要是结构良好的问题，其中包括大量的通过练习和反馈而熟练掌握知识的活动过程。在高级的知识获得阶段，开始涉及到大量结构不良领域的问题，这时的教学主要是以对知识的理解为基础，通过师徒式的（apprenticeship）引导而进行。学习者要解决具体领域的情境性问题，必须掌握高级的知识。在专门知识学习（expertise）阶段，所涉及的问题则更加复杂和丰富，这时，学习者已有大量的图式化的模式（schematic pattens），而且其间已建立了丰富的联系，因而可以灵活地对问题进行表征。<BR>良好结构的领域&nbsp; 结构不良领域&nbsp; 复杂结构（elaborate） <BR>以概念技能为基础 以知识为基础 图式化的模式&nbsp; 初级的知识获得 高级的知识获得&nbsp;&nbsp; 专门知识学习&nbsp; 练习&nbsp; 师徒关系&nbsp; 经验 反馈&nbsp; 引导 　 <BR>　　斯皮罗（1991）认为，传统教学混淆了高级学习与初级学习之间的界限，将初级学习阶段的教学策略（如将整体分割为部分、着眼于普遍原则的学习、建立单一标准的基本表征等）不合理地推及高级学习阶段的教学中，使教学过于简单化，这主要表现为以下三种偏向：<BR>（1）附加性偏向（additivity bias），将事物从复杂的背景中隔离出来进行学习，误认为对事物的孤立的认识人可以推及更大的背景中，忽视具体条件的限制。<BR>（2）离散化偏向，即将本来连续的过程简单地当成一个个的阶段处理。<BR>（3）将整体分割为部分，忽视各部分之间的相互联系。过于简单化使得学生的理解简单片面，这正是妨碍学习在具体情境中广泛而灵活迁移的主要原因，而建构主义就是要寻求适合于高级学习的教学途径。适合于高级学习的教学：随机通达教学（Random Access Instruction）<BR>　　斯皮罗等人（1991）根据对高级学习的基本认识提出了“随机通达教学”。由于在学习过程中对于信息的意义的建构可以从不同的角度入手，从而可以获得不同方面的理解。同时，在运用已有知识解决补救问题时，存在着概念的复杂性和实例间的差异性，任何对事物的简单的理解都会漏掉事物的某些方面，而这些方面在另外一个情境地中，从另外一个角度看时可能是非常重要的。所以，他们提出的“随机通达教学”认为，对同一内容的学习要在不同时间多次进行，每次的情境都是经过改组的，而且目的不同，分别着眼于问题的不同侧面。这种反复绝非为巩固知识技能而进行的简单重复，因为在各次学习的情境方面会有互不重合的方面，而这将会使学习者对概念知识获得新的理解。这种教学避免抽象地谈概念一般地如何运用，而是把概念具体到一定的实例中，并与具体情境联系起来。每个概念的教学都要涵盖充分的实例（变式），分别用于说明不同方面的含义，而且各实例都可能同时涉及到其它概念。在这种学习中，学习者可以形成对概念的多角度理解，并与具体情境地联系起来，形成背景性经验。这种教学有利于学习者针对具体情境建构用于指引问题解决的图式。可以看出，这种思想与布鲁纳关于训练多样性的思想是一致的，是这种思想的深入发展。<BR>自上而下（top-down）的教学设计及知识结构的网络概念<BR>　　在以斯金纳的操作性条件反射理论和加涅的学习层级说等为基础的传统教学中，基本上是自下而上的展开教学进程。斯金纳主张将知识分为一个个小单元，让学生按一定的小调一步步地学习，最终掌握整体知识。加涅提出了学习层级说，认为知识是有层次结构的，教学要从基本子概念子技能的学习出发，逐级向上，逐渐学习到高级的知识技能。在以他们的思想为基础进行教学进程的设计昌，首先对要学习的内容进行任务分析，逐级找到应该提前掌握的知识，而后分析学生既有的水平，确定合适的起点，设计出向学生传递知识的方案。在展开教学时，让学生从低级的基本的知识技能出发，逐级向上爬，直到达到最终的教学目标。<BR>　　当今的建构主义者批判传统的自下而上的教学设计，认为它是使教学过于简单化的根源。他们在教学进程的设计上遵循相反的路线：<BR>（1）自上而下地展开进程。即首先呈现整体性的任务，让学生尝试进行问题的解决，在此过程中，学生要自已发现完成整体任务所需首先完成的子任务，以及完成各级任务所需的各级知识技能。在教学中，首先选择与儿童生活经验有关的问题（这种问题并不是被过于简单化的），同时提供用于更好地理解和解决问题的工具。而后让学生单个地或在小组中进行探索，发现解决总问题所需的基本知识技能，在掌握这些知识技能的基础上，最终使问题得以解决（Slavin,1994）。Duffy（1992）认为，教学并不应从简单到复杂，如果简单意味着脱离情境地的话。<BR>（2）知识结构的网络概念。布洛非（J.Brophy,1989）的研究指出，在教和学的活动中，不必要组成严格的直线型层级，因为知识是由围绕着关键概念的网络结构所组成，它包括事实、概念、概括化以及有关的价值、意向、过程知识、条件知识等等。学习可以从网络的任何部分进入或开始。即教师既可以从要求学生解决一个实际问题开始教学，也可以从给一个规则入手等。<BR>　　实际上，无论是自上而下还是自下而上的教学设计，或是从网络中某一部分入手，都必须适应一定的教学目的，根据具体的教学目的和条件而确定。这一问题还有等深入研究。<BR>情境性教学（situated or anchored instruction）<BR>　　以其对学习这一建构过程的理解为基础，建构主义批评传统教学使学习去情境化的做法，提倡情境性教学。首先，这种教学应使学习在与现实情境相类似的情境中发生，以解决学生在现实生活中遇到的问题为目标（Cunningham,1991）学习的内容要选择真实性任务（authentic task），不能对其做过于简单化的处理，使其远离现实的问题情境。由于具体问题往往都同时与多种概念原理相关，所以，他们主张弱化学科界限，强调学科间的交叉。其次，这是将提前已准备好的内容教给学生，而是在课堂上展示出与现实中专家解决问题相类似的探索过程（甚至有人主张教师不要备课），提供解决问题的原型，并指导学生的探索。最后，情境性教学不需要独立于教学过程的测验，而是采用融合式测验（test integrated），在学习中对具体问题的解决过程本身就反映了学习的效果（Merill,1991），或者进行与学习过程的一致的情境化的评估(context-driven evaluation)（Jonassen,1992）。<BR>　　由于真实性任务中学生了解自己所要解决的问题，有主人翁感；任务本身又是整体性的，具有挑战性，解决了问题就是奖励，因此，容易激发起内部动机；它具有必要的复杂性，比起简化了的课堂环境更容易培养学生的解决问题能力；它的多样性可能培养学生的探索精神并且在完成任务中表达自己的知识。目前在这方面已有大量的研究，特别是利用多媒体进行的计算机辅助教学可以提供与现实更加类似的问题情境，达到完成真实性任务的目的。<BR>支架式（Scaffolding）教学<BR>　　20多年来，在发现学习、指导、学习和接受学习之间存在着许多争议。其核心问题是教师和学生各自在教和学的过程中起什么作用。<BR>　　近10余年来，建构主义者在此基础上提出并强调支架式（scaffolding）教学。Scaffolding本意是建筑行业中使用的脚手架，这里用来形象地说明一种教学模式：教师引导着教学的进行，使学生掌握、建构和内化所学的知识技能，从而使他们进行更高水平的认知活动（Slavin,1994）。简言之，是通过支架（教师的帮助）把管理调控学习的任务逐渐由教师转移给学生自已，最后撤去支架。这是以维果斯基的“辅助学习”（assisted learning）为基础的。维果斯基认为，人的高级的心理机能，如对于注意的调节以及符号思维等，在最初往往爱外在文化的调节，而后才逐渐内化为学习者头脑中的心理工具。在支架式教学中，教师作为文化的代表引导着教学，使学生掌握和内化那些能使其从事更高认知活动的技能，这种掌握和内化是与其年龄和认知水平相一致的，但是，一旦他获得了这些技能，便可以更多地对学习进行自我调节。<BR>　　支架式教学包括以下几个环节（Brown et al.1984），<BR>　　预热（etudss）：这是教学的开始阶段，将学生引入一定的问题情境，并提供可能获得的工具。<BR>　　探索（exploration）：首先由教师为学生确立目标，用以引发和展开情境的各种可能性，让学生进行探索尝试，这时的目标可能是开放的，但教师会对探索的方向有很大影响。在此过程中教师可以给以启发引导，可以做范例，提供问题解决的原型，也可以给学生以反馈等，但要逐渐增加问题的探索性的成分，逐步让位于学生自已的探索。<BR>　　独立探索（excursions）：这时，教师放手让学生自己决定自己探索的方向和问题，选择自己的方法，独立地进行探索。这时，不同的学生可能会探索不同的问题。<BR>　　可以看出，支架式教学与以前所谈的指导发现法相似，都强调在有教师指导的情况下的发展，但支架式教学则同时强调教师指导成分的逐渐减少，最终要使学生达到独立发现的地位，将监控学习和探索的责任由教师为主向学生为主转移。它强调教师与学生的地位在教学中的动态变化，而不是按某种比例做静态的组合。</P>
<P>&nbsp;</P>
<P>&nbsp;</P>]]></description>
</item><item>
<title><![CDATA[第一次来，记点东西]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=ccnu8&amp;id=3686</link>
<author>ccnu8</author>
<pubDate>2005/3/14 22:52:29</pubDate>
<description><![CDATA[
<P>发赛特技术网 <BR>地址：<A href="http://chs.gotdotnet.com/quickstart/">http://chs.gotdotnet.com/quickstart/</A> 描述：本站点是微软.NET技术的快速入门网站，我们不必再安装.NET Framework中的快速入门示例程序，直接在网上查看此示例即看。 **************************************************** <BR>名称：微软官方.NET指导站点 地址：<A href="http://www.gotdotnet.com/">http://www.gotdotnet.com/</A> 描述：上面的站点是本站的一个子站点，本站点提供微软.NET官方信息，并且有大量的用户源代码、控件下载，微软.NET开发组的人员也经常在此站点发表一些指导性文章。 **************************************************** <BR>名称：SourceForge 地址：<A href="http://www.sourceforge.net/">http://www.sourceforge.net</A> 描述：世界上最大的Open Source项目在线网站，上面已经有.NET的各种大型Open Source项目上千件，包括SharpDevelop、NDoc、Mono等都是在此站点发布最新源代码信息。 **************************************************** <BR>名称：CodeProject 地址：<A href="http://www.codeproject.com/">http://www.codeproject.com</A> 描述：很多非官方的中小型示例源代及文章，相当全面，基本上我们想要的各种方面的资料都可以在此处查找。 **************************************************** <BR>名称：Fabrice's weblog 地址：<A href="http://dotnetweblogs.com/FMARGUERIE/Story/4139.aspx">http://dotnetweblogs.com/FMARGUERIE/Story/4139.aspx</A> 描述：这是一个WebLog形式的在线日志网站，定期更新，包括.NET相关的工具、混淆器、反编译器等各种信息，十分值得收藏。 **************************************************** <BR>名称： 地址：<A href="http://www.aspalliance.com/aldotnet/examples/translate.aspx">http://www.aspalliance.com/aldotnet/examples/translate.aspx</A> 描述：c#翻译为vb.net，提供一个文本框，将你的C#源代码贴进去，就可以帮你翻译成VB.NET语法。 **************************************************** <BR>名称：CSharpHelp 地址：<A href="http://www.csharphelp.com/">http://www.csharphelp.com</A> 描述： 专业的C#语言在线帮助网站，主要提供C#语言方面的技术文章。专业性很强。 **************************************************** <BR>名称：DotNet247 地址：<A href="http://www.dotnet247.com/">http://www.dotnet247.com</A> 描述：最好的索引网站，分别按照门类及命名空间的索引，也提供了Microsoft KB知 </P>
<P>&nbsp;</P>]]></description>
</item>
</channel>
</rss>