自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Topsis模型算法(优劣解距离法)

Topsis模型算法(优劣解距离法)

2022-09-27 16:57:22 10

原创 层次分析法

【代码】数学建模零基础到精通。

2022-09-25 18:31:42 2

原创 matlab的基础准备及入门

matlab的基础准备及入门。

2022-09-20 15:25:53 6

原创 C语言知识点查缺补漏

1、控制不同进制的输出int a = 100; printf("原样输出\n"); printf("16进制为a=0x%x\n",a); printf("10进制为a=0d%d\n",a); printf("8进制为a=0o%o\n",a);2、混合输入#include<stdio.h>int main(){ int a; char b; float c; printf("分别输入一个数字、字符、小数\n"); scanf("%d%c%f",&a,&

2022-08-21 20:25:18 167

原创 用C语言实现贪吃蛇小游戏

1、为什么我们需要使用ncurse?因为在玩贪吃蛇时,我们需要一个很快的按键响应,ncurse在即时按键响应这方面做得比较好,当然现在已经很落后了。

2022-08-15 23:07:22 751

原创 OLED屏幕显示

OLED屏幕显示

2022-08-03 11:05:09 54

原创 基于51单片机的温湿度测量系统

基于51的温湿度检测系统

2022-08-02 11:50:40 114

原创 智能感应垃圾桶

距离感应开盖,按键开盖,震动开盖

2022-07-30 10:36:25 33

原创 基于51单片机的报警器

单片机报警器,菜鸟级别,不喜勿喷

2022-07-28 13:08:45 64 1

原创 类与对象。

类:类是描述一个事物(对象)的集合,涵盖了事物的属性特征和行为特征。属性特征:描述事物的状态。(是什么)行为特征:描述事物的行为。(能做什么)对象:是类的具体,是类的一个具体实例。人类====男人 + 女人。关系:类是抽象的,对象是具体的。//对象的创建与访问//数据类型:8种数据类型,引用数据类型//格式:数据类型 变量名称 = new 数据类型();变量名称放入栈中,new开辟的空间放入堆中,当栈中地址与堆中地址一致时就可以访问,所以叫访问数据类型,定义类就是定义类的成员,包括成

2022-05-22 10:28:59 8

原创 JAVA基础语法(下)

方法重载:多个方法名称相同,参数列表不同(参数个数不同、参数类型不同)。打印的方式调用函数,函数必须要有返回值。数据类型:用来指定开辟多大内存空间。new:java中的关键字,用来开辟内存空间。//动态初始化int[] array = new int[10];//初始化一个int数组,里面存放十个数据double[] array1 = new double[20];String[] array3 = new String[23];//静态初始化public static void main

2022-05-12 19:41:43 127

原创 java实现99乘法表

package com.smh;public class Mult{ public static void main(String[] args) { int i = 1; int j = 1; for(i=1;i<=9;i++) { for(j=1;j<=9;j++) { System.out.print((i*j)+" ")

2022-05-11 10:42:25 67

原创 JAVA基础语法(中)

一、八种基本数据类型计算各数据类型大小:package com.smh;//package是关键字,表示包名,创建类时,在src文件夹下面创建一个com.smh的文件夹public class hello{ public static void main(String[] args) { System.out.println("int整数类型的最小值是:"+Integer.MIN_VALUE); System.out.println("int整数

2022-05-11 10:41:16 9

原创 JAVA基础语法上

运行JAVA程序需要使用JRE开发JAVA程序需要使用JDKJDK包含开发工具和JRE,JRE又包含系统API和JVM.JAVA1.8:编译工具:JAVAC.exe运行工具;java.exebin文件夹:该文件夹存放了JDK的各种具命令include:存放平台特定的头文件lib:存放JDK工具的一些补充JAR包conf:存放JDK相关配置文件(1.8版本没有这个文件夹)Source:源(Src)cd指令一次进入两个文件夹:cd ruanjian\java1.8cls:清屏cd…回退到

2022-05-07 19:01:20 100

原创 socket网络编程

怎么让两台设备之间互相通信呢?这就涉及到了网络通信,那么一台设备如何找到另一台设备呢?通过网络地址,地址又包括IP地址与端口号,端口号的作用在于当一个IP地址上面同时跑很多程序时,端口号用于区分这些程序。TCP与UDP的区别:1、 TCP面向连接 (如打电话要先拨号建立连接); UDP是无连接 的,即发送数据之前不需要建立连接2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付Tcp通过校验和,重传控制,序号标识,滑

2022-05-02 17:59:53 14

原创 Linux多线程

为什么要使用多线程?传统的linux进程可以看成只有一个控制线程:同一进程在同一时刻只能执行一件事情。有了多个控制线程后,我们可以把程序设计成在同一时刻不只做一件事情。进程是系统中程序执行和资源分配的基本单位。每个进程有自己的数据段、代码段和堆栈段。这就造成进程在进行切换等操作时都需要有比较负责的上下文切换等动作。为了进一步减少处理器的空转时间支持多处理器和减少上下文切换开销,也就出现了线程。(就是防止进程某一部分等待,导致进程白白切换)。使用多线程的理由之一是和进程相比,它是一种非常"节俭"的多任务操

2022-04-30 17:31:07 254

原创 进程间通信

什么是进程间通信?两个进程可以同时往公共内存区(管道)存或发数据这样的全双工通信是真正意义上的通信。一、管道管道通常指无名管道特点:(1)它是半双工的,数据只能在一个方向上流动。(2)只能用于父子进程间通信。(3)它可以看成是特殊的文件,对于它的读写,也可以使用write,read等函数;但它不属于文件,不存在于其他任何文件系统,只存在于内存中。原型: #include <unistd.h> int pipe(int pipefd[2]);pipe是创建一个管道,

2022-04-26 15:53:34 23

原创 一篇文章了解Linux下进程相关知识

1、什么是程序,什么是进程,有什么区别?程序是静态的概念,进程是动态的概念。gcc a.c -o a,a就是一个程序,存在于硬盘中,当a跑起来之后,系统中就多了一个进程,进程就是跑起来的程序。2、什么是进程标识符?每个进程都有唯一的非负整数表示唯一ID,叫做pid,类似进程的身份证pid = 0,交换进程,作用是进程调度pid = 1,init进程,作用是系统初始化用top来查看进程的pid以及占用cup,以评估程序好坏。#include <stdio.h>#include

2022-04-25 16:17:20 2106

原创 一篇文章搞懂Linux文件操作

打开函数:open读写函数:write/read光标定位:lseek关闭:closeman 2 open:在man手册第二页查看open函数一、打开文件(1) int open(const char *pathname, int flags):const char *pathname:是一个字符串,表示的是要打开的文件地址;flags:包含以下标志位O_RDONLY 以只读方式打开文件O_WRONLY 以只写方式打开文件O_RDWR 以可读写方式打开文件. 上述三种旗标是互斥的, 也

2022-04-22 18:06:54 1297

原创 通过LCD1602来了解时序

这张图片说明LCD1602共有两行32个位置来显示字母,那如何定义在哪个位置来显示字母,显示的字母是什么呢?这里我们定义一组输出口为D0—D7,共8位来控制字符的输出。例如第二行第一个字符的地址是 40H,那么是否直接写入 40H 就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位 D7 恒定为高电平 1 所以实际写入的数据应该是 01000000B(0x40) +10000000B(0x80)=11000000B(0xC0)。要写入数据时,我们让数据口输出为上面每.

2022-04-18 21:30:56 689

原创 让51单片机进行上网

发送:TX接收:RXSBUF每次只能存储一个字节,如果是字符串的话,那就一个字符一个字符的去发送,,然后先把接收到的放入缓存,完全发送完毕再进行处理ESP-01s出厂波特率正常是115200设置ESP8266为9600波特率:AT+UART=9600,8,1,0,0AT+CWMODE=3 //1. 是station(设备)模式 2.是AP(路由)模式 3.是双模以设备模式接入家里路由器:AT+CWJAP=“9527”,“12345678” //指令查询IP地址:AT+CIFSR让WIFI作为

2022-04-14 23:26:05 760

原创 串口通信的一些常用方法

1、我们来实现一个通过程序往串口端发送一个字母的实验。#include <reg52.h>#include <intrins.h>#include <stdio.h>sfr AUXR = 0x8E;char data_msg = 'X';void UartInit(void) //9600bps@11.0592MHz{ PCON &= 0x7F; //波特率不倍速 SCON = 0x50; //8位数据,可变波特率 AUXR &=

2022-04-11 21:49:36 827

原创 基于51单片机来开发的智能感应开盖垃圾桶

一、智能垃圾桶需求分析:当距离小于等于10时,垃圾桶开盖持续两秒钟,否则垃圾桶关闭盖子当检测到震动时,垃圾桶开盖持续两秒钟,否则垃圾桶关闭盖子当按下按键时,垃圾桶开盖

2022-04-11 13:03:34 1084

原创 51单片机使用超声波进行测距

#include <stdio.h>#include <reg52.h>#include <intrins.h>sbit LED1=P3^6;sbit LED2=P3^7;sbit Trig=P3^4;sbit Echo=P3^5;void Delay10us() //@11.0592MHz{ unsigned char i; i = 2; while (--i);}void Delay300ms() //@11.0592MHz{

2022-04-08 22:10:05 2848

原创 51单片机中定时器、中断、PWM实例分析。

配置一个1s的定时器#include "reg52.h"sbit led=P3^6;int cnd=0;void main(){ TMOD=0x01;//配置定时器0工作在16位计时模式 led=1; TL0=0x0000; TH0=0xDC00;//设置10微妙一个计数周期 TF0=0;//初始化爆表位为0 TR0=1;//开始计时 while(1) { if(TF0==1) { cnd++;//爆表一次次数加一 TF0=0; TL0=0x00;

2022-04-07 22:14:43 511

原创 Linux基础操作

ctrl Alt T打开命令终端xrandr -s 1360x768把屏幕分辨率改为1360x768vi a.c 有就打开a.c文件,无就创建a.c文件按i进入编辑模式,看到insert就可以编辑代码,按esc回到命令行模式命令行模式下,按:wq,w:保存,q:退出ls:列出当前文件夹下所有文件pwd:显示当前文件路径mkdir +文件夹名字:创建文件夹cd :进入文件夹 cd … 退回上层文件夹;.代表当前路径,…代表上层路径。cd 什么都不加,直接回到工作目录mv a.

2022-04-05 17:53:22 825

原创 结构体及其相关知识

一、为何要使用结构体数组只能存放同一类型的数,结构体可以存放不同类型的数据。二、如何定义结构体//结构体的定义与使用//如何访问结构体;目标,内部的变量#include<stdio.h>#include<stdlib.h>#include<string.h>struct Student//结构体只起到模板的作用{ int score; char* name[128];//结构体里面定义字符串只能这么定义};int main(){ struct

2022-04-04 20:40:03 171

原创 字符串及其常用API

一、字符串的几种定义方式这里我们列举了四种字符串的定义方式,我们常用的是第四种字符串的定义方式。#include<stdio.h>#include<stdlib.h>int main(){ char str[5]={'p','y','r','e','w'};//字符串的第一种定义方式,类似字符数组 char str2[5]={"abcde"};//字符串的第二种定义方式 char str3[]={"hfdvbkejnvzksjf"};//字符串的第三种定义方式,无大小

2022-04-02 15:48:12 261

原创 指针数组与数组指针的区别

一、指针数组。字面意思来理解,就是指针的组。一个大小为n的数组,我们在数组里面存放n个地址,每一个地址均可以指向任意数的地址。#include<stdio.h>int main()//指针的集合,指针数组{ int a=3; int b=33; int c=333; int* parry[3]; parry[0]=&a;//这个数组用于存放地址 parry[1]=&b;//这个数组用于存放地址 parry[2]=&c;//这个数组用于存放地址

2022-04-02 09:24:24 17

原创 指针及其应用

1、变量的访问有两种方式:(1)变量名直接访问(2)地址直接访问(*代表取地址里面的内容)代码如下:#include<stdio.h>int main(){ int a=99; int b=999; printf("通过变量名访问内容,a的值是:%d\n",a); printf("通过变量名访问内容,b的值是:%d\n",b); printf("通过地址访问内容,a的值是:%d\n",*(&a)); printf("通过地址访问内容,b的值是:%d\n",*(&a

2022-04-02 09:01:27 80

原创 聊一聊数组

(1)数组是数据的集合。(2)数组的数据是同类型的。(3)!!!数组里面数据的地址是连续的,数组名代表数组的首地址/数组的第一个元素的地址也代表数组首地址。(4)数组与函数结合,数组名当做实际参数。一、数组的遍历及打印。int array[100];//没有初始化的数组,仅仅申请了100个整型数据的内存空间int array[3]={1,2,3};//有初始化的数组,完整初始化,该数组申请了三个整型数据的空间并依此赋值int array[100]={1,2,3};//有初始化的数组,不完整初始

2022-03-30 18:09:00 182

原创 用C语言实现计算器功能

使用C语言来实现一个计算器。主要分为两大步骤:(1)提示用户输入(2)获取用户输入并识别相应的算法进行计算#include<stdio.h>void tips(){ printf("************************\n"); printf("请输入你想选择的算法+-*/\n"); printf("************************\n");}int add(){ int data1; int data2; int y; printf("

2022-03-30 11:38:49 2105

原创 ++i与i++的区别

i++是先使用i当前的值再给i加1(此时i=i),下次再用到i时,i的值可不是原来的值了(下次i=i+1)。++i是先给i加1,当使用i的值时(i=i+1)。总结:i++(i是先使用再加一),++i(i是先加1再使用)。代码验证如下:#include<stdio.h>int A(int i){ return i++;}int B(int i){ return ++i;}int main(){ int i=2; int y1=A(2); printf("y1的值是

2022-03-30 09:41:01 22

原创 C语言中函数的意义

斜体样式提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档@**加粗样式**TOC为什么要使用函数在C语言的程序设计中我们为什么要使用函数呢?因为函数的存在可以使我们的主程序更加的简洁明了,增加程序的可读性。提示:以下是本篇文章正文内容,下面案例可供参考一、函数我们常见的定义函数有int 函数名类型,这类函数有返回值,多根据返回值判断函数的运行情况。还有一种函数则是void 函数名型,这类函数无返回值多适用于功能性函数,如把一个数组作为参数传进去,根据数组里面数的大小来

2022-03-30 08:22:37 998

原创 C语言中的各种结构

一、If else 结构#include<stdio.h>#include<stdlib.h>int main(){ int num1; printf("please input a num\n"); scanf("%d",&num1); if(num1>100) { printf("很棒\n"); printf("%d\n",(num1>100)); } else { printf("nonono!!!\n"); pr

2022-03-29 18:07:48 217

原创 C语言中,continue与break的区别

众所周知,这两者均为退出循环的意思,那退出哪一层循环呢?下面我们来验证一下。(1)当为continue退出循环时:#include<stdio.h>int main(){ int i,j; for(i=1;i<5;i++) { for(j=1;j<8;j++) { if((i*j)%2==0) { continue; } else { printf("%d\t",(i*j)); } } } retur

2022-03-29 17:20:10 358

原创 C语言中各种细枝末节知识

1.变量三要素(1)变量类型可用sizeof计算各个变量的大小。int:4字节 float:4字节double:8字节char:1字节void:无类型short:2字节long:4字节unsigned int:4字节口诀:短2长4双是8,字符长度要是1.(2)变量名不以数字开头,在刚定义时就申请了内存空间了。(3)变量值变量名存的真实的值2.输入与输出scanf("...

2022-03-29 15:39:38 467

原创 解读C程序基本框架

下面我们来解读解读C语言的基本框架:#include<stdio.h>//在运行时将这里的stdio.h换为一大段的库函数#include<stdlib.h>int main(){ printf("shuai\n");//在显示端打印shuai system("pause");//system是运行windows命令 return 0; }很多小伙伴会好奇这些个陌生的字母到底有什么作用呢?下面我们来一一解读:#include<stdio.h>:

2022-03-29 09:41:52 303

原创 C语言的编译及运行

一、使用的软件今后使用notepad++编辑器,配合cmd命令窗口对代码进行编译运行。二、如何使用gcc编辑器(1)输入cmd命令进入命令窗口。在windows系统中,一般默认打开命令提示符后,其初始路径为X:\users\用户名。接着输入 cd Desktop,进入到桌面,输入cd Notepad++进入到桌面上的Notepad++文件夹。(2)光进入到文件夹里面没有程序怎么办呢?首先我们双击打开Notepad++,写一段像诗一样的代码。#include<stdio.h>#inc

2022-03-29 09:14:05 1479

原创 如何学好C语言

如何学好C语言

2022-03-29 08:48:30 8

空空如也

空空如也

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

TA关注的人

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