Qt 练习作品——文件散列校验工具,Qt Widgets,支持 CRC32,MD5,SHA-1,SHA-256,SHA-512;支持多文件与文件夹拖拽。
CRC32 使用 Cryptopp 库;
CRC32 使用 Benchmarking CRC32 and PopCnt instructions 文中实现;
CRC32 使用 Stephan Brumme 所分享的 Fast CRC32 实现;
MD5,SHA-1,SHA-256,SHA-512 使用 OpenSSL 库;
参考资料:
YesSan Personal Workroom.
业余爱好,为了梦想。
Qt 练习作品——文件散列校验工具,Qt Widgets,支持 CRC32,MD5,SHA-1,SHA-256,SHA-512;支持多文件与文件夹拖拽。
CRC32 使用 Cryptopp 库;
CRC32 使用 Benchmarking CRC32 and PopCnt instructions 文中实现;
CRC32 使用 Stephan Brumme 所分享的 Fast CRC32 实现;
MD5,SHA-1,SHA-256,SHA-512 使用 OpenSSL 库;
参考资料:
俄罗斯方块(C++ 控制台版),实现了暂存方块、影子方块、预览方块、方块的软降与硬降、锁定计时器;根据 SRS(Super Rotation System)实现方块顺逆时针(90°)旋转与踢墙。产生随机方块的算法参考 Random Generator,避免某个方块连续重复出现和某个方块始终不出现的情况。使用擦除方块之前位置再绘制方块新位置的方法避免闪屏。此外,还有一些地方尚未完善,例如,方块堆叠超出顶部使得游戏结束的逻辑没有完善。不完善之处当然不止这一处,总而言之,言而总之,各种坑,有时间慢慢填。
游戏说明:
用最短时间消除 40 行。
话外音:原本预想模仿 Tetris Friends 网站,实现其中三种游戏玩法:Marathon(马拉松模式),Ultra(极限模式),Sprint(竞速模式),但是,哈哈……我偷懒了,只实现了 Sprint 模式 。
控制说明:
本人最高纪录:
参考资料:
由于阅读 C++ 英文的缘故,对一些术语的用词比较在意。
overload, override, overwrite, rewrite 这几个单词经常出现在 C++ 书中,翻阅一些译版后发现并未对 override, overwrite, rewrite 严格区分,大都翻译成重写。其实查阅英文原版会发现,不同的上下文用不同的单词描述。以下逐个分析:
• overload 重载
对于这个翻译,暂时没有异议,也许正是由于 overload 翻译成重载,导致把 override 直接翻译成重写。
• override 覆盖
很多译版翻译成重写。本人觉得这样翻译有歧义,到底是完全重新写还是保留原来方法再写一个新的?无法从字面了解其意思。如果翻译成覆盖或覆写,并解释 override 只是对原方法的另外实现,原方法并未放弃,就不会和 overwrite 混淆。例如,假设 one.cpp 和 two.cpp 两文件在一个完整的程序中同时编译,其各自的程序片段如下:
// one.cpp
#include <iostream>
int dick = 10; // external variable definition 外部变量定义
...//two.cpp
#include <iostream>
static int dick = 20; // override external dick 覆盖外部变量 dick
...two.cpp 中的 dick 覆盖了原来 one.cpp 中的 dick。但是原来的 dick 仍然存在,只不过 dick 在 two.cpp 中被重新定义了。
• overwrite 擦写
网上把 overwrite 和 override 划等号的人比比皆是,认为都是重写的意思。其实 overwrite 才是真正意义上的重写。若翻译成擦写,更一目了然,擦掉原来的值,在原处重新写。例如:
int x = 8;
x = 9; // overwrite x with 9 (把 x 擦写为 9)这里 x 的原值 8 已经被擦写为 9。原值 8 被 9 代替。
• rewrite 重写
该单词经常出现在编程练习中,题目要求重写某例题或某例子。例如:“ Rewrite this code without using break or continue . ” 或 “ Rewrite the following fragment using switch : ”
英英字典对 rewrite 的英文解释为:in order to improve it or change it. 为了提高或改变之。比较接近 rewrite 的中文就是重写或者润色。这里的重写是处于某种原因重新写过,原来写仍然有效。
文章来源:Universe : : dust
《C++ Primer Plus》,并不如推荐的那么好。而且翻译水平实在让人泪流满面,不得不与第六版英文原版对照阅读。
之所以用此书作为学习 C++ 的入门书,是因为在网上看到众人推荐。当我认真仔细地阅读完这本书后,怀疑推荐此书的人是否都是人云亦云。该书从 C 的角度去学习 C++,而不是从 C++ 的角度,因此第五版与第六版都不适合 2012 年学习 C++ 初学者。
强烈推荐《C++ How to Program》,该书知识逻辑编排合理,语句通顺简明扼要,例题难度适中,讲解和注释都很详细,非常适合没有编程语言基础的初学者。
如果有其它编程语言基础的初学者可以直接看《C++ Primer》或者《The C++ Programming Language》。
从三个方面说明此书的问题:
一、知识体系编排
二、新标准并未融入书中
三、错误不少