這些C++的練手項目,相當於你2年的工作經驗,拿走不謝

多年以後,你已經是一名技術總監,有一個美麗的妻子,兩個孩子;你已經擁有了現在的你想都不敢想的一切;那時,你也一定會忘記,今天這篇教程,如同一顆石子,鋪就過你前進的路。

在這裏插入圖片描述

下面是我們的老師根據現有資源整理的一個C++學習路徑。通過使用 C++ 語言實現 Web 服務器,Markdown 解析器,內存池以及 Docker 容器管理工具等,學習並實踐 C++ 編程基礎,C++ 11/14 標準,C++ 圖像處理及增強現實技術。完成本路徑所有教程,將能夠使用 C++ 獨立實現複雜的應用程序。

“Repetition is the mother of all learning 重複是學習之母”

基礎知識

Linux 基礎入門(新版)

Vim編輯器

Git 實戰教程

GDB 簡明教程

跟我一起來玩轉Makefile

本教程的正確食用姿勢:區別於目前所有主流教程,該系列教程的核心就是動手跟着文檔說明,在在線的Linux系統中一步一步地敲出基礎知識,各種有趣項目;走出只看書、看視頻卻不動手的禁區,你會比別人學的更快的,放心。

入門項目

  1. C++ 實現太陽系行星系統

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

  1. C++實現運動目標的追蹤

利用 OpenCV 來實現對視頻中動態物體的追蹤。進行本教程學習時,您需要先完成 C++實現太陽系行星運行系統的相關實驗,才能進行之後的學習。

在這裏插入圖片描述

牛耳教育全國10大IT品牌,打造互聯網人才技術搖籃。加羣948+95+4484可領C語言、C++免費學習資料。

  1. C++ 實現銀行排隊服務模擬

使用 C++對銀行排隊服務進行模擬,以事件驅動爲核心思想,手動實現模板鏈式隊列、隨機數產生器等內容,進而學習概率編程等知識。

  1. 1小時入門增強現實技術

基於OpenCV實現一個將3D模型顯示在現實中的小例子,學習基於Marker的AR技術,既簡單又有趣。

在這裏插入圖片描述

  1. C++ 基於 OpenCV 實現實時監控和運動檢測記錄

使用 C++ 和 OpenCV 提供的庫函數,實現攝像頭的實時監控功能,並通過監控畫面的運動檢測選擇是否記錄視頻。監控人員可選擇輸出圖像的模式以更容易的分辨監控中的異常情況。

  1. 使用OpenCV&&C++進行模板匹配

使用OpenCV&&C++進行模板匹配,在一張大圖中去查找並圈出目標小圖。你將學習到關於OpenCV的一些函數用法和模板匹配的完整流程。

在這裏插入圖片描述

  1. 使用OpenCV進行圖片平滑處理打造模糊效果

利用OpenCV中的平滑處理和線性濾波器對圖片進行處理,打造模糊效果。將介紹歸一化濾波器,高斯濾波器,中值濾波器,雙邊濾波器這四種濾波器的相關知識,並且會對“核”和卷積進行相應的講解。

8.C++ 實現即時通信軟件

使用C++實現一個具備服務端和客戶端的即時通信聊天室,涉及網絡編程,C++面向對象程序設計等知識。

在這裏插入圖片描述

  1. C++實現課程管理系統

使用 C++ 實現一個課程管理系統,在這個過程中會介紹C++11的很多特性,同時可以熟悉Linux下的C++語言編譯方法及簡單的Makefile編寫。

////中場休息,笑一笑吧
在這裏插入圖片描述

進階項目

  1. C++11/14 高速上手教程

如果你還在使用傳統 C++,打着 C++ 的名號寫出 C 語言代碼,請停下來。本教程將帶領你快速上手 C++11/14 的重要特性。

2.ffmpeg 結合 SDL 編寫播放器

學習 C++ 利用 ffmpeg 解碼視頻數據,將解碼後的視頻數據播放出來。學習 ffmpeg 和 SDL 基本的用法。

在這裏插入圖片描述

  1. 100 行 C++ 代碼實現線程池

使用 C++ 及大量 C++11新特性設計並實現一個線程池庫。

  1. C++ 實現高性能內存池

獲得內存池所分配的內存速度高於從堆中獲得分配的內存的速度,一個長期穩定運行的服務在追求極致的過程中,實現內存池是必不可少的。和標準庫中的默認分配器一樣,內存池本質上也是分配器

在這裏插入圖片描述

  1. C++ 開發 Web 服務框架

綜合使用 C++11 及 Boost 中的 Asio 實現 HTTP 和 HTTPS 的服務器框架。

  1. C++ 打造 Markdown 解析器

使用 C++ 實現 Markdown 解析器,並將解析的內容生成爲 HTML。

在這裏插入圖片描述

  1. C++ 使用 Crypto++ 庫實現常用的加密算法

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

  1. C++ 編寫 json 生成器

介紹 json 和一些常見的 json 庫,並用 C++ 編寫一個 json 生成器,生成 json 數據,並學習編寫測試用例。

在這裏插入圖片描述

  1. C++ 實現基數樹 radix tree

Radix樹 , 這是一種基於二進制表示的鍵值的查找樹,尤其適合處理非常長的、可變長度的鍵值,Patricia 的基本思想是構建一個二叉樹。

  1. C++ 實現智能指針

使用C++語言實現智能指針的過程,來了解C++基本程序設計的方法,包括類的定義與使用,運算符的重載,模板類的使用方法,以及引用計數技術。

加粗樣式**

高級項目

  1. C++操作 redis 實現異步訂閱和發佈

操作 redis 實現異步訂閱和發佈,其中將介紹 redis 基礎知識,在linux中安裝和使用 redis ,常用的 hiredis API,並實現一個例程。

  1. C++ 實現簡易 Docker 容器

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

在這裏插入圖片描述

  1. C++ 實現內存泄露檢查器

內存泄漏一直是 C++ 中比較令人頭大的問題, 即便是很有經驗的 C++程序員有時候也難免因爲疏忽而寫出導致內存泄漏的代碼。除了基本的申請過的內存未釋放外,還存在諸如異常分支導致的內存泄漏等等。本項目將使用 C++ 實現一個內存泄漏檢查器。

  1. C++ 實現高性能 RTTI 庫

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

在這裏插入圖片描述

有句話是這樣說的:一件事,1000人想去做,100人開始做了,最終,只有1個人堅持到了最後。話雖沒有絕對,但想想看,今天確實是你生命中最年輕的一天啦,所以,想要做的事,勇敢撿起來做吧!祝你學習順利。

發佈了70 篇原創文章 · 獲贊 446 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章