自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

周翔的专栏

努力终有回报 https://github.com/ZhouBox

  • 博客(234)
  • 资源 (3)
  • 收藏
  • 关注

原创 我也来谈谈分布式并行计算---------one

今天中午回学校食堂吃饭,女朋友问我分布式并行计算式什么?说下背景,女朋友考上研究生现在正在选导师。我就给她举了个例子,比如一个大规模的问题,一台计算机计算需要一个月,现在分解成30个可以同时进行的子问题,然后再30台计算机上算,只需要一天的时间。我本人从来没有读过这方面的专业论文或者书籍,关于这方面的了解只是一些资讯网站和我自己乱想想。那今天我也来说说鄙人的拙见。分布式并行计算是一种解决问

2014-02-28 17:08:43 2276

原创 最近的想法

我想基于Qt的Graphicsview框架设计一个2d游戏开发框架,希望我能够完成

2014-01-27 22:56:25 1099

原创 Qt中unicode转utf-8

最经在研究AT指令接受短信,短信是unicode编码,接受后需要根据系统的编码方案进行相关的转码比如接受到了一串字符4F60597D,它是“你好”的unicode编码,一个unicode编码占两个字节,所有可以使用4个16进制数表示:4F60->你,597D->好。那我们怎么转换了?在QString中存放的是QChar,你可以把她当作ushort来看待。因为Qt本身的编码方案就是unico

2013-12-29 19:14:23 11711 4

原创 Qt中UTF-8转Unicode

#include #include #include #include int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); // const std::string str = "汉字"; const QString str = "汉字"; std::cout << st

2013-12-02 09:09:59 10549 1

原创 使用setmask实现不规则窗体

setmask为调用它的空间添加一个遮罩,在这个遮罩范围之外的都没有显示,但是窗体大小不会变化。#ifndef SHAPEWIDGET_H#define SHAPEWIDGET_H#include #include #include #include #include class ShapeWidget : public QWidget{ Q_OBJECTpubl

2013-11-30 20:42:30 7641

原创 Qt关闭窗体自动释放资源

其实很简单只要设置一下属性就行setAttribute(Qt::WA_DeleteOnClose)

2013-11-30 18:56:23 5328

原创 mongoDB安装

mongoDB的介绍大家可以自己百度,NoSQL,文档型数据库...mongoDB的安装很简单,如果使用的是ubuntu,比如我,只要输入sudo apt-get install mongodb就行了,但是如果想要最新的版本可以去官网下载。和其他的数据库,一样mongoDB分为服务器和客服端,对应于mongod和mongo。mongoDB启动时需要指定各项参数,我的简单的参数为:

2013-10-29 14:43:07 1005

原创 C51单总线操作,读取温度DS18B20

本人不是电子出生,所以电路图大家就将就着看吧ds18b20的驱动#ifndef DS18B20_H#define DS18B20_H#include #include "delay.c"//主机 11.0592Mhz////sbit DQ = P3^7;#define SKIP_ROM 0xcc //跳过rom#define CONVERT 0x44

2013-10-27 10:44:23 3407 1

原创 二维码生成

使用了qrencode生成二维码

2013-09-28 22:48:41 2456 4

原创 Qt和Zbar的结合使用识别二维码条形码

图像的采集使用Qt5提供的多媒体模块,条形码,二维码等等的识别使用的Zbar。摄像头用的地摊货,晚上在灯光下的效果还行

2013-09-26 22:21:53 9610 15

原创 发布一个打飞机游戏

基本的类图效果图代码可以去OSCHINA找

2013-09-07 20:23:53 1842 1

原创 Qt5.1.1 for Android

将我以前写的一个折线图程序试了试效果还行,可是文件大小来说就...debug版本release版本两者相差不大这是我的配置一开始下载的sdk说不能找到,然后下载了一个ADT,使用了里面的sdk目录才有用

2013-08-31 12:12:20 2014

原创 Qt中对象的释放

今天就来谈谈在qt中类对象的释放。在qt代码中大家会见到很多对象new了没有delete,你可能会疑惑,这不是会造成堆内存泄漏吗?在qt中其实有其的一套对象管理模型,虽然不及java,C#等语言的垃圾回收机制。1. LoginDialog ld(this);//指定父亲是为了显示的时候系统完成位置的计算 ld.setWindowTitle("Login"); ld.show

2013-08-04 07:46:32 10013

转载 container_of 理解

问题:如何通过结构中的某个变量获取结构本身的指针???关于container_of见kernel.h中:/*** container_of - cast a member of a structure out to the containing structure* @ptr:     the pointer to the member.* @type:     the t

2013-07-27 09:45:11 770

原创 中断处理

查看设备状态有两种方式,一种是轮询,一种是中断,可是轮询代价太大,如果是简单的系统,处理的时间单一,比如只有一个按键操作,那么可以轮询,如果是操作系统的,则是对响应来说是灾难性的。中断的引入是由I/O操作的不确定性以及与CPU之间的速度矛盾。设备通过某种硬件信号来异步地唤起CPU的注意,说明中断的到来,是否处理。这些硬件的信号就是中断。每个中断设备都被分配一个相关的标识符,被称为中断请求(IR

2013-07-18 07:47:10 1138

原创 工作队列

工作队列是内核中用于进行延后工作的一种方式。延后工作在很多地方使用到,比如1.1个错误中断发生后,触发网络适配器重新启动;2.同步磁盘缓冲区的文件系统任务;3.给磁盘发送一个命令,并跟踪存储协议状态机。等等工作队列辅助库向用户提供了两个接口结构:workqueue_struct和work_struct,使用工作队列的步骤如下1.创建一个工作队列(或一个workqueue_str

2013-07-16 15:48:41 1088

原创 内核并发处理

随着硬件的发展,SMP(对称多处理器)已经很普遍,如果内核的调度机制是可抢占的,那么SMP和内核抢占是多线程执行的两种场景。当多个线程同时访问内核的数据结构时,我们就需要对其做串行化处理。自旋锁和互斥体访问共享资源的代码区称为临界区。自旋锁(spinlock)和互斥体(mutex, mutual exclusion)是保护内核临界区的两种基本机制。自旋锁可以确定在同时只有一个线程进入临

2013-07-15 16:54:43 1258

原创 内核定时器

内核中的许多部分的工作都高度依赖与时间信息。Linux内核利用硬件提供的不同的定时器以支持忙等待和睡眠等待等时间相关的服务。所谓忙等待,就是cpu不停的运转。但是睡眠等待,进程将放弃cpu。所以,只有在睡眠等待不可行的情况下,才考虑使用忙等待。内核也提供了相关的api,使可以在一段时间之后调用某函数运行。在内核中存在这一些重要的与定时器相关的变量。HZ和Jiffies系统定时器能以可编程的

2013-07-14 07:09:57 1020

原创 基于epoll的聊天室程序

epoll相对于poll和select这两个多路复用的I/O模型更加的高效。epoll的函数很简单,麻烦的地方在于水平出发和边沿触发。               用张图来说明下              ET(边沿)只是在状态反转时触发,比如从不可读到可读。而LT(水平)就是如果可读,就会一直触发。所以在使用ET的时候要做一些额外的处理,比如可读的,一直把缓冲区读完,进入不可读状态,

2013-07-13 20:44:31 3946

原创 内核启动过程

以x86体系结构的计算机为例          第一步是BIOS从启动设备中导入主引导记录(MBR),接下来MBR中的代码查看分区表并从活动分区读取GRUB,LILO或SYSLINUX等引导装入程序(Bootloader),之后引导装入程序会加载压缩后的内核映像并将控制权传递给内核。内核获得控制权后,会将自身解压并投入运行。x86的cpu有两种操作模式:实模式和保护模式。在实模式下,用

2013-07-11 15:33:52 1031

原创 QTabWidget+QToolBar实现浏览器标签页

直接上代码/********************************************************************* author 周翔* e-mail [email protected]* blog http://blog.csdn.net/zhx6044*************************************************

2013-07-11 10:00:14 7198 5

原创 linux字符设备驱动程序的编写

在此涉及到两个重要的结构体cdev和file_operations,前者为描述字符设备,后者为设备驱动程序的入口点。对与file_operations的成员描述请看 file_operations中各项解析我用图表示下在内核2.6版本后新版本的字符设备注册上图这是驱动程序应该做的,但是要真正地使用它,我们还必须还要创建设备节点(linux的设备操作都是标准的文件操作,就是当作文

2013-06-29 23:09:40 3160

原创 引用计数实现

在看More Effective C++时就有引用计数,现在自己实现了下。完成计数的基类/**************************************************author:周翔*e-mail:[email protected]*blog:http://blog.csdn.net/zhx6044***************************

2013-06-22 22:28:10 1441

原创 引用计数

C++中没有垃圾收集机制,但是C++提供了我们能够实现我们想要的一切的基础。下面我简单了实现了一个引用技术的类,没有什么设计可言,只是演示一下。引用计数将客户需要做的销毁对象的代码迁移到对象本身,对象在不被使用时即计数为0时自身实现销毁。/**************************************************author:周翔*e-mail:6044

2013-06-22 12:28:03 1434

原创 qwt学习一

学习这个东西方向对了,就对了一半今天我开始学习基于qt库的一个开源的绘制2维的统计图的库--qwt。我们画东西首先要有一个容器,不然都是徒劳,今天我们就介绍这个类--QwtPlot它继承自QFrame和QwtPlotDict,QFrame提供一个QWidget的框架,QwtPlotDict为QwtPlot管理在其中的plot items,就是绘制的项。在QwtPlot上我们可以绘制无限

2013-06-18 18:24:58 26523 12

原创 我也来谈面向对象编程

作为一个第一门程序设计语言就是C++的,而且一直使用到现在的计科系的学生来说,我也来谈谈oop。在我们小的时候,家长为了培养我们,为让我们做一些自己能够力所能及的事。比如自己乘饭。妈妈会很耐心的和我们说,手先抓住碗,用另一只手打开锅盖,然后拿起饭勺,用饭勺挖合适的大小的饭块放到碗里,重复几次,根据自己的食量挖多少饭,放下饭勺,盖上锅盖。ok,饭乘好了,这是过程的,妈妈只是教你怎么做。妈妈没

2013-06-17 09:57:17 1362

原创 项目总结

前前后后,断断续续,途中经过了指导老师妈妈住院几个月,组里成员作为换校生到南京等等的事件,还是在结题期限之前完成了预期项目要求。这次的项目就是一个嵌入式网关,联通zigbee和GSM(还是短信,比价落后)先来几张运行的图zigbee使用的TI的cc2430,协议是Z-Stack,说实话,协议栈太庞大,现在只是能够采集数据,对节点的控制还是不行。听教无线网的老师说,zigbe

2013-06-17 09:33:41 1122

原创 C++对象原型

C++的对象在内存中是怎么表示的,数据成员和成员函数之间有什么关系,this指针到底是干嘛的。这里不考虑虚函数表一个对象内存中占的大小其实就是他的数据成员的大小   这是我用的例子   class T{public: T() {} void info() const { cout << "info\n"; } void print

2013-06-16 22:30:49 1133

原创 一些经验总结

大三马上也结束了,大四想出去转转。在学校3年,很快。家是农村的,用中国合伙人中的话说就是土鳖,对计算机这一行也就是大一才开始了解的。想想这3年,过的还行。    对于计算机,大一接触的第一门程序设计语言--C++,不知道为什么,但是就很喜欢,一直在用。从Java到现在web课上的C#,还有perl,可是一直没找到当初C++的感觉,所以一直在用C++。在大一时,什么问题都是C++代码一行一行敲出

2013-06-14 12:45:20 1199

原创 Qt mvc四

上次提到对student类属性的描述是侵入式的,这次介绍非侵入式的,其实我也就是借鉴了便准库中的traits,了解的同学应该都知道,不了解的可以查查。我定义了一个类模板,Members,对于类student模板提供了一个特化/**************************************************author:周翔*e-mail:604487178@q

2013-06-07 19:29:57 2555 4

原创 Qt元对象系统和模板机制的冲突

Qt元对象系统是对为了Qt对象类型和信号与槽机制引进的,Qt的工具包中有一个元对象编译器,它是为支持Qt元对象系统而产生一些额外C++代码,这些编码会和源码一起被标准的C++编译器编译,因为Qt的这一套标准是不支持的,但是可以实现,说白了就是在标准编译器编译前的一个预处理。C++的模板机制是代码重用,其实现在已经不只是这些。如果有兴趣可以了解一些C++的最新的研究方面,比如模板元编程,繁殖性编

2013-06-07 18:51:24 2191 1

原创 Qt mvc 三

前面两节讲的model是一维的,这次开始二维的也就是我们常说的Table,相对与list,我们多了一个列的概念。下面讲解一个例子。我先说明一下我们这个例子,在程序目录下,我们有一个文本文件,其中存放的学生信息。数据存放的格式学号       姓名       性别xxx         xxx           x每个学生的信息占一行,现在我们需要将这个文件中的所有学生信息加

2013-06-06 11:39:46 4210

原创 Qt mvc二

继续上次的例子,对于list才说只有行,讨论列是没有意义的。    bool insertRows(int row, int count, const QModelIndex &parent);    bool removeRows(int row, int count, const QModelIndex &parent);在文档中,insertRows是这么写的,在支持这个操作的m

2013-06-04 22:11:22 5563

原创 Qt mvc学习一

mvc是经典的三层结构,将数据,视图和逻辑分离。Qt中的Model/View框架,实现了这个模式。在Qt中这个模式设计到三个类,model类,view类和delegate类。model类保存数据,view复制显示,而delegate负责协调model和view之间的数据edit(编辑)和render(渲染)。                   这些在model子类中需要实现的方法可以分为

2013-06-02 22:32:28 16900 4

原创 图-公交查询问题乱弹(三)

公交线路基本都是双向的,在我们以前的那个图中两个站点之间应该是这么画的,如下:,双向的有向图,就可以用无向图代替,因为无向图节点之间是可以双向的到达的,所以在前面的我们介绍的可以用链接形式来表示图的方法,在每个站点中不经要保存从左往右的顺序的下个节点,还应该记住它到上个的节点的线路和节点。如果我们将每条线路都拉成直线,每条线的第N个的站点排成第N列。如下所示,只是举个例子与以前的图没关系

2013-05-28 22:30:56 1303

原创 图-公交查询问题乱弹(二)

还是先上昨天鬼画符的图,有点改变               今天来谈谈两个站点之间的路线查找问题。假设一个情景,你现在在站点A,你现在想去站点J。你输入了两个站点的A->J,然后我们的系统开始工作。站点J在线路2和3上,而我现在在线路1和4上,我该乘那辆车啊?在这本人引入了一个概念,叫做线路相关联度。我是这样来表示的(1,4)->1(个站点),(2,4)->1(个

2013-05-27 12:24:28 875

原创 图-公交查询问题乱弹(一)

下面这图是本人乱涂鸦的只有3条线路的公交路线图                  <!--p {margin-bottom:0.21cm}-->一号线 A-B-E-D-K二号线F-B-C-D-K-J三号线H-I-E-J-K-D保存这个数据结构使用图的变形很合适首先是一个所有路线的集合,一个元素包含两个标识,路线和第一个

2013-05-26 15:18:05 979

原创 C++异常处理(一)

在程序的一般设计中,怎么判定一个方法适合按你预想的那样执行了,在C语言中,返回一个整数是常用的方法,比如一个-1,比如linux打开一个文件open,失败返回-1,大家如果都遵守还好,可是还是会出现返回0是失败的。Java中对于异常错误处理使用异常,异常是强制使用的,在C++中不是,你可以完全不使用,说实话我很好使用,有时基本都忘了,使用的最多的还是C的风格,这两个对于异常处理的风格没有孰优孰劣。

2013-05-25 08:45:29 862

原创 平衡二叉树

二叉树的查找,插入和删除操作的时间与树的高度有关,如果树尽量的矮胖,那么时间就短,那就要是满二叉树,或者说满N叉树,对于一颗M个节点的满N叉树时间复杂度为,但是维护满叉树,难度是很大的。所以AVL树(平衡树)放宽了条件,允许左右子树的高度差在一定的范围之内,avl树平衡条件是左右子树高度相差不能为2,而不是满叉树左右子树高度相同。AVL是以提出它的两位苏联数学家的名字头字母命名的。一棵N个节点的A

2013-05-24 18:24:16 1066

原创 C++中的类型转换

1.const_cast   看见const,大家第一反映就是关键字,对这个类型装换和const关键字相关。这个类型转换用来舍弃变量的不可变特性。实际在过程中,其实我们不许要使用这个类型转换。但是可能在使用第三方库的时候不如你所愿,库对你是不可见的,所以你需要这个转换。2.static_cast  static_cast是我们使用的最多的类型转换。它显示地执行C++语言直接支持的转

2013-05-20 21:00:47 828

hadoop eclipse插件

hadoop eclipse 插件 进行MapRecude程序的开发

2012-10-25

基于qt的多线程视频采集与传输

将服务端的设备虚拟化,供客户端调用。使用TCP/IP协议传输,使用V4L2实现视频采集。

2012-10-08

perl正则表达式

perl是unix上的工具,但是现在已经发张成了一门很完整的编程语言特别是在网络服务端

2012-07-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除