程式碼相似度比對工具 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





2006 初春 韓國行(5)

28 08 2006

在韓國的全家便利商店

韓國的麥當勞

韓國鈔票1000元(還是100?) 背面的圖案就是在這裡拍的





2006 初春 韓國行(4)

28 08 2006

 

韓國的樂天世界

韓國首爾街上的電子商店,圖中可以看到PS2的英文字。

除了英文以外,其他韓國字都看不懂…

在正中央的是,我們的導遊,韓國人,會講中文。





2006 初春 韓國行(3)

28 08 2006

韓國的雪嶽山,外面氣溫是-5度。沒下雪,但是地上有積一點雪。

走在路上很容易滑倒。

之前在漁港外面拍的,海水真的是結冰的~





2006 初春 韓國行(2)

28 08 2006

然後就是到這家百貨公司

當時已經很晚了 而且氣溫是零下十五度

沒穿後的外套根本受不了 但是韓國人還有人穿短袖的衣服

百貨公司最後一樓是咖啡廳

第三天到韓國的一個漁港

有韓國國旗…

白天氣溫比較高 大概零度左右

而且海水大部分都是結冰的 可以直接站在上面。