程式碼相似度比對工具 1.0

23 10 2008

最近在找有沒有能夠在批改程式作業的時候

想比較方便檢查哪些同學是抄襲的

不過網路上的程式通常都是付費的,

於是就自己寫了個程式

可以比對C,C++,Java的程式碼相似度,
變數名稱變動或者函數位置調整都可以偵測出來。
可用於學校作業批改時檢查抄襲問題。
用法:

請在Windows命令行底下
假設有 test1.cpp 與 test2.cpp 要比對

請執行
cmpsrc test1.cpp test2.cpp

程式會計算相似度並輸出結果

http://www.cis.nctu.edu.tw/~is93061/cmpsrc_v1.zip

當然如果你要一次比對好幾個檔案 目前沒有直接提供這個功能

不過你可以自己寫個batch檔來呼叫我這個程式





C++Builder 2009 試用心得

4 09 2008

C++ Builder 2009 

試用過後的心得: 

第一,安裝速度緩慢,在我的Q6600四核心機器上要安裝半個小時

第二,BCB啟動速度比前幾版快很多,第一次啟動大約10~15秒。

第三,CodeInsight反應有比較正常一點,不過仍然有時候會發生Internal Copmiler error

第四,編譯出來的執行檔大小增肥了!最小的簡單Hello World約600kb左右。

第五,支援Unicode了!不過在IDE裡面仍然有時候無法正常顯示Unicode文字。

 

New features:

 

  • ● Compiler support for C++0x Scoped Enumerations, Static Assertions with Type Traits, and Move Semantics 
    ● Boost library integration 
    ● New components and enhancements to existing components including support for Microsoft Office UI Ribbon controls 
    ● Resource Manager 
    ● Enhanced Build Configuration management system 
    ● Updated database drivers 
    ● New capabilities for DataSnap that provide a powerful, flexible, and COM-free solution for building multi-tier applications 
    ● Full Unicode-enablement of the IDE, Language, RTL, VCL, and Database access




以C++重寫Borland VCL Framework

4 09 2008

以C++重寫Borland VCL Framework一直是我的夢想

所以我開始這個計畫,就是實現一個與VCL很相似的Win32 GUI Framework

目前都還在起步階段

我設計的這個framework暫時稱作Compact GUI Library (CGL)

目前的framework程式碼 在此下載

支援GNU C++,MS VC++,Borland C++ Compiler

整個framework的變數命名都盡量與VCL相近

說明白一點,就是我要用純C++重寫Borland VCL。

不想再看到任何Object Pascal的影子!

到底CGL與VCL有多相近呢?

一個典型的CGL 程序的代碼範例如下:

#include "cgl.hpp"

class TForm1:public TForm{
    public:
        TButton *btn,*btn2;
        TForm1(char *_ClassName):TForm(_ClassName)
        {
            ;
        }
        void Init()
        {
            btn = new TButton;
            btn->AttachTo(this->Handle);
            btn->OnMouseClick = TMEM(TForm1,clickbutton);
            btn->Height = 10;
            btn2 = new TButton;
            btn2->AttachTo(this->Handle);
        }
        ~TForm1()
        {
            delete btn;
        }
        int clickbutton(void * Sender)
        {
            ShowMessage("Button Clicked!");
            Caption = "Google !";
            Canvas->MoveTo(0,0);
            Canvas->LineTo(350,350);
            Canvas->Brush->Style = bsSolid;
            Canvas->Rectangle(0,0,400,400);
            Canvas->Font->Size = 24;
            Canvas->Font->Name = "新細明體";
            Canvas->Font->Underline = true;
            Canvas->TextOut( 50,50 , "窗外有藍天,視野寬廣無限。" );
            TBitmap *bmp = new TBitmap(200,200);
            bmp->Canvas->Brush->Color = TColor(120,235,160);
            bmp->Canvas->FillRect(TRect(0,0,200,200));
            bmp->Canvas->Brush->Style = bsClear;
            bmp->Canvas->Font->Italic = true;
            bmp->Canvas->Font->Size = 16;
            bmp->Canvas->TextOut(0,0,"CodeGear C++Builder");
            ::BitBlt( Canvas->Handle() ,0,0,200,200,bmp->Canvas->Handle(),0,0,SRCCOPY);
            delete bmp;
            return 0;
        }
};

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                   LPSTR lpCmdLine, int nCmdShow)
{
    Application = new TAPPLICATION;
    Application->Init(hInstance,hPrevInstance);

    try{
        TForm1 *win;
        win = new TForm1("Form1");
        win->Create();
        win->Init();
        win->Width = 600;
        win->Height = 200;
    }catch( Exception &exception ){
        Application->ShowException(&exception);
    }
    catch (...)
    {
        try
        {
            throw Exception("");
        }
        catch (Exception &exception)
        {
            Application->ShowException(&exception);
        }
    }

    int ret = Application->Run();
    delete Application;
    return ret;
}




Using DevC++ with GCC,G++ 4.2.3 (Win32)

5 03 2008

Hello,

Here are some steps to upgrade your old mingw to latest gcc,g++ 4.2.3, and the detailed settings in DevC++ are provided.

I packed all the mingw with gcc,g++ 4.2.3  in the following url.

mingw.7z

How to use it on MS Windows?

First,  unpack the archive into you C:mingw directory.

Then, if  you want to let DevC++ to use the new gcc compiler, you can goto DevC++ Menu-> Tools -> Compiler Options.

dev1.jpg

dev2.jpg

dev3.jpg

dev4.jpg

Please click the “browse” button to make sure all the “.exe” file are located in the path c:mingwbin

dev5.jpg

Okay, everything is done! Enjoy the latest gcc compiler on MS-Windows!





最近寫的GUI Framework

10 01 2008

以前常常使用C++Builder ,主要是他的VCL 很簡單易用。

但是Borland的IDE 以及Compiler 實在有很多問題,也好幾年沒有什麼大改進。

所以我已經著手自己設計一套類似於VCL的GUI Framework.

而且是用純C++撰寫。

然後支援gcc,vc++,borland c++等編譯器編譯。

主要特色是語法與VCL很接近,這也是我設計這套framework的主要目的。

我認為SmartWin++,WTL,xWidgets等等實在都用到太多的template以及仍然沒有脫離MFC的包袱,

很多語法不太人性化。

VCL是我見過最清楚簡單的GUI Library,但缺點是他的底層是用pascal撰寫的,而且只有Borland自己的compiler才能編譯,語法也不是符合標準。

以下為使用我的library寫出來的Hello world!

支援g++ (mingw) 編譯器

#include “Gui_core.hpp”
using namespace std;
class TForm1:public TForm{
    public:
        TFORM_INIT(TForm1);       
        TForm1()
        {
            ;           
        }
};
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
    LPSTR lpCmdLine, int nCmdShow)
{   
    TForm1 win(“Form1”);
    win.hInstance = hInstance;
    win.hPrevInstance = hPrevInstance;
    win.Create();
    win.Caption = “HelloWorld!”;
    win.Width = 400;
    win.Height = 300;       
    return ApplicationMain();
}

  twl.jpg

編譯出來的檔案大小只有 51kb,與C++Builder用VCL編譯出來的Hello World (581kb)

差異很明顯。(在此都用static linking)

這個framework目前還在起步階段,還沒完成,我也沒有估計什麼時候會完成,畢竟一個人的能力有限,大概是有空的時候才會繼續完成他吧。





加油金順 主題曲 – 美好的一天

28 08 2006

韓文音譯成拼音的歌詞

演唱人: Marry M

 ★

woe-lob-ji an-na hon-ja it-su-do ga-seum-sok-ui jak-geun ggoom-chu-lum

so-joong-han nal-deul-man it-seul ggu ya

haeng-bok-kal ggu ya noo-goo-bo-da du se-sang-ui noon-mool-gga-ji-do

un-je-na nae-ga ji-gyu-gal te-ni-gga

noon-neul ddu-bwa chang-ga-e su-su

i soon-gan-neul dam-ma-bo-myun

a-chim haet-sal-chu-lum noon-boo-sin

ha-loo-ui gi-boon jo-eun o-neul-leul si-jak-kae

ga-ggeum-meun geu-lul ggu ya ma-eum-jo-cha ji-chil ddae-myun

took-took tul-lu-bol-lae keu-ge woot-seum-meu-lo

woe-lob-ji an-na hon-ja it-su-do ga-seum-sok-ui jak-geun ggoom-chu-lum

so-joong-han nal-deul-man it-seul ggu ya

haeng-bok-kal ggu ya noo-goo-bo-da du se-sang-ui noon-mool-gga-ji-do

un-je-na nae-ga ji-gyu-gal te-ni-gga

dol-la-bo-myun da-jung-han sa-lam-deul neul gyut-te-su woo-su-joo-go

moon-deuk da-ga-wa-su nae son-neul jab-beu-myun

mal-ub-si-do mo-deun gul i-hae-hae(ha!ha!)

ddae-lo-neun him-deul-lu-do nae-il-i-myun it-jeul te-ni jom-du ssik-ssik hal-lae seul-peum mo-leu-do-lok

woe-lob-ji an-na hon-ja it-su-do ga-seum-sok-ui jak-geun ggoom-chu-lum

so-joong-han nal-deul-man it-seul ggu ya

haeng-bok-kal ggu ya noo-goo-bo-da du se-sang-ui noon-mool-gga-ji-do

un-je-na nae-ga ji-gyu-gal te-ni-gga

so-joong-han nal-deul-man it-seul ggu ya

woe-lob-ji an-na hon-ja it-su-do ga-seum-sok-ui jak-geun ggoom-chu-lum

so-joong-han nal-deul-man it-seul ggu ya

haeng-bok-kal ggu ya noo-goo-bo-da du se-sang-ui noon-mool-gga-ji-do

un-je-na nae-ga ji-gyu-gal te-ni-gga





從Borland 出走的DevCo子公司將重推 Turbo IDE系列

16 08 2006

從二十年前的TurboPascal 1.0由Anders研發

到目前換成其他人研發的Delphi 2006

其Compiler編譯速度仍然是最快的。

TurboDelphi從Delphi 2006加上一些hotfix改良而來的

但是IDE我並不怎麼喜歡,因為啟動速度緩慢

前幾天讀完Borland傳奇後,發現Delphi for .NET 居然是從之前研發失敗的Delphi for JavaVM

發展出來的。

希望DevCo以後能投入更多精力,專心研發編譯器與開發集成環境。

GO Turbo Delphi !!!!!!!!

相關網站

TurboExplorer.com

Be sure to go and Digg this article.

ComputerWorld Australia:   Borland revives ‘Turbo’ for developer tools

Neil Rubenking in PC Magazine: New Borland Line Salutes Turbo Pascal Spirit

The Press Release:  Borland’s Developer Tools Group Announces Plans to Rev Up Classic Turbo(TM)

eWeek: Borland Brings Back Its Turbo Tools

Application Development Trends:  Borland’s Turbo Gambit

RegDeveloper: Borland enlists Turboman for Windows tools





Intel 展示四核心處理器

2 08 2006

Intel 新的四核心超強處理器 Kentsfield
http://www.overclocking-masters.com/forum/un-petit-Kentsfield-XE-pour-la-route-,t3153-p1.htm 

處理器已經發展到四核心的地步了!

我還在用單核心的K8 = =+





科技新鮮人 起薪知多少?

2 08 2006

http://career11.mac.nthu.edu.tw/job/freshman/1023698527-2692.htm





Hello world!

31 07 2006

第一篇文章

wordpress的blog很棒