- 博客(269)
- 资源 (8)
- 收藏
- 关注
原创 【设计模式】之命令模式(Command)
命令模式的定义为:把一个请求封装成一个对象,因此可以使用不同的请求来参数化别的对象,将请求加入队列或者记录请求日志,并且支持撤销操作。官方定义为:The Command Pattern encapsulates a request as an object, thereby letting you parameterize other objects with different reques
2012-07-23 11:52:24 1170
原创 【设计模式】之单例模式(Singleton)
单例模式的定义为:保证一个类只有一个实例,并且提供一个全局的访问入口。Ensure a class only has one instance, and provide a global point of access it.虽然说,单例模式在所有的模式当中算是比较简单的一个,但是如果牵扯到线程安全问题,似乎没有那么简单。本文参考《Head First》和《Design Pat
2012-07-19 17:23:56 1920
原创 【设计模式】之抽象工厂(Abstract Factory)
抽象工厂的定义为:不需要指定具体的类,为创建一系列有关联或有依赖关系的对象提供一个接口(Provide an interface for creating families of related or dependent objects without specifying their concrete classes)。由定义可以看出,抽象工厂生产的是一系列产品(families
2012-07-18 11:22:35 1227
原创 【设计模式】之工厂方法(Factory Method)
无论是工厂方法还是抽象工厂,所谓工厂就是生产之用,工厂方法的作用就是生产一个对象。工厂方法的定义为:为创建对象定义一个接口,但是让子类决定实例化哪一个类。工厂方法让一个类把实例化推迟到子类。英文定义为:Define an interface for creating an object, but let subclasses decide which class to instantiat
2012-07-17 16:39:22 1498
原创 【杂谈】那些有个性的言谈
最近再看《编程人生》英文名《Coders at work》,其中第一篇采访了Lucid Emacs的作者Jamie Zawinski,其中有一段对话比较精彩。Seibel:What about books? Are there particular computer-science orprogramming books that everyone should read?中文版:计算
2012-07-13 17:42:07 866
原创 【设计模式】之装饰模式(Decorator)
装饰模式的定义为 动态地为一个对象添加额外的功能,在扩展功能方面装饰模式比生成子类方式提供了一种更灵活的方法。英文定义为:Attach additional responsibilities to an object dynamically. Decorators provide a flexible alternative to subclassing for extending funct
2012-07-13 17:26:09 1455 2
原创 【设计模式】之观察者模式(Observer)
观察者模式的定义是:定义一个对象之间一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象会自动被通知和更新。Define a one-to-many dependency between objects so that one object changes state, all its dependents are notified and updated automaticall
2012-07-12 17:22:56 1406
原创 【设计模式】之策略模式(Strategy)
主要内容大概就是学习设计模式时一些笔记和心得。参考书籍有《Head First Design Patterns》《Design Patterns : Elements of Reusable Object-Oriented Software》《Implementation Patterns》。两本设计模式的书中对策略模式的定义都是一样的:定义一些列算法,封装每一个算法,并且
2012-07-12 10:51:43 928
原创 【实现模式】比较好的参考文献
1 Refactoring: Improving the Design of Existing Code (Martin Fowler)2 Header First Design Patterns (Eric Freeman, Elisabeth Freeman)3 Design Patterns: Elements of Reusable Object-Oriented
2012-07-10 14:34:50 1240 1
原创 【实现模式】Collections for java
这几天学习了一下Kent Beck的《实现模式(Implementation Patterns)》,可能是由于刚读完《Design Patterns》的原因,觉得作者的语言使用太过于随意话,《design patterns》的逻辑性更胜一筹。所谓的实现模式,也不乏一些编程技巧,从设计模式的角度来看,只不过是一些trick而已。而且书中好多地方比较牵强。可能由于我不是java程序员的缘故,书
2012-07-10 13:18:36 1247
原创 【设计模式】读GOF设计模式想到的。
项目末期,不算忙,花了将近一个月的时间,终于把《设计模式》认真仔细学习了一下。Experienced object-oriented designers will tell you that a reusable and flexible design is difficult if not impossible to get "right" the first time. Before
2012-07-05 16:32:25 1096
原创 【data structure】之查找链表中倒数第N个元素
问题: 给定一个链表,在只遍历一遍的前提下查找倒数第n个元素。数据开销要求尽可能小。思路: 设置两个哨兵指针,第一个指针先移动n个位置,然后第二个指针再从头结点与第一个指针一起移动。这样第一个指针跟第二个指针之间的距离为n个结点长度,因此当第一个指针移动到尾部的时候,第二个指针即指向倒数第n个结点。代码:#include using namespace std;stru
2011-12-22 22:37:16 984
原创 【data structure】之栈与队列
问题一:用两个队列实现一个栈思路: 定义两个队列分别为q1,q2。 调用栈的push操作时,直接将元素push到队列q1中,时间复杂度为O(1)。 调用栈的pop操作时,先把q1中的q1.size() - 1个元素push到q2中,然后再pop出q1中的最后一个元素,再把q2中的所有元素全部push到q1中,时间复杂度为O(n)。代码: templatecla
2011-12-22 22:20:44 1005
原创 C++ invoks Python ~ int64_t and __int64
<br /> <br />#include<Python.h><br /> <br />intmain() {<br /> return 0;<br />}<br /><br />利用如上代码(cpppython.cc)测试C++调用python(version 2.6.2),g++编译出现如下错误:<br /><br /><br /> <br />通过错误可知__int64不是C++的支持的整型类型。<br />那C语言支不支持呢?<br /> <br />#include<stdio.h><
2011-05-05 17:25:00 3648 1
原创 苏州笔试题目
今日去苏州某公司面试,笔试题目。一、猴子吃桃问题 一个猴子摘了一些桃子,每天是吃一半加一个,第十天的时候剩下1个。一共有多少个桃子?int count_peach(int day, int left) { if (day == 1) { return left; } return count_peach(--day, (left + 1) * 2);} 二,将一个字符串中的‘/t’替换成四个achar* string_replace(char* str) { int co
2011-04-23 00:42:00 2009 1
原创 difference between data() and c_str() of basic_string
writes: In other words, data() produces an array of characters, whereas c_str() produces a C-style string. 以下是cygwin(basic_string.h ISO C++ 14882: 21 Strings library)与M$ Vs2005(xstring.h)分别对da
2011-04-21 15:15:00 1817
原创 Linus and RMS
<br /> RMS 为了理想,四处奔波。<br /> Linus实现了理想,四处游玩。<br /> <br /> 最近因工作需要学习了一下Lex。感觉最关键的技术还是正则表达式(Regular Expression)。<br /> <br /> 用户在Lex脚本中定义模式(Pattern,正则表达式)去匹配需要处理的字符串(string)。<br /> <br /> 刚开始以为掌握了Lex就可以完全静态分析一个C文件,后来发现错了,<br /> <br /> Lex的模式是一个NFA,因为它不
2011-01-10 23:08:00 1241
原创 [make] makefile中使用include
在目录下创建一个test.c文件,文件内容如下#include #include "subdir/fun.h"int main(int argc, char **argv){ fun(); return 0;} 然后创建一个makefile,文件内容如下RM := rm -f -vtest : test.o fun.o gcc -o test test.o fun.otest.o : test.c gcc -c test.cinclude subdir
2010-08-13 03:13:00 6437
原创 [java]Regular Expression Testor
<br />import java.awt.Dimension;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Vector;import java.util.regex.Matcher;import java.util.re
2010-07-28 10:00:00 1209
原创 [QT]初识
昨日はQTを始めて使いました。楽しい感じがしました。MFCより、QTのほどが易しそうです。 虽然说,对QT有了初步了解,但是有许多问题还没搞清楚,列个清单 1:何谓 交叉编译 2:qmake -project qmake make 到底为何物。 3:QT的发展历史 記念するので、
2010-05-10 01:35:00 1170
原创 机器人路径规划一种新的蚂蚁算法
毕业设计做机器人路径规划,开题报告还没写完就想写程序了,于是找了许多参考资料,用VC++仿真了一个我的导师提出的蚂蚁算法。 写这个程序总共花费了两天时间,总体来说算法并不复杂,但是有许多细节问题也很让人头疼,尤其是数据结构和类的设计部分,总感觉很别扭。 1 栅格法将全局环境离散化,为方便计算,对每个栅格进行编号处理,并使之与坐标系对应。 2 为
2010-03-13 00:44:00 2701
原创 今晚遗留问题
1 为什么当host地址设置为INADDR_ANY以后,调用WSAIoctrl会出错。2 如此定义IP头结构,struct的内存分配问题。typedef struct ip_hdr{ unsigned char ip_header_len:4; // 4-bit header length (in 32-bit words) unsigned char ip_versio
2010-01-06 00:15:00 1316
原创 如何编码实现Windows下的ping功能
一、数据结构首先根据IP数据包格式(图下图)定义IP数据包头的数据结构typedef struct tagIPHDR // IP数据包头部{ u_char VIHL; // 版本号(4)+头长度(4) u_char TOS; // 服务类型(8) short TotLen; // 总长度(16) short ID; // 标识(16) short
2009-12-30 01:53:00 5822 3
原创 多播报文的发送和接收
1 实验目的掌握多播的原理及如何进行多播报文的发送和接受2 注意事项需包括ws2tcpip.h文件发送者和所有接受者在同一网内不考虑TTL值,回环状态 通过setsockopt( )函数设置选项来实现多播数据的发送和接收 3 试验
2009-12-22 02:14:00 5074 1
原创 多播(自发自收)
#include #include #define BUFSIZE 1024#define MAXADDRSTR 16#define LOOPCOUNT 100/* 检查系统中是否安装了合适版本的Winsock DLL。*/int CheckWinsockVersion(void){ WORD wVersionRequested; WSADATA w
2009-12-19 01:03:00 2725
原创 混乱到让人近乎抓狂的代码
给一家工厂写软件,是基于一个他们正在使用的软件添加一些功能。代码及其混乱,既无注释也无文档,甚至连基本的代码格式都没有。修改起来及其困难,效率特别低,很多变量名称不得不去猜测代码什么意思。暑假在一家硬件公司实习做DSP开发,让我诧异的是就连项目经理的代码也是及其混乱。 先不说软件效率,如果一个软件要长期使用,就必须具备良好的代码风格(注释+格式),然而很多非科班出身的程序员有时候并不会
2009-12-14 23:39:00 1595
原创 事件对象I/O管理
当一个FD_XXX网络事件发生时,WSAEventSelect()函数将导致一个应用程序指定的事件对象被设置,将网络事件投递到一个事件对象句柄。 传输服务提供者会记住每个特定的FD_XXX网络事件的发生。应用程序可以调用WSAEnumNetworkEvents()函数把目前的网络事件记忆拷贝到应用程序提供的缓冲区中,并且自动清除网络事件记忆。如果需要,应用程序还可以把某个特定的时间对象和
2009-12-12 22:46:00 2021
原创 基于UDP的select函数用法
/************SERVER**************/#include #include #define PORT_A 11111#define PORT_B 22222void main(int argc, char **argv){ WSADATA wsaData; // 套接口信息数据 SOCKET socka; // 套接口a SOCKE
2009-12-11 01:24:00 17745 4
转载 VC键盘消息大全
符号常量 十六进制值 指定的鼠标或键盘按键 VK_LBUTTON 01 鼠标左键 VK_RBUTTON 02 鼠标右键 VK_CANCEL 03 Control-break 过程 VK_MBUTTON 04 鼠标中键 VK_BACK 08 BACKSPACE 键 VK_TAB 09 TAB 键 VK_CLEAR 0C CLEAR 键 VK
2009-11-25 20:57:00 1192
原创 GetLastError()返回值的意义
〖0〗-操作成功完成。〖1〗-功能错误。〖2〗-系统找不到指定的文件。〖3〗-系统找不到指定的路径。〖4〗-系统无法打开文件。〖5〗-拒绝访问。〖6〗-句柄无效。〖7〗-存储控制块被损坏。〖8〗-存储空间不足,无法处理此命令。〖9〗-存储控制块地址无效。〖10〗-环境错误。〖11〗-试图加载格式错误的程序。〖12〗-访问码无效。〖13〗-数据无
2009-11-04 16:27:00 922
转载 NAND和NOR flash的区别
NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NORflash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着,1989年,东芝公司发表了NANDflash结构,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。但是经过了十多年之后,仍然有相当多的硬件工程师分不清NOR和NAND闪存。 相“fla
2009-10-20 10:18:00 988
原创 MCS-51单片机主要应用特性
MCS-51单片机是美国INTE公司于1980年推出的产品,与MCS-48单片机相比,它的结构更先进,功能更强,在原来的基础上增加了更多的电路单元和指令,指令数达111条,MCS-51单片机可以算是相当成功的产品,一直到现在,MCS-51系列或其兼容的单片机仍是应用的主流产品,各高校及专业学校的培训教材仍与MCS-51单片机作为代表进行理论基础学习。我们也以这一代表性的机型进行系统的讲解。
2009-10-19 18:49:00 2152
原创 PHY
PHY is a common abbreviation for the physical layer of the OSI model.A PHY connects a link layer device (often called a MAC) to aphysical medium such as an optical fibre or copper cable. A P
2009-10-16 13:22:00 1168
原创 EPLD
Short for electrically programmable logic device, an integrated circuit that is comprised of an array of programmable logic devices that do not come pre-connected; the connections are pr
2009-10-16 11:06:00 1750
转载 什么是JTAG及JTAG接口简介
http://www.icembed.com/info-26357.htm1 JTAG(Joint Test Action Group;联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如DSP、FPGA器件等。标准的JTAG接口是4线:TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和
2009-09-28 19:37:00 3048
转载 multi-master serial computer bus
http://en.wikipedia.org/wiki/Multi-master_busFrom Wikipedia, the free encyclopedia A multi-master bus is a computer bus in which there are multiple bus master nodes present on the bus
2009-09-21 09:34:00 1141
转载 什么是磁珠(Ferrite Bead 即 FB)(转)
什么是磁珠磁珠有很高的电阻率和磁导率,他等效于电阻和电感串联,但电阻值和电感值都随频率变化。 他比普通的电感有更好的高频滤波特性,在高频时呈现阻性,所以能在相当宽的频率范围内保持较高的阻抗,从而提高调频滤波效果。 作为电源滤波,可以使用电感。磁珠的电路符号就是电感但是型号上可以看出使用的是磁珠在电路功能上,磁珠和电感是原理相同的,只是频率特性不同罢了 磁珠由氧磁体组成,电感由磁心和
2009-09-16 15:27:00 3520
原创 最后一次参加数学建模比赛
从大二到大四,大大小小的数模比赛一共参加了5次数学建模比赛,这次是最让我觉得恶心一次。我想应该结束了,以后不会再参加了,也是最后一次合作。合作的事情不是一个人可为的,既然要合作就必须去适应,既然无法沟通,最好的办法是终止合作。一切都结束吧。其实我还有更重要的事情去做。。。
2009-09-14 04:19:00 1634
转载 职场博上位 9招主动占领高地
from: http://www.piaobozhe.com/read.php?tid=5136主动是一种特别的行动气质,也就是说自己知道做有价值的事,不用别人去催。职场上的主动者,往往得以进入各行各业的高收入者阶层。主动和被动虽然只有一字之差,但是它们对工作的意义却是完全不同的。许多人每天都在迟迟不愿将自己的构想付诸于行动,也因此荒废了许多的宝贵时间,以下总结出9招,相信按我们说的做
2009-09-10 13:09:00 1231
原创 UDP实现局域网内的广播
// Server#include #include #pragma comment(lib, "wsock32.lib")int main(int argc, char* argv[]){ WSADATA wsaData; SOCKET sockListener; SOCKADDR_IN sin, saUdpServ; BOOL fBroadcast = TR
2009-09-10 00:23:00 2039
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人