文档库 最新最全的文档下载
当前位置:文档库 › 一步一步循序渐进学习TP

一步一步循序渐进学习TP

一步一步循序渐进学习TP
一步一步循序渐进学习TP

前言

TP的手册相当多,其实不必再出这样的贴子,论技术,我也是菜鸟一个,同时也在学习当中。

看到论坛上多了不少新朋友,不少在抱怨手册看不懂,那我就姑且抛砖引玉,尝试与新朋友们更简单地、手把手地进入TP的应用中去。讲解过程中有错的地方,大家帮忙指正。

这个系列,初步定下的目标为,从零开始,以TP示例中心中的Form为例进行讲解,以实践为主,理论为辅,

将TP的最基本内容逛一遍,至少让我们一起学会如何进行最简单的对数据进行查、增、改、删操作并输出到模板。

由于我们说的是循序渐进,所以我用步骤式来说明,只要一步一步跟着做,相信聪明的你在使用过程中就会明白TP的应用了。

注意:以下的步骤,仅仅是TP灵活的布署方式其中一种,实际开发中可以根据自己的情况去另行设定。

至于为什么那样做,我们会在最后再作总结,我觉得先实操然后再进行说明比较容易明白。以下不再重复解释。

============================================

一快速开始一个项目

名词解释:

项目:你要开发的系统,称之为项目。

入口文件:你可以理解为这个项目的唯一一道门,以后所有的操作都会通过这道门去执行处理。

不必理会什么意思,你甚至可以先把它看成是index.php就是入口文件

TP:ThinkPHP框架的简称

1下载TP1.5正式版

2拟好你的项目名称,我们这里以Myapp为项目名称

3在www根目录下,将TP框架所有文件全部复制过去,文件夹名称是ThinkPHP

4与ThinkPHP同级新建一个文件夹,起名为Myapp,也就是项目名称

5在www根目录下,创建一个PHP文件,起名index.php,这就是入口文件

入口文件index.php代码:

1

2//定义ThinkPHP路径

3define('THINK_PATH','./ThinkPHP');

4//定义项目名称

5define('APP_NAME','Myapp');

6//定义项目路径

7define('APP_PATH','./Myapp');

8//加载入口文件

9require(THINK_PATH.'/ThinkPHP.php');

10//实例化这个项目

11$App=new App();

12//执行初始化

13$App->run();

14?>

复制代码

就这么简单几行,然后打开浏览器,输入http://127.0.0.1/

一个TP项目就这样构建出来了。你会看到

15^_^Hello,欢迎使用ThinkPHP!

复制代码

这行字。并自动为你创建好项目的目录。接下来,我们这个项目添砖加瓦。

=============================================

二简单认识项目里的各个文件夹

名词解释:

Action:模块控制器类,你暂时可以理解为一个Action文件代表着一个应用模块,Action文件中的每一个方法(function)代表着一个操作,操作分为有输出到模板的操作和只具执行不需要输出的操作。对于有输出的操作,则代表了你的项目中一个展示给用户应用的web页面。(注意:这不是正统的术语解释)

Model:数据表相对应的Model类,可以理解为一个Model文件对应着你项目数据库的其中一个表。命名关系请参看这里:https://www.wendangku.net/doc/fc9646751.html,/Article/10

在添砖加瓦之前,我们有必要认识一下各个文件夹的用途。

打开Myapp文件夹,里面TP已让你很省心地构建了最基本的目录。其中:

Cache文件夹:项目自动生成的模版缓存会出现在这里

Common文件夹:你的项目中要用到的自己写的函数,可以在这个文件夹下创建一个名为common.php 文件,

在这个文件中书写函数,这些函数可以用在你项目的各个类,同时也可以在模板变量中使用,TP框架会自动加载。

Conf文件夹:项目的运行配置文件config.php将放在这个文件夹里,(还有路由配置,调试配置等,请先忽略)

Data文件夹:TP会把项目的数据库表字段生成到这里,另外。。。那些先不必理会。

Lang文件夹:项目的语言设置目录,先不必理会。

Lib文件夹:应用类库目录,在这文件夹内还有两个文件夹:Action和Model,Action目录放置命名为xxxAction.class.php的控制器文件,Model目录放置对应数据库表的命名为xxxModel.class.php的类文件。

Logs文件夹:项目中自动产生的日志文件会存放在这里。暂不必理会。

Temp文件夹:数据缓存目录,存放项目中自动生成的项目运行缓存文件等,以及使用文件方式时的缓存文件等

Tpl文件夹:模板文件目录,内有一个default文件夹,也就是默认的风格。

项目生成的目录结构就先简单介绍到这里,下一步我们要简单地对项目进行最基本的配置。

三创建数据表,并对项目进行配置,以便连接到数据库。

1我们这里使用的是Mysql数据库,利用PhpMyadmin新建一个数据库,名称为myapp。使用示例中心中的sql如下:

16CREATE TABLE`think_form`(

17`id`smallint(4)unsigned NOT NULL auto_increment,

18`title`varchar(255)NOT NULL,

19`content`varchar(255)NOT NULL,

20`create_time`int(11)unsigned NOT NULL,

21`update_time`int(11)unsigned NOT NULL,

22`status`tinyint(1)unsigned NOT NULL,

23`email`varchar(50)NOT NULL,

24PRIMARY KEY(`id`)

25)ENGINE=MyISAM DEFAULT CHARSET=utf8;

复制代码

2在Conf文件夹内,建立一个config.php文件。这个文件,就是Myapp项目的配置文件。系统会自动加载

config.php文件中的配置是以数组返回方式进行定义,会覆盖TP框架中的common目录下convention.php的默认配置。没有设置的配置,就以默认为准。配置设置可以利用C函数动态改变,暂且不必理会。

而我们连接到数据库的设置也是在这个文件中书写。

config.php代码如下:

26

27if(!defined('THINK_PATH'))exit();

28return array(

29'DB_TYPE'=>'mysql',//使用的数据库是mysql

30'DB_HOST'=>'localhost',

31'DB_NAME'=>'myapp',//数据库名

32'DB_USER'=>'root',

33'DB_PWD'=>'123456',//填写你连接数据库的密码

34'DB_PORT'=>'3306',

35'DB_PREFIX'=>'think_',//数据表表名的前缀请参看https://www.wendangku.net/doc/fc9646751.html,/Article/10

36);

37?>

复制代码

暂时就是这样,后面会再根据需要进一步添加和讲解。

3在Lib/Model目录下,创建一个文件,命名为FormModel.class.php。命名规则刚才你已看了两次。

这里就不再多说,我们可以看到,数据表名是think_form,由于我们配置了数据表表名的前缀为think_,

所以文件的命名直接使用"不含前缀的数据表表名+Model.class.php"就行了。

在这个文件中书写代码:

38

39

40class FormModel extends Model{

41}

42?>

复制代码

就这样定义一个类名就行了。该类继承了Model类。至于自动验证,自动过滤,自动填充这些,暂且不理会。

4提前先爽一下吧。再次利用PhpMyAdmin,在该表中插入一些数据

sql如下:

43INSERT INTO`think_form`(`id`,`title`,`content`,`create_time`,`update_time`, `status`,`email`)VALUES

44(1,'这是测试数据','dfdf',1212724876,0,1,'dddd@https://www.wendangku.net/doc/fc9646751.html,');

然后我们打开Myapp/Lib/Action/IndexAction.class.php文件,将里面的内容删掉。改成下面这样:

45

46class IndexAction extends Action{

47public function index(){

48$form=D('Form')->findall();

49dump($form);

50exit;

51}

52}

53?>

复制代码

打开浏览器,输入http://127.0.0.1/,看,数据给输出来了。

今天先到这里,下一步我们继续循序渐进。让我们一起把这个Form最后变成一个有会员功能的留言板。

由于时间关系,此系列共同学习教程更新的速度会比较慢些,请多见谅,上一章节的内容请看这里。

https://www.wendangku.net/doc/fc9646751.html,/viewthread.php?tid=4673&extra=page%3D1

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

PHP开发,无非是对数据库使用了逻辑控制的增删改查和使用模板输出数据内容。

通常数据的插入都是通过表单来进行添加。表单提交涉及到页面显示,

所以这一节我们暂时放下对数据库的操作讲解,先来简单学习一下TP的模板引擎的变量输出。

第四节简单了解TP的模板输出

上一章节我们提及到,

TP中的每一个xxxAction.class.php文件代表着一个应用模块,此Action中的每一个方法(function)代表着一个操作,操作分为有输出到模板的操作和只具执行不需要输出的操作。

打开Myapp/Lib/Action/IndexAction.class.php文件,我们看看里面的基础代码1class IndexAction extends Action{

2public function index(){

3}

复制代码

理论知识:

1在TP开发中,要增加一个应用模块,就在Action文件夹里建立一个类,类的文件命名格式是模块名称+Action.class.php。例如我们这里的应用模块是Index,所以定义文件名为IndexAction.class.php

2应用模块类的定义要继承框架的Action类。要为这个应用模块添加一个操作,则定义一个以此操作为命名的function.例如上面的index操作。

通常一个应用模块中,会有若干操作(function)需要有与用户交互的页面,这就需要用到模板输出,

TP本身已内置了一套具有TP特色的,很强大易扩展但应用非常方便兼简单的模板引擎。

在应有模块中,如果某个操作是需要页面显示的,只要对应在Myapp/Tpl/default/里建立一个文件夹,文件夹以应用模块的名称来命名,然后在这个文件夹下,建立一个以这个function 名称来命名的html文件,就可以在这个方法中使用$this->display()方法来直接调用该模板。(当然也可以调用其它模块下的其它模板或显式指定模板文件位置和名称,由于是循序渐进式的学习,就让我们先忽略吧)

了解这些理论后,我们先简单实操一下这些知识。

1在Myapp/Tpl/default/下建立一个文件夹,根据应用模块的名称,我们将这个文件夹命名为Index

2在Myapp/Tpl/default/Index/下建立一个html文件,根据操作名称,我们命名该文件为index.html

3打开Myapp/Lib/Action/IndexAction.class.php文件,修改代码为

5

6class IndexAction extends Action{

7public function index(){

8$value='hello,ThinkPHP';

9$this->assign('name',$value);

10$this->display();

11}

12}

13?>

复制代码

代码知识要点(摘自手册:ThinkPHP模板指南,此后的知识要点均来自TP官方手册,不再申明)

在Action类里面使用assign方法对模板变量赋值,无论何种变量类型都统一使用assign赋值。

14$this->assign('name',$value);

复制代码

//下面的写法是等效的

15$this->name=$value;

复制代码

//模板变量赋值后就需要调用模板文件来输出相关的变量,模板调用通过display方法来实现

16$this->display();

复制代码

4打开Myapp/Tpl/default/Index/index.html文件,代码为

17

18

19

20{$name}

21

22

23测试输出:{$name}

24

25

复制代码

代码知识要点:

模板变量使用{$变量名称}这种标签进行输出。

不同的模板变量类型,使用不同的标签,标签可以自行另外定义,暂且不理会。

5打开浏览器输入地址:http://127.0.0.1/,我们可以看到,定义的模板变量已经输出来了。

附加补充知识:

1如果要同时输出多个模板变量,可以使用下面的方式:

26$array=array();

27$array['name']='thinkphp';

28$array['email']='liu21st@https://www.wendangku.net/doc/fc9646751.html,';

29$array['phone']='12335678';

30$this->assign($array);

复制代码

这样,就可以在模板文件中同时输出name、email和phone三个变量。

2我们使用上面的变量定义,将整个数组定义为一个模板变量来输出31$array=array();

32$array['name']='thinkphp';

33$array['email']='liu21st@https://www.wendangku.net/doc/fc9646751.html,';

34$array['phone']='12335678';

35$this->assign('array',$array);

36$this->display();

复制代码

在html中,要输出$array['name']的值,代码是

37{$https://www.wendangku.net/doc/fc9646751.html,}或{$array['name']}

复制代码

3将这个数组循环输出

3.1IndexAction.class.php中代码更改如下

38

39class IndexAction extends Action{

40public function index(){

41$array=array();

42$array['name']='thinkphp';

43$array['email']='liu21st@https://www.wendangku.net/doc/fc9646751.html,';

44$array['phone']='12335678';

45$value='hello,ThinkPHP';

46$this->assign('array',$array);

47$this->assign('name',$value);

48$this->display();

49}

50}

51?>

复制代码

3.2将Myapp/Tpl/default/Index/index.html代码更改如下:

52 53

54

55{$name}

56

57

58

59{$vo}

60

61

62

复制代码

代码知识要点:

name='array'是指要循环的模板变量是array,id='vo'是指这个数据在模板输出时所使用的名称

对于TP的模板引擎输出先简单了解到这里

通过前面的学习,我们已大概地明白了应用模块中的操作与模板如何对应。

而这一节将简单讲解如何通过URL来访问操作。由于我们要循序渐进,所以先只介绍下面章节要用到的知识,要想深入学习还请参看官方手册《URL设计和SEO支持》

TP支持四种URL访问方式,默认是智能模式,所以我们就这种模式进行简要说明。

智能模式下的URL基本结构是这样的

http://servername/appName/moduleName/actionName/params

你可以理解为

http://服务器地址/入口文件位置/应用模块名称/具体操作名称/GET变量参数

解释一下上面文字中所译的URL结构,

为什么appname项目名称我将它译成了入口文件位置:通常情况下,我们的入口文件index.php都是放在根目录中,这时项目名称就会被入口文件index.php所替代。在前几节里,我们已知道,一个Action文件就是一个应用模块,而应用模块中的每个方法(function)就是一个具体操作。因此,假如要访问我们实例中的Index模块下的index操作。地址应该是

http://127.0.0.1/index.php/Index/index

如果入口文件不是在服务器的根目录,而是在myapp目录下,那么入口文件位置就是Myapp/index.php,此时上面的URL访问就相应要换成

http://127.0.0.1/Myapp/index.php/Index/index

这样说理应很清楚了,不过别让这么多index给混乱咯,对应URL的结构去明白每一个index 的函义,同时注意大小写

简单实操:

1打开Myapp/Lib/Action/IndexAction.class.php文件,在index这个function下再添加一个操作test

1

2class IndexAction extends Action{

3public function index(){

4$array=array();

5$array['name']='thinkphp';

6$array['email']='liu21st@https://www.wendangku.net/doc/fc9646751.html,';

7$array['phone']='12335678';

8$value='hello,ThinkPHP';

9$this->assign('array',$array);

10$this->assign('name',$value);

11$this->display();

12}

13public function test(){

14header("Content-Type:text/html;charset=utf-8");

15echo'哈,访问正确!!';

16}

17}//类定义end

18?>

复制代码

2尝试对应URL结构,来访问这个test操作,如果能成功看到echo的文字。则这节我们又学会了多一点知识。

附加知识点:

去掉URL里面的index.php

要去掉URL里的入口文件index.php,使URL类似这样的形式http://127.0.0.1/Index/index

可以按官方手册所提供的方法进行如下操作。

1确认httpd.conf配置文件中加载了mod_rewrite.so模块

2AllowOverride None将None改为All

3打开Myapp/Conf/config.php文件,在配置的数组中添加一行:

'URL_MODEL'=>2,

在入口文件所在的同级目录下,新建一个.htaccess文件,内容是

19

20RewriteEngine on

21RewriteCond%{REQUEST_FILENAME}!-d

22RewriteCond%{REQUEST_FILENAME}!-f

23RewriteRule^(.*)$index.php/$1[QSA,PT,L]

24

复制代码

如果你的服务器环境支持rewrite,使用http://127.0.0.1/Index/index就可以正常访问到Index模块的index操作了。

此后我们的学习中用到的URL,都是假定你使用了rewrite的情况。

注意:看到不少留言说操作不成功或出错,请别忘记,此系列教程出来时,TP1.6还没出来,所以系列6之前所介绍的示例和操作都还是标准版本1.5的,如果你使用1.6版,请对应两者差异性。

例如submit不能有name属性,是因为原来1.5有字段缓存进行过滤处理。1.6没有了字段缓存。

例如数据自动验证和自动填充都有了一定的区别。

关于1.6的使用可以下载快速入门教程,是此系列新手篇的完整版,并且附有示例源码。

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

第六节CURD知识之一C创建(create)

从这一节开始,我们就要涉及到数据库操作,TP对数据库的操作非常简便,以下是一些基础知识讲解。

名词解析:

1CURD:代表数据库四个基本操作:创建:create,更新:update,读取:read,删除:delete

2模型对象:即数据对象,你项目里每一个Model类文件都会对应着一个数据表(或者视图),模型与数据表存在一种映射关系。TP约定了命名要遵循一定的规范,如果不符合,则需要根据情况进行额外的相应设置。例如Model类的tableName属性

在第三节时,曾略为提到Model类文件命名,现在再回顾一下这部分的内容:

我们之前在数据库中,已建立了一个think_form数据库表,并且在配置文件config.php中,我们定义了数据表的前缀是think_,

模型类(Model)文件的命名规则是:

不包括前缀的数据库表表名并且首字母大写+Model.class.php

所以之前我们为think_form数据表在Myapp/Lib/Model目录下建立一个文件FormModel.class.php

模型类的特殊命名还可以智能识别驼峰式的表命名,假设我们有个是类似think_new_table这样的表可以命名为NewTableModel.class.php。默认配置便可以智能识别自动对应think_new_tabl

think_new_table e 表,因此不必修改配置。

开发过程中,只要简单地定义好与数据表对应的模型类(xxxModel.class.php),就可以进行对数据操作了。

如何让这个模型支持自动验证,自动填充,自动过滤这些知识,在下面涉及到时会作相应讲解。

一般来说,在表中添加数据都是通过表单来建立,为了更直观地学习CURD中的C,我们接

下来建立个表单来进行添加数据的操作。

之前我们已在Myapp/Lib/Model/下建立好FormModel.class.php类----模型(M)

同时也在Myapp/Lib/Action/下添加了一个Index应用模块和写下了一个index操作----控制器(C)

并且在Tpl目录下建立了与之对应的模板目录Index及index.html模板文件-------视图(V)

MVC模式的开发已体现了出来。

td web曾简明扼要地概括了TP中这三者的关系,

C的作用,就是从M中取得数据到V,

使用TP以表单提交数据到库,流程和你所了解的表单提交没有什么区别,只是TP简化了数据操作的处理过程。

我们在实际操作中体会一下。

先来看看我们所定义的数据表form的字段:

1'id',//自动编号

2'title',//标题

3'content',//内容

4'create_time',//创建时间

5'update_time'//更新时间

6'email',//邮箱

7'status',//状态

复制代码

其中的create_time字段是为了记录数据插入的时间,我们可以利用TP的数据自动填充来处理。

在Model类定义$_auto属性,可以完成数据自动处理功能,用来处理默认值和其他系统写入字段。

注意1:该自动填充可能会覆盖表单提交项目。其目的是为了防止表单非法提交字段。

注意2:要使用Model类的create方法创建数据对象的时候才会自动进行表单数据处理。

1打开Myapp/Lib/Model/FormModel.class.php文件,更改代码为

8

9class FormModel extends Model{

10//自动填充设置

11protected$_auto=array(

12array('status','1','ADD'),

13array('create_time','time','ADD','function'),

14);

15}

16?>

复制代码

代码知识要点:

Model类的$_auto属性由多个填充因子组成的数组,填充因子定义格式:

array(填充字段,填充内容,填充条件,附加规则)

填充字段:就是需要进行处理的表单字段,这个字段并不一定要是数据库表中的字段,对于表单内的辅助检测字段比如重复密码和验证码也可以处理。

填充条件:ADD|UPDATE|ALL(注意,此是1.5版本说明,1.6已改为123,后续教程有说明)

当为ADD时,会在新增数据时自动填充,这是默认的处理方式

当为UPDATE时,在更新数据的时候会自动填充

当为ALL时,所有情况下都会进行自动填充

附加规则:附加规则是针对填充内容而言,表示该内容填充的方式,包括function,callback,field,string

对于field使用其它字段进行填充和string直接标示字符串作为值进行填充很好理解。例如上面

17array('status','1','ADD'),

复制代码

就是将状态status字段的值直接以1填充.

下面主要说说function与callback这两个附加规则。

18protected$_auto=array(

19array('create_time','time','ADD','function'),

20);

复制代码

上面create_time代表了要处理的字段,填充内容是time,附加规则是function使用函数,填充条件是ADD新增时处理,那么整行代码表示对create_time字段在新增的时候使time函数作为该字段的值进行自动填充。

再看一个function作为附加规则的例子

21protected$_auto=array(

22array('password','md5','ADD','function'),

23);

复制代码

当使用function作为附加规则时,第二个填充内容就代表了这个因子是一个函数名称,该函数的参数就是代表填充字段的值,比如password的值是123456,则上面的代码会先将这个值使用函数md5('123456'),这样处理后再插入到数据表中去。

对于function(函数)和callback(回调方法)理论是一样的,只不过一个是表示填充内容所写的是函数名,另一个是表示填充内容是类中的方法名。函数可以是PHP5内置函数或你自己所写的函数。而callback是当前模型类所能调用的一个方法。

有关数据填充方面的详细资料,请参看官方使用手册《ThinkPHP数据操作指南》

2打开Myapp/Tpl/default/Index/index.html文件,我们修改代码将form写进去24

25

26

27{$title}

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

复制代码

在上面代码中,我们简单地建了一个form表单,并将标题统一使用一个模板变量{$title}。action提交到的处理地址是__URL__/add,其中__URL__是一个常量定义,表示当前模块地址,TP模板引擎会自动将这句解释为/index.php/Index/add,常见的模板使用的常量有

__ROOT__网站根目录地址

__APP__当前项目(入口文件)地址

__URL__当前模块地址

__ACTION__当前操作地址

__SELF__当前URL地址

3设置模板变量{$title},增加add操作方法

打开Myapp/Lib/Action/IndexAction.class.php文件,修改代码如下

47

48

49class IndexAction extends Action{

50public function index(){

51$this->assign('title','添加数据');//这里设置了模板变量{$title}

52$this->display();

53}

54//处理表单数据的方法

55function add(){

56$Form=D("Form");

57if($Form->create()){

58$Form->add();

59$this->redirect();

60}else{

61header("Content-Type:text/html;charset=utf-8");

62exit($Form->getError().'[返回]');

63}

64}

65}//类定义end

66?>

复制代码

代码知识要点:

模板变量赋值前面的章节已介绍过。这里就不啰嗦了。

我们来看看add方法的代码。

$Form=D("Form");

这里使用了TP的特色单字母函数D,是操作数据库时最常用的TP函数,表示实例化Form 对象,

即$Form=new FormModel();

D函数的具体代码可以查看ThinkPHP目录内的common/function.php中的片段,

它会自动引入Model类,并判断之前如果实例化过这个Model,就不再实例化,若然该Model 不存在,就会抛出异常错误,另外,D可以跨项目访问Model,暂且忽略。

$Form->create()

使用Model类的Create方法创建一个Form对象,失败会返回false。

$Form->add();//add方法会将表单数据进行写入

$this->redirect();//执行跳转

就这么简单几行代码,便完成了对数据插入的处理。

现在我们可以尝试一下在表单中输入数据进行提交试试了。

请先随便插入几条数据,以便下一节我们继续学习CURD中的R

很抱歉!不得不出这一篇过渡文章。

为了让这系列教程不致于日后会误导,从这节开始,让我们转型到1.6版的使用方式上。

但是对于1.6版的使用,我也是在摸索当中学习,错误和不足之处肯定会比较多,

故恳请流年大哥和td web,东至,yhustc等大大可以及时指正和补充,在此先谢谢了。

--------------------基于本学习系列1-4过渡到本节的补充说明--------------------------

说明1从这节开始,TP或dev这两个简称指的都是ThinkPHP1.6版,

可以到svn下载。https://www.wendangku.net/doc/fc9646751.html,/svn/branches/dev

下载后删除原来的ThinkPHP框架文件,将dev同样命名为ThinkPHP,并仍是放置于网站的根目录下。

另外,为了方便需要时可以对实例截图而不引起读者你误解,基于我的网站目录结构,现将Myapp的index.php位置更改到Myapp文件夹下(不再是原来的根目录).

步1:将根目录中的原index.php剪切并粘贴到Myapp文件夹下。更改代码为:

1

2//定义ThinkPHP路径

3define('THINK_PATH','../ThinkPHP');

4//定义项目名称

5define('APP_NAME','Myapp');

6//定义项目路径

7define('APP_PATH','.');

8//加载框架入口文件

9require(THINK_PATH.'/ThinkPHP.php');

10//实例化这个项目

11$App=new App();

12//执行初始化

13$App->run();

14?>

复制代码

代码补充注释:代码中项目名称其实是可以不必定义的,系统会自动根据当前的目录名定义

名称。

步2:将.htaccess文件复制一份粘贴到Myapp目录下。

步3:将Cache目录,Temp目录,Data目录清空。

说明2第五节中对于URL访问的默认模式

在dev版默认配置中,dispatch即URL调度功能是关闭的,所以在默认模式下,要访问Index

模块的index操作,地址应是:index.php?m=index&a=index,m指的是模块变量(Model),a指的是操作变量(Action)。

如果要使用类似第五节中的index.php/moduleName/actionName方式,则要在config.php文件里设置DISPA TCH_ON为true;

并且,也只有开启了此功能后,URL_MODEL的设置才会有效。

(在上面的章节我们提及过,可以设置URL_MODEL为2来使用rewrite功能去除显示index.php)

所以,现在我们的config.php代码是

15

16if(!defined('THINK_PATH'))exit();

17return array(

18'DB_TYPE'=>'mysql',//使用的数据库是mysql

19'DB_HOST'=>'localhost',

20'DB_NAME'=>'myapp',//数据库名

21'DB_USER'=>'root',

22'DB_PWD'=>'123456',//填写你连接数据库的密码

23'DB_PORT'=>'3306',

24'DB_PREFIX'=>'think_',//数据表表名的前缀请参看https://www.wendangku.net/doc/fc9646751.html,/Article/10 25'DISPATCH_ON'=>true,

26'URL_MODEL'=>2,

27'TMPL_VAR_IDENTIFY'=>'array',//模板变量识别留空自动判断array数组obj对象

28'DEBUG_MODE'=>true,//开启调试模式

29);

30?>

复制代码

代码补充注释:此节之后的内容会涉及到模板输出及数据操作,所以在这里明确设置了模板变量为数组,并开启TP的调试模式。

注意3:第六节CURD知识之一C(创建)中的自动填充

dev版的自动填充功能已移到AdvModel类中。要使用此功能,我们需要在Myapp/Lib/Model 类文件中引入该类.

那么再来看看我们所定义的数据表form的字段:

31'id',//自动编号

32'title',//标题

33'content',//内容

34'create_time',//创建时间

35'update_time'//更新时间

36'email',//邮箱

37'status',//状态

复制代码

引用tdweb手记:

如果需要新建数据时自动填入时间戳,只需要设置数据表字段名"create_time",如果需要修改时自动保存时间戳,那么设置数据表字段名为"update_time"。

如果你的数据表字段名不是默认的,那么需要指定,例如

protected$autoCreateTimestamps='ctime';

protected$autoUpdateTimestamps='utime';

故此,让我们打开Myapp/Lib/Model/FormModel.class.php文件,将代码更改为如下:38

39//导入AdvModel类

40alias_import('AdvModel');

41class FormModel extends AdvModel{

42/*如果数据表的创建时间字段不是create_time,需要另外设置成如下方式*/

43//protected$autoCreateTimestamps='ctime';

44//自动填充设置

45protected$_auto=array(

46array('status','1'),//自动填充的定义规则请参看第六节内容填充规则有所不同,见附注

47);

48}

49?>

复制代码

代码补充注释:

注意:dev版的填充条件改为1新增2更新3包含1和2,默认为新增。所以定义更方便了.而使用ADD|UPDATE|ALL会无效的(TO流年大哥:TP代码还有一个特色就是函数或方法的命名很符合语言使用习惯,原来的add,update,all很直观,易记,可惜没了)

array('field','填充内容','填充条件','附加规则',[额外参数])

alias_import($alias,$classfile='')快速定义和别名导入

这是新增的函数,我尝试注解一下,不正确请指正。

该函数可以动态设置文件列表导入和直接导入文件,常会用到的文件别名有

'Page'分页类Page.class.php',

'ViewModel'视图模型类ViewModel.class.php',

'AdvModel'高级模型类AdvModel.class.php',

'RelationModel'关联模型类RelationModel.class.php',

当要引入已定义别名的文件,我们只要直接在参数中传递别名就行了。

别名可以自行在ThinkPHP/Common/alias.php中扩充。

除了使用已定义的别名外,也可以使用动态指定。

50alias_import('zzg',APP_PATH.'/Lib/ORG/zzg.php');

复制代码

或一次引入多个文件

51$ailias=array(

52'Abc'=>APP_PATH.'/Lib/ORG/abc.php',

53'Efg'=>APP_PATH.'/Lib/Other/efg.php',

54);

55alias_import($ailias);

复制代码

注:指定文件或别名不存在时会返回false

类似的函数还有

import($class,$baseUrl='',$ext='.class.php')

流年大哥语:由于性能问题,这个方式以后不再支持

这是ThinkPHP内建的类库和文件导入的一个函数,具有缓存和检测机制,相同的文件不会重复导入,冲突时会提示错误。使用这方法时,系统会自动识别导入类库文件的位置:Think代表TP框架基类库即ThinkPHP/Lib/Think目录

ORG代表第三方公共类库即ThinkPHP/Lib/ORG目录

@代表当前项目类库,例如Import("@.Action.xxxAction")----即Myapp/Lib/Action/xxxAction.class.php

@指的是当前项目名称,这和使用Import("Myapp.Action.xxxAction")是一样的。

TP的约定是Think、ORG等导入的是以系统(TP)基类库为相对起始目录,否则就认为是项目(Myapp)应用类库为起始目录。

注意1使用时要注意文件名的大小写

注意2Import会自动将.转换为/,如果文件名中含有.,则要将.改为#才能正常导入。

注意3导入的类文件后缀默认是.class.php

2第三方框架类库导入:vendor($class,$baseUrl='',$ext='.php'),

起始目录统一是ThinkPHP/Vendor

默认后缀是.php

注:vendor也使用了Import函数。因此...

说明3,原来的模板文件index.html保持不变,因为我们已启用了DISPA TCH_ON开关。

仅将Myapp/Lib/Action/IndexAction.class.php代码更改如下

56

57class IndexAction extends Action{

58public function index()

59{

60$Form=D("Form")->select();//也可以D("Form")->findAll()

61dump($Form);//输出查询结果

62$this->assign('title','添加数据');//定义标题的模板变量

63$this->display();//渲染模板

64}

65//插入数据

66function add()

67{

68header("Content-Type:text/html;charset=utf-8");//为了提示时不乱码

69$Form=D('Form');//实例化Form模型

70$vo=$Form->create();//创建数据对象

71if(false===$vo){

72exit($Form->getError().'[返回]');

73}

74$rs=$Form->add();//插入数据

75if($rs){

76redirect('/Myapp/',2,'数据添加成功!');

77}else{

78exit($Form->getError().'[返回]');

79}

80}

81}//类定义end

82?>

复制代码

代码补充解释:

select($options=array());

为了方便查看数据,index操作中使用到了一个基本查询方法

tdweb语:select()方法代替了之前比较流行的findAll(),不传任何参数则是获取全部数据。

我们仍是循序渐进,具体关于查询的方法会在用到的时候陆续一起学习。

dump($var,$echo=true,$label=null,$strict=true)函数。浏览器友好的变量输出。

当只有一个$var参数时,会直接打印这个$var。

dump($Form);会输出类似

83array(1){

84[0]=>array(7){

85["id"]=>string(1)"1"

86["title"]=>string(18)"这是测试数据"

87["content"]=>string(4)"dfdf"

88["create_time"]=>string(10)"1212724876"

89["update_time"]=>string(1)"0"

教你如何一步一步学写古诗 (3)

教你如何一步一步学写古诗! 甲:什么是诗? 这是一个很大的概念。说不明白。广义的诗,就指一般的诗,词,赋,歌等。 笼统的说:通过有节奏、有韵律的语言反映生活,抒发情感的文学体裁。 诗的分类和流派 新诗:新月派,朦胧派,抽象派…… 旧诗:(一)形式上分:古体诗,近体诗。 (二)风格上分:现实主义,浪漫主义 (三)内容上分:山水、思乡、边塞、记人、咏物…… 第二贴:古诗词四要素:押韵、四声、平仄、对仗。 乙:声调和平仄 现在普通话中有四声。 古代汉语也分四声,分法和叫法都不同。分平、上、去、入四声。 因为平声词太多,所以又分为上平声,下平声。 它们和现代汉语是不同的,我们没有必要去理会它们的区别。标准就是《平水韵》,作诗的人,也不必刻意去记。要用时一查即可。 古诗常说的平仄,就是四个声调的分类。平,就是平声,因为平声词太多,所以分为上平声和下平声。仄仄声,就是除了平声的声调。也就是其他三声调(上、去、入)都属仄声。 押韵 什么叫韵?就是每一个汉字的韵母。把同韵母的汉字,放在每一句诗的最后一个汉字位置上。就是押韵。也叫韵脚。 牢记:平仄,押韵两概念。 丙:古体诗(古风)分类 押韵、平仄要求都不严格的诗,都一略可作古体诗。这是古代的自由诗。 分类: 1五古,全称五言古诗。每句诗五个字。 2七古,全称七言古诗,每句诗七个字。 3杂言,指每句诗长短不一的古诗。一般归入七言古诗。可从三言到十一言。主要还是以七言为主,五言次之。 古体诗(古风)写法 因为古体诗要求自由,写作也简单。只要求押韵。不论是平声韵,或是仄声韵都可以。 不论是全诗一韵,或是全诗N个韵。(当然啊,不能四句诗四个韵,因为这样根本就是没有押韵的。) 句句都押同一韵也可以。不过这样的古体诗有一个专门的分类:柏梁体。 牢记:只求押韵,不讲平仄。 丁:古体诗的节奏与修辞 古体诗句数也自由,一般是双数句。四句,八句居多。大约八句以上的,或者是杂言的古体诗,一般称古风。 古体诗节奏。

给电脑装系统的几种方法

给电脑装系统的几种方法 自己有电脑,而且不会自己装系统的啊,每次系统坏了都要花钱找别人弄的啊!赶紧过学习下,电脑都用这么久了,还不会做这些,别人会笑话的!!哈哈哈。。。开始介绍吧!! 给电脑装系统一般有4种办法: 1. 傻瓜式装系统: 可装Win7或WinXP,主要的操作如下: 需要准备的东西: 现有的电脑操作系统,(例如你的电脑系统还能用,但是很不给力!你想重装一下系统,或者换个系统等情况); 到网上去下载一个GHO格式的镜像文件的系统;(百度一搜一大堆!记住你下载是什么类型的系统,就能装什么类型的系统,比如WinXP,Win7,或者64位的系统); 还有一个最重要的东西,那就是Ghost备份还原工具,是EXE格式的应用程序;(百度搜“Ghost 备份还原工具”,就有)具体如下图 好!准备工作好了,下面开始装系统,第一步:打开Ghost备份还原工具,界面如下:

看好!第一行选还原系统,第二行选择你下载那个GHO格式的系统 【特此声明,如果你发现你选择好的GHO文件后,然后下面选择C盘后发现最底下的“确认”按钮还是灰色不能点击;则说明你下载的系统是错误的GHO和格式的系统,建议你去重新下载GHO格式的系统,当然上图的XP系统是假的,我用压缩包改造的!】 如果选中C盘后,那个确认按钮可以使用,就点击那个确认按钮,它会弹出一个对话框;问你真的要重新启动还原系统吗?你点击是,它会自动重启并为你重新安装系统,好了,重启时你就不用动电脑了,你可以一边玩去了,他是全自动的安装系统;过个几分钟就能装好系统了!这就是最简单的傻瓜式装系统!这样装系统的缺点就是:你装的系统是被别人搞过的!不是完全的纯净版,或者微软的原版系统,这种系统里面会自带一些你不喜欢的软件,或者说你根本用不到的软件!优点除了系统自己可以装好部分驱动,其他的我就不说了,你懂的! 2.可移动磁盘(USB Device) 需要准备东西: 能用的可移动磁盘(U盘,TF卡,SD卡,MP3等等随便,其中内存至少大于512MB);WindowsPE(ISO格式的镜像文件,可在网上搜索下载,文件大小在100MB~300MB左右,太大的不好用,启动慢); WindowsXP或Windows7(是你要安装在电脑上的系统,最好是ISO格式镜像文件,WinXP大约600MB左右,Win7 32位大约2.5GB,64位的大约3.2GB左右

魔方教程一步一步图解

三阶魔方玩法攻略 入门 魔方,又称魔术方块,是匈牙利建筑学教授和雕塑家厄尔诺·鲁比克(Emo Rubik)于1974年发明的机械益智玩具,鲁比克是魔方界的教父,因此魔方的英文名便称为Rubik ’s Cube。厄尔诺·鲁比克出生于1944年7月13日,是匈牙利布达佩斯建筑学院的教授,在教学中,自己动手做出了第一个魔方的雏形来帮助学生们认识空间立方体的组成和结构。在他完成第一个作品以后,转动了几下,发现很难还原至原来的样子,于是他意识到这个新的发明会很不简单。不久以后鲁比克为自己的发明申请了专利,让鲁比克没有想到的是,这个边长不到6厘米的玩具意然很快风靡全球。我们常见的魔方是3×3×3的三阶魔方,是一个正6面体,有6种颜色,由26块组成,其中有8个角块,12个棱块,6个中心块(和中心轴支架相连接),别看只有26个小方块,变化可真是不少,魔方总 的变化数为: 约等于4.3×1019。如果你一秒可以转3下魔方,不计重复,你也需要转4542亿年,才可以转出魔 方所有的变化。由此可见,这么多变化使魔方每次玩起来都有一种新鲜感,这种不变中又有万变是 魔方的最大魅力。 我们对魔方有了一个基本的了解,下面我们开始讲解常见的三阶魔方怎样一步一步的来复原,相信 你抽出几个小时的时间,专心的按照本教程的步骤,一步步的学习,2-3个小时就能学会复原你手 中的魔方了,好,现在开始我们的魔方复原之旅吧! 1、魔方的基本概念 为了便于描述魔方复原过程,我们需要熟悉魔方的一些基本概念——面、层、角块、棱块、中心块, 面位、到位、归位。 一面复原:是指一个平面的3×3块的同一面的颜色同色。 一层复原:是指一个平面的3×3块所处的3×3×1块,不仅同一面的颜色同色,3×1块的侧面颜 色也同色。 如下图所示,请仔细比较一面和一层的区别。 从外观来看,中心块有一个面,棱块有两个面,角块有三个面,如下图所示。 面位:只有一面颜色与中心块颜色相同,其他面颜色和中心块不相同。

手把手教你一步一步学刷机

很长一段时间了,有部分刚开始接触C8500的机友在论坛中不断发短消息给我询问有关刷机的问题,同时也看到一些刚接触C8500的机友在论坛中发贴和跟贴询问如何刷机的问题及存在的困惑,特别是有个机友发短消息对我说在他在使用英文版的“Recovery”时,由于不懂英文,本来要要清空缓存的却误选择了格式化SD卡,导至SD卡中的资料丢失,因此,他问我能不能写一篇更详细、更全面的C8500刷机教程,一看就懂的那种。其实,我也有这种想法,但说起来容易,真正写起来却很难,一是论坛中已经有很多的介绍C8500刷机的教程了,二是要怎么写才才算全面、详细,这个确实很难把握。但为了不辜负那些机友的信任,我还是得写,尽量做到详细、全面吧! 一、简单介绍一下Android智能操作系统 作为Android智能操作系统的手机用户,你应当知道什么是Android智能操作系统:Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动操作系统。 二、为什么要刷机,刷机有风险吗?

(一)为什么要刷机? 新版本的rom会更稳定,可以打上新的补丁,可以解决一些之前存在的bug,可以增加一些新的功能等等 。 (二)刷机有风险吗? 其实Android系统的手机刷ROM是最容易的,它不像Windows Mobile系统手机刷机那样需要先刷(降)SPL (全称Second Program Loader,是手机刷机的专业术语,除了包含手机的bootloader启动android外,还包含其它的一些功能,如刷nbh,支持fasboot等),在Windows Mobile系统手机(如我的多普达P660)中,在刷ROM之前如果不先刷(降)SPL,那手机必定变为砖头。但Android系统的手机刷ROM却不需要刷(降)SPL,直接下载官方(如华为)的刷机包(我不喜欢官方的刷机包,里面定制了太多的需要上网产生流量的软件,虽然你也可以在取得权限后从系统中删除,但系统中始终会留下垃圾文件,使手机的运行速度减慢因此,我都是从网上下载高人制作的简洁刷机包,然后安装自己喜欢的软件即可)开刷却可。因此,Android系统的手机刷ROM是最简单、最安全的(特别是后缀名为ZIP的卡刷),

电脑高手装机图解教程(图文并茂)2010最新版

菜鸟必看的电脑高手装机图解教程(图文并茂) 电脑diy装机对于专门从事电脑行业的人来说不算什么,是非常简单的事,甚至都谈不上会了不难,但对于普通人刚接触电脑的人来说可能是很神秘的,什么时候也自己组装一台电脑试试,成为很多人的现实理想。下面就以英特尔处理器为例图解电脑装机的全过程,老鸟不要笑话,虽然简单,但你敢说自己一开始就那么明白,英特尔的cpu均采用了LGA 775接口,无论是入门的赛扬处理器,还是中端的奔腾E与Core 2,甚至高端的四核Core 2,其接口均为LGA775,安装方式完全一致。所以本人喜欢英特尔,规范简单,不像AMD搞那么多系列,针脚五花八门,一个字“乱”。

上图中可以看到,LGA 775接口的英特尔处理器全部采用了触点式设计,与AMD的针式设计相比,最大的优势是不用再去担心针脚折断的问题,但对处理器的插座要求则更高。 这是主板上的LGA 775处理器的插座,大家可以看到,与针管设计的插座区别相当的大。在安装CPU之前,我们要先打开插座,方法是:用适当的力向下微压固定CPU的压杆,同时用力往外推压杆,使其脱离固定卡扣。

压杆脱离卡扣后,我们便可以顺利的将压杆拉起。接下来,我们将固定处理器的盖子与压杆反方向提起。

LGA 775插座展现在我们的眼前。 在安装处理器时,需要特别注意。大家可以仔细观察,在CPU处理器的一角上有一个三角形的标识,另外仔细观察主板上的CPU插座,同样会发现一个三角形的标识。在安装时,处理器上印有三角标识的那个角要与主板上印有三角标识的那个角对齐,然后慢慢的将处理器轻压到位。这不仅适用于英特尔的处理器,而且适用于目前所有的处理器,特别是对于采用针脚设计的处理器而言,如果方向不对则无法将CPU安装到全部位,大家在安装时要特别的注意。

三阶魔方教程图解

魔方曾被誉为世界三大智力玩具之一,不过现在我不敢这么说了。什么?另外两个是什么?你可记住了:那是我们中国的九连环和捉放曹啊! 魔方可以拆开。废话!不过……你拆开过吗?如果没有,赶快把魔方一块一块地卸下来,嘿嘿嘿,是不是有一种打DOOM怪物的感觉?卸下来了吗?可以看到,除了骨架上的六个不同颜色的中心积木外,还有8个角上的积木和12个棱上的积木。中心积木只有一种颜色,棱上的积木有两种颜色,角上的积木有三种颜色。不管怎么说,没有两块积木是完全相同的。骨架上的中心积木是不能动的,所以中心积木与中心积木的相对位置是确定不变的,所以角上棱上的积木的正确位置也是不变的。例如一个红黄蓝色的角积木,它的正确位置就在红黄蓝中心积木对应面的角上。我们的任务就是把棱积木、角积木转到它们自己的位置上。 废话少说,快来观摩一下我的规划图吧: 图1 从现在起我们就要开始玩魔方了,现在的任务是完成魔方的一面。 首先选择你要玩的面颜色,在这里我选择兰色进行教学,因为我喜欢兰色^_^,我们将该颜色的中心积木所在的面称为基面。 图2 图3

图4 为了避免玩家转来转去找不到魔方的方向了,我们统一规定,魔方摆放如图2所示,另外在图3中我们要将外面的兰色块转入基面的黑色块位置时,却不能影响阴影积木,这也是玩魔方的难点。对于其他没着色的积木,都是些无关紧要的积木,可不去理会,把注意力集中在基面外面的操作块、操作块的目标位置和不可受到影响的积木上。(注:在操作的步骤中,阴影积木可以移动,但要保证步骤完毕后,阴影积木无变化) 对于魔方一面的完成,我们是一个一个操作块地完成的,饭也是一口一口地吃嘛!转时,一定要找准操作块的真正目标所在,要注意操作块的附加颜色,否则失败。如图4,黄蓝色块与绿蓝色块颠倒,所以兰色一面成功了也没有用。 下面是一些最基本的将操作块转入基面的功夫,可要认真揣摩呀! 图5 图6 简要说明:图中阴影块是目标位置,注意哟,我可没有标记不可受影响的积木哟。另外,要注意操作块相对于目标位置的区别,不同的位置用不同的方法。如图6所示,基面外兰色标记的块,都可以通过转动使其到达A位置或者B位置,然后再用1方法完成到达目的位置的任务。 图7

一步一步学习Flash

目 录 一步一步学习Flash 8(一) (2) 一步一步学习 Flash 8(二) (5) 一步一步学习 Flash 8(三) (9) 一步一步学习 Flash 8(四) (13) 一步一步学习 Flash 8(五) (17) 一步一步学习 Flash 8(六) (25) 一步一步学习 Flash 8(七) (30)

一步一步学习Flash 8(一) 什么是 Flash Flash 是一种创作工具,设计人员和开发人员可使用它来创建演示文稿、应用程序和其它允许用户交互的内容。Flash 可以包含简单的动画、视频内容、复杂演示文稿和应用程序以及介于它们之间的任何内容。通常,使用 Flash 创作的各个内容单元称为应用程序,即使它们可能只是很简单的动画。您可以通过添加图片、声音、视频和特殊效果,构建包含丰富媒体的 Flash 应用程序。Flash 特别适用于创建通过 Internet 提供的内容,因为它的文件非常小。 使用 Flash 可以做什么 使用 Flash 中的诸多功能,可以创建许多类型的应用程序。以下是 Flash 能够生成的应用程序种类的一些示例: 动画:包括横幅广告、联机贺卡、卡通画等。许多其它类型的 Flash 应用程序也包含动画元素。 游戏:许多游戏都是使用 Flash 构建的。游戏通常结合了 Flash 的动画功能和 ActionScript 的逻辑功能。 用户界面:许多 Web 站点设计人员使用 Flash 设计用户界面。它可以是简单的导航栏,也可以是复杂得多的界面。 灵活消息区域:设计人员使用 web 页中的这些区域显示可能会不断变化的信息。餐厅 Web 站点上的灵活消息区域 (FMA) 可能显示每天的特价菜单。 丰富 Internet 应用程序:这包括多种类别的应用程序,它们提供丰富的用户界面,用于通过 Internet 显示和操作远程存储的数据。丰富 Internet 应用程序可以是一个日历应用程序、价格查询应用程序、购物目录、教育和测试

自己组装电脑步骤

第一种方法: 如何组装电脑成为了越来越多电脑DIY爱好者们津津乐道的一门技巧,对于电脑菜鸟们来说,怎样学习组装电脑也成了跨入DIYer行列的第一个门槛。那么,学习如何组装电脑需要哪些知识和技巧呢?电脑配置网将在本文详细的给大家做个讲解。电脑配置单。 在本文中,我们将为您介绍如何组装电脑的整个过程。您将了解到该如何选择需要的部件,如何进行购买,以及如何将它们组装在一起。整个流程完成后,您将获得完全符合自己需要的电脑。那么,就让我们开始吧。 一、准备装机工具 装机并不复杂,有了下面3种工具,装起机来更是得心应手。电脑组装。 1.十字形螺丝刀 组装电脑时所使用的螺丝钉都是十字形的,最好准备带滋性的螺丝刀方便吸取。 2.尖嘴钳子 尖嘴钳子可以用来折断一些材质较硬的机箱后面的挡板,也可以用来夹一些细小的螺丝、螺帽、跳线帽等小零件。

3.导热硅脂 在安装CPU的时候,导热硅脂是必不可少的。用它可以填充散热器与CPU表面的空隙,更好的帮助散热。 二、装机注意事项 1.防静电 电脑里的配件比较娇贵,人体带的静电会对它们造成很大的伤害,譬如内部短路、损坏。在组装电脑之前,应该用手触摸一下良好接地的导体,把人体自带的静电导出。或是戴上绝缘手套进行安装。 2.防潮湿 如果水分附着在电脑配件的电路上,很有可能造成短路而导致配件的损坏。 3.防粗暴 在组装电脑时一定要防止粗暴的动作。因为电脑配件的许多接口都有防插反的防呆式设计,如果安装位置不到位,再加上用力过猛,就有可能引起配件的折断或变形。 三、开始装机 学习如何组装电脑的第一步就是要确定自己要组装什么类型的电脑。您需要的是一台供孩子使用的相当便宜的电脑吗?一台可摆放在起居室,作为媒体电脑使用的噪音较小的小型电脑?抑或是一台高端游戏用电脑?又或许您需要的是一台拥有很大的磁盘空间,可进行视频编缉的功能强大的电脑。这些可能性不胜枚举,而您选择的类型将左右您随后做出的许多决定。因此,从一开始,您就应该对电脑的用途做到心中有数。这一点非常重要。 我们假设您要组装一台功能强大、可进行视频编辑的电脑。您希望它拥有双核CPU、大容量RAM,并且磁盘空间容量达到1000G。您还希望主板上装配有 FireWire(火线)连接器。为满足这些要求,您得寻找支持以下配置的主板:

魔方七步教程 图文版

魔方七步教程 首先,破解魔方,或者说还原魔方的6个面,我们就要先了解它的结构,魔方共6色6面,每面又分为中央块(最中间的块6个)、角块(4角的块8个)和边块(4条边中间的块12个)。其中中央块只有1个面,他们是固定的结构,所以中央是红色的块,那么其他的红色都要向这个面集中。而且红色的中央块对面永远是橙色中央块(国际标准是这么规定的)。而边块有2个面2个颜色,角块则有3个面3个颜色。 接下来我们将每个面都用字母代表,

然后破解魔方功略里会用字母来说明要转动的1层或1面,以及方向:例如:R(代表右面顺时针转90度),R`(代表右面逆时针转90度),R2(代表右面顺时针转2次90度) 下面是图示: 最后要说明的是:每面的名称是相对的,例如F是前面,就是手拿魔方时面向自己的一面,若把模仿旋转到另一面,那么就有新的一面成为前面。 好了 下面就让我们尝试下7步将魔方还原吧!

1.先将中间是白色块的一面(有个rubiks logo的那块)对着上面,然后在顶部做出白十字,就是其他颜色的块都到相应的位置(小复杂,见图示,注意上面标的口诀哦,照做无误) 2.然后是将白色的角块归位(秘籍说的很复杂,还是看图比较容易理解啦)

3.然后让中层边块归位。 把白色面转向下,找出红绿边块,若红绿边块在顶层则按顺时针方向转动顶层,直到边块与图上的1个情况相同,在按照口诀转动魔方,使边块归位。若红绿边块在中间某层,但位置错误或颜色错误,则先使红绿边块在右前方的位置,再重新按照下面其中一个次序旋转1次。

4.然后将顶层(应该是黄色)边块调整向上,做出黄十字。若按照口诀转动1次后,顶层仍未出现黄色十字,可重复按口诀转动,直到黄色十字出现为止。 5.然后将魔方黄色角块调整到十字周围,有点难度,看口诀提示吧。

七步还原任何魔方及新手教程

七步还原任何魔方方法 首先,破解魔方,我们就要先了解它的结构,魔方共6色6面,每面又分为中央块(最中间的块6个)、角块(4角的块8个)和边块(4条边中间的块12个)。其中中央块只有1个面,他们是固定的结构,所以中央是红色的块,那么其他的红色都要向这个面集中。而且红色的中央块对面永远是橙色中央块(国际标准是这么规定的)。而边块有2个面2个颜色,角块则有3个面3个颜色。 接下来我们将每个面都用字母代表: 然后破解功略里会用字母来说明要转动的1层或1面,以及方向:例如:R(代表右面顺时针转90度),R`(代表右面逆时针转90度),R2(代表右面顺时针转2次90度) 下面是图示:

最后要说明的是:每面的名称是相对的,例如F是前面,就是手拿魔方时面向自己的一面,若把模仿旋转到另一面,那么就有新的一面成为前面。 好了 下面就让我们尝试下7步将魔方还原吧! 1.先将中间是白色块的一面(有个rubiks logo的那块)对着上面,然后在顶部做出白十字,就是其他颜色的块都到相应的位置(小复杂,见图示,注意上面标的口诀哦,照做无误) 2、然后是将白色的角块归位(秘籍说的很复杂,还是看图比较容易理解啦

2.然后让中层边块归位。 把白色面转向下,找出红绿边块,若红绿边块在顶层则按顺时针方向转动顶层,直到边块与图上的1个情况相同,在按照口诀转动魔方,使边块归位。若红绿边块在中间某层,但位置错误或颜色错误,则先使红绿边块在右前方的位置,再重新按照下面其中一个次序旋 转1次。

3.然后将顶层(应该是黄色)边块调整向上,做出黄十字。若按照口诀转动1次后,顶层仍未出现黄色十字,可重复按口诀转动,直到黄色十字出现为止。 5.然后将黄色角块调整到十字周围,有点难度,看口诀提示吧。

一步一步学习SQL Server BI

一步一步学习SQL Server BI 一步一步学习sqlserver BI--数据仓库设计 因为项目还没有真正开始,但是接触BI已有半年多,手痒,这几天准备搞一个简化版本的BI项目。一方面给刚BI入门的朋友一个参考,另外一方面也为自己的将要开始的项目做个准备,让自己能够考虑到一些项目的细节。同时也希望对BI有研究的朋友提供一些建议和经验。因为我们的这个案例是采用微软的sqlserver2005的BI平台开发的,所以这里先贴一张WebCast里面截来的图,这张图主要反映了采用 sqlserver2005的BI项目的架构。 好了,咱们开始吧。我说的这个项目需求很简单,因为是简化版本的么。这是一个游戏中使用到的物品的销售分析软件。里面包括几个概念,游戏,销售部门,物品,交易金额,交易笔数,发布单数等。我们要做的事情就是按游戏,按部门,按物品来实现对交易金额,笔数等的数据交叉分析。 在我们这个系统里面,我们的数据颗粒度是天。好了,既然是简化版,我们也就不用那么罗嗦,什么需求分析,分析设计都省了吧,下面直接进入数据库设计。 我们的数据库一共包括四张维度表(部门维度,游戏维度,物品维度,时间维度),一张事实表(游戏交易数据事实表)。 部门维度表 游戏维度表 物品维度表

时间维度表 交易数据事实表 由于我们的这个案例比较简单,所以维度与事实表之间的关系也比较简 单,是一个简单的星型架构。 这一节我们就先写到这里,下一节我将会详细的写这个项目的ETL部分。 一步一步学习sqlserver BI--ETL设计 这节我们主要讲讲我的游戏交易数据分析项目的ETL(数据抽取、加载、转换)具体是怎么做的。 先来讲下源系统吧,因为我们的交易主站的服务器不是架在公司的,因此不能直接从源系统直接抽取数据了。事实上我们已经存在一个简单的数据分析系统了,只不过这个是以前人家做的,没有采用sqlserver2005的BI平台来做,而是直接写winform程序来弄的。原来的数据抽取是主站那边提供导出的excel文件过来,然后到我们这边,导入到我们的分析库中去。 好了,为了简便,事实上我只是在做一个demo,为以后项目做准备,所以我们抽取数据直接是从上面说的已经存在分析库中抽的,因为数据结构比较相近,所以ETL过程还是比较简单的。 先看看游戏维度表吧: 首先,我们来新建一个Integration Services项目。 接着,新建一个ImportDimGamePackage.dtsx的SSIS包。 拖放一个数据流任务到控制流面板上(如图)

三阶魔方公式图解、教程

三阶魔方公式、魔方图解、魔方教程,从零基础到精通! 魔方还原法Rubic's Cube Solution ————先看理论“ 魔方的还原方法很多 在这里向大家介绍一种比较简单的魔方六面还原方法。这种方法熟练之后可以在大约30秒之内将魔方的六面还原。 在介绍还原法之前,首先说明一下魔方移动的记法。魔方状态图中标有字母“F”的为前面,图后所记载的操作都以这个前面为基准。各个面用以下字母表示: F:前面 U:上面 D:下面 L:左面 R:右面 H:水平方向的中间层 V:垂直方向的中间层 魔方操作步骤中,单独写一个字母表示将该面顺时针旋转90度,字母后加一个减号表示将该面逆时针旋转90度,字母后加一个数字2表示将该面旋转180度。H的情况下,由上向下看来决定顺逆时针方向;V的情况下,由右向左看来决定顺逆时针方向。例如 U:将上层顺时针旋转90度 L-:将左面逆时针旋转90度 H2:将水平中间层旋转180度 目录 上层四角还原 下层四角还原 上下层八角还原 上下层边块还原 中层边块还原 上层四角还原 首先我们用最简单的几步使得上层的三个角块归位,暂不必考虑四周的色向位置)。还有一个角块存在五种情况,归位方法如下。 L D L- F- D- F D L2 D- L2 F L D- L- L- F- D F

下层四角还原 上层四角归位后,将上层放在下面位置上,作为下层。然后看上层和四周的颜色和图案排列,按照以下的操作使上层四个角块一次归位。共存在七种情况。 R2 U2 R- U2 R2 R- U- F- U F U- F- U F R R U R- U R U2 R- L- U- L U- L- U2 L R- U- F- U F R R U R- U- F- U- F R U- R- U- F- U F 上下层八角还原 要是上层和下层八个角块色向位置全部相同,存在下面五种情况: 当上下二层八个角块色向位置都不对时:按照(1)旋转。 当下层四个角块色向位置不对,上层相邻两个角块色相位置对时:将上层色向位置相同的两个角块放在后面位置上,按照(2)旋转。 当下层四个角块色向位置对,上层相邻两个角块色相位置也对时:将上层色向位置相同的两个角块放在前面位置上,按照(2)旋转后即变成第一种情况。 当下层四个角块色向位置对,上层四个角块色向位置不对时:按照(2)旋转后即变成第二种情况。 当下层相邻两个角块色向位置对,上层相邻两个角块色向位置也对时:将下层色向位置相同的两个角块放在右面位置上,上层色相位置相同的两个角块放在前面位置上,按照(2)旋转之后即变成第二种情况。 (1) R2 F2 R2 (2) R- D F- D2 F D- R 上下层边块还原 按照下图所示操作方法将上下层的边块归位。在上层边块归位时,要注意四周的色向位置。留下一个边块不必马上归位,留作下层边块归位时调整使用。 上层三个边块归位之后,将该层放在下面位置上作为下层,然后将上层的四个边块归位。操作时,为了不破坏下层已经归位的边块,必须将下层留下的一个未归位的边块垂直对着上层要归位的边块的位置。 R- H- R R H R- F H- F- V- D2 V F H- F2 H2 F

一步一步学vray for C4D

第02课:安装& 调用 2。1 。安装 1。把下载的vray for C4D 解压出来。(下载地址参考:https://www.wendangku.net/doc/fc9646751.html,/thread-175-1-1.html)如下图: 2。复制VrayBridge_1.0821到C4D的plugins目录下。(如上图的1。2。) 3。把VrayLibs_1.0821文件夹里的文件复制到C4D的根目录下。(如上图的3。4。5。) 4。复制mus3.vray.kg.exe到C4D的主目录下,运行,输入11位c4d列序号,点击生成。 查看C4D列序号的方法:

到此,你已经成功安装了插件vray for C4D 了。 (注意:你的C4D安装路径不能有中文,否则一用与VFC有关的东西就会自动弹出对话框,退出。)2。2 调用 下面,继续说说如何调用vray来沉浸。 1。找开C4D。

2。渲染设置-> 后期效果-> 效果-> VrayBridge 左键单击,这样当你渲染时,C4D就会调用vray来渲染了。给张效果图大家看看。 ~ 2。3。小试VFC 1。调出VFC,找开GI。如下图:

2。新建一个球体与圆环体,加入一个灯,一个平面(适当拉大)再新建一个HyperNURBS,把球体放进去。(因为VFC现在还不支持完美球体与地板) 3。新建一个vary材质。如下图: 4。把几个vray材质拉到球体、圆环与平面。 5。激动人心的一刻到了,点击渲染吧。

~ 下节课我们讲讲Vray的标签吧 第03课:Vray标签 在C4D里有6个Vary 标签,分别是: VrayDisplacment(Vray置换标签)、VrayCameraDome(球顶摄像机)、VrayCompositiong(Vray合成标签)、VrayPhysicalCamera(Vray物理摄像机)、VrayLight(Vray灯光标签)、VrayMotlonblur(运动模糊标签)。 —————————————————————————————————————— 3。1。VrayDisplacment 这个标签可以让你方便地控制置换物体。在标签的设置里,你可以添加任何纹理或色彩或其他组合。这个标签是需要一个Vray 材质的。

从零开始学电脑,一步一步到高手(硬件篇和软件篇)

硬件篇: 电脑硬件的组成: (菜鸟篇) CPU:目前常见的CPU主要是由2个厂家生产,一个是AMD公司的,高端产品是 速龙系列,低端是闪龙系列,另外就是INTER公司,高端产品是奔4系列,低端是赛扬系列.这两年开始流行的双核CPU在2个公司的高端产品中都有相应的型号 . CPU的知识比较多,具体的可以再网上查询,这里就不多说了.提醒一句,CPU是造不了假的,只有外盒,风扇等附加品存在假货. 主板: 目前的主板的主芯片都是国外制造的,芯片厂家主要有NVIDIA,ATI,INTER,AMD,VIA,SIS等等,各大主板厂家自己研发PCB板来进行主板的设计,分别来满足2个CPU厂家的CPU需要. 显卡:目前的显卡分为独立和集成显卡,生产独立的显卡芯片主要有2个厂家垄断,NVIDIA 和ATI 公司,生产集成显卡芯片有INTER,NVIDIA,ATI,SIS等等.各大显卡厂家利用显卡芯片提供的显卡GPU来进行显卡的设计和组装. 内存:目前所有内存的颗粒都是国外制造的,主要是韩国制造.国内不过是生产PCB板和封装 的过程.内存主要有3种,一种是SD内存(已淘汰),一种是DDR内存,一 种是DDR II代内存.未来还有DDR III代内存. 硬盘:常见的硬盘有三星,西数和希捷,基本上是希捷一枝独秀,容量在20GB以上的基本上都是7400转的,低于20GB的一般都是5400转的,转速越高,硬盘读些数据的速度越快.提醒一句:

硬盘的生产环境要求比较高,所有的硬盘都是国外生产. 机箱+电源:这两样东西没有什么技术含量,都是国内制造. 光驱:常见的有CD-ROM(类似VCD机),CD刻录机(兼容VCD,可以刻录VCD),DVD光驱(类似DVD 机,兼容VCD),康宝(相当于DVD光驱多了个刻录VCD光盘的功能),DVD刻录机(VCD,DVD播放和VCD,DVD刻录功能) 显示器:常见的有两种类型,CRT 和LCD ,一种是普通显示器, 一种是液晶显示器,普通显示器常见的发展过程和电视机相似,尺寸从14 15 17 19 21,屏幕从球面超平视觉纯平物理纯平.液晶显示器尺寸从14 15 17 19寸,目前流行的宽屏有17 19 20 21寸等等.LCD显示器的液晶面板都是国外制造的. 声卡:常见的有集成声卡和独立声卡,绝大多数的主板都集成的有集成声卡,可以满足普通 消费者的是使用.独立声卡一般应用于高端,这里就不多说了. 网卡:常见的有独立和集成网卡,绝大多数的主板都集成有集成网卡,可以满足普通消费者 的使用,独立网卡主要应用于特殊要求的用户.这里不多说了. 键盘+鼠标:相对没有什么技术含量,属于损耗品.跟个人喜好有关系 音箱+耳麦:相对没有什么技术含量,属于损耗品.跟个人喜好有关系. 软驱:基本上已经淘汰,这里就不讨论了. 综述:: 主板就是个平台,把CPU,内存,显卡,硬盘,光驱通过数据线或者直接安装来组成一个工作整体.CPU相当于人的大脑,发出各种指令来协调各个部分的工作,内存是个中转仓库,中转各种指令,数据等等.关机后数据不保留,硬盘是最终载体,所有的数据,程序,歌曲,电影等等都是保存在硬盘中,硬盘中的数据在关机后保留.机箱就是把这个整体固定在一个固定的环境中,通过电源来给各个部分来进行供电,通过显卡来输出显示信号,最后在显示在显示器上.键盘鼠标来进行电脑的各项操作.音箱通过主板上的集成声卡来输出各种声音.网卡是组建局域网或者上网的时候发送和接收数据.电脑的硬件说白了就是能摸的到的都是硬件,摸不到的就属于软件.电脑硬件一般情况下是不容易损坏的,只有软件方面的问题比较多,只有把软件方面的故障全部排除后最后才考虑硬件方面的问题.

最全面的魔方还原步骤(带图解及公式)

三阶魔方玩法教程 下图是本教程介绍的三阶魔方入门的玩法(层先法)复原的基本步骤示意图: 第一步:底棱归位(又称底部架十字,底层四个棱块正确复原的过程) 注:(本教程以白色为底面,为了方便交流与学习,请统一把白色作为底面)。 魔方底层架十字可以无师自通,只是我们这一步要复原的四个 棱块的相对位置顺序要注意,由于我们以白色中心块做底层,按照 我们现在的主流魔方的贴纸的帖法(上黄下白,前蓝后緑,左橙右 红),如果我们先复原了白蓝这个棱块,那我们在保持白色中心块 在底部的情况下,白红的棱块就一点要放在白蓝棱块的右边,白橙棱块放在白蓝棱块的左边,白緑棱块放在白蓝棱块的对面,由于魔方的中心块不会发生变化,所以在原的过程中,我们是以中心块为参照物的,第一步我们在复原白蓝、白红、白绿、白橙这四个棱块的时候,我们可以先把白色面旋转到顶层,和黄色中心块同一个平面,然后再把他对应的另一个颜色(蓝或红或緑或橙)经过旋转最上层,使之和对应的中心块的颜色同色,这样我们再旋转180度,对应的棱块就正确复原到底部了。 注意:图1-1的情况是没有正确归位的情况,需要调整白蓝和白红两个棱块的位置,才是正确的完成了底棱归位。 第二步:底角归位(复原魔方第一层四个角块) 魔方的四个底角正确归位以后一定会出现倒T字型,如图2所示,如果不是这样肯定是底面角块没有正确归位(位置错了,重新来过)。 底角归位也可无师自通,有兴致的朋友可以自己琢磨一些技巧和完成这一步。有难度的朋友可参考我下面介绍的一种技巧来完成,我们先看图2-1和图2-2,首先我们先确定目标块的位置是在他要正确归位的正上面的位置,然后我们再看白色的面朝向何方,就很快的能快速判断出来是下图几种情况中的哪一种了。 复原基本思想:先将目标角块调至顶层侧面,再转动能与之相连形成顺色整体的面,使目标角与底棱连成一个(1×1×2)的归位整体,再转至正确的位置。因此,下列的五个实例并没有必要死记。 图2-1 图2-2 图201 图202 图203

一步一步学Silverlight+2系列(1)

一步一步学Silverlight 2系列(1):创建一个基本的Silverlight应用 概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython,对JSON、Web Service、WCF 以及Sockets的支持等一系列新的特性。《一步一步学Silverlight 2系列》文章带您快速进入Silverli ght 2开发。 本文为系列第一篇创建一个基本的Silverlight 2应用,不能免俗,从最简单的Hello Word 开始。建立项目 安装完Silverlight 2 Beta 1之后打开VS2008,打开新建项目对话框,可以看到Silverlight A pplication项目模板。

Silverlight应用不能够独立运行,之后弹出的对话框中可供我们选择创建一个https://www.wendangku.net/doc/fc9646751.html, Web Sit e或者Web Application Project用来托管Silverlight应用程序。 这里我们选择创建一个Web Application Project,创建完成后的项目结构如下所示:

理解.xap文件 在建立一个Silverlight应用程序后,我们什么都不做,直接编译一下整个解决方案,可以看到在资源管理器中多出了一个ClientBin的文件夹,并在下面添加了一个TerryLee.SilverlightDemo2.xap的文件。

该文件是一个标准的.NET程序集,在编译的时候所有的XAML标识和资源文件如图片等都会包含在里面,采用了标准的Zip压缩算法,以减少客户端下载的文件体积。拷贝一份该文件,并且修改后缀名.x ap为.zip,并且解压缩,可以看到里面包含了一些dll文件和一个AppManifest.xaml: 再打开TerryLee.SilverlightDemo2TestPage.aspx文件,在页面的顶部引入了System. Web.Silverlight程序集,支持控件:

电脑基本操作学习完整版

电脑基本操作学习标准化管理处编码[BBX968T-XBB8968-NNJ668-MM9N]

电脑基本操作学习课程 第一节键盘 重要的按键: 1.空格(长条的按键) 2.Enter(换行键、确定键) 3.Back Space(退位键、删除键) 4.F5(刷新键) 其它按键:1.Shift加Ctrl(一起按)切换出输入法 2.在切换出输入法的基础上按shift转换出英文输入法 第二节鼠标 1.左键点一下表示:选中图标(即应用程序) 2.左键点二下表示:打开应用程序 3.右键点一下表示:(在选中的基础上)进行其它操作,如:剪切、粘贴、复制等 4.在空白部位右键点一下表示:可以创建新的文件夹、word、ppt、Excel(工作文档)、刷新当前页面 第三节计算机

打开计算机可以看到 其中硬盘是存储资料、程序的物件。电脑里的东西存储在不同磁盘里,一般C盘为系统盘,最好不要把软件和其它文件存储在C盘里。 第四节文件的剪贴、复制与粘贴 将文件移动到其它磁盘或者外接的存储设备 1.剪贴 将原来的文件直接移动 2.复制 复制一份完全相同的文件 3.粘贴 将剪贴或者复制的文件移动到其它存储设备 第五节上网 首先要装好浏览器(常用浏览器:IE、世界之窗、360浏览器) 在网址栏输入网址 网址由www.开头,由.com、.cn、.org等结尾 常用网址:(百度):搜索网站

第六节软件(或者文件)的下载、安装与卸载 有多种不同的下载方式,这里以在百度上搜索下载QQ为例 第一步下载QQ 在百度搜索栏中输入QQ 点击百度一下或者按Enter来开始搜索 接着搜寻信息,发现 点击官方下载,出现下载栏,确定下载的位置(图中的下载到,一般是桌面,如下图)确定桌面后按确定,后又回到刚才的页面,此时点击下载 正在下载中 下载完成后,发现下载的文件在我们刚才确定下载的位置(桌面) 双击下载的文件 选择立即安装 勾选同意协议,后按下一步

初学者如何学习电脑

初学者如何学习电脑 1.了解电脑的基本组成 从基本结构上来讲,电脑可以分为五大部分:运算器、存储器、控制器、输入设备、输出设备。 电脑系统分为硬件和软件两大部分,硬件相当于人的身体,而软件相当于人的灵魂。 而硬件一般分为主机和外部设备,主机是一台电脑的核心部件,通常都是放在一个机箱里。而外部设备包括输入设备(如键盘、 鼠标)和输出设备(如显示器、打印机)等。 软件一般分为系统软件和应用软件。 3.组装一台电脑需要选购哪些基本部件 (1)、机箱,一般电脑的主要零件都放在这里。 (2)、显示器,用来看电脑的工作过程,要不然,你都不知道电脑究竟在做什么。 (5)、内存,当电脑工作时,电脑会在这里存上存储数据,相当于人的记忆。 (6)、CPU,也称中央处理器,是电脑运算和控制的核心。 (7)、显卡,电脑通过这个玩意传送给显示器。 (8)、声卡,电脑通过这个玩意传送声音给音箱的哦。 (9)、硬盘,平常人们常说我的硬盘有多少G多少G,就是指这个硬盘的容量,而G数越多能装的东西便越多。 (10)、软驱,就是插软盘的玩意,现在一般都用3.5英寸的,古老年代用5.25英寸的,现在我们去买人家都不卖了。

(11)、光驱,听CD当然少不了这个,有时候你要安装某些软件 都是在光盘上的,所以这个用处太大。 (12)、电源,主要用于将220V的外接电源转换为各种直流电源,供电脑的各个部件使用 前边我们提到,我们使用的电脑大多都是微软的windows系统,那么主要产品是什么呢?根据访客对烈火网的访问,我们统计出约67%的朋友使用WindowsXP,25%的朋友使用Windows7,约5%的朋友 使用了windows2008/vista/2003,仅有1%左右的人在使用 linux(含桌面版),而苹果公司的MAC系统更是低的不到1%。由此 我们可以总结出,学习WindowsXP和WIndows7就可以了,那么两者 之间有什么差别呢,是否都要学习?回答是:Windows视窗系统,根 据您的时间和理解能力的不同,一般的,您只要了解Windows安装、驱动安装与备份、软件添加与删除等等就可以了。 第一步:安装操作系统 WindowsXP的安装: 1.WindowsXP的全新安装教程 2.通过Ghost安装XP的图文教程 3.WindowsXp升级到Windows7教程 Windows7的安装: 1.Win7安装前注意问题、安装前免费在线驱动测试、安装体验 2.从硬盘安装windows7的教程 3.光盘安装Windows7图文教程 4.windows7安装:通过U盘启动的安装方法 第二步:装驱动 如何安装驱动程序、备份和恢复驱动程序 给Windows驱动程序安装提速

魔方六步还原图解

六步恢复魔方 第一步- 完成第一层 首先要做的是区分一层和一面。所谓一层,就是在完成一面(如图2的白色面)的基础上,白色面的四条边,每条边的侧面只有一种颜色,图(2). 如图(1)中心块是蓝色,则它所在面的角和棱全都是蓝色,是图(2)的反方向。图(3)和(4)则是仅仅是一面的状态,而不是一层。 (1)(2) (3)(4) 注:图(2)和(4)分别是图(1)和(3)的底面状态 第二步- 完成第二层 接着我们就要开始还原第二层了,首先我们把魔方倒过来,也就是把做好的第一层放到底层,要完成第二层有两种情况,如下图: (1)五顺五逆y’RURUR U'R'U'R'U’(2)五逆五顺R'U'R'U'R' URURU

图解:(1)五顺五逆 y ‘ R U R U R U' R' U' R' U ’ (2)五逆五顺 R' U' R' U' R' U R U R U 第三步 – 顶层十字 完成了第二层,接下来是在顶层架“十”字,先不管角块的 颜色到底如何,只关注棱块,而且只看顶面的颜色(这里即黄色)。 公式1:FRUR ’U ’F ’ 公式2:f RUR ’U ’f ’ PS:上面两个公式互为对称,都是10步,最后 一步没有实际意义,只是加入令口诀更加容易记住而已,可以不做第10步。最后还原后颜色或位置可能不对,继续做公式,将顶面的块替换下来继续公式就能完成。

图解: 公式1:FRUR’U’F’助记口诀:左右上顺右上左逆 公式2:f RUR’U’f’助记口诀:左右上顺右上左逆 特殊状态 第四步–恢复顶面 顶层翻角颜色的公式:R’U2 R U R’U R 助记:右逆上顺顺,右顺上逆,右逆上顺(再)右顺 图解: 其实顶层拧完十字后共有7种情况 第一种: 这种情况做一次公式

相关文档