Category Archives: 编程相关
IN:C, 编程相关 Comments:3两周前面完深信服后,何总给留的一个题目:
1. 编写Windows下或者Linux下的http服务器,不得抄袭别的Web服务器。要求:支持多个并发用户访问,使用配置文件配置根目录等选项。支持CGI,最好支持简单的脚本(语法可以类似asp或者php,实现一些简单的语法就可以了)。给出简单说明和设计文档。
要求我在两个星期之内完成,但这两周一直忙别的事了,这Web Server就没有怎么好好写,所以之到今天才交了作品,基本上按他题目的要求完成了,不过在一些细节处理,还有完整性等方面还是有很多问题。
总算是一件心事放下来了,不管结果如何收获还是不少,至少更加熟悉Server的开发,设计,更加深入的了解了http协议,感觉一个Web Server也不过如此,1000行的代码就完成了,当然成熟的商业产品是要大的多的,比如lighttpd有5w行代码,apache就更多了。
IN:C, 编程相关 Comments:4选择排序:
每次找出最小的放在最前面;
插入排序:
每次循环把后面第一个元素插入到前面适当位置(玩扑克牌的插法);
冒泡排序:
比较相邻元素,大的放在右边;
[cocobear@cocobear Temp]$ ./a.out
排序前:83 86 77 15 93 35 86 92 49 21
请选择排序方式:
(1)选择排序
(2)插入排序
(3)冒泡排序
:1
选择排序:
第1次排序结果:15 86 77 83 93 35 86 92 49 21
第2次排序结果:15 21 77 83 93 35 86 92 49 86
第3次排序结果:15 21 35 83 93 77 86 92 49 86
第4次排序结果:15 21 35 49 93 77 86 92 83 86
第5次排序结果:15 21 35 49 77 93 86 92 83 86
第6次排序结果:15 21 35 49 77 83 86 92 93 86
第7次排序结果:15 21 35 49 77 83 86 92 93 86
第8次排序结果:15 21 35 49 77 83 86 86 93 92
第9次排序结果:15 21 35 49 77 83 86 86 92 93
[cocobear@cocobear Temp]$ ./a.out
排序前:83 86 77 15 93 35 86 92 49 21
请选择排序方式:
(1)选择排序
(2)插入排序
(3)冒泡排序
:2
插入排序:
第1次排序结果:83 86 77 15 93 35 86 92 49 21
第2次排序结果:77 83 86 15 93 35 86 92 49 21
第3次排序结果:15 77 83 86 93 35 86 92 49 21
第4次排序结果:15 77 83 86 93 35 86 92 49 21
第5次排序结果:15 35 77 83 86 93 86 92 49 21
第6次排序结果:15 35 77 83 86 86 93 92 49 21
第7次排序结果:15 35 77 83 86 86 92 93 49 21
第8次排序结果:15 35 49 77 83 86 86 92 93 21
第9次排序结果:15 21 35 49 77 83 86 86 92 93
[cocobear@cocobear Temp]$ ./a.out
排序前:83 86 77 15 93 35 86 92 49 21
请选择排序方式:
(1)选择排序
(2)插入排序
(3)冒泡排序
:3
冒泡排序:
第1次排序结果:83 77 15 86 35 86 92 49 21 93
第2次排序结果:77 15 83 35 86 86 49 21 92 93
第3次排序结果:15 77 35 83 86 49 21 86 92 93
第4次排序结果:15 35 77 83 49 21 86 86 92 93
第5次排序结果:15 35 77 49 21 83 86 86 92 93
第6次排序结果:15 35 49 21 77 83 86 86 92 93
第7次排序结果:15 35 21 49 77 83 86 86 92 93
第8次排序结果:15 21 35 49 77 83 86 86 92 93
第9次排序结果:15 21 35 49 77 83 86 86 92 93
查看源码
下载源码
IN:Shell, 编程相关 Comments:3for f in *;do
mv $f `echo $f |tr “[A-Z]” “[a-z]“`
done
上面这个脚本可以处理大多数情况,但是当文件名中有空格时该脚本就无效了。
经过尝试下面这段脚本可以解决上面的问题:
[cocobear@cocobear 1027]$ cat re.sh
mv “$1″ “`echo $1 | tr ‘[A-Z]‘ ‘[a-z]‘`”
[cocobear@cocobear 1027]$ find ./ -type f -exec ./re.sh ‘{}’ \;
再想一想其实最前面的代码也一样能解决问题,也是需要在mv的两个参数的变量名上加上双引号:
for f in *;do
mv “$f” “`echo $f |tr “[A-Z]” “[a-z]“`”
done
我刚开始改的时候只对`echo $f | tr “[A-Z]” “[a-z]“`用了双引号,结果出现下面的错误:
mv: 目标 “dscn6208 [1600x1200].jpg” 不是目录
解释:
shell传递参数默认是按照空格来区分的,因此当文件名里有空格时传递参数的过程中就会被认为是传递了两个参数,这样如果$f没有使用双引号的话”dscn6208 [1600x1200].jpg”就会被认为两个文件,相当于:
mv dscn6208 [1600x1200].jpg “dscn6208 [1600x1200].jpg”
mv会认为第三个参数是文件夹,所以会提示目标“dscn6208 [1600x1200].jpg”不是目录。
IN:C, SDL, 编程相关 Comments:3SDL是跨平台的开发库,因此移植到WIN下只需要重新编译一次就可以了,源代码我基本没做修改,只是把SDL的包含方式改为了:
#include <SDL/SDL.h>
因为我不知道在WIN下如何使用-I/usr/include/SDL
使用的是Dev-C++ 4.9.2.2编译的,还做了个图标,呵呵,练练手,为了SuperMario的WIN版,没办法啊,有人期待WIN的啊!
源码下载
游戏下载
IN:Life, XylFTP Tags: Life Comments:8第二天早上还正睡得好着呢,就被一阵电话铃给吵醒了,本来以为是老大打得还准备埋怨两句,没想到是王老师打的:-)
出去吃了个早点,就去了决赛地点,已经有好多参赛的小组来了,都是很年轻的小伙,还看到了嘉宾名单里有徐继哲,呵呵,又一次要见到他了,还有宫敏,程勇(做jfox的),苏哲(google的人,做scim的,不过因为临时有时没能到场)。
没想到的是最后进入决赛的9支队伍除了我们和东软的一队,其它的都是中科院各所的研究生,他们的项目里有两个我比较感兴趣,都是python做的,一个是搜索引擎,另一个是多媒体编辑器,不过多媒体编辑器不太完整,只实现了播放的功能因此最后和我们一样只取得了优秀奖。
值得一提的是东软那组做的东西,具有很浓重的商业气味,就连PPT感觉都很专业,很明显是受过专业的、有实际项目经验的老师培养,东西也具有一定的实际意义:可定制企业管理内核。
比赛的结果并不重要,我们也没有专门为这个比赛去准备,因此项目的技术含量和别人显然不在一个档次,因此没有好的名次是很明显的,不过论开发模式,我们应该算是最纯粹、最全面的开源软件开发模式。而且有些项目甚至只有Windows平台上的东西,让我不爽的很!
评奖完毕后徐继哲又和我们聊了一会儿,宫敏知道我们是西安来的也过来凑热闹一块儿聊了一会儿。然后就一起合了影后,他们便离开了。
由于前一天找了两个多小时没找到清华正门,吃完饭后我们继续去寻找清华正门,没想到离我们住得地方那么近,昨天绕了一个大圈。又逛了逛清华,看了看以前的旧门,就坐公交去北京西站了。
BWT:俺和那个做多媒体的研究生聊了一会儿,他说到北京现在博士学(和海归硕士)历才给解决户口问题,因此他毕业都不打算留北京了。后来又听除哲继说他目前还没有北京的户口,真是太和谐了啊,以后北京全住博士!!
IN:C, SDL, 编程相关 Comments:5较上次更新:
- 对各模块主要代码加入注释
- 加入避免食物产生在蛇身上
- 加入蛇是否碰到自己身体的检查
- 一些其它优化工作
下载地址:
DouSnake1.0 by cocobear