Program Life - Other
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]

程序员每天该做的事

  

1、总结自己一天任务的完成情况 最好的方式是写工作日志,把自己今天完成了什么事情,遇见了什么问题都记录下来,日后翻看好处多多

  

2、考虑自己明天应该做的主要工作 把明天要做的事情列出来,并按照优先级排列,第二天应该把自己效率最高的时间分配给最重要的工作

  

3、考虑自己一天工作中失误的地方,并想出避免下一次再犯的方法 出错不要紧,最重要的是不要重复犯相同的错误,那是愚蠢

  

4、考虑自己一天工作完成的质量和效率能否还能提高 一天只提高1%,365天你的效率就能提高多少倍你知道吗? (1+0.01)^365 = 37 倍

  

5、看一个有用的新闻网站或读一张有用的报纸,了解业界动态 闭门造车是不行的,了解一下别人都在做什么,对自己能带来很多启示

  

6、记住一位同事的名字及其特点 你认识公司的所有同事吗?你了解他们吗?

  

7、清理自己的代码 今天完成的代码,把中间的调试信息,测试代码清理掉,按照编码风格整理好,注释都写好了吗?

  

8、清理自己的桌面 当日事当日毕,保持清洁干劲的桌面才能让你工作时不分心,程序员特别要把电脑的桌面清理干净

  

程序员每周该做的事

  

1、向你的老板汇报一次工作 让你的老板知道你在做什么,这很重要。可以口头、书面、邮件,看你老板的工作方式而定

  

2、进行一次自我总结(非正式) 这周之内自己表现得怎么样?该加分还是扣分?

  

3、制定下周计划 把下周要做的事情列出来,一样要分清楚优先级

  

4、整理自己的文件夹、书柜和电脑文件 把桌面以外的地方也要清理干净,电脑的文件夹,收到的邮件,把过时的垃圾全部清理掉

  

5、与一个非公司的朋友沟通 它山之石,可以攻玉

  

6、看一本杂志 找一本适合自己的专业杂志、

  

7、纠正自己或同事一个细节上的不正确做法 《细节决定成败》看过了吗?没看过强烈建议先看看

  

程序员每月该做的事

  

1、至少和一个同事一起吃饭或喝茶 不光了解自己工作伙伴的工作,还要了解他们的生活

  

2、自我考核一次 相对正式地考核自己一下,你对得起这个月的工资吗?

  

3、对你的同事考核一次 你的同事表现怎么样?哪些人值得学习,哪些人需要帮助?

  

3、制定下月的计划,确定下月的工作重点

  

4、总结自己工作质量改进状况 自己的质量提高了多少?

  

5、有针对性地对一项工作指标做深入地分析并得出改进的方案 可以是对自己的,也可以是对公司的,一定要深入地分析后拿出自己的观点来。要想在老板面前说得上话,做的成事,工作上功夫要做足。

  

6、与老板沟通一次 最好是面对面地沟通,好好表现一下自己,虚心听取老板的意见,更重要的是要了解老板当前关心的重点

  

程序员每年该做的事

  

1、年终总结 每个公司都会做的事情,但你真正认真地总结过自己吗?

  

2、兑现给自己、给家人的承诺 给老婆、儿子的新年礼物买了没有?给自己的呢?

  

3、下年度工作规划 好好想想自己明年的发展目标,争取升职/加薪、跳槽还是自己出来干?

  

4、掌握一项新技术 至少是一项,作为程序员一年要是一项新技术都学不到手,那就一定会被淘汰。 掌握可不是看本书就行的,要真正懂得应用,最好你能够写一篇教程发表到你的blog

  

5、推出一种新产品 可以是一个真正的产品,也可以只是一个类库,只要是你创造的东西就行,让别人使用它,也为世界作点贡献。当然如果真的很有价值,收点注册费也是应该的

  

6、与父母团聚一次 常回家看看,常回家看看

今天和我新浪微博的一位好友Misacat聊起了C语言,用C语言打印一个菱形,今天上午抽空写了写,好久没有写C语言,竟生疏了很多...
其实这些打印类的问题,都能用一个固定的方法来做,我把它叫做“公式法”,打印类的题目都可归结为在一个平面打印一个图形,这个图形由星号组号。再进一步说,无非就是两种情况,打印一个空格,或者打印一个星号。不同的打印空格和星号的规则不同,就打印成了不同的图形。说到这里就更好理解了,一个平面图形是由什么构成的?就是纵坐标和横坐标,将它们定义为两个变量,i和j.这样任何的打印问题都可以由两个for循环来做
for(int i=0;i<M;i++){//这个是扫描i即纵坐标,就构成了一条线
   for(int j=0;j<N;j++){//这个是在定了一个i的情况下,再扫描横坐标,
                         //这样就构成了一个面
       method(){}:
    }
}
那个method()方法其实在定义了一个i即横坐标之后,相应的纵坐标的规则,一般的打印都是有规则的,有了i,一定有个相应的规则来求出j。不会有人无聊到打印一个毫无规律的东东吧。即一定可以写出 j = getJMethod(i);这样的一个方法。
有了j=getJMethod(i);的方法就好办了,在内层循环里一个一个匹配吧,如果符合j=getJMethod(i)的,就打印一个星号,如果不符合,就打印一个空格。如下所示:
for(int i=0;i<M;i++){//这个是扫描i即综坐标,就构成了一条线
   for(int j=0;j<N;j++){//这个是在定了一个i的情况下,再扫描横坐标,
                         //这样就构成了一个面
       method(){
          if(j==getJMethod(i)) print("*");
          else print(" ";)
       }
    }
    print("\n");//打印完一整行后,别忘了打印一个换行符。    
}
下面我们就可以套用这个公式来完成这个题目了,完整C语言代码如下,相信聪明的你一定可以读懂的:)
#include <stdio.h>

int main()
{
  int i;
  int j;
  for(i=1;i<=7;i++)
  {
     if(i<=4){//前4行
         for(j=1;j<=7;j++){//打印每一行的星号或者空格
             int temp=i-1;
             /*
             *找规律,i=1时,即第一行,是第4个位置星号,其他地方空格
             *第二行,是4,5,6三个位置星号,其他地方空格
             *第三行,是2,3,4,5,6五个位置星号,其他地方空格
             *所以j应该满足,j>=(4-(i-1))并且j<=(4+(i-1))时是星号,其他空格
             */
             if(j>=4-temp&&j<=4+temp) printf("*");
             else printf(" ");
         }
         /**打印完以后有回车*/
         printf("\n");
     }
     else //后三行
     {
         for(j=1;j<=7;j++){
             int temp=7-i;
             /*
             找规律,i=5时,即第五行,是第3,4,5个位置星号,其他地方空格
             第二行,是4,5,6三个位置星号,其他地方空格
             第三行,是2,3,4,5,6五个位置星号,其他地方空格
             所以j应该满足,j>=(4-(i-1))并且j<=(4+(i-1))时是星号,其他空格
             */
             if(j>=4-temp&&j<=4+temp) printf("*");
             else printf(" ");
         }
         printf("\n");
     }            
  }
  system("PAUSE");    
  return 0;
}
打印完的界面如下:

这时一定有朋友说了,“这个太复杂了,打印菱形我有更好的办法,比这个简洁多了”,没错,你说的是对的。我只是抽象出了一种公共的方法,以后无论任何打印的问题,都是可以这么做的,可谓是个万能方法。
我之前写过一篇“用java打印一个圆”,用的就是这个方法。
好了,希望我这个公式法可以对你有所帮助:-)
我们来开发一个用家用摄像头捕捉图像的小程序。程序的主要代码如下,其中步骤说明将插入到代码当中。

步骤一:

在C++ builder中新建的Form上插入:2个button,一个panel,一个ComboBox和一个SaveDialg

步骤二:编写代码

//----------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include "vfw.h"         //双击Form后,在代码区先加入vfw头文件。      
//----------------------------------------------------------------------------
#pragma resource "*.dfm"
#pragma package(smart_init)
TForm1 *Form1;      //加入自定义变量。
HWND hWndC;
CAPDRIVERCAPS CapDrvCaps;
CAPSTATUS CapStatus;
//----------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent *Owner)
: TForm(Owner)
{
}
//----------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Table1->Open();
}
//----------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)    // 加入启动camere的程序。
{
  char szDeviceName[80];
  char szDeviceVersion[80];
  for (int wIndex=0;wIndex<10;wIndex++)
  {
    if (capGetDriverDescription(wIndex,szDeviceName,sizeof(szDeviceName),szDeviceVersion,sizeof(szDeviceVersion)))
        {
            Camera->Items->Add(szDeviceName);
        }
    }
    if(Camera->Items->Count>0)
        Camera->ItemIndex=0;
    else
    {
        ShowMessage("There is no camera!");
        Close();
    }

//检查视频是否处于实时捕获状态
  if(CapStatus.fLiveWindow==1)
  //CapStatus.fLiveWindow=1表明当前初频已处于实时捕获状态,否则CapStatus.fLiveWindow=0
  {
    ShowMessage("You needn't do it again!");
    return;
  }
  hWndC=capCreateCaptureWindow((LPSTR)"My Capture Window",WS_CHILD | WS_VISIBLE,0,0,160,120,(HWND)Panel2->Handle,Camera->ItemIndex+1);
  //连接设备:
  capDriverConnect(hWndC,0);
  capPreviewRate(hWndC,50); // rate, in milliseconds
  capPreview(hWndC,TRUE); // starts preview
  //获取视频驱动相关性能
  capDriverGetCaps(hWndC,&CapDrvCaps,sizeof(CAPDRIVERCAPS));
  //获取捕获窗口状态
  capGetStatus(hWndC,&CapStatus,sizeof(CAPSTATUS));
  SetWindowPos(hWndC,NULL,0,0,CapStatus.uiImageWidth,CapStatus.uiImageHeight,SWP_NOZORDER | SWP_NOMOVE);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
   if(hWndC)
  {
    capPreview(hWndC,FALSE);
    capDriverDisconnect(hWndC);
  }

}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)    //加入图像保存程序。
{
if(SavePictureDialog1->Execute())
capFileSaveDIB(hWndC,(SavePictureDialog1->FileName+".bmp").c_str());
}
//---------------------------------------------------------------------------


步骤三:

运行并测试。
在内网论坛看到有人发帖说需要一个照片自动归档的软件,就是把图片可以按照图片的日期放到相应的文件夹中,感觉用AutoIt这种软件应该挺好实现的,就写了一个,代码如下

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Opt('MustDeclareVars', 1)

AutoPhoto()

Func AutoPhoto()
    Local $font,$msg,$Button_1,$radio1,$radio2,$radio3,$radio4,$isOldPhoto,$isCreatDate
  $isOldPhoto=True;
  $isCreatDate=True;
    GUICreate("图片自动归档程序V1.1--Made By 蓝色天空",500,200) ; will create a dialog box that when displayed is centered
    GUISetState(@SW_SHOW) ; will display an empty dialog box
  GUICtrlCreateLabel("这是一个图片自动归档程序,请把该软件放到图片的同一目录下。", -1, 10) ; next line
  GUICtrlCreateLabel("选择是否保留原图片和归档日期的方式后,点击按钮后图片即可自动归档", -1, 30) ; next line
  $radio1 = GUICtrlCreateRadio("保留原图片", 10, 60, 100, 20)
    $radio2 = GUICtrlCreateRadio("不保留原图片", 150, 60, 100, 20)
  GUIStartGroup()
    GUICtrlSetState($radio1, $GUI_CHECKED)
  $radio3 = GUICtrlCreateRadio("按创建日期归档", 10, 80, 100, 20)
    $radio4 = GUICtrlCreateRadio("按修改日期归档", 150, 80, 100, 20)
  GUIStartGroup()
  GUICtrlSetState($radio3, $GUI_CHECKED)
  $Button_1 = GUICtrlCreateButton("开始自动归档", 10, 120, 100)
    ; Run the GUI until the dialog is closed  
    While 1
        $msg = GUIGetMsg()
    Select
            Case $msg = $GUI_EVENT_CLOSE
                ExitLoop
      Case $msg = $radio1 And BitAND(GUICtrlRead($radio1), $GUI_CHECKED) = $GUI_CHECKED
                $isOldPhoto=True;
            Case $msg = $radio2 And BitAND(GUICtrlRead($radio2), $GUI_CHECKED) = $GUI_CHECKED
                $isOldPhoto=False;
      Case $msg = $radio3 And BitAND(GUICtrlRead($radio3), $GUI_CHECKED) = $GUI_CHECKED
                $isCreatDate=True;
            Case $msg = $radio4 And BitAND(GUICtrlRead($radio4), $GUI_CHECKED) = $GUI_CHECKED
                $isCreatDate=False;        
            Case $msg = $Button_1
                doAutoPhoto($isOldPhoto,$isCreatDate); Will Run/Open Notepad
        EndSelect
    WEnd
    GUIDelete()
EndFunc   ;==>Example1


Func doAutoPhoto($isOldPhoto,$isCreatDate)
  Local $search,$file,$t,$yyyymd
  ; 显示当前目录中所有文件的文件名
$search = FileFindFirstFile("*.jpg")

; 检查搜索是否成功
If $search = -1 Then
  MsgBox(0, "错误", "该目录下已经没有jpg图片文件")
  Exit
EndIf

While 1
  $file = FileFindNextFile($search)
  If $isCreatDate=True Then
  $t = FileGetTime($file, 1)
  EndIf
  If $isCreatDate=False Then
  $t = FileGetTime($file, 0)
  EndIf
  If Not @error Then
    $yyyymd = $t[0] & "年" & $t[1] & "月" & $t[2] & "日"
    ;MsgBox(0, $file+"的创建日期:", $yyyymd)
    If $isOldPhoto=True Then
    FileCopy($file, @ScriptDir & "\" & $yyyymd & "\", 8)
    EndIf
    If $isOldPhoto=False Then
    FileMove($file, @ScriptDir & "\" & $yyyymd & "\", 8)
    EndIf
    ;MsgBox(4096, "文件:", @ScriptDir & "\" & $yyyymd & "\")
  EndIf
  If @error Then ExitLoop
  ;MsgBox(4096, "文件:", $file)
WEnd
FileClose($search)
MsgBox(64, "海蓝", "恭喜,所有图片归档完毕")
EndFunc

使用时将这个软件和你需要整理的图片放到同一个目录下,然后点击那个“开始自动归档”按钮,选择是否保留原图片,以及是按创建日期归档,还是按修改日期归档。然后点击下面的按钮就好了
点击在新窗口中浏览此图片
原先目录下有4张图片
点击在新窗口中浏览此图片
当运行程序后,会变为如下的样子,会按照日期进行归档
点击在新窗口中浏览此图片

下载地址:

CPL文件 不指定

海蓝 , 2008/08/04 22:39 , Program Life - Other , 评论(0) , 阅读(884) , Via 本站原创
转载自:http://hi.baidu.com/tylzyoudi/blog/item/b75030014e3610031c958369.html控制面板,你了解多少。当你安装了一些应用程序后,是否感觉到你的控制面板增加了一些组件,如安装了Borland C++ Builder后,“BDE Administrator”就会进入你的控制面板,安装了QuickTime还会增加“QuickTime”组件,这些现象说明了什么,我想它只是说明了一个事实:“控制面板”是可以操纵的,你也可以控制你的控制面板,它并无什么神秘可言,哪到底如何操纵呢,这正是我今天要讨论的主题,在这里我将会带领大家有浅入深地来探讨“控制面板”这个鲜为人知的主题。我主要分3个部分来阐述:(由于文章大小的限制,我决定将其分成两章来介绍)
Tags: ,
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]