工作中遇到的问题

Python 爬虫实战:华尔街见闻精选文章爬取(反反爬 + 投资情绪分析) 阅读详情
1.在用一套类的命名规则命名所有向导页之后,需求发生变化,导致新增类的命名规则和已有类不一致,冲突严重。
思路:命名时考虑将来的变化,比如说假设需求变了,新的类名是否能适应现有规则,以动态的眼光看问题,不要以为什么东西都是不变的。


2.程序写着写着又发现有更好的解决方案,导致改动面很大。
思路:解决一个问题时考虑所有的解决方案,不要抓住一个能够解决问题的方案就写。写好一个之后严格测试,看是否还有优化的空间,再应用到其他地方。


3.程序间耦合性太强,比如,某个向导页的一个成员变量产生变化,可能会导致相关的若干个地方发生改动。
思路:真的不要提供太多的公有成员,如果仅仅时提供功能函数,一定是const函数,对函数的调用不会影响对象的状态。如果是向导页呢?


4.界面文字上的改变,引起原来的资源ID,所挂变量名发生不适应。
思路:各种ID,变量都不要确定。等最后亚的时候再定。找不变的工作,完成并封装。


5.程序逻辑性不强,经常出现问题,等发现问题再改正,可否程序一次性就写对?
思路:考虑各种情况


6.对于一些控件,如文本框,每次都是同样的验证,那么代码将变得冗余重复。
思路:提取出来形成自己的类,就算用一次也值得,谁知道会用几次呢?是不是


7.如果你想完成一个模块,但是你有暂时完成不了,该怎么办?




在进行文件核对之前,必须将工程所有文件进行备份,以防不测。




以前使用SetTimer出现的问题:
如果创建SetTimer的线程没有DispatchMessage函数(或者说没有消息队列和消息循环),则SetTimer的OnTimer或者TimerProc不能被执行,因为消息根本就没法保存和传递及调用处理函数。


2006-07-25
每天都遇到哪些问题,成功了还是失败了,成功的原因,失败的原因,该如何改进?弄一个笔记本,没晚睡觉的时候记录下来。


怎么才能让自己经常回顾以前记下来的东西,以前我记的东西基本上都没有看过,就被淡忘了


为什么搭一个老的环境花了那么多时间?(OMC+SCH+LOG)+PMCTester


发GB OMC给左力华的时候别人都问了是不是最新的,但还是发了一个老的给他,为什么?我也比较了=>原因:抱着一种盲目相信是正确的观点,根本就没有比较完全,也没有回忆自己的是不是在那个基础上改的。


对于自己的不确认(怀疑自己不是在最新版上改的)导致自己在做其他事情(添加NGN-GB插件id)上也没有自信。事情干一件,确认一件,没确认之前,别干其他的。


为什么自己老是做错事?
老是记不住东西
总是怀疑自己
降低了工作效率,比如总是在文档间不断切换。
=>理清问题,强迫记忆,相信自己,放松!


2006-07-26
为什么加日志的时候头脑好像是木的,停止了思考,犯了那么多小错误,需要回头检查,效率太低了,争取一次正确=>保持头脑清醒,线想好再做。


光盘上,网上的例子是收集不完,看不完的。但是一些常用的库可由哪些功能还是应该知道的,比如MFC,STL等=>总结其功能,确立关键字,方便此后搜索!


2006-8-01
为什么会出现那么多小问题,就是当初没有一点点的完成,有问题马上解决,听王林的口气:
问强澄英
问左力华
问马涛
=>一句话,问问问


流量实时统计:要完成一个东西,首先要对整体有所把握,然后再分解来做,否则,抓住半截就跑,到头来全部都要返工。比如G9日志翻页,当初拣便宜做好了,到头来还得重做,重做时既要兼顾以前的代码(看懂以前的)又要兼顾以后的代码(调试新写的代码),同时还要考虑会不会对以前的代码产生副作用,填问题单。其工作量远远超过了以前就按现在 的实现方法的工作量,并且返工是一件烦人的事情,宁愿重写也不愿改写。
=>不要投机取巧拣便宜,争取一步到位,就算多花点时间也是值得的。
前面修改了一下GB的翻页,如果要实现排序的话,修改又白修改了,这就是以前工作没到位,写程序时一定要考虑扩展,只要以后有可能需要添加的东西,都要考虑到,不要只顾完成眼前的问题。


在写程序之前,了解又哪些东西可用时非常重要的,比如公共头文件。(也就是说在写程序之前,你需要首先确定你已经拥有了哪些资源,不要光顾实现,有现成的就最好用现成的)


我再他妈的往程序中写死东西我就不是人,从明天做起。(定义一个公共头文件+公共cpp文件,用来存放经常用到的宏,常量,函数)。
以不变应万变->可维护行->一致性(同样的东西一定要相同,比如控件的大小,间距,位置等)


2005年12月 统一客户资料平台
经过一个周就被淘汰了,这真是我的耻辱,不过我已经预感到了。教训:
为了再工作中不被淘汰,必须(会看-> 会问-> 会记-> 会说)


在十所马上就快工作一年了,回头翻翻以前在工作中所做的笔记和理解,问题,想想当初怎么就那么傻呢,整天还提心吊胆的。自己不亲手接触实际的工作,不管你怎么看,你始终不能清楚地理解,所以没必要担心。实际上,当没有实际工作的时候,我们最好多配置一下程序环境,多动手操作操作,对实际的程序来点直观的理解,比整天提心吊胆地钻入程序代码中更有用!等有实际的东西做时,一切自然会变得清晰!不过说回来,当初理解的那些傻问题,还是有点用,多调试程序,不会太难的,所以不用担心!!!!车到山前必有路,但是不要盲目自信和等待!!!谨记!能够多理解点还是多理解点,哪怕和花的时间不成比例!


2007.11.30
为什么告警翻页花了那么多时间,几次都没搞对?
答:
事情一次做对确实比以后改起来节约时间,哪怕当时多花点时间,比如告警的翻页,改了多少次都没对,后面找对方法后,就再也没出什么问题了。
如果要赶进度,那么就把困难直接给领导说,只要能拍胸膛说我一次能做好,肯定领导会考虑的。
最重要的困难是理解不够,所以想一次做好有点困难,因为理解是逐步加深的。


在不理解需求之前不要动手写代码,宁愿耍也不要动,否则后面会花更多的时间返工。


别做没把握的东西,最多只做基本功能,分清什么是最重要的。


需求可以通过电话,看别人已经做出来的的东西参考,虽不能完全就获得了真正的需求,至少能把握住最基本的了。


写代码还是要有设计,对设计没把握的时候也千万别写代码。






2007.11.30
写程序要尽量多的加断言和VERIFY,比如今天晚上回归问题时,因为有断言,我一下子就发现了有问题。
在关键地方一定要打日志,不是为了什么,至少可以证明程序跑到什么地方了,我正在做什么操作,出现问题时也可以及时推脱责任。
哪些地方才是关键地方呢?
答:
线程启动和结束,至少把线程id给打出来,这样通过进程查看器就能观察到每个线程的运行情况。






2009.2.26
从昨天开始到今天,主要任务是将SIP独立呼叫器改成一个插件,加入到UCC中。在这个过程中,遇到不少困难:


1. 由于对COM不熟,不清楚怎样才能通过向导生成和其他如TCC插件相同的代码?所以我打算从Startup这个代码比较少的修改成SIP插件,结果老是编译不能通过?


2. 和鲁建华解决编译不能通过问题,就其根源还是对COM不熟?


3. COM和DLL比起来究竟有哪些优势?什么时候用COM,什么时候用DLL?
答:


4. 为什么改变一次工程类型引起那么多错误?理想状态是直接代码放过去就可以了?怎么才能做到这样?


5. 如何透彻理解COM,做到可以理解每一行代码,可以自己随意修改?


6. 为什么我想从ATCA或TCE中迁移代码OutlookBar过来那么难,按理我迁移的都是大家共有的功能,应该很容易才对,是不是代码模块没划分好呢?即重用性不好?看来在写代码时,考虑重用性也是很大一方面?
答:


7. 为什么每个插件会出现那么多重复代码?比如实现的MEA接口函数


8. 为什么每个插件相同功能的实现却不一样?比如OutlookBar的创建


9. 搞那么复杂的宏,模板,那么多个类去实现什么自动注册,什么工厂之类的值得吗?用全局或者其他简单的方式不能实现吗?这复杂的代码多难看呀?


10. 为什么还是没有搞清楚NTE的逻辑关系?不太清楚哪些东西到哪些地方了?


11. 为什么我不能解决出现的异常呢?


12. 如何理清多线程的逻辑,即用一种直观的方式体现出来,包括交互过程,共享的资源,是否会死锁?
答:一定要在代码中将线程何时创建、何时结束、共享的资源有哪些列出来。这样的好处是看代码更容易,更容易理清逻辑。
有时对象不知道什么时候别人才不调用它的函数,这时它才可以删除自己,出现这样的情况可能是不应该的,因为程序不应该出现这种无法控制的逻辑,此时是不是可以考虑一下对象的合并,一定要使设计是可控的。


13. 为什么目前对取名和划分函数还是有困难?
答:需要一个长期的积累过程。


14. 为什么对工程目录的组织还是不那么确定?
答:主要还是对整个需求的把握问题,还是就是应该多看看别人的好代码是如何组织目录的。


15. 感觉还是不会设计界面?
答:重在需求。


16. 为什么到目前为止还没看懂TE的代码和IA的代码及UCC的代码?为什么还感觉那么神秘?
答:因为是没有目的的看,不知道是要从中学什么,当然什么都看不懂了。


17. 为什么对自己写的代码在脑里没有一个清晰的流程?如何做到完全了解自己的程序?有信心?
答:因为没有对设计(有哪些模块,之间如何交互,产生和销毁的顺序)画过图,因为没有特别考虑过软件架构中的那几层。




2009.2.27


今天主要是解决搞成插件之后引发的一些BUG,


1. 在使用ClearCase的时候,因为把文件夹Checkout出来后,导致后面的添加虽然看起来成功了,但是根本没有添进去。后来UnCheckout的时候竟然把本地的内容更改掉了,导致我重写花了不少时间,幸好被搞掉的文件不多,要是多了我就郁闷了。当
答:不管什么时候,当感觉不对的时候,首先做好备份是最重要的,你无法保证后面的操作究竟会造成什么样的后果。


2. 为什么动态创建ComboBox的时候,在exe中可以展开,而同样的代码在插件中却不能?
答: 这个问题大师帮我解决了(在改变ComboBox窗口的大小时,把高度设置足够大),原来ComboBox是没法改变其高度的,设置的窗口大小,仅仅只能影响宽度,而高度是用来影响下拉列表的高度的,就跟在资源中拉的一样.


但为什么在exe中将高度设置成很小也能展开下拉列表暂时还不知道原因?


3. 当资源在DLL中时,究竟哪些情况必须显式设置当前资源句柄到DLL?今天创建任务视图失败,对话框弹不出来,都是这个原因引起的.


4. 移植成插件后,当我把ComboBox的ID修改为9783后,竟然原来的事件触发不了了,恢复成2之后,又可以了,为什么?究竟是什么冲突引起的?


5. 刘海寅今天发邮件说要出双日报,究竟是谁的主意?感觉不在我的控制范围内了?领导喜欢这样的下属吗?
答: 我估计刘海寅以前经常都在发周报,所以这应该是他自发的行为.再次,我估计就算德哥想要关注进度,他可能会告诉我去做,不会直接让刘海寅发的.如果我不喜欢下属的这种行为,说明我管理不到位,嫉贤妒能.所以,对于这种情况,我要做的不是去排斥别人,而是努力提高自己的洞察力,让自己做得比别人更好.




2009.2.28


1. 如何才能从用户口中得到准确的需求,今天打了几个电话?如何准确收集需求?
答:光几个电话是无法获取真实的需求的,必须深入理解客户的业务才行。


2. 如何根据需求设计核心架构,即核心的数据结构?比如我已经确定了消息统计,流程跟踪,时延.


3. 为什么我将想直接向用户调查需求的时候,德哥好像不是太愿意呢,总想按自己的理解直接决定,其实我也有这种习惯,比如告警我就搞错了.


2009.3.4 
1. 在结构的设计上还是存在问题,比如昨天和今天的关于告警,流程跟踪,时延等这些模块该如何定义,放到任务中还是独立出来?


2. 如何才能一次做对,比如告警,之前做了实时和历史告警,并放在单独的视图中,现在又把它放到子窗口中,还是就是告警配置之类的,总是一改再改?


3. 小组长在项目中应该承担一个什么样的角色?我感觉我在项目中还是继续开发,和以前没有多大区别.


2009.3.5
1. 在处理码流的时候感觉还是不爽,需要重新实现类?
CMemFile,CArchive


2009.3.6 
1.带_s的函数为什么老是传错参数


2.如何根据模板的错误信息定位编译错误?或者根据提示去掉告警,今天的正则表达式告警是大师通过去掉stdafx(去掉预编译)搞定的。


3.保存模块如何设计?像目前这样,还是做成handler类的成员,还是handler类从它继承?




2009.3.16
对于像这两天调试的关闭UCC异常,以及前面一段时间遇到的拉动下拉框中的项程序会异常该如何解决?以及最快的调试(如果是调试启动会很花时间,如果仅仅是看是不是还是要挂,完全可以直接启动,我花在等启动上的时间可能都有3个小时,一个人不能太死板,灵活些)?
错误的原因主要还是在程序的初始化和清除(即资源的释放)上,今天又发现SIP也没有这方面的处理,有可能也会造成崩溃.以后写程序一定要首先考虑初始化和清除.
调试时遇到的另一个问题就是对COM不熟,比如为什么释放COM组建会进主框架的OnDestroy.
断点老是不进UCC,以前我明明知道可能是由于代码和执行程序不一致引起的,但是找了一下没找到,就蒙了,可是华仔就知道怎么搞,这就是别人水平高的原因.
还有一个犯的错误就没有好好跟踪代码?
对于将正常和异常的对比也没做好?
由于对BCG这一套的不熟悉,导致程序异常时一直没有搞清楚原理?




2009.3.17 


1.关闭SIP程序时出现死循环,原因是CloseFile调用CloseFile,我为什么就没发现?在写代码时怎么才能避免这种错误呢?
答:感觉还是测试不完全,如果跑过一次,完全能够发现。所有的代码必须跑一遍,这是最基本的测试。这样就能避免这种错误了。


2.在做打开过程数据目录和保存时又出现了重复代码,怎么才能解决?




2009.3.23


在捕获MFC库抛出的异常时,我老是记得书上说最好用引用,但是编译老出错!实际上,MFC库抛出的都是地址,在捕获时应该用指针类型就好了。


感觉MFC库中抛异常的程序很难写,因为一个操作对应好几个异常情况,需要你一个个捕获,不如C风格的返回值简单,我该咋办呢?




2009.3.30
1. 为什么界面改动那么多,像告警,从实时告警和历史告警(单独的),到只有实时告警(放在任务下面),又到单独的视图中,怎么才能避免呢?


2. 为什么界面做这么一个改动,需要动的地方那么多呢?就不可能小一些吗?


3. 感觉目录结构的组织还是不太好,经常我都在变动,怎么就不能一次做好呢?


4. 今天帮陈庭章查看V9代码的时候,因为所有的文件都在同一级,使用的时候是方便了,当你很久时间没看想回去找某个文件的时候,就很难找了,所以,稍微大一点的工程分目录还是必须的,BCG中每分,那是因为别人的代码没有分的必要,都是一个一个简单的继承类,怎么分呢,实在是没必要嘛。




2009.4.7
1.消息处理函数应该搞成保护的呢,还是公共的,还是私有的?
答: 
在VC6.0中,用向导添加一个WM_CREATE的处理函数,默认是保护的,在VS2005中,默认是公共的,看不出什么问题。经常,我们在子类的消息处理函数中都要调用基类的对应处理函数,比如
BOOL CHhh8Dlg::OnInitDialog()
{
CDialog::OnInitDialog();
所以,消息处理函数至少应该是保护的。又由于消息处理函数一般都是由系统调用的,我们很少自己直接调用,故不应该是公共的。综上,
消息处理函数默认最好为保护的。




2.什么时候采用继承,什么时候不用?比如CScenarioTree?


3.InitTree,CreateImageList,SetImageList,Expand之间应该怎样布局才是最好理解和重用的?


4.对于插入的命令节点内容,是外面全部准备好传进去还是界面自己去遍历?


5.遍历插入节点时应该用函数对象去实现吗?


6.什么时候应该拉控件,什么时候应该动态创建,动态创建如何容易地控制控件的位置?


7.在创建树之前要求得树的位置,求位置是否应该封装成一个函数


8.对于CInsertConfigDlg中用到了全局的g_pSimpleInsertImpl,是保存为成员变量后再用还是不用保存直接用?


9.当CInsertConfigDlg中的控件变多,函数变多的时候,就不想其他的CScenarioTree那样一看就懂了,怎么解决?


2009.4.9
1.什么时候用__super?
答:
MSDN上说Names with leading underscores are Microsoft extensions.也就是说,__super不是标准的C++关键字,仅仅是微软独有的。如果考虑移植性、老版本编译器的兼容性,最好还是不要使用__super。




2.对于
CToolBarEx m_wndToolbar;
CBCGPReportCtrl m_wndReportCtrl;
后者更长,放到前面好像更好看,但是工具条是先创建的,在类中该谁前谁后?
答:我觉得还是按控件在窗口中的布局(从左到右,从上到下)来比较好,这样一看成员变量的先后,就知道了窗体中控件的大概布局。


3.为什么那么多地方重写了PreTranslateMessage,仅仅是为了实现Ctrl+C,有没有办法消除重复?


4.OnEditCopy到处都有,如何消除重复,但是又不能用继承,对于CListCtrl和CBCGPGridCtrl
将其传递到另一个函数实现,很爽


5.为啥对于OnEditCopy,FirstUpdateStat,UpdateStat函数,一眼扫过去看不明白?
(
1.代码行不能一屏看完
2.循环太多
3.类型名太长
4.返回太多
)


6.在OnStatMsgInfo中就调用了一个FirstUpdateStat函数,看起来很别扭,是不是这样不对?
答:从公司的编程规范函数部分来看,确实不对。


7.如何在不太熟悉代码的时候,别人一看就能抓住重点,比如CStatView和CScenarioTree.h,是否可以在头文件中描述一下重点功能,流程,函数。
答:确实该这样,否则自己过段时间都没法看懂。在SIP+RTP中,我采取了这样的办法,确实收到了较好的效果,一看注释就回想起以前的实现方式了。


8.成员布局基本上找到方式了。
分为: 构造函数,类型定义(比如枚举类型,私有类),公共接口,虚函数,消息处理函数,私有函数,成员变量(public,protected,private)


9.对于枚举,成员函数中用到了枚举,二者该怎么做?成员函数在前还是枚举在前?
答:在BCG中,枚举在前定义。例如
class BCGCBPRODLLEXPORT CBCGPToolBarImages : public CObject
{
friend class CBCGPDropDownFrame;
friend class CBCGPImageEditDlg;
friend class CMenuImages;
friend class CBCGPDrawManager;


public:
CBCGPToolBarImages();
virtual ~CBCGPToolBarImages();


enum ImageAlignHorz
{
ImageAlignHorzLeft,
ImageAlignHorzCenter,
ImageAlignHorzRight,
ImageAlignHorzStretch
};


enum ImageAlignVert
{
ImageAlignVertTop,
ImageAlignVertCenter,
ImageAlignVertBottom,
ImageAlignVertStretch
};


// Operations:
public:
static BOOL Is32BitTransparencySupported ();


BOOL IsValid () const
{
return (m_hbmImageWell != NULL);
}


BOOL IsReadOnly () const
{
return m_bReadOnly;
}
看来,如果成员函数如果想直接使用枚举类型(不用int代替),这就是最好的办法了。


10.ID_TOOLBAR = 1;是放在resource.h中好呢还是就放在.cpp中好?
答:感觉放在resource.h中好一些,比如当有两个工具条时,如果各自取ID都为1,可能就出现问题了,而在resource.h的话,所有的ID都应该是不重复的,所以不会有问题。


11.CString老是不提示咋办?


12.什么时候用LONG,什么时候用long?在SIP呼叫器中都用了,感觉乱
答:从不同操作系统的移植性上说,用long更好。毕竟LONG是Windows定义的,而long是标准的。


13.判指针是否用NULL,比如if(pButton)还是if(pButton == NULL)
答:后者,因为这样能够明确表明是比较指针,万一哪天指针为空时不是等于0,比如是-1,用前者岂不是完蛋了。


14.static const in MAX_ITEM_COUNT = 100;是放在头文件中好呢还是成员函数中。
答:头文件中。毕竟,下次要修改时在头文件中还是很容易找到的,加上还可以从这个东东看到实现方式。而在成员函数中你就得不到这些好处。也就是说,如果这个东东可能会被改动,或能从中看出算法的实现,最好还是集中放在头文件中。
再推论,最好,我们能从头文件中就得到类的实现,所以以前写在cpp中的文件注释最好也搬到头文件中。




15.为什么CAlarmView::CreateLevelCombo不容易看懂


16.为什么模式对话框向其父窗口发送WM_COMMAND消息,父窗口收不到?
答: 为什么又可以收到了呢
void CAboutDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
CWnd* pParent = GetParent();
pParent->SendMessage(WM_COMMAND, 10000, 0);
pParent->SendMessage(WM_USER+100, 0, 0);
}


17.对于列信息及枚举,实在.cpp开始集中设置呢,还是在头文件和插入的时候直接写?
答:我还是偏重于后者,如果是前者,老是需要定义一个值和字符串的结构体,取名老麻烦了。插入列肯定在OnCreate中完成,谁都知道,所以后者不会导致代码不好看。


2009.4.13 
如何解决内存泄露?


如何找到性能瓶颈在哪儿?通信?


如何看明白别人的程序?特别是结构体中成员很多的情况?


对于通信量很大的程序如何写日志文件,如何写调试信息?比如偶尔有一次呼损,如何定位?




2009.4.18
如何在C程序中使用C++的库?
答: 目前想到且应用过的方法是将C++的库包装到一个动态链接库中,并提供C形式的接口(编译时记得在声明中增加extern "C")


实际上,只要把函数定义嵌在extern "C"中就行(不一定要放在动态库中,比如map.dll多么麻烦啊),让C包含的头文件不要带extern "C",因为C语言中是没有这个关键字的,而函数定义(C++)可以包含这种不带extern "C"的头文件,虽然和实现不一致,但是一点问题都没有。(今天在支撑体系上发了个傻言,丢死人了)


学会使用hash_map,它和map比起来会快很多吗?
答:如果你不自己提供hash函数,它的用法完全和map一样。例如
#include <hash_map>
#include <iostream>
#include <algorithm>
using namespace std;
using namespace stdext;


void print(pair<int, int> elem)
{
cout << elem.second << endl;
}


int _tmain(int argc, _TCHAR* argv[])
{


hash_map<int, int> hashmap;
hashmap[2] = 2;
hashmap[1] = 1;
hashmap[6] = 6;


for_each(hashmap.begin(), hashmap.end(), print);

int dummy;
cin >> dummy;
return 0;
}
一般情况下,hash_map并不比map快,除非,你分配适当的桶数(如果允许的话,尽量让桶数等于元素的个数,这样如果hash值求得好的话,一次就定位到要找的元素了),并且自己提供优秀的hash函数(网上有hash字符串的最优算法,如果你的元素的key有规律,也可以自己写),以便让元素均匀的落在每个桶中,当在查找时,桶中元素的个数小于用map需要比较的次数时,才比map快。默认情况下,hash_map好像只分了4个桶,相当于少,所以基本上还不如map效率高,要高效,估计得我们自己提供hash算法和桶数。虽然默认是4个,但是正如张尹给我讲的那样,实际山STL中的hash也是动态的,即桶数会动态调整的,否则那不慢死了!


2009.4.27
1.如何学会管理和处理关系,比如小泉,刘海寅


2.为啥丢包搞了了那么长时间,为啥没有早早发现是网络的问题


3.对于组长不了解业务怎么办,比如sip


4.遇到想sip这种写得不好的代码怎么阅读


5.为啥sip项目出现那么多问题,那么多风险,好多东西没有严格测试,使用那么复杂




2009.5.11
德哥:
能隐的,不好的尽量不说,比如我的抱怨邮件
写作能力,从看邮件的人出发
固执
日报,从领导角度出发,进展,是否有延期。


师傅:
1.计划,卡时间点(倒推方式)
2.改善关系(私下吃饭),刚开始可能不接受,可能后面就好了。
3.奖惩分明(做得好的发邮件鼓励)
4.告诉领导自己遇到的困难,风险
5.换人
6.和用户确定规格




为啥刘和陈改出的性能和内存泄露问题那么久才发现,害得我花了那么多时间去定位?


答:对于关键用例(比如SIP中的性能和内存泄露),必须保证每天都能通过。所以,在一个项目开始的时候,需要先确定一部分关键用例,每天有人负责测试,及时发现问题及时找到原因,所以每次CheckIn的代码必须保证是能够运行的,比如SIP中出现过连续一段时间的都不能运行的情况,等到可以运行的时候,代码已经改了一大堆了,怎么好定位呢!




2009.5.12 
1.为啥RandomInteger+new_callid消耗的时间不等于整个create_session_callid的时间,难道是中间刚好有线程切换吗?怎么才能准确地求出一段代码消耗了多少CPU?




2009.5.14
1. 在迭代之前,必须把系统分解成小的开发单元,这是真正考验架构能力的地方!为什么在SIP开发过程中无法做到,比如media_ip,branch_int都是些没有预料到的东西?


2.如何验收迭代?如何自动回归以前的功能?在SIP呼叫器中到位前为止我都没找到答案


3.send节点无法带next属性,如何避免?
对业务理解不清楚,只能尽早用真实业务去验证才能发现问题,需要客户尽早参与,闭门造车搞不定。


4.无法打印变量
对客户预料不够,即调试能力不足,跟SIP呼叫器一样,一定要做到随时了解整个系统的状态,像show_status一样


5.让先验证一下再给客户,结果没验证,说什么没环境,一直到今天还说我的代码有问题,不知道以前他是怎么验证变ip和端口的
我们应该保证用户可以验证的手段自己先验证到,出现问题知至少也要保证是新问题。


6.停止任务时保留呼叫结果
对应用场景了解不清楚,怎么办呢?
做大的问题是对业务和使用场景不了解,唯一的解决办法就是尽早用真实业务来验证,在使用中发现需求和设计,刚开始尽可能设计得简单,追求尽快最基本的功能,比如告警这玩意,直接写文件,或者打印出来都可以,不需要搞那么花哨


7.在UCC,PalTraffic,SIP呼叫器中,都有显示实时告警,为什么就不能封装起来,每次我们都得重新写,烦死了!


8.为什么我老是怀疑适配器和界面之间采用共享内存的可用性,为什么适配器和界面之间那么多接口,是不是说明两个模块之间的功能划分有问题?




2009.5.22 
1. 为什么定时器函数写在控件类中时,必须得把基类的处理函数去掉才能正常进行,否则进大约两三次就没有了?
答:注意,不是写在控件类中的都不行,而是只有放在CListCtrl中的才不行。参考MSDN对CListCtrl的描述如下
Knowledge Base article Q200054: PRB: OnTimer() Is Not Called Repeatedly for a List Control
还有一点需要注意,如果在CListCtrl中添加了对WM_TIMER的消息处理函数OnTimer(),就算你没有创建自己的定时器也照样有WM_TIMER消息过来,也就是说,在CListCtrl的内部,已经默认创建了一个定时器,通过在OnTimer()中打印它的定时器ID,发现ID为45,间隔为500ms。这也是今天突然间发现CListCtrl中的定时器不准的原因,因为实际上有两个定时器。
显然,在SIP+RTP的日志处理窗口中,要想按我自己的想法定时去取数据,得在OnTimer()中判一下定时器ID,否则就和我自己的设计偏离了。


在公司参考了Q200054以后,终于知道原因了,正确的写法是:
void CLogListCtrl::OnTimer(UINT nEventID)
{
if ( nEventID == ID_MY_TIMER)
{
// 
}
else
{
CListCtrl::OnTimer(nEventID));
}
}


2. 在写C程序时,一般以单个文件为模块,相当于C++中的一个类,对于每个函数,都应该在头文件中列出,并且自己加一个私有,公共标志方便阅读,这样我们就知道哪些是接口函数,哪些是私有的了(阅读sip代码有感)。
如何将C++的特性应用到C程序中?




2009.5.25 
1. 为什么我觉得工作上老不顺心,或许这也就是小泉,刘海寅当初的想法?
答: 
a.觉得项目的成功对组长更有意义,对自己意义不大,所以积极性不高,有时还有希望项目失败的想法,以证明组长做得不好,决策失误,是组长没有听自己以前的建议造成了失败,证明自己不比组长差(PM应该尽量避免让相同级别,存在竞争关系的人出任组长,比如让我带两个新员工可能比带刘和陈更好,都是强兵猛将并不一定能产生好的效果。如果必须这样,组长可以自己花钱但是说这是项目经费请组员喝喝酒,聊聊天,一起抱怨抱怨,同时让组员对项目充满信心以改善私下关系,当组员对你不反感的时候,工作就好开展得多了。这一条最重要,搞得好后面好多事情都很好做。在SIP叫器中犯了)
b.力图把自己负责的部分做好,以便在失败时让自己脱离干系,所以积极希望把模块划分清晰,接口明确,分工明确。在责任不明确时心里焦急烦躁,因为项目失败无法让自己脱离干系(组长如果能协助把模块分配好,责任到人,不要让组员自己去分配任务的话,效果会好很多。在SIP呼叫器中应该出现了目前我和鲁出现的情况,组长应该出面,但是此时组长会不会担心干涉太多呢,万一组员之间没有这种情况就惨了,组长如何判断已经出现这种情况了?直接问组员是如何分工的,问到我可能会找点东西搪塞一下,不会说我们配合出了问题,估计把组员召集到一起明确分工一下还是不错的选择,管他配合得怎样)
d.对项目做好没有信心,比如我就觉得杨负责的东西太多搞不定,对自己提出的意见老是遭到反对,说什么组长都有理由反驳(组长应该慎重对待组员提出的每一条意见,如果不是特别不合适的,尽量采纳认可。在SIP叫器中我把组员大多数都否定了。要是真的不认可怎样办呢?比如配置界面,简单插入功能,架构?建议可以采用缓兵之计,先不要否决,可以说要不我们先用某个方案做,等后面发现不合适了再用你的方式,对,这样组员心里好过些)
e.和自己负责同一块的人分工不明确,没有当初我和黄建那样的分工(这是组长做得不好,组员之间不协调)
f.找别人讨论界面框架的时候,别人不愿意理会,理由是他自己那一块的东西没搞定,没空。他是怕到时我把事情搞定了,他的那块没搞定,怪罪的就是他。(这条比较难解决,如果帮别人一起改,可能会修改别人的代码,造成新的矛盾,还有就是本身就不愿意看别人的代码,看着难受)
g.界面框架和各接口不确定,导致后面工作很多,但无法开展工作。(应该由组长首先应该关注的,组长做得不好,组长首先关心的应该是任务划分得怎样,有没有风险)
h.本来想把自己以前的劳动成果运用到当前项目,比如问题单列表,组长不是积极接受(组长应该仔细评估,最好能认可接受,或以委婉的方式让组员做适量修改)


3. 当组长的反感什么,喜欢什么?
a.有时会担心组员喧宾夺主,比如提出很多好建议,并且抄送给了领导,虽然心里有点不爽,但是仍然认为组员积极性高,值得表扬,评价是也会给予高的评价(那就别抄送领导了)
b.和组员讨论问题时意见不一致,争论得面红耳赤,心里也会觉得不爽,但不会影响对人的看法,也会认为是积极的(组员让步,提出意见,组长不理解就算了)
c.希望组员能对组长尊重一下,讨论的时候不要板着脸,说话不要太绝对(对,我应该学学)
d.不喜欢组员抱怨对自己的项目堪忧,有时希望听到别人的赞扬,比如说你的日志模块对我定位问题帮了大忙,很有用,我会对他产生好感,希望组员提出问题时,能同时提出解决办法(找到可圈可点的地方)
e.不喜欢组员越级,组员可以表现得很好,我也喜欢,也会记在心里,但是我不喜欢你在我的上司面前表现。
f.当认可某位组员时,我会在考评时出现偏颇,虽然偏颇不大,但至少不会往坏里打,比如黄
g.不喜欢别人太嚣张,其实组员也不喜欢组长太嚣张,人都有那个习惯,你说你很强,我就希望你失败(我要低调)
h.喜欢组员把自己说的话当回事


4.当不满别人做的不好的地方时,该如何提出来,别人才乐意接受
a.例如,我老觉得郑总是乱改,比如通信模块,不加验证,说安装盘是好的,我只需要往其中加就行了,但问题很多,我该如何提出?(今天直接在德哥面前抱怨他了,这是我做得不好的地方,可惜我除了抱怨实在没办法了,怎么办?)
b.对他支持用户不满,写的程序差不满(怎么办?)




2009.5.26
我对这个项目不满的地方?
1.没有继承SIP呼叫器中已有的成果
2.多进程架构不合适
3.采用内存映射的方式不合适
4.没有采用尽可能做得少原则
5.缺少调查,没有实际的用户支持经验,号称强势有用吗
6.中途加入的人不能发挥作用
7.不相信他能修改得很好,对SIP协议不熟
8.较主观,听不进去建议,无法讨论,固执




2009.6.2 
1. 在使用BCGPToolbar时,因为动态添加了按钮,但总是刷新不出来,原来是少调用了RecalcSize函数,导致花费了至少半天时间,耗时大,如何解决?




2009.6.10
1.在RTP+SIP中,当自己不能主导设计时,如何适应别人的设计?如我和杨之间的冲突,我和鲁之间的冲突。
答:其实没有必要去争论,只要程序将就能写就行。因为就算是差的设计,有缺陷的设计,复杂的设计,比如不能实现sip一运行就启动流程跟踪,别扭复杂的内存映射数据传递方式等,程序也不一定就会出现问题,我只要封装好,把易发生错误的地方隔离出来专门处理(不要让复杂性到处都是),也不会造成什么大问题,这样就算以后要重构也很容易。


2. 为什么老是不能把握住用户的需求,即做最少的事情去满足用户,比如时延,流程跟踪,消息统计,告警,为什么我都做那么多电话调查还是感觉没把握?如何很好的把握需求?


2009.6.15 
1. 有时在resoure.h中添加了一个ID,且在cpp中已经包含了这个resource.h头文件,但是编译时就是提示找不到这个ID?
答:这是由于在包含resource.h时没有采用具体路径引起的(鲁建华发现)。


2009.6.16 
如何理解需求办法之一:之前设计SIP呼叫器界面的时候,打电话问了那么多人,结果好像什么都没得到。其实问的问题中,好多都是sipp的。今天下午安装了sipp,并看了它的文档,没想到使用起来那么简单,功能那么强劲,比如号码从文件导入,停止,时延设置等疑惑的问题,在其中都有答案,感觉它的解决办法比我们的合理多了。由此,我们可以得出,在设计一个东西之前,首先要了解业内的行情,比如你在设计压力测试工具之前,你不了解,不会用业内流行的几款工具,你能想出、设计出什么好的东西来吗!其实学习商业工具,没有我们的工具难。比如今天看的sipp吧,那么容易就学会了,只要你有耐心,耐住性子看看文档等,应该都会使。
综上,发明一个东西之前“必须”先要了解业内的行情,这样才能更好把握需求,事半功倍。


2009.6.29
对于那个图,搞了两天但是心里老是没底,总感觉自己没思路,自己都不清楚应该搞成什么样。
比如一创建后mark,counts窗口应该处于什么状态,第一次放大应该除了处于什么状态,窗口放大时各子窗口应该处于什么状态,需要哪些成员才能维护需要的状态等等。对于自己都没有确定的东西,老觉得这样也行,那样也行,结果什么都不确定,什么都没把握。所以,不管是不是最好的方式,先确定下来具体要做成什么样,再开始动手才行。
除了上面的,还要确定好各个实体的关系,比如主窗口负责什么,mark窗口负责什么,counts窗口负责什么,先把之间的交互关系,接口确定下来再做。
最好是把这些关系,状态变迁用文字描述下来,如果能写到代码中作为注释就最好了。




2009.7.1
1.就算我我预测到我的chart中可能有多个serial,我能怎么办呢,详细分析如何实现,万一没出现多条的情况,我的时间岂不是浪费了?!也就是,我们如何在灵活与过设计之间找到平衡点?


2009.7.2 
如果已经找到对象,目前正在实现这个对象,那么你首先要关注的是与外界的接口(和哪些对象有直接交互),最主要的是可能引起内部状态变化的接口,当然,内部状态有哪些,此你也应该搞清楚。
不管是程序,模块,类,还是函数,如果你一句话不能概括它,可能它的设计就有问题,也许就是低内聚的。比如今天绘图窗口中有的函数名明显的不能表达它的实现,显然有问题,改了以后,可以用一句话表述它之后,终于解决了逻辑不清的缺陷。并且如果一个函数不是只做一件事情,别人调用你的时候很难处理,比如我只想要你做一件事,你却把我不想要的事情也做了,例如之前的SynMarkWndPos




2009.7.7
1. 为了实现工具条Text below image,差不多花了我两天时间,怎么会花那么多时间呢?刚开始BCG调试不了,后来发现时没找到DLL对应的pdb文件,重新编译一下BCG就好了,看来它默认安装的还不一定都好使。BCG在修改了工具条后,老是要删除注册表才能生效,有没有什么好办法?调整了一下PC中的代码,怎么工具条就是不正常?文字就是不出来,通过调试,发现是工具条有个属性值没设置,文档上说这个属性默认是开的,而在我的测试程序中确实默认是开的,怎么到了PC上就不是了呢,看来只有代码是最可信的,其实好好调,也是能解决问题的。后来又发现图片老是不对,因为工具条共享了所有的BMP图片,此时我就没好好调了,叫上鲁建华,他就知道看看LoadBitmap,我提了个建议,先改改lock参数试试,虽然他觉得不可能,但是还是试了,结果还真和lock有关系,也就是说,当一个人思维僵化的时候,解决问题的能力已经下降了,此找一个人换一下思维还是很好的,并且两个人在一起解决问题可以思维互补,更有助于解决问题,我需要提高耐心,老老实实调代码的能力,不要一搞不出来就急,不能太依赖于文档,应该更相信代码。




2009.7.10
1. 今晚用TRACE0( _T("TimerProc\n") );的时候,竟然编译通不过,告诉我error C2065: “LL”: 未声明的标识符
答:通过定义
#define TRACE0(sz)              ::AfxTrace(_T("%s"), _T(sz))
#define TRACE1(sz, p1)          ::AfxTrace(_T(sz), p1)
#define TRACE2(sz, p1, p2)      ::AfxTrace(_T(sz), p1, p2)
#define TRACE3(sz, p1, p2, p3)  ::AfxTrace(_T(sz), p1, p2, p3)
你可以发现,其实它们已经给格式化字符串加过_T了,如果你再加,那么当是UNICODE版本时,相当于字符串前面就是双LL了,也就是说当用这几个宏时,格式化字符串只能用ASCII字符串。
但是,TRACE( _T("TimerProc\n") );却是可以编译通过的,定义如下
#define TRACE              ::AfxTrace
而
void AFX_CDECL AfxTrace(LPCTSTR lpszFormat, ...);
显然,通过是正常的。


2009.7.15
今天在写任职等级评定胶片时又严重受挫,平时做了些什么,输出的文档等都没有记录,导致根本没有什么可写的,郁闷,平时要多记录呀!


今天参加用户大会,别人提到的Spider,TNCC,GTR,核心网的那些网元、组网图一点都不了解,怎么可能可能和别人进行良好的沟通,方案的设计呢?


2009.7.16 
1. 在SIP+RTP中,虽然已经考虑避免任务修改,删除,状态变化时的同步问题,但是,在时延图形显示时,还是出现了同步问题,究竟怎样才能避免这些问题!




2009.8.13
1. 以前为什么老觉得不需要胡勇?
答: 这主要还是我的性格问题,老是不相信别人,除非别人已经让我相信。经过这段时间的磨合,特别是这次测试中看到胡勇主动承担责任的表现,我顿时对他的看法有了转变。要用一个人,首先是你要找到事情,然后就是要充分的信任别人,适时地再跟踪一下情况就行了。我这么喜欢积极承担责任的下属,我在领导面前,是不是也是这样呢,值得反思!


2. 为什么上半年考评不好?
答: 一方面,是宣传做的不好,我老是看到不好的一面,这让领导就真的认为是不好了,我应该习惯好看到好的一面,谁都不喜欢听不好的话。另一方面,我亏在了360调查,也就是刘海寅的手里,和别人打成一片,搞好关系,估计比解决一个严重问题好得多。我解决了那么多严重问题,最后还不是得了个B么。第三,不要惹领导眼里的红人,比如杨志周,张尹,惹他们就等于惹领导,你说谁好,那我就说他好,反正对我损失也不大,说不定还能得点好处,跟领导的红人比过高低只有自己吃亏的。第四,有几次邮件估计也有点影响,这次胡勇的事,同样这样,我可不能走边江的老路。
下半年,如果360度调查到了杨志周和鲁建华手里,我的考评也好不了哪儿去,虽说好的领导要容得下属下的意见,但是不是人人都是好领导,有冲突别人就会对你有意见,不要图一时爽快得罪了别人,特别是一些小的方案。
让我们都开始忽悠对方吧!













135、转动惯量辨识方法 <think>我们要求根据内容生成≤150字的文章摘要。内容是关于电机控制中转动惯量辨识的方法和工程经验。摘要需简洁概括核心:转动惯量重要性、三种方法(加减速法、正弦扫频、MRAS)、工程注意点(摩擦补偿、采样同步等)、实用建议(组合使用、滤波限幅、安全保护)。字数严格≤150。需要提炼。</think>转动惯量辨识是电机控制的关键,负载变化会导致速度环失稳。工程常用加减速法(简单可靠)、正弦扫频法(高精度)、MRAS在线辨识。实操需补偿摩擦、同步采样、控制激励幅度。建议混合使用,辨识结果需滤波限幅,并设置 阅读详情

相关推荐

【2026-Spark实验一-Windows中安装Spark环境】

本文详细介绍了在Windows系统中配置Spark 3.5.8开发环境的完整流程。主要内容包括:安装JDK 8并配置环境变量,下载并解压Spark 3.5.8预编译版,设置SPARK_HOME系统变量,配置Hadoop的winutils工具解决Windows兼容性问题。通过spark-shell和SparkPi示例程序验证环境配置成功,确保Spark能够正常运行分布式计算任务。文中特别强调了路径命名规范、环境变量设置顺序等关键细节,提供了完整的配置截图和验证方法,帮助开发者快速搭建稳定的Spark学习环境。

pblh123的专栏 1586

CBCGPGridCtrl实践

定义说明 资源 IDC_CHECK .bmp类型的勾选的图片资源ID IDC_FOLDER .ico类型的文件夹图片资源ID IDC_NODE .ico类型的节点图片资源ID IDC_PICTURE_AREA MFC的picture控件ID,该区域用于创建CBCGPGridCtrl 控件相关 定义列号,方便后期修改 enum{ FIRST_CHECK, SECOND_ORINARY, THIRD_BUTTON, FOURTH_COMBBOX, FIVETH_PROGRE

weixin_42331112的博客 4316

从零到一:RJ71EN71 ModbusTCP配置的避坑指南与实战技巧

本文详细解析三菱RJ71EN71模块的ModbusTCP配置全流程,涵盖GX Works3参数设置、地址映射、通信调试等核心环节。针对工业环境中常见的IP冲突、软元件分配错误、通信超时等高频问题提供实战解决方案,帮助工程师快速构建高可靠性通信网络,避免项目延期风险。

zzz56的博客 331

BCG 使用之CBCGPTreeCtrlEx控件

CBCGPTreeCtrlEx使用

u011269801的专栏 1506

Dia 使用说明

简述 在linux上面能找到dia这个工具还是挺幸运的,因为之前画流程图总是使用ubuntu默认的word工具 在里面画图,感觉流程图使用起来麻烦,并且视觉效果真的不好看。 自从使用Dia后,感觉至少画起来流程图会变得越来越标准了。但是Dia也存在问题,就是使用的文档很少,使用中遇到为后,查起来比较费劲,但是至少问题不是很多,所以使用中遇到的几点问题我就记下来,和大家分享,加快大家的开发和文档整理能力。 我会按照遇到的问题来说,不存在使用的先后顺序。 1. Dia 去掉背景中的线条 首先去点那个大一点的蓝色

linan101的博客 4926

U-net复现pytorch版本 以及制作自己的数据集并训练

GitHub链接: https://github.com/milesial/Pytorch-UNet 论文链接:

candice5566的博客 3万+

在ListCtrl控件中插入图标

在ListCttrl控件(Report风格)的使用上,有时需要向子列中插入图标,例如要制作一个下载软件,我们计划在控件的第一列用图标的形式显示下载状态:排队、下载中、出错等等,第二列计划用图标显示下载文件类型,要做出这样的效果,就必须使用CListCtrl的SetItem(八个参数)方法,由于我这台电脑上没有MSDN所以这八个参数具体都是什么意思我暂时不清楚,在这只介绍下...

weixin_33943836的博客 435

YOLOv12超参数智能优化:基于内置Ray Tune的自动化调优实战指南

购买即可解锁300+YOLO优化文章,并且还有海量深度学习复现项目,价格仅需两杯奶茶的钱,别人有的本专栏也有! 目标检测模型的性能瓶颈往往源于超参数配置不当。传统手动调优方式不仅耗时耗力,且难以找到全局最优解。YOLOv12集成的Ray Tune框架为解决这一难题提供了完整方案,通过分布式异步优化算法,可实现超参数搜索效率的指数级提升。实际测试表明,采用Ray Tune自动调优的YOLOv12模型,在COCO数据集上mAP指标平均提升3.8%,收敛速度加快2.1倍。在VisDrone无人机数据集上的跨域测试

LXY_LOVE36的博客 119

BCGControlBarPro 对话框中添加CBCGPGridCtrl显示控件

界面添加Picture Control控件 CRect rectClient; GetClientRect(rectClient); // Create grid control: m_wndGrid.Create(WS_CHILD | WS_VISIBLE, rectClient, this, ID_GRID); m_wndGrid.InsertColumn(0, _T("Norm Column"), 100 /* Width */); for (int nRow = ...

u011269801的专栏 1284

YOLOv11 损失函数解析

YOLOv11 在 YOLO 系列的持续演进中,通过 ​多模态损失协同优化、动态任务感知机制 和 ​超轻量化设计,实现了检测精度与推理效率的再突破。其损失函数设计融合了前沿的几何建模、分布学习与自监督技术,显著提升了复杂场景下的鲁棒性。

浩瀚之水的专栏 6702

一文搞定 ST22 短转储 MEMORY_NO_MORE_PAGING:看懂 SAP Paging 机制,参数 rdisp/PG_SHM 与 rdisp/PG_MAXFS 怎么设才稳

SAP系统MEMORY_NO_MORE_PAGING错误通常源于Paging资源耗尽而非物理内存不足。关键排查点包括:通过ST22确认错误类型,ST02监控Paging使用情况,检查工作进程trace中的"no more free blocks"提示。解决方案建议将rdisp/PG_SHM和rdisp/PG_MAXFS设为相同值(如250000块≈2GB),使Paging完全在内存中运行。同时需优化易耗Paging的代码逻辑,如避免滥用EXTRACT命令和超大内存对象传输。典型案例如月末

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 332

MFC 禁止拖动 ListCtrl 表头,获取选中行号

禁止拖动 重载OnNotify BOOL CMainDialog::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult) { // TODO: 在此添加专用代码和/或调用基类 //屏蔽两个消息通知码,使得禁止拖动List表头 NMHEADER* pNMHeader = (NMHEADER*)lParam; if (((pNMHeader->hdr.code == HDN_BEGINTRACKW) | (pNMHeade.

我的 博客 943

Copilot在游戏开发中的应用:Unity脚本自动生成实践

2021年GitHub Copilot的发布,为代码自动生成带来了革命性突破。作为基于GPT模型训练的AI辅助编程工具,Copilot能根据注释、函数名、代码上下文,实时生成符合语法和逻辑的代码片段,甚至完整脚本。减少重复劳动:自动生成模板代码(如生命周期、结构),让你专注核心逻辑;降低API学习成本:对Unity特有的组件(RigidbodyAnimator)、类(),Copilot能生成符合最佳实践的调用代码;统一代码风格:通过团队共享提示词模板,让生成的代码符合项目规范;快速原型迭代。

AIGC应用创新大全的博客 1617

整理工作中遇到的小问题

整理工作中遇到的小问题

BubbleKitty的.net学习航游 1464

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

PTA——工作分配问题

工作分配问题 设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij 。 设计一个算法,对于给定的工作费用,为每一个人都分配1 件不同的工作,并使总费用达到最小。 输入格式: 输入数据的第一行有1 个正整数n (1≤n≤20)。接下来的n行,每行n个数,表示工作费用。 输出格式: 将计算出的最小总费用输出到屏幕。 输入样例: 在这里给出一组输入。例如: 3 10 2 3 2 3 4 3 4 5 输出样例: 在这里给出相应的输出。例如: 9 #include<iostream> u

senmu_的博客 819

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

工作分配问题、布线问题

使得此时布线长度最短。例如顺序(1,3,2),根据输入元件1、3之间有3条线,距离为1;元件1、2之间有2条线,距离为2;元件3、2之间有3条线,距离为1。我的做法有点暴力,直接求出所有排列顺序,然后求出每次的总布线长度,求最小值。我看其他有说分支限界法,这个我们才开始学,还不太懂,之后可能会优化一下代码。这到题感觉其实是排列数字的进阶版。用样例解释一下题目吧!3个元件,求出元件的一个。

weixin_51567051的博客 299

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

售前工作出现的问题

您好,在售前工作中出现的问题是什么?我将尽力帮助您解决问题。

weixin_35754676的博客 69

工作分配问题

1279: 工作分配问题 时间限制: 1 Sec 内存限制: 128 MB 提交: 10 解决: 7 您该题的状态:已完成 [提交][状态][讨论版] 【问题描述】 设有n件工作分配给n个人,将工作i分配给第j个人费用为Cij,为每个人分配一件不同的工作,对于给定的工作费用,计算最佳工作分配方案,使得中费用达到最小。 【输入格式】 第一行有1个正整数(1&lt;=n&l...

ljyanjy 2923

工作分配问题【回溯算法】

工作分配问题【回溯算法】

m0_46308522的博客 1万+

工作中的问题

工作中的领悟 在工作中,每个人都会遇到这样那样的问题,那么有些年轻的人就会对问题反感,觉得不出现问题最好,很多年前我也这样,后来惭惭的,我的看法有所转变, 应该积极的心态去看问题,有出现问题,至少说明“水是活的,不是一潭死水”,前几天突然有了更深的领悟,出现问题后解决问题的关键是什么,有些人会说当然是 靠人,实在不行靠领导,但有没有想过,这样的想法太自然了,在公司里我觉得有点行不通。应该靠流

vchalf_moon的专栏 439

工作分配问题 c++ 简单的递归回溯问题

题目描述 设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij。试设计一个算法,为每一个人都分配一件不同的工作,并使总费用达到最小。设计一个算法,对于给定的工作费用,计算最佳工作分配方案,使总费用达到最小。 输入 输入数据第一行有1个正整数n (1≤n≤20)。接下来的n行,每行n个数,第i行表示第i个人各项工作费用。 输出 输出计算出的最小总费用。 样例输入 3 4 2 5 2...

女神的博客 1665

工作分配问题(job)

工作分配问题(job) Description 设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为c_{ij} 。试设计一个算法,为每一个人都 分配一件不同的工作,并使总费用达到最小。 设计一个算法,对于给定的工作费用,计算最佳工作分配方案,使总费用达到最小。 Input 第一行有1个正整数n (1≤n≤20)。接下来的n行,每行n个数,第i行表 示第i个人各项工作费用 Output 计...

Konnyaku 3684

回溯法之工作分配问题

/* 时间:2011-11-20 作者:xiaosi 题目:工作分配问题 */ #include #include using namespace std; #define M 100 class Work { friend void work(); private: void Backtrack(int t); int N;//N件工作

落日小屋 4792
上一篇: 工作经验总结
下一篇: 如何成为软件高手
backard
博客等级 码龄23年 18粉丝 97原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值