自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 Qt组装Json格式数据

对于Json格式的数据,Qt提供了相当不错的支持,当你用到Json相关的内容时,直接包含以下类即可。QJsonArray、QJsonDocument、QJsonObject、QJsonValue。闲话不多说,上才艺。// 构造一个单个Json对象QJsonObject _obj;_obj.insert("josn_key", QJsonValue("json_value"));// 构造一个Json数组 以10对Json为例子QJsonArray _json_array;for(int _ind

2020-07-27 16:09:12 890

原创 Qt三层架构应用程序设计及开发

开发环境:Qt5.6.3 + Windows系统 + SQLite说到设计界面的应用程序开发框架,离不开经典的三层架构(界面层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)),本人前段时间开发了一个收银系统体系下的PC端应用程序,主要基于三层应用程序开发框架,不过是有一些个人修改,更加适合我开...

2020-05-03 22:18:51 5399 2

原创 Windows下Qt使用共享内存的保镖程序

Qt基于共享内存的保镖程序最近需要对程序加一个保护机制,为了能够持续运行而编写一个保镖程序,保镖程序的功能就是启动被保护的程序。平台:Win10对于共享内存,大家都知道常用于进程通信,本篇文章其实也是简易的进程通信。这个保护机制的需求下来以后,我的第一个思路就想到了共享内存,毕竟之前为了让主程序启动唯一性,就用了共享内存来判断,这时候正是扩展其应用的时候。先来看一段我主程序main函数的开...

2020-01-21 13:48:57 243

原创 Qt下简单工厂模式实现多种数据库操作

Qt下简单工厂模式实现多种服务器操作简单工厂数据库连接基类数据库连接派生类数据库连接工厂类结合Qt类库操作数据库简单工厂基于简单的工厂设计模式,由单一工厂生产数据库连接基类的派生类对象。数据库连接基类配合Qt自带的数据库类。#ifndef SQLCOMMON_H#define SQLCOMMON_H#include <QtSql>class QSqlCommon{...

2020-01-02 16:03:48 515

原创 Linux与Windows动态库Tips

Linux与Windows查看动态库所含函数名的方法Linux:nm -D xxx.so //查看动态库详细内容nm -D xxx.so | grep xxx_* // 查看所有xxx_开头的函数Windows:装有Visual Studio,在安装目录中找到dumpbin.exe文件,打开命令提示符,将dumpbin.exe拖进去,这时候命令提示符会显示该路径,加上/exports ...

2019-10-29 14:32:38 132

原创 Qt使用http协议进行Json格式post数据

Qt使用http协议进行post数据使用Qt进行post数据近段时间项目遇到使用http协议进行post请求,简单逻辑就是post一段请求到url,等待url回复,若一定时间内没有受到回复则按超时处理。这里直接上post相关代码以及阻塞处理消息的相关代码。先加上Qt相关的头文件#include <QJsonObject>#include <QtNetwork>#...

2019-10-18 17:16:51 10131 1

原创 Qt串口通信 串口打开 数据处理

Ubuntu下Qt串口通信Qt串口通信主要使用QSerialPort类,通信的数据类可以采用底层的unsigned char数组或者QByteArray类。下面po一段本人写的与串口相关的代码。打开串口 if(m_serial == NULL) { m_serial = new QSerialPort(); } if(...

2019-08-19 17:09:40 1803

原创 Mysql常用指令(持续更新)

1.获取表中字段数:select count(*) from information_schema.columns where table_schema='databaseName' and table_name='tableName'

2019-06-21 12:24:47 123

原创 常用git指令

Git常用指令git config --global user.name “xxx” 记录git用户名git config --global user.password “xxx” 记录git密码git config --list 查看本地配置git config --global credential.helper store 记录git账户密码 需要输入一次 之后不用再输入了直接更新...

2019-06-17 21:32:10 188 1

原创 关于Ubuntu14程序自启动

Ubuntu14界面程序自启动开门见山,现有Qt界面程序需要开机启动,系统是unbuntu14,程序需要连接mysql数据库,之前查阅网上资料都说将启动脚本写在/etc/rc.local中,本人尝试过失败。原因是rc.local不支持启动带有界面的程序。现有两个解决方案。方案1:经过测试,rc.local可以启动控制台程序,所以可以在rc.local中添加控制台程序启动脚本,先启动控制台程序...

2019-06-14 23:19:45 540

原创 写一个函数,输入一一个数n,求斐波那契数列的第n项为多少

写一个函数,输入一一个数n,求斐波那契数列的第n项为多少 n = 0 时 f(n) = 0; n = 1 时 f(n) = 1; n > 1 时 f(n) = f(n - 1) - f(n - 2) ;很多人一下子就想到了递归,可是这样的数列递归的话如果n很大呢?递归一直都在生产重复的不必要的数,当你输入100时,整个程序几乎得不到结果,因为递归的复杂度是呈指数倍增长,答案要等

2018-01-27 21:07:55 4776

原创 如何将一个字符串逆序?

操作下标, 递归存入字符串数组中。//编写函数, 实现字符串逆序#include using namespace std;void func(char *str, char *ptr, int i, int j){ if(str[++i] != '\0') { --j; func(str, ptr , i, j);

2018-01-26 21:28:53 937

原创 如何将英文句子中的单词位置倒置, 而不改变单词内部结构呢?

如何将英文句子中的单词位置倒置, 而不改变单词内部结呢?如“I am from China”倒置为“China from am I” 我的思路是用一个数组记录这句话中每一个空格后的第一个字符的下标,从最后一个空格开始记录 ,然后按照记录的顺序打印,最后添加打印剩余的第一个没有被记入下标数组的字符串。#include using namespace std;void func1(c

2018-01-25 22:13:06 1696

原创 如何逆序输出一个链表的节点内容

1 改变链表结构即改变链表的指向,把所有的指向都反过来,再输出。2 不改变链表结构每遍历一个节点,就把节点的数据放入一个栈里。先进后出的思想。由此想到递归的思想,使用递归来处理。但递归的方法不是很好,当一个链表很长很长时,函数递归的层次很深,势必会导致栈溢出。这里为了举例我就用递归写,代码会很简单,毕竟上万个节点的链表也不会常有。也没必要存那么长,真有那么长的数据用数组加链表的组合

2018-01-24 21:28:45 538

原创 基于Linux的TCP多路复用IO结构网络在线聊天系统

项目要求一个在Linux下可以使用的聊天软件,要求至少实现如下功能: 1. 采用Client/Server架构 2. Client A 登陆聊天服务器前,需要注册自己的ID和密码 3. 注册成功后,Client A 就可以通过自己的ID和密码登陆聊天服务器 4. 多个Client X 可以同时登陆聊天服务器之后,与其他用户进行通讯聊天 5. Client A成功登陆后可以查看当前聊天

2018-01-24 19:27:06 991

原创 关于约瑟夫环的问题

约瑟夫环的问题有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位?思路:我们可以使用标志位来区分是否报到3,如果是1就说明报到3了,每次报到最后一个人的时候,我们再重新指到第一个人,这些人我们可以放在一个数组里, 这样一来,一圈下来数组会有很多0和1,第二圈继续这样,每每有一个1,循环次数就要少一次,直到只剩一个人

2018-01-22 22:12:26 161

原创 Linux网络编程

TCP/IP四层模型TCP/IP是一组用于实现网络互连的通信协议Internet网络体系结构以TCP/IP为核心。基于TCP/IP的参考模型将协议分成四个层次,它们分别是:网络访问层、网际互联层、传输层(主机到主机)、和应用层。

2017-12-10 13:03:22 197

原创 Linux下线程与进程

进程线程与程序的区别

2017-12-09 22:58:22 190

原创 Linux进程通信(二)

消息队列消息队列基本概念

2017-12-07 23:31:55 260

原创 Linux进程间通信方式(一)

进程间通信就是在不同进程之间传播或交换信息,不同的进程之间有什么双方都能访问的介质呢?进程的用户空间是相互独立的,一般而言是不能相互访问的,唯一的例外就是共享内存区。Linux的进程间通信(IPC)通信方法有管道、消息队列、信号量、共享内存、套接字等。

2017-12-07 22:43:11 181

原创 Linux进程控制编程

关于进程控制的理论概念是有很多很多的,我就一点一点的来介绍吧。 首先,什么叫进程,进程是一个具有一定独立功能的程序的一次运行活动,同时也是资源分配的最小单元。程序是放到磁盘的可执行文件,进程是指程序执行的实例。

2017-12-06 23:54:18 206

原创 Linux系统文件编程

作为大家熟悉的文件管理功能我就不多说了,这里主要提一些浅显的文件操作。首先提到的是系统调用,什么是系统调用呢?所谓系统调用,是指操作系统提供给用户程序调用的一组“特殊”接口,用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务。

2017-12-06 23:04:14 167

原创 基于LinuxC下的停车场项目

停车场项目是我们学完栈与队列后的一个综合项目,下面贴一下具体要求。停车场项目需求问题描述:停车场是一个能放 n 辆车的狭长通道,只有一个大门,汽车按到达的先后次序停放。若车场满了,车要停在门外的便道上等候,一旦有车走,则便道上第一辆车进入。当停车场中的车离开时,由于通道窄,在它后面的车要先退出,待它走后在依次进入。汽车离开时按停放时间收费。

2017-12-06 20:08:23 1659

原创 基于LinuxC下的通讯录项目

基于LinuxC下的通讯录

2017-11-30 20:51:11 669

原创 关于顺序存储结构队列

队列是一种先进先出的线性表(FIFO),出队列的那一端叫做队头,入队列的那一端叫做队尾。作为线性表,同样也有各种端口操作,不同的是插入数据只能在队尾进行,删除数据只能在队头进行。  同栈,队列也有两存储方式,先来看看顺序队列。顺序队列入队方式很简单,就是在队尾追加一个元素,不需要移动任何元素。而出队方式就只能从队头出列,假如有一个队列为a0,a1,a2,a3,下标分别为0,1,2,3,当出队时

2017-11-26 23:43:29 812

原创 Linux下的简易的学生教务系统(C)

C语言的基础工具学习完后,做了一个比较综合的小程序,就是学生教务管理系统,(其实有两个,这里先说第一个)  要求很简单,共有6个功能,就是输入、查询、排名、修改、显示所有成绩、退出,就是把一些基础的C工具运用到一起的一个小程序。  首先要把界面先做好,因为要使程序一直在运行,所以这里用while(1)来维持,做好界面以后,要让终端输入选项,因为只有6个选项,所以界定一下。

2017-11-24 22:14:44 1048 2

原创 一些C基础的小编程题目

学习完了C语言的基础知识后,这里列举几个C的小题目。  1.求100以内的素数。  素数:除了1和本身没有其他因子。  分析:这道题很入门,用两个循环就可以解决,第一个循环从2到100(假设用i来循环),这是要找出的数的循环,再一个内循环,从2到i的循环(假设用j来循环),这是筛选i的条件,即判断2到i中是否有数能被i整除,最后打印出没有因子的数。这样的算法不能把2也算上,所以2直接打

2017-11-24 17:36:15 7057

原创 关于预处理和结构体

关于预处理和结构体  还记得之前学习GCC编译的过程吗,第一步就是预处理,展开#开头的文件,(gcc -E test.c -o test.i),预处理是C语言的一个重要功能,它由预处理程序负责完成。当对一个源文件进行编译时,系统将自动引用预处理程序对源程序中的预处理部分进行处理,处理完毕自动进入对源程序的编译。  首先提到的第一个预处理功能就是文件包含,因为最近写的一些代码开头都是文件包含

2017-11-16 22:29:31 318

原创 关于指针

今天需要预习的内容是指针。  指针作为C语言编程中一种非常灵活的使用工具,学会正确的使用可以带来很大的方便,可以直接切入问题的核心。  1.指针到底是什么?  指针是变量,指针有变量的特性,系统为指针分配内存空间,指针有自己的地址,指针能够存值,存的内容是地址。  2.关于*p操作(1)在声明指针中,“*”号表示所声明的变量是一个指针。(2) 在指针使用时,“*”号表示操作

2017-11-13 23:42:52 131

原创 数组与指针

今天先要预习一下数组与指针的相关知识再来回顾昨天学习的内容。  首先关于数组,众所周知,数组是C语言中一种很常用的工具,那么在预习数组的时候罗列了一些问题。  1.数组的优点在哪里?  数组在内存存放中具有地址,数组名就是数组在内存存放的数组首元素地址。数组的下标是一种很低层次的处理,在正确编写和调试C程序的情况下,利用数组可以使程序运行的更快更有效率。其次,数组和指针可以非常和谐的在

2017-11-11 00:08:36 151

原创 Linux的入门学习(二)

昨天学习了GCC编译器GDB调试器Makefile以及简单的shell写法。今天主要是回顾昨天所学习的内容以及一些课后的补充。   首先来回顾一下Gcc编译器。Linux中Gcc用起来很方便,只需一个gcc file.c -o file 即可把一个C文件编译成一个可执行文件,虽然指令简单但其过程却分为4个步骤。第一步是预处理,本质上就是对头文件进行展开,或者说是对文件一开始#的内容进行展开,具

2017-11-08 22:13:39 151

原创 Linux入门者的记录

第一次以这样的方式记录自己的学习历程,希望可以坚持下去。  昨天学习了linux的一些基础开发环境和一些基本的命令,了解了linux基本的文件和目录操作,如:cd、ls、cp、mv、tar、passwd、su等等一些基本的命令,当然只是很少的一部分,但也了解的linux命令的作用,今天将学习其他一些的命令。  首先,先来学习文件处理命令方面的一些常用命令。  1、file   语法

2017-11-06 15:02:30 159

空空如也

空空如也

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

TA关注的人

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