自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

askunix

人生有三恨,一恨鲫鱼有刺,二恨海棠无香,三恨红楼未完! >> askunix00@gmail.com

  • 博客(150)
  • 资源 (6)
  • 论坛 (1)
  • 收藏
  • 关注

原创 计算机类专业毕业设计(课程设计)题目大全

ASP 类计算机专业毕业设计题目第 1-100 个题目网络留言薄客户管理系统多媒体积件管理库的开发与应用基于 WEB的多媒体素材管理库的开发与应用网络教学软件中的教学设计与应用小型教育网站的开发与建设基于图像的风景旅游模拟漫游系统网上报名系统电脑配件网络购物房产网站计算机组成原理网站软件下载系统网站图书管理系统网络办公系统电子书店管理系统中学学生学籍管理系统在...

2019-05-15 22:15:26 35217 2

原创 堆排序-C语言实现

描述:堆排序就是利用堆这种数据结构进行排序的算法,堆排序属于选择排序。 堆是一棵顺序存储的完全二叉树 堆排序的时间复杂度: O(nlogn),属于不稳定排序。 大根堆 小根堆 每个节点的值大于等于孩子节点得堆 每个节点得值小于等于孩子节点得值堆的存储结构:以上结构,设当前元素在数组中以R[i]表示,那么,(1) 它的左孩子结点...

2018-06-27 00:49:03 10564 2

原创 【面试题】求连续子数组的最大和(三种解法)

题目描述 给定一个数组 array[1, 4, -5, 9, 8, 3, -6],在这个数字中有多个子数组,子数组和最大的应该是:[9, 8, 3],输出20,再比如数组为[1, -2, 3, 10, -4, 7, 2, -5],和最大的子数组为[3, 10, -4, 7, 2],输出18。暴力解法思路分析1、可以将给定数组的的所有子数组列出来,然后找到子数组和做大的情况,具...

2018-06-26 16:05:03 34523 19

原创 二叉树的层序遍历(两种方法实现)

两种方法实现二叉树的层序遍历1、说明二叉树的层序遍历是面试经常会被考察的知识点,甚至要求当场写出实现过程。层序遍历所要解决的问题很好理解,就是按二叉树从上到下,从左到右依次打印每个节点中存储的数据。如下图: 先序遍历:A → B → D → C 中序遍历:B → D → A → C 后续遍历:D → B → C → A 层序遍历:A → B → C →...

2018-06-24 23:51:59 59314 6

原创 MarkDown语法进阶(三)(文字居中、图片处理、插入视频音乐、标准字体)

Markdown编辑器本身是内容写作工具,本身并不支持文字排版,理论上它只是指出哪些内容是表格、哪些内容是标题、哪些是正文图片代码超链。但是由于markdown需要输出,自带html/css整合,因此需要指定格式时可以通过内嵌html或者内嵌css来实现。居中:<center>诶嘿</center>左对齐:<p align=&am

2018-05-26 14:46:32 60447 10

原创 httpDNS解析过程

httpDNS是基于http协议DNS服务器发送域名解析请求,替代了基于DNS协议向运营商LocalDNS发起解析请求的传统方式,可以避免LocalDNS造成域名劫持和跨网访问问题,解决移动互联网服务中域名解析异常带来的困扰。服务IP:考虑到服务IP防攻击之类的安全风险,为保障服务可用性,HTTPDNS同时提供多个服务IP,当某个服务IP在异常情况下不可用时,可以使用其它服务IP进行重试。A...

2019-12-14 16:37:21 517

原创 C++/java设计模式汇总

一、概述二、创建型1. 单例(Singleton)2. 简单工厂(Simple Factory)3. 工厂方法(Factory Method)4. 抽象工厂(Abstract Factory)5. 生成器(Builder)6. 原型模式(Prototype)三、行为型1. 责任链(Chain Of Responsibility)2. 命令(Command)3. 解...

2019-11-09 20:15:39 278

原创 Windows_HOOK总结_待完善

DLL创建:DLL使用:使用WIndows挂钩注入DLL:安装钩子:HHOOK WINAPI SetWindowsHookEx( \\钩子类型 __in int idHook, \\函数地址,即挂钩类型事件发生时,系统应该调用的函数; __in HOOKPROC lpfn, \\标识一个dll,这个dll中包含第二个参数表示的函数;实例句柄 __in H...

2019-10-28 20:12:22 167

原创 qt creator中快捷键配置和常用快捷键

快捷键配置:工具 -> 选项 -> 环境 -> 键盘常用快捷键:F1 查看帮助F2 跳转到函数定义(和Ctrl+鼠标左键一样的效果)Shift+F2 声明和定义之间切换F4 头文件和源文件之间切换Ctrl+1 欢迎模式Ctrl+2 编辑模式Ctrl+3 调试模式C...

2019-05-12 16:50:00 495

原创 JSON基础

JSON:JavaScript 对象表示法(JavaScript Object Notation)。JSON 是存储和交换文本信息的语法。类似 XML。JSON 比 XML 更小、更快,更易解析。什么是 JSON ?JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)JSON是轻量级的文本数据交换格式JSON 使用...

2019-05-12 11:20:24 248

原创 APUE学习笔记(第十三章:守护进程)

概念:守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进程。Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任务。比如,作业规划进程crond,打印进程lpd等。(这里的结尾字母d就是Daemon的意思)守护进程的...

2018-12-29 16:01:23 292 2

原创 使用setjmp和longjmp函数实现跨函数跳转

setjmp和longjmp函数的跳转有别于goto语句。它是指在栈空间上的跳转。用于函数间跳转时,调用longjum函数以返回到程序的主循环中,而不是从该处理程序返回。这是一段实例代码:运行结果:...

2018-12-20 17:04:50 562 2

原创 APUE学习笔记(第十一章:线程)

1、每个线程在进行事件处理时可以采用同步编程模式,同步编程要比异步编程模式简单得多。2、有人把多线程的程序设计与多处理器或多核系统联系起来。但是即使程序运行在单处理器上,也能得到多线程编程的模型的好处。3、处理器的数量并不影响程序结构,所以不管处理器的个数多少,程序都可以通过使用线程得以简化。多线程程序在单处理器上运行还可以改善响应时间和吞吐量。4、进程ID在系统中是惟一的,...

2018-12-19 21:06:36 185

原创 APUE学习笔记(第十章:信号)

信号的概念:信号是软件中断。信号提供一种处理异步事件的方法。信号被定义为正整数常量,定义在<signal.h>中。在某个信号出现时,可以告诉内核以三种方式处理:忽略、捕捉、执行系统默认动作。信号相关的函数:函数signalvoid (*signal (int signo, void (*func)(int))) (int);signal()函数(它自己是带两个参数,一个...

2018-12-19 16:29:51 257

原创 APUE学习目标

近期正在看APUE,之前对UNP略有了解。并有过简单的编程经验。看了一周的APUE,文件IO、标准IO、环境变量、进程、信号、等都看完了,并敲了一些习题代码。阅读效果不是很高。所以写一篇文章总结一下原因,并定个阅读目标。APUE主要是从文件操作、进程间通信的学习。学习Unix核心思想,一切皆文件,并学习怎么操作文件、shell是怎么在内核中运行的等等,比较偏重实现原理及思想。通篇都有大量的函...

2018-12-19 11:13:25 219

原创 APUE学习笔记(第八章:进程控制)

引言:每个进程都有一个非负整型表示的唯一进程。虽然唯一,但是进程ID可以复用。大多数UNIX系统实现延迟复用算法,使得赋给新建进程的ID不同于最近终止进程所使用的ID。这防止了将新进程认为是使用同一ID的某个已终止的先前进程。ID为0的进程是调度进程,也称交换进程。该进程是内核的一部分,它并不执行任何磁盘上的程序,因此也被称为系统进程。ID为1的进程是Init进程,由内核调用,在新的 /s...

2018-12-17 14:48:26 209

原创 模拟实现ls-l功能

功能描述:用unix文件和目录函数遍历一个目录下的所有文件,包括子目录,并分别把信息输出到文件和标准输出上。列举每个文件的权限相关信息,列举每个目录的相关信息。代码实现:#include <stdio.h>#include<stdlib.h>#include <dirent.h>#include <stdlib.h>#include &...

2018-12-13 19:04:46 1061

原创 Unix下的内存管理

Linux内存管理程序和内存:程序是指在硬盘上的可执行文件(硬盘上的文件有:普通文件、目录文件、块特殊文件、字符特殊文件、FIFO、套接字、符号链接)。当程序被运行时,需要将可执行文件加载到内存,在内存中的可执行文件形成进程(也就是加载到内核中了)。一个进程文件可以存在多个进程内存。内存区域划分: 代码区 只读常量区 全局区/数据区 BSS段 堆区 栈区(1)按照地址...

2018-12-12 15:37:20 647

原创 STL中的map和hash_map区别

1、STL的map底层是用红黑树实现的,查找时间复杂度是log(n);2、STL的hash_map底层是用hash表存储的,查询时间复杂度是O(1);hash_map,首先分配一大片内存,形成许多桶。是利用hash函数,对key进行映射到不同区域进行保存。其插入过程:1、得到key;2、通过hash函数得到hash值;3、得到桶号(一般都为hash值对桶数求模);4、存放key和va...

2018-12-12 10:11:44 517

原创 HTTP服务器框架代码分析(三)

HTTP服务器框架分析(一)HTTP服务器框架分析(二)1、头文件#define SIZE 1024typedef struct Request{ char first_line[SIZE]; char *method; char *url; char *url_path; char *query_string; int content_length;}Request;...

2018-12-12 10:11:25 303 2

原创 项目:HTTP服务器框架分析(二)

项目:HTTP服务器框架分析(一)1、什么是HTTP和HTTPS?HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。安全套接字层超文本传输协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,...

2018-12-12 10:11:03 223

原创 项目:HTTP服务器框架分析(一)

0、项目描述项目名称:世界时间基于HTTP服务器框架的世界时间查询器,采用多线程处理多客户端连接请求,具体的还要分析请求是静态请求还是动态请求,静态请求直接返回对应URL目录中的HTML资源,动态请求使用了CGI技术处理具体业务,接收到城市名称后,就从后台MySQL数据库中取该城市与北京时间时差,计算后将结果返回给客户端。利用duhup执行shell脚本实现网站访问。利用webbench测试网...

2018-12-12 10:10:40 625

原创 四种强制类型转换

四种强制类型转换在实际开发中使用场景比较较多,做以下总结:(一)用法:static_cast <类型说明符> (变量或表达式)它主要有如下几种用法:(1)用于类层次结构中基类和派生类之间指针或引用的转换进行上行转换(把派生类的指针或引用转换成基类表示)是安全的进行下行转换(把基类的指针或引用转换为派生类表示),由于没有动态类型检查,所以是不安全的(2)用于基本数据类型之间的...

2018-12-08 17:14:54 3910

原创 Linux - 线程 & 进程和线程的区别

线程特点进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。一个线程可以创建和撤销另一个线程;...

2018-10-23 21:20:46 1615

原创 MySQL语句

选择:select * from table1 where 范围插入:insert into table1(field1,field2) values(value1,value2)删除:delete from table1 where 范围更新:update table1 set field1=value1 where 范围查找:select * from table1 where fie...

2018-10-23 21:18:19 581

原创 HTTP服务器设计框架

2018-10-23 21:04:16 432

原创 高级I/O总结(二):select、poll、

回顾部分同步通信 VS 异步通信同步就是发出一个调用时,在没有得到结果之前,该调用就不返回。调用者会主动等待调用的结果。异步就是调用者发出调用之后,调用直接返回了,没有结果。后续有了结果,会以状态、信号等方式通知调用者。阻塞 VS 非阻塞阻塞就是指调用结果返回之前,当前线程被挂起,直到返回结果。非阻塞就是指不能立刻返回结果之前,该调用不会阻塞当前线程。select概念:是用来监视...

2018-10-18 22:05:23 197

原创 MySQL数据库设计时需要注意哪些问题

1、永远为表设定一个自增主键ID,并尽可能的利用此ID进行构造;2、尽可能的使用ENUM,比如性别,属相等,因ENUM是保存为tinyint;3、尽可能的使用not null,除非业务需要使用null;4、尽量使用短的字符类型;5、尽量使用固长的字符类型,当表中所有的字段都是固定长度,DB 会认为表是static类型,如果有固定长度和非固定长度的字段尽量采用垂直分割,将表分割。静态类型...

2018-10-18 22:04:59 1182

原创 MySQL数据库事务及其原理

基本概念MySQL 事务主要用于处理操作量大,复杂度高的数据。银行转账是经典的解释事务的例子。用户A给用户B转账5000元主要步骤可以概括为如下两步。  第一,账户A账户减去5000元;  第二,账户B账户增加5000元;  这两步要么成功,要么全不成功,否则都会导致数据不一致。这就可以用到事务来保证,如果是不同银行之间的转账还需要用到分布式事务。事务的特性(ACID)(1)在 My...

2018-10-18 22:04:48 3884

原创 STL:vector扩容、销毁、与list和deque的区别

1、vector是怎么扩容的?reserve()是容器预留空间,但并不真正创建元素对象。resize()是改变容器的大小,并且创建对象。两个函数的形式是有区别的,reserve函数之后一个参数,即需要预留的容器的空间;resize函数可以有两个参数,第一个参数是容器新的大小,第二个参数是要加入容器中的新元素,如果这个参数被省略,那么就调用元素对象的默认构造函数。vector<in...

2018-10-18 22:04:36 778

原创 迭代器与指针的区别

迭代器与指针的差别:迭代器:(1)迭代器不是指针,是类模板,表现的像指针。他只是模拟了指针的一些功能,通过重载了指针的一些操作符,->, * ,++, --等封装了指针,是一个“可遍历STL( Standard Template Library)容器内全部或部分元素”的对象, 本质是封装了原生指针,是指针概念的一种提升(lift),提供了比指针更高级的行为,相当于一种智能指针,他可以根据...

2018-10-18 22:04:18 1478 2

原创 数据库索引的优缺点

索引的优缺点索引的优点:① 建立索引的列可以保证行的唯一性,生成唯一的rowId② 建立索引可以有效缩短数据的检索时间③ 建立索引可以加快表与表之间的连接④ 为用来排序或者是分组的字段添加索引可以加快分组和排序顺序索引的缺点:① 创建索引和维护索引需要时间成本,这个成本随着数据量的增加而加大② 创建索引和维护索引需要空间成本,每一条索引都要占据数据库的物理存储空间,数据...

2018-10-18 22:03:56 6773

原创 fork、vfork、clone的区别

Linux的用户进程不能直接被创建出来,因为不存在这样的API。它只能从某个进程中复制出来,再通过exec这样的API来切换到实际想要运行的程序文件。复制的API包括三种:fork、clone、vfork。这三个API的内部实际都是调用一个内核内部函数do_fork,只是填写的参数不同而已。进程的四要素:(1)有一段程序供其执行(不一定是一个进程所专有的),就像一场戏必须有自己的剧本。(...

2018-09-24 12:03:35 366

原创 数据库索引

数据库索引:是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。数据库索引的优缺点(一)优点(1)通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。(2)加...

2018-09-24 11:42:32 274

原创 高级I/O总结(一):基础

重要概念同步通信 VS 异步通信概念:(1)同步通信的不足等待接口耦合性网络位置耦合性可用性耦合性 总结: 耗时 + 耦合度比较高。(2)异步通信无等待面向消息解耦合位置独立确保投递 总结:解决了同步通信的不足。阻塞 VS 非阻塞(1)阻塞是指调用结果返回之前,当前线程会被挂起,线程只有在得到结果之后才会返回。(2)非...

2018-08-31 16:59:54 285

原创 【笔试题】大整数相加

本机环境:64位Centos 7.4,vim、gcc编译工具。假设用户输入的数据保存在数组adda,addb中,如果手工计算,就是从低位到高位依次先加,满十进一,那么有两个问题需要解决。问题:1、用数组保存结果,那么结果的长度是多少位? 两个数相加,结果最大也只能比较大的那个数多一位。lensum = lena > lenb ? lena : lenb;l...

2018-08-29 12:51:46 358

原创 散列函数(哈希)

概念散列的概念属于查找,它不以关键字的比较为基本操作,采用直接寻址技术。在理想情况下,查找的期望时间为O(1)。hash函数就是把任意长的输入字符串变化成固定长的输出字符串的一种函数。输出字符串的长度称为hash函数的位数。散列(Hashing)通过散列函数将要检索的项与索引(散列,散列值)关联起来,生成一种便于搜索的数据结构(散列表)。应用目前应用最为广泛的hash函数是SH...

2018-08-24 12:01:00 15595 1

原创 优先级队列概念(Priority Queue)

概念☺优先队列是一种用来维护一组元素构成的结合S的数据结构,其中每个元素都有一个关键字key,元素之间的比较都是通过key来比较的。优先队列包括最大优先队列和最小优先队列,优先队列的应用比较广泛,比如作业系统中的调度程序,当一个作业完成后,需要在所有等待调度的作业中选择一个优先级最高的作业来执行,并且也可以添加一个新的作业到作业的优先队列中。 优先队列的实现中,我们可以选择堆数据结构,最...

2018-08-21 23:45:57 4644

原创 静态库和动态库的区别

库的作用: 库是共享程序代码的方式,一般分为静态库和动态库。库实现了某些特定的功能模块化。方便分享和使用!异同点:2.静态库和动态库有什么特点?- 不同点:静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序可以共用,节省内存。- 共同点:静态库和动态...

2018-08-17 00:40:41 626

原创 【Huffman】哈夫曼树与哈夫曼编码

基本概念1、路径和路径长度 在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根结点的层数为1,则从根结点到第L层结点的路径长度为L-1。2、结点的权及带权路径长度 若将树中结点赋给一个有着某种含义的数值,则这个数值称为该结点的权。结点的带权路径长度为:从根结点到该结点之间的路径长度与该结点的权的乘积。3、树的带权路径长...

2018-08-16 00:53:20 247

数字电子时钟课程设计报告(附设计电路图)

本文档为完整版课程设计报告,课设题目:数字电子时钟课程设计报告,课程分类:计算机组成原理

2018-01-09

常见网络攻击手段分析及防御原理

常见网络攻击手段分析及防御原理,讲述了常见的网络攻击手段原理,防御原理。

2018-05-13

CVTE后台研发面试题(C/C++)

这个文档有6页,包含了身边的朋友(C/C++后台研发岗)去CVTE面试的问题(同一届)。大概六七个人总结的。问题是按照面试官所问顺序排列的,内容包括:自我介绍、C++知识、网络、操作系统(Linux)、MySQL等等。如果对你有帮助,请好评。

2018-08-08

计算机网络文件传输及管理系统课程设计报告

计算机网络文件传输及管理系统课程设计报告,内含源码+截图+报告+实验原理、总结等。

2018-04-08

C语言版推箱子游戏源码

本资源不是扫描版本,文件内容可以复制粘贴到VS平台直接验证,可以直接运行出结果。

2018-01-09

博客管理系统

代码包含数据表,客户端,后台设计,代码本来是交过课程设计的。用SQLserver数据库和C#完成,用了MV框架,适合初学者。

2018-08-02

逻辑地址到物理地址的映射

发表于 2018-08-04 最后回复 2018-08-06

空空如也

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

TA关注的人 TA的粉丝

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