自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

luoluozlb

失败离成功只有一步,坚持。(QQ:0x265BD66E)

原创 新文章转移到个人网站

如题,我已经制作了自己的个人网站:https://www.luoluolzb.cn之后的新文章发布在自己的个人网站中。

2020-03-15 21:29:18 40

原创 php socket创建简单的HTTP服务器

创建一个http服务器步骤:创建socket套接字绑定某个地址和端口开始监听,并根据客户端的请求做出响应关闭socket(可以省略,php可以自动回收资源)PHP代码<?php/** * @description HttpServer类 * @author luoluolzb <luoluolzb@163.com> * @date 2018/...

2018-03-02 17:34:44 2090

原创 wxWidgets学习 - 双缓冲技术解决屏幕闪烁问题

什么是双缓冲?实例代码运行效果有经验的开发者应该知道,当我们频繁直接在窗口绘图时,会出现图像闪烁的现象,因此需要利用双缓存技术来绘图。什么是双缓冲?所谓双缓冲即在内存中创建一个与屏幕绘图区域一致的对象,先将图形绘制到内存中的这个对象上,再一次性将这个对象上的图形拷贝到屏幕上,这样能大大加快绘图的速度。具体在wxWidgets中的就是建立一个wxMemoryDC,...

2017-12-20 16:19:27 944

原创 wxWidgets学习 - 简单鼠标画线程序

一个用wxWidgets开发的,简单的用鼠标画线的程序,只用于学习,没有实际用处。 主要思路: 处理鼠标左键三个事件:按下,移动,松开 按下的时候记录按下状态和位置,移动的过程中画线条,松开后取消按下状态。main.cpp#include "wx/wx.h"//主窗口类class MyFrame: public wxFrame{public: MyFrame(); voi

2017-12-17 23:39:32 708

原创 wxWidgets学习 - 弹球程序

学习了几天的wx了,作为练习,做了一个程序:随机生成多个小球在窗口内随机方向运动,并且小球碰到屏幕可以反弹。代码如下,为了方便所有的代码都写在了一个文件中了main.cpp:#include <wx/wx.h>#include <ctime>#include <cstdlib>//弹球typedef struct{ wxCoord x, y; //位置 wxCoord

2017-12-17 16:37:28 393

原创 wxWidgets学习 - HelloWorld

在Code::Blocks新建一个wx空白项目并建立一个main.cpp文件,代码如下:#include "wx/wx.h"//主窗口类class MyFrame: public wxFrame{public: MyFrame();};//主窗口类构造函数MyFrame::MyFrame() :wxFrame(NULL, wxID_ANY, wxT("Title")

2017-12-16 14:17:37 250

原创 《C++编程风格》第一章:抽象 课后练习

原题如下:分析程序清单1-4中的类。函数main()输出的结果如下所示: The atomic weight:196.9665 The atomic number:79 Price per ounce:450.75应用本章中所学到的规则, 对程序中的抽象及相应的类进行评价。(标识符Pb和Au是化学符号, 分别表示铅和金, 这两个名字来自拉丁文plumbum和aurum)程序清

2017-12-15 22:45:27 140

原创 wxWidgets学习 - 使用Code::Blocks16.0+wxWidgets3.0.3搭建环境

1.Code::Blocks下载安装下载地址:http://www.codeblocks.org/downloads/26#windows这里选择codeblocks-16.01mingw-setup.exe下载安装: 选择这个的原因是它自带了mingw编译器,不需要自己再额外进行配置编译器了。 下载完成后直接安装即可。 如果需要汉化,请搜索Code::Blocks汉化包即可2.wxWid

2017-12-15 22:28:38 4533

原创 C/C++计算器(利用栈表达式求值,支持函数运算)

表达式求值是程序设计语言编译中的一个基本问题。它的实现就是对“栈”的典型应用。其实现思想和数据结构书上基本一致,不同的增加的函数计算,并可以扩充,利用两个栈:一个操作数栈和一个运算符栈。计算器C/C++实现代码: (开发环境:Dev-Cpp编译器)1.Express.h 代码:#include <string>#include <stack>#include <cctype>#include

2017-12-13 16:22:06 6971 9

原创 PHP分页函数

我们经常会用吃吧数据库里面读取数据显示出来,当数据行较多时就需要把数据分页显示。 这里写了一个通用的分页函数:paging.func.php<?php/** * 数据分页函数 * @param integer $count 数据总行数 * @param integer $showCount 显示行数 * @param integer $index 当前页号 * @par

2017-06-18 23:29:02 466

原创 PHP图片水印类(GD库)

这几天学习了一下GD扩展库,昨天写了一个图片验证码,今天继续写了一个给图片增加水印的类。什么是图片水印先来看一下什么是水印: 水印,是指在造纸过程中形成的,“夹”在纸中而不是在纸的表面,迎光透视时可以清晰看到有明暗纹理的图形、人像或文字,它是纸张在生产过程中用改变纸浆纤维密度的方法而制成的。通常人民币、购物卷、粮票、证劵等等,都采用此方式,以防止造假类似的,图片水印就是在自己制作的图片或自己网

2017-06-16 22:06:28 2002 1

原创 PHP生成图像验证码(GD库的使用)

验证码可以用在类似于用户登录、注册等需要验证的页面,防止恶意的或非人为的登录、注册等。这里记录一下所学到的知识与大家分享。什么是GD库PHP手册中的介绍: 简介 PHP 并不仅限于创建 HTML 输出, 它也可以创建和处理包括 GIF, PNG, JPEG, WBMP 以及 XPM 在内的多种格式的图像。 更加方便的是,PHP 可以直接将图像数据流输出到浏览器。 要想在 PHP 中使用

2017-06-15 20:16:15 2054

原创 使用PHP压缩文件和解压文件 (ZipArchive类的使用)

因为自己需要PHP来压缩和解压文件,就上网查了一下发现没有合适的,我就自己研究了一下PHP手册中的ZipArchive类,在这里记录一下学到的东西。PHP手册:http://php.net/manual/zh/class.ziparchive.php1.ZipArchive类首先来看看ZipArchive类的使用方法,这里我翻译了一下PHP手册中的函数说明: 函数 功能 open 打开

2017-06-03 22:01:49 7303

原创 第八届蓝桥杯省赛真题 - 7.日期问题

标题:日期问题 小明正在整理一批历史文献。这些历史文献中出现了很多日期。小明知道这些日期都在1960年1月1日至2059年12月31日。令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的,有采用月/日/年的,还有采用日/月/年的。更加麻烦的是,年份也都省略了前两位,使得文献上的一个日期,存在很多可能的日期与其对应。 比如02/03/04,可能是2002年03月0

2017-05-30 00:12:34 5980 9

原创 第八届蓝桥杯省赛真题 - 6.取数位

题目:标题:最大公共子串最大公共子串长度问题就是:求两个串的所有子串中能够匹配上的最大长度是多少。比如:"abcdkkk" 和 "baabcdadabc",可以找到的最长的公共子串是"abcd",所以最大公共子串长度为4。下面的程序是采用矩阵法进行求解的,这对串的规模不大的情况还是比较有效的解法。请分析该解法的思路,并补全划线部分缺失的代码。#include <stdio.h>#inclu

2017-05-30 00:01:28 340

原创 第八届蓝桥杯省赛真题 - 5.取数位

题目:标题:取数位求1个整数的第k位数字有很多种方法。以下的方法就是一种。// 求x用10进制表示时的数位长度 int len(int x){ if(x<10) return 1; return len(x/10)+1;}// 取x的第k位数字int f(int x, int k){ if(len(x)-k==0) return x%10; return __

2017-05-29 23:16:01 434

原创 第八届蓝桥杯省赛真题 - 4.方格分割

题目: 标题:方格分割 6x6的方格,沿着格子的边线剪开成两部分。 要求这两部分的形状完全相同。 如图:p1.png, p2.png, p3.png 就是可行的分割法。 试计算: 包括这3种分法在内,一共有多少种不同的分割方法。 注意:旋转对称的属于同一种分割法。 请提交该整数,不要填写任何多余的内容或说明文字。 解题思路:

2017-05-29 23:04:34 1626 1

原创 第八届蓝桥杯省赛真题 - 3.承压计算

题目: 标题:承压计算 X星球的高科技实验室中整齐地堆放着某批珍贵金属原料。 每块金属原料的外形、尺寸完全一致,但重量不同。 金属材料被严格地堆放成金字塔形。 7 5 8 7 8 8

2017-05-29 22:54:51 591

原创 第八届蓝桥杯省赛真题 - 2.等差素数列

题目: 标题:等差素数列 2,3,5,7,11,13,….是素数序列。 类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列。 上边的数列公差为30,长度为6。 2004年,格林与华人陶哲轩合作证明了:存在任意长度的素数等差数列。 这是数论领域一项惊人的成果! 有这一理论为基础,请你借助手中的计算机,满怀信心地搜

2017-05-29 19:29:28 3170 4

原创 第八届蓝桥杯省赛真题 - 1.购物单

题目: 标题: 购物单 小明刚刚找到工作,老板人很好,只是老板夫人很爱购物。老板忙的时候经常让小明帮忙到商场代为购物。小明很厌烦,但又不好推辞。 这不,XX大促销又来了!老板夫人开出了长长的购物单,都是有打折优惠的。 小明也有个怪癖,不到万不得已,从不刷卡,直接现金搞定。 现在小明很心烦,请你帮他计算一下,需要从取款机上取多少现金,才能搞定这次购物

2017-05-29 19:23:30 329 1

原创 第七届蓝桥杯决赛真题 - 机器人塔

题目: 机器人塔 X星球的机器人表演拉拉队有两种服装,A和B。 他们这次表演的是搭机器人塔。 类似: A B B A B A A A B B B B B A B A B A B B A 队内的组塔规则是: A 只能站在 AA 或 BB 的肩上。 B 只能站在 AB 或 BA 的肩上。 你的任务是帮助

2017-05-23 23:47:40 725

原创 第七届蓝桥杯决赛真题 - 一步之遥

题目: 一步之遥 从昏迷中醒来,小明发现自己被关在X星球的废矿车里。 矿车停在平直的废弃的轨道上。 他的面前是两个按钮,分别写着“F”和“B”。 小明突然记起来,这两个按钮可以控制矿车在轨道上前进和后退。 按F,会前进97米。按B会后退127米。 透过昏暗的灯光,小明看到自己前方1米远正好有个监控探头。 他必须设法使得矿车正好停在摄像头的下方,才

2017-05-20 16:34:12 1869 3

原创 第七届蓝桥杯决赛真题 - 凑平方数

题目: 凑平方数 把0~9这10个数字,分成多个组,每个组恰好是一个平方数,这是能够 办到的。 比如:0, 36, 5948721 再比如: 1098524736 1, 25, 6390784 0, 4, 289, 15376 等等… 注意,0可以作为独立的数字,但不能作为多位数字的开始。 分组时,必须用完所有的数字,不能重

2017-05-20 16:26:03 2982 8

原创 EasyUI Base - EasyLoader(加载器)

EasyLoader用于动态加载EasyUI插件,使之可以自定义加载需要的插件。使用场景出于性能的考虑, 不一次性的加载easyui核心js、css文件, 而是先展示基础文档结构。项目只是简单的用到easyui的几个组件, 此时可以按需加载该组件的js和css文件。你需要使用某个组件, 但是不知道该组件是否依赖于其他组件(简单的js引用无法达到), 使用easyloader可以自动加载依赖组件

2016-12-15 00:03:55 395

原创 EasyUI Base - parser(解析器)

前言EasyUI的组件包括功能强大的DataGrid, TreeGrid、面板、下拉组合等。用户可以组合使用这些组件,也可以单独使用其中一个。(使用的形式是以插件的方式提供的) EasyUI体系结构如图所示,EasyUI所有的插件主要分为六大部分: Base部分的插件有: 其他部分可以参见API:http://pan.baidu.com/s/1pL6O7hDParser(解析器)解析器是eas

2016-12-14 23:36:50 572

原创 EasyUI的下载与使用

官网下载地址http://www.jeasyui.com/download/index.php下载以后,我们会得到一个压缩包,解压以后,目录结构是这样的: 解压包中各个目录的说明1. demo demo目录是EasyUI各个组件的演示例子。2. demo- mobile 这个目录是EasyUI各个组件在移动端开发的演示例子。 3. locale 这个目录是EasyUI对于各个国家的语言包

2016-12-14 22:43:42 10241 1

原创 EasyUI简介

EasyUI 简介easyui是一种基于jQuery的用户界面插件集合。easyui为创建现代化,互动,JavaScript应用程序,提供必要的功能。使用easyui你不需要写很多代码,你只需要通过编写一些简单HTML标记,就可以定义用户界面。easyui是个完美支持HTML5网页的完整框架。easyui节省您网页开发的时间和规模。easyui很简单但功能强大的所有的 EasyUI 插件jQuery

2016-12-14 20:49:14 4201

原创 [蓝桥杯练习系统]基础练习 十六进制转八进制

原题链接:http://lx.lanqiao.cn/problem.page?gpid=T51 基础练习 十六进制转八进制 时间限制:1.0s 内存限制:512.0MB 问题描述   给定n个十六进制正整数,输出它们对应的八进制数。 输入格式   输入的第一行为一个正整数n (1<=n<=10)。   接下来n行,每行一个由0~9、大写字母A~F组成的字符

2016-11-01 19:11:15 894

原创 各种排序算法(内部排序)及其实现

本文是基于《数据结构(C语言版)(第二版)》(严蔚敏)其排序章节所做的总结。因此具体解释可以去参考此书。概念什么是排序排序是按关键字的非递减或非递增顺序对一组记录重新进行排列的操作。数学描述: 设n个记录的序列为 {R1, R2, …, Rn},其关键字序列为 {K1, K2, …, Kn} 确定1, 2, …, n的一种排序p1, p2, …, pn,使之满足Kp1 <= Kp2 <= …

2016-08-26 17:06:55 2855 1

原创 散列表(哈希表)及其实现

基本概念哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。例如:给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)

2016-08-22 17:22:06 519

原创 AVL树(平衡二叉树)及其实现

概念AVL树是高度平衡的而二叉树。 它的特点是:AVL树中任何节点的左右子树的高度差(平衡因子)的绝对值不大于1。 它需要每次在平衡因子不为0,-1,1时进行调整,使树的再次平衡。从而达到高效的查找。 点击这里:AVL的详细介绍C++代码实现:AVL树是特殊的二叉排序树,因此它的实现除了插入操作外,其他的和平衡二叉树都相同,这里就不在实现,只给出插入的算法。#include <iostrea

2016-08-22 10:11:54 511

原创 二叉搜索树(二叉查找树、二叉排序树)及其实现

二叉排序树的定义二叉排序树(Binary Sort Tree),又称二叉查找树、二叉搜索树。它或者是一棵空树;或者是具有下列性质的二叉树: 1. 若左子树不空,则左子树上所有结点的值均小于它的根结点的值; 2. 若右子树不空,则右子树上所有结点的值均大于它的根结点的值; 3. 左、右子树也分别为二叉排序树。存储结构: typedef struct bst_node { int

2016-08-17 18:10:44 1004 1

原创 图的最短路径算法(Dijkstra,Floyd)的实现

从某个源点到其余各顶点的最短路径迪杰特斯拉算法Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。算法步骤如下:  1. 初使时令 S={V0},T={其余顶点},T中顶点对应的距离值  若存在,d(V0,Vi)为弧上的权值  若不存在<V0,Vi>,d(V0,Vi)为∝  2. 从T中选取

2016-08-14 11:44:49 5758

原创 图的遍历及最小生成树(prim,kruskal)的实现

关于图的介绍网上很多,这里就不介绍了,直接上代码: 最小生成树算法可以看看:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/30/2615542.html#include <iostream>#include <iomanip>#include <climits>#include <queue>using namespace std;#

2016-08-13 21:11:45 1365

原创 根据前序和中序序列确定二叉树

方法1、确定树的根节点。树根是当前树中所有元素在前序遍历中最先出现的元素。 2、求解树的子树。找出根节点在中序遍历中的位置,根左边的所有元素就是左子树,根右边的所有元素就是右子树。若根节点左边或右边为空,则该方向子树为空;若根节点左边和右边都为空,则根节点已经为叶子节点。 3、递归求解树。将左子树和右子树分别看成一棵二叉树,重复1、2、3步,直到所有的节点完成定位。其的遍历来确定二叉树可以参考:

2016-08-08 21:04:48 6618

原创 哈夫曼编码算法及其实现

概念哈夫曼编码就是利用哈夫曼树构造的最优编码。算法基本思想是:为出现次数较多的字符编以较短的编码。 对于每个字符,根据其出现的次数为权值,构造哈夫曼树。然后从根到每个叶子节点的路径上,左分支赋值0,右分支赋值1,个分支构成一个二进制串,这个二进制串就是哈夫曼编码。C++代码#include <iostream>#include <cstring>#include <algorithm>usi

2016-08-05 09:53:52 3888

原创 哈夫曼树及其算法实现

概念:哈夫曼(Huffman)树又称最优二叉树或最优搜索树,是一种带权路径长度最短的二叉树。在许多应用中,常常赋给树中结点一个有某种意义的实数,称此实数为该结点的权。从树根结点到该结点之间的路径长度与该结点上权的乘积称为结点的带权路径长度(WPL),树中所有叶子结点的带权路径长度之和称为该树的带权路径长度. 具体解释:http://lib.csdn.net/article/datastructur

2016-08-04 22:10:35 19851 7

原创 链表的快速排序及冒泡排序

快速排序的思路众所周知,快速排序排序的核心思想是:选定基准值并排好其位置, 根据基准值将序列分割两半,分别递归之。 单链表寻找基准点的方法:用两个指针i和j,这两个指针均往next方向移动,移动的过程中保持i之前的节点值都小于(或大于)选定的基准值key,i和j之间的节点值都大于key,那么当j走到末尾的时候便完成了一次分割支点的寻找。(参考博文:http://blog.csdn.net/wumu

2016-08-03 14:13:46 488 1

原创 线索二叉树的生成及遍历

概念线索二叉树:按照某种遍历方式对二叉树进行遍历,可以把二叉树中所有结点排序为一个线性序列。在改序列中,除第一个结点外每个结点有且仅有一个直接前驱结点;除最后一个结点外每一个结点有且仅有一个直接后继结点。这些指向直接前驱结点和指向直接后续结点的指针被称为线索(Thread),加了线索的二叉树称为线索二叉树。百科解释:链接完整C++代码:#include <iostream>using namesp

2016-08-02 22:53:48 507

原创 二叉树各种遍历算法(递归及非递归算法)

遍历的概念:所谓遍历(Traversal)是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。遍历是二叉树上最重要的运算之一,是二叉树上进行其它运算之基础。二叉树上访问结点所做的操作依赖于具体的应用问题。 遍历方式:根据访问结点操作发生位置命名:① NLR:前序遍历(PreorderTraversal亦称(先序遍历))——访问根结点的操作发生在遍历其左右子树之前。② LNR:中序遍历(I

2016-08-02 12:12:09 594

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