15个C++项目列表_蓝桥云课的博客-程序员秘密_c项目

技术标签: c++  编程语言  

实验楼上有很多C++的实战项目,从简单到进阶,学习每个项目都可以掌握相应的知识点。

  • 如果你还是C++新手的话,那么这个C++的项目列表你可以拿去练手实战开发,毕竟学编程动手实践是少不了的!
  • 如果你不知道C++可以用来做哪些项目,可以应用在哪些地方,那么,这个项目列表拿去吧,可以看看C++可以做什么!

* C++项目列表:*

1、C++ 实现太阳系行星系统

项目使用 C++实现 OpenGL GLUT 实现一个简单的太阳系行星系统,将涉及一些三维图形技术的数学基础、OpenGL 里的三维坐标系、OpenGL 里的光照模型、GLUT 的键盘事件处理。

效果图

2、C++实现运动目标的追踪

这个项目是在前面一个项目的后续项目,利用 OpenCV 来实现对视频中动态物体的追踪。

3、C++ 实现银行排队服务模拟

项目使用 C++对银行排队服务进行模拟,以事件驱动为核心思想,手动实现模板链式队列、随机数产生器等内容,进而学习概率编程等知识。作为可选进阶,这个模型同时还能稍加修改的应用到 CPU 资源争夺模型中。

4、1小时入门增强现实技术

项目利用C++,基于OpenCV实现一个将3D模型显示在现实中的小例子,学习基于Marker的AR技术。

效果图

一个踩着魔鬼的步伐的漆黑的食人魔

5、100 行 C++ 代码实现线程池

项目使用 C++ 及大量 C++11新特性设计并实现一个线程池库。

6、C++实现第一人称射击游戏

项目使用C++和 OpenGL 实现一个第一人称射击类游戏,涉及键盘鼠标的处理、三维视角变换处理、素材加载渲染等。

7、C++三段代码机器绘图

用三段 140 字符以内的代码生成一张 1024×1024 的图片。

效果图

8、C++ 开发 Web 服务框架

服务器开发中 Web 服务是一个基本的代码单元,将服务端的请求和响应部分的逻辑抽象出来形成框架,能够做到最高级别的框架级代码复用。项目将综合使用 C++11 及 Boost 中的 Asio 实现 HTTP 和 HTTPS 的服务器框架。

9、C++ 打造 Markdown 解析器

Markdown 几乎成为了程序员编写文档的标配,Markdown 的相关语法简单,解析 Markdown 文本能够加深日后编写编译器中词法分析的理解,本项目将使用 C++ 实现 Markdown 解析器,并将解析的内容生成为 HTML。

效果图

10、C++ 实现高性能内存池

获得内存池所分配的内存速度高于从堆中获得分配的内存的速度,一个长期稳定运行的服务在追求极致的过程中,实现内存池是必不可少的。和标准库中的默认分配器一样,内存池本质上也是分配器,该项目将设计并使用 C++实现一个高性能内存池。

11、C++ 实现简易 Docker 容器

Docker 的本质是使用 LXC 实现类似虚拟机的功能,进而节省的硬件资源提供给用户更多的计算资源。本项目将 C++ 与 Linux 的 Namespace 及 Control Group 技术相结合,实现一个简易 Docker 容器。

12、C++ 实现内存泄露检查器

内存泄漏一直是 C++ 中比较令人头大的问题, 即便是很有经验的 C++程序员有时候也难免因为疏忽而写出导致内存泄漏的代码。除了基本的申请过的内存未释放外,还存在诸如异常分支导致的内存泄漏等等。本项目将使用 C++ 实现一个内存泄漏检查器。

效果图

13、C++ 使用 Crypto++ 库实现常用的加密算法

该项目利用 Cryto++库 对字符串进行 AES 加密和解密,RSA 加密和解密,生成 MD5 值。其中主要用到了 Crypto++ 库,这是开源的C++数据加密算法库,支持如下算法:RSA、MD5、DES、AES、SHA-256等等。

14、C++ 实现高性能 RTTI 库

RTTI 是运行时类型信息的英文缩写,C++ 本身提供了运行时类型检查的运算符 dynamic_cast 和 typeid,然而 dynamic_cast 的效率其实并不理想,需要牺牲一定性能。本项目将手动实现一个高性能 RTTI 库。

效果图

15、c++操作 redis 实现异步订阅和发布

该项目操作 redis 实现异步订阅和发布,其中将介绍 redis 基础知识,在linux中安装和使用 redis ,常用的 hiredis API,并实现一个例程。

以上都是可以用C++来实现的,所以,还在等什么?快去动手开发吧!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/shiyanlou_chenshi/article/details/53411402

智能推荐

DAG代码优化_dag优化含有已知量__小旺仔的博客-程序员秘密

本文章转载于https://blog.csdn.net/roger_ranger/article/details/78830679,感谢博主的文章!!!DAG构建的流程如下对基本块的每一四元式,依次执行:  1. 如果NODE(B)无定义,则构造一标记为B的叶结点并定义NODE(B)为这个结点;  如果当前四元式是0型,则记NODE(B)的值为n,转4。  如果当前四元式是1型...

可以搜python题答案的app-有哪些可以搜Python题答案的APP_weixin_37988176的博客-程序员秘密

有哪些可以搜Python题答案的APP发布时间:2020-07-27 10:00:44来源:亿速云阅读:148今天就跟大家聊聊有关有哪些可以搜Python题答案的APP,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。可以搜Python题答案的APP有:网课帮答题 、学小易 、助课宝、搜题宝 、微软数学 、Photomath、题多多 、作业...

关于recycleview 添加删除数据_bergkamp27的博客-程序员秘密

先是集合删除具体的哪一条数据list.removeAt(position)调用adapter的删除动画,这句代码实际就是起一个动画效果,同理添加方法notifyItemRemoved(position)将集合数据重新和界面呈现的重新绑定,不加这句就会造成实际的集合数据和界面的数据不一致导致报错notifyItemChanged(position)这里还有个问题就是overrid...

服务器中PWN题的简单搭建_服务器部署pwn_mylyylmy的博客-程序员秘密

首先,创建一个虚拟环境使用passwd root将root密码修改其中SSH端口号8136是远程SSH登陆时用的端口号 WEB端口号为服务器端映射到docker8080端口的端口号即所以我们要先上传题目到我们的docker中这时使用XShell或者scp命令都可以,这里演示XShell使用Xftp上传文件到服务器端创建或者上传flag文件新增低权限账户(选),新建pwn文件夹,更改运行程序(pwn...

队列,栈,堆栈,数组,链表特点与区别_描述数组、链表、队列、堆栈的区别?_q4828222的博客-程序员秘密

1. 队列可以看成是有2个口的集合一个口叫队头一个叫队尾,只能在对头进行删除操作,在队尾做插入。根据这样的操作。队列特点是先进先出 2.堆栈可以看成是有1个口的集合,这个口叫栈顶。插入和删除操作只能在栈顶操作。根据这样的操作。堆栈的特点是是后进先出. 3.链表是一种存储方式,它可以在非连续的内存空间里面存储一个集合的元素。 4.和它对应的是数组,数组要在连续的空间里存储集合的元素

(转)99%的人都理解错了HTTP中GET与POST的区别_loaDforK的博客-程序员秘密

GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么。当你在面试中被问到这个问题,你的内心充满了自信和喜悦。你轻轻松松的给出了一个“标准答案...

随便推点

CMakeLists.txt学习记录及学习资料_darkalliance的博客-程序员秘密

个人学习编写CMakeLists.txt时所用到的学习资料,以及相关笔记

Hadoop 3.x 入门 - 记录躺过的坑_大鱼炖海棠的博客-程序员秘密

一、 伪分布式节点启动报错./start-dfs.sh Starting namenodes on [10.1.4.57]ERROR: Attempting to operate on hdfs namenode as rootERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.Starting...

setsockopt_fht511的博客-程序员秘密

转自:http://dev.firnow.com/course/6_system/linux/Linuxjs/2008723/133811.html #include int setsockopt( int socket, int level, int option_name, const void *option_value, size_t option_len); 第一个参数socket是套接字描述符。第二个参数level是被设置的选项的级别,如果想要在套接字级别上设置选项,就必须把level设置为 S

分布式服务架构-第一章 分布式微服务架构设计原理_微服务分布式原理_zhendeWD的博客-程序员秘密

第一章 分布式微服务架构设计原理传统企业级技术无法满足互联网产品服务于海量用户的需求;互联网技术以拆分为原则来满足服务于海量用户的需求满足用户对高可用性,高性能,可伸缩,可扩展和安全性的非功能质量的要求1.从传统单体架构到服务化架构1.1 JEE架构Java平台企业版简称JEE架构:web容器 —综合业务逻辑 --> EJB容器 — 数据存取ORM --> 数据库Web层:负责与用户交互或者对外提供接口业务逻辑层:为了实现业务逻辑而设计的流程处理和计算处理模块数据存取

高斯信号和非高斯信号中偏斜度和峭度的问题_随机噪音 偏斜度变大吗_鬼魅叔叔的博客-程序员秘密

转自:http://blog.163.com/xi_beijing2008/blog/static/139615561201012344329261/感谢:xi_beijing2008一楼:最近看到这个问题,我就查了一些相关的资料。后来发现即使在百度和google的搜索引擎里也没有发现特别令人满意的定义和令人信服的区分方法。最后就将搜索范围转到了中国期刊网,还真找到了一篇大

推荐文章

热门文章

相关标签