自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小杨的博客

记录自己的学习!当做笔记

  • 博客(32)
  • 问答 (5)
  • 收藏
  • 关注

原创 2023蓝桥杯嵌入式14届程序题

2023蓝桥杯嵌入式比赛14届

2023-04-12 21:10:48 1371 1

原创 51单片机-直流电机

直流电机是指能将直流电能转换成机械能(直流电动机)或将机械能转换成直流电能(直流发电机)的旋转电机。它是能实现直流电能和机械能互相转换的电机。当它作电动机运行时是直流电动机,将电能转换为机械能;作发电机运行时是直流发电机,将机械能转换为电能。直流电机的结构应由定子和转子两大部分组成。直流电机运行时静止不动的部分称为定子;运行时转动的部分称为转子。直流电机没有正负之分,在两端加上直流电就能工作。需要知道直流电机的额定电压和额定功率,不能使之长时间超负荷运作。在交换接线后,可以形成正反转。其内部相当于非

2022-03-31 14:16:37 6394

原创 c++~第12课-----STL---array与vector

STL基本概念STL(Standard Template Library,标准模板库)STL从广义上分为:容器(container),算法(algorithm),迭代器(iterator) 容器和算法之间通过迭代器进行无缝连接 STL几乎所有的代码都采用了模板类或者模板函数STL六大组件容器:各种数据结构,如vector,list,deque,set,map等,用来存放数据 算法:各种常用的算法,如sort,find,copy,for_each等 迭代器:扮演了容器和算法之间的胶合剂

2022-02-12 10:04:45 862

原创 案例~c++模板-----数组排序、数组类封装

利用模板将char类型数组和int类型数组进行排序#include <iostream>#include <string>#include <fstream>//包含头文件using namespace std;/* 实现通用 对数组进行排序的函数 规则:从大到小 算法:选择排序 测试:char数组、int数组*///元素交换模板template<typename T>void mySwap(T& a, T& b)

2022-02-10 15:08:06 747

原创 c++~第11课-----模板

目录模板的概念函数模板函数模板注意事项普通函数与函数模板区别普通函数与函数模板的调用规则模板的局限性类模板类模板例子类模板和函数模板区别类模板中成员函数创建时机类模板对象做函数参数类模板与继承类模板分文件编写类模板与友元类模板特化模板的概念模板就是建立通用的模具,大大提高复用性模板不可以直接使用,它只是一个框架 模板的通用并不是万能的 c++提供两种模板机制:函数模板和类模板函数模板函数模板的作用:建立一个通用函数,其函数返回

2022-02-10 11:07:16 335

原创 c++~管理系统(链表实现)

node.h#pragma onceclass MM;//存放数据class Node{public: Node(); Node(MM* data); Node(MM* data, Node* next); Node*& getNext();//接口 MM*& getData();//接口protected: MM *data; Node* next;};node.cpp#include "node.h"#include "mm.h"...

2022-02-08 22:23:49 785

原创 C++第10课-----异常处理

目录基本的异常处理异常处理中的传参标准库中的异常类自定义异常类基本的异常处理异常处理机制:暂缓问题处理,不在当前函数中处理,在他调用者中处理 什么是异常? 任何东西都可以认为是异常,错误只是异常中的一种 异常一旦抛出,不做处理,如果引发中断,会调用默认abort终止程序 捕获和处理异常①throw 抛出异常(可以理解为返回值,值是任何类型都可以,是我们处理异常一个参照)②try(检查,捕获)③catch(处理异常)由于catch(...)能匹配任何类型的异常,它.

2022-02-08 11:49:49 732

原创 c++~职工管理系统(数组实现)

main.cpp#include <iostream>using namespace std;#include "staff.h"#include "worker.h"#include "common.h"#include "manager.h"#include "boss.h"int main(){ //实例化管理者对象 WorkerManager wm; int choice = 0;//存储用户的选项 while (true) { //调用成员..

2022-02-08 09:04:33 768

原创 c++~第9课-----文件操作

文件操作包含头文件<fstream> 文件类型分两种:①文本文件:文件以文本的ASCII码形式存储在计算机中②二进制文件:文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们文本文件写文件步骤如下:①包含头文件#include <fstream>②创建流对象ofstream ofs;③打开文件ofs.open("文件路径",打开方式);④写数据ofs << "写入的数据";⑤关闭文件ofs.close();#include &

2022-02-06 22:25:41 569

原创 案例~c++多态思想(制作饮品)

制作饮品#include <iostream>#include <string>using namespace std;class Drink{public: //煮水 virtual void Boil() = 0; //冲泡 virtual void Brew() = 0; //倒入杯子 virtual void PutInCap() = 0; //加入辅料 virtual void Accessory() = 0; //制作饮品 virtu

2022-02-06 16:20:19 278

原创 案例~c++多态(电脑组装)

电脑组装#include <iostream>#include <string>using namespace std;//抽象不同零件类//抽象CPU类class CPU{public: //抽象的计算函数 virtual void calculate() = 0;};//抽象显卡类class VideoCard{public: //抽象的显示函数 virtual void display() = 0;};//抽象内存条类class Me

2022-02-06 16:18:10 269

原创 案例~c++多态思想(计算加减乘除例子)

普通写法#include <iostream>#include <string>using namespace std;//普通写法class Counter{public: int Count(string symbol) { if (symbol == "+") { return num1 + num2; } else if (symbol == "-") { return num1 - num2; } else if

2022-02-06 14:01:46 275

原创 c++~第8课-----虚函数和多态

目录虚函数和虚函数表虚函数和多态纯虚函数和ADT虚析构函数override和finalc++类型转换虚函数和虚函数表什么是虚函数?用virtual修饰的成员函数叫做虚函数 虚函数对于类的影响增加一个指针的内存,32位4个字节,64位8个字节虚函数表就是一个指针存储所有虚函数的首地址#include <iostream>#include <string>using namespace std;class A{p...

2022-02-06 12:13:36 324

原创 c++~第7课-----继承和派生

继承方式与权限问题继承的写法: 父类也称为基类;子类也称为派生类 继承的实质:父类的数据和成员子类中有一份 权限问题:继承方式只会增强父类属性在子类中的权限显示class 子类 :继承方式 父类#include <iostream>#include <string>using namespace std;//父类class parent{public: int a; //接口 int& getNum() {.

2022-02-05 11:25:46 308

原创 c++~第6课-----类的组合

以另一个类的对象为数据成员构造函数的写法,必须采用初始化参数列表的写法#include<iostream>#include <string>using namespace std;class MM{public: MM(string name,int age) :name(name),age(age){} void print() { cout << name << " " << age << endl;

2022-02-04 10:59:25 344

原创 c++~第5课-----运算符重载

运算符重载概念:运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。 运算符的实质:运算符重载的实质本身就是函数调用 运算符重载函数的写法:函数返回值 函数名(函数参数) 五个不能重载的运算符:①.(成员访问运算符)②*(成员指针访问运算符)③::(域运算符)④sizeof(大小运算符)⑤? : (条件运算符)函数返回值:运算完成后的值决定的函数名 :operator加上重载运算符组成函数名参数 :看运算符的操作数,具体...

2022-02-03 14:33:10 580

原创 c++~第4课-----特殊成员

const成员const数据成员const类型变量是不可以修改,只读模式必须采用初始化参数列表方式初始化const成员函数写法上,const写在函数后面常成员函数是不能够修改数据成员,只读数据成员常成员函数可以和普通函数同时存在普通对象和常成员函数同时存在,普通对象优先调用普通函数普通对象可以调用常成员函数//同时存在class MM{ void print() { //num = 0;//错误,不能修改只读模式 cout <<"普通函数"

2022-02-02 15:23:59 196

原创 c++~第3课-----构造函数

目录构造函数概念:构造有参,无参,重载函数初始化列表析构函数:拷贝构造函数深浅拷贝构造和析构顺序问题c++结构体:构造函数概念:1、构造函数概念一个类的对象被创建的时候,编译系统对象分配内存空间,并自动调用该构造函数,由构造函数完成成员的初始化工作。因此,构造函数的核心作用就是,初始化对象的数据成员构造函数长什么样的?函数名和类名相同没有返回值(连void也没有)如果不写构造函数,任何类中都存在一个默认的构造函数默认的构造函数是无参的。...

2022-02-01 20:19:09 408

原创 c++~第2课-----类和对象

类和对象的基本概念:什么是类?一系列事物的抽象,万物皆可为类。 属性:事物的特征--->数据类型描述 行为:事物的操作--->函数描述 类的特点:封装,继承/派生,多态 C++的struct是兼容C语言的,所以C++的struct可以当作结构体去使用,另外struct还可以用来定义类,和class定义类是一样的,区别是struct定义类默认访问权限是公有的,class定义类默认访问权限是私有的什么是对象?类的具体化,类的实例化.类的定义:创建语法://创建一个类

2022-01-31 16:22:53 768

原创 C++~第1课-----c和c++区别

头文件:1.c++当中头文件可以直接采用类名的方式直接包含,不需要.h2.如果想要包含C语言标准库中的头文件,可以采用.h方式包含,也可以采用去掉.h直接在头文件前面加个c (例如:<cstring>)3.包含自定义头文件,不可以采用缺少.h的方式写法(例如:"myhead.h")入口函数:1.c++中只支持int返回值类型主函数2.c++中主函数的参数没什么要求,可以写也可以不写。命名空间:#include <iostream>//标准c++头文

2022-01-31 10:50:32 314 1

原创 数据结构~树

二叉树基本概念:分类:1.空的二叉树:就结构体指针 tree=NULL2.只有根节点的二叉树 (只有一个结点)3.只有左子树或者右子树的二叉树4.左右子树都存在:完全二叉树,满二叉树(编号是按顺序的)注:红色的点是父节点,绿色的是孩节点(孩节点/2=父节点)代码:别名:LPSTR:char* LPCSTR: const char* (定义别名用LP表示指针)...

2022-01-29 18:49:56 611

原创 数据结构~栈,队列,顺序表,哈希

目录链式栈:数组栈:寻路问题:队列:线性结构:顺序表:哈希结构:栈结构:FILO 先进后出,后来居上的一种存储方式栈的基本属性:栈内存 ,栈顶标记,栈的当前元素个数栈的基本操作:入栈,出栈,获取栈顶元素:栈顶标记的元素(头插法)万金油操作:判断是否为NULL,当前栈中数据个数根据实现方式,栈分为两种方式:链式栈,数组栈队列:FIFO 先进先出,排队的方式(尾插法)链式栈:#include <stdio.h>#in..

2022-01-28 16:25:52 416

原创 C语言~约瑟夫环问题(数组和数学公式)

n个人围成一圈,从第一个人开始报数,数到 m的人出列,再由下一个人重新从1开始报数,数到 m的人再出圈,依次类推,直到所有的人都出圈,请输出依次出圈人的编号。数组解决:#include <stdio.h>#include <string.h>#include <stdlib.h>int main(){ int n, m, remin, index, dele[300], flag[300] = { 0 }; scanf("%d%d", &am..

2022-01-26 21:32:58 698

原创 C语言~无头链表,双向链表,双向循环链表

目录无头链表:双向链表:双向循环链表:无头链表:头插:#include <stdio.h>#include <string.h>#include <stdlib.h>//使用二级指针方法//无头链表:第一个节点存放数据struct Node{ int data; struct Node* next;};//创建节点struct Node* createNode(int data){ struct Node.

2022-01-26 12:08:12 972

原创 C语言~日常小练习

首先安装Wireshark软件,安装网站:https://www.wireshark.org/about-sharkfest.html然后安装打开:可能这个弹窗会弹很多次,这是正常的一直点是就行了,点完进去就是看到很多接口,有波浪状的就行建议顺便下载Notepad++,这个软件还是不错的:然后编写一个C代码帮我们从抓的数据找出ip地址#include <stdio.h>#include <string.h>#include <s

2022-01-25 20:33:35 64

原创 黑窗口~学生信息管理系统(2000行代码)

先看效果:https://b23.tv/xS7WBvJ目录声明函数:头文件,预处理,全局变量代码:main函数:登陆界面:登陆界面需要用到的链表结构体:获取控制台函数,可以指定位置显示:查找账号,密码函数:账号防呆,密码防呆函数:保存到文件,和从文件提取数据函数:修改密码函数:登陆功能实现:注册功能实现:(后门)管理员界面:管理员界面的数据显示:权限函数:(只限制学生就行,老师和管理员无区别):日志文件:(可以知道哪行出现问题)隐藏

2022-01-25 14:53:45 1174 7

原创 C语言~单链表

动态创建一个链表:动态内存申请+模块化设计1.创建链表(创建一个表头表示整个链表)2.创建结点3.插入结点4.删除结点5.打印遍历链表(测试)①创建 存放数据域和指针域的结构体struct Node { int data; struct Node* next;};②创建表头表头不用初始化数据域struct Node* createlist(){ struct Node* headNode = (struct Node*)malloc(sizeof(s

2022-01-19 10:45:07 791

原创 C语言~指针进阶(1)

一维数组指针:数组名:可以代表首地址,那么咱们就可以用指针指向数组。虽然数组名可以代表一个元素首地址,但是它是个常量,不能自增或者自减!但是可以创建一个指针指向数组,然后++。int arr[10];arr++; // error E0137 表达式必须是可修改的左值 // error C2105 “++”需要左值printf("%p \n", arr); //1 004FF810,代表第一个元素地址printf("%p \n", &arr);//2 0

2022-01-18 15:11:32 1598

原创 扫雷简单版

/*********************程序源码***********************************/#include <stdio.h>#include <string.h>#include <stdlib.h>#include <easyx.h>#include <time.h>#include <tool.h>#include <stdbool.h>#include <co.

2022-01-18 09:23:09 1712

原创 51单片机-独立按键,矩阵按键,点阵

独立按键:实现原理是通过轻触按键内部的金属弹片受力弹动来实现接通和断开。“1,2”和“3,4”管脚之间距离短,初始不导通,“1,3”和“2,4”管脚之间距离长,初始值导通。当按键按下时,距离短的会变为导通,距离长的会变为不导通,所以就可以利用按键这一特性来控制其他的事物。例如管脚1接单片机的一个引脚,管脚2接地。当按键被按下时,就会给这个引脚一个低电平。如果不按,单片机的这个引脚默认的是高电平。但是按键一般都会抖动,所以要进行消抖:硬件消抖和软件消抖硬件消...

2022-01-11 09:59:08 2912

原创 51单片机~蜂鸣器,数码管的使用

蜂鸣器:是一种一体化结构的电子讯响器,采用直流电压供电,分为压电式蜂鸣器和电磁式蜂鸣器(无源和有源),51开发板一般是压电式的。根据网上查的资料可以知道无源和有源的区别:⑴有无震荡源无源这里的“源”不是指电源,而是指震荡源。也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫。而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。⑵价格不同有源蜂鸣器往往比无源蜂鸣器贵,就是因为里面多个震荡电路。怎么区分?有绿色电路板的一种是无源蜂鸣器,没有电路板而用黑胶封闭的一种是有源蜂鸣器。

2022-01-09 21:04:15 2351

原创 第一次写博客----点亮LED并实现流水灯

今天是寒假的第二天,之前通过某宝买了51单片机板想学学单片机但是在校没时间现在放寒假了终于可以尽情的学习单片机了虽然大二才有单片机课程,但是我想提前学习,昨天边看教程边耍,感觉还不错。由于没有数电模电基础所以电路看不懂视频的人说不会影响只要有C语言基础就能,等以后学了数电模电再看前面的电路视频不迟。记录一下昨天学过的东西:点亮LED还是挺简单的,因为是正极流进来所以要给P20低电平就行了#include "reg52.h"sbit LED1=P2^0;void main(){ .

2022-01-09 12:26:57 619

空空如也

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

TA关注的人

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