- 博客(38)
- 收藏
- 关注
原创 求二进制中0/1的个数
今天看到一个题:求整数的二进制中0/1的个数说实话 我一开始看求1的还好,那个求0的我是真没看懂 上代码//找0的int countofZero(int x){ int N = 0; while (x + 1) { N++; x |= (x + 1); } return N;}//找1的int countOfOne(x){ int N = 0; while(x) { N++;
2020-08-12 09:29:50 399 1
原创 暴躁的一天从Ubuntu搜狗拼音开始
今天是暴躁的一天 本就是周六加班,搜狗输入法还给我出幺蛾子,王德发!先说现象:昨天算是突发奇想把搜狗装在了Ubuntu上,然后满心欢喜的回家了,今天早上来的时候开机启动QT后,他居然罢工了,然后启动终端,输入框中显示的是乱码,但是打出来的是正常字。我这问题比较复杂 花了一小时左右才解决。(基本上网上搜出来的问题我都要改)步骤1:点击系统设置->语言支持 将English(英式键盘)改为English(美式键盘) 并且将汉语()...
2020-08-08 09:37:21 271
原创 QML 通过定时器实现视频循环播放和待机跳转
这个月月初开始自学和使用QML。要求是再主界面循环播放一个视频,通过触摸屏进入菜单界面。若待机5秒,则返回视频播放。思路是再管理员按下start按钮后,按钮和倒计时文本隐藏,视频播放;倒计时结束后将视频和倒计时重置。(倒计时 == 视频时间)import QtQuick 2.12import QtMultimedia 5.0import QtQuick.Window 2.12//设置视频播放 Item { id:item visible: true
2020-07-13 14:26:48 855
转载 Qt的三大窗口
Qt的三大窗口dialog、widget、mainwindow一、dialog、widget、mainwindow的区别1)、dialog有exec函数,如果是dialog窗口,后边的窗口时不可选的;2)、widget和dialog都有show函数,如果通过这个函数显示这两种类型的窗口,则两个窗口都是可选的;3)、widget主要是在上面放置布局和控件;4)、mainwindow可以显示菜单,工具栏,状态栏、托盘等功能。二、dialog窗口这个dialog窗口只是为了给人们提供更好的可视化操作
2020-07-06 15:38:21 1368
原创 从零开始的Qt(Qt创造器)
一、Qt创造器的使用打开Qt创造器在终端执行:qtcreator,右键锁定到启动器。创建项目文件->新建文件或工程->Qt控件项目->Qt Gui应用->填写项目名称(不要使用中文)->桌面->选择窗口容器->设置类名、头文件名、源文件名->选择是否创建界面文件(设置界面文件名)。窗口类的构成:mainwindow.ui 文件会自动生成...
2019-09-03 20:23:18 321
原创 从零开始的Qt(信号和槽)
信号和槽1、信号当用户或系统触发一个动作,导致某个窗口发生变化,该控件就会发射一个信号,信号就可以调用一个函数,必须时还可以附加参数。如:QPushButton 控件中就有 clicked(void) 信号。2、槽槽就一个普通的类成员函数,它可以是公有的、私有的、保护护的,可以被重载也可以被覆盖,其参数、返回值可以是任意类型,可以被直接调用。与普通函数的区别就是它可以被信号触发,自动执...
2019-09-03 20:16:28 230 1
原创 从零开始的Qt(基本概念)
一、Qt简介1、Qt是什么图形用户程序框架,是对底层应用编程接口API面向对象的封装。是一套基于C++语言的类库,专注但不局限于图形用户界面的开发,也可以进行系统调用、网络编程、数据库、2D/3D图形处理。特点:跨平台,支持Linux,windows、MacOS、iOS、Android等操作系统。2、为什么选择Qt基于C++语言,简单、易用、面向对象(针对GTK)优良的跨平台特性(针...
2019-09-03 20:09:50 630
原创 从零开始的UML
一、UML1、什么是UML项目开发的说明书(设计图)2、UML是做什么的帮助建立软件开发过程和各种模型主要目的是为了让开发者之间进行有效的交流开发者与用户之间的交流开发者与设计者之间的交流开发者与开发者之间的交流开发者与管理者之间的交流适合大型项目和大型团队的开发3、UML的应用领域UML的目标是以面向对象的方式来描述任何类型的系统,常用于建立软件的模型。4、我对UML的...
2019-09-02 19:21:09 220 2
原创 从零开始的C++(虚析构与IO流)
一、虚函数表什么是虚函表,在C++的类中,一旦成员函数中有虚函数,这个类中就会多一个虚函数表指针,这个指针指向一个虚函数表,表里面记录了这个类中所有的虚函数,当这个类被继承,他的子类也会有一个虚函数表,如果子类的成员函数中有函数签名与父类中的虚函数一样就会用子类中的函数替换它在虚函数表中的位置,这样就达到了覆盖的效果当通过类指针或引用调用函数时,会根据对象中实际的虚函数表记录来调用函数,这样...
2019-08-21 20:50:15 120
原创 10分钟理解虚继承与覆盖!从零开始的C++(继承与覆盖)
一、多重继承、钻石继承、虚继承多重载继承在C++中一个子类可以有多个父类,在继承表中按照顺序继承多个父类中的属性和行为,并按照顺序表中的调用父类的构造函数。按照从低到高的地址顺序排列父类,子类中会标记每个父类存储位置。当子类指针转换成父类的隐式指针时候,编译器会自动计算父类中的内存所在子类的中的位置,地址会自动进行偏移计算。名字冲突如果父类中有同名的成员,可以正常继承,但如果直...
2019-08-20 20:14:27 423
原创 从零开始的C++(类的继承)
一、类的继承1、共性与个性表达不同类型事物之间共有的属性和行为个性用于刻画每种事物特有的属性和行为2、共性表示为父类(基类),个性表示为子类(派生类)子类继承父类基类派生出子类二、继承的基本语法1、继承表一个子类可以同时继承0~多个父类,每个父类的继承方式可以相同也可以不同class 子类:继承方式1 父类1,继承方式2,父类2…{}2、继承方式public 公有...
2019-08-19 20:10:55 176
原创 从零开始的C++(操作符函数重载)
一、操作符函数重载什么是操作符函数:在C++中针对类类型的对象的运算符,由于它们肯定不支持真正的运算操作,因此编译器会将它们翻译成函数,这种就叫作操作符函数(运算符函数)。编译器把运算翻译成运算符函数,可以针对自定义的类类型设计它独有的运算功能。其实各种运算已经具备一些功能,再次实现它的就是叫作运算符重载。双目运算符:a+b成员函数a.operator+(b);全局函数oper...
2019-08-17 17:15:32 150
原创 从零开始的C++(单例模式下的饿汉模式和懒汉模式)
一、单例模式定义:只能创建出一个类对象(只有一个实际的实例)的叫单例模式单例模式的应用:Window系统的任务管理器Linux/Unix系统的日志系统网站的访问计数器服务端程序的连接池、线程池、数据池。获取单一对象的方法:定义全局(C语言),但不受控制,防君子不能防小人专门写一个类,让类的构造函数设置私有,借助静态成员函数提供一个接口,以此来获取唯一的实例C+...
2019-08-16 19:19:13 237
原创 从零开始的C++(静态成员)
静态成员类成员一旦被 static 修饰就会变成静态成员,他不会存储在每一个对象当中,而是单独一份存储在bss或data内存段中,所有的类对象共享(静态成员属于类,而不属于某个对象)静态成员需要在类内声明,但要在类外定义和初始化,与成员函数一样需要加"类名::"限定符表示它属于那个类,但不需要再加额外的 static。成员函数前也可以被 static 修饰,这种函数叫静态成员函数...
2019-08-16 19:09:04 108
原创 从零开始的C++(拷贝构造/赋值构造)
一、拷贝构造拷贝构造又称为复制构造,是一种特殊的构造函数,它是使用一个现有的对象来构造一个新的对象,只有一个引用型的参数(对象本身) 类名(类& ) { }拷贝构造的参数应该加 const 保护,但编译器并没有强制限制编译器会自己生成一个拷贝构造函数,他负责旧对象中的所有数据拷贝给新创建对象深拷贝和浅拷贝的区别如果类成员中有指针,浅拷贝只拷贝指针变量的值,而深拷贝是拷贝...
2019-08-16 17:33:14 191
原创 从零开始的C++(析构函数)
析构函数1、特殊的成员函数函数名必须是 ~类名(void) { } //没有参数、没有返回值、不能重载2、谁来调用析构函数会在销毁对象时自动调用,在对象整个生命周期来最多被调用一次而构造函数一定被调用一次3、析构函数负责什么析构函数负责释放在构造函数期间所获取的所有资源,它的执行过程:先执行析构函数本身代码调用成员类的析构函数调用父类的析构函数...
2019-08-16 17:29:39 156
原创 从零开始的C++(面向过程/对象编程)
面向过程编程:关注的是问题的解决的过程步骤(事情是如何解决的),算法面向对象编程:关注的是解决问题的人(类),具备什么样的数据(成员变量),具备什么样的技能(成员函数)才能解决问题抽象:找出一个能解决问题的"对象"(观察研究对象),找出解决问题所必须的数据(属性),功能(成员函数)封装:把抽象的结构,归结为一个类(数据类型),然后实例化出类对象,设置对象的属性,调用对象的功能达到解决问...
2019-08-16 17:24:20 312
原创 从零开始的C++(this 指针与 常函数)
this 指针类的成员变量单独存储在每个类对象中,成员函数存储在代码段中,所有类对象共享一份成员函数成员函数是如何区别调用它是哪个类对象?借助了this指针,类的每个成员函数都有一个隐藏的参数,就是this指针。它指向类对象类的构造函数中也同样有this指针,指向的就是正在构造的这个对象在类中(成员、构造、析构)对成员变量、成员函数访问都是借助了 this 指针this...
2019-08-16 16:59:37 157
原创 从零开始的C++(内存管理)
C++的内存管理1、new/deletenew/delete是C++具备申请/释放堆内存功能的运算符,相当于C语言中的malloc和free。new + 类型 会自动计算类型所需要的字节数,然后从堆中分配对应字节数的内存,并返回内存的首地址(具备类型)delete + 指针 会自动释放堆内存注意:new/delete 与 malloc/free 不能混用,因为new和delete会自...
2019-08-16 16:46:49 128
原创 从零开始的线程(功能函数)
一、同步、竞争、互斥当多个线程同时访问其共享的资源时,需要相互协调,以防止出现数据不一致、不完整的问题,能达到这种状态线程同步。而有些资源在同一时刻只有一个线程访问,对于这种资源的访问需要竞争。当资源获取到后,能够防止资源被其它线程再次获取的技术叫互斥。二、互斥量(锁)pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;int pthre...
2019-08-14 19:54:00 113
原创 从零开始的线程(基本概念)
一、线程基本概念1、线程就是进程中的执行路线,即进程内部的控制序列,或者说是进程的子任务(进程就是正在运行的程序,它一个资源单位)。2、线程就是轻量级的,没有自己独立的内存资源,使用的是进程的代码段、数据段、bss段、堆(注意没有栈)、环境变量表、命令行参数、文件描述符、信号处理函数、工作目录、用户ID、组ID等资源。3、线程拥有自己独立的栈,也就是有自己独立的局部变量。4、一个进程中可以...
2019-08-14 19:42:46 162
原创 从零开始的C++
一、C++介绍本贾尼 贝尔实验室 在分析UNIX系统分布内核流量的时候,希望有一种有效的更加模块化的工具1979年10月完成了预处理器Cpre,为C增加了类机制,也就是面向对象。1983年完成了C++的第一个版本,C with classes也就是C++C++与C的不同点:1、C++完全兼容C的所有语法2、支持面向对象的编程思想3、支持运算符,函数重载4、支持泛型编程,模版5、支...
2019-08-14 19:36:13 307
原创 从零开始的进程管理(函数)
进程标识符操作系统会为每个进程分配一个唯一的标识符,采用无符号整数表示,即进程ID。进程ID在任何时候都是唯一的,但是可以重用,当一进程结束,新创建的进程才可以使用它的进程ID(延时重用)。pid_t getpid(void);功能:获取进程IDpid_t getppid(void);功能:获取父进程IDuid_t getuid(void);功能:获取当前进程的用户IDgid_t...
2019-08-13 20:38:31 183
原创 从零开始的进程管理(基本概念)
进程管理的基本概念1、进程与程序程序:存储在磁盘上的文件,包含可执行指令和数据的静态实体进程: 运行中的程序(一个程序可以执行多次,加载出多个进程)进程就是处于活动状态的计算机程序2、进程的分类:交互进程(有输入,有输出,用户可以根据自己的情况输入数据,得到想要结果)(一般进程)批处理程序(由脚本加载执行的程序)(Linux下的shell,windows下的bat)守护进程(...
2019-08-08 20:49:09 180
原创 从零开始的文件操作(标准C)
文件操作FILE *fopen(const char *path, const char *mode);功能:打开文件path:文件的路径mode:文件打开的方式,以字符串形式提供“r” 以只读方式打开文件,如果文件不存在则打开失败,返回值为空。“r+” 在"r"的基础上增加写权限。“w” 以只写方式打开文件,如果文件不存在则创建,如果文件存在则把内容清空。“w+” 在"w"的基础...
2019-08-06 20:25:21 120
原创 从零开始的预处理指令
预处理指令程序员所编写的代码不是标准的C代码,需要一段程序把它翻译成标准的C代码才能进行编译,负责翻译的程序叫预处理器,翻译的过程叫预处理,被翻译的代码叫预处理指令(以#开头)。查找预处理的结果:gcc -E code.c 会把预处理的结果显示在屏幕上gcc -E code.c -o code.i 把预处理的结果保存到文件中。常见预处理指令:#include 把头文件导入到源文件中#...
2019-08-06 20:21:52 216
原创 从零开始的枚举
枚举把一种类型可以等于的值全部列举出来,除此以再赋其它值就是非法的。注意:这只一种美好的愿望,而实际上为了提高运行速度,编译器并没有做检查,因此枚举变量是可以用整数来赋值的(我猜测枚举就是使用unsigned int模拟的)。enum Role {STUDENT=3,TEACHER=5,ADMIN=7};enum Role role = STUDENT;为什么使用枚举:可以把意义的整数使...
2019-08-06 20:19:37 1592 2
原创 从零开始的联合
联合关键字:union,语法与struct样,区别是所有成员共用一块存储空间。当给其中一个成员赋值时,其它成员的值也会发生变化。使用union判断系统是大端还是小端。int num = 0x01020304;0xe1e2e3e4 <=> &num低位地址存储低位数据-小端。0xe1e2e3e4 = 0x040xe1e2e3e5 = 0x030xe1e2e3...
2019-08-06 20:18:16 104
原创 从零开始的2048(标准C语言)(简单版)
在翻以前的代码时发现了一个2048的小练习在这通过这篇博客分享给大家2048功能这个游戏的玩法就是左右上下移动,遇到两个相同的数字将其合并生成两数字之和的新数字,数字满盘了游戏就结束。#include <stdio.h>#include <stdlib.h>#include <stdbool.h>#include <time.h>#i...
2019-08-05 20:34:33 319
原创 震惊!原来TCP那么容易!从零开始的TCP协议的C/S模型
最近学习了计算机网络通信,这次和大家分享一下编程模型Server 创建socket套接字 准备地址(sockaddr_in,本机地址) 绑定(bind) 监听(listen) 等待连接(accept、fork) 接收请求(read/recv) 响应请求(write/send) 关闭(close) Client创建s...
2019-08-05 20:20:58 408 1
原创 从零开始的计算机网络
一、计算机网络1、什么是计算机网络计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。2、计算机网络的功能数据通信资源共享提高系统的可靠性分布式网络处理和负载均衡3、计算机网络的组成通信子网:网卡、线缆、集线器、中继器、交换机、路由器。资源子网:网...
2019-08-05 19:59:32 742
原创 从零开始的进程间通信
一、基本概念什么叫进程间通信(IPC,Interprocess communication):是指两人个或多个进程之间交换数据的过程叫进程间通信。进程之间为什么需要通信?当需要多个进程协同工作高效率完成任务时,因为每个进程都个独立的个体(资源单位),进程之间就需要进行通信。进程间通信方式:1、简单进程间通信:命令行参数,环境变量表、信号、文件2、传统进程间通信:管道3、XSI进程间通...
2019-08-03 17:34:16 273 1
原创 从零开始的电话簿(标准C语言)
主要功能添加联系人,要求不超过100人,超过100则显示添加失败。删除联系人,按姓名删除(要保证不能有重名)修改联系人信息,先根据姓名查找到联系人查找联系人,根据电话号码查找联系人显示所有联系人程序运行1、菜单界面实现程序后进入的电话簿菜单界面,输入指令1、2、3、4、5、q,分别实现电话簿添加、删除、修改、查找、显示、退出功能。2、添加联系人输入指令1后添加联系人,添...
2019-07-27 15:52:31 823
原创 从零开始的学生信息管理系统(标准C)(超全)
从零开始的学生管理系统(标准C)(超级管理员)(超全)主要功能学生能够登陆系统查询语文、数学、英语三科成绩,及三科的平均分、总分、排名教师能够管理学生、录入学生考试成绩。管理员能够管理教师,超级管理员有且只有一个,只为管理普通管理员。除超级管理员外,所有用户连续登陆三次帐号被锁定,需要上级用户才能解锁。除超级管理员外,所有用户id要求有序且唯一。除超级管理员外,所有用户登陆必须修改密码。学生功能学生信息包括:学...
2019-07-27 11:48:36 346 1
原创 从零开始的操作系统
操作系统Unix/Linux环境C语言,以学习操作系统的接口的方法来学习,理解操作系统的运行机制以及一些网络协议。C/C++ 语言和数据结构算法 与平台无关,重点是算法逻辑Unix/linux/Android/ios平台相关,系统接口嵌入式/驱动/移植 硬件相关,硬件接口环境介绍内存管理文件操作文件管理信号处理进程管理进程通信网络通信线程同步线程管理2、 Unix操...
2019-07-24 13:02:01 245
原创 从零开始的二叉树
二叉树1、子结点的数量最多为2的树叫做二叉树2.、相关术语: 前序遍历: 根结点,左结点,右结点 中序遍历: 左结点,根结点,右结点 后序遍历: 左结点,右结点,根结点 层序遍历: 从上到下,从左到右3、二叉树的构成最上面的结点为根结点(root),第二层的结点为根结点的子节点,也是第三层的父结点,第三层为第二层的子结点,其余的叫做边。结点和链表中的结点...
2019-07-24 12:57:28 404
原创 从零开始的链表
新人小白,初学代码。本博客简单的说一下自己学链表的心得,如有错误,欢迎指出。链表的定义链表是一种常见的基础数据结构,可以动态的进行存储分配,也就是说,链表是一个功能极为强大的数组,他可以在节点中定义多种数据类型,还可以根据需要随意增添,删除,插入节点。链表都有一个头指针,一般以head来表示,存放的是一个地址。链表中的节点分为两类,头结点和一般节点,头结点是没有数据域的。链表中每个节点都分为两...
2019-07-13 15:02:43 267
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人