谈到快速开发,我发现,要想让传统的软件开发手段和快速的开发取得成功,其实都需要高度仰仗于熟练的开发人员。这也就难怪人们将寻找的重点放在那些最棒的开发人员身上,因为,具有同样经验的开发人员完成的工作也会有很大的差别。 很多开发仍然按照所谓的“英雄模式”,也就是软件的诞生是由一位开发人员或者一个小组来完成的。显而易见,拥有优秀的开发人员是非常重要的,但问题是,你从哪里获得他们? 根据我多年的招聘经验,我可以肯定地说,最好的开发人员是存在的,但找到他们是一个困难的过程,甚至你阅读完1千份简历,你才可能发现一两名最好的人才。 所以说,为你的工程找到最有才能的开发者的最好方法应该是去...
偶然在网上看到这样一个故事:John和Bill一起到山中探险,忽然他们发现一只老虎正深情的望着他们,John撒腿就要跑,Bill却迅速的从背包里拿出一双跑鞋穿在脚上,John看到后气急败坏的对说Bill“你穿什么鞋也跑不过老虎的”Bill同情的看了他一眼,回答说“我干吗要和老虎比,我只要跑过你就够了。” 大笑以后不免想起John的境遇是不是有点象中国的程序员呢?我个人习惯把软件从业人员分为初级程序员、高级程序员、系统分析员和项目经理四大类的方法,我把优秀程序员的标准分为职业习惯和个人能力两方面,职业习惯包括文档编写习惯,规范化、标准化的编码习惯、软件测试习惯、模块化开发习惯等,...
假设银行一年整存零取的月息为0.63%。现在某人手中有一笔钱,他打算在今后的五年中的年底取出1000元,到第五年时刚好取完,请算出他存钱时应存入多少。
*问题分析与算法设计分析存钱和取钱的过程,可以采用倒推的方法。若第五年年底连本带息要取1000元,则要先求出第五年年初银行存款的钱数:第五年初存款=1000/(1+12*0.0063)依次类推可以求出第四年、第三年......的年初银行存款的钱数:第四年年初存款=(第五年年初存款+1000)/(1+12*0.0063)第三年年初存款=(第四年年初存款+1000)/(1+12*0.0063)第二年年初存款=(第三年年初存款+1000)/(...
一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同; 丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索求出车号。
*问题分析与算法设计按照题目的要求造出一个前两位数相同、后两位数相同且相互间又不同的整数,然后判断该整数是否是另一个整数的平方。
*程序说明与注释#include<stdio.h>#include<math.h>int main(){int i,j,k,c;for(i=1;i<=9;i++) /*i:车号前二位的取值*/for(j=0;...
中国有句俗语叫“三天打鱼两天晒网”。某人从1990年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。
*问题分析与算法设计根据题意可以将解题过程分为三步:1)计算从1990年1月1日开始至指定日期共有多少天;2)由于“打鱼”和“晒网”的周期为5天,所以将计算出的天数用5去除;3)根据余数判断他是在“打鱼”还是在“晒网”;若 余数为1,2,3,则他是在“打鱼”否则 是在“晒网”在这三步中,关键是第一步。求从1990年1月1日至指定日期有多少天,要判断经历年份中是否有闰年,二月为29天,平年为28天。闰年的方法可以用伪语句描述如下:如果 ((年能被4除尽...
燃烧祝愿各位好朋友:
中秋快乐! 事业有成!
o(∩_∩)o...
在海外有很多中国人在从事程序员这个职业。我认识很多这样的朋友,发现许多人并不快乐,只是将这个工作当成养家糊口的工具。还有许多人工作努力而不能入门。我曾经在很长一段时间内也有过困惑,但最后终于走了出来。在这里谈谈自己的看法,希望对大家有一些启发。 俗话说“兴趣是最好的老师”。这话很有道理,但运用在事业上往往并不是这么一回事。在学生时代你可以追随兴趣天马行空,为未来作各种各样的设想。坚韧不拔而又有些运气的在后学生时代仍可在预设的道路上跋涉前进,甚至一帆风顺。而绝大多数同仁们则在生活所伏下的各种小圈套中纷纷落马,有的痛苦挣扎,有的怨天尤人,还有的则既来之,则安之,以失败者的心态接受生活的...
最近网络上盛传一张图片,画面上两个程序员横卧大街,呼呼入睡,身前立了个牌子:精编Web服务,Java、C++5元一行起。仿佛招徕雇主的民工。不排除相片有噱头的嫌疑,但它的确从某一角度折射出了当前IT业的状态。引人感慨。 我也是个程序员,IT人士,最初踏入这行,一半是兴趣,一半是羡慕这里的干净,感觉上没有钩心斗角,亦不用在上司面前装模作样,可以自由放松,完成任务就OK。然而,再美好的愿望都无法走出“近处无风景”的怪圈,大概,有一种花只适合雾里来看吧,而IT业就是这么一朵花儿。 我的工作主要面向电力系统,从事数据库开发。弹指之间,五年已逝,浸淫其间的这几年,我充分体验到了一种风驰电掣...
将任一整数转换为二进制形式
*问题分析与算法设计将十进制整数转换为二进制的方法很多,这里介绍的实现方法利用了C语言能够对位进行操作的特点。对于C语言来说,一个整数在计算机内就是以二进制的形式存储的,所以没有必要再将一个整数经过一系列的运算转换为二进制形式,只要将整数在内存中的二进制表示输出即可。*程序说明与注释#include<stdio.h>void printb(int,int);int main(){int x;printf("Input number:");scanf("%d",&x);printf("number of decimal form:%d\n",x);pr...
在屏幕上显示杨辉三角形11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1......................................
*问题分析与算法设计杨辉三角形中的数,正是(x+y)的N次方幂展开式各项的系数。本题作为程序设计中具有代表性的题目,求解的方法很多,这里仅给出一种。从杨辉三角形的特点出发,可以总结出:1)第N行有N+1个值(设起始行为第0行)2)对于第N行的第J个值:(N>=2)当J=1或J=N+1时:其值为1J!=1且J!=N+1时:其值为第N-1行的第J-1个值与第N-1行第J个值之和将这些特点提炼成数学公式可表示为:1 x...
小明有五本新书,要借给A,B,C三位小朋友,若每人每次只能借一本,则可以有多少种不同的借法?
*问题分析与算法设计本问题实际上是一个排列问题,即求从5个中取3个进行排列的方法的总数。首先对五本书从1至5进行编号,然后使用穷举的方法。假设三个人分别借这五本书中的一本,当三个人所借的书的编号都不相同时,就是满足题意的一种借阅方法。*程序说明与注释int main(){int a,b,c,count=0;printf("There are diffrent methods for XM to distribute books to 3 readers:\n");for(a=1;a<=5;a+...
100!的尾数有多少个零?
*问题分析与算法设计 可以设想:先求出100!的值,然后数一下末尾有多少个零。事实上,与上题一样,由于计算机所能表示的整数范围有限,这是不可能的。 为了解决这个问题,必须首先从数学上分析在100!结果值的末尾产生零的条件。不难看出:一个整数若含有一个因子5,则必然会在求100!时产生一个零。因此问题转化为求1到100这100个整数中包含了多少个因子5。若整数N能被25整除,则N包含2个因子5;若整数N能被5整除,则N包含1个因子5。*程序说明与注释#include<stdio.h>int main(){int a,count =0;for(a=5...
求13的13次方的最后三位数
*问题分析与算法设计解本题最直接的方法是:将13累乘13次方截取最后三位即可。但是由于计算机所能表示的整数范围有限,用这种“正确”的算法不可能得到正确的结果。事实上,题目仅要求最后三位的值,完全没有必要求13的13次方的完整结果。研究乘法的规律发现:乘积的最后三位的值只与乘数和被乘数的后三位有关,与乘数和被乘数的高位无关。利用这一规律,可以大大简化程序。*程序说明与注释#include<stdio.h>int main(){int i,x,y,last=1; /*变量last保存求X的Y次方过程中的部分乘积的后三位*/printf("Input X and...
不是“发烧级”,就别干这行软件开发这个行业容不得半点放松。有人就用“逆水行舟”来形容程序人的工作现状,这是因为软件的开发,无论是技术的更新、还是发展的速度都是非常快。你一定要不断地充实自己,学习新的技术,才有可能跟得上发展的趋势。有时候,可能有个技术你刚刚才掌握,它就已经落后了;技术要深挖,时间要缩短,每前进一步都必须付出很多的代价。也正因为如此,做一个程序人,“激情”是十分重要的。当记者问程序人应具有什么样的精神时,许多人都不约而同地用到了“狂热”这个词。在北大方正集团广州志海软件有限公司工作,本身也是程序人的曹国鹏先生说:“没有对这一行足够的热爱,就很难钻研下去,也就不会有什么发展。...
[1]好好规划自己的路,不要跟着感觉走!根据个人的理想决策安排,绝大部分人并不指望成为什么院士或教授,而是希望活得滋润一些,爽一些。那么,就需要慎重安排自己的轨迹。从哪个行业入手,逐渐对该行业深入了解,不要频繁跳槽,特别是不要为了一点工资而转移阵地,从长远看,这点钱根本不算什么,当你对一个行业有那么几年的体会,以后钱根本不是问题。频繁地动荡不是上策,最后你对哪个行业都没有摸透,永远是新手!
[2]可以做技术,切不可沉湎于技术。千万不可一门心思钻研技术!给自己很大压力,如果你的心思全部放在这上面,那么注定你将成为孔乙己一类的人物!适可而止为之,因为技术只不过是你今后前途的支柱之一,而...
问555555的约数中最大的三位数是多少?
*问题分析与算法设计根据约数的定义,对于一个整数N,除去1和它自身外,凡能整除N的数即为N的约数。因此,最简单的方法是用2到N-1之间的所有数去除N,即可求出N的全部约数。本题只要求取约数中最大的三位数,则其取值范围可限制在100到999之间。*程序说明与注释#include<stdio.h>int main(){long i;int j;printf("Please input number:");scanf("%ld",&i);for(j=999;j>=100;j--)if(i%j==0){printf("The max fact...
在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。请编写一个程序实现。
*问题分析与算法设计这个问题的算法十分简单,但是要注意在程序中判断最大、最小值的变量是如何赋值的。*程序说明与注释#include<stdio.h>int main(){int integer,i,max,min,sum;max=-32768; /*先假设当前的最大值max为C语言整型数的最小值*/min=32767; /*先假设当前的最小值min为C语言整型数的最大值*/sum=0; /*将求累加和变量的初值置为0*/for(i=1...
干程序员是一项很辛苦的工作,要成为一个高水平的程序员尤为艰难。这是因为计算机软件技术更新的速度越来越快,而这些技术大多来源于英语国家,我们在引进这些技术时往往受到语言障碍的制约,严重影响到对新技术的理解和消化。首先编程本身就依赖于英语,虽然现在技术的发展,可以使得某些开发工具在变量名和字段名中支持中文,但还未发现能够完全使用中文的编程语句。其次,软件开发中的技术文档和资料大都是来自英文,即使有翻译好的,不是晦涩难懂,就是译法混乱,比如:roll back就有"回滚"、"回退"、"返回"、"重算"等多种译法,又如我们遇到翻译后的术语"域",往往不清楚译者是根据"field"、"regi...
----谨以此文献给投身于程序员队伍的年轻后辈们。
说来自己也不敢相信,我今年满36周岁了,居然还在做程序。14年以前大学毕业到现在,一直就在电脑前不停地编制各种各样的程序,从最早的6809单板机的汇编程序,到现在的J2EE,.NET,可以说,主流的语言都经历了一番。做过的项目也是杂乱无章,有一个人做2个月就出来的,也参加过几千人做几年才出来个大致,目前还在继续维护修改中的超级大项目。也许有人不相信世上竟然有如此大的项目,说白了也行,是3G WCDMA。
一个老的程序员,目睹着这个电脑世界的风风雨雨,感触之深是非年轻的程序员所能体会得到的。 当年刚刚毕业时,只要会一点dBase,或...
在屏幕上用“*”画一个空心的圆
*问题分析与算法设计打印圆可利用图形的左右对称性。根据圆的方程:R*R=X*X+Y*Y可以算出圆上每一点行和列的对应关系。
*程序说明与注释#include<stdio.h>#include<math.h>int main(){double y;int x,m;for(y=10;y>=-10;y--){m=2.5*sqrt(100-y*y); /*计算行y对应的列坐标m,2.5是屏幕纵横比调节系数因为屏幕的行距大于列距,不进行调节显示出来的将是椭圆*/for(x=1;x<30-m;x++) printf(" "); /*图形左侧空白控制*/prin...