﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-xugang</title><link>http://www.cnblogs.com/xugang/</link><description>从2007年开始，记录一个DotNET程序员的成长</description><language>zh-cn</language><lastBuildDate>Thu, 28 Aug 2008 10:46:00 GMT</lastBuildDate><pubDate>Thu, 28 Aug 2008 10:46:00 GMT</pubDate><ttl>60</ttl><item><title>由栾菊杰联想到程序员的胸怀</title><link>http://www.cnblogs.com/xugang/archive/2008/08/15/1268496.html</link><dc:creator>钢钢</dc:creator><author>钢钢</author><pubDate>Fri, 15 Aug 2008 02:59:00 GMT</pubDate><guid>http://www.cnblogs.com/xugang/archive/2008/08/15/1268496.html</guid><wfw:comment>http://www.cnblogs.com/xugang/comments/1268496.html</wfw:comment><comments>http://www.cnblogs.com/xugang/archive/2008/08/15/1268496.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.cnblogs.com/xugang/comments/commentRss/1268496.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xugang/services/trackbacks/1268496.html</trackback:ping><description><![CDATA[<p><br />
2008年是不平凡的一年，它也带给了我们许多许多的感动。在中国举办的这届奥运会上，感动一直延续。而最最感动我的,是一个年过半百的运动员，她就是栾菊杰。</p>
<p>&nbsp;</p>
<p>在昨天之前，我还不知道栾菊杰是谁，知道她的事迹还是从朋友口中得知。上网看了她的事迹后，感动得让我久久不能平息。想了很多，忍不住想拙笔写些什么。</p>
<p>&nbsp;</p>
<p><strong>先听听她的事迹：</strong>&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: red">半百栾菊杰&#8220;祖国好&#8221;感动所有中国人</span></p>
<p>&nbsp;</p>
<p>或许很多人对栾菊杰这个名字有点陌生，但是从今以后，很多中国人都会记住栾菊杰这个名字。</p>
<p>&nbsp;</p>
<p>1984年，栾菊杰26岁，她拿下中国击剑第一枚、到目前为止也是唯一的奥运会金牌。</p>
<p><br />
2008年，栾菊杰50岁，她回到北京，回到祖国，参加了意义非凡的一届奥运会。</p>
<p>&nbsp;</p>
<p>首场比赛，栾菊杰的对手是突尼斯小将伊娜布贝克里，这位选手出生于1988年，比栾菊杰小了30岁，从排名看，栾菊杰排名第38位，伊娜&#183;布贝克里排名第27位，但是排名靠后的栾菊杰丝毫没有退缩和放弃，顽强的防守多次击退对手凶猛的进攻，防守反击更是屡屡建功，13比9，栾菊杰以绝对优势赢得在故乡的首场胜利。</p>
<p>&nbsp;</p>
<p>在战胜小将布贝克里后，全场观众都站起来为栾菊杰加油，栾菊杰则频频向观众致谢，<span style="color: red">随后，她从背包拿出一条红色横幅，横幅上写着醒目的&#8220;祖国好&#8221;三个字。她双手高高的举起了&#8220;祖国好&#8221;这三个字。</span>&nbsp;</p>
<p>&nbsp;</p>
<p align="center"><img height="271" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xugang/59461218485177781.jpg" width="400" border="0" /></p>
<p>&nbsp;</p>
<p>看到这一幕，在场的观众感动得掌声如潮。栾菊杰那种强烈的爱国心，那种眷恋祖国母亲的情怀，深深的打动了每一个热爱祖国的中国人！这是在击剑馆里很少看到的沸腾，很多观众含泪高呼：&#8220;栾菊杰，我爱你！&#8221;此时，栾菊杰的眼里也闪动着晶莹的泪花——她，不是为赛而赛，是为了在祖国参赛而赛。她在场上诠释着运动的精彩，在场下则将对祖国深沉的爱展现了出来。</p>
<p>&nbsp;</p>
<p>她面对中外媒体时说：&#8220;能在祖国举办的奥运会上亮相，这不是用金钱可以衡量的。参加奥运会是一个过程，成功、失败对我来说都不重要。&#8221;</p>
<p>&nbsp;</p>
<p>栾菊杰曾说：&#8220;如果在其他国家举办奥运会，我早就放弃了，我连奥运冠军也拿过。因为是在中国，全国都很重视，我觉得一定是世界上办得最好的奥运会，我这个50岁的人才有勇气去参加。&#8221; </p>
<p>&nbsp;</p>
<p>尽管她这一次代表的是加拿大队；尽管她在1/16决赛中，以7比15不敌穆罕默德&#183;艾达早早出局，但是年过半百的栾菊杰走出赛场的那一刻，让很多在场的观众激动不已。她延续了24年前勇夺奥运金牌的辉煌，她带给了中国人无比的感动。</p>
<p><br />
<img height="317" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xugang/W020080811578286933310.jpg" width="450" border="0" /><img height="317" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xugang/EEkGXEpI.jpg" width="450" border="0" /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>看到这里，让我想到自己，想到我周围的人，想到我们程序员和所有的中国人。</p>
<p>&nbsp;</p>
<p>一个人的价值，应该看他贡献什么，而不应当看他取得什么。在这个繁杂的、物欲横飞的社会，每一个人都会遇见许多不如意、不公平的事，那些尔虞我诈、人情世故等等等等。如果我们都像栾菊杰那样，有一个积极向上的生活态度，一颗感恩爱国的心来面对你所要面对的人和事，面对每一天的生活，一路走来，你会发现原来一切是那么美好。</p>
<p>&nbsp;</p>
<p>人生观是可以选择和培养的，不同的人生选择决定着不同的人生态度。我们在练习我们技能的同时，不妨也练一练我们的胸怀吧。</p>
<p>&nbsp;</p>
<p><strong><span style="color: red">让我们一起，做一个为中华强大而努力的程序员！</span></strong></p>
<p>&nbsp;</p>
<img src ="http://www.cnblogs.com/xugang/aggbug/1268496.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41940/" target="_blank">[新闻]惠普139亿美元完成对EDS的收购</a>]]></description></item><item><title>一套外企的数据库设计面试题</title><link>http://www.cnblogs.com/xugang/archive/2008/08/11/1265087.html</link><dc:creator>钢钢</dc:creator><author>钢钢</author><pubDate>Mon, 11 Aug 2008 03:58:00 GMT</pubDate><guid>http://www.cnblogs.com/xugang/archive/2008/08/11/1265087.html</guid><wfw:comment>http://www.cnblogs.com/xugang/comments/1265087.html</wfw:comment><comments>http://www.cnblogs.com/xugang/archive/2008/08/11/1265087.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cnblogs.com/xugang/comments/commentRss/1265087.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xugang/services/trackbacks/1265087.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<p>最近发现园子里面关于数据库方面的文章比较多，正好我也是一个喜欢凑热闹的家伙，那就跟着烧一把火吧。^_^</p>
<p>这是前阵子一个朋友面试外企的一套关于数据库设计的试题，有兴趣的朋友不妨一试。</p>
<p>&nbsp;</p>
<p><strong>Part I&nbsp;&nbsp;</strong> &nbsp;<br />
&nbsp;工厂在定义一个新产品的流程如下：</p>
<p>1.&nbsp; 确定产品信息如名字，代号等；<br />
2.&nbsp; 设计部门设计出产品的结构；<br />
3.&nbsp; 在确定结构后就可以得出每个产品所需要的基本零件及其所需的数据。进而可以进行相关财务处理与采购处理。<br />
&nbsp; <br />
&nbsp;其相关逻辑如下：&nbsp; </p>
<p>&nbsp;.&nbsp; 对于每一种基本零件都有其相关的型号等资料设定；&nbsp; </p>
<p>&nbsp;.&nbsp; 对于每个供应商也有其相关资料的设定；&nbsp; </p>
<p>&nbsp;.&nbsp; 一个基本零件可以由不同的供应商供应，其价格等资料会有些差异；&nbsp; </p>
<p>&nbsp;.&nbsp; 一个供应商也可以供应多种不同的基本零件；&nbsp; </p>
<p>&nbsp;.&nbsp; 对于一种产品，可以由多个大部件构成，不同的产品有可能由相同的大部件组成；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 例如，某发动机可以是汽车A的一个大部件，也可以是汽车B的一个大部件。&nbsp; </p>
<p>&nbsp;.&nbsp; 在部件结构中，某些部件是由别外一个或多个部件组成的，而所有的部件最终都是由基本零件构成的；&nbsp;<br />
</p>
<p>&nbsp;.&nbsp; 产品大部件只是存放与产品直接相关的最上层部件。 </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>
<table style="border-collapse: collapse" height="727" cellspacing="0" cellpadding="0" width="745" border="0" x:str="">
    <colgroup>
    <col style="width: 17pt" width="23">
    <col style="width: 113pt" width="151">
    <col style="width: 47pt" width="63">
    <col style="width: 128pt" width="171">
    <col style="width: 29pt" width="39">
    <col style="width: 145pt" width="193"></colgroup>
    <tr style="height: 12.75pt" height="17">
            <td class="xl24" style="width: 17pt; height: 12.75pt; background-color: transparent" width="23" height="17"><br />
            </td>
            <td class="xl25" style="width: 113pt; background-color: transparent" width="151"><font size="2"><font face="Times New Roman">Product(</font><font class="font6" face="宋体">产品</font><font class="font5" face="Times New Roman">)</font></font></td>
            <td class="xl24" style="width: 47pt; background-color: transparent" width="63"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl25" style="width: 128pt; background-color: transparent" width="171"><font size="2"><font face="Times New Roman">Supplier(</font><font class="font6" face="宋体">供应商</font><font class="font5" face="Times New Roman">)</font></font></td>
            <td class="xl24" style="width: 29pt; background-color: transparent" width="39"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl25" style="width: 145pt; background-color: transparent" width="193"><font size="2"><font face="Times New Roman">Part(</font><font class="font6" face="宋体">基本零件</font><font class="font5" face="Times New Roman">)</font></font></td>
        </tr>
        <tr style="height: 11.25pt" height="15">
            <td class="xl24" style="height: 11.25pt; background-color: transparent" height="15"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl26" style="background-color: transparent"><font face="Times New Roman" size="2"><strong>product_code</strong></font></td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"><strong></strong></font><br />
            </td>
            <td class="xl26" style="background-color: transparent"><strong><font face="Times New Roman" size="2">supplier_code</font></strong></td>
            <td class="xl24" style="background-color: transparent"><strong><font face="Times New Roman" size="2"></font></strong><br />
            </td>
            <td class="xl27" style="background-color: transparent"><font face="Times New Roman" size="2">part_code</font></td>
        </tr>
        <tr style="height: 11.25pt" height="15">
            <td class="xl24" style="height: 11.25pt; background-color: transparent" height="15"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl27" style="background-color: transparent"><font face="Times New Roman" size="2">product_name</font></td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl27" style="background-color: transparent"><font face="Times New Roman" size="2">supplier_name</font></td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl27" style="background-color: transparent"><font face="Times New Roman" size="2">part_name</font></td>
        </tr>
        <tr style="height: 11.25pt" height="15">
            <td class="xl24" style="height: 11.25pt; background-color: transparent" height="15"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl27" style="background-color: transparent"><font face="Times New Roman" size="2">product_desc</font></td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl27" style="background-color: transparent"><font face="Times New Roman" size="2">address_1</font></td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl27" style="background-color: transparent"><font face="Times New Roman" size="2">part_desc</font></td>
        </tr>
        <tr style="height: 11.25pt" height="15">
            <td class="xl24" style="height: 11.25pt; background-color: transparent" height="15"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl28" style="background-color: transparent"><font face="Times New Roman" size="2">created_date</font></td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl27" style="background-color: transparent"><font face="Times New Roman" size="2">address_2</font></td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl28" style="background-color: transparent"><font face="Times New Roman" size="2">remark</font></td>
        </tr>
        <tr style="height: 15.75pt" height="21">
            <td class="xl24" style="height: 15.75pt; background-color: transparent" height="21"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl29" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl28" style="background-color: transparent"><font face="Times New Roman" size="2">address_3</font></td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
        </tr>
        <tr style="height: 10.5pt" height="14">
            <td class="xl24" style="height: 10.5pt; background-color: transparent" height="14"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
        </tr>
        <tr style="height: 10.5pt" height="14">
            <td class="xl24" style="height: 10.5pt; background-color: transparent" height="14"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
        </tr>
        <tr style="height: 12.75pt" height="17">
            <td class="xl24" style="height: 12.75pt; background-color: transparent" height="17"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl25" style="background-color: transparent"><font size="2"><font face="Times New Roman">Product_comp(</font><font class="font6" face="宋体">产品大部件</font><font class="font5" face="Times New Roman">)</font></font></td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl25" style="background-color: transparent"><font size="2"><font face="Times New Roman">Component(</font><font class="font7" face="宋体">部件结构</font><font class="font5" face="Times New Roman">)</font></font></td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl25" style="background-color: transparent"><font size="2"><font face="Times New Roman">component_supply(</font><font class="font6" face="宋体">零件供应</font><font class="font5" face="Times New Roman">)</font></font></td>
        </tr>
        <tr style="height: 10.5pt" height="14">
            <td class="xl24" style="height: 10.5pt; background-color: transparent" height="14"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl26" style="background-color: transparent"><font face="Times New Roman" size="2"><strong>product_code</strong></font></td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"><strong></strong></font><br />
            </td>
            <td class="xl26" style="background-color: transparent"><font face="Times New Roman" size="2"><strong>comp_id</strong></font></td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"><strong></strong></font><br />
            </td>
            <td class="xl26" style="background-color: transparent"><font face="Times New Roman" size="2"><strong>supply_id</strong></font></td>
        </tr>
        <tr style="height: 11.25pt" height="15">
            <td class="xl24" style="height: 11.25pt; background-color: transparent" height="15"><font face="Times New Roman" size="2"><strong></strong></font><br />
            </td>
            <td class="xl30" style="background-color: transparent"><strong><em><font face="Times New Roman" size="2">comp_id</font></em></strong></td>
            <td class="xl24" style="background-color: transparent"><strong><em><font face="Times New Roman" size="2"></font></em></strong><br />
            </td>
            <td class="xl27" style="background-color: transparent"><font face="Times New Roman" size="2">component_code</font></td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl31" style="background-color: transparent"><em><font face="Times New Roman" size="2">part_code</font></em></td>
        </tr>
        <tr style="height: 11.25pt" height="15">
            <td class="xl24" style="height: 11.25pt; background-color: transparent" height="15"><em><font face="Times New Roman" size="2"></font></em><br />
            </td>
            <td class="xl27" style="background-color: transparent"><font face="Times New Roman" size="2">number_component</font></td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl27" style="background-color: transparent"><font face="Times New Roman" size="2">component_name</font></td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl31" style="background-color: transparent"><em><font face="Times New Roman" size="2">supplier_code</font></em></td>
        </tr>
        <tr style="height: 11.25pt" height="15">
            <td class="xl24" style="height: 11.25pt; background-color: transparent" height="15"><em><font face="Times New Roman" size="2"></font></em><br />
            </td>
            <td class="xl28" style="background-color: transparent"><font face="Times New Roman" size="2">　</font></td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl32" style="background-color: transparent"><font face="宋体" size="2">parent_comp_id</font></td>
            <td class="xl24" style="background-color: transparent"><font face="宋体" size="2"></font><br />
            </td>
            <td class="xl27" style="background-color: transparent"><font face="Times New Roman" size="2">price</font></td>
        </tr>
        <tr style="height: 12.75pt" height="17">
            <td class="xl24" style="height: 12.75pt; background-color: transparent" height="17"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl33" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl27" style="background-color: transparent"><font face="Times New Roman" size="2">supply_id</font></td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl27" style="background-color: transparent"><font face="Times New Roman" size="2">ind_active</font></td>
        </tr>
        <tr style="height: 12.75pt" height="17">
            <td class="xl24" style="height: 12.75pt; background-color: transparent" height="17"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl33" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl28" style="background-color: transparent"><font face="Times New Roman" size="2">number_component</font></td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl28" style="background-color: transparent"><font face="Times New Roman" size="2">　</font></td>
        </tr>
        <tr style="height: 13.5pt" height="18">
            <td class="xl24" style="height: 13.5pt; background-color: transparent" height="18"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl34" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
        </tr>
        <tr style="height: 13.5pt" height="18">
            <td class="xl24" style="height: 13.5pt; background-color: transparent" height="18"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl34" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
        </tr>
        <tr style="height: 12.75pt" height="17">
            <td class="xl24" style="height: 12.75pt; background-color: transparent" height="17"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl35" style="background-color: transparent" colspan="2"><font size="2"><font face="Times New Roman">Prod_part_supp_detail(</font><font class="font6" face="宋体">产品零件明细</font><font class="font5" face="Times New Roman">)</font></font></td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
        </tr>
        <tr style="height: 10.5pt" height="14">
            <td class="xl24" style="height: 10.5pt; background-color: transparent" height="14"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl37" style="background-color: transparent" colspan="2"><font face="Times New Roman" size="2"><strong>product_code</strong></font></td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"><strong></strong></font><br />
            </td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"><strong></strong></font><br />
            </td>
        </tr>
        <tr style="height: 10.5pt" height="14">
            <td class="xl24" style="height: 10.5pt; background-color: transparent" height="14"><font face="Times New Roman" size="2"><strong></strong></font><br />
            </td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"><strong></strong></font><br />
            </td>
            <td class="xl37" style="background-color: transparent"><strong><font face="Times New Roman" size="2">supply_id</font></strong></td>
            <td class="xl38" style="background-color: transparent"><font face="宋体" size="2">　</font></td>
            <td class="xl24" style="background-color: transparent"><font face="宋体" size="2"></font><br />
            </td>
            <td class="xl24" style="background-color: transparent"><font face="宋体" size="2"></font><br />
            </td>
        </tr>
        <tr style="height: 11.25pt" height="15">
            <td class="xl24" style="height: 11.25pt; background-color: transparent" height="15"><font face="宋体" size="2"></font><br />
            </td>
            <td class="xl24" style="background-color: transparent"><font face="宋体" size="2"></font><br />
            </td>
            <td class="xl39" style="background-color: transparent" colspan="2"><font face="Times New Roman" size="2">number_component</font></td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
        </tr>
        <tr style="height: 12.75pt" height="17">
            <td class="xl24" style="height: 12.75pt; background-color: transparent" height="17"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl24" style="background-color: transparent"><font face="Times New Roman" size="2"></font><br />
            </td>
            <td class="xl40" style="background-color: transparent"><font face="Times New Roman" size="2">　</font></td>
            <td class="xl41" style="background-color: transparent"><font face="宋体" size="2">　</font></td>
            <td class="xl24" style="background-color: transparent"><br />
            </td>
            <td class="xl24" style="background-color: transparent"><br />
            </td>
        </tr>
    </table>
</p>
<p>&nbsp;</p>
<p>Below is a structure example of product 'P_1'<font class="font9"> ：</font></p>
<p>&nbsp;&nbsp; <img alt="" src="http://www.cnblogs.com/images/cnblogs_com/xugang/part_1.JPG" border="0" /></p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp; 1. 根据理解画出E-R(或UML)联系图； <br />
&nbsp;&nbsp; 2. 写脚本来建立所需要的数据库对象，如表、序列、约束等；&nbsp; <br />
&nbsp;&nbsp; 3. 为上图所示的产品P_1准备初始化数据（prod_part_supp_detail 除外）；&nbsp; <br />
&nbsp;&nbsp; 4. 编写procedure 或function生成指定产品的产品零件明细清单；<br />
&nbsp;&nbsp; 5. Write a SQL to show the supplier and component detail of product. For amount field, use below logic :</p>
<p>&nbsp;</p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">If</span><span style="color: #000000">&nbsp;the&nbsp;&#8220;Amount&#8221;&nbsp;</span><span style="color: #808080">&lt;</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">1000</span><span style="color: #000000">&nbsp;show&nbsp;&#8220;Low&#8221;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;&#8220;Amount&#8221;&nbsp;</span><span style="color: #808080">&gt;=</span><span style="font-weight: bold; color: #800000">1000</span><span style="color: #808080">&lt;</span><span style="font-weight: bold; color: #800000">10000</span><span style="color: #000000">&nbsp;show&nbsp;&#8220;Middle&#8221;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;show&nbsp;&#8220;High&#8221;<br />
</span></div>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; The layout is :</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; Supplier Name&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; Part Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Necessary Num&nbsp;&nbsp; &nbsp; Amount&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type<br />
&nbsp;&nbsp;&nbsp;&nbsp; ------------------ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; ------------------&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; --------------&nbsp;&nbsp; 　　&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; ---------------- 　&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; ----------<br />
&nbsp;&nbsp;&nbsp;&nbsp; XXXXXXXXXXXXXXXXXX&nbsp;&nbsp; XXXXXXXXXXXXXXXXXX&nbsp;&nbsp;&nbsp; 9999999999&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 999999999.99&nbsp;&nbsp; &nbsp;&nbsp; XXXXXXXXXX&nbsp; <br />
</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; &nbsp;如果需要用到递归，以下是一个简单示例:</p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff">create</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">or</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">replace</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;get_char_one_by_one(v_str&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">varchar2</span><span style="color: #000000">)<br />
</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">varchar2</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">is</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">begin</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;v_str&nbsp;</span><span style="color: #0000ff">is</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">not</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">and</span><span style="color: #000000">&nbsp;length(v_str)&nbsp;</span><span style="color: #808080">&gt;</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #0000ff">then</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;substr(v_str,&nbsp;</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">,&nbsp;</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">)&nbsp;</span><span style="color: #808080">||</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">||</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get_char_one_by_one(substr(v_str,&nbsp;</span><span style="font-weight: bold; color: #800000">2</span><span style="color: #000000">));<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;v_str;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">end</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">;<br />
</span><span style="color: #0000ff">end</span><span style="color: #000000">;<br />
</span><span style="color: #808080">/</span><span style="color: #000000"><br />
<br />
</span><span style="color: #0000ff">set</span><span style="color: #000000">&nbsp;serveroutput&nbsp;</span><span style="color: #0000ff">on</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">begin</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;dbms_output.put_line(get_char_one_by_one(</span><span style="color: #ff0000">'</span><span style="color: #ff0000">I&nbsp;am&nbsp;good&nbsp;boy</span><span style="color: #ff0000">'</span><span style="color: #000000">));<br />
</span><span style="color: #0000ff">end</span><span style="color: #000000">;<br />
</span><span style="color: #808080">/</span><span style="color: #000000">&nbsp;</span></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span style="color: red">在以下两题中作选一题</span>&nbsp; <br />
<strong>&nbsp;Part II&nbsp;</strong>&nbsp;&nbsp;&nbsp; <br />
&nbsp;There are some tables need copy from one oracle user User1&nbsp; to another user User2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;1. The DB structure of source user is compatiable to the target db user (All field in source db user are exists in target db user, but maybe some fields in target db user not in source db user);&nbsp;</p>
<p><span style="color: #339966">&nbsp;2. No DB Link or privilege granted between those two users;&nbsp;&nbsp;</span>&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;3. No primary key or unique key conflict between those two users' data;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;4. The records number is not very much (at most 10000 for one table). &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp; <br />
<strong>&nbsp;Part III&nbsp;</strong> <br />
&nbsp;There are some tables need copy from one oracle user User1&nbsp; to another user User2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;1. The DB structure of source user is compatiable to the target db user (All field in source db user are exists in target db user, but maybe some fields in target db user not in source db user); <br />
<span style="color: #339966">&nbsp;2. Can create DB Link or grant priv between those two users;&nbsp;&nbsp;</span>&nbsp;&nbsp;&nbsp; <br />
&nbsp;3. No primary key or unique key conflict between those two users' data;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;4. The records number is not very much (at most 10000 for one table). &nbsp;&nbsp;&nbsp;</p>
<p>&nbsp; </p>
<img src ="http://www.cnblogs.com/xugang/aggbug/1265087.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41939/" target="_blank">[新闻]搜狗五笔输入法发布</a>]]></description></item><item><title>浅谈SQL SERVER 2005 之引用完整性</title><link>http://www.cnblogs.com/xugang/archive/2008/08/08/1263678.html</link><dc:creator>钢钢</dc:creator><author>钢钢</author><pubDate>Fri, 08 Aug 2008 05:19:00 GMT</pubDate><guid>http://www.cnblogs.com/xugang/archive/2008/08/08/1263678.html</guid><wfw:comment>http://www.cnblogs.com/xugang/comments/1263678.html</wfw:comment><comments>http://www.cnblogs.com/xugang/archive/2008/08/08/1263678.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.cnblogs.com/xugang/comments/commentRss/1263678.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xugang/services/trackbacks/1263678.html</trackback:ping><description><![CDATA[<p><br />
很久没有写点什么了，乘着空闲，把我最近在使用SQL SERVER 2005中的这一点有意思的新发现写出来分享一下。</p>
<p>&nbsp;</p>
<p>为什么想介绍SQL SERVER 2005 的引用完整性：</p>
<p>一是因为在SQL SERVER 2005中，添加了SQL SERVER 2000中没有的一些新功能，而这又很少被人们注意到；</p>
<p>二是对于SQL SERVER数据库的初学者来说，引用完整性往往是他们难以理解和掌握的。</p>
<p>&nbsp;</p>
<p>在SQL Server联机丛书中，将<span style="color: red">数据完整性</span>解释如下：&#8220;<span style="color: red">存储在数据库中的所有数据值均正确的状态。如果数据库中存储有不正确的数据值，则该数据库称为已丧失数据完整性。</span>&#8221;强制数据完整性可确保数据库中的数据质量。</p>
<p>&nbsp;</p>
<p><strong>数据完整性分类</strong></p>
<p>在SQL Server中，根据数据完整新措施所作用的数据库对象和范围不同，可以将数据完整性分为以下几种：</p>
<ul>
    <li>实体完整性&nbsp; </li>
    <li>域完整性&nbsp; </li>
    <li>引用完整性&nbsp; </li>
    <li>用户定义完整性 </li>
</ul>
<p><strong>引用完整性</strong></p>
<p>引用完整性又称<span style="color: red">参照完整性</span>。引用完整性用来保证主表和从表之间的数据一致性，它通过主键（PRIMARY KEY）约束和外键（FOREIGN KEY）约束来实现。</p>
<p>&nbsp;</p>
<p><strong>强制引用完整性时，SQL Server 将防止用户执行下列操作：</strong> <br />
在主表中没有关联的记录时，将记录添加或更改到相关表中。<br />
更改主表中的值，这会导致相关表中生成孤立记录。<br />
从主表中删除记录，但仍存在与该记录匹配的相关记录。</p>
<p><br />
也就是说，如果数据库的表之间为了确保数据的一致性，建立了引用完整性之后，则要求：<br />
1、&nbsp;在主表中，当其主键值被其从表所参照时，该行不能被删除也不允许改变；<br />
2、&nbsp;在从表中，不允许参照主表中不存在的主键值。<br />
3、&nbsp;如果主表的键值更改了，那么在整个数据库中，对该键值的所有引用的从表要进行一致的更改；</p>
<p>&nbsp;</p>
<p><strong>简单的示例：</strong><br />
建立一个student数据库，建立了学生表（Students）和成绩表（Score），Students表的学号字段SCode与Score表的StudentID字段建立了引用完整性约束（主外键关系）：</p>
<p>&nbsp;</p>
<p><img height="215" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xugang/key_001.JPG" width="508" border="0" /></p>
<p>&nbsp;</p>
<p><span style="color: red">注意：</span>在SQL SERVER 2005中，建立主外键关系应该在从表中建立。为什么？因为在选择从表时，在SQL SERVER 2005默认会选择你所在的表，并且不能更改。(不包含在&#8220;数据库关系图&#8221;中建立)</p>
<p>&nbsp;</p>
<p>如果在学生表（Students）中的某个学生，在成绩表（Score）中有相关的考试成绩，那么在学生表（Students）中删除该学生，将会报错：</p>
<p><br />
<img height="190" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xugang/key_002.JPG" width="775" border="0" /></p>
<p><span style="color: red">消息 547，级别 16，状态 0，第 1 行<br />
DELETE 语句与 REFERENCE 约束"FK_Score_Score"冲突。该冲突发生于数据库"student"，表"dbo.Score", column 'StudentID'。<br />
</span>语句已终止。</p>
<p><br />
<strong>是不是说我们在删除或者更改主表中的某条记录的时候，就一定要在整个数据库中，对该键值的所有引用的从表的记录进行相应一致的删除或更改呢？请接着往下看：</strong></p>
<p>&nbsp;</p>
<p><strong>SQL SERVER 2005之引用完整性的<span style="color: red">新特性</span>登场：</strong></p>
<p>&nbsp;</p>
<p>选择从表--&gt; 右键&#8220;修改&#8221;--&gt; 右键&#8220;关系&#8221;--&gt; 选择一个关系名，就可以看到如下图所示：</p>
<p><br />
<span style="color: red"><img height="374" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xugang/key_003.JPG" width="562" border="0" /></span></p>
<p>&nbsp;</p>
<p><span style="color: red"><span style="color: #ff0000"><span style="color: #ff0000"><strong></strong></span></span></span>&nbsp;</p>
<p><span style="color: red"><span style="color: #ff0000"><span style="color: #ff0000"><strong><span style="color: #000000"><span style="color: #000000">INSERT 和 UPDATE 规范</span></span></strong></span></span></span></p>
<p>&nbsp;</p>
<p><img height="374" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xugang/key_004.JPG" width="561" border="0" /></p>
<p>&nbsp;</p>
<p><span style="color: #ff0000">删除规则和更新规则：<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 指定当数据库的最终用户尝试删除或更新某一行，而该行包含外键关系所涉及的数据时所发生的情况。</p>
<p>&nbsp;</p>
<p><strong><font face="Verdana">相关</font>设置说明：</strong></p>
<p><strong></strong>&nbsp;</p>
<p><strong>无操作：</strong>当在删除或更新主键表的数据时，将显示一条错误信息，告知用户不允许执行该删除或更新操作，删除或更新操作将会被回滚。</p>
<p>&nbsp;</p>
<p><strong>层叠：</strong>删除或更新包含外键关系中所涉及的数据的所有行。<br />
<span style="color: #ff0000">说明：&#8220;层叠&#8221;在SQL Server 2000中又叫&#8220;级联&#8221;。</span></p>
<p>&nbsp;</p>
<p><strong>设置空：</strong><span style="color: #0000ff">这是SQL Server 2005新增的功能。</span>如果表的所有外键列都可以接受空值，则将该值设置为空。<br />
<span style="color: #ff0000">说明：要将外键的删除规则和更新规则设为&#8220;设置空&#8221;，则该外键必须是可以为空的字段。</span></p>
<p>&nbsp;</p>
<p><strong>设置默认值：</strong><span style="color: #0000ff">这是SQL Server 2005新增的功能。</span>如果表的所有外键列都已定义了默认值，则将该值设置为该列定义的默认值。<br />
<span style="color: #ff0000"><span style="color: #ff0000">说明：要将外键的删除规则和更新规则设置为&#8220;设置默认值&#8221;，该外键必须是有默认值的字段。</span></span></p>
<p>&nbsp;</p>
<p><em><strong>附加说明：</strong></em><br />
特地查看了一下SQL Server 2000，在它的&#8220;关系&#8221;中也包括了如下功能：</p>
<p>&nbsp;</p>
<p><img height="69" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xugang/key_005.JPG" width="244" border="0" /></p>
<p>&nbsp;</p>
<p>至于SQL Server 2005中的这些功能，在SQL Server 2000中用触发器应该可以实现，没有研究就不多言了。<br />
在SQL Server 2000中的级联运行：</p>
<p>------------------------------------------- 引 用 ---------------------------------------------------------<br />
<em>级联运行（Cascaded operation） </em></p>
<p><em>触发器是自动的：它们在对表的数据作了任何修改（比如手工输入或者应用程序采取的操作）之后立即被激活。</em></p>
<p><em>触发器可以侦测数据库内的操作，并自动地级联影响整个数据库的各项内容。例如，某个表上的触发器中包含有对另外一个表的数据操作（如删除，更新，插入）而该操作又导致该表上触发器被触发。 </em></p>
<p><em>例如，通过触发器对数据库中的相关表进行层叠更改：<br />
在 titles 表的 title_id 列上写入一个删除触发器，以使其它表中的各匹配行采取删除操作。该触发器用 title_id 列作为唯一键，在 titleauthor、sales 及 roysched 表中对各匹配行进行定位。</em></p>
<p>--------------------------------------------------------------------------------------------------------------<br />
<br />
<strong>文章推荐：</strong></p>
<p><a title="一个索引查找的ASP.NET示例探讨" href="http://www.cnblogs.com/xugang/archive/2008/01/18/1044352.html">一个索引查找的ASP.NET示例探讨</a></p>
<p><a title="研究了一下SqlExpress中的外键约束" href="http://www.cnblogs.com/telephoner/archive/2007/06/02/769056.html">研究了一下SqlExpress中的外键约束</a></p>
<p><a title="SQL Server中约束的介绍" href="http://blog.csdn.net/hyde82/archive/2005/12/08/547273.aspx">SQL Server中约束的介绍</a></p>
<p><a title="定义SQL Server层叠引用完整性约束" href="http://www.builder.com.cn/2007/0827/472645.shtml">定义SQL Server层叠引用完整性约束</a></p>
<p>&nbsp;</p>
<img src ="http://www.cnblogs.com/xugang/aggbug/1263678.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41938/" target="_blank">[新闻]新学年开始 大学生适用的十大互联网应用</a>]]></description></item><item><title>十进制、二进制、八进制、十六进制之间的转换[基础]</title><link>http://www.cnblogs.com/xugang/archive/2008/08/02/1258610.html</link><dc:creator>钢钢</dc:creator><author>钢钢</author><pubDate>Sat, 02 Aug 2008 01:58:00 GMT</pubDate><guid>http://www.cnblogs.com/xugang/archive/2008/08/02/1258610.html</guid><wfw:comment>http://www.cnblogs.com/xugang/comments/1258610.html</wfw:comment><comments>http://www.cnblogs.com/xugang/archive/2008/08/02/1258610.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/xugang/comments/commentRss/1258610.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xugang/services/trackbacks/1258610.html</trackback:ping><description><![CDATA[<p><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;</span></span></p>
<p><span style="font-family: 宋体"><span style="font-size: 14pt">今天翻了一本计算机基础的书籍，其中十进制、二进制、八进制、十六进制之间的转换挺有意思的，也容易犯糊涂，特温故而知新。</span></span></p>
<p><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;</span></span></p>
<p><span style="font-family: 宋体"><span style="font-size: 14pt; color: red"><span style="color: #3366ff"><span style="color: #3366ff"><span style="color: #3366ff"><span style="color: #3366ff"><span style="color: #0000ff"></span></span></span></span></span></span></span><span style="font-family: 宋体"><span style="font-size: 14pt"><span style="font-family: 宋体"><font color="#3333cc"><span style="font-size: 13.5pt; color: #3333cc; font-family: 黑体"><span style="font-family: 宋体"><span style="font-size: 14pt"><strong>十进制数制系统</strong></span></span></span></font></span></span></span></p>
<p><span style="font-family: 宋体"><span style="font-size: 14pt"><span style="font-family: 宋体"><font color="#3333cc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>十进制数制系统包括</span> 10 <span style="font-family: 宋体">个数字：</span>0<span style="font-family: 宋体">、</span>1<span style="font-family: 宋体">、</span>2<span style="font-family: 宋体">、</span>3<span style="font-family: 宋体">、</span>4<span style="font-family: 宋体">、</span>5<span style="font-family: 宋体">、</span>6<span style="font-family: 宋体">、</span>7<span style="font-family: 宋体">、</span>8<span style="font-family: 宋体">、</span>9 </span></span></p>
<p><span style="font-family: 宋体"><span style="font-family: 宋体"><font color="#3333cc"></font></span><span style="font-family: 宋体"><span style="font-size: 14pt"><span style="font-family: 宋体"><font color="#3333cc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span>基为：</span></span></span><span style="font-family: 宋体"><span style="font-size: 14pt">10<span style="font-family: 宋体"><font color="#3333cc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><span style="font-family: 宋体">逢十进一，如</span>3+7=10<span style="font-family: 宋体">，</span>20+80=100</span></span></p>
<p style="margin: 0cm 0cm 0pt 36pt"><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;</span></span></p>
<p style="margin: 0cm 0cm 0pt 36pt"><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;</span></span></p>
<p><strong><span style="font-size: 13.5pt; color: #3333cc; font-family: 黑体"><span style="font-family: 宋体"><span style="font-size: 14pt; color: #0000ff"><span style="font-size: 13.5pt; color: #3333cc; font-family: 黑体"><span style="font-family: 宋体"><span style="font-size: 14pt"><strong>二进制数制系统</strong></span></span></span></span></span></span></strong></p>
<p><span style="font-family: 宋体"><span style="font-size: 14pt"><strong></strong><span style="font-family: 宋体"><span style="font-family: 宋体"><font color="#3333cc"></font></span></span></span></span></p>
<p><span style="font-family: 宋体"><span style="font-family: 宋体"><font color="#3333cc"></font></span><span style="font-family: 宋体"><font color="#3333cc"></font></span><span style="font-family: 宋体"><span style="font-size: 14pt"><span style="font-family: 宋体"><font color="#3333cc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span>计算机中使用二进制表示数据</span></span></span></p>
<p><span style="font-family: 宋体"><span style="font-family: 宋体"><font color="#3333cc"></font></span><span style="font-family: 宋体"><span style="font-size: 14pt"><span style="font-family: 宋体"><font color="#3333cc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span>二进制包括两个符号：</span></span></span><span style="font-family: 宋体"><span style="font-size: 14pt">0<span style="font-family: 宋体">和</span>1</span></span></p>
<p><span style="font-family: 宋体"><span style="font-family: 宋体"><font color="#3333cc"></font></span><span style="font-family: 宋体"><span style="font-size: 14pt"><span style="font-family: 宋体"><font color="#3333cc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span>二进制逢二进一：（</span></span></span><span style="font-family: 宋体"><span style="font-size: 14pt">1+1<span style="font-family: 宋体">）</span>2=<span style="font-family: 宋体">（</span>10<span style="font-family: 宋体">）</span>2</span></span></p>
<p><span style="font-family: 宋体"><span style="font-family: 宋体"><font color="#3333cc"></font></span><span style="font-family: 宋体"><span style="font-size: 14pt"><span style="font-family: 宋体"><font color="#3333cc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span>二进制的基为</span></span></span><span style="font-family: 宋体"><span style="font-size: 14pt">2</span></span></p>
<p><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;</span></span></p>
<p><span style="font-family: 宋体"><span style="font-size: 14pt"><span style="font-family: 宋体"><span style="font-family: 宋体"><font color="#3333cc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span>示例：</span>1000101100101101</span></span></p>
<p><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;</span></span></p>
<p><strong><span style="font-size: 13.5pt; color: #3333cc; font-family: 黑体"><span style="font-family: 宋体"><span style="font-size: 14pt">八进制数制系统</span></span></span></strong></p>
<p style="background: white" align="left"><span style="font-family: 宋体"><span style="font-family: 宋体"><font color="#3333cc"></font></span><span style="font-family: 宋体"><span style="font-size: 14pt"><span style="font-family: 宋体"><font color="#3333cc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span>用于缩短二进制的数字长度</span></span></span><span style="font-family: 宋体"><span style="font-size: 14pt"> </span></span></p>
<p style="background: white" align="left"><span style="font-family: 宋体"><span style="font-family: 宋体"><font color="#3333cc"></font></span><span style="font-family: 宋体"><span style="font-size: 14pt"><span style="font-family: 宋体"><font color="#3333cc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span>八进制基是</span></span></span><span style="font-family: 宋体"><span style="font-size: 14pt">8<span style="font-family: 宋体">，使用的符号为：</span>0<span style="font-family: 宋体">、</span>1<span style="font-family: 宋体">、</span>2<span style="font-family: 宋体">、</span>3<span style="font-family: 宋体">、</span>4<span style="font-family: 宋体">、</span>5<span style="font-family: 宋体">、</span>6<span style="font-family: 宋体">、</span>7 </span></span></p>
<p style="background: white" align="left"><span style="font-family: 宋体"><span style="font-family: 宋体"><font color="#3333cc"></font></span><span style="font-family: 宋体"><span style="font-size: 14pt"><span style="font-family: 宋体"><font color="#3333cc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span>逢八进一，即</span></span></span><span style="font-family: 宋体"><span style="font-size: 14pt">(7+1)8=(10)8 </span></span></p>
<p style="background: white" align="left"><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;</span></span></p>
<p><strong><span style="font-size: 13.5pt; color: #3333cc; font-family: 黑体"><span style="font-family: 宋体"><span style="font-size: 14pt">十六进制数制系统</span></span></span></strong></p>
<p style="background: white" align="left"><span style="font-family: 宋体"><span style="font-family: 宋体"><font color="#3333cc"></font></span><span style="font-family: 宋体"><span style="font-size: 14pt"><span style="font-family: 宋体"><font color="#3333cc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span>十六进制数制系统的基是</span></span></span><span style="font-family: 宋体"><span style="font-size: 14pt"> 16</span></span></p>
<p style="background: white" align="left"><span style="font-family: 宋体"><span style="font-family: 宋体"><font color="#3333cc"></font></span><span style="font-family: 宋体"><span style="font-size: 14pt"><span style="font-family: 宋体"><font color="#3333cc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><span style="font-family: 宋体"><font color="#3333cc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span>十进制：</span></span></span><span style="font-family: 宋体"><span style="font-size: 14pt">0<span style="font-family: 宋体">、</span>1<span style="font-family: 宋体">、</span>2<span style="font-family: 宋体">、</span>3<span style="font-family: 宋体">、</span>4<span style="font-family: 宋体">、</span>5<span style="font-family: 宋体">、</span>6<span style="font-family: 宋体">、</span>7<span style="font-family: 宋体">、</span>8<span style="font-family: 宋体">、</span>9<span style="font-family: 宋体">、</span>10<span style="font-family: 宋体">、</span>11<span style="font-family: 宋体">、</span>12<span style="font-family: 宋体">、</span>13<span style="font-family: 宋体">、</span>14<span style="font-family: 宋体">、</span>15</span></span></p>
<p style="background: white"><span style="font-family: 宋体"><span style="font-family: 宋体"><font color="#3333cc"></font></span><span style="font-family: 宋体"><span style="font-size: 14pt"><span style="font-family: 宋体"><font color="#3333cc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><span style="font-family: 宋体"><font color="#3333cc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span>十六进制：</span></span></span><span style="font-family: 宋体"><span style="font-size: 14pt">0<span style="font-family: 宋体">、</span>1<span style="font-family: 宋体">、</span>2<span style="font-family: 宋体">、</span>3<span style="font-family: 宋体">、</span>4<span style="font-family: 宋体">、</span>5<span style="font-family: 宋体">、</span>6<span style="font-family: 宋体">、</span>7<span style="font-family: 宋体">、</span>8<span style="font-family: 宋体">、</span>9<span style="font-family: 宋体">、</span>A<span style="font-family: 宋体">、</span> B<span style="font-family: 宋体">、</span> C<span style="font-family: 宋体">、</span>D<span style="font-family: 宋体">、</span> E<span style="font-family: 宋体">、</span> F</span></span></p>
<p style="background: white" align="left"><span style="font-family: 宋体"><span style="font-family: 宋体"><font color="#3333cc"></font></span><span style="font-family: 宋体"><span style="font-size: 14pt"><span style="font-family: 宋体"><font color="#3333cc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span>逢十六进一，如</span></span></span><span style="font-family: 宋体"><span style="font-size: 14pt"> (8+8)16=(10)16 </span></span></p>
<p><span style="font-family: 宋体"><span style="font-family: 宋体"><font color="#3333cc"></font></span><span style="font-family: 宋体"><span style="font-size: 14pt"><span style="font-family: 宋体"><font color="#3333cc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span>示例：</span></span></span><span style="font-family: 宋体"><span style="font-size: 14pt">12B<span style="font-family: 宋体">、</span>00FFFF</span></span></p>
<p style="background: white" align="left"><span style="font-family: 宋体"><span style="font-family: 宋体"><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span></span></p>
<p style="background: white" align="left"><span style="font-family: 宋体"><span style="font-family: 宋体"><font color="#3333cc"></font></span><span style="font-family: 宋体"><span style="font-size: 14pt"><span style="font-family: 宋体"><font color="#3333cc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span>计算机中以数量表示色彩</span></span></span><span style="font-family: 宋体"><span style="font-size: 14pt"> </span></span></p>
<p style="background: white"><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;</span></span></p>
<p><strong><span style="font-size: 13.5pt; color: #3333cc; font-family: 黑体"><span style="font-family: 宋体"><span style="font-size: 14pt">各数制的权</span></span></span></strong></p>
<p><strong><span style="font-family: 宋体"><span style="font-family: 宋体"><font color="#3333cc"></font></span><span style="font-family: 宋体"><span style="font-size: 14pt"><span style="font-family: 宋体"><font color="#3333cc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span>各种数制中不同位的权为&#8220;基的</span></span></span><span style="font-family: 宋体"><span style="font-size: 14pt">n-1</span></span></strong><span style="font-family: 宋体"><span style="font-size: 14pt"><strong><span style="font-family: 宋体">次方</span>(n</strong><strong><span style="font-family: 宋体">为所在的位数</span>)</strong><strong><span style="font-family: 宋体">&#8221;。</span></strong></span></span></p>
<p><strong></strong><span style="font-family: 宋体"><span style="font-family: 宋体"><font color="#3333cc"></font></span><span style="font-family: 宋体"><span style="font-size: 14pt"><span style="font-family: 宋体"><font color="#3333cc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; </font></span>如</span></span></span><span style="font-family: 宋体"><span style="font-size: 14pt">:</span></span></p>
<p><span style="font-family: 宋体"><span style="font-size: 14pt"><span style="font-family: 宋体"><span style="font-family: 宋体"><font color="#3333cc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><span style="font-family: 宋体"><font color="#3333cc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span>十进制中，各位的权为</span>10n-1 </span></span></p>
<p><span style="font-family: 宋体"><span style="font-size: 14pt"><span style="font-family: 宋体"><span style="font-family: 宋体"><font color="#3333cc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><span style="font-family: 宋体"><font color="#3333cc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span>二进制中，各位的权为</span>2n-1 </span></span></p>
<p><span style="font-family: 宋体"><span style="font-size: 14pt"><span style="font-family: 宋体"><span style="font-family: 宋体"><font color="#3333cc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><span style="font-family: 宋体"><font color="#3333cc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span>八进制中，各位的权为</span>8n-1</span></span></p>
<p><span style="font-family: 宋体"><span style="font-size: 14pt"><span style="font-family: 宋体"><span style="font-family: 宋体"><font color="#3333cc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span><span style="font-family: 宋体"><font color="#3333cc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span>十六进制中，各位的权为</span>16n-1</span></span></p>
<p><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;</span></span></p>
<p><strong><span style="font-size: 13.5pt; color: #3333cc; font-family: 黑体"><span style="font-family: 宋体"><span style="font-size: 14pt">数制转换</span></span></span></strong></p>
<p style="background: white" align="left"><span style="font-size: 13.5pt; color: black; font-family: 宋体"><span style="font-family: 宋体"><span style="font-size: 14pt"><span style="font-family: 宋体"><font color="#3333cc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span>其他进制向十进制转换 </span></span></span></p>
<p style="background: white" align="left"><span style="font-size: 13.5pt; color: black; font-family: 宋体"><span style="font-family: 宋体"><span style="font-size: 14pt"><span style="font-family: 宋体"><font color="#3333cc">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span>十进制向其他进制转换</span></span></span></p>
<p style="background: white" align="left"><span style="font-size: 13.5pt; color: black; font-family: 宋体"><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 二进制、八进制、十六进制之间进行转化</span></span></span></p>
<p style="background: white" align="left"><span style="font-size: 13.5pt; color: black; font-family: 宋体"><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp;</span></span></span><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;</span></span></p>
<p style="background: white" align="left"><span style="font-family: 宋体"><span style="font-size: 14pt"><img height="34" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xugang/num003.JPG" width="544" border="0" />&nbsp;</span></span></p>
<p style="background: white" align="left"><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;</span></span></p>
<p style="background: white" align="left"><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;</span></span></p>
<p><strong><span style="font-size: 13.5pt; color: #3333cc; font-family: 黑体"><span style="font-family: 宋体"><span style="font-size: 14pt">非十进制转成十进制</span></span></span></strong></p>
<p><span style="font-size: 13.5pt; color: black; font-family: 楷体_GB2312"><span style="font-size: 14pt"><span style="font-family: 宋体"><span style="font-size: 14pt; font-family: 宋体"><span style="color: black; font-family: 楷体_GB2312">方法：</span><span style="color: black; font-family: 楷体_GB2312">将相应进制的数按权展成多项式，按十进制求和。</span></span></span></span></span></p>
<p style="background: white"></p>
<p style="background: white" align="left">&nbsp;</p>
<p style="background: white" align="left"><span style="font-family: 宋体"><span style="font-size: 14pt"><span style="font-size: 13.5pt; color: black; font-family: Arial">(F8C.B)</span><span style="font-size: 9pt; color: black; font-family: Arial; position: relative; top: 2.5pt">16</span><span style="font-size: 13.5pt; color: black; font-family: Arial">&nbsp;</span></span></span></p>
<p style="background: white" align="left"><span style="font-family: 宋体"><span style="font-size: 14pt"><span style="font-size: 13.5pt; color: black; font-family: Arial">= F</span><span style="font-size: 13.5pt; color: black; font-family: 隶书">&#215;</span><span style="font-size: 13.5pt; color: black; font-family: Arial">16</span><span style="font-size: 9pt; color: black; font-family: Arial; position: relative; top: -2.5pt">2</span><span style="font-size: 13.5pt; color: black; font-family: Arial">+8</span><span style="font-size: 13.5pt; color: black; font-family: 隶书">&#215;</span><span style="font-size: 13.5pt; color: black; font-family: Arial">16</span><span style="font-size: 9pt; color: black; font-family: Arial; position: relative; top: -2.5pt">1</span><span style="font-size: 13.5pt; color: black; font-family: Arial">+C</span><span style="font-size: 13.5pt; color: black; font-family: 隶书">&#215;</span><span style="font-size: 13.5pt; color: black; font-family: Arial">16</span><span style="font-size: 9pt; color: black; font-family: Arial; position: relative; top: -2.5pt">0</span><span style="font-size: 13.5pt; color: black; font-family: Arial">+B</span><span style="font-size: 13.5pt; color: black; font-family: 隶书">&#215;</span><span style="font-size: 13.5pt; color: black; font-family: Arial">16</span><span style="font-size: 9pt; color: black; font-family: Arial; position: relative; top: -2.5pt">-1 </span></span></span></p>
<p style="background: white" align="left"><span style="font-size: 13.5pt; color: black; font-family: Arial"><span style="font-family: 宋体"><span style="font-size: 14pt">= 3840+128+12+0.6875 </span></span></span></p>
<p style="background: white" align="left"><span style="font-family: 宋体"><span style="font-size: 14pt"><span style="font-size: 13.5pt; color: black; font-family: Arial">=3980.6875</span> </span></span></p>
<p><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;</span></span></p>
<p><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;</span></span></p>
<p style="background: white" align="left"><span style="font-size: 13.5pt; color: black; font-family: Arial"><span style="font-family: 宋体"><span style="font-size: 14pt">(10011.01)2 </span></span></span></p>
<p style="background: white" align="left"><span style="font-family: 宋体"><span style="font-size: 14pt"><span style="font-size: 13.5pt; color: black; font-family: Arial">=1</span><span style="font-size: 13.5pt; color: black; font-family: 隶书">&#215;</span><span style="font-size: 13.5pt; color: black; font-family: Arial">2</span><span style="font-size: 9pt; color: black; font-family: Arial; position: relative; top: -2.5pt">4</span><span style="font-size: 13.5pt; color: black; font-family: Arial">+0</span><span style="font-size: 13.5pt; color: black; font-family: 隶书">&#215;</span><span style="font-size: 13.5pt; color: black; font-family: Arial">2</span><span style="font-size: 9pt; color: black; font-family: Arial; position: relative; top: -2.5pt">3</span><span style="font-size: 13.5pt; color: black; font-family: Arial">+0</span><span style="font-size: 13.5pt; color: black; font-family: 隶书">&#215;</span><span style="font-size: 13.5pt; color: black; font-family: Arial">2</span><span style="font-size: 9pt; color: black; font-family: Arial; position: relative; top: -2.5pt">2</span><span style="font-size: 13.5pt; color: black; font-family: Arial">+1</span><span style="font-size: 13.5pt; color: black; font-family: 隶书">&#215;</span><span style="font-size: 13.5pt; color: black; font-family: Arial">2</span><span style="font-size: 9pt; color: black; font-family: Arial; position: relative; top: -2.5pt">1</span><span style="font-size: 13.5pt; color: black; font-family: Arial">+1</span><span style="font-size: 13.5pt; color: black; font-family: 隶书">&#215;</span><span style="font-size: 13.5pt; color: black; font-family: Arial">2</span><span style="font-size: 9pt; color: black; font-family: Arial; position: relative; top: -2.5pt">0</span><span style="font-size: 13.5pt; color: black; font-family: Arial">+0</span><span style="font-size: 13.5pt; color: black; font-family: 隶书">&#215;</span><span style="font-size: 13.5pt; color: black; font-family: Arial">2</span><span style="font-size: 9pt; color: black; font-family: Arial; position: relative; top: -2.5pt">-1</span><span style="font-size: 13.5pt; color: black; font-family: Arial">+1</span><span style="font-size: 13.5pt; color: black; font-family: 隶书">&#215;</span><span style="font-size: 13.5pt; color: black; font-family: Arial">2</span><span style="font-size: 9pt; color: black; font-family: Arial; position: relative; top: -2.5pt">-2 </span></span></span></p>
<p style="background: white" align="left"><span style="font-size: 13.5pt; color: black; font-family: Arial"><span style="font-family: 宋体"><span style="font-size: 14pt">=16+2+1+0.25 </span></span></span></p>
<p style="background: white" align="left"><span style="font-size: 13.5pt; color: black; font-family: Arial"><span style="font-family: 宋体"><span style="font-size: 14pt">=19.25</span></span></span></p>
<p><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;</span></span></p>
<p><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;</span></span></p>
<p><span style="font-size: 13.5pt; font-family: 楷体_GB2312"><span style="font-size: 14pt"><span style="color: #ff0000"><span style="color: #ff0000"><span style="font-family: 宋体"><span style="font-size: 14pt"><span style="font-family: 楷体_GB2312">整</span>数部分的转换</span></span></span></span></span></span></p>
<p><span style="font-size: 13.5pt; color: black; font-family: 楷体_GB2312"><span style="font-size: 14pt"><span style="font-family: 宋体"><span style="font-size: 14pt">除基取余法：用目标数制的基数去除十进制数，第一次相除所得余数为目的数的最低位 K0，将所得商再除以基数，反复执行上述过程，直到商为&#8220;0&#8221;，所得余数为目的数的最高位。</span></span></span></span></p>
<p>&nbsp;</p>
<p><span style="font-size: 14pt; font-family: 宋体">例：（81）10=（？）2</span></p>
<p>&nbsp;</p>
<p><strong></strong></p>
<p><span style="font-size: 14pt"><span style="font-size: 13.5pt; color: black; font-family: 楷体_GB2312"><span style="font-size: 14pt"></span></span></span></p>
<p><span style="font-family: 宋体"><span style="font-size: 14pt"><img height="227" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xugang/num0001.JPG" width="685" border="0" />&nbsp;</span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 13.5pt; color: black; font-family: 楷体_GB2312"></span></span>&nbsp;</p>
<p><span style="font-size: 14pt"><span style="font-size: 13.5pt; color: black; font-family: 楷体_GB2312"><span style="font-size: 14pt"><span style="color: black; font-family: 楷体_GB2312"><span style="font-family: 宋体"><span style="font-size: 14pt">得：（81）10 =（1010001）2</span></span></span></span></span></span></span></p>
<p><strong><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;</span></span></strong></p>
<p><span style="font-size: 13.5pt; color: red; font-family: 楷体_GB2312"><span style="font-size: 14pt"><span style="font-family: 宋体"><span style="font-size: 14pt">小数部分的转换</span></span></span></span></p>
<p></span></p>
<p><span style="font-size: 13.5pt; color: black; font-family: 楷体_GB2312"><span style="font-size: 14pt"><span style="font-family: 宋体"><span style="font-size: 14pt">乘基取整法：小数乘以目标数制的基数，第一次相乘结果的整数部分为目的数的最高位，将其小数部分再乘基数依次记下整数部分，反复进行下去，直到小数部分为&#8220;0&#8221;，或满足要求的精度为止。(如<span lang="EN-US" style="font-size: 24pt; color: black; font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-color-index: 3"><span style="font-size: 14pt"><span lang="EN-US" style="color: black; font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-color-index: 3">2</span><span lang="EN-US" style="color: black; font-family: 'Times New Roman'; position: relative; top: -0.45em; mso-fareast-font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'; mso-text-raise: 30%; mso-fareast-language: ZH-CN; mso-color-index: 3">-5</span></span></span>，只要求到小数点后第五位)</span></span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;</span></span></span></p>
<p><span style="font-size: 13.5pt; color: black; font-family: 楷体_GB2312"><span style="font-size: 14pt"><span style="font-family: 宋体"><span style="font-size: 14pt">例： （0.65）10 =(&nbsp;?&nbsp;)2 要求精度为小数五位。</span></span></span></span></p>
<p><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;</span></span></p>
<p><span style="font-size: 13.5pt; color: black; font-family: 楷体_GB2312"><span style="font-size: 14pt"><span style="font-family: 宋体"><span style="font-size: 14pt"><img height="173" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xugang/num002.JPG" width="714" border="0" /></span></span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;</span></span></p>
<p><span style="font-size: 14pt"><span style="font-family: 宋体"><span style="font-size: 14pt">由此得：(0.65)10=(0.10100)2</span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;</span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-family: 宋体"><span style="font-size: 14pt">综合得：(81.65)10=(1010001.10100)2</span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;</span></span></span></p>
<p>&nbsp;</p>
<p><span style="font-size: 14pt; color: red"><span style="font-family: 宋体"><span style="font-size: 14pt">二进制与八进制间的转换</span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-family: 宋体"><span style="font-size: 14pt">从小数点开始，将二进制数的整数和小数部分每三位分为一组，不足三位的分别在整数的最高位前和小数的最低位后加&#8220;0&#8221;补足，然后每组用等值的八进制码替代，即得目的数。</span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;</span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-family: 宋体"><span style="font-size: 14pt">例：（11010111.0100111）2 = （327.234）8</span></span></span></p>
<p></span></p>
<p style="background: white" align="left"><span style="font-size: 13.5pt; color: black; font-family: 楷体_GB2312"></span>&nbsp;</p>
<p style="background: white" align="left"><span style="font-size: 13.5pt; color: black; font-family: 楷体_GB2312"><span style="font-size: 14pt; color: #ff0000"><span style="font-family: 宋体"><span style="font-size: 14pt"><img height="204" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xugang/num004.JPG" width="345" border="0" /></span></span></span></span></p>
<p style="background: white" align="left"><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;</span></span></p>
<p style="background: white" align="left"></p>
<p style="background: white" align="left"><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;</span></span></p>
<p style="background: white" align="left"><span style="font-size: 13.5pt; color: black; font-family: 楷体_GB2312"><span style="font-size: 14pt; color: #ff0000"><span style="font-family: 宋体"><span style="font-size: 14pt">二进制与十六进制间的转换</span></span></span></span></p>
<p style="background: white" align="left"><span style="font-family: 宋体"><span style="font-size: 14pt">从小数点开始，将二进制数的整数和小数部分每四位分为一组，不足四位的分别在整数的最高位前和小数的最低位后加&#8220;0&#8221;补足，然后每组用等值的十六进制码替代，即得目的数。<br />
</span></span></p>
<p style="background: white" align="left">&nbsp;</p>
<p style="background: white"><span style="font-size: 13.5pt; color: black; font-family: 楷体_GB2312"><span style="font-size: 14pt"><span style="font-family: 宋体"><span style="font-size: 14pt">例: (111011.10101)2=(3B.A8)16</span></span></span></span></p>
<p style="background: white"><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;</span></span></p>
<p style="background: white"><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;<img height="195" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xugang/num005.JPG" width="326" border="0" /></span></span></p>
<p style="background: white"><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;</span></span></p>
<p style="background: white"></p>
<p style="background: white"><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;</span></span></p>
<p style="background: white"><span style="color: red"><span style="font-family: 宋体"><span style="font-size: 14pt">综合示例：</span></span></span></p>
<p style="background: white"><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;</span></span></p>
<p style="background: white"><span style="font-family: 宋体"><span style="font-size: 14pt">将 -617 用八进制和十六进制(补码)表示:<br />
<br />
答案： (-617)10=(176627)8=(fd97)16<br />
</span></span></p>
<p><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;</span></span></p>
<p><span style="font-family: 宋体"><span style="font-size: 14pt">原理：任何数在内存中都是以二进制补码的形式存放的.</span></span></p>
<p><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 正数的补码就是其本身的二进制.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;负数的补码是其绝对值的二进制的反码加+1.</span></span></p>
<p><br />
<span style="font-family: 宋体"><span style="font-size: 14pt">1：-617的绝对值：617 </span></span></p>
<p><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp;其二进制0000001001101001(整型16位)<br />
2:&nbsp;反码&nbsp; ：1111 1101 1001 0110.<br />
3：加1后 ：1111 1101 1001 0111.<br />
</span></span></p>
<p><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;</span></span></p>
<p><span style="font-family: 宋体"><span style="font-size: 14pt">转8进制，3位一体：<br />
即：001 111 110 110 010 111<br />
&nbsp; &nbsp;&nbsp; 1&nbsp;&nbsp; 7&nbsp;&nbsp; 6&nbsp;&nbsp; 6&nbsp;&nbsp; 2&nbsp;&nbsp; 7<br />
</span></span></p>
<p><span style="font-family: 宋体"></span>&nbsp;</p>
<p><span style="font-family: 宋体"><span style="font-size: 14pt">转16进制，4位一体：</span></span></p>
<p><span style="font-family: 宋体"><span style="font-size: 14pt">即：1111 1101 1001 0111<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;F&nbsp;&nbsp;&nbsp; D&nbsp;&nbsp;&nbsp; 9&nbsp;&nbsp;&nbsp; 7<br />
</span></span></p>
<p><span style="font-family: 宋体"><span style="font-size: 14pt">&nbsp;</span></span></p>
<img src ="http://www.cnblogs.com/xugang/aggbug/1258610.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41937/" target="_blank">[新闻]Google拟在9月发布自有浏览器 或采用火狐内核</a>]]></description></item><item><title>Microsoft SQL Server 2005 无法创建“数据库关系图”的解决办法</title><link>http://www.cnblogs.com/xugang/archive/2008/07/30/1256291.html</link><dc:creator>钢钢</dc:creator><author>钢钢</author><pubDate>Wed, 30 Jul 2008 03:28:00 GMT</pubDate><guid>http://www.cnblogs.com/xugang/archive/2008/07/30/1256291.html</guid><wfw:comment>http://www.cnblogs.com/xugang/comments/1256291.html</wfw:comment><comments>http://www.cnblogs.com/xugang/archive/2008/07/30/1256291.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/xugang/comments/commentRss/1256291.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xugang/services/trackbacks/1256291.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<p>Microsoft SQL Server 2005 数据库中，经常会出现无法创建&#8220;数据库关系图&#8221;的错误，原因大多是这个数据库是附加，权限不够的关系。解决的办法也很简单：</p>
<p>&nbsp;</p>
<p>选择数据库名 ——&gt;右键——&gt;属性——&gt;选择&#8220;文件&#8221;，将看到右边的&#8220;所有者&#8221;，选择&#8220;...&#8221;按钮将弹出对话框——&gt;选择&#8220;浏览(B)...&#8221;按钮——&gt;在匹配的对象中选上" [NT AUTHORITY\SYSTEM] " 即可。</p>
<img src ="http://www.cnblogs.com/xugang/aggbug/1256291.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41936/" target="_blank">[新闻]微软正在构思将Wi-Fi带入汽车</a>]]></description></item><item><title>C#泛型编程基础知识总结[转]</title><link>http://www.cnblogs.com/xugang/archive/2008/06/11/1217414.html</link><dc:creator>钢钢</dc:creator><author>钢钢</author><pubDate>Wed, 11 Jun 2008 07:24:00 GMT</pubDate><guid>http://www.cnblogs.com/xugang/archive/2008/06/11/1217414.html</guid><wfw:comment>http://www.cnblogs.com/xugang/comments/1217414.html</wfw:comment><comments>http://www.cnblogs.com/xugang/archive/2008/06/11/1217414.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/xugang/comments/commentRss/1217414.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xugang/services/trackbacks/1217414.html</trackback:ping><description><![CDATA[摘要: 在项目中通过对项目不断更深的认识，运用了设计模式,就难免不运到开箱和装箱操作，通常的开箱和装箱操作对系统的性能有一定的影响。为了解决这一个问题，其中一种解决方案是运用泛型来解决。下面是C#2.0泛型的简单介绍和使用，便于在项目中灵活运用。一、C#泛型演示classStack&lt;T&gt;{privateT[]store;privateintsize;publicStack(){store=ne&nbsp;&nbsp;<a href='http://www.cnblogs.com/xugang/archive/2008/06/11/1217414.html'>阅读全文</a><img src ="http://www.cnblogs.com/xugang/aggbug/1217414.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41935/" target="_blank">[新闻]对比测试：IE8 Beta 2 VS Firefox 3.0.1</a>]]></description></item><item><title>Abstract Factory 抽象工厂设计模式</title><link>http://www.cnblogs.com/xugang/archive/2008/06/11/1217227.html</link><dc:creator>钢钢</dc:creator><author>钢钢</author><pubDate>Wed, 11 Jun 2008 02:37:00 GMT</pubDate><guid>http://www.cnblogs.com/xugang/archive/2008/06/11/1217227.html</guid><wfw:comment>http://www.cnblogs.com/xugang/comments/1217227.html</wfw:comment><comments>http://www.cnblogs.com/xugang/archive/2008/06/11/1217227.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cnblogs.com/xugang/comments/commentRss/1217227.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xugang/services/trackbacks/1217227.html</trackback:ping><description><![CDATA[摘要: 简单工厂模式虽然实现了使对象的创建与使用进行分离，但一次只能创建一个对象。它不能实现一次创建一系列相互依赖对象的需求，为此我们需要学习抽象工厂模式。抽象工厂：主要功能是生产抽象产品；如：生产学员、管理员等抽象产品。抽象产品：主要功能是提供实体产品访问接口；如：提供学员、管理员等实体产品数据访问的接口。实体工厂：主要功能是生产实体产品；如：SQL Server和Access形式的学员、管理员等数据访&nbsp;&nbsp;<a href='http://www.cnblogs.com/xugang/archive/2008/06/11/1217227.html'>阅读全文</a><img src ="http://www.cnblogs.com/xugang/aggbug/1217227.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41935/" target="_blank">[新闻]对比测试：IE8 Beta 2 VS Firefox 3.0.1</a>]]></description></item><item><title>设计模式概述</title><link>http://www.cnblogs.com/xugang/archive/2008/06/10/1216581.html</link><dc:creator>钢钢</dc:creator><author>钢钢</author><pubDate>Tue, 10 Jun 2008 03:34:00 GMT</pubDate><guid>http://www.cnblogs.com/xugang/archive/2008/06/10/1216581.html</guid><wfw:comment>http://www.cnblogs.com/xugang/comments/1216581.html</wfw:comment><comments>http://www.cnblogs.com/xugang/archive/2008/06/10/1216581.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/xugang/comments/commentRss/1216581.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xugang/services/trackbacks/1216581.html</trackback:ping><description><![CDATA[<p><font face="Verdana">建筑师亚历山大对<span style="color: red">模式的定义</span>：在某一环境下某个问题的一种解决方案。<br />
<br />
<strong>亚历山大对模式的描叙：</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 模式的名称；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 模式的目的(即：要解决的问题)；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 实现方法；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 实现该模式必须考虑的限制和约束；</font></p>
<p><font face="Verdana"><strong><span style="color: red"><font face="Verdana">设计模式</font></span>是经验的总结与传承。</strong></font></p>
<p><font face="Verdana"><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 模式</strong>：描叙了一个在我们周围不断重复发生的问题，以及该问题的解决方案；<br />
<strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 设计模式</strong>：描叙了软件开发过程中某一类常见问题的一般性解决方案；<br />
<strong>面向对象设计模式</strong>：对在特定场景下，解决一般设计问题中类与相互通信对象的描述；<br />
<br />
</font></p>
<p><font face="Verdana"><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img height="280" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xugang/pattern_001.jpg" width="200" border="0" /><br />
<br />
最有影响力的书籍</strong>是《<span style="color: red">设计模式：可复用面向对象软件的基础</span>》，它共编录了23种设计模式。<br />
<br />
</font></p>
<p><font face="Verdana"><strong>什么是GOF？</strong><br />
GOF是《设计模式：可复用面向对象软件的基础》这本书的4位作者：Gamma、Helm、Johnson、Vlissides的通称。<br />
<br />
GOF自己并没有创建书中的设计模式，他们只是将软件行业中存在的、针对各种具体问题的一些优秀设计经验识别出来，并进行分类总结。</font></p>
<p><font face="Verdana"><strong style="color: red">23种设计模式</strong></font></p>
<p><font face="Verdana"><span style="color: red"><font face="Verdana">创建型模式<br />
</font></span>1&nbsp;&nbsp; <strong>Abstract Factory：抽象工厂模式；</strong>&nbsp;&nbsp; — — 对象创建型模式<br />
2&nbsp;&nbsp; <strong>Factory Method：工厂方法；</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;— — 对象创建型模式<br />
3&nbsp;&nbsp; <strong>Singleton：单件；</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;— — 对象创建型模式<br />
4&nbsp;&nbsp; <strong>Builder：生成器；</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; — — 对象创建型模式<br />
5&nbsp;&nbsp; <strong>Prototype：原型；</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; — — 对象创建型模式</font></p>
<p><font face="Verdana"><span style="color: red"><font face="Verdana">结构型模式<br />
</font></span>6&nbsp;&nbsp; <strong>Adapter：适配器；</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;— — 对象结构型模式<br />
7&nbsp;&nbsp; <strong>Composite：组成；</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;— — 对象结构型模式<br />
8&nbsp;&nbsp; <strong>Bridge：桥接；</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;— — 对象结构型模式<br />
9&nbsp;&nbsp; <strong>Decorator：装饰；</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;— — 对象结构型模式<br />
10&nbsp; <strong>Facade：外观；&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong>&nbsp; — — 对象结构型模式<br />
11&nbsp; <strong>Flyweight：享元；&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </strong>&nbsp;— — 对象结构型模式<br />
12&nbsp; <strong>Proxy：代理；</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;— — 对象结构型模式</font></p>
<p><font face="Verdana"><span style="color: red"><font face="Verdana">行为型模式<br />
</font></span>13&nbsp; <strong>Chain of Responsibility：职责链；</strong>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;— — 对象行为型模式<br />
14&nbsp; <strong>Command：命令；</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;— — 对象行为型模式<br />
15&nbsp; <strong>Interpreter：解释器；&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong>&nbsp; — — 对象行为型模式<br />
16&nbsp; <strong>Iterator：迭代器；</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;— — 对象行为型模式<br />
17&nbsp; <strong>Mediator：中介者；</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;— — 对象行为型模式<br />
18&nbsp; <strong>Memento：备忘录；</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;— — 对象行为型模式<br />
19&nbsp; <strong>Observer：观察者；</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;— — 对象行为型模式<br />
20&nbsp; <strong>State：状态；</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;— — 对象行为型模式<br />
21&nbsp; <strong>Strategy：策略；</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;— — 对象行为型模式<br />
22&nbsp; <strong>Template Method：模板方法；</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;— — 对象行为型模式<br />
23&nbsp; <strong>Visitor：访问者；</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;— — 对象行为型模式<br />
<br />
</p>
<p><font style="color: #000000" face="Verdana"><br />
<span style="color: red"><strong>设计模式系列博客<br />
</strong></span><font face="Verdana"><br />
<strong>DotNET设计模式系列文章 &#8211; TerryLee</strong></font><br />
<a href="http://www.cnblogs.com/Terrylee/archive/2006/07/17/334911.html">http://www.cnblogs.com/Terrylee/archive/2006/07/17/334911.html</a><br />
<br />
<font face="Verdana"><strong>设计模式&#8211;吕震宇<br />
</strong><a href="http://www.cnblogs.com/zhenyulu/category/6930.html?Show=All">http://www.cnblogs.com/zhenyulu/category/6930.html?Show=All</a></font></p>
<p><font face="Verdana"><strong>Design Pattern &#8211; LoveCherry<br />
</strong><a href="http://www.cnblogs.com/lovecherry/category/108156.html">http://www.cnblogs.com/lovecherry/category/108156.html</a></font></p>
<p><font face="Verdana"><strong>DesignPattern设计模式 &#8211; webabcd<br />
</strong><a href="http://www.cnblogs.com/webabcd/category/82668.html">http://www.cnblogs.com/webabcd/category/82668.html</a></font></p>
<p><font face="Verdana"><br />
<strong style="color: red">推荐书籍</strong><br />
<br />
<strong>大话设计模式</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 作 者： 程&nbsp;&nbsp;&nbsp;杰&nbsp;&nbsp; <br />
相关连接：<a href="http://cj723.cnblogs.com">http://cj723.cnblogs.com</a></font></p>
<p><font face="Verdana"><strong>Head First 设计模式（中文版）</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 作 者： 弗里曼 <br />
相关连接：<a href="http://www.cnblogs.com/justinw/archive/2006/03/23/356523.html">http://www.cnblogs.com/justinw/archive/2006/03/23/356523.html</a><br />
</font></font></font></p>
<img src ="http://www.cnblogs.com/xugang/aggbug/1216581.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41934/" target="_blank">[新闻]iPhone存在严重密码安全漏洞</a>]]></description></item><item><title>如何使用VSTS写单元测试</title><link>http://www.cnblogs.com/xugang/archive/2008/06/06/1215158.html</link><dc:creator>钢钢</dc:creator><author>钢钢</author><pubDate>Fri, 06 Jun 2008 06:49:00 GMT</pubDate><guid>http://www.cnblogs.com/xugang/archive/2008/06/06/1215158.html</guid><wfw:comment>http://www.cnblogs.com/xugang/comments/1215158.html</wfw:comment><comments>http://www.cnblogs.com/xugang/archive/2008/06/06/1215158.html#Feedback</comments><slash:comments>14</slash:comments><wfw:commentRss>http://www.cnblogs.com/xugang/comments/commentRss/1215158.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xugang/services/trackbacks/1215158.html</trackback:ping><description><![CDATA[<p><font face="Verdana">Microsoft的开发平台VSTS(Visual Studio Team System) 集成了单元测试框架(Team Test)，即：<br />
<strong>VSTS单元测试。&nbsp;&nbsp;&nbsp; 它支持：</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; 1. 生成测试代码框架；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 2. 在IDE中运行测试；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;3. 支持从数据库中加载数据的测试；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4. 测试运行完成后，进行代码分析覆盖。<br />
</font><font face="Verdana"><br />
<strong>使用VSTS写单元测试的步骤如下：</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;<span style="color: red">&nbsp;1. 创建测试；</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; <span style="color: red">2. 编写测试；</span><br />
<span style="color: red">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 3. 运行测试；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4. 代码覆盖。<br />
</span><br />
<span style="color: red"><strong>1.&nbsp; 创建测试<br />
<br />
</strong></span>打开解决方案中的.cs类文件(如：StudentManager)，在其中的一个方法(如：AddStudent() )上右击，选择&#8220;创建单元测试&#8221;命令。</p>
<p>在弹出的&#8220;创建单元测试&#8221;对话框中的&#8220;输出项目&#8221;下拉框中选择&#8220;创建新的Visual C# 测试项目&#8221;，单击&#8220;确定&#8221;按钮，并在&#8220;新建测试项目&#8221;对话框中输入测试项目的名称(如：MySchoolTest)，单击&#8220;创建&#8221;按钮后，就看见在原有的解决方案中生成了一个新的项目&#8220;MySchoolTest&#8221;。<br />
<br />
<strong>测试项目创建成功后，会同时生成<span style="color: red">4个与测试相关的文件</span>：</strong></p>
<p><strong>AuthoringTest.txt</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 提供创建测试的说明，包括向项目增加其他测试的说明；<br />
<br />
<strong>StudentManagerTest.cs</strong>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 包含AddStudent()的测试，以及测试初始化和测试清除的方法；<br />
<br />
<strong>MySchoolPro.vsmdi</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 测试管理文件；<br />
<br />
<strong>localtestrun.testrunconfig</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本地测试运行配置文件。</p>
<p><br />
<strong style="color: red">2.&nbsp; 编写测试<br />
<br />
</strong>创建测试完毕后，VSTS 为我们自动生成的只是一个测试框架，默认代码中Assert.Inconclusive 表明这是一个未经验证的单元测试。<br />
<br />
<font face="Verdana">打开生成的测试文件&#8220;StudentManagerTest.cs&#8221;，&nbsp;&nbsp;&nbsp; <strong>如示例1：</strong></p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">[TestMethod]<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;AddStudentTest()<br />
{<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">global</span><span style="color: #000000">::MySchool.BLL.StudentManager&nbsp;target&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">global</span><span style="color: #000000">::MySchool.BLL.StudentManager();&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;TODO：初始化为适当的值</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">global</span><span style="color: #000000">::MySchool.Models.Student&nbsp;student&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;expected&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;actual;<br />
&nbsp;&nbsp;&nbsp;actual&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;target.AddStudent(student);<br />
<br />
&nbsp;&nbsp;&nbsp;Assert.AreEqual(expected,&nbsp;actual,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">MySchool.BLL.StudentManager.AddStudent&nbsp;未返回所需的值。</span><span style="color: #800000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;Assert.Inconclusive(</span><span style="color: #800000">"</span><span style="color: #800000">验证此测试方法的正确性。</span><span style="color: #800000">"</span><span style="color: #000000">);<br />
}</span></div>
<br />
<p><font face="Verdana"><strong>单元测试中，几个变量的简单介绍：<br />
<br />
</strong></font><font face="Verdana"><strong>target</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 表示测试目标对象，通过这个目标对象可以测试该类中的各个方法；<br />
<br />
</font><font face="Verdana"><strong>expected</strong>&nbsp;&nbsp;&nbsp;&nbsp;表示期望得到的值；<br />
<br />
</font><font face="Verdana"><strong>actual</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 表示实际得到的值；<br />
<br />
</p>
<p><font face="Verdana"><br />
<strong>单元测试中，常用的<span style="color: red">断言方法</span>介绍：</strong></font></p>
<p><font face="Verdana"><strong>Assert.AreEqual()</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 测试指定的值是否相等，如果相等，则测试通过；</font></p>
<p><font face="Verdana"><strong>Assert.Inconclusive()</strong>&nbsp;&nbsp;&nbsp; 表示一个未验证的测试；</font></p>
<p><font face="Verdana"><strong>Assert.IsTrue()</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 测试指定的条件是否为True，如果为True，则测试通过；</font></p>
<p><font face="Verdana"><strong>Assert.IsFalse()</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 测试指定的条件是否为False，如果为False，则测试通过；</font></p>
<p><font face="Verdana"><strong>Assert.IsNull()</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 测试指定的对象是否为空引用，如果为空，则测试通过；</font></p>
<p><font face="Verdana"><strong>Assert.IsNotNull()</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 测试指定的对象是否为非空，如果不为空，则测试通过；</font></p>
<p><br />
</p>
<p><font face="Verdana">我们通过对示例1 添加测试所需的初始值，并对断言进行简单的修改后，便得到一个正式的单元测试。</font></p>
<p><font face="Verdana"><strong>如示例2：</strong></p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">[TestMethod]<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;AddStudentTest()<br />
{<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">global</span><span style="color: #000000">::MySchool.BLL.StudentManager&nbsp;target&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">global</span><span style="color: #000000">::MySchool.BLL.StudentManager();&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;TODO：初始化为适当的值</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">global</span><span style="color: #000000">::MySchool.Models.Student&nbsp;student&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">global</span><span style="color: #000000">::MySchool.Models.Student();&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;修改1</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;student.LoginId&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">003</span><span style="color: #800000">"</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;student.LoginPwd&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">test003</span><span style="color: #800000">"</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;student.UserStateId&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">1</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;student.studentName&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">test003</span><span style="color: #800000">"</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;student.studentNo&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">test003</span><span style="color: #800000">"</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;student.Sex&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">男</span><span style="color: #800000">"</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;student.ClassID&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">1</span><span style="color: #000000">;<br />
<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;expected&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">学员帐户创建成功！</span><span style="color: #800000">"</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">修改2</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;actual;<br />
&nbsp;&nbsp;&nbsp;actual&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;target.AddStudent(student);<br />
<br />
&nbsp;&nbsp;&nbsp;Assert.AreEqual(expected,&nbsp;actual,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">MySchool.BLL.StudentManager.AddStudent&nbsp;未返回所需的值。</span><span style="color: #800000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;Assert.Inconclusive("验证此测试方法的正确性。");</span><span style="color: #008000"><br />
</span><span style="color: #000000">}</span></div>
<p></font></p>
<p><font face="Verdana">这样，便得到了一个正式的单元测试。用断言Assert.AreEqual()比较expected、actual是否相等。<br />
如果相等，测试通过。<br />
<br />
</font><font face="Verdana"><font face="Verdana"><span style="color: red"><font face="Verdana">配置文件中的设置</font><br />
</span></font>由于我们的测试需要和数据库打交道，并且数据库的连接字符串是从配置文件中读取的，所以我们需要在测试项目中添加配置文件(app.config)。</font></p>
<p><font face="Verdana"><font face="Verdana"><strong>如示例3：</strong></font></p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="utf-8"&nbsp;</span><span style="color: #0000ff">?&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">configuration</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">configSections</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">configSections</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">connectionStrings</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;//数据库连接字符串设置<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">add&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="DataBaseOwner"</span><span style="color: #ff0000">&nbsp;&nbsp;connectionString</span><span style="color: #0000ff">="dbo"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff">&lt;</span><span style="color: #800000">add&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="MySchoolConnectionString"</span><span style="color: #ff0000">&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; connectionString</span><span style="color: #0000ff">="&nbsp;Data&nbsp;Source=.;&nbsp;Initial&nbsp;Catalog=MySchool;</span><span style="color: #ff0000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff">User&nbsp;ID=sa;&nbsp;Password</span></span><span style="color: #0000ff">=123456&nbsp;"</span><span style="color: #ff0000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;providerName</span><span style="color: #0000ff">="System.Data.SqlClient"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">connectionStrings</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">configuration</span><span style="color: #0000ff">&gt;</span></div>
<p></font><br />
<font style="color: red" face="Verdana"><strong>3.&nbsp; 运行测试<br />
<br />
</strong></font><font face="Verdana">打开包含有测试项目的解决方案，在 工具栏 就会出现与测试项目相关的 操作按钮栏。<br />
</font><font face="Verdana">我们要运行项目中的测试，只需要运行测试项目。</font></p>
<p><font face="Verdana"><strong>测试项目的运行方式有两种：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </strong></font><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 运行，并启动调试功能；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 运行，但不启动调试功能；<br />
</font><font face="Verdana"><br />
1.&nbsp; 当我们运行测试后，在&#8220;测试结果&#8221;窗口中，将列出项目中所有的测试。<br />
<br />
2.&nbsp; 开始的时候，测试会处于&#8220;挂起&#8221;的状态，测试运行的结果是&#8220;通过&#8221;或者&#8220;失败&#8221;。<br />
<br />
3.&nbsp; 如果我们要查看测试结果的额外细节时，选定测试项并双击，便打开了详细信息窗口。</font></p>
<p><font face="Verdana"><br />
<strong style="color: red">4.&nbsp; 代码覆盖</strong></font></p>
<p><font face="Verdana">代码覆盖是单元测试的一个关键指标。<br />
<br />
</font><font face="Verdana">代码覆盖：是指单元测试运行时，覆盖了多少代码。<br />
<br />
</font><font face="Verdana">Team Test 包含了一个代码覆盖工具，可以详细解释被执行代码的覆盖率，并突出显示哪些代码被执行，哪些代码没有被执行。</p>
<p><strong>注意： </strong><span style="color: red">VSTS 在生成单元测试框架时，默认没有启用&#8220;代码覆盖&#8221;功能。<br />
<br />
</span><strong>启用此功能的办法：<br />
<br />
</strong>1.&nbsp;&nbsp;首先打开&#8220;本地测试运行配置文件&#8221; localtestrun.testrunconfig ，在解决方案中。<br />
<br />
2.&nbsp; 双击&#8220;localtestrun.testrunconfig&#8221;文件，弹出该对话框窗口。<br />
<br />
3.&nbsp; 在其对话框窗口的左侧选择&#8220;代码覆盖率&#8221;，然后在右侧的&#8220;要检测的项目&#8221;中选择要检测的项目。<br />
<br />
4.&nbsp; 单击&#8220;应用&#8221;按钮。</p>
<p><br />
<strong>当我们启用了代码覆盖功能后，再次运行单元测试时：<br />
<br />
</strong>在&#8220;代码覆盖率结果&#8221;窗口中，选中&#8220;AddStudent()&#8221;双击，便可查看代码覆盖率。<br />
<br />
在&#8220;代码覆盖率结果&#8221;窗口中，我们还可以查看单元测试中代码覆盖的块数，以及代码覆盖的百分比信息。<br />
<br />
</font></font></p>
</font></font>
<img src ="http://www.cnblogs.com/xugang/aggbug/1215158.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41931/" target="_blank">[新闻]GC2008：星际争霸2进程报告 微调进程延续</a>]]></description></item><item><title>电视剧《奋斗》能叫奋斗吗?</title><link>http://www.cnblogs.com/xugang/archive/2008/05/30/1210631.html</link><dc:creator>钢钢</dc:creator><author>钢钢</author><pubDate>Fri, 30 May 2008 05:06:00 GMT</pubDate><guid>http://www.cnblogs.com/xugang/archive/2008/05/30/1210631.html</guid><wfw:comment>http://www.cnblogs.com/xugang/comments/1210631.html</wfw:comment><comments>http://www.cnblogs.com/xugang/archive/2008/05/30/1210631.html#Feedback</comments><slash:comments>45</slash:comments><wfw:commentRss>http://www.cnblogs.com/xugang/comments/commentRss/1210631.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xugang/services/trackbacks/1210631.html</trackback:ping><description><![CDATA[<font face="Verdana"><br />
<strong>程序员踩在银杏叶上也会有许多的感觉，比如我。&nbsp;^_^</strong><br />
<br />
<font style="font-size: small; line-height: 1.3em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <em>主人公为一个奋发有为的年轻人。</em><br />
<em>　　他有两个父亲，于是他发现两条生活道路。</em> </font><wbr><wbr><br />
<em><wbr><font style="font-size: small; line-height: 1.3em">　　他有两个恋人，于是他拥有两种情感。 </font><wbr></em><wbr><br />
<em><wbr><font style="font-size: small; line-height: 1.3em">　　他有一种理想，却导致另一种现实。 </font><wbr></em><wbr><br />
<em><wbr><font style="font-size: small; line-height: 1.3em">　　他有一种最可贵的精神，那就是不停地奋斗。 <br />
</font><wbr></em><wbr><br />
<em><wbr><font style="font-size: small; line-height: 1.3em">　　当代城市主题： </font><wbr></em><wbr><br />
<em><wbr><font style="font-size: small; line-height: 1.3em">　　表现当代人面对的生活、爱情、事业等问题的态度，具体到每一个人物。 </font><wbr></em><wbr><br />
<em><wbr><font style="font-size: small; line-height: 1.3em">　　精神层面是积极向上，坚持自我，顽强不屈。 </font><wbr></em><wbr><br />
<em><wbr><font style="font-size: small; line-height: 1.3em">　 </font><wbr></em><wbr><br />
<em><wbr><font style="font-size: small; line-height: 1.3em">　　爱情与事业： </font><wbr></em><wbr><br />
<em><wbr><font style="font-size: small; line-height: 1.3em">　　人对完美的追求，以及在追求的过程中所面临的困惑和窘境。 </font><wbr></em><wbr><br />
<em><wbr><font style="font-size: small; line-height: 1.3em">　　(我在这个故事里，让生活总给他们送去叫他们感到&#8220;意外的礼物&#8221;，也就是叫他们哭笑不得的礼物，那是他们只能接受的&#8220;现实&#8221;。) </font><wbr></em><wbr><br />
<em><wbr><font style="font-size: small; line-height: 1.3em">　　两个姑娘间的友谊、嫉妒、理解等等。 </font><wbr></em><wbr><br />
<em><wbr><font style="font-size: small; line-height: 1.3em">　　其中的一个女人顽强奋斗，只为了赢得另一个女人的尊重。 </font><wbr></em><wbr><br />
<em><wbr><font style="font-size: small; line-height: 1.3em">　　男人间的竞争。 </font><wbr></em><wbr><br />
<em><wbr><font style="font-size: small; line-height: 1.3em">　　男人对女人以及女人对男人的所谓的&#8220;双重需要&#8221;。</font><wbr></em><wbr><br />
<br />
<font style="font-size: small; line-height: 1.3em" color="#ff0000">—— 以上是引用自网友对《奋斗》的评价</font><wbr><br />
<br />
<br />
<font style="font-size: small; line-height: 1.3em">白天上班，公司里的同事闲聊时谈论起了《奋斗》这部电视剧，没想到还有同事看完之后，在自己的空间里特地写上了一篇读后感，可见它对我们这一代年轻人的影响。</font><wbr><br />
<br />
<font style="font-size: small; line-height: 1.3em">说实话，我也零碎看了一些，挺符合年轻人的胃口，但不符合我的胃口。首先，我就质疑：这个片子能叫《奋斗》吗？从我看的那几个片段里，个人感觉：男主角陆涛一开始就有一个好的平台，接着无非就是拿着人家的钱去实现自己的理想而已。至于片子里面的几个女角，与其说是&#8220;奋斗&#8221;，不如说是个人主义，或者理想主义者。虽然也有值得人们去思考与学习的东西，但它与当代现实生活中毕业的大学生还是有着许多实际的区别，至少在我周围的一群同学、朋友中是这样的。</font><wbr><br />
<br />
<font style="font-size: small; line-height: 1.3em">我倒感觉这部片子与《血色浪漫》有借鉴之嫌，却远不及《血色浪漫》。因为它更个性、更值得人品味。至于更多的评价，我没有怎么看，就不敢妄言。。。</font><wbr><br />
<br />
<font style="font-size: small; line-height: 1.3em">恰巧晚上，无意间看到CCTV重播的《恰同学少年》，让我爱不释&#8220;眼&#8221;。虽然早就知道这部片子不错，但一直没有怎么看过。呆呆的看了几个小时，让自己奢侈了一把。^_^ </font><wbr><br />
<br />
<font style="font-size: small; line-height: 1.3em">《恰同学少年》应该算是一部既有情调，又不失立志省人的好电视剧。剧情里，那心胸开阔且壮志凌云的少年毛泽东，不耻贫穷又懂得关爱他人的才子蔡和森，穷检节约但不拘一格的老师徐特立，温文典雅的一贞和她那腼腆的笑容。。。等等，这一些鲜活而又个性的人物，丝毫不亚于《奋斗》中人物的塑造。</font><wbr><br />
<br />
<font style="font-size: small; line-height: 1.3em">我认为，真正的奋斗应该是自己一步一步脚踏实地的去实现自己的理想，这其中应该有贫穷、挫折、委屈以及不能与别人分享的痛苦。经受这些以后，才能更好的认识生活，认清自己的理想，坚定自己的信念，带着成熟的自信去奋斗！</font><wbr><br />
<br />
<font style="font-size: small; line-height: 1.3em">或许是我不曾体会抛开物质层面的另一种奋斗，所有我也不认同《奋斗》这部片子里所谓的&#8220;奋斗&#8221;，更不赞同网络上谣传的这是一部青年励志片的宣传。</font><wbr><br />
<br />
<font style="font-size: small; line-height: 1.3em">而《恰同学少年》却恰恰符合&#8220;奋斗&#8221;这个主题，它对我们这一代青年应该具有深刻的教育和启迪。这种启迪，无论是从生活上、物质上、追求上或者思想上，还是对人生观和价值观，都有着许多值得反省和思考的地方，至少我是这么认为。</font><wbr><br />
<br />
<font style="font-size: small; line-height: 1.3em" color="#ff0000">—— 以下引用网友对《恰同学少年》的评价</font><wbr><br />
<br />
<em><wbr><font style="font-size: small; line-height: 1.3em">这部电视剧充满了年轻的活力，也让我看到了毛泽东的另一面：他张狂，忧国忧民，志向远大，冲动倔强，贫穷而有骨气。我从此不但敬佩他的丰功伟绩，还敬佩他学生时代的许多作风：</font><wbr></em><wbr><br />
<em><wbr></em><wbr><br />
<em><wbr><font style="font-size: small; line-height: 1.3em">&nbsp;&nbsp;&nbsp;&nbsp; 我敬佩他爱好读书，却因买书订报而买不起一双鞋； 　 </font><wbr></em><wbr><br />
<em><wbr><font style="font-size: small; line-height: 1.3em">&nbsp;&nbsp;&nbsp;&nbsp; 我敬佩他不慕虚荣，胸怀坦荡，豪情万丈，心系天下； 　 </font><wbr></em><wbr><br />
<em><wbr><font style="font-size: small; line-height: 1.3em">&nbsp;&nbsp;&nbsp;