自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

智能网联汽车V2X开发网的博客

整车OEM-V2X开发工程师

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

原创 virtual box解决Ubuntu黑屏问题

一种可能是Ubuntu磁盘满了,启动后一直在左上角有个横杠闪烁,通过此方式 可以解决黑屏问题。virtual box解决Ubuntu黑屏问题。

2024-04-18 14:45:35 188

原创 记录一个小白参加工作后的历程。从0开始学会构建CMake工程,按照V字开发模型编写一个有意义工程(加入了工程经常会用到的回调,称为观察者模式,并以连更的形式为同学展示未来的工作内容)

从0构建CMake工程,按照V字开发模型编写一个有意义工程(此工程中加入工程经常会用到的回调函数,或称为观察者设计模式),可用于未来工作,非玩具

2022-09-12 11:17:10 372 1

原创 C++11 不使用继承实现观察者模式的方法 注册模板参数

传统的观察者模式的类过于臃肿,存在不好追踪,不方便传参数的因素,在学习了一些书本上的知识后,写了写改进的观察者模式,使用C++中的模板类函数代替。

2022-07-31 21:38:29 241

原创 C++ 访问者模式及应用场景

C++ 行为型设计模式,访问者模式及应用

2022-07-24 16:15:34 344

原创 C++ 装饰模式

基类Iobject继承Iobject,生成实物类 ObjectA继承Iobject,生成装饰类 DecoratedObject思考:C++代理模式,也是继承基类+持有基类,只不过代理模式里,例如代理服务器的,其作用不是和装饰类一样,增强某种功能,而是让用户单纯以为是直接对接的服务器,感觉不到代理类的存在,增加了一些本地功能,假装和服务器交流,实际上并没有...

2022-06-05 12:04:03 88

原创 C++训练2:带管理类的工厂模式,方便注册新的产品类

接着上一章的单例工厂模式来继续思考:如新增金抢菜器时,工厂模式可以不用增加class的数量就好了,后面介绍一种注册的手法,用户把新增的产品注册到工厂管理类里,工厂管理类遍历寻找成员变量存储的方法去new产品。前提是这个类名可以直接被new出来,并且构造函数没有参数传入。产品基类class IGrep{ virtual void doAction()=0;}产品class GoldGrep:public IGrep{ doAction(){cout<<"Gold"}}

2022-06-04 21:03:26 522

原创 C++设计模式之单例工厂模式

今天居家办公第55天,疫情期间,每天抢菜,抢菜。。抢菜完成之后,就学习一会设计模式吧,今天学习的内容是工厂模式。个人觉得工厂模式主要是为了把创建对象的代码放到专门的工厂类里,这样可以通过改一个工厂类的代码,使得整个工程的new的对象发生改变,当然工厂类得有个基类作为支撑,这样主干工程调用的方法才不用改。...

2022-05-22 22:31:05 457 1

原创 Handle/body模式

一直挺火的模式, 也称呼为桥接模式,记录一下:Handle/body(桥接模式),handle 只有接口,body(handleImpl )是具体的实现。handle 都不会变,要变的只有handleImpl ,被称为编译防火墙,这样有一层handle的接口,只需要改动impl,并且改动Impl的时候,不用额外编译handle.cpp。 另外一个好处主要是,用户不用包含那么多头文件,省的知道的接口太多,不好用。比如main只需要包含一个handle.hpp。例如:handle 类:hpp:cla

2022-05-10 09:43:57 627

原创 c++11 mutex destroy while busy

学习c++ 的异常捕捉模块,写了个测试例子,出现了mutex destroy while busy#include <iostream>#include "noticer.h"#include "observer.h"#include "xx.h"#include "single.h"#include <mutex>#include <thread>#include <windows.h>using namespace std;in

2021-10-31 15:46:08 406

原创 matlab simulink交通信号机,适用于prescan VTD等仿真软件的后台控制红绿灯

function [north_straight_phaseid,north_straight_red,north_straight_yellow,north_straight_green,north_straight_green_starttime,north_straight_green_endtime,north_straight_yellow_starttime,north_straight_yellow_endtime,north_straight_red_starttime,north_stra

2021-04-01 10:14:07 2735

原创 车联网V2X-BSM消息JSON包解析

遇到一个需求,解析BSM消息的JSON包,网上下载cJSON.h和cJSON.h,然后解析BSM1.json文件。BSM1.json文件内容如下:{ "ego_infor":[ { "msgCnt":0, "id":15416284, "timeStamp":"1.615275863e+12", "latitude":31.00083665, "longitude":121.0002046, "elevation":"", "speed":0, "

2021-03-09 23:35:41 3082 3

原创 MATLAB simulink设计的循环计数器,从0开始自增1,然后到127重置为0,再次增加至127一直循环

simulink实现从0开始自增1,然后到127重置为0,再次增加至127循环内容:开发过程中,遇到了一个需求:在simulink中将DE_MsgCount初始化为一个随机整数,其范围为[0,127],将DE_MsgCount设置为发送前一条BSM所用的值加1,若编号达到127,则下一个BSM中的MsgCount值回到0。目前采取的办法是,人工设置unit delay的初始值为随机,如图:后面自加1,然后循环犯了难,后来在大神师弟的启发下,设计了两种模型,记录和分享一下,还请大家指教。1、add

2021-03-06 23:30:39 10835

原创 程序员测试题:PAT 乙级 1015 德才论6(自设计的排序函数排序函数myqsort) (C语言版本)

程序员测试题:PAT 乙级 1015 德才论6(自设计的排序函数排序函数myqsort) (C语言版本)PAT原题#include <stdio.h>#include <string.h>#include <math.h>#include <stdlib.h> struct node { unsigned int card; unsigned int de; unsigned int cai; unsigned int l

2021-02-27 18:40:58 180 1

原创 自定义qsort实现排序2

自定义qsort实现排序2继续完成自定义qsort代码,实现从大到小的排序#include <stdio.h>#include <string.h>#include <math.h>#include <stdlib.h> void myswap(void *a,void *b,unsigned int size){ int i; char temp; char* _a = (char*)a; char* _b = (char*)b;

2021-02-13 14:37:08 127

原创 自定义qsort实现排序1

自定义qsort实现排序开发原因:为更好的实现PAT德才论及以后的测试题目,需要设计独立的排序代码,参看了别人的德才论答案,发现在用qsort函数,我认为测试题主要依靠手敲代码的能力,所以自己利用简单的冒泡法设计myqsort代码,实现各种变量类型的排序。思路:1、创建myswap函数,实现按照字节交换两个元素次序2、实现满足int,double等类型的myqsort排序函数#include<stdio.h>#include<stdlib.h>/*测试用例*/doub

2021-02-03 15:01:09 269

原创 程序员测试题:PAT 乙级 1015 德才论5(使用动态开辟数组) (C语言版本)

程序员测试题:PAT 乙级 1015 德才论5(使用动态开辟数组) (C语言版本)思路:将全局变量二维数组变成二维数组动态开辟,测试显示内存受限。#include <stdio.h>#include <string.h>#include <math.h>#include <stdlib.h> void pri(int** arrin,int ruwei){ int p,i; for(p=0;p<ruwei;p++) {

2021-01-29 09:55:20 135

原创 程序员测试题:PAT 乙级 1015 德才论4(去掉函数输出接口,统一用inarr改成选择排序法) (C语言版本)

程序员测试题:PAT 乙级 1015 德才论3(统一用inarr改成选择排序法,省掉arrout局部变量) (C语言版本)思路:改善排序方法PAT题目#include <stdio.h>#include <string.h>#include <math.h>void pri(int arrin[100000][3],int ruwei){ int p,i; for(p=0;p<ruwei;p++) { for(i=0;i<3;

2021-01-28 17:05:16 106

原创 程序员测试题:PAT 乙级 1015 德才论3(减少函数接口方式) (C语言版本)

程序员测试题:PTA 乙级 1015 德才论2(减少函数接口方式) (C语言版本)思路:减少了sort的接口,但是增加了sort函数中的局部变量,由于局部变量程序运行时,才分配空间,运行更慢。#include <stdio.h>#include <string.h>#include <math.h>void pri(int arrin[100000][3],int ruwei){ int p,i; for(p=0;p<ruwei;p++) {

2021-01-28 16:11:37 96

原创 程序员测试题:PAT 乙级 1015 德才论2(调整打印方式) (C语言版本)

程序员测试题:PTA 乙级 1015 德才论2(调整格式后) (C语言版本)思路:设置了打印函数,把打印放在主函数中运行,将pri1、pri2等数组利用上#include <stdio.h>#include <string.h>#include <math.h>void pri(int arrin[100000][3],int ruwei){ int p,i; for(p=0;p<ruwei;p++) { for(i=0;i<

2021-01-28 16:01:50 111

原创 程序员测试题:PAT 乙级 1015 德才论1(最笨的办法) (C语言版本)

程序员测试题:PTA 乙级 1015 德才论1(最笨的办法) (C语言版本)PTA题目思路:将数据分成四个梯队,在排序函数中,分别输出排序后的数值。特别有意思的是,这里开辟了大量的全局变量数组,因为如果数组时局部变量,哪怕设置一个10万数组的局部变量,运行时程序就崩溃了,大概算了算,一个这样的数组需要开辟:10万乘4乘3个字节,也就是120万字节,约等于1.2mb。#include <stdio.h>#include <string.h>#include <math

2021-01-28 15:04:59 251

原创 程序员测试题:PAT 乙级 1014 福尔摩斯的约会 (C语言版本)

程序员测试题:PTA 乙级 1014 福尔摩斯的约会 (C语言版本)PTA题目思路:完全根据题意写代码,注意关键词眼,有的是第一个字符,有的是第一个大写字母,测试点有不过的地方,还请大家讨论。#include <stdio.h>#include <string.h>#include <math.h>enum{ MON=1, TUE, WED, THU, FRI, SAT, SUN }day;int main(){ char arr

2021-01-27 13:52:21 203

原创 程序员测试题:PAT 乙级 1013 数素数 (C语言版本)

程序员测试题:PTA 乙级 1013 数素数 (C语言版本)PTA题目思路:列出所有的素数对,然后根据数组下标列出符合条件的素数,bug是无法确定做多大的素数表,因此往大了做。#include <stdio.h>#include <string.h>//判断某数是否素数 ret:返回素数的地址 int sujug(int num,int *ret){ int i; int retu = 1;//1代表素数 *ret=num; for(i=2;i<

2021-01-26 14:46:21 181 1

原创 程序员测试题:PAT 乙级 1012 数字分类 (C语言版本)

程序员测试题:PTA 乙级 1012 数字分类 (C语言版本)PTA题目思路:完全按照题意写就行,就是这里测试了一下goto的用法#include <stdio.h>#include <string.h>float fun4(float sum,int ave){ float x=0.0f; if(ave!=0) x=sum/ave; return x;}int fun5(int max,int a[]){ int i; int temp; fo

2021-01-26 10:38:22 135 1

原创 程序员测试题:PAT 乙级 1011 A+B 和 C(C语言版本)

程序员测试题:1011 A+B 和 C(C语言版本)PAT题目链接思路:注意int的最大值为2^31-1,所以只能用long型#include <stdio.h>#include <string.h>#define falsefun(i) (printf("Case #%d: false\n",i))#define truefun(i) (printf("Case #%d: true\n",i))int main(){ int num; int i;

2021-01-25 14:31:33 121

原创 程序员测试题:PAT 1010 一元多项式求导(C语言版本)

程序员测试题:1010 一元多项式求导(C语言版本)PAT题目链接思路:很简单,直接上代码就好,但是检测点不过,我觉得是不是题意有理解错误。#include <stdio.h>#include <string.h>int main(){ int arr[2500] = {0};//指数最大到1000,则数据最多2000个 int ii=0; char ch; while((scanf("%d",&arr[ii]))!=EOF) { i

2021-01-25 14:02:32 117

原创 程序员测试题:PAT乙级 1008 数组元素循环右移问题(C语言版本)

程序员测试题:1008 数组元素循环右移问题(C语言版本)PAT题目链接思路:定义二维字符数组,然后挨个单词存储,然后倒序输出数组内容。#include <stdio.h>#include <string.h>int main(){ char arr[100][100] = {{'\0','\0'}}; int ii=0;//记录进入几个单词 char ch=0; while(scanf("%s",arr[ii])!=EOF) { if((ch=ge

2021-01-25 09:26:29 179 5

原创 程序员测试题:PAT 1008 数组元素循环右移问题(C语言版本)

程序员测试题:1008 数组元素循环右移问题(C语言版本)思路:题目简单,只要循环移动,每次移动一位就可以了。#include <stdio.h>int main(){ int n; int m; scanf("%d %d",&n,&m); int i; int arr[200] = {0}; for(i=0;i<n;i++) { scanf("%d",arr+i); }// for(i=0;i<n;i++)// {//

2021-01-24 09:35:54 66

原创 程序员测试题:PAT 乙级 1007 素数对猜想(C语言版本)

程序员测试题:PTA 乙级 1007 素数对猜想(C语言版本)思路:先求出不大于N的所有素数,利用数组存储所有素数,然后相邻做差值,找出对数,另外还写了求合数的函数以用来备用,目前看测试点5测试超时,mark一下,下次来讨论程序复杂度。#include <stdio.h>void cal_he(int num){ int i,ii; int he[100001] = {0}; int flag = 0;//记录合数的数组下标 he[2] = 2;//

2021-01-22 18:41:48 121

原创 程序员测试题:PAT 乙级 1006 换个格式输出整数(C语言版本)

程序员测试题:PTA 乙级 1006 换个格式输出整数(C语言版本)PAT题目链接思路:题目简单,用简单的球磨\和秋雨%运算就可以。#include<stdio.h>int main(){ int num; scanf("%d",&num); int ones,tens,hundreds; if(num/10) { if(num/100) { hundreds = num/100; for(;hundreds;hundreds--)

2021-01-22 10:03:25 98

原创 程序员测试题:PAT乙级 1005 继续(3n+1)猜想 (C语言版本)

PAT乙级 1005 继续(3n+1)猜想用数组下标存储输入的数字,数组的值(-1和1)作为覆盖数和关键字的标志,从100到1逆序输出数组值为1的下标,也省掉了排序工作,但是最后一个测试点不过,请大家指教。#include<stdio.h>int main(){ int arr[200] = {0}; int num; int ret; ret = scanf("%d",&num); int i; int t

2021-01-21 17:24:29 233

丁字路口信号灯控制.m

用于matlab-funtion控制信号灯,博客:https://blog.csdn.net/weixin_42994522/article/details/115058188?spm=1001.2014.3001.5502

2021-04-01

simulink自增模型

MATLAB simulink设计的循环计数器,从0开始自增1,然后到127重置为0,再次增加至127一直循环,总共两种方式。

2021-03-11

cJSON文件,用于解析V2X的JSON包

cJSON文件,用于解析JSON包,开发语言为C,教程链接https://blog.csdn.net/weixin_42994522/article/details/114607801

2021-03-09

空空如也

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

TA关注的人

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