自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 文件的检测和筛选

获取磁盘容量关键函数:void DiskSend::GetDiskSpace(QString strDisk, double& dTotalBytes, double& dFreeBytes){ LPCWSTR lpcwstrDriver = (LPCWSTR)strDisk.utf16(); ULARGE_INTEGER lFreeBytesAvailable, lTotalBytesTemp, lTotalFreeBytes; if (!GetDiskFreeSpaceEx

2020-09-18 15:34:35 213

原创 TCP网络程序

TCP通信分析【服务端】启动,创建ServerSocket对象,等待连接。【客户端】启动,创建Socket对象,请求连接。【服务端】接收连接,调用accept方法,并返回一个Socket对象。【客户端】Socket对象,获取OutputStream,向服务端写出数据。【服务端】Scoket对象,获取InputStream,读取客户端发送的数据。【服务端】Socket对象,获取OutputStream,向客户端回写数据。【客户端】Scoket对象,获取InputStream,解析回写数据。【

2020-09-08 15:50:06 145

原创 递归

概述:递归:指在当前方法内调用自己的这种现象。递归的分类:递归分为两种,直接递归和间接递归。直接递归称为方法自身调用自己。间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法。注意事项:递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出。构造方法,禁止递归案例如下:public class Demo01DiGui {public static void main(String[] args

2020-09-04 10:51:42 114

原创 自定义异常类

自定义异常类:Java提供的异常类,不够我们使用,需要自己自定义一些异常类格式:Public class xxxExcepiton extends Exception / RuntimeException{添加一个空参数的构造方法添加一个带异常信息的构造方法}注意:自定义异常类一般都是以Exception结尾,说明该类是一个异常类自定义异常类,必须的继承Excetion或RuntimeExceptiona) 继承Exception,那么自定义的异常类就是一个编译期异常,如果方法内部抛出

2020-08-28 15:10:00 1296

原创 JDBC连接池

概念:JDBC连接池其实是一个容器,存放数据库连接的容器。原理:当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。好处:节约资源用户访问高效实现:标准接口:DataSource javax.sql包下的1. 方法:获取连接:getConnection()归还连接:Connection.close()。如果连接对象Connection是从连接池中获取的,那么调用Connection.clos

2020-08-09 19:31:03 92

原创 抽象工厂模式

抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。继承父类工厂的不同子类,分别新建不同的实例,当实例不同的子类时,就可以new 不同的类了。以下是代码案例://抽象苹果class AbstractApple {public: virtual voidShowName() = 0;}; //中国苹果class ChinaApple :public AbstractApple {public: virtual voidShowNa

2020-06-08 23:10:40 93

原创 Qt 中磁盘文件的检测和筛选

获取磁盘容量关键函数:voidDiskSend::GetDiskSpace(QString strDisk, double& dTotalBytes, double& dFreeBytes){ LPCWSTR lpcwstrDriver =(LPCWSTR)strDisk.utf16(); ULARGE_INTEGER lFreeBytesAvailable,lTotalBytesTemp, lTotalFreeBytes; if (!Ge

2020-05-28 17:07:51 456

原创 Qt 中实现阴影窗口

阴影窗口的实现方法一般有三种,方法一是:在窗口的构造函数中设置窗口的属性为:setAttribute(Qt::WA_TranslucentBackground);从而保证窗口不被绘制的部分透明化。接着重写绘制函数paintEvent(),其代码示例如下:void QT_Test::paintEvent(QPaintEvent *event){QPainterPath path;path.setFillRule(Qt::WindingFill);path.addRect(10, 10,t

2020-05-18 18:06:56 829

原创 Qt 中定时器事件

定时器是用来处理周期性事件的一种对象,类似于硬件定时器。例如设置一个定时器的定时周期为 1000 毫秒,那么每 1000 毫秒就会发射定时器的 timeout() 信号,在信号关联的槽函数里就可以做相应的处理。定时器实例程序运行示意图要使用定时器,需要添加QTimer类#include1.窗口类添加定义(忽略非相关定义):class Dialog : public QDialog{...

2020-05-08 17:07:12 947

原创 Qt中 字符串的比较和遍历

字符串比较QString :: compare()静态方法用于比较两个字符串。该方法返回一个整数。如果返回值小于零,则第一个字符串小于第二个字符串。如果它返回零,两个字符串都是相等的。最后,如果返回值大于零,则第一个字符串大于第二个字符串。’less’表示字符串中的特定字符位于字符表中的另一个字符之前。字符串按以下方式比较:两个字符串的第一个字符进行比较;如果它们相等,则比较以下两个字符,直到找...

2020-04-28 17:48:00 8405

原创 Qt 中QLineEdit

QLineEdit是一个单行文本输入框。允许用户输入和编辑单行纯文本,提供了很多有用的编辑功能,包括:撤消和重做、剪切和粘贴、以及拖放(见setDragEnabled())。以下是对于登录界面的输入框的了解常用成员函数:void setClearButtonEnabled(bool); //是否设置一个清空按钮.点击这个清空按钮后,就会自动删除行编辑框内的所有内容,类似于clear()....

2020-04-28 17:44:08 509

原创 Qt 中常用功能

设置应用程序图标在资源文件(*.res)中添加图标文件资源文件代码如下:bmp/logo.png在setupUi函数中添加相应代码代码如下://set iconQIcon icon;icon.addPixmap(QPixmap(QString::fromUtf8(":/bmp/logo.png")),QIcon::Normal,QIcon::Off);WndTest-&...

2020-04-28 17:39:11 254

原创 C++中 模板使用案例

使用模板写函数可以给多个类型使用,这样就能减少代码量。#define _CRT_SECURE_NO_WARNIGS#include <iostream>using namespace std;//对char类型和int类型数组进行排序 //打印函数template <class T>void PrintArray(T* arr, int len) {...

2019-08-08 14:46:26 85

原创 C++ 中的类型转换

代码和讲解如下:#include<iostream>using namespace std;class Building{};class Animal{};class Cat:public Animal{};//static_castvoid test() { int a = 100; char c = static_cast<char>(a); c...

2019-07-28 20:25:21 100

原创 C++ 中的try-catch异常

代码和讲解如下:#include<iostream>using namespace std;//一、异常基本语法int divide(int x, int y) { if (y==0) { throw y; //抛异常 } return x / y;}void test01() { //试着去捕获异常 try { divide(10, 0); ...

2019-07-28 20:18:01 183

原创 C++ 多态案例-图形

#define _CRT_SECURE_NO_WARNIGS#include <iostream>using namespace std;class Shape {public: virtual void show() = 0; virtual double ShowArea() = 0; virtual ~Shape() {};};class Square :...

2019-07-18 14:43:18 301

原创 C++ 用结构体实现多态

#define _CRT_SECURE_NO_WARNIGS#include <iostream>using namespace std;//------------抽象层-----------//定义一个锦囊类型typedef void(TIPS)(void);//定义锦囊struct tip{ char from[64];//谁写的 char to[64];/...

2019-07-18 14:39:27 2398 1

原创 C++ 面向抽象类编程-电脑组装案例

#include<iostream>using namespace std;//------------抽象层----------//抽象的CPU类class CPU {public: virtual void caculate() = 0;};//抽象的显卡类class Aard {public: virtual void display() = 0;};...

2019-07-08 11:10:13 219

原创 C++ 纯虚函数和抽象类

#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;//图形类//如果说一个类 拥有一个纯虚函数//就称这个类是一个抽象类。//不管这个类中有没有成员属性,只要这个类有纯虚函数,就是一个抽象类,抽象类不能实例化。class Shape{public: //求图形面积的方法 /...

2019-07-08 11:08:26 145

原创 C++ 继承中构造析构调用原则

构造析构调用原则:1、子类对象在创建时会首先调用父类的构造函数2、父类构造函数执行结束后,执行子类的构造函数3、当父类的构造函数有参数时,需要在子类的初始化列表中显示调用4、析构函数调用的先后顺序与构造函数相反案例如下:#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;clas...

2019-06-28 10:57:51 188

原创 C++ 中文件输入输出

文件操作的基本步骤:打开文件读 / 写文件关闭文件详解案例如下:#include<iostream>using namespace std;#include<fstream> //文件读写void test02() { char* sourceName = "C:\\Users\\123\\Desktop\\source.txt"; char* ta...

2019-06-28 10:38:18 159

原创 C++标准输入流

#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;#if 0标准输入流对象 cin,重点掌握的函数cin.get() //一次只能读取一个字符cin.get(一个参数) //读一个字符cin.get(三个参数) //可以读字符串cin.getline()cin.ignore(...

2019-06-18 10:57:22 166

原创 C++中的友元函数

/*采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分,但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除了友元函数外,还有友元类,两者统称为友元。友元的作用是提高了程序的运行效率(即减少了类型检查和安全性检查等都需要时间开销),但它破...

2019-06-18 10:54:55 158

原创 C++中的虚析构函数

/*虚析构函数构造函数不能是虚函数。建立一个派生类对象时,必须从类层次的根开始,沿着继承路径逐个调用基类的构造函数。析构函数可以是虚的。虚析构函数用于指引delete运算符正确析构动态对象。*/案例如下:#include<iostream>using namespace std;class A{public: A() { cout << "A...

2019-06-10 11:39:18 82

原创 C++多态的定义和三个必要条件

/*什么是多态?多态的定义是:如果有几个上似而不完全相同的对象,有时人们要求在向它们发出同一个消息时, 它们的反应各不相同,分别执行不同的操作。这种情况就是多态现象。例如,A和B两个班都是高三年级,他们有基本相同的属性和行为,在同时听到上课铃声的时候,他们会分别走向两个不同的教室,而不会走向同一个教室。多态发生的三个必要条件:1.要有继承。2.要有虚函数重写。3.父类指针或引用...

2019-06-10 11:01:12 2992 1

原创 C++中数组的冒泡排序

算法分析:按降序排序时,若一组整数放在数组a[0],a[1],……,a[n-1]中,冒泡排序法是采用相邻元素比较的方法所以第一轮比较是让a[0]和a[1]比较如果a[0]大于a[1]就交换数组存放的数据,反之则不交换,然后再让a[1]和a[2]进行比较,如果a[1]大于a[2]就交换数组存放的数据,反之则不交换,以此类推直到a[n-2]与a[n-1]比较。为了使效率的到优化增加一个判断...

2019-06-10 10:59:11 1333

原创 C++中的多继承应用

多继承就是一个类有多个直接基类的继承关系被称为多继承关系一个派生类对象拥有多个直接或间接基类的成员。不同名成员访问不会出现二义性。如果不同的基类有同名成员,派生类对象访问时应该加以识别。例如:class A{public: int a; int d;};class B {public: int b; int d;};class C: public A,public B...

2019-05-28 10:10:33 764 1

原创 C++中运算符重载

运算符重载使得用户自定义的数据以一种更简洁的方式工作。比如Int x,y; 可以为y=x+y;而 My c1,c2;如果想使得两个自定义的对象相加,以前只能调用函数计算它们的和。而现在只要定义了运算符重载就能实现c1=c1+c2.所谓重载,就是重新赋予新的含义。函数重载就是对一个已有的函数赋予新的含义,使之实现新功能,因此,一个函数名就可以用来代表不同功能的函数,也就是“一名多用”。...

2019-05-28 10:08:23 118

原创 C++中const指针

如何区分常量指针和指向常量的指针呢?一个简单的方法:从右向左读。例:const int p; // p是一个int型常量 这个很简单const int *p; // p是一个指针,指向int型常量。即p是一个指向int型常量的指针。int * const p; // p是一个指向int的const指针const int * const p; // p是一个指向int型常量...

2019-05-17 15:00:18 1562

原创 C++中静态成员变量和静态成员函数

在 C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。类的静态成员,属于类,也属于对象,但终归属于类。写法格式//声明static 数据类型 成员变量; //在类的内部//初始化数据类型 类名::...

2019-05-17 14:49:03 108

原创 C++中命名空间

在使用c++时,一般都会有用到using namespace std;,这就是名称空间。名称空间是c++的新特性其作用如下:防止名称冲突,简化大型项目的管理工作。替代全局变量,可以跨文件使用。就形式来看,名称空间与类很像:namespace a{ int i; int func(int a){return ++a;};}namespace b{ in...

2019-05-08 18:46:16 133

原创 C++中的枚举

Enum(枚举)是一种创建符号常量的方式,可用于替代const。定义:默认情况下,enum定义的枚举量会成为符号常量,对应从0开始的整数,从左到右依次+1。例如:enum color{red, orange, yellow, green, blue, violet, black};1color是枚举名,是一种新类型,red、orange、yellow等是枚举量,都是符号常量,对应0...

2019-05-08 18:44:21 382

原创 c++中用new分配内存

new的作用和使用方法如下:new的作用在于可以在程序运行阶段动态分配内存,内存的大小在运行时根据需要确定,从而高效利用内存空间。new的使用方法如下:typeName* pointer_name = new typeName使用时用户需要指定类型(指针类型和要开辟的内存存储的数据类型),new可以自动找到一个正确长度的内存块,并返回内存块的地址。分配内存失败时,默认抛出bad_al...

2019-05-08 16:50:42 6284

原创 用C++写的一个‘23’游戏

“23”游戏是一个双人游戏,道具是23根牙签,玩家轮流取1,2或3根牙签。拿到最后一根牙签的是输家。写程序和计算机玩“23”。总是玩家先走,轮到计算机时,它根据以下规则采取行动:a.如果剩余牙签多于4根,计算机就取走4-x根,x为玩家上次取走的牙签数b.如果剩余2-4根牙签,计算机取走足够多的牙签,确保只剩下1根c.如果剩余1根牙签,计算机只能取走它并且认输玩家输入要取走的牙签数量时,...

2019-04-28 16:11:45 579

原创 C++中引用变量

一般情况下的引用变量是我们现有变量的一个拷贝,相当于我们可以利用一个新的变量名称来代替原变量的使用,下面是一个小例子:#include <iostream>using namespace std;int main(){ int rats=101; int &rodents=rats; //这里定义了引用变量rodents cout<...

2019-04-28 09:05:33 572

原创 C++递归函数实现九九乘法表

C++递归函数实现九九乘法表开发工具与关键技术: VS,C++作者:余文龙撰写时间:2019年4月11号递归函数就是直接或间接调用自己的函数,利用这个特性我们就可以在它调用自己的同时输出我们想要的数据。下面是我用递归函数实现的九九乘法表的代码和注释#include<iostream>using namespace std;int nine(int); ...

2019-04-18 08:09:14 3173

原创 分布编译

高级语言的分布编译开发工具与关键技术:命令提示符 , C 作者:余文龙撰写时间:2019年4月5号以C语言为例来展开,总结语言的分布编译。C语言分布编译一共分为4步第一步:预处理 宏定义展开 头文件展开 条件编译 去掉注释第二步:编译 检查语法 将C语言转换成汇编语言第三步:汇编 将汇编语言转成机器语言(二进制码)第四步:链接 将C语言依赖库链接到程序中例如:用记事本编写一个...

2019-04-08 14:50:55 301

原创 ORACLE数据位列 ROWNUM分页显示操作

ORACLE数据位列 ROWNUM分页显示操作开发工具与关键技术:Oracle sql*plus PLSQL作者:余文龙撰写时间:2019年03月31日ROW中文翻译是行 NUM是号码合起来就是行号,实际上ROWNUM为每一个显示的记录都会自动的随着查询生成行号,比如,通过下面代码观察:SELECT ROWNUM,EMPLOYEE_ID,LAST_NAME,JOB_ID,HIRE_D...

2019-04-08 09:16:31 219

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除