一个收集C/C++新手学习的入门项目,整理收纳开发者开源的小项目、工具、框架、游戏等,视频,书籍,面试题/算法题,技术文章。
0
0
0

🐮 全网搜集C/C++入门练手项目实战,包含100+经典项目,大厂面经,学习视频,推荐书籍,面试题/算法题


project


本repo搜集全网适合C/C++新手学习的入门项目,整理收纳开发者开源的小项目、工具、框架、游戏等,帮助大家更好地学习c/c++。

所有数据来源于互联网。所谓取之于互联网,用之于互联网。

如果涉及版权侵犯,请邮件至 wchao_isvip@163.com ,我们将第一时间处理。

如果您对我们的项目表示赞同与支持,欢迎您 lssues 我们,或者邮件 wchao_isvip@163.com 我们,更加欢迎您 pull requests 加入我们。

感谢您的支持!

目录

🏗 项目实战(排名不分先后)

100个一学就会的项目,含源码

No. project name introduce
1 MyTinySTL 基于 C++11 的 tinySTL,这是我的第一个项目,使用了中文文档与中文注释,有不规范或不当的地方还请海涵。刚开始是作为新手练习用途,直到现在已经发布了 2.x.x 版本。实现了大部分 STL 中的容器与函数.
2 calculator Windows计算器应用程序是一个用c++和c#编写的现代Windows应用程序,预装在Windows中。该应用程序提供标准、科学和编程计算器功能,以及各种计量单位和货币之间的一套转换器。
3 FreeNOS FreeNOS (Free Niek's Operating System)是一个实验性的基于微内核的操作系统,用于学习,用c++编写。您可以根据GPLv3的条款随意使用该代码。
4 musikcube 一个跨平台的,基于终端的音频引擎,库,播放器和服务器写在c++中。
5 tmux Tmux是一种终端多路复用器:它允许在一个屏幕上创建、访问和控制多个终端。Tmux可以从屏幕上分离,在后台继续运行,然后重新连接。
6 netdata Netdata的分布式实时监控代理从零配置的系统、硬件、容器和应用程序中收集数以千计的指标。它永久地运行在您所有的物理/虚拟服务器、容器、云部署和边缘/物联网设备上,并且在事故发生时安装在您的系统上是非常安全的,无需任何准备。
7 How-to-Make-a-Computer-Operating-System 如何用c++制作计算机操作系统
8 TinyWebServer Linux下C++轻量级Web服务器
9 Serial-Studio 多用途串行数据可视化处理程序
10 winmerge WinMerge 是适用于 Windows 的开源差异和合并工具。 WinMerge 可以比较文件夹和文件,以易于理解和处理的视觉文本格式呈现差异。
11 WizQTClient 该项目基于Qt,旨在提供一个基于云使用的优秀PKM(个人知识管理)桌面环境。
12 kingpin 基于IO多路复用和线程池的高性能c++网络库
13 TinyIM 一个简单的IM客户端和服务器,只有命令行界面
14 TeamTalk TeamTalk是一款蘑菇街开源的企业内部即时通讯软件,目前支持pc、安卓、IOS、Mac和web多个终端,这是各个版本的代码和部署脚本。
15 flamingo Flamingo IM 是一款高性能、轻量级的开源即时通讯软件,目前包括服务器端、pc 端、安卓端,微信版本和 IOS 版本目前正在开发中。
16 StopWatch 高精度计时器
17 smart_ptr 自己实现智能指针。个人觉得实现智能指针是绝好地练手方案,涉及到模板、对象的生命周期、三/五原则等等。
18 mystl My STL 实现了 C++11 标准库的部分容器以及算法,同时又对标准库进行扩充。
19 Screenshot 仿QQ截图,C++实现的截图软件Demo
20 ZLToolKit 一个基于C++11的轻量级网络框架,基于线程池技术可以实现大并发网络IO
21 md5 C语言实现的MD5算法源码
22 epoll 基于epoll机制的高并发聊天室,c语言实现,代码源于网络仅供学习
23 serialize 实现的一个简易的 C++ 序列化库
24 tinyserver C++实现的简单http服务器(进程池+epoll)
25 dpool C++11 实现的动态线程池
26 MysqlPool MySql数据库的连接池实现,多用户的数据库访问。能够很好的管理数据库的连接
27 FlexibleReflection 一个使用c++ 11的小型、灵活的运行时反射系统的示例项目
28 CPlusPlus-Playground 选举制度、注册系统、学生系统、OpenGL的项目
29 Unreal-Engine-Fundamentals 收集各种虚幻引擎c++基础的小项目
30 mobile-snmp-plusplus Mobile SNMP++是一个iOS项目,你可以把它包含在你自己的项目中,这样你就可以执行一些SNMP命令。
31 School-Management-System 学籍管理系统
32 qReader C++和qml小说阅读器项目
33 510850111/IM C语言实现双端即时通讯软件
34 XmlProject 公交线路查询系统客户端:这是一个项目,C/S架构,服务端为C++,客户端为Qt,XML为小型数据库,主要是为了进行一些XML的操作
35 c_contacts C语言小项目——通讯录
36 SmartCar 智能车寻迹小车:2014年暑假做的一个项目,智能车寻迹小车,项目代码两个人完成,我负责图像采集、处理、中线提取、弯道判断等几个部分,项目C语言实现。
37 ZYunfeii/QT QT(C++)开发小众日记app项目
38 management-system 通讯录管理系统
39 Algorithm-Exercise 难度中等的一个C++算法小项目
40 small_project 算法设计平台
41 Worker 职工工资信息管理系统
42 Liunx-Timely-communication-project 在Linux下用C/C++语言开发的即时通讯项目,用了libevent、多线程、mysql等技术
43 MyPoorWebServer 一款可运行的基于C++ 实现的HTTP服务器,基于《TCPIP网络编程》和《Linux高性能服务器编程》实现的服务器项目。
44 network-dash 模拟百度网盘实现的一个简单文件传输和下载的c/s模式的项目
45 parse-gcode 新手C++入门项目: 解析G代码/三维轨迹仿真/机器人仿真/代码行1W+/面向对象风格/涵盖所有C++基础知识
46 PrinterMonitorLib 这是监控打印机状态的C++ DLL项目,可以方便的查询到当前打印机正在打印的文件状态,可以用于监控文档是否打印成功,打印机是否缺纸,打印机是否异常等状态
47 NeVehicleLicensePlateRecognition 车牌识别C++项目
48 ZLToolKit 一个基于C++11的轻量级网络框架,基于线程池技术可以实现大并发网络IO
49 librf 基于C++ Coroutines编写的无栈协程库
50 Qt-studentmanager C++ Qt 基于数据库Mysql学生信息管理系统
51 timer C++ 定时器, 基于 C++11, libuv 实现
52 duck_db c/c++ build a simple b+tree RDMS(利用c/c++ 开发基于B+树的小型关系型数据库 )
53 eddyserver 基于C++14和ASIO实现高并发TCP网络框架
54 BooksManageSystem 基于C++实现简易图书管理系统
55 Miaoshuai/netlib 一个自己封装的基于reactor的c++网络库
56 iEternity/HttpClient 使用C++11风格,基于libcurl库封装的HTTP客户端。
57 gatsbyd/melon 基于协程和事件循环的c++网络库
58 niliushall/webServer 基于C++使用 epoll + threadpool 实现的 webServer,支持GET、POST
59 owenliang/task_schedule (C++)基于图数据结构与拓扑序列的任务调度demo
60 Easy-Reactor Easy-Reactor是一个Linux C++高性能TCP服务框架,基于Reactor模式,支持单线程、多线程Reactor,也支持UDP服务
61 CxxDBC 基于C++开发的异种数据库跨平台连接中间件.
62 starjiang/lce linux网络编程框架(C++)基于Reactor事件机制,支持线程池,异步非阻塞,高并发,高性能
63 CHATROOM_C 基于C语言聊天室,可进行文件传输
64 StudentManagementSystem Student Management System
65 logcc 基于log4cplus封装的简单易用的c++日志库。
66 ScreenRecoder 这是一个基于FFmpeg使用 C# 、C++ 开发的最简单的屏幕录制软件。
67 weijunji/TCP-CPP 基于C++实现的用户态TCP协议
68 mxway/ftp 基于c++实现ftp客户端,服务端程序
69 HighPerformanceConcurrentServer 基于C++11、部分C++14/17特性的一个高性能并发httpserver,包括日志、线程池、内存池、定时器、网络io、http、数据库连接等模块。模块间低耦合高内聚,可作为整体也可单独提供服务。对各模块提供单元测试,对httpserver整体提供性能测试。
70 Blocks233/Message C++基于UDP的聊天软件
71

经典游戏

No. project name introduce
1 tinytetris 重温同年俄罗斯方块
2 GoBangByCpp C++实现双人对战五子棋项目
3 mazecode 自动走迷宫:慕课网C++课程封装篇作业,自动走迷宫
4 C-LanguageProjectCombat 俄罗斯方块:用C语言实现Win32程序,完成俄罗斯方块游戏程序
5 C-LanguageProjectCombat 学生管理系统
6 AirPlaneGame cocos2dx做的微信<<飞机大战>>游戏.
7 Tank3000 坦克大战
8 Big_fight 球球大作战
9 Gobang 智能人机五子棋对战:一款AI五子棋项目,C++新手项目实践 — 智能人机五子棋对战。
10 sanguosha 此项目为三国杀游戏,模拟QQ注册,QQ登录,QQ加好友,QQ聊天,基于C#语言,SQL Server数据库开发, 游戏功能目前已经实现玩家VS人机,已支持英雄:刘备,曹操,孙权,支持穿着装备,武器,战马,杀死对方获得积分
11 SimpleNES 任天堂红白机模拟器:这是一个用c++编写的NES仿真器
12 Snake-cpp 用C++写的一个简易贪吃蛇
13 MagicTower 魔塔:当年很火的一个flash游戏,作者当时正在学习C++(VC++6.0),故移植了过去,纯学习练手
14 DiningSystem 点餐系统
15 Plants-vs.-Zombies-Online-Battle 植物大战僵尸多人对战,开发通过反向工程,内嵌钩子和动态链接库注入。两个在线玩家分别作为植物和僵尸进行防御和攻击。
16 PictureMatching Qt C++实现的王者荣耀风格的连连看程序(基于TD-framwork实现)
17 ST_PUZZLE_2.0 ST-PUZZLE
18 mines_sweeper 开源项目:扫雷(Qt开发)
19 2048.cpp 功能齐全的终端版游戏《2048》用c++编写
20 Ancient-Spider 蜘蛛纸牌游戏
21 Qt_FreeCell Qt_FreeCell(纸牌游戏空当接龙C++/Qt实现)Topics
22 CppFishingCode 纯C++ 捕鱼游戏
23 Rhythm 用Cocos2d-x开发跨平台游戏,高仿《节奏大师》游戏
24 mirror 传奇挂机类游戏
25 3d-racing-games-demo 使用 C++ 和 OpenGL 实现简单的 3D 赛车游戏
26 Contra 使用图形库easyx写的c++魂斗罗游戏
27 Maze 基于C++-EasyX编写的益智小游戏-迷宫
28 shushabgyuanyue/c N个小游戏项目(适合初学者)
29 game_2048 在实验楼学习的C语言项目,2048小游戏。
30 JumpByJump C++版微信跳一跳小游戏辅助程序
31 ChineseChesses 双人象棋小游戏 - C++ - Windows GDI
32 Word-Games C++实现带GUI背单词小游戏
33 NumberGuess 基于C++的猜数字小游戏
34 Puzzle C/C++拼图小游戏
35 loliRun 萝莉酷跑小游戏
36 Study-of-C- 学堂在线C++ of Linux 的小项目,使用随机数库编写的简单控制台游戏(猜数游戏)
37 jijinlong/colors 一款实用Lua+C++ 的消除类小游戏
38 Cgames c语言经典200多个有趣的程序和游戏
39 Shoot-The-Chicken-3D 基于c++控制台的3D第一人称射击(FPS)游戏,项目包含软件渲染器、游戏引擎层、游戏逻辑层
40 bounce-ball 弹弹乐-C语言控制台游戏
41 shining-yang/DDZ DDZ(斗地主)- Win32 C/C++编写的斗地主游戏程序
42 sudoku C++实现的跨平台数独游戏,命令行操作易上手,可以在开发间隙用来放松身心。数百行代码,初学者也可以轻松掌握。
43 2019-2020-tjse-sour-knight 2019-2020 同济软工大项目 c++游戏
44 LianZhu 海底连珠,基于Cocos2d-x-3.3游戏引擎,C++版本的一个五子连珠消除类游戏,可以学习基本的Cocos2d-x游戏开发,用到A*(A star)寻路算法,消除算法。
45 historyme/fmj_cpp 步步高伏魔记游戏 c++版本
46 SimpleNES 一个用 C++ 编写的 NES 模拟器,只是为了好玩。超级马里奥兄弟。反对派、冒险岛、忍者外传、营救小组、洛克人和洛克人 2、马里欧兄弟。、大金刚和小金刚、战城、报童、塞尔达传说、吃豆子、网球、励志单车
47 CPP-DrawGuess 一个C++编写的,使用C/S架构的、实时、可选房间、多人同房的你画我猜游戏
48 CoinFlap C++金币翻转游戏
49 richman c++写的大富翁游戏,适合入门初学者。
50 CubeMiniGame Cube Engine是一个用c++编写的小型图形引擎,由OpenGL和Vulkan提供支持,我开发它是为了提高我的CG知识和通用编程技能(通用算法,代码风格,设计模式)。
51 ArenaofValor 同济大学软件学院18级C++大项目——王者荣耀

🏇 大厂面经

🗂 经典资料推荐

📚 书籍推荐

📁 学习文档

📀 视频

从C/C++项目实战到Linux服务器开发 ~ 22课时

🍳 软件

编译器

C/C++编译器列表

  • Clang :由苹果公司开发的
  • GCC:GNU编译器集合
  • Intel C++ Compiler :由英特尔公司开发
  • LLVM :模块化和可重用编译器和工具链技术的集合
  • Microsoft Visual C++ :MSVC,由微软公司开发
  • Open WatCom :Watcom,C,C++和Fortran交叉编译器和工具
  • TCC :轻量级的C语言编译器

在线编译器

在线C/C++编译器列表

  • codepad :在线编译器/解释器,一个简单的协作工具
  • CodeTwist:一个简单的在线编译器/解释器,你可以粘贴的C,C++或者Java代码,在线执行并查看结果
  • coliru :在线编译器/shell, 支持各种C++编译器
  • Compiler Explorer:交互式编译器,可以进行汇编输出
  • CompileOnline:Linux上在线编译和执行C++程序
  • Ideone :一个在线编译器和调试工具,允许你在线编译源代码并执行,支持60多种编程语言。

调试器

C/C++调试器列表

集成开发环境(IDE)

C/C++集成开发环境列表

  • AppCode :构建与JetBrains’ IntelliJ IDEA 平台上的用于Objective-C,C,C++,Java和Java开发的集成开发环境
  • CLion:来自JetBrains的跨平台的C/C++的集成开发环境
  • Code::Blocks :免费C,C++和Fortran的集成开发环境
  • CodeLite :另一个跨平台的免费的C/C++集成开发环境
  • Dev-C++:可移植的C/C++/C++11集成开发环境
  • Eclipse CDT:基于Eclipse平台的功能齐全的C和C++集成开发环境
  • Geany :轻量级的快速,跨平台的集成开发环境。
  • IBM VisualAge :来自IBM的家庭计算机集成开发环境。
  • Irony-mode:由libclang驱动的用于Emacs的C/C++微模式
  • KDevelop:免费开源集成开发环境
  • Microsoft Visual Studio :来自微软的集成开发环境
  • NetBeans :主要用于Java开发的的集成开发环境,也支持其他语言,尤其是PHP,C/C++和HTML5。
  • Qt Creator:跨平台的C++,Javascript和QML集成开发环境,也是Qt SDK的一部分。
  • rtags:C/C++的客户端服务器索引,用于 跟基于clang的emacs的集成
  • Xcode :由苹果公司开发
  • YouCompleteMe:一个用于Vim的根据你敲的代码快速模糊搜索并进行代码补全的引擎。

构建系统

  • Bear :用于为clang工具生成编译数据库的工具
  • Biicode:基于文件的简单依赖管理器。
  • CMake :跨平台的免费开源软件用于管理软件使用独立编译的方法进行构建的过程。
  • CPM:基于CMake和Git的C++包管理器
  • FASTBuild:高性能,开源的构建系统,支持高度可扩展性的编译,缓冲和网络分布。
  • Ninja :专注于速度的小型构建系统
  • Scons :使用Python scipt 配置的软件构建工具
  • tundra :高性能的代码构建系统,甚至对于非常大型的软件项目,也能提供最好的增量构建次数。
  • tup:基于文件的构建系统,用于后台监控变化的文件。

静态代码分析

提高质量,减少瑕疵的代码分析工具列表

🌐 网站推荐

  • C++ Standard Library - 一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标准的一部分
  • Standard Template Library - 标准模板库
  • C POSIX library - POSIX系统的C标准库规范
  • ISO C++ Standards Committee - C++标准委员会
  • C++ FAQ − C++ 常见问题
  • Free Country − Free Country 提供了免费的 C++ 源代码和 C++ 库,这些源代码和库涵盖了压缩、存档、游戏编程、标准模板库和 GUI 编程等 C++ 编程领域。
  • C and C++ Users Group − C 和 C++ 的用户团体提供了免费的涵盖各种编程领域 C++ 项目的源代码,包括 AI、动画、编译器、数据库、调试、加密、游戏、图形、GUI、语言工具、系统编程等
  • LearnCpp - 免费学习c++编程
  • CodeCogs - CodeCogs是一项协作的开放源码库,C/C++的数值方面的组件
  • codeproject - codeproject提供的C/C++资源代码项目
  • thoughtco - 游戏有关的C++源代码
  • Free C/C++ Libraries - 免费C++源代码和其它有用的工具
  • The C++ Standard Library - 这是一个收集了数C/C++网站链接列表的网页
  • cplusplus - C++学习网站
  • C++ Source Codes - 这是一个全面的关于C++的345个源代码清单

🖌 刷一刷题

🏆 ACM

1、zoj 3235 Prototype(原型)
2、zoj 3770 Ranking System(先后次序排列方法)
3、zoj 2814 Surprising Strings(令人惊讶的字符串)
4、poj 2817 WordStack
5、poj 3910 GCD Determinant
6、poj 2452 Sticks Problem
7、poj 3071 Football
8、poj 1664 放苹果
9、poj 3752 字母旋转游戏
10、poj 4006 Genghis Khan the Conqueror
11、poj 1205 Water Treatment Plants
12、poj 3388 Japanese Puzzle
13、poj 2386 Lake Counting
14、zoj 1861 Gas Station Numbers
15、zoj 3590 -3+1
16、zoj 2837 Left Library Lift
17、zoj 1563 Pearls
18、poj 1523 SPF
19、poj 1308 Is It A Tree?
20、poj 2442 Sequence
21、poj 2417 Discrete Logging
22、poj 3484 Showstopper
23、zoj 3109 Decode Message
24、poj 3548 Restoring the digits
25、zoj 2561 Order-Preserving Codes
26、poj 2482 Stars in Your Window
27、zoj 1507 Crazy Search
28、poj 2447 RSA
29、poj 1628 Deduction
30、zoj 3019 Puzzle
31、poj 1977 Odd Loving Bakers
32、poj 1989 The Cow Lineup
33、poj 2672 Hotkeys
34、zoj 3393 Routing
35、zoj 3531 Alice Madness Return
36、zoj 1418 Lazy Math Instructor
37、poj 2918 Tudoku
38、zoj 2990 Decoding
39、poj 2323 PERMS
40、poj 1313 Booklet Printing
41、poj 3216 Repairing Company
42、poj 1953 World Cup Noise
43、zoj 2247 Magic Trick
44、zoj 3502 Contest
45、zoj 2011 Secret Code
46、zoj 1810 The Gourmet Club
47、zoj 1898 Discrete Logging
48、zoj 3836 Circulation pipe
49、poj 3495 Bitwise XOR of Arithmetic Progression
50、poj 3435 Sudoku Checker

🚩 剑指offer

1、A + B
2、01背包问题
3、完全背包问题
4、多重背包问题 I
5、多重背包问题 II
6、多重背包问题 III
7、混合背包问题
8、二维费用的背包问题
9、分组背包问题
10、有依赖的背包问题
11、背包问题求方案数
12、背包问题求具体方案
13、找出数组中重复的数字
14、不修改数组找出重复的数字
15、二维数组中的查找
16、替换空格
17、从尾到头打印链表
18、重建二叉树
19、二叉树的下一个节点
20、用两个栈实现队列
21、斐波那契数列
22、旋转数组的最小数字
23、矩阵中的路径
24、机器人的运动范围
25、剪绳子
26、二进制中1的个数
27、数值的整数次方
28、在O(1)时间删除链表结点
29、删除链表中重复的节点
30、正则表达式匹配
31、表示数值的字符串
32、调整数组顺序使奇数位于偶数前面
33、链表中倒数第k个节点
34、链表中环的入口结点
35、反转链表
36、合并两个排序的链表
37、树的子结构
38、二叉树的镜像
39、对称的二叉树
40、顺时针打印矩阵
41、包含min函数的栈
42、栈的压入、弹出序列
43、不分行从上往下打印二叉树
44、分行从上往下打印二叉树
45、之字形打印二叉树
46、二叉搜索树的后序遍历序列
47、二叉树中和为某一值的路径
48、复杂链表的复刻
49、二叉搜索树与双向链表
50、序列化二叉树

🎖️ leetcode

1、(0001)两数之和
2、(0002)两数相加
3、(0003)无重复字符的最长子串
4、(0004)寻找两个正序数组的中位数
5、(0005)最长回文子串
6、(0006)zigzag conversion(Z 字形变换)
7、(0007)reverse integer(整数反转)
8、(0008)atoi(字符串转换整数)
9、(0009)palindrome number(回文数)
10、(0010)regular expression matching(正则表达式匹配)
11、(0011)盛最多水的容器
12、(0012)roman numeral(整数转罗马数字)
13、(0013)roman to integer(罗马数字转整数)
14、(0014)longest common prefix(最长公共前缀)
15、(0015)三数之和
16、(0016)three sum closest(最接近的三数之和)
17、(0017)电话号码的字母组合
18、(0018)four sum
19、(0019)删除链表的倒数第 N 个节点
20、(0020)有效的括号
21、(0021)合并两个有序链表
22、(0022)括号生成
23、(0023)合并 K 个升序链表
24、(0024)两两交换链表中的节点
25、(0025)K 个一组翻转链表
26、(0026)删除排序数组中的重复项
27、(0027)remove element(移除元素)
28、(0028)implement strstr(实现 strStr())
29、(0029)两数相除
30、(0030)串联所有单词的子串
31、(0031)下一个排列
32、(0032)最长有效括号
33、(0033)搜索旋转排序数组
34、(0034)在排序数组中查找元素的第一个和最后一个位置
35、(0035)search insert position(搜索插入位置)
36、(0036)valid sudoku(有效的数独)
37、(0037)sudoku solver(解数独)
38、(0038)外观数列
39、(0039)组合总和
40、(0040)组合总和 II
41、(0041)first missing positive(缺失的第一个正数)
42、(0042)接雨水
43、(0043)multiply strings(字符串相乘)
44、(0044)wildcard matching(通配符匹配)
45、(0045)jump game ii(跳跃游戏 II)
46、(0046)全排列
47、(0047)全排列 II
48、(0048)旋转图像
49、(0049)字母异位词分组
50、(0050)Pow(x, n)

联系专栏

每天晚上8点【免费技术直播】:分享Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容。

关注微信公众号【后台服务架构师】👉【联系我们】(备注github直播链接),获取直播链接!

Contributors

wenchao1024
wangbojing