自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

木森林的博客

木木木木木木

  • 博客(55)
  • 资源 (3)
  • 收藏
  • 关注

原创 【通用】Linux,VSCode,IDEA,Eclipse等资源相对位置

不论是IDEA、Linux、VSCode、cmd等等吧,都遵循这个规则

2023-12-15 14:15:38 413

原创 【苍穹外卖】个人小程序模拟实现微信支付

本文仅适用于想要实现苍穹外卖完整流程的,并没有真正实现微信支付功能。

2023-09-04 21:50:23 3655 31

原创 【操作日志原理】自定义注解+AOP

在SpringBoot中实现自定义注解:( 声明注解的作用级别以及保留域 )

2023-08-04 21:08:00 361

原创 SpringBoot(2.7.x)中使用PageHelper

这种情况下由于 param1 存在 null 的情况,就会导致 PageHelper 生产了一个分页参数,但是没有被消费,这个参数 就会一直保留在这个线程上。当这个线程再次被使用时,就可能导致不该分页的方法去消费这个分页参数,这就产生了莫名其妙的分页。这么写很不好看,而且没有必要。这种写法就能保证安全。

2023-08-03 20:36:26 1246

原创 Unable to reload Maven project

我当时IDEA是2020版,Maven是3.8.5.原因就是IDEA的版本与Maven的版本冲突。后来把Maven换成3.6.3版本就可以了。

2023-07-01 13:17:41 632

原创 【源码角度】为什么AQS这样设计

先初始化“是否发生过中断的标识”为 false。然后尝试获取锁,如果获取锁失败则会调用parkAndCheckInterrupt())方法 ,如果parkAndCheckInterrupt())返回了 true则证明发生过中断,将中断标记置为 true,最后会返回这个中断标记。

2023-05-02 08:43:13 779 1

原创 用PyCharm和Anaconda搭建强化学习环境

不需要魔法上网。GitHub虽然是外网,但可以直接访问;不需要学习克隆,直接下载压缩包即可。如果“魔法上网”和“克隆”这两个概念没听说过,完全不要紧,本文非必须。

2023-04-25 21:31:02 2244

原创 AndroidStudio手机开发——校园广告APP

Android手机移动开发课设。是一款校园广告APP。

2022-06-29 21:21:36 1555

原创 编译原理 ML语言的初次接触(龙书)

ML语言支持嵌套的函数声明。也就是说将函数作为参数,并把函数当作值返回。直接上代码:fun main(){ let fun fib0(n) = let fun fib1(n) = let fun fib2(n) = fib1(n-1) + fib2(n-2) in .

2022-02-12 11:13:14 1343 1

原创 计网课设(智能酒店客房)

网盘源码链接,提取码:jw67

2022-02-03 17:06:03 4271

原创 求SELECT集,改写文法,写预测分析表

SELECT集和之前讲过的FIRST集和FOLLOW集有些不同。给出文法如下:S->ABcA->a|εB->b|ε我们可以求FOLLOW(S)或者FOLLOW(ABc),同样也可以求FIRST(S),FIRST(ABc)。但是不能求SELECT(S),SELECT(ABc)这种形式,这是不对的。应该写成SELECT(S->ABc)。所以不同点就是,FOLLOW集和FIRST集是对产生式箭头的左部或右部进行求解;而SELECT集是对整个产生式进行求解。同样,还是先讲.

2022-01-24 21:32:27 5369 12

原创 编译原理(龙书第二版)--怎么求FOLLOW集

提示:学习本文章之前,建议先学会FIRST集。怎么求FIRST集

2022-01-23 17:04:11 12769 29

原创 c语言程序实现递归向下分析及语法分析树并打印

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入#include <stdio.h>#define ERROR -1 //程

2022-01-22 15:45:41 2329 1

原创 编译原理(龙书第二版)--怎么求FIRST集

一.怎么求FIRST集给出文法如下:S->ABCA->a|εB->b|ε先明确一些概念,“产生式的头”就是箭头左边的大写字母,“产生式的体”就是箭头右侧的一堆如果要求S的FIRST集,首先找到文法中所有箭头左边的大写字母是S的式子,本题中只有产生式S->ABC符合,然后分析箭头右边那一堆,从...

2022-01-22 15:42:40 4036 15

原创 汇编语言入门学习成果万字总结

(汇编环境是基于DosBox环境下的8086汇编,字母不区分大小写,注释写在;后面)一:简述一下DosBox中debug的使用首先将masn文件放在D盘目录下,然后打开DosBox,先输入一下内容挂接mount c d:\masmc:(注意每次重新打开DosBox都要重新输入上面的代码)然后介绍三种基本用法,都是在上面的基础上进行的。用法一(对已有exe文件,对其进行debug调试):在DosBox中,接着输入下面内容对某个exe文件进行调试:debug 文件名.exe用法二(现在不存

2021-07-29 14:48:43 1115

原创 操作系统课程设计--主存空间的分配与回收

1.项目描述:主存是中央处理器能够直接存取指令和数据的存储器。能否合理而有效地使用它,在很大程度上将影响整个计算机系统的性能。设计模拟可变分区管理方式中使用首次和最佳适应以及最差适应算法实现主存的分配与回收。帮助理解在不同的存储管理方式下如何实现主存空间的分配和回收。2.系统结构设计:3.系统程序实现:#include<stdio.h>#include<stdlib.h>#define Max 1024int memoryLen = Max; //内存空间大小

2021-07-23 10:59:30 1745

原创 汇编语言课程设计--计算机钢琴程序

题目:计算机钢琴程序1.题目要求:本项目编写程序,程序运行时使PC机成为一架可弹奏的钢琴。1)程序首先加载的是菜单界面,有3个功能选项:1是音乐演奏,2是钢琴,ctrl+c是退出程序。2)当选择1号功能时,会播放一首音乐,音乐播放完自动回到菜单界面。3)当选择2号功能时,进入钢琴界面,按下数字键1-8时,依次发出8个音调。在钢琴界面时,按下ESC键会返回到菜单界面。4)在键盘输入非功能键时会提示输入错误。5)按CTRL和C组合键则退出程序。(字母c不区分大小写)2.题目分析:对于题目要求中

2021-07-23 10:48:16 2077

原创 static变量与auto变量的区别

static变量:它储存在全局数据区,每次只初始化一次,等程序结束时方才释放内存。auto变量:则是每次调用一次函数重新对相应的变量初始化一次。先看static:#include <stdio.h>int main(){ int i,a; a=2; for(i=0;i<3;i++) { printf("int a变量为 %d \n",a); a++; {//注意这里的花括号不可以省略,不然分不清两个a

2021-02-25 11:00:06 1585

原创 谣言的传播

题目:总有一些人在造谣。现在有n个人,编号分别为1—n。造谣者向他们传播了m次谣言,每个谣言的影响范围不同。每次造谣者选中一个人A,若谣言的影响范围为B,则A会告诉所有与它编号的差不超过B的人。你的任务是计算每个人最后收到的是第几次谣言。输入描述:第1行输入n和m,接下来m行,每行两个数A 、B输出描述:输出一行n个数,第i个数表示编号位i的人收到的我最后一次谣言。没有收到谣言输出0样例输入:10 57 24 52 16 23 1样例输出:3 5 5 5 4 4 4 4 2 0

2021-01-31 16:30:23 481

原创 给指针变量赋初值了,程序还是运行不了?看看是不是这个原因

这个问题应该叫做“指针空引用”,产生的原因是因为程序中引用了赋值为空的空指针。错误代码如下:#include <stdio.h>#include <stdlib.h>int* twoSum(int* nums, int numsSize, int target, int* returnSize){ int i,j; static int a[2]={0}; for(i=0;i<numsSize-1;i++) { for

2021-01-30 17:17:23 435

原创 为什么有时函数里声明变量时要加上static?

比如这个代码:任意给定2个整数a,b,计算a+b,a*b,a%b#include<stdio.h>int *arithmetic(int a,int b){ static int result[3]; result[0]=a+b; result[1]=a*b; result[2]=a%b; return result;//返回数组地址}int main(){ int *p; int a,b,i; scanf("%d %d",&a

2021-01-30 12:35:34 1689 2

原创 LeetCode-1-两数之和(c语言)

题目如下:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。你可以按任意顺序返回答案。int* twoSum(int* nums, int numsSize, int target, int* returnSize){}以上就是题目内容,接下来分析题目。首先,可以明确题目只要求我们编写一个名为twoSum的函数。函数中有4个参数,其中nu

2021-01-29 20:28:26 584 1

原创 离散数学(第2版)屈婉玲版知识点小结(用于个人快速复习)-1

前言:本文知识点结合课本对应例题去巩固,效果更佳。另外,学习数学类科目最高效的学习方法是先看课本例题而不是从第一页逐字逐句的细看,例题中看不懂的地方再仔细查找翻看书中对应知识点,例题全看懂后,还要把课后习题做完,如果做题时有不懂的地方,也去前面查找翻看对应知识点,这样通过做题基本就学习了本章所有重点第1部分----数理逻辑1.命题的定义:非真即假的陈述句。(所以说疑问句,感叹句,祈使句,悖论都不是命题)2.真值是命题的判断结果,真值只有两个值:真或假(这里不要误认为真值只代表结果为真的情况),任何命题

2021-01-27 16:01:14 5895 2

原创 不懂时间复杂度?先记住这4个易混的时间复杂度代码形式

仔细对比这4组代码1.s=0;while(s<n){ i++: s=s+i;//这句代码影响时间复杂度(每次循环加一个累加的变量)}时间复杂度为O(√n)。i=1,k=100;while(i<=n)//这个n对时间复杂度影响不大,看成任一常数即可{ k+=1; i+=2;//这句代码影响时间复杂度(每次循环加上常量2)}时间复杂度为O(n)。x=2;while(x<(n/2)) x=2*x;//这句代码影响时间复杂度(每次循环乘常量2)

2021-01-21 14:35:37 1617 3

原创 课设----学生成绩管理系统(进阶)

学生成绩管理是学校教务部门日常工作的重要组成部分,其处理信息量很大。本项目是对学生成绩管理的简单模拟,用菜单选择方式完成下列功能:输入学生数据;输出学生数据;学生数据查询;添加学生数据;修改学生数据;删除学生数据。本项目的实质是完成对学生成绩信息的建立、查找、插入、修改、删除等功能,可以首先定义项目的数据结构,然后将每功能写成一个函数来完成对数据的操作,最后完成主函数以验证各个函数功能并得出运行结果#include<stdio.h>#include<stdlib.h>#inc

2021-01-19 16:25:22 1041

原创 c语言经典例题练习-5(比赛匹配对手)

题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。分析:关键点有两个。首先要避免出现队内成员比赛的情况,其次要符合题目中a和c说的话。代码及运行结果如下:#include<stdio.h>int main(){ int i,j,k; for(i='x';i<='z';i++)//3重循环代表a,b,c3个人 {

2020-08-22 15:42:19 776 1

原创 c语言经典例题练习-4(分解质因数)

题目:输入一个数a,将这个数分解质因数。(比如:300=2*2*3*5*5,2,3,5都是质数且都是300的因子)分析:直接从第一个质数(素数)2开始,先判断2是不是该数的因子,如果是,还要判断该数能分解成几个2,比如300就可以分解出两个质因子2。然后再判断下一个数3是不是质因子并且能分解出几个3,然后是5(你可能想问为什么不是4,直接跳到5呢?因为如果能被4整除,那么一定能被2整除,另外也不难推出,这之后的因子也都是素数),同理,判断完5之后是7(而不是6,6既能被2整除,也能被3整除)。所以,我

2020-08-21 19:34:33 209

原创 c语言经典例题练习-3(最大公约数和最小公倍数)

题目:输入两个正整数,分别求出他们的最大公约数和最小公倍数并输出。分析:求最大公约数用辗转相除法:比如有两个正整数a,b。那么a和b的最大公约数等于b和c的最大公约数,而c表示余数:c=a%b。求最小公倍数的方法是:两个数的乘积恰好等于它们最大公约数和最小公倍数的乘积,而我们只要求出最大公约数,通过这个等式就可以求出代码及运行结果如下:#include<stdio.h>int main(){ int a,b,c,tmp,mul; scanf("%d %d",&amp

2020-08-21 17:33:24 586

原创 c语言经典例题练习-2(完全平方数)

题目:一个正整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?分析:首先强调一下,完全平方数和完全数不是一个 概念,完全平方数:若一个数能写成某一个数平方的形式,那么这个数就是完全平方数,比如25=5*5,36=6*6,那么25,36都是完全平方数,另外虽然25=(-5)*(-5),但对于本题不需要区分正负,因为我们本题的关键是用的平方数,而不是平方根,所以本题不考虑负平方根的情况;而完全数(又叫完数):它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等

2020-08-18 17:51:20 2436

原创 c语言经典例题练习-1

题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?代码及运行结果如下:#include<stdio.h>int main(){ int i,j,k,n=0; for(i=1;i<5;i++) { for(j=1;j<5;j++) { for (k=1;k<5;k++) { if (i!=k&&am

2020-08-17 17:08:03 101

原创 c语言知识点温习-3-指针

1.关于指针的零碎知识点可以这样理解指针,前面学过整型,浮点型,字符型这些数据类型。整型存放整数,浮点型存放小数,字符型存放字符,而指针存放变量的地址,可以通过这个地址间接访问变量。指针属于无符号的整数,占4个字节。定义:指针变量的类型就是它指向的变量的类型。所以指针变量的定义形式如下:<指针变量的类型><*变量名>,比如int *p;但定义指针变量时最好不要这样去定义:int *p;而是写成这样的形式:int *p=NULL。指针变量本身也占有一定的空间,并且也有自己的内存

2020-08-15 21:52:03 232

原创 (YTU)问题 G: 字符串的修改(串)

题目描述:一个字符串s、一个字符串t,判断t是否是s的子串,若是则将s中所有出现了t串的地方换成指定的字符或字符串p(p的字符数可以不和t相同),若不是,则输出NO输入:一个字符串s、一个字符串t,要换的字符或字符串输出:输出修改后的s串样例输入:asdfasdf132saf样例输出:NO代码及运行结果如下:#include <stdio.h>#include <stdlib.h>#include <string.h>int main()

2020-08-09 22:02:41 666

原创 切面条问题(思路,原理详解)

题目如下:一根高筋拉面,中间切一刀,可以得到2根面条。如果先对折1次,中间切一刀,可以得到3根面条。如果连续对折2次,中间切一刀,可以得到5根面条。那么,连续对折10次,中间切一刀,会得到多少面条呢?对于本题的分析见下图图解:知道了这个规律,那写程序还不是手到擒来,直接硬套代码及运行结果如下!#include <stdio.h>#include<math.h>int main(){ int n; double answer; scanf

2020-08-08 18:52:38 2054 2

原创 写一个函数,求两数的商,并保留指定位数的小数

a/b计算商固然简单方便,可如果商是无限小数或很长位数小数的情况,你该如何求指定位数的商呢?(代码中不能使用浮点型变量)编写函数void div(int m,int n,int digits), 求两个整数m和n的商,结果保留digits位小数。#includevoid div(int m,int n,int digits);int main(){int m,n,digits;scanf("%d %d %d",&m,&n,&digits);div(m,n,digits)

2020-08-08 12:06:42 2547

原创 c语言知识点温习-2-递归

第一道题:输入一个正整数,用递归逆序输出这个数,比如输入一个数12345,那么输出结果应该是54321.代码及运行结果如下:#include <stdio.h>void inverted(int a){ if(a<10)//这是这个递归函数结束的条件 printf("%d",a); else { printf("%d",a%10); inverted(a/10); }}int main(){

2020-08-07 22:04:46 193

原创 给定任意一个正整数N(N<=30),打印出N行的杨辉三角形

给定一个正整数N,要求打印出N行的杨辉三角形。分析:整个杨辉三角形可以放到一个二维数组中,数字与数字之间的间隙可以看成当作一个0放在数组中。如果我们输出杨辉三角形前4行,那么每行需要的数组长度(也就是最后一行第四行需要的数组长度)为24-1=7,以此类推,如果是输出杨辉三角形前50行,我们通过规律可知第50行需要的数组大小为250-1=99.因为杨辉三角形每个数字都等于上一行左右两个相邻数字之和,而我们又把数组中的每个元素都赋值为0,所那么我们只给出第一行的1在数组中的位置即可。代码及运行结果如下:

2020-08-06 17:20:43 5372 1

原创 输入一个字符串,逆序并输出

输入一个字符串,然后逆序这个字符串并输出代码及运行结果如下:#include <stdio.h>#include <string.h>int main(){ char a[20],tmp; int len,i,j; scanf("%s",a); len=strlen(a); for(i=0,j=len-1;i<len/2;i++,j--) { tmp=a[i]; a[i]=a[j];

2020-08-05 22:31:07 8404

原创 指定数组大小,逆时针旋转数组中的元素

将一个4×4的数组进行逆时针旋转90度后输出,要求原始数组的每个数据都不能相同。代码及运行结果如下:法一:#include <stdio.h>int main(){ int a[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}; int b[4][4]; int i,j; for(i=0;i<4;i++) { for(j=0;j<4;j++)

2020-08-04 11:00:05 206

原创 c语言知识点温习-1-零碎知识点

%d代表十进制有符号整数,%u表示十进制无符号整数, %o表示八进制数据,%x表示十六进制数,%s代表字符串,%c代表单个字符,%f代表float型小数,%lf代表double型小数,%E科学计数法表示的小数,%p指针2) 输出定宽数据:%6d,%06d,%8f,%10s,如果要输出的数据超出宽度,则按实际输出;如果不足宽度。右对齐,左补空格;指定宽度前加上0表示用0补位输出带有正号的数:%+d左对齐:%-10d,%-10.2f;输出数据左对齐,不足宽度时右补空格小数,字符串宽度和小数位:%.2f.

2020-08-03 12:27:13 346

原创 找1000以内的完数

完数,是一些特殊的自然数,它所有的真因子(即除了自身以外的因子)的和,恰好等于它本身。(所以这里说明一下,1不是完数,因为1只有自身这一个因子)第一个完全数是6,第二个完全数是28,第三个完全数是496,后面的完全数还有8128、33550336等等。所以程序循环直接从数字2开始判断代码及运行结果如下:#include <stdio.h>int main(){ int i,j,m,k,sum; int a[35];//这里数组大小不能太小,因为840有32个因数,是1

2020-08-02 19:57:07 883

汇编语言-课程设计-文档

汇编语言-课程设计-文档

2023-12-17

Android手机开发资源

Android手机开发资源

2022-06-29

Follow集问题的答案

答案仅供参考,如果文章中有不清楚的地方,还请指正。

2022-05-25

用于关于时间复杂度的博文答疑

IMG_20210913_181801.jpg

2021-09-13

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

TA关注的人

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