自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

木子皿--啥都不会的菜鸟

努力学习,希望有朝一日能够从事后台服务器开发相关工作!

  • 博客(125)
  • 资源 (4)
  • 收藏
  • 关注

原创 如何在Panel中嵌入子窗体

文章目录1 如何在Panel中嵌入子窗体1.1 在Panel中嵌入子窗体的方法1 如何在Panel中嵌入子窗体1.1 在Panel中嵌入子窗体的方法首先看嵌入前的效果:点击按钮“课程信息管理后“的效果:实现代码如下:private void OpenForm(Form childFrom){ //首先判断容器中是否有其他的窗体 foreach (Control i...

2019-12-31 16:38:17 804 1

原创 课程管理界面设计及功能实现

文章目录1 课程管理界面设计1.1 课程管理界面设计1 课程管理界面设计1.1 课程管理界面设计效果如下:参考资料:.NET/C#工控上位机VIP系统学习班【喜科堂互联教育】...

2019-12-31 16:10:15 2115

原创 主窗体界面设计及功能实现

文章目录1 主窗体界面设计1.1 主窗体界面设计1 主窗体界面设计1.1 主窗体界面设计效果如下:主界面主要有三个panel组成。参考资料:.NET/C#工控上位机VIP系统学习班【喜科堂互联教育】...

2019-12-31 16:06:59 1660

原创 DataGridView的使用

文章目录1 DataGridView1.1 DataGridView UI设计技巧1 DataGridView1.1 DataGridView UI设计技巧效果如下:首先去掉启用添加、启用编辑、启用删除。设置BackColor。使用智能标签添加列,在页眉文本中填写要添加的列名称(绑定数据源后,列的Name和Data’P’ropert’yName必须保持一致,否则无法正常显示)。R...

2019-12-31 16:01:41 616 1

原创 Label的使用

文章目录1 Label1.1 使用Label制作出一条线的效果1 Label1.1 使用Label制作出一条线的效果效果如下:AutoSize设置为flase。BorderStyle设置为FixedSingle。Height设置为1。参考资料:.NET/C#工控上位机VIP系统学习班【喜科堂互联教育】...

2019-12-31 15:40:04 473

原创 内存对齐

文章目录1 内存对齐的基本概念1.1 什么是内存对齐1.2 内存对齐的原因2 #pragma pack2.1 #pragma pack的使用方式1 内存对齐的基本概念1.1 什么是内存对齐内存对齐的概念:不同类型的数据在内存中按照一定的规则排列。而不一定是顺序的一个接一个的排列。上面中Test1和Test2所占的内存空间在编译器的默认4字节的对齐方式下是不一样的,Test1占用1...

2019-12-30 15:47:21 379 1

原创 #pragma使用分析

文章目录1 #pragma使用分析1.1 #pragma简介1.2 #pragma message1.3 #pragma once1.4 #pragma pack1 #pragma使用分析1.1 #pragma简介首先明确一点#pragma是由编译器进行处理的,而不是预处理器!#pragma简介:#pragma用于指示编译器完成一些特定的动作。#pragma所定义的很多指示字是编译器...

2019-12-30 15:14:05 243 1

原创 stringstream

文章目录1 stringstream1.1 stringstream的用法1 stringstream1.1 stringstream的用法头文件:#include <sstream>。作用:可以用来格式化字符串。示例:#include <sstream>#include <string>using namespace std;string...

2019-12-30 14:33:24 262

原创 8086的启动过程

文章目录1 8086的启动过程1.1 8086启动时的寄存器情况1.2 BIOS1 8086的启动过程1.1 8086启动时的寄存器情况8086处理器在启动或者重启的时候,会对寄存器执行一个初始化的操作。初始化后的寄存器信息如下:CS:FF FF,其它的寄存器:00 00。1.2 BIOS我们知道8086处理器一共有20根地址线,那么其访问空间就是1MB,如下:最顶端的ROM(Re...

2019-12-29 19:38:28 2230

原创 #line使用分析

文章目录1 #line使用分析1.1 #line的用法1 #line使用分析1.1 #line的用法#line用于强制指定新的行号和编译文件名,并对源程序的代码重新编号。用法:#line的编译指示字的本质是重定义__LINE__和__FILE__ 。参考资料:C语言进阶剖析教程...

2019-12-29 19:14:37 345

原创 #error使用分析

文章目录1 #error使用分析1.1 #error的用法1.2 #error的使用示例1 #error使用分析1.1 #error的用法#error的基本概念:#error用于生成一个编译错误消息。#error是一种预编译器指示字,可用于提示编译条件是否满足。#error的用法:#error编译指示字用于自定义程序员特有的编译错误消息。类似的,#warning用于生成编译警告...

2019-12-29 19:10:51 774

原创 条件编译

文章目录1 条件编译1.1 条件编译的基本概念1.2 条件编译的本质1.3 #include的本质1.4 条件编译的意义1 条件编译1.1 条件编译的基本概念条件编译的基本概念如下:条件编译的行为类似于C语言中的if…else…条件编译是预编译器指示命令,用于控制是否编译某段代码。1.2 条件编译的本质条件编译的本质如下:预编译器根据条件编译指令有选择的删除代码。编译器根...

2019-12-29 19:00:50 3180

原创 宏定义

文章目录1 宏定义1.1 宏定义的基本概念1.2 定义宏常量1.3 宏定义表达式1.4 宏表达式与函数的对比1 宏定义1.1 宏定义的基本概念宏定义的基本概念:#define是预处理器处理的单元实体之一。#define定义的宏可以出现在程序的任意位置。#define定义之后的代码都可以使用这个宏。注意: 宏是没有作用域的概念的,作用域是针对函数和变量来说,因为函数和变量是由编译器...

2019-12-29 18:42:22 899 1

原创 登录界面设计及功能实现

文章目录1 登录界面设计1.1 登录界面设计1.2 登录界面设计要点1 登录界面设计1.1 登录界面设计界面效果如下:1.2 登录界面设计要点我们需要先将窗体设置为无边框,然后再设置窗体的大小。按钮设计成扁平化时,记得把边框设置为和按钮一样的颜色(或者和所在容器的背景颜色一样)。我们设置窗体的背景颜色后,其所包含的控件的颜色也会随之改变。当窗体设置成无边框后,我们无法通过鼠标移...

2019-12-28 17:31:42 2646

原创 无边框窗体移动的方法

文章目录1 无边框窗体移动的方法1.1 无边框窗体移动的方法1 无边框窗体移动的方法1.1 无边框窗体移动的方法当我们把窗体设置为无边框后,会发现用鼠标拖动窗体时是没有反应的,我们需要在窗体实现中增加如下代码:#region 窗体移动private Point mouseOff;//鼠标移动位置变量private bool leftFlag;//标签是否为左键private voi...

2019-12-28 17:11:37 3218

原创 按钮事件的统一处理

文章目录1 按钮事件的统一处理1.1 项目UI及所需实现的功能简要介绍1.2 功能实现1 按钮事件的统一处理1.1 项目UI及所需实现的功能简要介绍项目UI如下:所需实现的功能:除“保存所选课程”按钮外,其他的按钮点击事件统一处理。按钮携带的信息通过Tag进行传递。将所选择的课程通过实体类的封装存储到泛型集合中。1.2 功能实现首先来看下实体类的代码,非常简单:using ...

2019-12-28 11:19:17 432 1

原创 建模的常用手段:组合与聚合

文章目录1 组合1.1 组合的基本概念1.2 组合的具体方式1.3 组合的具体实例2 聚合1 组合1.1 组合的基本概念当两个对象之间是整体与部分的关系时,它们之间就是组合的关系。对于如下问题:构建一个计算机类,一台计算机,由CPU芯片,硬盘,内存等组成。CPU芯片也使用类来表示。计算机类和CPU类就是组合关系,组合关系具有如下特点:被拥有的对象(芯片)的生命周期与其拥有者(计算机...

2019-12-27 17:11:14 870

原创 C++中函数参数的默认值

文章目录1 C++中的函数默认参数1.1 C++中的函数默认参数1 C++中的函数默认参数1.1 C++中的函数默认参数注意: 如果函数提供了默认参数,只需要在声明中给出默认参数即可,不需要在实现处给出,否则编译报错。...

2019-12-27 16:51:03 5362

原创 逗号表达式

文章目录1 逗号表达式1.1 逗号表达式的规则1.2 逗号表达式的应用1 逗号表达式1.1 逗号表达式的规则逗号表达式是C语言中的“粘贴剂”。逗号表达式的规则:逗号表达式用于将多个子表达式连接为一个表达式。逗号表达式的值为最后一个子表达式的值。逗号表达式的前N-1个子表达式可以没有返回值。逗号表达式按照从左向右的顺序计算每个子表达式的值。#include <stdio....

2019-12-27 14:19:54 1776

原创 三目运算符

文章目录1 C语言中的三目运算符1.1 三目运算符的规则2 C++中的三目运算符1 C语言中的三目运算符1.1 三目运算符的规则三目运算符(a?b:c)可以作为逻辑运算的载体。三目运算符的规则:当a的值为真时,返回b的值;否则返回c的值。三目运算符的返回类型:通过隐式类型转换规则返回b和c中的较高类型。当b和c不能隐式转换到同一类型时将编译出错。返回值不能作为左值,尤其注意...

2019-12-27 13:50:21 17620 1

原创 按钮button的常用属性和事件

文章目录1 按钮button的常用属性和事件1 按钮button的常用属性1 按钮button的常用属性和事件1 按钮button的常用属性Tag: 我们可以通过tag对按钮增加数据。private void btnMyTest_Click(object sender, EventArgs e){ //sender表示当前控件的对象 //Button btn = send...

2019-12-26 14:13:12 7503

原创 控件事件的绑定与取消

文章目录1 控件事件的绑定与取消1.1 控件事件的绑定1.2 控件事件的取消1 控件事件的绑定与取消1.1 控件事件的绑定this.btnTest.Click += new System.EventHandler(this.btnTest_Click);1.2 控件事件的取消this.btnTest.Click -= new System.EventHandler(this.btnTe...

2019-12-26 13:55:27 277

原创 窗体的常用属性和常用事件

文章目录1 窗体的常用属性1.1 窗体的常用属性2 窗体的常用事件2.1 Load2.2 FormClosing2.3 FormClosed1 窗体的常用属性1.1 窗体的常用属性Text: 窗体标题。StartPosition: 窗体出现在屏幕中的位置,一般选择CenterScreen。Size: 窗体大小。Icon: 窗体图标。FormBordeStyle: 一般选择sizabl...

2019-12-26 13:46:41 3225 1

原创 ++和--操作符分析

文章目录1 ++和--操作符分析1.1 ++和--操作符的本质1.2 ++和--操作符使用分析2 编译器的贪心法阅读技巧2.1 编译器的贪心法阅读技巧1 ++和–操作符分析1.1 ++和–操作符的本质++和- -操作对应两条汇编指令。前置:变量自增(减)1取变量值后置:取变量值变量自增(减)11.2 ++和–操作符使用分析下面两个表达式的值是多少?#include...

2019-12-26 11:20:13 253

原创 8086的内存分段机制

文章目录1 代码段和数据段2 8086的分段机制2.1 8086的分段机制1 代码段和数据段对于我们的程序来说,通常分为代码段和数据段:对于上面的代码使用的是绝对地址,当我们的操作系统把数据段不是加载在0x0100的地址时,就会出现访问数据的错误。这其实就是重定位的问题,需要借用段寄存器解决:我们需要知道如下几点:指令中的地址是数据在段内的偏移地址。数据段寄存器DS中的值是数据...

2019-12-26 09:49:04 1606

原创 特殊的char类型

文章目录1 特殊的char类型1.1 char类型的分类1 特殊的char类型1.1 char类型的分类char有三种不同的类型:单纯的char:真正的字符类型,是用来声明字符的。我们需要注意对于单纯的char类型由编译环境决定,不能依赖。对于单纯的char类型,唯一允许的操作是赋值和相同运算符(=,==,!=)。signed char:用来声明数值,范围-128~127。unsig...

2019-12-26 08:57:03 436

原创 负数的存储方式

文章目录1 负数的存储方式1 负数的存储方式代码如下,输出结果是多少?int main(void){ char a[1000]; for (int i = 0; i < 1000; i++) { a[i] = -1 - i; } cout << strlen(a) << endl; // 255 system("pause"); re...

2019-12-25 17:46:09 1219

原创 strlen

文章目录1 strlen1.1 strlen计算的字符串长度不包括'\0'1 strlen1.1 strlen计算的字符串长度不包括’\0’strlen计算的字符串长度不包括’\0’!strlen("Hello"); // 长度为5...

2019-12-25 17:18:14 510

原创 定义和声明的区别

文章目录1 变量定义和变量声明的区别1.1 变量定义和变量声明的区别1 变量定义和变量声明的区别1.1 变量定义和变量声明的区别对于如下语句,哪个是变量定义?哪个是变量声明?int i; // 变量定义extern int i; // 变量声明变量定义: 所谓的定义就是(编译器)创建一个对象,为这个对象分配一块内存并给它取上一个名字,这个名字就是我们经常说的变量名或对象名。但是...

2019-12-25 16:27:16 10333 1

原创 C语言中的关键字概览

文章目录1 C语言中的关键字概览1 C语言中的关键字概览C语言中一共有32个关键字,如下:参考资料:C语言深度解剖

2019-12-25 15:57:00 251

原创 XML简介

文章目录1 XML简介1.1 XML与HTML1.2 XML中的约束1.3 XML的主要用途1.4 XML的完整格式1.5 XML解析组件1 XML简介1.1 XML与HTMLXML 是 Extensible Markup Language(可扩展标记语言)的缩写。XML和HTML的区别:HTML 是用于编写网页的标记语言,XML 是用于定义任意标记语言的元语言(通常把用于定义新语言的语...

2019-12-25 14:30:48 408

原创 加密、解密基本概念

文章目录1 对称密钥加密技术1.1 常用的对称密钥加密技术2 公开密钥加密技术2.1 RSA简介3 数字签名3.1 数字签名的生成方式1 对称密钥加密技术1.1 常用的对称密钥加密技术错开字符编码的加密方式:比如加密时,将文本数据中每个字符所对应的字符编码一律向后错三个,即给原字符编码的值加上 3。解密时,只要再将字符编码向前挪三个就可以实现解密。通过 XOR 运算进行加密和解密:...

2019-12-25 11:58:11 1971

原创 X86与ARM

文章目录1 intel(英特尔)1.1 intel简介1.2 intel产品1.3 X86指令集2 ARM2.1 ARM简介3 X86指令集和ARM指令集的区别3.1 X86指令集和ARM指令集的区别1 intel(英特尔)1.1 intel简介intel:美国的一家以研发、制造、销售CPU为主的公司世界上第一块CPU在1971年诞生于英特尔:intel 4004INTegrated...

2019-12-25 09:12:37 253

原创 构造全自动计算的CPU

文章目录1 构造全自动计算的CPU1 构造全自动计算的CPU自此,构造完成!参考资料:深度学习:C/C++、计算机体系

2019-12-24 17:31:03 150

原创 构造先存储再计算的加法器电路

文章目录1 构造先存储再计算的加法器电路1 构造先存储再计算的加法器电路前面我们用加法器构造能够实现连续加法的电路和用RAM存储器构造能够依次读取各存储单元内容的电路,我们只需要将这两部分电路进行组合加以改进便可以得到先存储再计算的加法器电路,首先回顾下前面两个电路:用加法器构造能够实现连续加法的电路:用RAM存储器构造能够依次读取各存储单元内容的电路:我们将上述两个电路组合在一起,...

2019-12-24 17:08:48 324

原创 用RAM存储器构造能够依次读取各存储单元内容的电路

文章目录1 用RAM存储器构造能够依次读取各存储单元内容的电路1 用RAM存储器构造能够依次读取各存储单元内容的电路首先看一下我们的RAM存储器:为了读取其中的内容,我们可以构造如下的电路:对于上述电路我们需要不停的点击各个按键,为了能够简化操作,我们继续对电路进行改进:RR的初始值为001。点击第一次按键完成写入地址的操作,点击第二次按键完成读出数据的操作,点击第三次按键完成刷新...

2019-12-24 17:03:59 630

原创 用加法器构造能够实现连续加法的电路

文章目录1 构造实现连续加法的电路1.1 构造实现连续加法的电路有了前面搭建得各分立元器件,就可以开始组装我们自己的CPU了!1 构造实现连续加法的电路1.1 构造实现连续加法的电路我们先来看一下我们之前构造的8位加法器:如果我们现在要计算10+8+6+4的和,对于中间结果需要我们手动保存:能不能让加法器自己记住这个中间结果,并使其自动的参与和下一个加数的运算呢?这样的话,肯定需要...

2019-12-24 14:24:07 854

原创 用D触发器构造寄存器

文章目录1 用D触发器构造寄存器1.1 普通寄存器1.2 上升沿触发寄存器1.3 循环移位寄存器1 用D触发器构造寄存器1.1 普通寄存器电路结构如下:我们对其进行封装就得到寄存器:1.2 上升沿触发寄存器我们将D型触发器换成上升沿D型触发器就得到了上升沿触发寄存器:1.3 循环移位寄存器循环移位寄存器的结构如下:我们在每个寄存器的输出端加上灯泡,就可以得到跑马灯的电路结...

2019-12-24 13:45:31 6668

原创 交换两个变量的值

文章目录1 交换两个变量的值1 交换两个变量的值给出如下三种方法:#include <stdio.h>#define SWAP1(a, b) \{ \ int t = a; \ a = b; \ b = t; \}#define SW...

2019-12-24 11:53:43 188

原创 C、C++中的位运算符

文章目录1 C、C++中的位运算符1.1 C、C++中的位运算符1.2 C、C++中的位运算符的优先级1.3 位运算与逻辑运算2 左右和右移运算符2.1 左移和右移注意点1 C、C++中的位运算符1.1 C、C++中的位运算符C、C++中的位运算符直接对bit位进行操作,其效率最高。1.2 C、C++中的位运算符的优先级四则运算 > 位运算 > 逻辑运算。1.3 位运算与...

2019-12-24 11:47:56 749

STM32F103C8T6_GRBL 1.1f 移植

STM32F103C8T6_GRBL 1.1f 移植,最新版本的GRBL,STM32F103C8T6,拿过去改一改便可以使用,非常实用!

2019-12-17

0.96LCD显示屏技术资料.zip

中景园电子0.96LCD显示屏技术资料,其中有完整的参考参考程序,硬件原理图,可以很方便的进行移植,使用起来很方便!

2019-12-09

【小项目】简易计算机等级考试模拟练习

【小项目】简易计算机等级考试模拟练习

2018-11-02

条码和二维码生成的DLL

这两个DLL可以用来生成条码和二维码

2018-10-29

空空如也

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

TA关注的人

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