- 博客(52)
- 收藏
- 关注
原创 C++开发游戏——坦克大战(2)
文章目录位置信息类玩家坦克更新画布敌人坦克主函数位置信息类在游戏设计过程中,需要记录大量的位置信息,如果仅仅使用(x,y)坐标很容易出错。这一篇中,我们先定义两个简单的类用来保存点和矩形的信息创建下面四个文件:Point.h#ifndef __POINT_H__#define __POINT_H__class Point{public: Point(int x = 0, i...
2020-03-24 21:45:35
1014
3
原创 C++开发游戏——坦克大战(1)
文章目录创建绘图界面坦克抽象类玩家坦克主函数工具:vs2013,EasyX代码来自于简书上的一位博主,理解上面的代码,并且写上一些注释,在自己电脑上跑一遍代码来源创建绘图界面在这个工程中,用EasyX画布相关的功能创建两个文件:Graphic.h和Graphic.cppGraphic.h#ifndef __GRAPHIC_H__#define __GRAPHIC_H__#in...
2020-03-22 22:07:40
843
原创 c++实现leetcode836. 矩形重叠——每日打卡
矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标。如果相交的面积为正,则称两矩形重叠。需要明确的是,只在角或边接触的两个矩形不构成重叠。给出两个矩形,判断它们是否重叠并返回结果。方法一:检查位置class Solution {public: bool isRectangleOverlap(vect...
2020-03-18 14:22:24
366
原创 c++实现leetcode169. 多数元素——每日打卡
文章目录暴力法排序法哈希表随机数给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 [n/2]的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。暴力法class Solution {public: int majorityElement(vector<int>& nums) { int n = nu...
2020-03-13 20:48:05
241
原创 c++实现leetcode1013. 将数组分成和相等的三个部分——每日打卡
给你一个整数数组 A,只有可以将其划分为三个和相等的非空部分时才返回 true,否则返回 false。形式上,如果可以找出索引 i+1 < j 且满足 (A[0] + A[1] + … + A[i] == A[i+1] + A[i+2] + … + A[j-1] == A[j] + A[j-1] + … + A[A.length - 1]) 就可以将数组三等分。直接法首先计算数组...
2020-03-11 22:03:45
572
原创 c++实现leetcode121买卖股票的最佳时机——多种解法
文章目录暴力法暴力法优化滑动窗口法动态规划法给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。暴力法class Solution {public: int maxProfit(vector<int>& prices) ...
2020-03-09 21:47:12
272
原创 c++实现面试题57 - II. 和为s的连续正数序列
文章目录1,暴力法滑动窗口输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。1,暴力法枚举每个正整数为起点,判断以它为起点的序列和 sum 是否等于target 即可,由于题目要求序列长度至少大于 2 ,所以枚举的上界为 (target-1)/2class Solution {p...
2020-03-06 20:33:41
249
原创 C++实现leetcode 994. 腐烂的橘子
在给定的网格中,每个单元格可以有以下三个值之一:值 0 代表空单元格;值 1 代表新鲜橘子;值 2 代表腐烂的橘子。每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂。返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1。先找出腐烂的橘子,添加进 queue 中。队列 queue 只让腐烂的橘子入队;出队时,让当前腐烂橘子四...
2020-03-04 17:17:28
516
原创 c++实现小案例员工分组
文章目录案例-员工分组案例描述实现步骤代码黑马程序员C++教程从0到1入门–STL案例-评委打分案例-员工分组案例描述公司今天招聘了10个员工(ABCDEFGHIJ),10名员工进入公司之后,需要指派员工在那个部门工作员工信息有: 姓名 工资组成;部门分为:策划、美术、研发随机给10名员工分配部门和工资通过multimap进行信息的插入 key(部门编号) value(员工)...
2020-03-03 21:29:19
681
原创 c++实现小案例评委打分
文章目录1 案例描述2 实现步骤3 代码1 案例描述有5名选手:选手ABCDE,10个评委分别对每一名选手打分,去除最高分,去除评委中最低分,取平均分。2 实现步骤创建五名选手,放到vector中遍历vector容器,取出来每一个选手,执行for循环,可以把10个评分打分存到deque容器中sort算法对deque容器中分数排序,去除最高和最低分deque容器遍历一遍,累加总分获...
2020-03-02 20:25:13
1434
原创 STL常用容器-string容器
文章目录1 string容器1.1 string基本概念1.2 string构造函数1.3 string赋值操作1.4 string字符串拼接1.5 string查找和替换1.6 string字符串比较1.7 string字符存取1.8 string插入和删除1.9 string子串1 string容器1.1 string基本概念本质:string是C++风格的字符串,而string本质...
2020-03-01 14:57:06
636
原创 c++设计全国地区新冠感染人数统计系统(3)
文章目录9,文件交互-读文件9.1文件为创建9.2文件存在且数据为空9.3文件存在且保存数据9.3.1获取记录数据的个数9.3.2初始化数组10,显示数据11,删除数据11,修改数据13,查找数据14,清空文件PS:承接上篇,完成其他功能9,文件交互-读文件功能描述:将文件中的内容读取到程序中构造函数初始化数据的情况分为三种:1,第一次使用,文件未创建2,文件存在,但没有数据3,文件...
2020-02-28 14:26:19
1873
2
原创 c++设计全国地区新冠感染人数统计系统(2)
文章目录1, 统计系统需求2,创建项目3,创建统计类3.1 创建文件3.2头文件实现3.3 源文件实现4,菜单功能4.1添加成员函数4.2 菜单功能实现5,退出功能5.1提供功能接口5.2 实现退出功能6,创建省份类6.1创建省份抽象类6.2创建湖北省类6.3 创建广东省类和浙江省类7 添加统计信息8 文件交互-写文件8.1 设定文件路径8.2 成员函数声明8.3 保存文件功能实现8.4 保存文件...
2020-02-21 12:58:34
3847
1
原创 c++友元的三种实现
文章目录全局函数做友元类做友元成员函数做友元在程序里,有些私有属性 也想让类外特殊的一些函数或者类进行访问,就需要用到友元的技术友元的目的就是让一个函数或者类 访问另一个类中私有成员友元的关键字为 friend友元的三种实现全局函数做友元friend void goodGay(Building &building);类做友元friend class GoodGa...
2020-02-14 22:22:31
481
原创 c++文件操作——读文件与写文件
程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放通过文件可以将数据持久化C++中对文件操作需要包含头文件 < fstream >文件类型分为两种:文本文件 - 文件以文本的ASCII码形式存储在计算机中二进制文件 - 文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们操作文件的三大类:ofstream:写操作ifstream:...
2020-02-14 15:28:21
2525
原创 c++编程联系——点和圆的关系
主要知识点:类的创建;类中调用另一个类;以及工程中头文件的编写;点类的头文件#pragma once#include <iostream>using namespace std;class Point{public: //设置x void setX(int x); //获取x int getX(); //设置y void setY(int y); //获取...
2020-02-14 15:22:22
743
原创 c++设计全国地区新冠感染人数统计系统
ps:承接上一篇通讯录管理系统的设计,模仿代码设计全国地区新冠感染人数统计系统该系统主要包含的功能有:1、添加统计数据 2、显示统计数据 3、查找特定数据 4、修改统计数据 5、清空统计数据查找功能分为三种方式:1、按地区查找;2、按日期查找;3、按地区+日期查找1、程序主界面2、添加统计数据添加地区,时间,新增确诊人数,累计确诊人数,累计治愈人数,累计死亡人数。3、显示统计...
2020-02-07 10:13:06
5633
2
原创 程序的内存模型
文章目录程序的内存模型代码区全局区栈区堆区程序的内存模型C++程序在执行时,将内存大方向划分为4个区域代码区:存放函数体的二进制代码,由操作系统进行管理的全局区:存放全局变量和静态变量以及常量栈区:由编译器自动分配释放, 存放函数的参数值,局部变量等堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收程序运行前分为代码区和全局区程序运行后分为栈区和堆区代码区存...
2020-02-07 09:44:45
240
原创 c++设计通讯录管理系统
最核心的内容是结构体,结构体数组与指针//封装函数显示该界面,如 void showMenu()//在mian函数中调用封装好的函数#include <iostream>#include <string>#define MAX 1000using namespace std;//设计联系人结构体struct Person{ //姓名 string ...
2020-02-03 21:41:27
2990
1
原创 并发,线程,进程
一.并发,线程,进程1.1并发两个或者更多的任务(独立的活动)同时发生(进行);一个程序同时执行多个独立的任务;以往计算机,单核cpu(中央处理器);某一时刻只能执行一个任务,由操作系统调度,每秒钟进行多次所谓的“任务切换”并发的假象(不是真正的并发);这种切换(上下文切换),是有时间开销的。比如操作系统要保存你切换时的各种状态,执行进度等信息,都需要时间硬件发展,出现了多处理器计算机,...
2020-01-09 21:55:37
304
原创 数据结构——树(知识总结)
文章目录图的应用最小生成树普里姆(prim)算法克鲁斯卡尔(Kruskal)算法最短路径迪杰斯特拉(Dijkstra)算法弗洛伊德(Floyd)算法图的应用最小生成树普里姆(prim)算法克鲁斯卡尔(Kruskal)算法prim算法时间复杂度为O(n^2),克鲁斯卡尔算法时间复杂度为O(eloge)。对于两个算法,克鲁斯卡尔算法对于稀疏图优势大,而普里姆算法对于稠密图更好一点。最短路...
2020-01-08 09:20:58
277
原创 计算机网络知识点【4】-网络层
文章目录网络层数据交换方式数据报,虚电路网络层主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。网络层传输单位是数据报功能一:路由选择与分组转发功能二:异构网络互连功能三:拥塞控制(若所有结点都来不及接受分组,而要丢弃大量分组的话,网络就处于拥塞状态。因此要采用一定措施,缓解这种拥塞——开环控制,闭环控制)数据交换方式电路交换:电话网络报文交换:源应用发送的...
2020-01-02 16:13:55
272
1
原创 计算机网络知识点【3】-数据链路层
文章目录数据链路层基本概念封装成帧,透明传输数据链路层基本概念结点:主机,路由器链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线,光纤和微波。分为有限链路、无线链路数据链路:网络中两个结点之间的逻辑通道,把视线控制数据传输协议的硬件和软件加到链路上就构成数据链路。帧:链路层的协议数据单元,封装网络层数据报。数据链路层负责通过一条链路从一个结点想另一个物理链路直接相连的相...
2019-12-30 20:25:41
326
1
原创 计算机网络知识点【3】-物理层
文章目录物理层基本概念数据通信相关术语三种通信方式两种数据传输方式速率,波特,带宽奈氏准则香农定理导向性传输介质--双绞线,同轴电缆,光纤非导向性传输介质中继器,集线器物理层基本概念物理层解决如何在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。物理层主要任务:确定与传输媒体接口有关的一些特性(定义标准)1.机械特性:定义物理连接的特性,规定物理连接时所采用的规格,接口...
2019-12-30 16:38:18
338
1
原创 计算机网络知识点【2】
文章目录分层结构OSI参考模型TCP、IP参考模型5层参考模型分层结构发送文件前要完成的工作:1.发起通信的计算机必须将数据通信的通路进行激活2.要告诉网络如何识别目的的主机3.发起通信的计算机要查明目的的主机是否开机,并且与网络连接正常4.发起通信的计算机要弄清楚,对方计算机中文件管理程序是否已经做好准备工作5.确保差错和意外可以解决概念总结:网络体系结构是从功能上描述计算机...
2019-12-29 18:06:25
396
原创 计算机网络知识点【1】
文章目录计算机网络1.计算机网络的功能2.计算机网络组成3.计算机网络工作方式4.计算机网络分类标准化工作1.标准化分类2.标准化工作相关组织性能指标1.速率2.带宽3.吞吐量4.时延5.时延带宽积6.往返时延RTT7.利用率计算机网络1.计算机网络的功能数据通信,资源共享,分布式处理,提高可靠性,负载均衡2.计算机网络组成硬件,软件,协议3.计算机网络工作方式边缘部分,核心部分4...
2019-12-27 17:00:15
418
原创 操作系统知识点笔记【1】
操作系统知识点笔记【1】操作系统的特征:并发,共享,虚拟,异步进程与线程的概念Linux的4种锁机制:什么是大端小端以及如何判断大端小端死锁产生的必要条件5种IO模型操作系统的I/O 子系统操作系统的特征:并发,共享,虚拟,异步进程与线程的概念进程是对运行时程序的封装,是系统进行资源调度和分配的的基本单位,实现了操作系统的并发;线程是进程的子任务,是CPU调度和分派的基本单位,用于保...
2019-12-20 17:25:21
347
原创 用 pyqt5给深度学习目标检测+跟踪(yolov3+siamrpn)搭建界面(3)
本次的改进与前面两次变动很大,加入了登录与注册界面,检测跟踪界面也重新规划,界面进行了美化,加入了界面跳转功能等等。先上图检测跟踪界面目前只实现打开摄像头这个功能,后续更新其他功能。登录界面程序from PyQt5.Qt import *from pyqt5_demo.resource.login_pane import Ui_Formimport csvdef user_messa...
2019-11-29 09:20:49
8810
34
原创 数据结构——树
文章目录树的定义树的基本概念树的存储结构双亲表示法孩子表示法孩子兄弟表示法树的定义树(Tree)是n(n>=0)个结点的有限集。n=0时称为空树。在任意一棵非空树中,有且仅有一个特定的称为根(Root)的结点,当n>1时,其余结点可分为m(m>0)个互不相交有限集T1,T2,…\dots…, Tm,其中每一个集合本身又是一棵树,并且称为根的子树(SubTree)。树的基...
2019-11-27 11:02:29
228
原创 用 pyqt5给深度学习目标检测+跟踪(yolov3+siamrpn)搭建界面(2)
在上次的基础上,重新布局,加入了许多内容,除了上篇文章提到的显示帧率以及检测的内容,还加入了目标跟踪以及对服务端的通信连接。最终效果图:下面的程序的qt_designer产生的ui程序# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 'test3.ui'## Created by: ...
2019-11-10 16:45:00
6140
24
原创 队列的链表存储结构C++实现
/* * @Description: * @版本: 2.0 * @作者: jianwen * @Date: 2019-11-03 15:54:12 * @LastEditors: jianwen * @LastEditTime: 2019-11-05 15:03:25 */#include<iostream>using namespace std;typedef ...
2019-11-05 15:04:56
296
原创 队列的顺序存储结构C++实现
/* * @Description: * @版本: 2.0 * @作者: jianwen * @Date: 2019-11-03 14:40:23 * @LastEditors: jianwen * @LastEditTime: 2019-11-03 15:37:32 */#include<iostream>using namespace std;#define ...
2019-11-03 15:52:37
369
原创 栈的链表存储结构C++实现
/* * @Description: * @版本: 2.0 * @作者: jianwen * @Date: 2019-11-03 10:12:36 * @LastEditors: jianwen * @LastEditTime: 2019-11-03 10:45:35 */#include<iostream>using namespace std;struct N...
2019-11-03 14:28:10
424
原创 栈的顺序存储结构C++实现
/* * @Description: * @版本: 2.0 * @作者: jianwen * @Date: 2019-11-01 15:44:37 * @LastEditors: jianwen * @LastEditTime: 2019-11-03 10:08:29 */#include <iostream>using namespace std;#define...
2019-11-03 14:27:23
488
原创 线性表链表存储结构C++实现
/* * @Description: * @版本: 2.0 * @作者: jianwen * @Date: 2019-10-26 16:32:44 * @LastEditors: jianwen * @LastEditTime: 2019-10-28 10:43:43 */# include<iostream>using namespace std;typedef...
2019-11-03 14:26:20
514
原创 线性表顺序存储结构C++实现
/* * @Description: * @版本: 2.0 * @作者: jianwen * @Date: 2019-10-25 14:44:55 * @LastEditors: jianwen * @LastEditTime: 2019-10-26 15:57:44 */#include <iostream>using namespace std;#ifndef...
2019-11-03 14:24:56
591
原创 用 pyqt5给深度学习目标检测yolov3搭建界面(1)
最终效果图:注意一点:在窗口初始化中建立yolov3模型并进行相应的初始化,直接将预测处理的函数加到槽函数中。不这样做,会使得检测速度十分的慢。代码如下:import sysfrom PyQt5 import QtCore, QtGui, QtWidgetsfrom PyQt5.QtWidgets import *from pyqt5.yolov3.util import *impo...
2019-10-31 14:52:34
14627
45
原创 用pyqt5制作图像处理界面(3)——灰度变换
文章目录灰度线性变换灰度对数变换灰度幂次变换与Gamma校正分段线性变换图像处理分为空间域和频率域,空间域是指图像平面本身,主要是直接以图像中的像素操作为基础进行图像处理,空间域的处理主要分为灰度变换和空间滤波两类,灰度变换在图像单个像素上操作,主要以对比度和阈值处理为目的。空间滤波涉及改善性能的操作,通过像元领域来处理。本文主要介绍灰度变换在图像增强方面的应用,使得输出的图像比原始图像更适合特...
2019-10-28 15:26:31
3273
1
原创 用pyqt5制作图像处理界面(2)——图像的几何变换
文章目录二维图像变换的矩阵表示图像的平移变换图像的镜像变换图像的转置变换图像的旋转变换图像的缩放二维图像变换的矩阵表示齐次坐标:齐次坐标就是一个n维矢量的(n+1)维矢量表示。例如:二维坐标点P(x,y)的齐次坐标为:(Hx,Hy,H)。二维坐标与齐次坐标是一对多的关系。通常都采用规格化的齐次坐标,即取H=1。(x,y)的规格化齐次坐标为(x,y,1)。齐次坐标的几何意义:可理解为在三...
2019-10-24 15:47:09
1163
原创 数字图像处理(1)-采样,量化,空间分辨率,灰度级分辨率
文章目录数字图像的表示图像采样图像的量化图像空间分辨率灰度级分辨率数字图像的表示一幅图像可以被定义为一个二维函数f(x,y),其中(x,y)是空间(平面)坐标,在任何坐标(x,y)处的幅度f被定义为图像在这一位置的亮度。图像在x和y坐标以及在幅度变化上是连续的。要将这样的一幅图像转换成数字形式,要求对坐标和幅度进行数字化。将坐标值数字化称为取样,将幅值数字化称为量化。因此,当x、y分量及幅值...
2019-10-23 10:42:07
10257
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人