有哪些适合新手练手的C/C++项目
发布时间:2023-06-26 21:32:22
C/C++ 作为元老级的编程语言,任时光更迭依旧屹立不倒,哪怕如今炙手可热的AI,其底层也是用其编写。那么作为新手该如何快速上手 C++ 呢?当然是敲代码啊!一切不写代码的学编程都是瞎搞。下面为大家精选了 22 个 C++ 项目,推荐新人练手首选!
1.C++ 实现基数树
使用 C++ 实现Radix树:一种基于二进制表示的键值的查找树,尤其适合处理非常长的、可变长度的键值,Patricia 的基本思想是构建一个二叉树。
2.C++ 实现并行计算的K-Means聚类算法
使用 C++ 实现一个完整的面向对象的可并行K-Means算法。
3.C++ 实现 STL 标准库和算法
实现 C++ STL 的容器和算法的实现。
4.C++ 实现内存泄露检查器
内存泄漏一直是 C++ 中比较令人头大的问题, 即便是很有经验的 C++ 程序员有时候也难免因为疏忽而写出导致内存泄漏的代码。本项目使用 C++ 实现一个内存泄漏检查器。
5.C++ 实现高性能内存池
获得内存池所分配的内存速度高于从堆中获得分配的内存的速度,一个长期稳定运行的服务在追求极致的过程中,实现内存池是必不可少的。和标准库中的默认分配器一样,内存池本质上也是分配器,本项目设计并使用 C++实现一个高性能内存池。
6.C++ 实现高性能 RTTI 库
RTTI 是运行时类型识别的英文缩写,C++ 本身提供了运行时类型检查的运算符 dynamic_cast 和 typeid,然而 dynamic_cast 的效率其实并不理想,需要牺牲一定性能。本项目将使用 C++ 手动实现一个高性能 RTTI 库。
7.C++ 实现智能指针
使用C++语言实现智能指针的过程,来了解C++基本程序设计的方法,包括类的定义与使用,运算符的重载,模板类的使用方法,以及引用计数技术。
8.C++ 实现即时通信软件
使用 C++ 实现一个具备服务端和客户端的即时通信聊天室,涉及网络编程,C++面向对象程序设计等知识。
9.C++实现课程管理系统
使用C++ 实现一个课程管理系统,在这个过程中会介绍 C++ 11 的很多特性,同时可以熟悉 Linux下 的 C++ 。
10.C++ 实现银行排队服务模拟
使用 C++对银行排队服务进行模拟,以事件驱动为核心思想,手动实现模板链式队列、随机数产生器等内容,进而学习概率编程等知识。作为可选进阶,这个模型同时还能稍加修改的应用到 CPU 资源争夺模型中。
11.C++操作 redis 实现异步订阅和发布
操作 redis 实现异步订阅和发布,其中将介绍 redis 基础知识,在linux中安装和使用 redis ,常用的 hiredis API,并实现一个例程。
12.C++ 使用 openGL 实现吃豆人游戏
通过 C++ 和 openGL 库来实现了一个吃豆人的小游戏。使用了标准模板库,既对自己之前知识的检阅也是对 C++ 编程能力的一种提升。
13.C++ 解决迷宫问题
通过 C++ 实现了一个迷宫游戏,游戏不仅涉及到简单的 C++ 游戏思想,还涉及到深度优先遍历算法。
14.C++ 基于 OpenCV 实现实时监控和运动检测记录
使用 C++ 和 OpenCV 提供的库函数,实现摄像头的实时监控功能,并通过监控画面的运动检测选择是否记录视频。监控人员可选择输出图像的模式以更容易的分辨监控中的异常情况。
15.C++ 实现简易 Docker 容器
C++ 与 Linux 的 Namespace 及 Control Group 技术相结合,实现一个简易 Docker 容器。
16.C++ 开发 Web 服务框架
将综合使用 C++11 及 Boost 中的 Asio 实现 HTTP 和 HTTps 的服务器框架。
17.C++ 编写 json 生成器
用 C++ 编写一个 json 生成器,生成 json 数据,并学习编写测试用例。
18.C++ 利用 QT 实现 PDF 阅读器
利用 QT 开发环境来实现一个 PDF 阅读器。主要内容包含了 QT 的基本用法以及图形界面的设计,还有第三方库 poppler 的使用。
19.C++17 自制脚本语言
使用 C++ 语言自制一个脚本语言。麻雀虽小五脏俱全,它完整支持函数,条件/位/逻辑运算,原生字符串/数组类型等特性。主要将从理论出发,逐步构建词法分析器,语法分析器,AST,运行时,最终实现一个完整的脚本语言,并且使用该脚本语言解决一些实际问题。
20.C++ 实现太阳系行星系统
使用 C++实现 OpenGL GLUT 实现一个简单的太阳系行星系统,将涉及一些三维图形技术的数学基础、OpenGL 里的三维坐标系、OpenGL 里的光照模型、GLUT 的键盘事件处理。
21.C++11 从零实现 NoSQL 数据库
使用 C++11 实现了一个完全兼容 redis 的 kv 数据库项目——Qedis;该项目会使用到一些 C++11 核心特性和 STL 库,并利用已有的 tcp 网络库,逐步构建出一个完全兼容 Redis 的更高性能的内存数据库。
22.C++ 实现 XML 解析
通过 C++ 实现 XML 文档内容解析,充分利用了 C++ 功能特性和泛型编程思想。通过本课程可以规范自己的编程习惯并积累大型项目开发经验。


猜你喜欢
- 很多小伙伴在使用电脑的时候经常会使用到鼠标右键来新建一些东西,而最近一部分小伙伴在使用过程中发现里面的选项特别多,而且很多是没有用的选项,导
- AIrPods Max 在 3 月 9 日更新固件 “3C39”之后,推特博主 Guilherme Rambo 对其进行了测试,
- 我们日常使用笔记本的时候免不了会打开摄像头,但有很多用户发现win10摄像头打开一直出现斜杠的问题,win10摄像头打开一直出现斜杠怎么解决
- 我们平时接收了对方的word文档的时候经常会看到里面的很多的文字都带有圆圈,有的小伙伴就不是很喜欢这样的格式,想把这些圆圈删除掉,那要怎样才
- 在某些情况下我们需要查看系统版本号并修改win10系统信息,小编觉得可以使用注册表编辑器,修改注册表的方式进行实现。具体内容一起来看下吧~希
- Win10删除文件提示找不到该项目无法删除怎么办?有用户电脑桌面上一个文件夹无需使用,想要去将它进行删除,但是在删除的时候却出现了错误提示,
- WPS项目符号怎么使用?有时候我们为了使某些文字能达到一定突出显示效果,我们会使用到项目符号,项目符号既可以选择内置的,也可以设置自定义的,
- ppt怎么制作线条效果的艺术字体?ppt中想要制作一个线条字体,该怎么制作创意的线条字体呢?下面我们就来看看PPT制作线条文字的加错,需要的
- 给文章的段落添加一个很好的边框,使整个段落看起来大方有条理。波浪边框,这种边框添加后效果感是非常不错的,看起来就像是我们平时生活中写的明信片
- 本文图文讲述在PowerPoint中绘制纸飞机的教程。1、在“插入”选项卡的“插入”组中选择“形状”,然后在“基本形状”中选择“等腰三角形”
- 欢迎观看 Pixelmator Pro 教程,小编带大家学习 Pixelmator Pro 的基本工具和使用技巧,了解如何在 Pixelma
- Win10系统怎么导入导出注册表?注册表对电脑来说是非常重要的文件,如果损坏就有可能无法正常开机,学会导入导出注册表就可以做到备份注册表,下
- 越狱插件的一大作用便是美化系统 UI,尤其是对那些不满意 iOS 控制中心设计的朋友来说,插件 Cleo 的出现可谓是来得非常及时。Cleo
- 默认情况下,Excel工作表中负数前都显示负号“-”,而正数前不显示正号“+”。如果我们不仅需要在Excel表中的负数前显示负号,还需要在正
- Excel表格中怎么彻底隐藏数据?1、首先输入数据,例如想隐藏D那排的数据2、选中,然后右击选择【设置单元格格式】3、在【数字】-【自定义】
- 有很多用户在使用浏览器的时候都喜欢开启无痕模式,而无痕模式不会保存你访问过的网站记录以及输入过的任何文字内容,那么360浏览器要如何去开启这
- 喜马拉雅是很多小伙伴都在使用的一款软件,可以在其中收听各种各样的有声内容,比如各种相声,小说,,音乐,历史人文书籍,新闻热点,广播电台等等,
- 如果Powerpoint幻灯片中列出一组带小数点的数字,并且想让它们以小数点为准进行对齐,可按下面的方法快速完成。我们以Powerpoint
- 学生是学习的主体,学习过程会与事先制作好的课件顺序出现不一样的地方。因此,在一些公开课上会出现教师事先布置好学生回答问题的现象,在WPS演示
- 鼠标灵敏度的参数会直接影响着我们的使用体验,最近有很多新安装Win11,不知道Win11系统的灵敏度怎么调,其实我们只需要进入设备设置选项,