Hello world!

Welcome to WordPress.com. This is your first post. Edit or delete it and start blogging!

Posted in Uncategorized | 1 Comment

本地化测试软件缺陷分类详解

本地化测试发现的软件缺陷特征明显,便于分类。本文按照本地化测试软件缺陷的特征进行分类,详细地分析各种缺陷的表现特征,简要描述各类缺陷的产生原因,最后给出各类缺陷的修正方法。

1. 缺陷类型

概括地讲,软件本地化的缺陷主要分为两大类:核心缺陷和本地化缺陷。两类缺陷的详细分类如下图所示:

各类缺陷对应的英文名称如下表所示:

中文名称 英文名称 说明
本地化缺陷 Localization Bug L10N Bug
核心缺陷 Core Bug  
语言质量缺陷 Linguistic Bug  
用户界面缺陷 UI Bug Cosmetic Bug  
本地化功能缺陷 Localization Functionality Bug  
源语言功能缺陷 Source Functionality Bug  
源语言国际化缺陷 Source Internationalization Bug Source L18N Bug

2. 缺陷表现特征

由于本地化缺陷是本地化测试中出现的数量最多的缺陷,所以首先分析本地化缺陷的表现特征。而本地化测试中发现的核心缺陷虽然数量不多,但是它们的危害程度更大,所以需要认真对待,接下来分析它们的表现特征。

2.1 用户界面缺陷

  • 控件的文字被截断(Truncation)
    • 对话框中的文本框、按钮、列表框、状态栏中的本地化文字只显示一部分
  • 控件或文字没有对齐(Misaligned)
    • 对话框中的同类控件或本地化文字没有对齐
  • 控件位置重叠(Overlapped)
    • 对话框中的控件彼此重叠
  • 多余的文字(Extra strings)
    • 软件程序的窗口或对话框中的出现多余的文字
  • 丢失的文字(Missed strings)
    • 软件程序的窗口或对话框中的文字部分或全部丢失
  • 不一致的控件布局(Inconsistent layout)
    • 本地化软件的控件布局与源语言软件不一致
  • 丢失的文字(Missed strings)
    • 软件程序的窗口或对话框中的文字部分或全部丢失
  • 文字的字体、字号错误(Incorrect font name and font size)
    • 控件的文字显示不美观,不符合本地化语言的正确字体和字号
  • 多余的空格(Extra space)
    • 本地化文字字符之间存在多余的空格

2.2 语言质量缺陷

  • 字符没有本地化(Unlocalized strings)
    • 对话框或软件程序窗口中的应该本地化的文字没有本地化
  • 字符不完整地本地化(Incomplete localized strings)
    • 对话框或软件程序窗口中的应该本地化的文字只有一部分本地化
  • 错误的本地化字符(Error localization)
    • 源语言文字被错误地本地化,或者对政治敏感的文字错误地进行了本地化
  • 不一致的本地化字符(Inconsistent localized string)
    • 相同的文字前后翻译不一致
    • 相同的文字各语言之间不一致
    • 相同的文字软件用户界面与联机帮助文件不一致
  • 过度本地化(Over localization)
    • 不应该本地化的字符进行了本地化
  • 标点符号、版权、商标符号错误(Incorrect punctuation, Copyright)
    • 标点符号、版权和商标的本地化不符合本地化语言的使用习惯

2.3 本地化功能缺陷

本地化功能缺陷是本地化软件中的某些功能不起作用,或者功能错误,与源语言功能不一致。

  • 功能不起作用(Not working)
    • 菜单、对话框的按钮、超链接不起作用
  • 功能错误(Error function)
    • 菜单、对话框的按钮、超链接引起程序崩溃
    • 菜单、对话框的按钮、超链接带来与源语言软件不一致的错误结果
    • 超链接没有链接到本地化的网站或页面
    • 软件的功能不符合本地化用户的使用要求
  • 热键和快捷键错误(Error hot keys and short-cut keys)
    • 菜单或对话框中存在重复的热键
    • 本地化软件中缺少热键或快捷键
    • 不一致的热键或快捷键
    • 快捷键或快捷键无效

2.4 源语言功能缺陷

源语言功能缺陷是在源语言软件和全部本地化软件上都可以复现的错误。

  • 功能不起作用(Not working)
    • 菜单不起作用
    • 对话框的按钮不起作用
    • 超链接不起作用
    • 控件焦点跳转顺序(Tab键)不正确
  • 文字内容错误(Incorrect strings)
    • 软件的名称或者版本编号错误
    • 英文拼写错误、语法错误
    • 英文用词不恰当等

2.5 源语言国际化缺陷

源语言国际化缺陷是在源语言软件设计过程中对软件的本地化能力的处理不足引起的,它只出现在本地化的软件中。

  • 区域设置错误(Error regional setting)
    • 本地化日期格式错误
    • 本地化时间格式错误
    • 本地化数字格式(小数点、千位分隔符)错误
    • 本地化货币单位或格式错误
    • 本地化度量单位错误
    • 本地化纸张大小错误
    • 本地化电话号码和邮政编码错误
  • 双字节字符错误(Error DBCS)
    • 不支持双字节字符的输入
    • 双字节字符显示乱码
    • 不能保存含有双字节字符内容的文件
    • 不能打印双字节字符

3. 缺陷产生原因

核心缺陷是由于源程序软件编码错误引起的,例如开发人员对于某个功能模块的编码错误,或者没有考虑软件的国际化和本地化能力,而将代码设定为某一种语言;
本地化缺陷是由于软件本地化过程引起的,例如语言翻译质量较差、界面控件布局不当、翻译了程序中的变量等。

4. 缺陷修正方法

本地化缺陷是测试中发现的数量最多的Bug,它只出现在本地化的版本上,而不出现在源语言版本上,可以由本地化工程师修改本地化软件相关资源文件解决,例如修改错误的翻译文字、调整控件的大小和位置等。

核心缺陷中的源语言功能缺陷既出现在本地化软件,也可以在源语言软件上复现,而核心缺陷中的源语言国际化缺陷,虽然只出现在本地化版本中,但是只能通过修改程序代码实现,属于源语言软件的设计错误,这类缺陷只能由软件开发人员修正。

Posted in Work | Leave a comment

笑看人生,大话西游

话说唐僧师徒取得真经,打开一看:“苦不苦累不累甜不甜酸不酸Money不Money标点”

悟空看到Money,两眼冒金星!那眼睛怪不得千里眼看的还远!
猪头看到了甜酸,不过不知道后面是什么,抱怨一句说:“还,白跑了那么远的路,就没有吃饱过!”,
武警看到了苦和累,不过心里美美的,表扬不表扬倒无所谓,还好没有被点名,说我拖后腿,知足常乐!

师傅说着,心里想着:“苦?不苦!累?不累!甜不?甜!酸?不?酸!Money这梵文还是不懂,还好有悟空提醒,这个比化斋来的快,不过这Money在哪呢?看来还得去找如来一趟,要账寻宝图!”
 
Posted in life | Leave a comment

漫谈生意In English

You have your business, and I have our business;
You do your business, and I do our business;
You don’t do your business, and I do my own business;
If you don’t want to do your business, and I want to do the business for you;
If you don’t want to do business with me, and I think we have no business in the future;
If you only do your business, and I want invest on you to do your business;
Busy world, busy business and our businesses!
One world, Our business, and One dream and one family.
All in One, not HP’s Printer.
Let’s love to enjoy and feel the victory during this process!
Your, My and our business!!!
Posted in Work | Leave a comment

漫谈忠诚:猪八戒为什么总想离队.

BW中文网讯,《西游记》向来容易被人拿来演绎,各式各样的电影、电视剧、书籍等重新演绎后活灵活现。很多培训师讲课的时候也容易用到西游记的人物,比如DSIC性格分析时,会讲到这个四个人属于不同的四种性格,如何对孙悟空型的员工进行管理,如何对猪八戒型的员工进行管理等等。

西游记带给人们很多思考。细细品味这四个人物,一个念头在脑海中闪现,忽然意识到一个问题:在西游记这个团队中,只有一个人最不忠诚,经常想离队,一遇到困难就想分东西然后各奔东西。对,就是猪八戒。那么,为什么这四个人组成的团队中,只用猪八戒有这种想法,而其他的人没有呢?套用比较时髦的一个词,为什么只有猪八戒“不忠诚”呢?

既然谈到忠诚,就需要考虑什么是忠诚,忠诚有几种。不用学术用语,只用大白话描述的话,忠诚就是死心塌地、心甘情愿地做一件事。如果对一个组织中的人的忠诚进行分类的话,我想应该可以分成“忠诚于事业/职业、忠诚于个人,忠诚于组织/企业”。那么西游记中的人物分别是哪种忠诚呢?

首先是唐僧,他不惧千难万险一心一意去西天取经,然后普度众生。他有着强烈的使命感,这是他生命中唯一的事情。所以对于他来说,去西天取经是他的生命的力量,只要生命不息,就会取经不止。因此,对于唐僧来说,他是忠诚于事业/职业。

然后是孙悟空,西天取经他唯一的任务和工作就是斩妖除魔,保护唐僧去西天取经,对这件事情他义无反顾,而且无怨无悔,即便是每次被师傅误会、念紧箍咒赶他走,他也一再要求留下。但是孙悟空的目的绝对不是去西天取经,而是保护唐僧。因为当年是唐僧把压在五指山下五百年的他救了出来,他是报恩。因此,对于孙悟空来说,他是忠诚于个人。

其次是沙僧,他这一路上任劳任怨,也不要别人记得他,只是默默无闻地挑着行李。对于他来说,有“金蝉子”这样的师傅,有着“齐天大圣”和“天蓬元帅”这样的师兄,大家一起去取经是多么好的一件事情啊,他喜欢这个团队,喜欢师傅的善良与坚韧、喜欢大师兄的本领高超、也喜欢二师兄开朗活泼的性格,在这个团队中本身就是一件让人高兴和值得珍惜的事情。因此,对于沙僧来说,他是忠诚于组织/团队。

最后是猪八戒,虽然最后他也和其他人一起取得真经渡得真身了,但毕竟这一路上只有他在遇到困难的时候相当退缩,在遇到危险的时候想到离开,他的表现最“不忠诚”。

为什么呢?我们看看猪八戒是如何加入团队的,当年猪八戒本来是要迎娶高老庄大小姐的,是唐僧和孙悟空“坏了他的好事”,他是有牵挂的人。而且对于猪八戒来说,平生两大喜好——“好食”、“好色”,取经是件苦差事,让猪八戒加入这个团队本身就是和猪八戒个人志向不一致的。因此,猪八戒不具备忠诚的条件,唯一有的是师徒四人一路走下来留下的深厚感情。还有一点,就是唐僧是一个职业经理人,而且这个职业经理人权利还不大,没有什么可以给他的几个徒弟的,唯一有的是“如来佛祖”和“观世音菩萨”的不明确的对未来的许诺。和唐僧一起干活,但是绩效考评和奖励不归他管,最后的分封都是“如来”说了算。如果他能决定并告诉猪八戒,等到取经成果,他可以享受世间所有供奉,对猪八戒来说或许有一定的吸引力,但“净坛使者”是“佛祖”封的。

猪八戒想离开不仅仅是因为猪八戒自己。如果一个领导者不能给下属愿景和期望的话,下属该怎么办?这也正是现在企业在员工管理上该如何运用战略的问题。

我拿什么忠诚你,我的师傅?

也许这是留给每一个领导者思考的问题。

作者:刘青峰 
文章来源:慧聪网

Posted in life | Leave a comment

用脚本语言来自动化测试本地化软件–转抄

不想多说理论性的东西,一下主要内容是,
1)本地化测试流程,
2)本地化测试中的出现问题:
3)自动化测试解决本地化测试出现的问题:
4)写本地化测试脚本:

本地化测试流程:
1.开发部门(DEV)先英文版本的产品开发出来后,
2.发给翻译部门(T9N)发给资源文件,翻译部门把翻译的资源文件转发给开发部门。
3.开发部门把翻译好的资源文件打包到产品里编译成本地化版本产品后,
4.发给本地化部门(L10N)进行测试产品。
5.本地化部门发现臭虫(issue)按功能部分和翻译部分的问题转发给开发部门和翻译部门的队列(Queue)里去进行修改(fix)相应的Issue.
6.开发部门,翻译部门和本地化测试部门对(i18n)国际化版本软件的协作开发,并最终发布本地化版本产品。

本地化测试中的出现问题:
1.本地化测试人员不懂相应的技术和产品背景,走不出相应的测试案例(TestCase).
2.测试人员不懂所测试的语言(ENU,JPN,DEU,FRA,ITA,ESN,KOR,CHS,CHT,PTB).
.
自动化测试解决本地化测试出现的问题:
1-1.培训和已做好的自动化测试工具回放等方法来,理解所测试的产品。
2-1.本地化测试人员用双屏幕对照和截屏并相应语言的专家来确认(review)是否正确方法来解决不同测试语言的问题。
2-2.自动化测试软件来截屏并传送给相应的语言专家发现(review)语言上错误的和没有翻译的问题。

写本地化测试脚本:
自动化测试本地化软件当中,现今流行的winrunner/silktest测试软件等对本地化支持的不太完善。
也价格也昂贵,一般选择免费测试软件相对功能弱。
一般比较常用的免费测试脚本语言有,perl, tcl/expect, python, lua, autoit, shell等等。

本地化测试脚本写的当中最好脚本的数据分开的方法来达到一个测试脚本和本地化测试数据结合来处理自动化测试。
详细的内容请链接一下地址去看我写的PPT文件,哪里还有用shell写的iYAF(i18n Yarage Automation Framework)构架写的源代码共大家参考。
Posted in Work | Leave a comment

自动化测试工具举例。

 自动化测试工具可以减少测试工作量,提高测试工作效率,但首先是能够选择一个合适的且满足企业信息系统工程环境的自动化测试工具,因为不同的测试工具,其面向的测试对象是不一样的。按照测试工具的主要用途和应用领域,可以将自动化测试工具分为以下几类:
功能测试
1、360WebTester 是一款Web功能测试和回归测试工具,以ruby作为脚本语言,可以作为watir IDE,简单易用,学习成本低,中文文档丰富,拥有强大的web对象查看器。可以通过自动录制、检测和回放用户的应用操作,也可以编写测试脚本实现复杂的测试逻辑。
2、WinRunner 企业级的功能测试工具,用于检测应用程序是否能够达到预期的功能及正常运行,自动执行重复任务并优化测试工作,从而缩短测试时间。通过自动录制、检测和回放用户的应用操作,从而提高测试效率。 
3、QARun 一款自动回归测试工具,与Winrunner比较学习成本要低很多。不过要安装QARun必须安装.net环境,另外它还提供与TestTrack Pro的集成。 
4、Rational Robot 属于Rational TestSuite中的一员,对于Visual studio 6编写的程序支持的非常好,同时还支持Java Applet、HTML、Oracle Forms、People Tools应用程序的支持。要支持Delphi程序的测试还必须下载插件。Rational Robot的语法使用Basic语法,它的语言使用SQABasic。 
5、Functional Tester 它是Robot的Java实现版本,在Rational被IBM收购后发布的。在Java的浪潮下,Robot被移植到了Eclipse平台,并完全支持Java和.net。可以使用VB.net和Java进行脚本的编写,当然了录下脚本让后做做修改是最爽的事情了。由于支持Java,那么对测试脚本进行测试也变成了可能。更多的信息请到IBM developerworks上查看,另外还提供试用版本下载。
6、AutoIT 这是一个使用类似BASIC脚本语言的免费软件,它设计用于Windows GUI(图形用户界面)中进行自动化操作.它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动化任务.而这是其它语言不可能做到或无可靠方法实现的(例如VBScript和SendKeys)。
7、TestComplete 是AutomatedQA公司开发的一套支持自动测试软件的工具,为Windows、.NET、Java和Web应用程序提供了一个特性全面的自动测试环境。将开发人员和QA部门人员从繁琐耗时的人工测试中解脱出来, TestComplete测试具有系统化、自动化和结构化特性,支持.NET,Java,Visual C++, Visual Basic, Delphi, C++Builder 和web应用程序。
8、Selenium  基于Web的开源的功能测试工具,有三种方式或者工具:Selenium IDE,Selenium Core 和 Selenium Remote Control; Selenium IDE ,一个FireFox plugin,能自动记录用户的操作,生成测试脚本。生成的测试脚本可以用Selenium Core手工执行,也能基于Selenium RC放入Java,C#,Ruby的单元测试用例中自动运行。
——————————————————————————–
负载压力测试:
1、LoadRunner 特点a,支持的协议多且个别协议支持的版本比较高;特点b,负载压力测试方案设置灵活;特点c,丰富的资源监控;特点d,报告可以导出到Word、Excel以及HTML格式。 
2、QALoad (1).测试接口多;(2)可预测系统性能;(3)通过重复测试寻找瓶颈问题;(4)从控制中心管理全局负载测试;(5)可验证应用的扩展性;(6)快速创建仿真的负载测试;(7)性能价格比较高。此外,QALoad不单单测试Web应用,还可以测试一些后台的东西,比如SQL Server等。只要它支持的协议,都可以测试。 
3、Benchmark Factory 首先它可以测试服务器群集的性能;其次,可以实施基准测试;最后,可以生成高级脚本。 
4、SilkPerformance 是业界最先进的企业级负载测试工具。它能够模拟成千上万的用户在多协议和多种计算环境下工作。SilkPerformerV可以让你在使用前,就能够预测企业电子商务环境的行为—不受电子商务应用规模和复杂性影响。可视化的用户化、负载条件下可视化的内容校验、实时的性能监视和强大的管理报告可以帮助您迅速将问题隔离,这样,通过最小化测试周期、优化性能以及确保可伸缩性,加快了投入市场的时间,并保证了系统的可靠性。
5、E-Test Suite 由Empirix公司开发的测试软件,能够和被测试应用软件无缝结合的Web应用测试工具。工具包含e-Tester、e-Load和e-Monitor,这三种工具分别对应功能测试、压力测试以及应用监控,每一部分功能相互独立,测试过程又可彼此协同。 
6、JMeter 是一个专门为运行和服务器负载测试而设计、100%的纯Java桌面运行程序。原先它是为Web/HTTP测试而设计的,但是它已经扩展以支持各种各样的测试模块。它和HTTP和SQL(使用JDBC)的模块一起运行。它可以用来测试静止或活动资料库中的服务器运行情况,可以用来模拟服务器或网络系统在重负载下的运行情况。它也提供了一个可替换的界面用来定制数据显示,测试同步及测试的创建和执行。 
7、WAS 是MicroSoft提供的免费的Web负载压力测试工具,应用广泛。WAS可以通过一台或者多台客户机模拟大量用户的活动。WAS支持身份验证、加密和Cookies,也能够模拟各种浏览器和Modem速度,它的功能和性能可以与数万美元的产品媲美。 
8、ACT 或称MSACT,它是微软的Visual Studio和Visual Studio.net带的一套进行程序压力测试的工具。ACT不但可以记录程序运行的详细数据参数,用图表显示程序运行情况,而且安装和使用都比较简单,结果阅读叶很方便,是一套较理想的测试工具。 
9、OpenSTA 它的全称是Open System Testing Architecture。OpenST的特点是可以模拟很多用户来访问需要测试的网站,它是一个功能强大、自定义设置功能完备的软件。但是,这些设置大部分需要通过Script来完成,因此在真正使用这个软件之前,必须学习好它的Script编写。如果需要完成很复杂的功能,Script的要求还比较高。当然这也是它的优点,一些程序员不会在意编写Script的。 
10、PureLoad 一个完全基于Java的测试工具,它的Script代码完全使用XML。所以,编写Script很简单。它的测试包含文字和图形并可以输出为HTML文件。由于是基于Java的软件,因此PureLoad可以通过Java Beans API来增强软件功能。
——————————————————————————–
白盒测试
1、Logiscope 
2、PRQA 
3、Junit 
4、DevPartner 
5、Rational Purify 
——————————————————————————–
测试管理
1、TestDirector/Quality Center MI的测试管理工具,可以与winrunner、Loadrunner、QuickTestPro进行集成。除了可以跟踪Bug外,还可以编写测试用例、管理测试进度等等,是测试管理的首选软件。 
2、TestManager Rational Testsuite中的一员,可以用来编写测试用例、生成Datapool、生成报表、管理缺陷以及日志等等。是一个企业级的强大测试管理工具。缺点是必须和其它组件一起使用,测试成本比较高。 
3、TrackRecord 一款擅长于Bug管理的工具,与TestDirecotr和Testmanager比较起来是很light的。不过至今还没有配成功过。:( 
4、Bugzilla 一个产品缺陷的记录及跟踪工具,它能够为你建立一个完善的Bug跟踪体系,包括报告、查询并产生报表、处理解决等几个部分。它的主要特点为:基于Web方式,安装简单;有利于缺陷的清楚传达;系统灵活,可配置性很强;自动发送Email。 
5、Jira 是一个Bug管理工具,自带一个Tomcat 4;同时有简单的工作流编辑,可用来定制流程;数据存储在HSQL数据引擎中,因此只要安装了JDK这个工具就可以使用。相比较Bugzilla来说有不少自身的特点,不过可惜它并不是开源工具,有Lisence限制。
6、TFS (Team Foundation Server )是一个工作流协作的引擎,它允许一个团队使用他们自定义的流程,并使用在项目历史中实时收集起来的一个集中的数据仓库。Team Foundation Server 和 Visual STuDIo Team System 中其它的部分一起,组成了软件开发过程中的核心部分。
 
——————————————————————————–
测试辅助
1、SmartDraw 用于绘制UCML,进行负载压力测试需求分析。对压力测试测试前的工作很有帮助。 
2、SDemo 可以将操作录成EXE文件,并回放出来。这样就避免了那些偶尔才出现的Bug。
 
Posted in Work | Leave a comment

Python 简单介绍

什么是Python,这个问题如果由我来回答,我真不能说很清楚,因为我学习Py
thon的时间还不长。但是为了向大家宣传这门我认为先进的编程语言,我参考了一些资
料,向大家讲述一下我理解的Python是什么。
Python的历史
Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为
了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC语言的一种继承。之所
以选中Python(大蟒蛇的意思)作为程序的名字,是因为他是一个Monty 大蟒蛇飞行马
戏团的爱好者。
ABC是由Guido参加设计的一种教学语言(没听说过)。就Guido本人看来,ABC这种
语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原
因,Guido认为是非开放造成的。Guido决心在Python中避免这一错误(的确如此,Pyth
on与其它的语言如C,C++和Java结合的非常好)。同时,他还想实现在ABC中闪现过但未
曾实现的东西。
就这样,Python在Guido手中诞生了(真要感谢他)。实际上,第一个实现是在Mac
机上。可以说,Python是从ABC发展起来,主要受到了Modula-3(另一种相当优美且强大
的语言,为小型团体所设计的)的影响。并且结合了Unix Shell和C的习惯。

Python的特点
Python是一种脚本语言,它的语法表达优美易读。它具有很多优秀的脚本语言的特
点:解释的,面向对象的,内建的高级数据结构,支持模块和包,支持多种平台,可扩
展。而且它还支持交互式方式运行,图形方式运行。它的语法有很多与众不同的特性。
下面我分别说明一下:
运行方式
Python可以以命令行方式运行,也可以交互式方式运行,还具有图形集成环境,这样开
发Python就相当方便。现在已经出现了许多用Python编写的可视化编程软件,用于实现
象Delphi一样的功能。
面向对象
Python是一个真正的面向对象语言。它甚至支持异常的处理。如果学过Java,应该对这
个不陌生。但其它的脚本语言,如PHP,好象就没有。这使得程序的编写更加清晰,而不
需要许多的错误检查了。
模块和包
这一点更象是Java。对于Java的支持,大家可以了解JPython。JPython是用Java写的Py
thon,它完全支持Java,在这个环境下使用Python可以随意地使用Java的库。
语言扩展
可以用C、C++或Java为Python编写新的新言模块,如函数。或者与Python直接编译在一
起,或者采用动态库装入方式实现。也专门有人编写了一个工具,可以实现为Python自
动实现函数接口封装,这就是SWIG(Simplified
Wrapper and Interface Generator),或称做简单封装和接口生成器(可以在 http://w
ww.cs.utah.edu/~beazley/SWIG自由获得)。
有趣的语法
Guido认为Python的语法是非常优美的。其中一点就是,块语句的表示不是C语言常用的
{}对,或其它符号对,而是采用缩近表示法!有趣吧。就这一点来说,Guido的解释是:
首先,使用缩近表示法减少了视觉上的混乱,并且使程序变短,这样就减少了需要对基
本代码单元注意的范围;其次,它减少了程序员的自由度,更有利于统一风格,使得阅
读别人的程序更容易。感觉还是不错的,就C语言来说,在if语句后面大括号的写法就好
几种,不同的人喜欢不同的样子,还不如统一起来,都不会看得别扭。
在每个类或函数的定义后面,第一行可以是说明语句,根本不需要注释符标记。对于后
面跟块语句的语句,后面应跟上一个冒号(。一行语句不能太长,因为没有行结束符,
如果超长则要使用续行符(\\)。还有一些有趣的比如说,象下面的一个比较处理,用C语
言为:
if (2<a && a<5)
用Python可以表示为
if (2<a<5) :
当然不一定会有什么好处,但是它所宣称的优美的语言毕竟不是虚的。其它的大家可以
通过学习自行了解。
Python可以做什么?
那么Python可以做什么呢?我感觉,什么都可以。如果在Windows下,如果想做一个
图形界面程序,那么Python可以胜任。可以去wxPython.org看一下,它是一个Python的
扩展库,可以用来实现跨平台的图形编程,它支持windows和unix/linux。在那个网站上
有一些演示,可以学习一下。Python可以做CGI。有些主页提供了对Python的CGI支持。
现在还有一些用Python做的游戏。如果想了解更多的Python可以做什么,可以去Source
Forge上查找有关Python的项目,上面有很多东西。
结束
在中国Python还处于起步,学习研究它的人很少,希望感兴趣的同志加入这一行列。
 
Posted in Work | Leave a comment

算法题

1 打印如下形式的矩阵; 

n=5: 
1 2 9 10 25 
4 3 8 11 24 
5 6 7 12 23 
16 15 14 13 22 
17 18 19 20 21 

n=6: 
1 2 9 10 25 26 
4 3 8 11 24 27 
5 6 7 12 23 28 
16 15 14 13 22 29 
17 18 19 20 21 30 
36 35 34 33 32 31 


刚开始想往螺旋队列以及奇幻矩阵上靠,结果发现此路不通,那就自己分析了哦!! 
1 2 9 10 25 
3 8 11 24 
7 12 23 
13 22 
21 
这不就是规律,1 = 1*1+1-1 
2 = (2-1)*(2-1)+1; 
9 = 3*3+1-1 
10 = (4-1)*(4-1)+1; 
25 = 5*5+1-1 
好了我是懒人自己去分析了,思路如此 
j>=i的时候: 
j为偶数 (j-1)*(j-1)+i; 
j为奇数 j*j+1-i; 

j
发现时关于行有规律了 
i为偶数 i*i+1-j; 
i为奇数 (i-1)*(i-1)+j; 

程序: 


#include 
#include 

void printMatrix(int N) 
{ 
int i =1; 
int j = 1; 

for(;i<=N;++i) 
{ 
for(j=1;j<=N;++j) 
{ 
if(i<=j) 
{ 
if(j%2) 
printf("%d\t",(j-1)*(j-1)+2*j-i); 
else 
printf("%d\t",(j-1)*(j-1)+i); 
} 
else 
{ 
if(i%2) 
printf("%d\t",(i-1)*(i-1)+j); 
else 
printf("%d\t",(i-1)*(i-1)+2*i-j); 
} 
} 
printf("\n"); 
} 
} 

int main(int argc, char *argv[]) 
{ 
printMatrix(5); 
system("PAUSE"); 
return 0; 
} 





2. 表达式求值,一个字符串只由’+’,’-‘,和‘0’-‘9’组成,并且’+’,’-‘只作为二元 
运算符。 
bool calculate(const char* exp, int &result); 

这题同样也没什么难点,递归,可是这个返回值为bool好像出题者的意思是不想你用递归,ok你让我用,我也不会用,用动态规划正中下怀 

直接上程序了: 



#include 
#include 

void calculate(char* exp, int* result) 
{ 
int i = 0; 
int flag =1; 
int flag_tmp; 
int sum =0; 

while(1) 
{ 
// printf("exp[%d] is %c\n", i, exp[i]); 

if(exp[i]==’-‘||exp[i]==’+’) 
{ 
if(exp[i]==’-‘) 
flag_tmp=0; 
else 
flag_tmp=1; 

//printf("%c\n", exp[i]); 

exp[i]=”; 
printf("exp is %s\n", exp); 
sum = atoi(exp); 
printf("sum is %d\n", sum); 

if(flag==1) 
*result += sum; 
else 
*result -= sum; 


flag = flag_tmp; 

exp+=i+1; 
printf("%c\n", *exp); 
i=0; 
} 
else if(exp[i]==”) 
{ 
sum = atoi(exp); 
if(flag==1) 
*result += sum; 
else 
*result -= sum; 

break; 
} 
else 
i++; 
} 

} 

int main(int argc, char *argv[]) 
{ 
char str[] = "1+2-3+5+8-9-12+100"; 
int ret = 0; 

printf("%s = ", str); 
calculate(str, &ret); 
printf("%d\n", ret); 

system("PAUSE"); 
return 0; 
} 



1: 
36匹马赛跑,跑道同时只能容许6匹马。而且36匹马速度不同,但是每次跑的速度恒定。 
问,跑多少次可以选出第一,第二,第三名 



哈哈,你自己先想想!!!这种题目,你的第一反映的答案肯定是错误的,告诉你把答案就是6次,记录下每匹马跑的时间嘛,空间换时间 



2. 

给定一个字串X,求它最长字串S,使得S=SR,SR为S的反序,即如果S=abc,则SR=cba 
例子:X=abccba,则输出S=abc 
回文了… 

可以用 

解法一: 

kmp的next数组解法 

解法二: 

动态规划的从中往两边走 

解法三: 

后缀数组 

abccba&abccba的最长公共前缀 

三种解法我blog里程序都有,今天我自己写的是解法二,今天比较钟情动态规划 



#include 
#include 

void max_huiwen(char* str, int* index, int* max) 
{ 
int len = strlen(str); 
int start = 0; 
int end = 0; 
int left; 
int right; 

while(start
{ 
end = start; 
while(end
end++; 

left = start; 
right = end; 
while(left-1>=0&&right+1<len&&STR[LEFT-1]==STR[RIGHT+1]) style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px">
{ 
left–; 
right++; 
} 
if(right-left+1>*max) 
{ 
*max = right-left+1; 
*index = left; 
} 
start=end+1; 
} 
} 

int main(int argc, char *argv[]) 
{ 
char* str = "ababcddcbaaa"; 
//char str[]="aabcxdefggfedycbaa"; 

int index = 0; 
int max = 0; 

printf("%s\n", str); 

max_huiwen(str, &index, &max); 

printf("index:%d, len:%d\n", index, max); 
system("PAUSE"); 
return 0; 
} 
</LEN&&STR[LEFT-1]==STR[RIGHT+1])>
Posted in Work | Leave a comment

Windows frequent command and apps

1.常用Windows命令
winver———检查windows版本
wmimgmt.msc—-打开windows管理体系结构(wmi)
wupdmgr——–windows更新程序
wscript——–windows脚本宿主设置
write———-写字板
winmsd———系统信息
wiaacmgr——-扫描仪和照相机向导
winchat——–xp自带局域网聊天
mem.exe——–显示内存使用情况
msconfig.exe—系统配置实用程序
mplayer2——-简易widnows media player
mspaint——–画图板
mstsc———-远程桌面连接
mplayer2——-媒体播放机
magnify——–放大镜实用程序
mmc————打开控制台
mobsync——–同步命令
dxdiag———检查directx信息
drwtsn32—— 系统医生
devmgmt.msc— 设备管理器
dfrg.msc——-磁盘碎片整理程序
diskmgmt.msc—磁盘管理实用程序
dcomcnfg——-打开系统组件服务
ddeshare——-打开dde共享设置
dvdplay——–dvd播放器
net stop messenger—–停止信使服务
net start messenger—-开始信使服务
notepad——–打开记事本
nslookup——-网络管理的工具向导
ntbackup——-系统备份和还原
narrator——-屏幕“讲述人”
ntmsmgr.msc—-移动存储管理器
ntmsoprq.msc—移动存储管理员操作请求
netstat -an—-(tc)命令检查接口
syncapp——–创建一个公文包
sysedit——–系统配置编辑器
sigverif——-文件签名验证程序
sndrec32——-录音机
shrpubw——–创建共享文件夹
secpol.msc—–本地安全策略
syskey———系统加密,一旦加密就不能解开,保护windows xp系统的双重密码
services.msc—本地服务设置
sndvol32——-音量控制程序
sfc.exe——–系统文件检查器
sfc /scannow—windows文件保护
tsshutdn——-60秒倒计时关机命令
tourstart——xp简介(安装完成后出现的漫游xp程序)
taskmgr——–任务管理器
eventvwr——-事件查看器
eudcedit——-造字程序
explorer——-打开资源管理器
packager——-对象包装程序
perfmon.msc—-计算机性能监测程序
progman——–程序管理器
regedit.exe—-注册表
rsop.msc——-组策略结果集
regedt32——-注册表编辑器
rononce -p —-15秒关机
regsvr32 /u *.dll—-停止dll文件运行
regsvr32 /u zipfldr.dll——取消zip支持
cmd.exe——–cmd命令提示符
chkdsk.exe—–chkdsk磁盘检查
certmgr.msc—-证书管理实用程序
calc———–启动计算器
charmap——–启动字符映射表
cliconfg——-sql server 客户端网络实用程序
clipbrd——–剪贴板查看器
conf———–启动netmeeting
compmgmt.msc—计算机管理
cleanmgr——-垃圾整理
ciadv.msc——索引服务程序
osk————打开屏幕键盘
odbcad32——-odbc数据源管理器
oobe/msoobe /a—-检查xp是否激活
lusrmgr.msc—-本机用户和组
logoff———注销命令
iexpress——-木马捆绑工具,系统自带
nslookup——-ip地址侦测器
fsmgmt.msc—–共享文件夹管理器
utilman——–辅助工具管理器
gpedit.msc—–组策略
2.其他更多Windows命令
accwiz.exe > Accessibility Wizard for walking you through setting up your machine for your mobility needs. 辅助工具向导
acsetups.exe > ACS setup DCOM server executable
actmovie.exe > Direct Show setup tool 直接显示安装工具
append.exe > Allows programs to open data in specified directories as if they were in the current directory. 允许程序打开制定目录中的数据
arp.exe > NETWORK Display and modify IP – Hardware addresses 显示和更改计算机的IP与硬件物理地址的对应列表
at.exe > AT is a scheduling utility also included with UNIX 计划运行任务
atmadm.exe > Displays statistics for ATM call manager. ATM调用管理器统计
attrib.exe > Display and modify attributes for files and folders 显示和更改文件和文件夹属性
autochk.exe > Used to check and repair Windows File Systems 检测修复文件系统
autoconv.exe > Automates the file system conversion during reboots 在启动过程中自动转化系统
autofmt.exe > Automates the file format process during reboots 在启动过程中格式化进程
autolfn.exe > Used for formatting long file names 使用长文件名格式
bootok.exe > Boot acceptance application for registry
bootvrfy.exe > Bootvrfy.exe, a program included in Windows 2000
that notifies the system that startup was successful. Bootvrfy.exe can
be run on a local or remote computer. 通报启动成功
cacls.exe > Displays or modifies access control lists (ACLs) of files. 显示和编辑ACL
calc.exe > Windows Calculators 计算器
cdplayer.exe > Windows CD Player CD播放器
change.exe > Change { User | Port | Logon } 与终端服务器相关的查询
charmap.exe > Character Map 字符映射表
chglogon.exe > Same as using "Change Logon" 启动或停用会话记录
chgport.exe > Same as using "Change Port" 改变端口(终端服务)
chgusr.exe > Same as using "Change User" 改变用户(终端服务)
chkdsk.exe > Check the hard disk for errors similar to Scandisk 3 Stages must specify a Drive Letter 磁盘检测程序
chkntfs.exe > Same as using chkdsk but for NTFS NTFS磁盘检测程序
cidaemon.exe > Component of Ci Filer Service 组成Ci文档服务
cipher.exe > Displays or alters the encryption of directories [files] on NTFS partitions. 在NTFS上显示或改变加密的文件或目录
cisvc.exe > Content Index — It’s the content indexing service for I 索引内容
ckcnv.exe > Cookie Convertor 变换Cookie
cleanmgr.exe > Disk Cleanup, popular with Windows 98 磁盘清理
cliconfg.exe > SQL Server Client Network Utility SQL客户网络工具
clipbrd.exe > Clipboard viewer for Local will allow you to connect to other clipboards 剪贴簿查看器
clipsrv.exe > Start the clipboard Server 运行Clipboard服务
clspack.exe > CLSPACK used to create a file listing of system packages 建立系统文件列表清单
cluster.exe > Display a cluster in a domain 显示域的集群
_cmd_.exe > Famous command prompt 没什么好说的!
cmdl32.exe > Connection Manager Auto-Download 自动下载连接管理
cmmgr32.exe > Connection Manager 连接管理器
cmmon32.exe > Connection Manager Monitor 连接管理器监视
cmstp.exe > Connection Manager Profile Manager 连接管理器配置文件安装程序
comclust.exe > about cluster server 集群
comp.exe > ComClust Add, Remove, or Join a cluster. 比较两个文件和文件集的内容*
compact.exe > Displays or alters the compression of files on NTFS partitions. 显示或改变NTFS分区上文件的压缩状态
conime.exe > Console IME IME控制台
control.exe > Starts the control panel 控制面板
convert.exe > Convert File System to NTFS 转换文件系统到NTFS
convlog.exe > Converts MS IIS log files 转换IIS日志文件格式到NCSA格式
cprofile.exe > Copy profiles 转换显示模式
cscript.exe > MS Windows Scripts Host Version 5.1 较本宿主版本
csrss.exe > Client Server Runtime Process 客户服务器Runtime进程
csvde.exe > Comma Separated Variable Import/Export Utility 日至格式转换程序
dbgtrace.exe > 和Terminal Server相关
dcomcnfg.exe > Display the current DCOM configuration. DCOM配置属性
dcphelp.exe > ?
dcpromo.exe > Promote a domain controller to ADSI AD安装向导
ddeshare.exe > Display DDE shares on local or remote computer DDE共享
ddmprxy.exe >
debug.exe > Runs Debug, a program testing and editing tool. 就是DEBUG啦!
dfrgfat.exe > Defrag FAT file system FAT分区磁盘碎片整理程序
dfrgntfs.exe > Defrag NTFS file system NTFS分区磁盘碎片整理程序
dfs_cmd_.exe > configures a Dfs tree 配置一个DFS树
dfsinit.exe > Distributed File System Initialization 分布式文件系统初始化
dfssvc.exe > Distributed File System Server 分布式文件系统服务器
diantz.exe > MS Cabinet Maker 制作CAB文件
diskperf.exe > Starts physical Disk Performance counters 磁盘性能计数器
dllhost.exe > dllhost is used on all versions of Windows 2000.
dllhost is the hedost process for all COM+ applications. 所有COM+应用软件的主进程
dllhst3g.exe >
dmadmin.exe > Disk Manager Service 磁盘管理服务
dmremote.exe > Part of disk management 磁盘管理服务的一部分
dns.exe > DNS Applications DNS
doskey.exe > recalls Windows command lines and creates macros 命令行创建宏
dosx.exe > DOS Extender DOS扩展
dplaysvr.exe > Direct Play Helper 直接运行帮助
drwatson.exe > Dr Watson for 2000 Fault Detector 华生医生错误检测
drwtsn32.exe > Dr Watson for 2000 viewer and configuration manager 华生医生显示和配置管理
dtcsetup.exe > Installs MDTC
dvdplay.exe > Windows 2000 DVD player DVD播放
dxdiag.exe > Direct-X Diagnostics Direct-X诊断工具
edlin.exe > line-oriented text editor. 命令行的文本编辑器(历史悠久啊!)
esentutl.exe > MS Database Utility MS数据库工具
eudcedit.exe > Private character editor Ture Type造字程序
eventvwr.exe > Windows 2000 Event Viewer 事件查看器
evnt_cmd_.exe > Event to trap translator; Configuration tool
evntwin.exe > Event to trap translator setup
exe2bin.exe > Converts EXE to binary format 转换EXE文件到二进制
expand.exe > Expand Files that have been compressed 解压缩
extrac32.exe > CAB File extraction utility 解CAB工具
fastopen.exe > Fastopen tracks the location of files on a hard
disk and stores the information in memory for fast access.
快速访问在内存中的硬盘文件
faxcover.exe > Fax Cover page editor 传真封面编辑
faxqueue.exe > Display Fax Queue 显示传真队列
faxsend.exe > Fax Wizard for sending faxes 发送传真向导
faxsvc.exe > Starts fax server 启动传真服务
fc.exe > Compares two files or sets of files and their differences 比较两个文件的不同
find.exe > Searches for a text string in file or files 查找文件中的文本行
findstr.exe > Searches for strings in files 查找文件中的行
finger.exe > Fingers a user and displays statistics on that user Finger一个用户并显示出统计结果
fixmapi.exe > Fix mapi files 修复MAPI文件
flattemp.exe > Enable or disable temporally directories 允许或者禁用临时文件目录
fontview.exe > Display fonts in a font file 显示字体文件中的字体
forcedos.exe > Forces a file to start in dos mode. 强制文件在DOS模式下运行
freecell.exe > Popular Windows Game 空当接龙
ftp.exe > File Transfer Protocol used to transfer files over a network connection 就是FTP了
gdi.exe > Graphic Device Interface 图形界面驱动
grovel.exe >
grpconv.exe > Program Manager Group Convertor 转换程序管理员组
help.exe > displays help for Windows 2000 commands 显示帮助
hostname.exe > Display hostname for machine. 显示机器的Hostname
ie4uinit.exe > IE5 User Install tool IE5用户安装工具
ieshwiz.exe > Customize folder wizard 自定义文件夹向导
iexpress.exe > Create and setup packages for install 穿件安装包
iisreset.exe > Restart IIS Admin Service 重启IIS服务
internat.exe > Keyboard Language Indicator Applet 键盘语言指示器
ipconfig.exe > Windows 2000 IP configuration. 察看IP配置
ipsecmon.exe > IP Security Monitor IP安全监视器
ipxroute.exe > IPX Routing and Source Routing Control Program IPX路由和源路由控制程序
irftp.exe > Setup FTP for wireless communication 无线连接
ismserv.exe > Intersite messaging Service 安装或者删除Service Control Manager中的服务
jdbgmgr.exe > Microsoft debugger for java 4 Java4的调试器
jetconv.exe > Convert a Jet Engine Database 转换Jet Engine数据库
jetpack.exe > Compact Jet Database. 压缩Jet数据库
jview.exe > Command-line loader for Java Java的命令行装载者
krnl386.exe > Core Component for Windows 2000 2000的核心组件
label.exe > Change label for drives 改变驱动器的卷标
lcwiz.exe > License Compliance Wizard for local or remote systems. 许可证符合向导
ldifde.exe > LDIF cmd line manager LDIF目录交换命令行管理
licmgr.exe > Terminal Server License Manager 终端服务许可协议管理
lights.exe > display connection status lights 显示连接状况
llsmgr.exe > Windows 2000 License Manager 2000许可协议管理
llssrv.exe > Start the license Server 启动许可协议服务器
lnkstub.exe >
locator.exe > RPC Locator 远程定位
lodctr.exe > Load perfmon counters 调用性能计数
logoff.exe > Log current user off. 注销用户
lpq.exe > Displays status of a remote LPD queue 显示远端的LPD打印队列的状态,显示被送到基于Unix的服务器的打印任务
lpr.exe > Send a print job to a network printer. 重定向打印任务到网络中的打印机。通常用于Unix客户打印机将打印任务发送给连接了打印设备的NT的打印机服务器。
lsass.exe > LSA Executable and Server DLL 运行LSA和Server的DLL
lserver.exe > Specifies the new DNS domain for the default server 指定默认Server新的DNS域
macfile.exe > Used for managing MACFILES 管理MACFILES
magnify.exe > Used to magnify the current screen 放大镜
makecab.exe > MS Cabinet Maker 制作CAB文件
mdm.exe > Machine Debug Manager 机器调试管理
mem.exe > Display current Memory stats 显示内存状态
migpwd.exe > Migrate passwords. 迁移密码
mmc.exe > Microsoft Management Console 控制台
mnmsrvc.exe > Netmeeting Remote Desktop Sharing NetMeeting远程桌面共享
mobsync.exe > Manage Synchronization. 同步目录管理器
Posted in Computers and Internet | Leave a comment