??xml version="1.0" encoding="utf-8" standalone="yes"?>
复制文g和目录,包括子目录?
语法
xcopy Source [Destination] [/w] [/p] [/c] [/v] [/q] [/f] [/l] [/g] [/d[:mm-dd-yyyy]] [/u] [/i] [/s [/e]] [/t] [/k] [/r] [/h] [{/a|/m}] [/n] [/o] [/x] [/exclude:file1[+[file2]][+[file3]] [{/y|/-y}] [/z]
参数
Source
必需的。指定要复制的文件的位置和名U。该参数必须包含驱动器或路径?
Destination
指定要复制的文g的目标。该参数可以包含驱动器盘W和冒号、目录名、文件名或者它们的l合?
/w
在开始复制文件之前将昄以下消息q等待您的响应:
Press any key to begin copying file(s)
/p
提示您确认是否要创徏每个目标文g?
/c
忽略错误?
/v
在写入目标文件时验证每个文gQ以保目标文g与源文g完全相同?
/q
止昄 xcopy 消息?
/f
复制时显C源文g名和目标文g名?
/l
昄要复制的文g列表?
/g
创徏解密的目标文件?
/d[:mm-dd-yyyy]
只复刉些在指定日期或指定日期之后更改过的源文g。如果不包括 mm-dd-yyyy |xcopy 会复制比现有 Destination 文g新的所?Source 文g。该命o行选项使您可以更新更改q的文g?
/u
只从 source 复制 destination 中已有的文g?
/i
如果 Source 是一个目录或包含通配W,?Destination 不存在,xcopy 会假?destination 指定目录名ƈ创徏一个新目录。然后,xcopy 会将所有指定文件复制到新目录中。默认情况下Qxcopy 提C您指定 destination 是文件还是目录?
/s
复制非空的目录和子目录。如果省?/sQxcopy 在一个目录中工作?
/e
复制所有子目录Q包括空目录。同时?/e?s ?/t 命o行选项?
/t
只复制子目录l构Q即目录树)Q不复制文g。要复制I目录,必须包含 /e 命o行选项?
/k
复制文gQ如果源文gh只读属性,则在目标文g中保留该属性。默认情况下Qxcopy 会删除只d性?
/r
复制只读文g?
/h
复制h隐藏和系l文件属性的文g。默认情况下Qxcopy 不复刉藏或pȝ文g?
/a
只复刉些具有存档文件属性设|的源文件?a 不修Ҏ文g的存档文件属性。有兛_何通过使用 attrib 来设|存档文件属性的信息Q请参阅“”?
/m
复制h存档文g属性设|的源文件。与 /a 不同Q?m 关闭在源中指定的文g的存档文件属性。有兛_何通过使用 attrib 来设|存档文件属性的信息Q请参阅“”?
/n
使用 NTFS 短文件或目录名创建副本。将文g或目录从 NTFS 卷复制到 FAT h者当目标文gpȝ需?FAT 文gpȝ命名U定Q即 8.3 个字W)Ӟ需?/n。目标文件系l可以是 FAT ?NTFS?
/o
复制文g所有权与自由选择的访问控制列?(DACL) 信息?
/x
复制文g审核讄和系l访问控制列?(SACL) 信息Q包?/oQ?
/exclude:filename1[+[filename2]][+[filename3]]
指定包含字符串的文g列表?
/y
止提示您确认要覆盖现存的目标文件?
/-y
提示您确认要覆盖现有目标文g?
/z
在可重启模式中通过|络复制?
/?
在命令提C符昄帮助?
注释
使用 /v
XOX
使用 /exclude
列出每个文g的单独行中的每个字符丌Ӏ如果列出的M字符串与要复制的文g的绝对\径的M部分匚wQ就从复制进E排除该文g。例如,如果指定字符?"\Obj\"Q则会排?Obj 目录下的所有文件。如果指定字W串 ".obj"Q则排除h .obj 扩展名的所有文件?
使用 /z
如果在复制过E中丢失q接Q例如,如果用于q接的服务器脱机Q,复制q程在重新建立q接后恢复?z 也显C每个文件完成的复制操作的百分比?
?COPYCMD 环境变量中?/y
可在 COPYCMD 环境变量中?/y。在命o行上使用 /-y 可以覆盖该命令。默认情况下Q会提示您覆盖,除非您从批处理脚本内q行 copy?
复制加密的文?
加密文件复制到不支?EFS 的卷会导致错误。应首先解密文g或将文g复制到支?EFS 的卷中?
附属文g
要附加文Ӟh定单个目标文Ӟ多个源文Ӟ使用通配W或文g 1 + 文g 2 + 文g 3 格式Q?
Destination 的默认?
如果省略 DestinationQxcopy 命o文件复制到当前目录?
指定 Destination 是文件还是目?
如果 Destination 不包含现有目录且不以反斜?(\) l尾Q会出现下列消息Q?
Does destination specify a file name
or directory name on the target
(F = file, D = directory)?
如果要将一个或多个文g复制C个文Ӟh F。如果要一个或多个文g复制C个目录,h D?
使用 /i 命o行选项可抑制显C消息Q从而导?xcopy 认定在源是多个文件或一个目录的情况下,目标是一个目录?
使用 xcopy 命o讄 Destination 文g的存档属?
xcopy 命o创徏h存档属性设|的文gQ无论源文g中是否设定了此属性。有x件属性和 attrib 的详l信息,请参?#8220;”?
比较 xcopy ?diskcopy
如果盘的子目录中包含文Ӟ要将其复制到h不同格式的磁盘中Q请使用 xcopy 命oQ而不要?diskcopy。因?diskcopy 命o是一个磁道接一个磁道地复制盘Q所以需要源盘和目标磁盘的格式必须相同。xcopy 命o没有该要求。通常情况下请使用 xcopyQ除非您需要完整的盘囑փ副本?
xcopy 的退出码
要处?xcopy q回的退出码Q请在批处理E序?if 命o行上使用 errorlevel 参数。有关?#8220;if”处理退出码的批处理E序的范例,请参?#8220;”。下表列出每一个退出码和说明?
退出码 说明
0 文g复制没有错误?
1 没有扑ֈ要复制的文g?
2 用户?CTRL+C l止?xcopy?
4 出现了初始化错误。没有够的内存或磁盘空_或命令行上输入了无效的驱动器名称或语法?
5 出现了磁盘写入错误?
范例
要从驱动?A 所有文件和子目录(包括所有空的子目录Q复制到驱动?BQ请键入Q?
xcopy a:b:/s /e
要包含上一CZ中的Mpȝ或隐藏文Ӟh如下所C添?/h 命o行选项Q?
xcopy a:b:/s /e /h
要?\Rawdata 目录?1993 q?12 ?29 日后更改的文件更?\Reports 目录中的文gQ请键入Q?
xcopy \rawdata \reports /d:12-29-1993
要更C例中 \Reports 中存在的所有文Ӟ而不考虑日期Q请键入Q?
xcopy \rawdata \reports /u
如果只想获得前一个命令要复制的文件列表,而不复制文gQ请键入Q?
xcopy \rawdata \reports /d:12-29-1993 /l > xcopy.out
文g Xcopy.out 列出了要复制的所有文件?
要将 \Customer 目录和所有子目录复制到网l驱动器 H: 上的目录 \\Public\AddressQ保留只d性,q在 H: 上创建新文g时对您做出提C,请键入:
xcopy \customer h:\public\address /s /e /k /p
要发Z一个命令,保?\Address 目录不存在时 xcopy 会创目录Q同时应抑制昄创徏新目录时要显C的消息Q请按如下所C添?/i 命o行选项Q?
xcopy \customer h:\public\address /s /e /k /p /i
可以创徏批处理程序执?xcopy 操作Qƈ且?if 批处理命令在发生错误时处理退出码。例如,以下的批处理E序使用可替换的 xcopy 源和目标参数Q?
@echo off
rem COPYIT.BAT transfers all files in all subdirectories of
rem the source drive or directory (%1) to the destination
rem drive or directory (%2)
xcopy %1 %2 /s /e
if errorlevel 4 goto lowmemory
if errorlevel 2 goto abort
if errorlevel 0 goto exit
:lowmemory
echo Insufficient memory to copy files or
echo invalid drive or command-line syntax.
goto exit
:abort
echo You pressed CTRL+C to end the copy operation.
goto exit
:exit
要用该批处理程序将 C:\Prgmcode 目录和其子目录中的所有文件复制到驱动?B 中,请键入:
copyit c:\prgmcode b:
该命令解释程序将?C:\Prgmcode 替换 %1 ?B:。对?%2Q然后?xcopy ?/e ?/s 命o行选项。如?xcopy 遇到错误Q批处理E序读取退出码q{到相?IF ERRORLEVEL 语句中指C的标签Q然后显C相应的消息q出批处理E序?br>详细出处参考:http://www.jb51.net/article/11313.htm
下面正式谈一下我寚w求文档的一些写作思\Q?nbsp;
首先要对用户机构机构有清晰的了解Q写出各机构所涉及的业务,d相应业务的用例图Q之后提取出相应的业务流E,d相应的流E图。通过业务程Q即可抽 象出pȝ需实现的功能。再各业务Q功能)涉及到对象(如h员,物品{)信息描述出来Q根据提取出的信息将功能以IPO表(卌入、处理、输Q的形式 q行描述Q逐项定量和定性地叙述对Y件所提出的功能要求,详细的说明输入什么量、经怎样的处理、得C么输出,q说明待开发Y件应支持的终端数和应支持? q行操作的用h。需求文档的主要部分p样完成了?/p>
====================完全没有必要的分割线=====================
引用topic:
1 客户说不清楚需?/strong>
有些客户寚w求只有朦胧的感觉Q当然说不清楚具体的需求。例如全国各地的很多政府机构在搞|络Q这些单位的领导和办公h员大多不清楚计算机网l有什么用Q反而要软gpȝ分析人员替他们设想需求。这cdE的需求是如此的主观,以致产生很多贪污腐|现象?br>
?
些客户心里非常清楚想要什么,但却说不明白。读者可能很不以为然。就举日常生zȝ事例吧,比如说买鞋子。我们非怺解自已的脚,但没法说清楚脚的大小和Ş
状。只能拿鞋子去试Q试I时感觉到舒服才会买鞋(居然也有通广大的售货员,看一眼客L手,q道应该穿什么样的鞋Q?br>
如果客户本n?
懂Y件开发,能把需求说得清清楚楚,q样的需求分析将会非常轻松、愉快。如果客户全不懂软gQ但信Q软g开发方Q这事也好办。分析h员可以引导客P先阐
q常规的需求,再由客户否定不需要的Q最l确定客L正的需求。最怕的是“不懂装懂”或?#8220;半懂充内?#8221;的客P他们会提Z切实际的需求。如果这些客
L臌得自己是上帝的爸爸,那么沟通和协商都会很困难?/font>
2 需求自w经常变?/strong>
唐僧曾说Q?#8220;妖要是有了仁慈之心,׃再是妖,是h妖?#8221;Q《大话西怹大圣娶亲》)
q妖都会变心Q别说h了。所以喜新厌旧乃Z常情Q世界也因此变得多姿多彩?br>软g的需求会变化吗?
{:据历史记载,没有一个Y件的需求改动少于三ơ。唯一只改动需求两ơ的客户是个Mh。这个可怜的家伙q是在运送第三次需求的路上被R子撞ȝ。[Cline 1995]
让我们先接受“需求会变动”q个事实吧,免得在需求变动时惊慌失措。明?#8220;需求会变动”q个道理后,在进行需求分析时p留点:
Q?Q尽可能地分析清楚哪些是E_的需求,哪些是易变的需求。以便在q行pȝ设计ӞY件的核心建筑在稳定的需求上Q否则将会吃苦头?br>Q?Q在合同中一定要说清?#8220;做什?#8221;?#8220;不做什?#8221;。如果合同含含糊p,日后扯皮的事情就多。要防止象韩复渠那样Q在别h请他喝酒吃饭时他什么都点头Qh家就更加献殷勤)Q吃完了他就宣布刚才{应的事都不数Q便扬长而去?/font>
3 分析人员或客L解有?/strong>
有个外星人间谍潜伏到地球刺探情报Q它l上司写了一份报告:“d地球的是车。它们喝汽aQ靠四个轮子滚动前进。嗓门极大,在夜里双D出强光?#8230;…有趣的是QR里住着一U叫?#8216;?#8217;的寄生虫Q这些寄生虫完全控制了R?#8221;
?
件系l分析h员不可能都是全才。客戯辄需求,不同的分析h员可能有不同的理解。如果分析h员理解错了,可能会导致开发h员白q活Q吃力不讨好。我M
学时候最怕写作文逃题Q如果逃题了,不管作文写得多长QL零分。所以分析h员写好需求说明书后,要请客户方的各个代表验证。如果问题很复杂Q双斚w不太
明白Q就有必要请开发h员快速构造Y件的原型Q双方再ơ论证需求说明书是否正确?br>
׃客户大多不懂软gQ他们可能觉得Y件是万能的,会提Z些无法实现的需求。有时客戯会把软gpȝ分析人员的徏议或{复l想歪了?br>
有一个Y件h员滔滔不l地向客戯解在“信息高速公路上做广?#8221;的种U好处,客户听得z|有味。最后,心动的客户对软g人员_“好得很,p我们马上行动h吧。请您决定广告牌的尺寸和攑֜哪条高速公路上Q我立即zhd?#8221;
Z么Y件系l分析员的工资要比普通程序员高?是因ؓ需求分析困隑֘?/font>
做可行性分析不能以偏盖全,也不可以什么鸡毛蒜皮的l节都加以权衡。可行性分析必Mؓ决策提供有h值的证据?br>
联想集团领导人柳传志曾说Q?#8220;没钱赚的事我们不qԌ有钱赚但投不起钱的事不干Q有p也投得v׃没有可靠的h选,q样的事也不qӀ?#8221;柳传志ؓ决策立了上述准则Q同时也为可以行性分析指明了重点?br>
一般地QY仉域的可行性分析主要考虑四个要素Q经、技术、社会环境和人。本节只是泛泛地解释q四个要素,旨在建立全局分析的观c?.2节将l合案例围绕上述要素q行重点分析与评注?/font>
l济
l济可行性分析主要包括:“成本——收?#8221;分析?#8220;短期——长q利?#8221;分析?/font>
一、成本——收益分?br>成本——收益分析最Ҏ理解Q如果成本高于收益则表明亏损了,如果成本大大高于收益那就亏大了。商人都不喜Ƣ做吃亏的事情。有些商店成天脓着“最后一天蟩楼大拍卖”的标语,意思是Q我准备吃大亏让你占便宜Q同志,你快上钩吧?br>如果是ؓ客户做Y仉目,那么收益写在合同中。如果是做自q软g产品Q那么收益就是销售额?br>Z在预C品销售额时常常过分乐观而犯下大错。那些对你的产品说恭l话的hq不见得是要买货的人,俗话?#8220;嫌货才是买货?#8221;。当你没到一个挑刺的感觉这产品好得会让你发大胦Ӟp做好会破产的心理准备?br>如果做的是小本生意,那可得对成本q行l算。Y件的成本不是指存放Y件的那张光盘的成本,而是指开发成本。要考虑的成本有Q?br>Q?Q办公室房租?br>Q?Q办公用品,如桌、椅、书柜、照明电器、空调等?br>Q?Q计机、打印机、网l等g讑֤?br>Q?Q电话、传真等通讯讑֤以及通讯费用?br>Q?Q资料费?br>Q?Q办公消耗,如水电费、打印复印费{?br>Q?QY件开发h员与行政人员的工资?br>Q?Q购买系lY件的费用Q如买操作系l、数据库、Y件开发工L。有些老板买盗版的pȝ软gQ却按市Zh成本,可从国佬那里赚一W?br>Q?Q做市场调查、可行性分析、需求分析的交际费用?br>Q?0Q公思h员培训费用?br>Q?1Q品宣传费用。如果用Internet作宣传,则要考虑Web站点的费用?br>Q?2Q如果客h政府部门Q还要充分考虑用于吃喝玩乐、行贿的费用?br>Q?3Q如果公司的风水不好Q会有很多莫名其妙的理贏V每戳一个红艌的公章都要化一把钞?/font>
二、短期——长q利益分?br>Z喜欢吃着里的、看着锅里的,q想着别h安的。短期利益和长远利益兼得是h们梦寐以求的事。在商业上,q等好事可不会轻易降临?br>短期利益Ҏ把握Q风险较低。国内Y件公司经常出CH蜂地去做信息管理系l、多媒体光盘、系l集成项目或Internet服务。每当我们沉q于短期利益不思进取时Q应该好好回忆童q时代那些伟大的pQ给自己一些激励?br>? q利益难以把握,风险较大。能Z长远利益不惜短期亏损的hQ要么是雄心勃勃的将帅之才,要么?#8220;U怸谈兵”?#8220;眼高手底”的那一cd人。国内目前有不少 Internet企业Q只投入不出。ؓ了成将来的怸Q甘愿现在拼财力、比耐性。最后存zM来的几个公司瓜分市场?br>那些为长q利益奋斗的ZQ你们可得把长征的\途走完啊Q千万别让事业中途夭折?/font>
技?/strong>
技术可行性分析至要考虑以下几方面因素:
Q?Q在l定的时间内能否实现需求说明中的功能。如果在目开发过E中遇到难以克服的技术问题,ȝ大了。轻则拖延进度,重则断送项目?br>Q?QY件的质量如何Q有些应用对实时性要求很高,如果软gq行慢如蜗牛Q即便功能具备也毫无实用价倹{有些高风险的应用对软g的正性与_性要求极高,如果软gZ差错而造成客户利益损失Q那么Y件开发方可要赔惨了?br>Q?Q?
软g的生产率如何Q如果生产率低下Q能赚到的钱少Qƈ且会逐渐丧失竞争力。在l计软gȝ开发时间时Q不能漏掉用于维护的旉。Y件维护是非常拖后腿的
事,它能把前期拿到的利润慢慢地消耗光。如果Y件的质量不好Q将会导致维护的代h很高Q企N过偷工减料而提高生产率Q是得不偿失的事?br>技术可行性分析可以简单地表述为:做得了吗Q做得好吗?做得快吗Q?/font>
C会环境
C会环境的可行性至包括两U因素:市场与政{?br>市场又分为未成熟的市场、成熟的市场和将要消亡的市场?br>涉未成熟的市场要冒很大的风险,要尽可能准确C计潜在的市场有多大?自己能占多少份额Q多长时间能实现Q?br>
挤进成熟的市场,虽然风险不高Q但Ҏ也不多。如果供大于求,卌Y件开发公司多Q项目少Q那么在竞标时可能会出现恶性杀L情Ş。国内第一批卖计算机的、做pȝ集成的公司发了胦Q别人眼U了也挤q来Q这个行业的q_利润也就下降了?br>
要消亡的市场就别进M。尽很多程序员怀念DOS时代~程的那U淋漓尽_可现在没DOS应用软g了。学校教学尚可用用DOS软gQ商业Y件公司则不可再去开发DOS软g?br>政策对Y件公司的生存与发展媄响非常大。整?0q代Q中国电信的收费相当高,仅此一招就把国内互联网企业打得奄奄一息。某些Y件行业的利润很高Q但可能存在地方保护政策Q竞争不公q뀂政{不当将ȝ软g公司的健康发展,可最怕的q是政府q预企业的正当行为。例如:
现在家电行业竞争非常Ȁ烈,其中有一个著名企业的总裁十分了得Q把Ҏ打得节节败退。于是中央领gh来视察该企业ƈ作讲话:“你们的业l辉煌,得到了中央的高度重视Q?#8230;…但我们是C会M国家Q不是资本主义国Ӟ你们dl兄弟企业的同志们留口饭吃吧!”
有一ơ我拜访了北京大学一位研I经学的朋友。这个年青hQ还是个党员Q竞然这么说Q?#8220;我最q在研究国内明星企业的兴衰问题,我发C一个规律,明星企业一旦被政府领导察过Q它忘了自己是谁,׃做些走向M的蠢事?#8221;
?
实在不明白企业中Z么还要有“书记”职位。我以ؓ“书记”乃是天下W一号可W的官衔Q?#8220;书记”本是“U书”QsecretaryQ的同义词,是个可有?
无的行政人员的称|在中国竟然成了最大的官衔。每ơ看到新闻联播把国家d错叫成M记我都十分气愤:因ؓM记的U喟只对几千万的党员适用Q国家的?
L构难道不面向十多亿普通老百姓?如果我将来的工作单位q靠“书记”来管事,我每天准忙着生气Q那里还有精力去~程?/font>
?/strong>
有句名言Q?#8220;人分四类——h物,人才Qh手,人渣?#8221;
如果一个Y件公叔R上述四类人齐全了Q那么最好的分工是让“人物”当领|“人才”做第一U的开发h员,“人手”做行政h员,“人渣”负责行較?br>
q里只谈公司的领g开发h?#8220;行还是不?#8221;?#8220;人物”毕竟是少敎ͼ“人才”可是济的。D重若ȝ那类“人才”可以做领|举轻若重的那cMh才适合做Y件开发h员。假如一持有学士、硕士和博士文凭的毕业生到Y件公司应聘,该如何录用呢Q我的徏议如下:
先选择本科毕业生,因ؓ他们正当青春、干劲十뀁不摆架子、不M问、要求不高、奉献甚多?br>其次选择士毕业生,如果该生没象范进中D旉么老,q且在读士时没有天天去造文章而丢弃了~程工作Q那么让有经验的学士E序员带他们煅练几个月就可以用了?br>
?
果学士、硕士被其它公司取光了,那只好捡几个博士充数。博士到了Y件公司有什么用呢?我想不出有什么用Q只知道他们挺值得可怜的Q从士d博士出头Q这
六七q时_真本事没学多,倒学?#8220;眼高手低”甚至“弄虚作假”Q毕业时蓦然回首Q发觉青春已被虚度,心灵已呈老态,唯有长叹短嘘Q强把自负作自信。我
也将博士毕业Q就要论Z手贷贱卖了。真慕那些比我q轻的学士、硕士们Q他们可以远走高飞,唉!
1 正确性与_?/strong>
正确性与_性之所以排在质量因素的W一位,是因为如果Y件运行不正确或者不_Q就会给用户造成不便
甚至造成损失。机器不会主动欺骗hQY件运行不正确或者不_一般都是h造成的。即使一个Y件能100%
地按需求规格执行,但是如果需求分析错了,那么对客戯言q个软g也存在错误。即佉K求分析完全符合客L要求Q但是如果Y件没?00%
地按需求规格执行,那么q个软g也存在错误。开发一个大的Y仉目,E序员要?#8220;正确”?#8220;_”四个字竭精力?br>与正性、精性相关的质量因素是容错性和可靠性?br>
定w性首先承认Y件系l存在不正确与不_的因素,Z防止潜在的不正确与不_因素引发NQ系lؓ此设计了安全措施。在一些高风险的Y件系l,如航I天、武器、金融等pȝ中,定w性设计非帔R要?br>
?
靠性是指在一定的环境下,在给定的旉内,pȝ不发生故障的概率。可靠性本来是g领域的术语。比如某个电子设备,一开始工作很正常Q但׃工作中器件的
物理性质会发生变化(如发热)Q慢慢地pȝ׃失常。所以一个设计完全正的gpȝQ在工作中未必就是可靠的。Y件在q行时不会发生物理性质的变化,?
们常以ؓ如果软g的某个功能是正确的,那么它一辈子都是正确的。可是我们无法对软gq行d地测试,无法栚w软g中潜在的错误。^时Y件运行得好好的,?
不准哪一天就不正怺Q如“2000q?#8221;问题。因此把可靠性引入Y仉域是有意义的。我曾买了一本关于Y件可靠性的著作Q此书充满了数学公式。我发现以我
目前的学历实在难以看懂书上讲了些什么。请宽恕我的愚昧Q我把此书给“?#8221;hQ没敢用W画一处记受?/font>
2 性能与效?/strong>
用户都希望Y件的q行速度高些Q高性能Q,q且占用资源些Q高效率Q。旧C会C是q么对待长工 的:q活要快点,吃得要少炏V程序员可以通过优化法、数据结构和代码l织来提高Y件系l的性能与效率。优化的关键工作是找出限制性能与效率的“瓉”Q? 不要在无关痛痒的地方瞎忙乎。如果你惌U升得快Q光靠增加课时能屁用;你就该一q写它几十篇文章Q争取破格升教授?/font>
3 易用?/strong>
易用性是指用h觉用Y件的难易E度。用户可能是操作软g的最l用P也可能是那些要用源代码的程序员。现代h的生z节奏快Q干啥事都想图个方便。所以把易用性作为重要的质量因素无可非议?br>
?
致Y件易用性差的根本原因是开发h员犯?#8220;错位”的毛病:他以为只要自qh方便Q用户也一定会满意。俗话说“王婆卖瓜Q自卖自?#8221;。当E序员向用户?
CY件时Q常会得意地Ԍ“q个软g非常好用Q我操作l你看,……是很好用吧!”软g的易用性要让用h评h。当用户真的感到软g很好用时Q一股温暖的?
觉a然而生Q于是就?#8220;友好”来评h用性?/font>
4 可理解性与z?/strong>
可理解性表达了Z一U质朴的愿望Q我化钱C它,d让我明白它是什么东ѝ我时候的一个伙伴在M学时Q就因无法理解电荷之分正负,觉得很烦|便早早地~学当工h?br>? 理解性也是对用户而言的。开发h员只有在自己思\清晰时才可能写出让别理解的程序。编E时q要注意不可滥用技巧,应该用自然的方式~程。我们的不? 道自q得意之DI竟是锦上添花,q是画蛇添。就象蒸ZW馒_在上面插一朵鲜花,本想弄点诗情LQ却让h误以为那是一堆热气腾腄牛粪?/font>
z是一U美Q不是自己q是用户都会有同感。在生活中,与简z对立的?#8220;|里|嗦”。中国小说中最“ 婆婆妈妈”的男人是唐僧。有一Ҏ意调查:如果世上只有唐僧、孙悟空、猪八戒和沙僧这四类男hQ你要嫁l哪一c?请列Z先。调查结果表明,Cx毫 不例外地把唐僧摆在老末。一个原始的应用问题可能很复杂,但高水^的hp够把软gpȝ设计得很z。如果Y件系l臃肿不堪,它迟早会出问题。简z是Z 对工?#8220;_求精”的结果?/font>
废话大师有句名言Q?#8220;如果我o你过于轻村֜明白了,那你一定是误解了我说的话?#8221;我最q有一U奇怪的? 会:如果把学术文章写得很z,让h很容易理解,它往往中不了;只有加上一些玄乎的东西Q把本来单的弄成复杂的,才会增加投稿的命中率。事实上Q我可以 ?分钟之内说清楚三q来d所做的工作Q根本用不着?00多页的博士论文。我是在临近毕业Ӟ才发觉自己完全不适合d士学位。将来工作后Q我一定要 好好~程Q重新做人?/font>
5 可复用性与可扩充?/strong>
复用的一U方式是原封不动C用现成的软构Ӟ另一U方式是对现成的软构件进行必要的扩充后再使用。可复用性好的程序一般也h良好的可扩充性?/font>
详细出处参考:http://www.jb51.net/article/14986.htm
主要用来判断Q?br>1、两?#8220;字符?#8221;是否相等Q?br>2、两个数值是大于、小于、等?然后执行相应的命令?
当然q有Ҏ用法Q如l合errorlevelQif errorlevel 1 echo error
或者结合definedQ定义的意思):if defined test (echo It is defined) else echo It isn't defined
用法CZQ?
1、检字W串(注意Q用if字W串是否相等的时候,后面用的不是“=”Q而是“==”)Q?
@echo off
set "str=this is a test"
REM 变?str%是否{于testQ如果相{,昄OKQ否则显CNO
if "%str%"=="test" (echo OK) else echo NO
pause>nul
2、检数|Q注意,批处理中大于W号不能用:“>”,而用"gtr"Q其它的也类|
比较q算W一览:
equ - {于
neq - 不等?nbsp;
lss - 于
leq - 于或等?nbsp;
gtr - 大于
geq - 大于或等?nbsp;
@echo off
set /a num1=20
set /a num2=15
if %num1% gtr %num2% echo %num1%大于%num2%
if %num1% EQU %num2% echo %num1%{于%num2%
if %num1% LSS %num2% echo %num1%于%num2%
pause>nul
3、ifl合errorlevel使用Q?
说明Q环境变量errorlevel的初始gؓ0Q当一些命令执行不成功Q就会返回一个数|如:1 Q? {?
IF-ERRORLEVEL
试代码Q?
@ECHO OFF
XCOPY F:\test.bat D:\
IF ERRORLEVEL 1 ECHO 文g拯p|
IF ERRORLEVEL 0 ECHO 成功拯文g
如果文g拯成功Q屏q就会显C?#8220;成功拯文g”Q否则就会显C?#8220;文g拯p|”?
IF ERRORLEVEL 是用来测试它的上一个DOS命o的返回值的Q注意只是上一个命令的q回|而且q回值必M照从大到次序顺序判断?
因此下面的批处理文g是错误的Q?
@ECHO OFF
XCOPY C:\AUTOEXEC.BAT D:\
IF ERRORLEVEL 0 ECHO 成功拯文g
IF ERRORLEVEL 1 ECHO 未找到拷贝文?
IF ERRORLEVEL 2 ECHO 用户通过ctrl-c中止拯操作
IF ERRORLEVEL 3 ECHO 预置错误L文g拯操作
IF ERRORLEVEL 4 ECHO 拯q程中写盘错?
无论拯是否成功Q后面的Q?
未找到拷贝文?
用户通过ctrl-c中止拯操作
预置错误L文g拯操作
拯q程中写盘错?
都将昄出来?
附录Q?
以下是几个常用命o的返回值及其代表的意义Q?
backup
0 备䆾成功
1 未找到备份文?
2 文g׃n冲突L备䆾完成
3 用户用ctrl-c中止备䆾
4 ׃致命的错误备䆾操作中止
diskcomp
0 盘比较相?
1 盘比较不?
2 用户通过ctrl-c中止比较操作
3 ׃致命的错误比较操作中止
4 预置错误中止比较
diskcopy
0 盘拷贝操作成?
1 非致命盘?写错
2 用户通过ctrl-cl束拯操作
3 因致命的处理错误使盘拯中止
4 预置错误L拯操作
format
0 格式化成?
3 用户通过ctrl-c中止格式化处?
4 因致命的处理错误使格式化中止
5 在提C?#8220;proceed with formatQy/nQ?”下用户键入nl束
xcopy
0 成功拯文g
1 未找到拷贝文?
2 用户通过ctrl-c中止拯操作
4 预置错误L文g拯操作
5 拯q程中写盘错?
4、ifq有一个特D的用法是可以用来某个变量是否已l被定义
用法CZQ?
@echo off
set "str1=ok"
set "str2=no"
if defined str1 echo str1已经被定?
if defined str2 echo str2已经被定?
if defined str3 (echo str3已经被定? else echo str3 没有被定?
pause>nul
void a; |
float *p1; int *p2; p1 = p2; |
p1 = (float *)p2; |
void *p1; int *p2; p1 = p2; |
void *p1; int *p2; p2 = p1; |
add ( int a, int b ) { return a + b; } int main(int argc, char* argv[]) { printf ( "2 + 3 = %d", add ( 2, 3) ); } |
int function(void) { return 1; } |
function(2); |
#include "stdio.h" fun() { return 1; } main() { printf("%d",fun(2)); getchar(); } |
void * pvoid; pvoid++; //ANSIQ错?br>pvoid += 1; //ANSIQ错?br>//ANSI标准之所以这栯定,是因为它坚持Q进行算法操作的指针必须是确定知道其指向数据cd大小的?br>//例如Q?br>int *pint; pint++; //ANSIQ正?/td> |
pvoid++; //GNUQ正?br>pvoid += 1; //GNUQ正?/td> |
void * pvoid; (char *)pvoid++; //ANSIQ正;GNUQ正?br>(char *)pvoid += 1; //ANSIQ错误;GNUQ正?/td> |
void * memcpy(void *dest, const void *src, size_t len); void * memset ( void * buffer, int c, size_t num ); |
//CZQmemset接受Lcd指针 int intarray[100]; memset ( intarray, 0, 100*sizeof(int) ); //intarray? //CZQmemcpy接受Lcd指针 int intarray1[100], intarray2[100]; memcpy ( intarray1, intarray2, 100*sizeof(int) ); //intarray2拯lintarray1 |
void a; //错误 function(void a); //错误 |
Type attribute aligned allows you to specify the alignment of a structure, class, union, or enumeration. The syntax and considerations for specifying alignment factor are the same as for variable attribute aligned. Like variable attribute aligned, type attribute aligned can only increase alignment. Type attribute packed is used to decrease alignment.
If the attribute appears immediately after the class, struct, union, or enumeration token or immediately after the closing right curly brace, it applies to the type identifier. It can also be specified on a typedef declaration. In a variable declaration, such as
class A {} a;
the placement of the type attribute can be confusing.
In the following definitions, the attribute applies to A:
struct __attribute__((__aligned__(8))) A {}; struct A {} __attribute__((__aligned__(8))) ; struct __attribute__((__aligned__(8))) A {} a; struct A {} __attribute__((__aligned__(8))) a; typedef struct __attribute__((__aligned__(8))) A {} a; typedef struct A {} __attribute__((__aligned__(8))) a;
In the following definitions, the attribute applies to a:
__attribute__((__aligned__(8))) struct A {} a; struct A {} const __attribute__((__aligned__(8))) a; __attribute__((__aligned__(8))) typedef struct A {} a; typedef __attribute__((__aligned__(8))) struct A {} a; typedef struct A {} const __attribute__((__aligned__(8))) a; typedef struct A {} a __attribute__((__aligned__(8)));