程序最美(寻路)

你还在坚持练习你的技术吗?运动员天天训练,音乐家也会演练更难的曲章。你呢?

10 2013 档案

设计一个追踪类
摘要:设计一个追踪类——本文来自于《C++沉思录》中的例子。 用C++设计思想制作一个追踪类,实现功能: 1.基本的追踪 2.追踪开关 3.对于输出信息指定输出文件 程序如下:// 追踪类#include #include #include using namespace std;class MyTrace{private: bool ok_; FILE* f_;public: MyTrace() : ok_(true), f_(stdout) {} MyTrace(FILE* const f) : ok_(true), f_(f) {} void Print(con... 阅读全文

posted @ 2013-10-24 22:27 unixfy 阅读(231) 评论(0) 推荐(0) 编辑

价值博文索引
摘要:价值博文索引 题目 链接 说明 设计模式汇集 http://www.cnblogs.com/unixfy/p/3384652.html 考勤处理程序 http://www.cppblog.com/unixfy/archive/2012/10/25/193843.html K近邻算法实现 http:/ 阅读全文

posted @ 2013-10-24 20:09 unixfy 阅读(227) 评论(0) 推荐(0) 编辑

个人作品集
摘要:个人作品集 作品 时间 相关链接 说明 扫雷游戏&Windows桌面模拟器 2007年 查词软件 2008年 拼写检查与纠错助手 2009年 成绩管理系统 2008年 水煤气管理系统 2008年 简单屏保 2008年 座次生成器 2008年 考勤处理软件 2012年 麻将 2009年 堆栈虚拟机 2 阅读全文

posted @ 2013-10-24 19:48 unixfy 阅读(388) 评论(0) 推荐(0) 编辑

设计模式汇集
摘要:设计模式汇集 把之前博客里的设计模式汇集于此,便于查询和复习。类别设计模式链接说明创建型(6个)简单工厂C++博客/百度空间工厂方法C++博客/百度空间抽象工厂C++博客/百度空间建造者C++博客/百度空间原型C++博客/百度空间单例C++博客/百度空间结构型(7个)外观C++博客/百度空间适配器C++博客/百度空间代理C++博客/百度空间装饰C++博客/百度空间桥接C++博客/百度空间组合C++博客/百度空间享元C++博客/百度空间行为型(11个)模板方法C++博客/百度空间观察者C++博客/百度空间状态C++博客/百度空间策略C++博客/百度空间职责链C++博客/百度空间命令C++博客/百 阅读全文

posted @ 2013-10-23 17:44 unixfy 阅读(298) 评论(0) 推荐(0) 编辑

再议并查集
摘要:再议并查集 上文《并查集》中,我们讨论了并查集的数据结构和基本操作,以及给出了个基本实现。我们指出理解并运用好并查集重点在于理解元素的表示、类别的表示、元素的索引,以及三者之间的关系。 在实现中,我们指出Find的参数x是为data的索引(等价于father的索引),用索引表示实际的元素,并Find出其类别。这里我们补充一点:Find函数返回的是参数x对应的类别,这里的类别表示依然是用data的索引进行的表示,返回的索引(返回值)实质上是所述类别的祖先节点的索引。 同样Union函数的两个参数实质是data的索引(等价于father的索引),但表示的是其对应的元素所述的类别。在Union中,i 阅读全文

posted @ 2013-10-11 20:11 unixfy 阅读(237) 评论(0) 推荐(0) 编辑

并查集
摘要:并查集 并查集是一种简单且强大的工具。本文我们就是学习并介绍一下并查集。并查集的资料网上有很多,也有很多代码实现。博主在学习的过程中也查阅了很多资料,有兴趣的话可以Google之。 并查集有三个数据结构: 集合:实际元素组成的集合 类信息:记录元素的类信息 秩信息:记录元素的高度 并查集包含三种基本操作: Init:初始化,将集合每个元素看做一个类别,元素的类信息即为自身,秩信息都为0 Find:查找,根据给定的元素,返回其类别信息。在执行查找的过程中进行路径压缩优化,以提高后续Find的效率。 Union:合并,将两个元素所在的集合进行合并(集合用其中的元素来表示),在合并的过程中同样进行优 阅读全文

posted @ 2013-10-11 16:40 unixfy 阅读(356) 评论(0) 推荐(0) 编辑

另一版本的基于堆栈的虚拟机实现
摘要:另一版本的基于堆栈的虚拟机实现 前面我们对一基于堆栈虚拟机进行了源码剖析《基于栈的虚拟机源码剖析》。之前我们也实现了一个简单的基于堆栈的虚拟机《实现一个堆栈虚拟机》。在《实现一个堆栈虚拟机》中,我们将虚拟机定义为一个VirtualBox类,VirtualBox类中有成员变量:堆栈、指令内存、数据内存,另外还有成员函数:读取指令、执行指令。《基于栈的虚拟机源码剖析》中,是C语言实现的,没有设计成类的形式,但依然有堆栈、指令、数据、读取指令、执行指令等模块。 这里,我们再次实现一个基于堆栈的虚拟机。先给出实现代码,然后再对代码进行解释。// 基于堆栈的虚拟机实现#include #include 阅读全文

posted @ 2013-10-11 00:32 unixfy 阅读(1194) 评论(0) 推荐(0) 编辑

参数解析之写入参数解析
摘要:参数解析之写入参数解析 之前我们有篇关于参数解析的文章《参数解析》,在文章中我们讨论了对函数参数进行了解析,分为两种方法:状态转换图和顺序扫描。函数参数为一个字符串,格式为:file1|dataitem1|dataitem2|dateitem3|$file2|dataitem4|dataitem5|$file3|dataitem6|$ 通过我们的解析得到: file1 dataitem1 dataitem2 dataitem3 file2 dataitem4 dataitem5 ... 阅读全文

posted @ 2013-10-09 23:20 unixfy 阅读(495) 评论(0) 推荐(0) 编辑

基于栈的虚拟机源码剖析
摘要:基于栈的虚拟机源码剖析 之前我们曾剖析过一个栈虚拟机《栈虚拟机源码剖析》,并实现了一个栈虚拟机《实现一个栈虚拟机》。 本文我们对Kevin Lynx的《基于栈的虚拟机的实现》进行学习,学习其源码实现原理和技巧,其源码地址为:source code。 有关该基于栈的虚拟机说明,可以直接参考原文,我们不在此赘述。这里,我们主要是对源码进行分析学习。 该虚拟机对应两个文件:头文件sm.h和源文件sm.c。 其中,sm.h中定义了虚拟机的指令集(二进制指令集),该指令集为枚举类型:enum op_type{ opHalt, opIn, opOut, opAdd, opSub, opMul, op... 阅读全文

posted @ 2013-10-08 22:25 unixfy 阅读(2243) 评论(0) 推荐(0) 编辑

实现一个反汇编器
摘要:实现一个反汇编器 上文《反汇编器源码剖析》,我们对一反汇编器源码进行了学习,了解了反汇编器的实现原理。反汇编是汇编的逆过程,其也是包含三个主要部分:汇编指令集二进制指令集二进制指令到汇编指令的映射 有了这三部分之后,我们就可以对二进制指令,将其翻译成汇编指令,也就完成了反汇编过程。 我们的二进制指令集和汇编指令集还是沿用之前的指令集。 下面我们先给出实现的反汇编器,然后对相关代码进行解释。// 实现一个反汇编器#include #include #include #include #include using namespace std;enum BinIns;// 二进制指令结构体//... 阅读全文

posted @ 2013-10-08 21:05 unixfy 阅读(2424) 评论(0) 推荐(0) 编辑

反汇编器源码剖析
摘要:反汇编器源码剖析 之前我们有对一汇编器进行源码剖析,详见《汇编器源码剖析》,并且《实现一个汇编器》。本文,我们继续之前的工作,对反汇编器进行源码剖析,之后我们会根据反汇编器的实现原理,实现一个自己版本的反汇编器。本文剖析的反汇编器代码详见:source code。 源码中反汇编器对应的文件为sdasm.c。 sdasm.c文件中包含汇编指令集的定义op_desc,其类型为字符串数组。const char *op_desc[] = { "HALT", "IN", "OUT", "ADD", "SUB&quo 阅读全文

posted @ 2013-10-08 20:50 unixfy 阅读(1650) 评论(0) 推荐(0) 编辑

实现一个汇编器
摘要:实现一个汇编器 上文《汇编器源码剖析》中,我们对一汇编器进行了源码剖析,这里我们仿照其实现一个自己版本的汇编器,90%的东西都是借鉴于上文中的源码。 实现一个汇编器,首先需要定义一个汇编指令集,这里我们还是沿用上文中的汇编指令集。汇编指令与指令之间是一一对应的关系,也就是说是直译的过程。我们的指令集是枚举类型,也是沿用上文源码的指令集。 我们的函数功能是对输入的汇编指令,将其读入,翻译成对应的二进制代码,然后将其输出。 实现汇编器的重点在于理解汇编器的原理,而汇编器的原理就在于定义好汇编指令集、二进制指令集,并且确定好二者之间的映射转换关系。 以上即是汇编器的原理。具体如何定义汇编指令集... 阅读全文

posted @ 2013-10-08 20:44 unixfy 阅读(8989) 评论(1) 推荐(2) 编辑

汇编器源码剖析
摘要:汇编器源码剖析 本文我们对一汇编器源代码进行剖析,了解汇编器实现原理,进而我们根据样例,自己实现一个汇编器。实现自己版本的汇编器放在另一篇中,本文主要是对别人的源码进行剖析。 本文源代码是来自Kevin Lynx的《基于栈的虚拟机的实现》中关于实现一个堆栈虚拟机中附带了汇编器的实现,源码下载地址如下:source code。由于本人对汇编器比较感兴趣,所以对其进行如下剖析。 汇编器主要是一个sasm.c源文件。 其中,一开始定义了一个const char* op_desc[],op_desc是一个数组,其元素类型是const char*,即op_desc是一个字符串数组,其用于存储汇编操作符。 阅读全文

posted @ 2013-10-08 20:22 unixfy 阅读(6014) 评论(0) 推荐(0) 编辑

导航

点击右上角即可分享
微信分享提示