- 博客(49)
- 收藏
- 关注
原创 python3.9+wxPython设计的一个简单的计算器
键盘布局与逻辑分离,添加删除功能一般功能或修改键盘布局只需要更改词典的顺序即可。添加特殊功能时则需要将队对应的逻辑也写一下。运行环境:python3.9+wxPython4.2.1。按下R键,保留两位小数。
2024-08-14 22:00:45 419
原创 魔兽世界(WOW)诺莫瑞根卡片任务链ASCII码解码(python)
彩色穿孔卡片上的编码: Message to Castpipe: your laundy’s ready for pickup.红色穿孔卡片上的编码: Help!白色卡片上的编码: Thrall and Jaina sitting in a tree, K-I-S-S-I-N-G。C机器上的编码: Recipe: Mechanical Chicken Soup。B机器完成后的编码: The Lich King lives!B机器上的编码: Gnomercy!
2023-06-08 19:19:31 1018
原创 基于有限状态机的身份证合法性检测程序(C语言)
这里的状态是当前字符的位置,读入后续字符©便是触发事件,F1-F5是五种出错状态,S是检测通过的状态。最后一位可以是字符X。
2023-04-01 16:12:59 312
原创 win10 环境变量及其作用大全
PROCESSOR_ARCHITECTURE: AMD64processor architecture解释: PROCESSOR_ARCHITECTURE 是一个 Windows 系统环境变量,它指示当前系统中运行的处理器的体系结构。如果该变量的值是 AMD64,则说明当前系统中的处理器是基于 x86-64 或 AMD64 体系结构的。 x86-64 是一种 64 位处理器架构,它是向后兼容的 x86 架构的一种扩展。AMD64 是 AMD 公司首先实现的 x86-64 架构,因此在一
2023-02-20 17:53:12 6508
原创 Mixing Heavyweight and Lightweight Components(Java awt 重量级组件与轻量级组件)
Mixing Heavyweight and Lightweight Components
2023-02-15 15:25:28 163
原创 快速排序的递归实现和非递归实现
一、快速排序的递归实现快速排序的思想是每次找到一个元素的位置,再在以这个元素分隔的两个子范围中分别再各自确定一个元素的位置,子子范围也是如此操作,当某个子范围只有一个元素或者没有元素时,便不再做任何操作。这是一个递归过程,递归退出的边界就是子范围中不存在元素或者只存在一个元素。基于这个思想,很容易便得到递归处理的代码:#include <cstdio>using namespace std;static void quickSort(int array[],int low,int
2021-02-19 22:34:30 2185
原创 SSM开发笔记-尚硅谷-佟刚-Spring4.0.0
1.Spring1.1 IOC控制反转,在Spring中的实现形式是依赖注入DI。例如,最直接的好处就是,假设一个人类对象有一个父亲对象,最初的话需要人类对象主动初始化父亲对象,而当父亲对象的构造方法发生变化后,人类对象也要做出改变,但是如果有了依赖注入,那么父亲类无论怎么该构造方法,都不需要人类做出修改,仅仅是在需要的时候注入即可。1.1.1 Spring核心包Spring的四个核心包:core、beans、context、expression日志包:commons-loggingappli
2021-01-13 18:15:12 576 1
原创 java多线程小例子——龟兔赛跑
一只兔子和一直乌龟进行赛跑,看谁先跑到100步。使用Thread.currentThread().isInterrupted()来判断当前线程是否被中断了。线程安全退出的代码范例为://如果当前线程没有被中断,则执行下面代码,当然也可以判断其他已存在的线程。if(!Thread.currentThread().isInterrupted()){ //自己可以使用Thread.currentThread().interrupt();方法来中断自己,当然也可以中断其他已存在的线程。 if(..
2020-12-30 00:57:42 446
原创 glibc2.32源码浅析 -- string.h(memcpy - 内存拷贝)
鉴于博主我是个汇编渣渣(底层逻辑是大佬们用汇编写的,淦),本文不是要深入探析memcpy的细节,而仅仅是在宏观层面上搞清楚这个函数的逻辑。如果有想搞清楚具体细节的友友们,我会在文章最下面贴上我写本文参考的文章,如果还想深入探究,最好是参阅书籍。函数原型:void *memcpy (void *dstpp, const void *srcpp, size_t len)函数作用:将srcpp指向内存的后面len个字节拷贝 到 以dstpp指向内存的后面len个字节中。既然是以字节为操作单位
2020-12-22 20:03:33 583
原创 glibc2.9源码分析 -- string.h(strncpy - 将一个字符串的前n个字符复制到另一个字符数组中)
这个函数的实现就是从头扫描源串,然后将前n个字符放入目标字符数组中。总体给人感觉是经过了深度优化的代码,主要有以下几点值得我们去学习:1.使用寄存器中间变量,提高运行效率。2.使用位移运算代替2的倍数的乘除运算,进一步提高运行效率。3.复制时循环体以4个字符为单位操作一次,减少小循环次数,又进一步提高运行效率。从源码的分析结果来看,这个函数在复制字符串的时候会做出以下几种行为:(设n代表要复制的字符数量。)1.源串的定义不是整个原始输入字符序列,而是原始输入字符序列中出现的第一个’\0’以及其
2020-12-21 01:07:53 1176
原创 glibc2.9源码分析 -- string.h(strcat - 连接两个字符串)
程序很短,程序的思路和我们平常写的是一样的,但是有些地方是经过了优化的,值得我们去学习。优化点1:中间变量使用寄存器变量,提高了程序运行效率。优化点2:最后一个循环巧妙地将最后地’\0’赋值给了目标串地尾部,不需要额外地语句再去管理最后的’\0’了。下面是加入了我思考的代码(英文部分是原作者的注释):#include <string.h>#include <memcopy.h>#undef strcat/* Append SRC on the end of DEST
2020-12-20 01:26:42 399 2
原创 PAT A1149 Dangerous Goods Packaging (25分)(C++)
实话实说,这个题目本身并不算是太难,主要考察散列表,题目的目标是获得更快的查找速度。下面博主就来说说我做这个题目的过程: 审完题,第一反应就是建立一个散列表来进行危险列表的存储,然后再逐个构建运输物品列表来进行判断。刚开始没有考虑到一个物品可以与多个物品发生反应,因此使用了一对一模式,结果错了一片,不过想想也是,于是就将对应模式改为了一对多,为了提高效率,map被我换成了一个大型数组,然后每个数组的元素是一个set。 列表建好了,就是核对每个运输列表是否合规了,首先使...
2020-11-22 00:58:45 342 1
原创 PAT A1104 Sum of Number Segments (20分)(果然20分的题目最可怕了-C++)
这个题目根本就不是一个编程题,硬说的话,当公务员考试的规律题还挺不错的。首先,我是把它当编程题做的,暴力求解,结果后两个点超时。然后,稍微优化了一下,修改成了二重循环,结果还是后面两个点超时。我陷入了沉思,这个题果然有坑,我想肯定有规律。于是我在草纸上列举了几个情况(为了方便就用1 2 3 4 5...代替了,题目中是不超过1的小数)。第一个例子输入41 2 3 4计算过程需要加的数字11 21 2 31 2 3 4 2 2 3 2 3 4 ...
2020-10-16 00:53:23 214 2
原创 PAT A1106 Lowest Price in Supply Chain (25分)(DFS另类解法)
首先说明一下,这个题目其实使用树的层序遍历或者图广度优先遍历是更好的解法。当然DFS加剪枝也是可以的。而下面这个是原始的DFS。它真的会不遗余力地遍历所有的分支。 但是,可能是由于PAT测试点的条件过于宽松,导致这种代码也全通了。 下面上代码(注意DFS过程中不能使用价格来进行判断,因为如果将经手利率设置为0,会导致输出所有的零售商,我第一次测试点4没过就是这么被坑了。)#define _CRT_SECURE_NO_WARNINGS#include &l...
2020-10-03 00:25:22 169
原创 C程序设计语言(第二版)习题5-9-使用指针访问二维数组
我们知道,二维数组是一维数组的数组的数组,因此如果我们想要使用指针访问二维数组中的某个元素,就需要首先找到这个元素属于二维数组中的哪一个一维数组,然后再确定这个元素在这个一维数组中的哪个位置即可,即如下形式: *(*(二维数组指针+行偏移)+列偏移)上面这个形式是和...
2020-09-23 21:57:33 479
原创 输出具有n个结点的所有不同的二叉树-增强前序遍历形式输出-C++
我们知道具有n个结点的不同的二叉树的数量是个(这是一个卡塔兰数),那么如何确定这些二叉树是什么样子的呢?下面是博主的思路: 我们还知道一个入栈序列的不同出栈序列的数量也是个,于是博主就想:这不是巧了么,既然他们的数量是一样的,而且均不相同,那么是不是可以构建一个映射,使得不同的出栈序列和不同的二叉树进行一一对应呢。 于是,在博主的做了深入的观察和思考后,发现对于其中一个出栈序列,其实和某个二叉树的中序遍历结果是相对应的,而经过进一步探索,发现入栈序列是所有...
2020-09-19 23:42:10 1068 1
原创 C程序设计语言(第二版)习题5-5-strncpy,strncat,strncmp-纯指针实现
GCC版本:gcc version 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC)void strncpy(register char *s,register char *t,register size_t n){ register char *st=t; //从t头部数到t+n的位置 while(t!=st+n){ //如果t的长度小于n,则提前结束了 if(!(*s++=*t)){ return; } t++; } *s='\0'
2020-09-13 23:47:31 167
原创 C程序设计语言(第二版)习题5-4-strend-纯指针实现
编译gcc版本:4.4.6 20120305 (Red Hat 4.4.6-4) (GCC)int strend(char *s,char *t){ //获取s的长度 char *ss=s; while(*s++!='\0'); size_t s_len=s-ss-1; //获取t的长度 char *st=t; while(*t++!='\0'); size_t t_len=t-st-1; //如果t的长度大于s的长度,则直接返回0 if(t_len>s_len){
2020-09-13 18:33:19 311
原创 寻找 有向图/无向图 所有环路的DFS暴力求解法(ps:C++代码,复杂度爆炸警告,生产环境慎用)
思路:1、DFS算法可以求解图中从一点到另一点的全部路径。2、通过枚举所有顶点的邻接点,然后通过DFS寻找枚举点到的所有路径来寻找环路。3、思路很简单,但是算法复杂度确实是太高了。下面上代码:#include <iostream>#include <vector>#include <algorithm>using namespace std;const int M = 100;int n, e, G[M][M];bool vis[M]
2020-09-08 17:27:13 1742 2
原创 PAT A1087 All Roads Lead to Rome (30分)(迪杰斯特拉变体应用,梅开二度)
这里只说明关键部分。有三个优先级,由高到低分别是:距离、高兴值、平均高兴值。距离即是最普通的Dijkstra所求的目标。高兴值是点权变体之一。平均高兴值可化为求最短路径中的最少结点路径,也属于点权变体之一。在更新结果的代码中,优先级高的更新的结果要更多。所有优先级低的更新时必须保证比它更高优先级的结果是一致的。下面放代码:(PS,怎么感觉最近这么多Dijkstra。。。)#define _CRT_SECURE_NO_WARNINGS#include<iostre
2020-09-03 18:22:37 136
原创 PAT A1111 Online Map(迪杰斯特拉变体应用) (30分)
首先感谢柳神(她的题解)根据柳神的思路,我自己写了一遍,分了不同的模块。显得更加条理一些第一步,建图。第二步,使用加边权变体迪杰斯特拉算法求解最短路中的花费时间最少的路径。第三步,使用加点权变体迪杰斯特拉算法求解最快路中的经由结点最少的路径。第四步,递归方式找出路径。第五步,根据路径的结果以不同的形式输出。代码:#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<sstream>u
2020-08-29 15:17:32 161
原创 PAT A1099 Build A Binary Search Tree(二叉树遍历方式的考查) (30分)
思路:第一步:建树第二步:将输入的结点升序排序第三步:中序遍历树,依次填入排好序的结点第四步:层序遍历树,输出结果#include<algorithm>#include<iostream>#include<queue>using namespace std;const int M = 110;int n, nodes[M][3], v[M];void initTree() { cin >> n; for (int i =
2020-08-27 15:54:02 140
原创 idea中创建并使用自定义maven模板
1.为什么要进行自定义骨架?在使用idea进行maven开发项目时,发现每次新建一个maven项目之后,自带的骨架中都缺少目录和配置文件,每次都需要自己建包,修改文件夹状态。(很麻烦)2.自定义一个骨架1.前提:我们要新建一个maven项目,(建maven项目可参考上一篇)并添加目录,修改文件夹状态。pom.xml中导入所依赖的jar包。导入每次所需的配置文件,工具类。(看自己需求)...
2020-04-18 22:57:13 2685
原创 java-图的广度优先遍历(邻接矩阵和邻接表两种存储方式)
自从步入码农的行列,这种基础性的东西就敲得少了,今天和经理讨论算法的时候发现自己有些忘得差不多了,今天特地回来复习复习。于是费了自己一个小时时间,从度娘复习了原理,然后自己摸索着重新实现了一下这个算法。邻接矩阵:package com.zhangyanujie.graph.adjacency_matrix;import java.util.Arrays;import java.ut...
2020-03-27 23:38:05 819
原创 Spring MVC的ModelAndView、Model、ModelMap、RedirectAttributes的范围及关系分析
废话不多说,在Spring MVC中。1、ModelAndView类中有个类型为ModelMap的对象。2、ModelMap继承了LinkedHashMap<String,Object>,因此理论上可以保存任何类型的值。3、有一个类ExtendedModelMap继承了ModelMap并且实现了Model接口。4、还有一个类BindingAwareModelMap继承了...
2020-02-01 13:32:09 1728
原创 Java的函数式接口及使用示例
Java 1.8加入了lambda表达式,可以进行函数式编程了,这几天也一直在研究这个东西,从Java核心技术中得知java.util.function包中已经定义了许多常用的函数式接口。书中也列举了这个包下所有的接口,一共43个,有9个是通用接口,其余34个均为有关boolean、断言、提供int、long、double三者的值以及处理int、long、double三者之间值相互转换的一些接...
2019-11-03 10:51:11 2302
原创 GB2312编码表(全)-Java程序打印
不多说,需要了解GB2312编码表的组织方式的友友请转百度,下面直接上代码:package com.zhangyanjie;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io...
2019-08-21 16:14:33 1039
原创 16位DOS下的HelloWorld程序(带注释)
应广大喜欢的编程友友们对于helloworld程序的期盼,在这里给出DOS下16位汇编的helloworld代码,该代码可以在16位DOS实模式,32位下的虚拟8086模式下运行我知道有好多友友们想入门一门编程语言,第一个程序便是helloworld,可是我在网上却发现关于汇编的helloworld程序不是没有,而是太长,以及解释太少。下面,让我们看一看16位下helloworld汇编代码...
2019-03-09 14:23:50 1642
原创 Java之映射(map)
集是一个集合,它可以快速地查找现有的元素。但是,要查看一个元素,需要有要查找元素的精确副本。这不是一种非常通用的查找方式,因为在集合中查找元素总是要遍历集合。通常,我们知道某些键的信息,并想要查找与之对应的元素。映射(map)数据结构就是为此而设计的。映射用来存放键/值对。如果提供了键,就能够查找到值。它们之间是一一对应关系。1.基本映射操作:Java类库为映射提供了两个通用的实现:Has...
2018-06-06 21:23:48 50347 6
原创 Java之具体的集合
在Java类库的集合中,集合可以分为四个大种类,分别是列表(list),无重复元素列表(集合set),队列(queue),映射(map)。其中,前三种集合都实现了Collection接口,而映射实现了Map接口下面是这些集合的具体类以及他们之间的继承层次ArrayList:一种可以动态增长和缩减的索引序列LinkedList:一种可以在任何位置高效的插入的删除操作的有序序列ArrayDeque:一...
2018-05-26 21:29:43 237
原创 Java的集合框架
这篇博文主要介绍Java中集合是如何组织的(也就是Java集合在类库中的层次结构)Java集合框架概述:Java最初的版本只为最常用的数据结构提供了很少一组类:Vector,Stack,Hashtable,BitSet与Enumeration接口,其中Enumeration接口提供了一种用于访问任意容器中各个元素的抽象机制。后来Java1.2推出,类库设计人员推出了一组功能完善的数据结构,他们希望...
2018-05-21 16:59:08 249
原创 Java之异常
Java使用一种叫做“异常处理”的错误捕获机制处理程序可能出现的异常。这种处理机制的其实就是你抛我接,即当程序执行某个可能抛出异常的语句块时正好触发了异常,此时程序会把捕获到的异常“抛”出去并终止当前程序的执行,这个时候就会有专门的语句块“接”住这个异常,然后进行相应的处理。首先,先介绍一下异常到底是什么。通常来说,一个程序需要关注的异常可能包括以下几个方面:1)用户输入错误2)设备错误3)物理限...
2018-05-01 22:00:52 365
原创 java之内部类
内部类就是定义在另一个类中的类,使用内部类的理由主要有以下三点:1)内部类方法可以访问该类定义在作用域中的数据,包括私有数据。2)内部类可以对同一个包中的其他类隐藏起来。3)当想要定义一个回调函数且不想编写大量代码时,使用匿名内部类比较便捷。内部类根据定义的位置不同,可以分为四种,第一种就是普通的内部类,第二种是局部内部类,第三种是匿名内部类,第四种是静态内部类。这里只需强调一点即可,就是为了运行...
2018-04-29 11:33:38 208
原创 java的接口使用示例
下面给出接口使用的两个示例分别是:1)接口与回调2)Comparator接口首先是接口与回调:回调是一种常见的程序设计模式。在这种模式中,可以指出某个特定事件发生时应该采取的动作。在java.swing包中有一个Timer类,可以使用它在到达给定时间间隔时发出通告,调用传入到这个类中的另一个类的actionPerformed方法,当然,这个方法是接口ActionLisener中声明的,所以要想使用...
2018-04-27 13:38:49 2083
原创 java继承之枚举类型
有时候,变量的取值只在一个有限的集合内。这个时候就可以使用自定义枚举类型,枚举类型包括有限个命名的值。定义语法:访问修饰符 enum 名字 {列表}。实例化方法:枚举类名 变量名=枚举类名.列表中某一元素。例如:public enum Size {SMALL,MEDIUM,LARGE,EXTRA_LARGE};其实,这个声明定义的类型是一个类,它刚好有4个实例,在比较两个枚举对象的值时,可以使用"...
2018-04-25 12:14:09 10212
原创 java继承之对象包装器与自动装箱
有时候,我们需要将基本类型的数据转换为一个类来使用,例如ArrayList<int>是不被允许的,因为<>中必须使用类名作为参数,这个时候就需要对象包装器,可以将ArrayList<int>定义为ArrayList<Integer>。这些包装器都具有明显的名字:Integer,Long,Float,Double,Short,Byte,Characte...
2018-04-24 20:47:36 189
原创 java继承之Object类
Object类是Java中所有类的始祖,Java中的每一个类都是由它扩展而来,但是并不需要明确写出要继承它。根据前面讲的多态,这就意味着所有的类都可以使用Object类去引用。这里说明一下Object类中的方法Object类总共包括11个方法分别是:protected Object clone();boolean equals(Object obj);protected void finalize...
2018-04-24 20:02:50 1689
原创 java继承之类、超类和子类
继承其实在生活中到处都是例子,比如哪个富豪去世了,然后他的子女继承了他的财产啊,或者是有人说你跟你爸或者你妈长得像等等,,都是继承,而在java中的继承,其实是为了减少代码的数量,而重复使用了其上一个类的域(其实就是代码)。所以说继承可以提高代码的重用性,使代码的编码效率得到提高。说了这么多,相信大家已经知道了继承是什么意思了,于是下面就来演示如何定义和使用继承。呃。。。首先给个博文的主要内容吧首...
2018-04-23 22:54:24 5109
Ubuntu下的x86-64汇编(x86-64 Assembly Language with Ubuntu)
2024-02-07
Java基础课件和作业合集(有答案)+一个小型资产管理项目
2024-02-07
macOS内核darwin的开源项目
2022-10-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人