2012年11月20日

如何从禁止拷贝的pdf中取出文本

摘要: 毕业季,论文中需要用到很多套话,而有些系统手册是禁止拷贝的,怎么办呢? 你当然可以采用adobe的编辑功能,但是adobe是商业的,需要付钱的哦。今天在使用CAJviewer时候发现了其中有OCR技术,但是有些文档还是禁止你使用这个功能,怎么办呢? 其实我们大多需要文档中的一部分,这部分不多,可以采用CAJViewer的“划词连接”功能,选中一段文字后,工具自动提取文字建立链接,而这段文件就可以被复制出来了,简单吧。 阅读全文

posted @ 2012-11-20 15:38 sprzhing 阅读(253) 评论(0) 推荐(0) 编辑

2012年7月27日

bridge模式

摘要: 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就要使用Bridge模式。桥模式的意图是将抽象和实现分开。结构图如下所示:代码如下:日志系统可以是文本日志也可以采用数据库输出方式,系统平台可以是Qt也可以是Java#include<QString>class LogAbstract{public: LogAbstract(); virtual ~LogAbstract(); virtual void WriteLog(QString ... 阅读全文

posted @ 2012-07-27 20:48 sprzhing 阅读(234) 评论(0) 推荐(0) 编辑

2012年7月25日

简单factory

摘要: 参数化工厂模式,可以解决两种问题:1.封装对对象的创建2.推迟化对象的创建//工厂生产的一类产品class TypeBase{public: TypeBase(); virtual ~TypeBase(); virtual void Speak() = 0;};TypeBase::TypeBase(){}TypeBase::~TypeBase(){}//某两种具体产品#include"typebase.h"class IntType:public TypeBase{public: IntType(); ~IntType(); void Speak();pri... 阅读全文

posted @ 2012-07-25 17:46 sprzhing 阅读(230) 评论(0) 推荐(0) 编辑

Singleton

摘要: 单体模式主要用于在纯面向对象编程中在内存中维持一个唯一的全局对象。#include<QString>#include<QDebug>class Singleton{protected: Singleton();public: static Singleton* GetInstance(); void Speak();private: static Singleton* m_Instance; QString sentence;};该程序是在Qt环境下编写,cpp文件内容如下:#include "singleton.h"Singleton* Singl 阅读全文

posted @ 2012-07-25 16:30 sprzhing 阅读(233) 评论(0) 推荐(0) 编辑

2012年6月18日

Qt采用Dom方式读写XML

摘要: XML文件如下所示:<?xml version="1.0" encoding="GBK"?><Catalog name = "树形目录"> <View id = "default"> <任务年度/> <任务编号/> <任务名称/> </View> <View id = "1"> <任务名称/> <任务年度/> <任务编号/> </View> <Vi 阅读全文

posted @ 2012-06-18 12:14 sprzhing 阅读(10639) 评论(0) 推荐(0) 编辑

2012年5月28日

Trie树

摘要: /* Trie树,又叫做字典树,是一种用来求字符串前缀出现次数的数据结构。Trie树很像有限状态机,每个节点虽然不存储具体的键,但是都对应一个字符串*/#include <iostream>using namespace std;#define MAX 26/*定义节点结构*/typedef struct TrieNode{ int nCount; TrieNode* next[MAX];}TrieNode;/*初始化Trie树*/void InitTrie(TrieNode * &root){ root = NULL;}/*创建一个新的Trie节点*/TrieNode* 阅读全文

posted @ 2012-05-28 11:49 sprzhing 阅读(205) 评论(0) 推荐(0) 编辑

2012年5月14日

基本排序练习

摘要: 数据结构中有最简单最基本的几种排序方式,总结如下,代码用C++实现: 1 /*插入排序*/ 2 void InsertionSort(int queque[],int n) 3 { 4 for (int i = 0; i < n;i++) 5 { 6 int j = i; 7 int key = queque[j + 1]; 8 while (j > 0 && queque[j] > key) 9 { 10 queque[j + 1] = queque[j]; 11 ... 阅读全文

posted @ 2012-05-14 15:28 sprzhing 阅读(200) 评论(0) 推荐(0) 编辑

2012年4月22日

为什么类模版的声明和实现不能分开

摘要: 今天实现了一个优先级队列,经过调试,模版实现必须和声明在同一个文件中: 1 template<class T> 2 class Priqueque 3 { 4 private: 5 int maxSize; 6 int n; 7 T* queque; 8 void Swap(int i,int j) 9 {10 T temp = queque[i];11 queque[i] = queque[j];12 queque[j] = temp... 阅读全文

posted @ 2012-04-22 14:13 sprzhing 阅读(470) 评论(0) 推荐(0) 编辑

摘要: 堆,这里单指数据结构中的堆。 它可以解决两个重要的问题:1 排序 2 优先级队列 为什么有了快速排序还要用堆排序呢?这是因为堆排序对n个元素排序,所花的时间不会超过O(nlogn)。 下面说一下我个人的感觉,有些时候,我们为了方面或者说偷懒,我们喜欢采用线性的结构进行排序,但是我们也经常遇到当大规模数据进行排序的时候,这个时候O(n*n)的时间复杂度是等不起的。而堆本质上是将线性结构的数据预处理成树形结构,从而将排序的查询限定在树高范围之内。不能不说这是伟大的创造。 优先级队列:这是一种支持随意插入和最小(最大)提取元素的数据结构,本来它是可以采用任意的形式实现的,我们可以用任意的... 阅读全文

posted @ 2012-04-22 10:44 sprzhing 阅读(355) 评论(0) 推荐(0) 编辑

2012年4月9日

GNUplot中文字体问题

摘要: gnuplot> set term png font '/usr/common/fonts/simsun.ttc,14' #改变字体gnuplot> set out 'cn.png'gnuplot> repgnuplot> set term popgnuplot> repgnuplot> !gthumb cn.png注意simsun.ttc是你在windows字体目录下copy过来的字体,放在'/usr/common/fonts/' 目录下。你直接在gnuplot中输入这些命令就可以得到支持中文的图像。为何这么 阅读全文

posted @ 2012-04-09 14:08 sprzhing 阅读(4455) 评论(0) 推荐(0) 编辑

导航