- 博客(46)
- 收藏
- 关注
原创 vs2010 报错 unable to start program “.....dll“
由于早期版本vs不会自动执行.dll,需要在.exe工程中自己在工程属性中设置启动项目 “Set as Startup Project”
2021-04-16 16:26:30 899
转载 VS2010 error LNK2019: unresolved external symbol _WinMain
MSVCRTD.lib(crtexew.obj) : error LNK2019: unresolved external symbol _WinMain@16 referenced in funct本来应该是console application , 我却选择了Windows application (这就是本质原因,但是出错了也不要紧,百度到了一个很好的博客)链接如下:http://blog.csdn.net/tianyi1991/article/details/44134641编译出现:MS
2021-04-16 16:11:03 546
转载 C++中dynamic_cast和dynamic_pointer_cast
C++ 中提供了四种强制类型转换操作符:static_cast, dynamic_cast, const_cast, reinterpret_cast。而关于shared_ptr 无法利用这些原始的操作符进行转换,其定义了自己的类型转换操作符:static_pointer_cast, dynamic_pointer_cast, const_pointer_cast 。其用途跟非智能指针的cast意思相同:static cast可以用来在不相干的类型间转换,只要两个类型之间兼容,例如char 转 intd
2021-04-14 13:38:45 1142
原创 在同一个进程内的线程共享资源和私有资源
在同一个进程中的线程共享:线程是轻量级的,没有自己独立的内存资源如:代码段、全局数据段、静态数据段、栈区、堆区、命令行参数、文件描述符、信号处理函数等。线程私有:线程拥有的独立资源是栈内存,也就是线程有自己独立的局部变量、线程ID。...
2021-03-19 20:23:16 1199
转载 生产者消费者模型——C语言代码详解
概念生产者消费者模式就是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消费者不找生产者要数据,而是直接从阻塞队列里取,阻塞队列就相当于一个缓冲区,平衡了生产者和消费者的处理能力。这个阻塞队列就是用来给生产者和消费者解耦的。321原则三种角色:生产者、消费者、仓库两种关系:生产者与生产者之间是互斥关系,消费者与消费者之间是互斥关系,生产者与消费者之间是同步与互斥关系。一个交易场
2021-03-17 20:52:29 5724
转载 Qt编译时提示error: multiple definition重复定义
今天在用QT(5.4.1) 编译程序时,提示error: multiple definition 错误,以下红色字体为错误提示。D:\Wind\PLT-Projects\BCS\tmp\moc_Cntrlane.cpp:156: error: multiple definition of `CntrLane::InputSignalChanged(bool*)’D:\Wind\PLT-Projects\BCS\tmp\moc_Cntrlane.cpp:156: first defined here在编
2021-03-14 14:39:12 2985
原创 预约管理系统C++、STL(含完整源码)
机房预约系统Gitee完整源码:传送门1、机房预约系统需求1.1 系统简介学校现有几个规格不同的机房,由于使用时经常出现"撞车"现象,现开发一套机房预约系统,解决这一问题。1.2 身份简介分别有三种身份使用该程序学生代表:申请使用机房教师:审核学生的预约申请管理员:给学生、教师创建账号1.3 机房简介机房总共有3间1号机房 — 最大容量20人2号机房 — 最多容量50人3号机房 — 最多容量100人1.4 申请简介申请的订单每周由管理员负责清空。学
2021-03-09 15:10:21 1550
原创 Qt学习笔记——样式表、定时器以及界面布局QtPainter和Qt线程
一、样式表使用类似于HTML中CSS的语法来设置控制的外观,Qt给这种语法取名叫QSS(Qt Style Sheets)。设计师界面设置:选中控件->右击->改变样式表(设置图片、背景色等)->确定。在代码中设置:从设计师界面复制格式表,在代码中 控件->setStyleSheet 设置控件的样式表。样式表的覆盖与继承:每个控件都有默认的样式表,有两个来源,一系统默认,二继承父窗口。继承:当一个控件没有设置样式表,它会从父窗口继承公共的样式表。覆盖:控件一旦设置
2021-03-07 19:06:22 530
原创 通配符*和?的区别
通配符“ * ”和“ ?”的区别是“*”可以用来代替零个、单个或多个字符,而“?”仅可以使用代替一个字符。“ * ”表示匹配的数量不受限制,而“?”的匹配字符数则受到限制。
2021-03-05 18:46:32 6616
原创 Qt极简贪吃蛇实现
持续修正更新该项目环境:Qt 4.8全部文件传送门部分重要模块代码#include "snakegame.h"#include "ui_snakegame.h"SnakeGame::SnakeGame(QWidget *parent) : QWidget(parent), ui(new Ui::SnakeGame){ ui->setupUi(this); head = new Body(rand()%18+1,rand()%10+1,40,this);
2021-03-04 21:27:34 158 1
原创 Qt学习笔记——界面文件的使用
一、界面文件的使用1、独立的ui文件使用uic命令把ui文件编译成.h文件,uic xxx.ui -o xxx.h2、在集成开发环境中使用1、Qt构造器会把xxx.ui文件生成 ui_xxx.h 文件,且会有一个xxx.h xxx.cpp文件。2、ui_xxx.h文件中有一个Ui_xxx类,类中的成员就是ui文件中所画的控件,成员setupUi函数,负责设置控件的位置、大小等相关属性。3、Ui_xxx会被Ui名字空间中的xxx类继承。4、xxx.h文件中虽然没有导入ui_xxx.h文件,但声
2021-03-04 11:35:00 415 1
转载 Qt中的hide()和close()的区别
bool QWidget::close() [slot]Closes this widget. Returns true if the widget was closed; otherwise returns false.First it sends the widget a QCloseEvent. The widget is hidden if it accepts the close event. If it ignores the event, nothing happens. The defa
2021-03-02 14:14:48 4247
原创 Qt学习笔记
一、Qt简介1、Qt是什么 图形用户应用程序框架,是对底层应用编程接口进行面向对象的封装。 是一套基于C++语言的类库,专注但不局限于用户界面的开发,也可以进行系统调用、网络通信、数据库、2D/3D的图像处理。 特点:跨平台,支持Linux、windows、MacOS、iOS、android等系统。2、为选择Qt 基于C++语言,简单易用 优良的跨平特性,个人计算机、工控、嵌入式的界面占用主导地位。二、Qt环境与工具1、工具 Qt助手:Qt的参考手册
2021-03-01 20:15:28 209
原创 实现通用的数组类模板C++
要求:可以对内置数据类型以及自定义数据类型的数据进行存储将数组中的数据存储到堆区构造函数中可以传入数组的容量提供对应的拷贝构造函数以及operator=防止浅拷贝问题提供尾插法和尾删法对数组中的数据进行增加和删除可以通过下标的方式访问数组中的元素可以获取数组中当前元素个数和数组的容量源码: 数组模板.hpp#pragma once#include <iostream>using namespace std;template<class T>class
2021-02-23 20:51:03 298
原创 SQL数据库语言相关函数及指令
一、数据查询1、排重查询 distinct在表中可能有多个重复的数据,查询数据时带上distinct关键可以排除重复数据。注意:查询多个字段时,所有字段都相同时才会被认定为重复。select distinct 字段 from 表名;select distinct name from Student;2、算术运算符select 字段+、-、*、/、% from 表名;可以对查询到的结果进行算术运算,如果想改变运算符的优先级,可以使用小括号。select id%100 from Studen
2021-02-20 19:11:00 261
原创 数据库SQL语言相关指令
一、数据操作语言1、插入表数据a、按顺序插入insert into 表名 values(数据1,数据2,...);insert into Student values("hehe",'m',10016);b、指定字段插入insert into 表名(字段1,字段2,...) values(数据1,数据2,...);insert into Student(name,id) values("xixi",10086);2、修改表数据update 表名 set 字段名=数据,... where
2021-02-19 17:25:12 376 1
原创 MySQL数据库以及SQL语言介绍
一、数据库介绍1、为什么需要数据库由于计算机的内存资源有限且掉电后数据会丢失,因此需要把程序中用到的数据保存下来以到便于关机后还能继续使用,而保存数据最简单的方法就是把数据以文件形式写入到磁盘中,我们把这个过程叫数据持久化。但随着程序的功能越来越复杂、数据量越来越来大,管理数据就成了大问题,因为读写文件并解析出数据需要大量的重复操作,并且从海量的数据中快速查找出指定的数据需要复杂的逻辑。如果程序都各自实现自己的读写数据的代码,一方面效率低且容易出错,另一方面是每个程序访问数据的接口不同,代码难以复用
2021-02-18 19:08:43 809
原创 C++中的运算符重载总结
运算符重载在C++中会把运算符当作函数来处理,当我们使用运算符时,编译器其实是把运算符翻译成函数,由于C++支持函数重载,所以C++中的运算符也是可以重载的,这样可以对类对象进行定制操作,从而简化操作、提高代码的可读性,如:string类就一个支持众多运算符的字符串类。Class A{};A a,b;当对象支持+运算符时:a + b;成员函数: const A& operator+(const A& b);全局函数: const A& operator
2021-02-15 15:51:43 180
原创 基于C++的企业信息管理系统设计
总体需求管理信息系统本身的管理主要是指对管理员的管理,这方面的需求可被归纳为管理需求,而对企业部门和员工的管理则被归纳为业务管理。管理需求增加管理员:根据屏幕提示依次输入管理员的用户名和密码,系统自动为其分配ID号,并向用户提供反馈信息。删除管理员:根据屏幕提示输入欲删除管理员的ID号,系统将该管理员删除,并向用户提供反馈信息。列出所有管理员:系统以列表形式显示所有管理员的ID号、用户名和密码。业务需求部门管理包括:增加部门删除部门列出所有部门员工管理则包
2021-02-05 18:01:38 458 1
原创 1012 数字分类 (20分)有测试节点无法通过的情况
输入样例 1:13 1 2 3 4 5 6 7 8 9 10 20 16 18输出样例 1:30 11 2 9.7 9输入样例 2:8 1 2 4 5 6 7 9 16输出样例 2:N 11 2 N 9具体代码:#include <iostream>#include <vector>using namespace std;int main(){ int n=0,num=0,A1=0,A2=0,A5=0; double A4=0.0; cin >
2021-01-28 11:07:00 194
原创 1009 说反话 (20分)快速易理解C++版
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。输出格式:每个测试用例的输出占一行,输出倒序后的句子。输入样例:Hello World Here I Come输出样例:Come I Here World Hello具体代码:#include <ios
2021-01-27 10:40:13 105
原创 1092 最好吃的月饼 (20分)
输入格式:输入首先给出两个正整数 N(≤1000)和 M(≤100),分别为月饼的种类数(于是默认月饼种类从 1 到 N 编号)和参与统计的城市数量。接下来 M 行,每行给出 N 个非负整数(均不超过 1 百万),其中第 i 个整数为第 i 种月饼的销量(块)。数字间以空格分隔。输出格式:在第一行中输出最大销量,第二行输出销量最大的月饼的种类编号。如果冠军不唯一,则按编号递增顺序输出并列冠军。数字间以 1 个空格分隔,行首尾不得有多余空格。输入样例:5 31001 992 0 233 68
2021-01-25 17:23:09 47
原创 PAT1092字符串A+B (20分)简便方法
给定两个字符串 A 和 B,本题要求你输出 A+B,即两个字符串的并集。要求先输出 A,再输出 B,但重复的字符必须被剔除。输入格式:输入在两行中分别给出 A 和 B,均为长度不超过 106的、由可见 ASCII 字符 (即码值为32~126)和空格组成的、由回车标识结束的非空字符串。输出格式:在一行中输出题面要求的 A 和 B 的和。输入样例:This is a sample testto show you_How it works输出样例:This ampletowyu_Hrk
2021-01-25 17:20:00 99
原创 C++类型信息和异常处理介绍
一、类型信息typeid 用于获取数据类型的信息,返回值是type_info类型的对象,需要加头文件typeinfo。type_info类型: name() 返回基本类型的缩写,返回自定义类型的名字。 同时还支持 == != 用于判断两种数据是否是同一种类型。注意:如果用于判断父子类型的指针或引用,它并不能准确判断出实际的类对象,但是如果父类中有虚函数则可以。二、异常处理C++异常处理是一种错误的处理方式,系统使用信号,C语言使用返回值。1、抛异常 把一个包含错误信
2021-01-22 16:52:27 203 1
原创 STL模板库介绍
一、模板技术是一种自动生成代码的技术,能够让代码在编写时不需要考虑数据类型(让代码脱离数据类型),所以这种技术也叫泛型编程技术。二、为什么使用模板1、C/C++是一种静态编程语言(预处理->汇编->编译->链接),静态编程语言的优点是运行速度快,而缺点是实现通用的代码比较麻烦,例如:实现一个通用的快速排序算法。2、借助回调函数实现通用代码,实现难度高且使用麻烦。3、借助宏函数实现通用代码,但类型检查不严格、没有返回值、容易出错。4、借助函数重载机制实现通用代码,缺点是代码段会
2021-01-19 11:40:12 205
原创 C++中的函数重载定义以及概念理解
1、什么是函数重载C++中,在同一作用域下,形参列表不同的同名函数构成重载关系,且不会冲突。2、重载实现的机制C++代码在编译时函数的参数类型会添加函数名中,也就是说C++的函数名在编译时经历的换名的过程,借助这个方式实现了函数的重载。 注意:由于C++和C函数的编译机制不同,所以C++代码不调用C编译器所编译出的函数。3、extern “C” {}功能是告诉C++编译器按照C语言的机制声明函数,这样C++中的代码就可以调用C编译编译出的函数了(C++目标文件与C的目标文件才能
2021-01-15 23:06:29 2368
原创 C++类的继承以及相关知识
一、类的继承1、当面临一个问题时,现在的类是否能解决部分问题,如果可以则把现在的继承然后再进行拓展,来缩短解决问题的时间、降低解决问题的难度(继承就是了代码复用)。2、当面临的问题比较复杂时,可以把问题分层,第层设计一个类,然后再通过继承进行汇总,最终得到一个可以解决问题的类,以此降低解决问题的难度。二、继承的基本语法1、继承表一个类可以继承多个类,被继承的类叫父类(基类),继承者叫子类(派生类),每个父类都可以有不同的继承方式。class 子类:继承方式1 父类1,继承方式2 父类2...
2021-01-15 23:02:01 261
原创 C++入门必看
一、C++介绍贝尔实验的本贾尼.斯特劳斯特鲁普,于1979年在分析Linux系统分布内核流量分析时,希望有一个更加模块化的工具,于是他为C语言增加了类的机制(面向对象),于1983年完了C++的第一个版本。特点: 1、C++完全兼容C语言的所有内容。 2、支持面向对象的编程思想(抽象、封装、继承、多态)。 3、支持函数、运行符重载。 4、支持泛型编程、模板技术。 5、技术异常处理机制。 6、类型检查更严格。二、第一个C++程序1、文件扩展名
2021-01-06 16:59:02 109
原创 五子棋对战UDP版 C语言 网络对战
先运行服务端 再运行客户端服务器端运行:#include <stdio.h>#include <stdlib.h>#include <stdbool.h>#include <string.h>#include <unistd.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <ar
2020-12-30 20:08:22 236
原创 保姆式详细过程Ubuntu上传代码至Gitee、Github
Gitee的用法基本与Github一致,将用Gitee为例,毕竟加载速度快创建仓库在Gitee网站右上角点击加号以下是我一般用的创建格式 可以自行选择,点击创建即可完成Ubuntu连接Gitee1.在终端输入sudo apt-get install git来安装git,已经安装可以跳过2.输入git config --global user.name "你的名字"3.输入git config --global user.email "你的邮箱地址"然后要得到连接的SSH公钥输入ssh
2020-12-26 13:26:45 2657
原创 C语言小项目 银行管理系统 基于socket套接字 网络通信
以下是客户端和服务端的代码至于相关的头文件和封装好的工具函数请从以下网址下载:https://gitee.com/follllll/socket_bankclient:#include "tools.h"#include <stdio.h>#include "bank.h"#define BUF_SIZE (4096)void sub_menu(void);void save(void);void take(void);void query(void);void tran
2020-12-25 22:09:05 424
原创 PAT 乙级 练习 1041 考试座位号 C语言版
说明每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。输入格式:输入第一行给出一个正整数 N(≤1000),随后 N 行,每行给出一个考生的信息:准考证号 试机座位号 考试座位号。其中准考证号由 16 位数字组成,座位从 1 到 N 编号。输
2020-12-18 17:56:23 123 1
原创 【新手入门向 浅显易懂】分别用栈和队列实现生产者与消费者模型
栈实现模型:#include <stdio.h>#include <stdlib.h>#include <time.h>#include <unistd.h>#include <pthread.h>*// 仓库容量*#define STORE_SIZE (20)*// 仓库*char store[STORE_SIZE];*// 数量*size_t store_cnt = 0;pthread_mutex_t lock;pt
2020-12-16 20:03:59 126
原创 PAT乙级练习题:1061 判断题 (15分) 新手小白简单写法
判断题判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分。输入格式:输入在第一行给出两个不超过 100 的正整数 N 和 M,分别是学生人数和判断题数量。第二行给出 M 个不超过 5 的正整数,是每道题的满分值。第三行给出每道题对应的正确答案,0 代表“非”,1 代表“是”。随后 N 行,每行给出一个学生的解答。数字间均以空格分隔。输出格式:按照输入的顺序输出每个学生的得分,每个分数占一行。输入样例:3 62 1 3 3 4 50 0 1 0 1 10 1
2020-12-14 14:45:47 332
转载 新手入门 Linux操作系统中inode、硬链接和软连接之间的关系
什么是链接?链接简单说实际上是一种文件共享的方式,是 POSIX 中的概念,主流文件系统都支持链接文件。它是用来干什么的?你可以将链接简单地理解为 Windows 中常见的快捷方式(或是 OS X 中的替身),Linux 中常用它来解决一些库版本的问题,通常也会将一些目录层次较深的文件链接到一个更易访问的目录中。在这些用途上,我们通常会使用到软链接(也称符号链接)。内容软链接和硬链接的区别是?下面我们进入正题,来探讨一下软硬两种链接到底有什么区别?首先,从使用的角度讲,两者没有任何区别,都与正
2020-12-14 14:39:02 130 1
转载 Linux下execl函数与execlp函数的具体详细用法
execl()函数:执行文件函数头文件:#include<unistd.h>定义函数:intexecl(const char * path, const char * arg, ...);函数说明:execl()用来执行参数path 字符串所代表的文件路径, 接下来的参数代表执行该文件时传递过去的argv(0),argv[1], …, 最后一个参数必须用空指针(NULL)作结束.返回值:如果执行成功则函数不会返回,执行失败则直接返回-1, 失败原因存于errno 中.#incl
2020-12-10 14:53:43 1373
原创 PAT乙级 1066 图像过滤 (15分) C语言版 新手小白简易写法
【题目描述】图像过滤是把图像中不重要的像素都染成背景色,使得重要部分被凸显出来。现给定一幅黑白图像,要求你将灰度值位于某指定区间内的所有像素颜色都用一种指定的颜色替换。【输入格式】输入在第一行给出一幅图像的分辨率,即两个正整数 M 和 N(0<M,N≤500),另外是待过滤的灰度值区间端点 A 和 B(0≤A<B≤255)、以及指定的替换灰度值。随后 M 行,每行给出 N 个像素点的灰度值,其间以空格分隔。所有灰度值都在 [0, 255] 区间内。【输出格式】输出按要求过滤后的图像。即
2020-12-09 21:11:25 168
原创 学习Linux新手、入门小白必看的Linux环境下编程基础
进程与程序:程序就是存储在磁盘上包含可执行指令、数据的静态实体。进程就被操作系统读取加载到内存中的正在执行的程序。进程的分类:守护进程:由系统在开机时通过启动脚本激活的,总处理活动状态,一般运行在后台维护系统的正常运行,进程号为1的init。批处理进程:系统会每隔一段时间集中处理该类进程的相关指令,会有定的延时,但避免的状态切换的耗时因此执行效率高。交互进程:在执行需要用户输入一些数据否则无法继续执行。Linux/UNIX系统查看进程:简单形式:ps 以简略方式显示当用户当前终端有控制权
2020-12-08 19:45:14 200
原创 Linux系统初步介绍(一)新手入门必看
文章目录UNIX系统介绍:Linux系统介绍:Linux系统相关知识:系统调用文件相关的系统调用:文件描述符:UNIX系统介绍:于1971~1973年在美国贝尔实验室由丹尼斯.里奇、肯.汤普逊合作开发而成,而且顺便升级BCPL语言为C语言。特点:高安全性、高可靠性、高稳定性,既可以构建大型关键业务系统的商业级服务器,也可以构建面向移动终端、可穿戴设备的嵌入式应用。Minix是一种基于微内核架构的类UNIX计算机操作系统,于1987年由Andrew S. Tanenbaum教授发布用于在大学中教学和学
2020-12-02 20:20:35 272
原创 新手小白 C语言十大经典算法入门必看理论基础
算法:解决问题的方法和步骤(数据结构所具备的功能)。特征:有穷性、确切性、输入项、输出项、可行性评定: 时间复杂度:随着输入项的变化,算法运算的次数,一般采用大O表示法。 O(1)<O(logn)<O(n)<O(nlogn)<O(n^2)<O(2^n)<O(n!) 空间复杂度:随着输入项的变化,算法所需要内存的变量,一般采用大O表示法。 O(1)<O(n)<O(2n) 正确性 可读性
2020-11-27 09:51:43 862
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人