Project & Module
文章平均质量分 51
沈子恒
计算机视觉 自然语言处理 推荐系统 架构设计
展开
-
串口通信模块2:串口通信编程基础(打开、配置)
有两种方式可以操作串口:同步操作方式和异步操作方式(即重叠操作方式)。同步操作时,API函数会阻塞直到操作完成以后才能返回(在多线程方式中,虽然不会阻塞主线程,但是仍然会阻塞监听线程);而异步操作方式,API函数会立即返回,操作在后台进行,避免进程阻塞。异步操作方式还允许读、写操作能同时进行(即重叠操作),在实际科研项目中非常有用。但是无论哪种操作方式,一般都通过下面的四个步骤来完成:1.打开原创 2016-09-27 22:44:21 · 6236 阅读 · 0 评论 -
树与搜索
1. 树与树的遍历树是一种在实际编程中经常遇到的数据结构,它的逻辑结构很简单:除了根节点之外每个节点只有一个父节点,根节点没有父节点;除了叶节点之外所有节点都有一个或者多个子节点,叶节点没有子节点。父节点和子节点之间用指针链接。所谓的二叉树是树的一种特殊结构,在二叉树中每个节点最多只能有两个子节点。二叉树最重要的莫过于遍历,即按照某一顺序访问树中的搜有的节点。通常树有三种遍历方式。前序遍历:根节点...原创 2018-05-05 19:58:09 · 1343 阅读 · 0 评论 -
从尾到头打印单向链表
1.需求及分析输入一个链表的头结点,从尾到头反过来打印出每个节点的值。方法:1.把链表中链接节点的指针反转过来,改变链表的方向,然后从头到尾输出。(实际上修改了链表的结构下下策);2.典型的先进后出,可以用“栈”处理;3.典型的先进后出,由于递归和栈的处理方式接近也可以用递归处理。2.使用栈处理void PrintListReversingly_Iter(ListNode* pHead){ s...原创 2018-05-05 15:14:07 · 1051 阅读 · 0 评论 -
空格替换_O(n)方法
1.需求及分析实现一个函数,把字符串中的每个空格替换成“%20”。例如输入“we are happy”,则输出“we%20are%20happy”。在网络编程中,如果URL参数中含有特殊字符,如空格、‘#’等,可能导致服务器端无法获得正确的参数值。此时需要考虑将特殊符号转换为服务器可以识别的字符。转换的规则是在‘%’后面跟上ASCII码的两位16进制的表示。比如空格的ASCII码是32,即十六进制...原创 2018-05-04 21:32:55 · 1096 阅读 · 0 评论 -
二维数组的对角搜索C++
1.需求与分析在一个二维数组中,每一行按照从左到右递增的顺序进行排序,每一列按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否存在这个整数。2.代码#include<iostream>using namespace std;bool find(int* matrix, int rows, int columns, int number)...原创 2018-05-04 20:30:06 · 1129 阅读 · 0 评论 -
Singleton模式的实现
1.实现Singleton模式设计一个类,我们只能生成该类的一个实例。2.低级解法一:只适用于单线程环境因为我们只能生成一个实例,所以我们必须把构造函数设置为私有函数已禁止他人创建实例。可以定义一个静态的实例,在需要的时候创建该实例。public sealed class Sinleton1{ private Singleton1() {} private static Sing...原创 2018-05-04 14:33:59 · 1759 阅读 · 0 评论 -
赋值运算符函数严谨性的几点思考
1. 需求class CMyString{public: CMyString(char* pData = NULL); CMyString(const CMyString& str); ~CMyString(void);private: char* m_pData;};2.定义赋值运算符函数需要考虑的四个准则是否把返回值的类型声明为该类型的引用,并在...原创 2018-05-04 12:53:53 · 1123 阅读 · 0 评论 -
多功能监护系统开发与设计
原创 2016-12-19 18:29:28 · 1288 阅读 · 0 评论 -
简单的串口助手程序开发
1.简介之前在烽火集团实习的时候,开发串口通信程序用的都是纯C++。感觉串口程序开发很考验人的逻辑思考能力。不过,现在好了,科研工作中,一切已存在的“利器”都可以用来为自己的“idea”服务。在串口程序开发过程中,有两个很得力的助手——“CserialPort”和“MSCommon”。这里,仅尝试了利用MSCommon空间进行最基本的串口助手开发,也是受益匪浅。2.一步一步开发原创 2016-10-20 23:04:38 · 8492 阅读 · 2 评论 -
深入理解文档/视图框架体系_九宫格项目开发感悟
1.项目起源以及采用文档/视图框架体系缘由我们整天都在说:文档保存项目的数据并处理项目上的数据;视图通过关联获得文档的数据并进行可视化;主窗口框架接收外部事件消息并进行消息分配。这句口头禅感觉接触过MFC的新手都能背得一字不差,然而,这到底讲了一件啥事?我想用成语的语言进行变相的概括一下:数据变量定义在文档类并进行保护,公用成员函数也被定义在文档类,公用函数是文档类与视图类沟通的唯一桥原创 2016-10-19 18:53:03 · 1440 阅读 · 3 评论 -
串口通信模块5:串口操作自定义类(3)
在上述代码基础之上,本页主要讨论串口数据的接受、发送以及与窗口类函数的通信。1.读取串口数据函数的实现//接收串口数据void CMySerial::ReceiveChar(CMySerial* port, COMSTAT comstat){ BOOL bRead = TRUE; BOOL bResult = TRUE; DWORD dwError = 0; DWORD原创 2016-10-06 11:29:22 · 1220 阅读 · 0 评论 -
串口通信模块5:串口操作自定义类(2)
1.ProcessErrorMessage()函数的实现:ProcessErrorMessage()函数负责处理并提示错误信息,其实现过程如下:void CMySerial::ProcessErrorMessage(char* ErrorText){ char* Temp = new char[200]; LPVOID lpMsgBuf; //保存错误信息的指针 //原创 2016-10-03 23:47:44 · 1027 阅读 · 0 评论 -
串口通信模块4:串口操作自定义类(1)
为了以后使用方便,将串口的属性及操作封装成一个类。对串口的操作可以直接通过调用这个串口类提供的几个函数接口即可。1.CMySerial类的定义:MySerial.h#pragma once#include #include class CMySerial{public: CMySerial(); virtual ~CMySerial();public: b原创 2016-10-02 18:04:07 · 3172 阅读 · 0 评论 -
串口通信模块1:串口基础知识
串行接口可以将接受来自CPU的并行数据字符,转换为连续的串行数据流发送出去。同时可将接收的串行数据流转换为并行的数据字符供给CPU的器件。一般完成这种功能的电路,称为串行接口电路。常用的RS-232 (ANSI-EIA-232标准)是IBM-PC及其兼容机上的串行连接标准。可用于许多用途,比如连接鼠标、打印机或者Modem,同时,也可以连接工业仪器仪表。1.串口简介RS-232-C原创 2016-09-26 22:12:37 · 17280 阅读 · 2 评论 -
View视图类与Dialog对话框通信实例
1.实例任务探究视图与对话框的数据交流关系。具体功能如下图所示:具体研究的问题包括:1.如何建立菜单菜单栏子项与子对话框的关联2.如何建立视图类中数据(计算、绘图等)与子对话框数据的交流2.逐步实现建立MFC应用项目(单文档结构非文档视图):单独建立视图类(ChildView)中的数据应用:CChilView.h文件中定义数据变量:原创 2016-10-16 14:35:07 · 4472 阅读 · 1 评论 -
串口通信模块3:串口通信编程基础(读写、关闭)
上一节总结了如何打开串口并讨论了如何配置串口,本节是在上一节的基础上,进一步讨论串口编程的基础——如何进行文件读写?如何关闭串口?1. 读写串口串口的读写操作和文件的读写操作是一样的,也是通过ReadFile()及WriteFile()函数来实现的。这两个函数的原型分别如下:写文件函数原型及说明:BOOL WriteFile( HANDLE hFile, LPCVO原创 2016-09-28 23:51:07 · 3482 阅读 · 0 评论 -
我所构建的单线即时聊天工具
1.背景原意是在开发多串口通信助手。无意之间产生个鬼点子,利用串口功能开发一个无需网络的即时聊天工具。实现方法很简单,但是一些好处让我青睐,最关键的一点是隐蔽性好,不用网络,更不担心产生记录。至于为何要在实验室用这个小东西,你懂得!!!2.一步一步实现1.布置窗口基本结构2.头文件中定义变量、消息函数class CMSCommMultiPortDlg : p原创 2016-10-24 21:57:18 · 970 阅读 · 0 评论 -
快速排序算法
1.核心思想快速排序的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的数据都比另一部分的数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序数列。其算法原理如下:2.算法流程一趟快速排序的算法:设计两个变量i,j;排序开始的时候:i=0, j = N-1;以第一个数组元素为关键数据,赋值给key, key = A[0];...原创 2018-05-06 14:54:05 · 1065 阅读 · 0 评论