1. 程式人生 > >實驗樓--動手做實驗,輕鬆學IT!

實驗樓--動手做實驗,輕鬆學IT!

實驗樓上有很多C++的實戰專案,從簡單到進階,學習每個專案都可以掌握相應的知識點。

  • 如果你還是C++新手的話,那麼這個C++的專案列表你可以拿去練手實戰開發,畢竟學程式設計動手實踐是少不了的!
  • 如果你不知道C++可以用來做哪些專案,可以應用在哪些地方,那麼,這個專案列表拿去吧,可以看看C++可以做什麼!

* C++專案列表:*

專案使用 C++實現 OpenGL GLUT 實現一個簡單的太陽系行星系統,將涉及一些三維圖形技術的數學基礎、OpenGL 裡的三維座標系、OpenGL 裡的光照模型、GLUT 的鍵盤事件處理。

效果圖

這個專案是在前面一個專案的後續專案,利用 OpenCV 來實現對視訊中動態物體的追蹤。

專案使用 C++對銀行排隊服務進行模擬,以事件驅動為核心思想,手動實現模板鏈式佇列、隨機數產生器等內容,進而學習概率程式設計等知識。作為可選進階,這個模型同時還能稍加修改的應用到 CPU 資源爭奪模型中。

專案利用C++,基於OpenCV實現一個將3D模型顯示在現實中的小例子,學習基於Marker的AR技術。

效果圖

一個踩著魔鬼的步伐的漆黑的食人魔

專案使用 C++ 及大量 C++11新特性設計並實現一個執行緒池庫。

專案使用C++和 OpenGL 實現一個第一人稱射擊類遊戲,涉及鍵盤滑鼠的處理、三維視角變換處理、素材載入渲染等。

用三段 140 字元以內的程式碼生成一張 1024×1024 的圖片。

效果圖

伺服器開發中 Web 服務是一個基本的程式碼單元,將服務端的請求和響應部分的邏輯抽象出來形成框架,能夠做到最高級別的框架級程式碼複用。專案將綜合使用 C++11 及 Boost 中的 Asio 實現 HTTP 和 HTTPS 的伺服器框架。

Markdown 幾乎成為了程式設計師編寫文件的標配,Markdown 的相關語法簡單,解析 Markdown 文字能夠加深日後編寫編譯器中詞法分析的理解,本專案將使用 C++ 實現 Markdown 解析器,並將解析的內容生成為 HTML。

效果圖

獲得記憶體池所分配的記憶體速度高於從堆中獲得分配的記憶體的速度,一個長期穩定執行的服務在追求極致的過程中,實現記憶體池是必不可少的。和標準庫中的預設分配器一樣,記憶體池本質上也是分配器,該專案將設計並使用 C++實現一個高效能記憶體池。

Docker 的本質是使用 LXC 實現類似虛擬機器的功能,進而節省的硬體資源提供給使用者更多的計算資源。本專案將 C++ 與 Linux 的 Namespace 及 Control Group 技術相結合,實現一個簡易 Docker 容器。

記憶體洩漏一直是 C++ 中比較令人頭大的問題, 即便是很有經驗的 C++程式設計師有時候也難免因為疏忽而寫出導致記憶體洩漏的程式碼。除了基本的申請過的記憶體未釋放外,還存在諸如異常分支導致的記憶體洩漏等等。本專案將使用 C++ 實現一個記憶體洩漏檢查器。

效果圖

該專案利用 Cryto++庫 對字串進行 AES 加密和解密,RSA 加密和解密,生成 MD5 值。其中主要用到了 Crypto++ 庫,這是開源的C++資料加密演算法庫,支援如下演算法:RSA、MD5、DES、AES、SHA-256等等。

RTTI 是執行時型別資訊的英文縮寫,C++ 本身提供了執行時型別檢查的運算子 dynamic_cast 和 typeid,然而 dynamic_cast 的效率其實並不理想,需要犧牲一定效能。本專案將手動實現一個高效能 RTTI 庫。

效果圖

該專案操作 redis 實現非同步訂閱和釋出,其中將介紹 redis 基礎知識,在linux中安裝和使用 redis ,常用的 hiredis API,並實現一個例程。

以上都是可以用C++來實現的,所以,還在等什麼?快去動手開發吧!