NOTICE

 任何跟文章無關的閒聊,請愛用 留言板(Guestbook)

 想要快速瀏覽主題,請點選單 目錄 標籤。

 停止更新ing,請見諒。 <(_ _)>


顯示具有 C++ 標籤的文章。 顯示所有文章
顯示具有 C++ 標籤的文章。 顯示所有文章

9月 19, 2010

【介紹】Code::Blocks

@
  為了能撰寫 C/C++ 的程式,你可能需要在自己的電腦中建置一套 IDE(Integrated Development Environment,整合開發環境),卻又不想用需要付費、又只能在 Windows 上執行的 Visual Studio(雖然 VS 也有提供免費的 Express Edition)。

  或許會有人推薦你使用 Dev-C++ 這套 open source 的免費軟體。不過根據我自己使用過的經驗,Dev-C++ 時常在執行到一半的時候當掉。而且其最新版本 4.9.9.2 是在 2005 年 2 月發佈的,顯然已經好幾年都沒有在繼續更新。

  在這裡,我要為各位介紹另一款同樣免費又穩定的 IDE - Code::Blocks


  Code::Blocks 是一個 open source 的 IDE。由於其是由 wxWidgets 寫成,因此也具備了跨多種平台(Windows、Mac OS X、Linux 等)的能力。

  Code::Blocks 也支援多種編譯器(compiler),如常見的 GCC / MinGW、Microsoft 的 Visual C++、Intel 的 ICC 等。除此之外,Code::Blocks 還支援匯入 Dev-C++ 與 Visual C++ 專案的能力,可謂功能相當豐富。


  在這裡簡單示範一下如何在 Windows (XP Pro SP3)下安裝 Code::Blocks。

  首先,先進到下載頁,找到 Windows 用的 binary 版本。當前的最新版本為 10.05,提供了 "codeblocks-10.05-setup.exe""codeblocks-10.05mingw-setup.exe" 兩個安裝檔,分別為單純的 Code::Blocks 與包含 MinGW 的版本。

  在這裡,我選擇的是不包含 MinGW 的版本。


  下載完成、執行安裝檔後,會出現選擇安裝元件的畫面。基本上,遵照預設值,直接按 "Next" 即可。


  接著選擇安裝的目錄。


  接著就可以等待安裝完成了。



  在 Code::Blocks 安裝完成之後,我們還需要安裝 MinGW 作為其使用的編譯環境。(假如在第一步下載的就是包含 MinGW,這一步可以跳過。當然,你也可以選擇 MinGW 以外的編譯環境,如 ICC。)

  MinGW 的安裝方式請參見這篇


  第一次開啟 Code::Blocks 時,它會請你選擇一個預設的編譯器。後面有寫 "Detected" 的,代表 Code::Blocks 在你電腦偵測到的已安裝的編譯器。

  這裡我們選擇 "GNU GCC Compiler"


  安裝到這邊,就可以開始使用 Code::Block 了!



  想利用 Code::Block 新增一個 C/C++ 的檔案,請點選選單的 File > New > File...


  接著選擇 "C/C++ source"


  然後選擇 "C""C++"


  並設定檔案建立的路徑。


  撰寫完程式,再按下工具列的 "Run" 就可以編譯執行了。


Reference:

4月 01, 2009

【作品】多人聊天室 - Boy Meets Girl

@
  程式設計實習(二)的作業。雖然題目的要求只有雙方輪流一人一句的同步(synchronous)對話、離開聊天室的指令跟聊天紀錄檔(Log File)。不過,後來我又加上了藉由多執行緒(multithread)功能以實現的多人聊天功能。附上程式碼,歡迎各位隨時指正錯誤。


程式說明

  要使用此聊天室,必須要先開啟 exe/Server 目錄下的 Server.exe 檔。

  在預設情況下,Server 使用的 Port 為 6250。若是要改變聊天室 Server 端所開的 Port,需要透過命令列參數的方式,直接以第一個參數傳入埠號。例如:以 1500 的 Port 開啟聊天室:

Server 1500


  開啟 Server 端之後,就可以供他人(或是你自己)利用 exe/Client 目錄下的 Client.exe 檔來連線。

  在預設情況下,Client 會連線到 127.0.0.1 (本機 IP)的 6250 Port。所以同樣的,我們可以透過命令列參數來指定連線的 IP 與 Port:

Client 127.0.0.1 1500


  連線成功之後,就可以開始對話了。其中,Server 只負責收訊息,以及發送訊息給所有連線的 Client,所以並不能參予聊天。

  要離開聊天室,則直接在訊息中輸入 "/Bye"。送出之後,則無法再發送訊息,但仍可以收到 Server 與其他 Client 發送來的訊息。再按下任意鍵,就可以關閉聊天視窗了。


程式下載

  


更新紀錄:
‧09/04/01 正式公開貼出。


其他

  其實這個還沒做完XD

2月 06, 2009

【介紹】GCC / MinGW

@
  說到 C/C++ 的開發環境,就不能不提到 GCC。GCC 是 GNU Compiler Collection (GNU 編譯器總集)的縮寫,為 GNU 計畫中一套多種程式語言編譯器的集合。在諸多 Unix-likeMac OS X 中都成為其內建的程式開發環境。

  其實,GCC 最初的名稱為 GNU C Compiler(GNU C 語言編譯器)。在當時,GCC 還只是一個專門處理 C 語言的編譯器。而在後來 GCC 擴展之後,慢慢的也可以處理 C++、FortranAdaJavaObjective-C 等語言。發展至今,就是現在我們所看到編譯器總集了。


  雖然在 Unix-like 與 Mac OS X 系統中都已經內建了 GCC 的環境,但是若要在 Windows 系統下擁有相同的環境,你可能就需要安裝 MinGW 了。

  MinGW 即 Minimalist GNU for Windows,為包含了 GCC、GDB(GNU Debugger)binutils 等工具的 GNU 工具組(toolchain)移植到 Windows 平臺上的版本。其包含了許多提供 Windows API 的標頭檔以及函式庫,使程式開發者能直接使用它來開發原生的(native) Windows 程式。


  想要在 Windows 平臺上安裝 MinGW,我們需要先連結到 MinGW 的下載頁



  點選 MinGW 5.1.4(請選擇你當前的最新版本)。



  點選 MinGW-5.1.4.exe,就能夠下載了。



  下載完成以後,就能開始安裝的動作。

  首先,安裝程式會詢問你,是否要在檔案下載好後要直接安裝檔案。

  這裡我們先解釋選擇 "Download and install",也就是下載完成之後直接安裝檔案。



  接著會詢問要安裝哪一種封包。你可以選擇舊版(Previous)、當前版(Current)、或是先行版(Candidate)。

  這裡我們建議選擇穩定的 "Current" 版本。



  然後我們需要選擇要安裝的部份。

  其中,runtime (即 runtime library)是 MinGW 運行的基礎;而 w32api 則為 Windows API 的標頭檔與函式庫。

  另外,make 則是透過 makefile 來組織程式原始檔,以進行編譯原始碼工作的工具。

  而剩下的 core compiler、g++ compiler、g77 compiler、Ada Compiler、Java Compiler 與 Objective C Compiler,則分別為 C、C++、Fortran、Ada、Java 與 Objective C 的編譯器。

  為了要建置完整的 C/C++ 環境,這裡我們需要勾選 runtimew32apicore compilerg++ compilermake

  當然,假如需要的話,你也可以自行勾選下載其它編譯器。



  接著選擇 MinGW 的安裝目錄。









  接著等待它下載、安裝之後就完成了。




  而若是我們選擇 "Download Only",也就是只下載不安裝呢?



  這裡同樣會詢問你要安裝哪一種封包。

  當然囉,我們還是選擇穩定的 "Current" 版本。



  接著選擇要安裝的部份。

  同樣為了建置完整的 C/C++ 環境,這裡我們需要勾選 MinGW base toolsg++ compilerMinGW Make







  等待下載完成之後,你應該能夠在 MinGW 安裝檔的相同目錄下,看到由安裝程式下載下來的壓縮檔。

  你只需要將它們解壓縮,並放置到你想要的地方就可以了。


  最後,我們還要做一點環境設定。

  首先,請在「我的電腦」按下右鍵,選擇「內容」。



  接著選擇「進階」標籤頁,按下「環境變數」。



  若是你 MinGW 的環境是要給所有使用者使用的,你需要把 MinGW 目錄下 bin 資料夾的完整路徑加到系統變數 PATH 的尾端。例如:C:\MinGW\bin

  若是 PATH 變數中已有變數值,則請先在尾端加入分隔符號 ";",再加入 bin 資料夾的目錄。



  而若是你的 MinGW 環境只想給當前的使用者使用,你則要改成把 MinGW 目錄下 bin 資料夾的完整路徑加到使用者變數 PATH 的尾端。

  同樣的,若是 PATH 變數中已有變數值,則請先在尾端加入分隔符號 ";",再加入 bin 資料夾的目錄。


  接著,讓我們測試一下 MinGW/GCC 是否已經配置妥當了。

  若是在 Unix-like 的系統,請開啟你的 shell;若是在 Windows 系統下,請按「開始功能表」並點選「執行」,輸入 "cmd" 以開啟命令提示工具。

  接下來,你只需要輸入:

gcc -v

  或是:

g++ -v

  假如有出現 GCC 的版本資訊,就是成功囉!


相關連結:
.GCC - http://gcc.gnu.org/
.MinGW - http://www.mingw.org/

3月 25, 2008

【作品】猜數字 - Guess

@
  這個是我一直很喜歡玩的一個遊戲。兩個人、三個人、或是更多人(目前最多人的紀錄是國中,全班30人一起玩)各寫下四個數字任憑對方猜。

  直到高中,聽學弟那屆的資優班說,他們玩的是 6 個數字的猜數字花了兩節課都沒玩出來。

  於是在上課時間(沒錯),我也找了隔壁的同學來玩看看(認真的同學不要學喔)。發現這種玩法真的比較難贏,隨便猜都可以有個 A、有個 B 的,唯一的問題就是不知道哪個是 A,哪個是 B。

  不過,其實我們兩節課可以玩兩局(重申,認真的同學不要學)。而且其實某方贏的時候,另一方也快猜出來了。事實證明,學弟你們太遜拉(逃)。

  咳,偏題了。總之因為如此,我寫出了這個遊戲。


程式說明



  這個遊戲相信很多人都玩過吧!沒玩過不懂規則也沒關係,其實規則相當簡單。

  遊戲開始時,電腦會自動產生一組四個數字組成的"答案"。玩家每次輸入四個數字,而以輸出幾 A 幾 B 來判斷猜對了多少個。

  例如,1A 2B 即為四個數字中猜中三個數字,其中兩個數字位置錯誤。怎麼樣,夠簡單吧。


程式下載

  


其他

  其實這款遊戲有個不小的缺點,就是如果不按格式輸入會造成結果錯誤。

  例如原本"1 2 3 4"(有空格)輸入為"1234"(無空格)則不會輸出結果。因為程式的設定,就是以一個空白前的字為單位計算。

  另外,玩家要是一次輸入超過四個數字,則會因為緩衝區的關係當做多次輸入。例如,"1 2 3 4 5 6 7 8"(視為輸入兩次)。

  該怎麼說呢,其實我有點懶的修正。或許,以後吧(極端不負責任)。