软件架构师何志丹的积累与扩展
文章平均质量分 81
软件架构师何志丹的积累与扩展
闻缺陷则喜何志丹
本人拙作《喜缺全书算法册》欢迎指教,可在CSDN下载https://download.csdn.net/download/he_zhidan/88368465
展开
-
十年前对敏捷开发的体会
翻到10年前的旧文,发出来。记录自己的成长。原创 2023-09-26 18:14:10 · 295 阅读 · 1 评论 -
C++ 优缺点之我见
现在的趋势是多语言混成编程,故本文是针对混合编程。1,C++优势:1.1,性能优势。1.2,可进化性(可复用性),进化出本团队顺手的类库。2,C++小的优势或疑似优势:2.1,“万金油”。混合编程时代,“万金油”没价值。3,C++根本缺点:难学。新手被指针搞死,中手(约3年工作经验)被stl标准库和模板搞死,高手(约5年工作经验)被boost搞死。由于stl难懂,大原创 2017-09-19 09:28:07 · 14216 阅读 · 9 评论 -
Hilditch 细化(实现二)
此实现5个条件:1,,前景点。2,8邻域前景点2到6。3,8邻域联通区域1。4,2个像素宽的垂直条不完全被腐蚀掉。5,2个像素宽的水平条不完全被腐蚀掉。原创 2017-09-08 18:56:00 · 1862 阅读 · 0 评论 -
Hilditch 细化(实现一)
对于当前像素点,扫描它的8邻域,如果邻域的像素值为255,则b[i]=1(i=0…8),像素值为128(表示该像素点在前面的循环中被标记为删除),b[i]=-1,如果像素值为0,则b[i]=0。下面会根据b[i]的值进行6个条件判断,如果条件满足,则会标记该像素值为GRAY(128)。1. b[0]=1,即当前像素必须为前景点。2. 1-abs(b1) + 1 – abs(b3原创 2017-09-05 17:56:46 · 1757 阅读 · 0 评论 -
OpenCV演示程序 汇总
演示程序解压就可以运行,无需安装其他程序、组件。已知问题如下:欢迎指教。黑点和气泡 误判高达8分之一, 肉眼看起来很明显的, 气泡有明显的亮圈。试验了如下几种,效果都不明显:1,直接surf提取特征。2, 100到120的灰度,统一成110,再surf提取特征。3,0到100统一成0,120以上统一成255,再surf提取特征。4,转成色差,每个点的灰度=绝原创 2017-07-14 08:10:58 · 1657 阅读 · 0 评论 -
调用自己封装的库,实现位图的格式转换
软件架构师何志丹调用自己封装的库,实现位图的格式转换。选则菜单“文件->打开”命令,打开位图,目前支持单色位图、16色位图、256色位图、24位位图。可重复打开。选择菜单“文件->另存为”命令转换位图格式,24位位图,可以转换成16色位图、256色位图,单色位图、16色位图、256色位图转可以转换成24位位图。24位位图转换成16色位图、256色位图,采用8叉树生成调色原创 2017-06-30 12:32:03 · 426 阅读 · 0 评论 -
自己积累的类库说明
自己积累的类库和以前效力的公司无关。效力于武汉开目是7年前的事,用到的技能早忘记了。南方数码工作中积累了一些类库,但主要集中于大型数据库ARX,对我没价值。中山极点三维代码受保密系统监控,取不取来,只能通过记忆记住少量。广州顶丰开发语言是C#,我用C++。类库公开计划:先逐步完成演示用例和测试用例,并公开。逐步将原理整理成文档,并公开。暂不公开代码,原理和测试用例足够学习了。原创 2017-06-30 12:21:22 · 380 阅读 · 0 评论 -
判断若干个点是否前景的习题
假定P1、P2、P3、P4、P5、P6、P7、P8的值只能是1或0。1,请写一个表达式判断: P1、P2为1,P3、P4为0,P5、P6、P7、P8任意。2,以下表达式和条件组是否等价:if( P1 + P2 + P3 + P4 == 3 ){}以下4个条件是否有至少有一个成立:a,P1、P2、P3为1。b,P2、P3、P4为1。c,P1、P2、P4为1。d原创 2017-09-10 09:30:53 · 226 阅读 · 0 评论 -
根据”圆心角“求斜椭圆坐标
软件架构师何志丹根据“圆心角”弧度(函数会将圆心角转成离心角),获取斜椭圆上的点坐标。ptCenter,椭圆中心;a椭圆长轴长度;b,椭圆短轴长度;radian,点于椭圆长轴夹角的弧度;dChangZhouAngle,长轴弧度 CDou...原创 2018-08-01 20:22:12 · 3588 阅读 · 1 评论 -
多线程冲突
软件架构师何志丹冲突原因写CString的时候,可能内存不够,于是释放、重新分配内存。可能刚释放,没来来得及分配,就被挂起了,然后另外的线程访问此变量,就崩了。 测试说明Button18测试了,没有防冲突,程序崩溃。Button19,测试了有防...原创 2018-08-15 21:02:09 · 1247 阅读 · 0 评论 -
多线程防冲突
软件架构师何志丹冲突原因写CString的时候,可能内存不够,于是释放、重新分配内存。可能刚释放,没来来得及分配,就被挂起了,然后另外的线程访问此变量,就崩了。 测试说明Button18测试了,没有防冲突,程序崩...原创 2018-11-21 09:43:56 · 315 阅读 · 0 评论 -
死锁
软件架构师何志丹 死锁的最常见情况相互等待。 业务说明对于简单的业务,可以规定一次只能锁定一个单元,但对于复杂业务,这种方法不可行。比如:金银互换,1金换10银。分4步:1,判断金币足够。 2,判断银币没到上限 3,金币减少。 4,银币增加。...原创 2018-11-22 08:48:59 · 1130 阅读 · 0 评论 -
墨家巡逻兵 源码
软件架构师何志丹 开源墨家巡逻兵的目的:a,演示我的库的用法。b,展示我的开发思想,不同的技能的人合作。mjxlb:源码vc: 生成的exe位置。SNCode:公共库的lib和头文件。开发工具:VS2010 C++...原创 2018-11-18 10:20:21 · 319 阅读 · 0 评论 -
如果我当上技术经理如何展开工作
软件架构师何志丹如果我当上技术经理如何展开工作... 11 总括... 11.1 引子... 21.2 技术经理(总监)的任务... 21.3 此职位和我高度匹配... 22 术语...原创 2019-01-07 08:53:03 · 2590 阅读 · 7 评论 -
如果我当上技术经理如何展开工作(二)
术语、概念、假设 标准工时:假定有一个三年工作经验的人,1小时的能完成的工作量。主要用于衡量模块的粒度。 规划 不同阶段核心要素不同 项目管理核心三要素 项目管理核心三要素:时间、成本、质量三要素。三者是鱼和熊掌的关系,不可兼得。不同阶段,不同的侧重点不同。 竞争策略 基本竞争策略有三种:成本领先战略、差异化...原创 2019-01-08 14:59:47 · 615 阅读 · 0 评论 -
作为公共组软件工程师如何工作
软件架构师何志丹1 为什么需要公共组1.1 专业化分工带来高效一 对软件开发而言,专业化分工的好处专业化分工使得每个软件工程师需要的知识和技能减少,这意味着: 降低了软件工程师的成长难度,降低了学习成本和培...原创 2019-02-10 22:36:11 · 255 阅读 · 0 评论 -
平均随机数的封装类
核心代码从C++抄的。改进了两点:a,种子初始化为time(null),此函数精确到秒。b,构造函数可以指定随机数的最大值。比如:生成0到10的随机数。c,范围从0x8ffff,扩充到0xFFFF。class CRand{public: CRand(unsigned short uMax=0xFFFF) { m_seed = ::time(NULL); m_原创 2017-09-20 11:21:33 · 555 阅读 · 0 评论 -
对自己的“平均随机数封装类”的测试
软件架构师何志丹对自己的“平均随机数封装类”的测试。测试[0到0x1000]个种子,每个种子产生0x1000个随机数。CRand rand; int nums[0x10000]={0}; for( int j = 0 ; j < 0x10000 ; j++ ) { rand.m_seed = j ; for(int i = 0 ; i < 0x10000原创 2017-09-20 11:43:51 · 299 阅读 · 0 评论 -
BCG属性列表
一,新建一个BCG工程BCGPPropListSingle,基于对话框。二,CBCGPPropListSingleDlg增加变量。CBCGPPropList m_prop;三,CBCGPPropListSingleDlg::OnInitDialog初始化网格控件。m_prop.Create (WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDE原创 2014-10-07 12:31:14 · 1965 阅读 · 0 评论 -
BCG圆盘菜单
一,新建一个BCG工程BCGPRadialMenuSingle,基于对话框。二, 新建或找一个png图片,上面画几个图标。导入到工程。导入后类型为PNG资源ID为IDR_PNG1。三,利用类向导重写PreTranslateMessage。BOOL CBCGPRadialMenuSingleDlg::PreTranslateMessage(MSG* pMsg) {if (pMsg原创 2014-10-07 12:34:59 · 1529 阅读 · 0 评论 -
BCG菜单按钮的简单使用
一,新建一个BCG工程CBCGPMenuButton,基于对话框。二,增加一个按钮,并关联一个CButton类型的变量m_btn1,然后手动将类型改CBCGPMenuButton成。三,为这个按钮增加响应事件。void CCBCGPMenuButtonDlg::OnButton1() {AfxMessageBox("士农学会!");}四,F5运行,鼠标单击Btn1,原创 2014-10-07 12:41:53 · 3448 阅读 · 0 评论 -
如何将基于对话框的工程改成基于BCG的
一,stdafx.h 加入如下内容。BCGCBProInc.h间接导入了lib。 #include // BCGControlBar Pro#if _MSC_VER >= 1400#if defined _M_IX86#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Win原创 2014-10-07 15:00:48 · 2526 阅读 · 0 评论 -
BCG网格控件单独设置颜色
源码下载:http://download.csdn.net/detail/he_zhidan/8009531原创 2014-10-07 17:20:44 · 2360 阅读 · 0 评论 -
网格控件群组的高级使用
源码下载:http://download.csdn.net/detail/he_zhidan/8010335原创 2014-10-07 21:46:16 · 3407 阅读 · 0 评论 -
如何响应BCG的属性列表(CBCGPPropList)改变的事件?
如何响应BCG的属性列表(CBCGPPropList)改变的事件? afx_msg LRESULT OnProChanged(WPARAM uProListID,LPARAM pPro);BEGIN_MESSAGE_MAP(CPlotSingleDlg, CAcUiDialog) ON_REGISTERED_MESSAGE(BCGM_PROPERTY_CHANGED, OnProC原创 2014-12-22 09:47:00 · 1948 阅读 · 0 评论 -
BCG 本地化
HINSTANCE hCHS = ::LoadLibrary("BCGCBProResCHS.dll"); BCGCBProSetResourceHandle (hCHS);如果BCGCBProResCHS.dll不存在,则编译L.chs.不要忘记释放BCGCBProResCHS.dll原创 2015-07-04 21:35:01 · 1064 阅读 · 0 评论 -
网格控件的简单实用
一,新建一个BCG工程CBCGPGridCtrlSingle,基于对话框。二,CCBCGPGridCtrlSingleDlg类定义变量。CBCGPGridCtrl m_grid;三,CCBCGPGridCtrlSingleDlg::OnInitDialog对网格控件进行初始化。CRect r(0,0,200,200);m_grid.Create(WS_CHILD, r, t原创 2014-10-07 12:37:49 · 2814 阅读 · 0 评论 -
网格控件群组的简单使用和颜色设置
源码下载:http://download.csdn.net/detail/he_zhidan/8010089原创 2014-10-07 20:38:20 · 1534 阅读 · 0 评论 -
单文档的BCG程序,为什么在CMainFrame::OnCreate最后设置工具条的标题,为什么无效?
单文档的BCG程序,为什么在CMainFrame::OnCreate最后设置工具条的标题,为什么无效?我们通过如下代码将标题设置为标准m_wndToolBar.SetWindowText (_T("标准")); ------------执行以下代码是会将标题设置回来。 if (!ProcessShellCommand(cmdInfo)) return FALSE;原创 2015-07-04 21:25:30 · 1063 阅读 · 0 评论 -
BCG 项目 工具栏没图标
默认只修改Toolbar.bmp不修改Toolbar256.bmp,手动修改此文件。原创 2015-08-30 09:51:12 · 931 阅读 · 0 评论 -
CBCGPChartCtrl
一,新建一个BCG工程CBCGPChartCtrlSingle,基于对话框。二,在主对话框上增加一个文本框。不要用默认ID,并关联一个CStatic类型变量。手动将类型改成CBCGPCharCtrtlCBCGPChartCtrl m_chart;三,CCBCGPChartCtrlSingleDlg::OnInitDialog对m_chart进行初始化。CBCGPChartVisua原创 2014-08-25 20:47:22 · 4210 阅读 · 0 评论 -
BCG方便使用类的优点
本文列出了一些使用方法和MFC几乎或完全相同的类的优点。一,工具栏用户通过点击工具栏右下角的菜单可以:1,删除工具栏的按钮。2,从菜单上增加按钮,增加地菜单项不需要有图标。二,CBCGPDockingControlBar自带关闭、隐藏。三,CBCGPFrameWnd移动DockBar停靠到上边、下边、左边、下边方便多了。四,按钮原创 2014-08-24 17:57:36 · 2528 阅读 · 0 评论 -
树状控件的应用(选择出阵武将)
树状控件的应用 何志丹下面是树状控件的一些应用,由于是由于用于演示,所以结构并不合理.其效果如图所示..步骤如下: 1,Insert -> new class,插入一个新类CMyCtrl,基类为CTreeCtrl. 2,利用类向导为CMyTree添加WM_PANIT的响应函数.代码如下:原创 2003-11-13 00:00:00 · 3024 阅读 · 1 评论 -
BCG介绍
VC界面库分两大类:一,Direct UI,优点:界面绚丽。二,MFC扩展库。优点:1,方便用户。2,减少开发成本。3,界面相对好看。BCG属于后者,非常是否适合优化办公软件界面。作者在2008年以前对BCG的介绍“BCGControlBar是一个基于MFC的扩展库,您可以通过完全的用户化操作构成一些类似于Microsoft Office 2000/XP/2003和Microsoft原创 2014-08-24 17:53:20 · 2539 阅读 · 0 评论