自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [Axure]微信实现两三事

1 实现了横纵向滑动以后,却发现无法进行按钮的单击操作,看来是要分页面了

2017-09-25 13:15:48 586

原创 [Axure]关于微信实现横纵向拖动效果的一些想法

最近在制作微信的原型,在基本页面制作完毕后,就要开始实现切换功能。刚开始在底端菜单栏是利用四个主页面“微信”“联系人”“发现”“我”四个模块。 最刚开始是通过切换不同模块的显示与隐藏来实现的,后来发现不能解决拖动的问题23333 将四个模块变换成动态面板以后,通过按钮来改变横向拖动的距离,总算解决了横向的问题。 但是无法解决在“微信”界面,竖向拖动以后,无法进行同向拖动的问题 之后学习了ht

2017-09-23 17:07:17 1618

原创 [Axure]QQ注册页面低保真原型

历时两天精心制作,直接上链接 http://ccg45v.axshare.com 可以对比真实网页 https://ssl.zc.qq.com/v3/index-chs.html通过这次学习制作,发现还是有很多没有掌握的地方,继续加油

2017-09-20 16:37:38 2929 1

原创 shell下进行字符串截取

Linux 的字符串截取很有用。有八种方法。 假设有变量 var=http://www.bitedu.com/123.htm. 1. # 号截取,删除左边字符,保留右边字符。 复制代码 代码如下: echo ${var#*//} 其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符 即删除 http:// 结果是 :www.bitedu.c

2017-08-14 16:03:01 305

转载 Shell实现俄罗斯方块小游戏

#!/bin/bash# Tetris Game# 10.21.2003 xhchen<[email]xhchen@winbond.com.tw[/email]>#APP declarationAPP_NAME="${0##*[\\/]}"APP_VERSION="1.0"#颜色定义cRed=1cGreen=2cYellow=3cBlue=4cFuchsia=5cCyan=6c

2017-08-03 21:41:24 573

原创 Shell中实现进度条程序

Shell版本#!/bin/shb=''for ((i=0;$i<=100;i+=2))do printf "progress:[%-50s]%d%%\r" $b $i sleep 0.1 b=#$bdoneecho运行结果

2017-08-03 13:54:59 445

转载 快速排序实现之递归与非递归

一、算法思想:   快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。设当前待排序的无序区为R[low..high],利用分治法可将快速排序的基本思想描述为:在R[low..high]中任选一个记录作为基准(Pivot),以此基准将当前无序区划分为左、右两个较小的子区间R[low..piv

2017-08-01 13:38:12 352

原创 链表复习题

C或者C++实现下面的题目并测试: 1. 比较顺序表和链表的优缺点,说说它们分别在什么场景下使用? 2. 从尾到头打印单链表 3. 删除一个无头单链表的非尾节点 4. 在无头单链表的一个节点前插入一个节点 5. 单链表实现约瑟夫环 6. 逆置/反转单链表 7. 单链表排序(冒泡排序&快速排序) 8. 合并两个有序链表,合并后依然有序 9. 查找单

2017-07-31 13:44:52 327

转载 如何判断一个二叉树是否为另一二叉树子树u

#include <stdio.h> #include <stdlib.h> // 二叉树结点定义 struct btree { int value; int lchild, rchild; }; // A树和B树的最多结点数 int n, m; /** * 第二步判断,判断A树是否有B树的子结构 */ int doesTree1HasTree

2017-07-28 19:24:35 281

原创 如何根据前序遍历和中序遍历重建二叉树

题目:由前序遍历和中序遍历重建二叉树 (前序序列:1 2 3 4 5 6 - 中序序列:3 2 4 1 6 5) 1.解题思路: 由前序遍历序列可知,第一个节点是根节点, 由中序遍历序列可知,第一个节点是根节点的左子树节点, 而且前序遍历中,根节点左边是左子树,右边是右子树 由上述分析结果,可以递归调用构建函数,根据左子树、右子树的先序、中序遍历重建左、右子树。代码及注释如下#i

2017-07-28 11:35:02 261

原创 判断一个树是否为完全二叉树

完全二叉树的定义是,前n-1层都是满的,第n层如有空缺,则是缺在右边,即第n层的最右边的节点,它的左边是满的,右边是空的。 采用广度优先遍历,从根节点开始,入队列,如果队列不为空,循环。遇到第一个没有左儿子或者右儿子的节点,设置标志位,如果之后再遇到有左/右儿子的节点,那么这不是一颗完全二叉树。这个方法需要遍历整棵树,复杂度为O(N),N为节点的总数。//二叉树结点定义typedef struc

2017-07-27 23:20:54 391

原创 CRC校检

CRC即循环冗余校验码(Cyclic Redundancy Check[1] ):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。CRC校验原理 CRC校验原理看起来比较复杂,好难懂,因为大多数书上基本上是以二进制的多项式形式来说明的。其实很简单的问题,其根本思想就是先在要发送的帧后面附加一个数(这个就是用来校验的校验码,但要注意,这里的数也是二进制

2017-07-27 18:09:00 615

原创 ARP协议及脚本编写u

一.什么是ARP 地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。 二.ARP协议工作过程:

2017-07-27 17:32:34 906

原创 四大排序分析与总结

为了便于描述,在这篇博客里且将内部排序分为: 1.插入排序(直接插入和希尔) 2.交换排序(冒泡和快排) 3.选择排序(直接选择和堆排序) 4.归并排序 1.插入排序直接插入排序(Straight Insertion Sort)基本思想: 将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进

2017-07-26 21:26:59 2426

原创 线程安全/可重入函数

什么是线程安全,如何避免?线程安全就是说多线程访问同一代码,不会产生不确定的结果。编写线程安全的代码是依靠线程同步 线程安全一般都涉及到synchronized 就是一段代码同时只能有一个线程来操作 不然中间过程可能会产生不可预制的结果 一般说来,确保线程安全的方法有这几个: 竞争与原子操作、同步与锁、可重入、过度优化。竞争与原子操作多个线程同时访问和修改一个数据,可能造成很严重的后果。出现严

2017-07-15 16:52:22 511

原创 TCP定时器

常见的定时器都有哪一些? 各自的特点以及应用场景TCP使用四种定时器(Timer,也称为“计时器”):重传计时器:Retransmission Timer 坚持计时器:Persistent Timer 保活计时器:Keeplive Timer 时间等待计时器:Time_Wait Timer。 (1)重传计时器:Retransmission Timer重传定时器:为了控制丢失的报文段或丢弃的

2017-07-15 11:14:46 333

原创 Linux_170715_TCP协议

1、建立连接协议(三次握手)   (1)客户端发送一个带SYN标志的TCP报文到服务器。这是三次握手过程中的报文1。   (2) 服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和SYN标志。因此它表示对刚才客户端SYN报文的回应;同时又标志SYN给客户端,询问客户端是否准备好进行数据通讯。   (3) 客户必须再次回应服务段一个ACK报文,这是报文段3。  2、连接

2017-07-15 11:08:26 189

原创 Proj_170713_通讯录u

今天我们来实现一个简单的通讯录,其功能包括: 联系人添加,查找,删除,总共联系人 简单的界面菜单

2017-07-14 15:52:04 253

原创 Linux_170713_NAT技术与代理服务器

1. NAT技术是什么?NAT网络地址转换(NAT,Network Address Translation)属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术,它被广泛应用于各种类型Internet接入方式和各种类型的网络中。原因很简单,NAT不仅完美地解决了lP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。2. NAT连接方式以及

2017-07-13 14:16:24 506

原创 20170713_合并有序链表_u

链表之前,先说一下线性表。线性表是最基本、最简单、也是最常用的一种数据结构。 线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。 线性表有两种存储方式,一种是顺序存储结构,另一种是链式存储结构。链式存储结构就是两个相邻的元素在内存中可能不是相邻的,每一个元素都有一个指针域,指针域一般是存储着到下一个元素的指针。这种存储方式的 优点是:插入

2017-07-13 13:52:29 277

原创 Linux_20170712_mysleep

1. 编写普通版本mysleep 运行结果 2. 编写规避竞态条件的mysleep这里我们使用sigsusupend来替代pause防止出现被无限挂起的情况#include<stdio.h>#include<unistd.h>#include<signal.h>#include<stdlib.h>void handler(int signum){}unsigned int mysle

2017-07-12 22:46:00 175

原创 Linux_170712_路由表相关

1. 调研常见路由表生成算法名词解释:路由:数据包从源地址到目的地址所需要经过的路径,由一系列节点组成。 路由节点:一个具有路由功能的主机或者路由器,维护一张路由表,通过查询路由表来决定向那个节点发送数据包。 路由表:由很多路由条目组成,每个条目都指明去往某个网络的数据包应该经由哪个接收和发送,其中最后一个是缺省路由条目。 路由条目:路由表中的每一行,每个条目主要由网络地址、子网掩码、下

2017-07-12 13:09:14 428

原创 Linux_170712_端口

1. 一共有多少有效端口? 端口是如何分类的?3. 网络服务中常用那些端口,各自的端口号是多少?共有三类端口,分类如下(1)公认端口(Well Known Ports):这类端口也常称之为”常用端口”。这类端口的端口号从0到1024,它们紧密绑定于一些特定的服务。通常这些端口的通信明确表明了某种服务的协议,这种端口是不可再重新定义它的作用对象。例如:80端口实际上总是HTTP通信所使用的,而23号端

2017-07-12 12:33:23 221

原创 Linux_170711_URG对比PSH

是什么? URG(紧急位): 紧急指针是一个正的偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。T C P的紧急方式是发送端向另一端发送紧急数据的一种方式。紧急指针指向包内数据段的某个字节(数据从第一字节到指针所指字节就是紧急数据,不进入接收缓冲就直接交给上层进程,余下的数据要进入接收缓冲的) PSH(急迫位): 在一个交互程序中,当客户发送一个命令给服务器时,它设置P U S H

2017-07-12 12:24:35 205

原创 Linux_170709_Corntab 命令u

1. 是什么? crontab是Unix和Linux用于设置周期性被执行的指令,是互联网很常用的技术,很多任务都会设置在crontab循环执行将其存放于“crontab”文件中,以供之后读取和执行。2. 干什么? 设置周期性被执行的指令3. 怎么干? crontab [-u username] [-l|-e|-r]选项与参数:-u  :只有 root 才能进

2017-07-09 15:20:58 340

原创 Linux_170709 守护进程u

1. 守护进程是什么? 守护进程(daemon)是一类在后台运行的特殊进程,用于执行特定的系统任务。很多守护进程在系统引导的时候启动,并且一直运行直到系统关闭。另一些只在需要的时候才启动,完成任务后就自动结束。//百度百科2.守护进程如何创建? (1)创建子进程,终止父进程由于守护进程是脱离控制终端的,因此首先创建子进程,终止父进程,使得程序在she

2017-07-09 11:02:27 183

原创 Linux_0611_CP模型

1. 基于单链表的生产者消费者模型编写。 2. 基于环形队列的生产者消费者模型编写。 3. 更改2,改成多线程版本。 4. 选做:基于进程的生产消费模型(单进程/多进程)版本。 5. 作业提交博客链接。

2017-06-12 08:57:24 389 1

原创 Linux_170604_互斥锁

1. 调研什么是死锁两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。2. 调研死锁产生的4个必要条件是什么1)互斥条件:指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其它进程请求资源,则请求者只

2017-06-05 22:22:05 182

原创 Linux_170603_线程作业

1. 总结线程概念, 总结Linux下线程有什么特点。1 绑定属性只要指定了某个线程“绑”在某个轻进程上,就可以称之为绑定的了。被绑定的线程具有较高的相应速度,因为操作系统的调度主体是轻进程,绑定线程可以保证在需要的时候它总有一个轻进程可用。轻进程(Light Weight Process,简称LWP)。轻进程和Linux系统的内核线程拥有相同的概念,属于内核的调度

2017-06-05 21:44:22 174

原创 20170324_Linux作业_1

对Linux权限相关的理解1.rwxr代表read,可以读取的权限w代表write,可以写入的权限x代表可执行的权限查看已经创建好的"file"文件的初始权限手动添加权限,给拥有者添加了执行权限给所有用户添加了执行权限毫无权限的文件

2017-03-24 13:16:31 252

原创 20170323

今天啥也没写,不知道在干什么#include #include using namespace std;int main(){int ia[] = { 0,2,4,6,8 };int i = ia[2];int *p = ia;i = *(p + 2);cout system("pause");return 0;}

2017-03-23 23:21:48 168

原创 20170317

#include #include #include#include #includeusing namespace std;int main(){对首字母进行大写变换//string s("hello world");//if (s.begin() != s.end())//make sure that s is not void

2017-03-17 23:43:29 165

原创 20170316

#include #include#include #includeusing namespace std;int main(){简单的指针学习//int arr[3] = { 9,8,7 };//int *p = arr;//cout //const int bufsize = 512;/*string s1

2017-03-17 10:07:06 186

原创 20170315

#include #include using namespace std;int main(){ 自己写的利用偏差值计算日期//int y = 2017, y2, m = 1, m2, d = 1, d2, sum;//y2,m2,day//int arr[13] = { 0,1,-1,0,0,1,1,2,3,3,4,4,5 };//加偏差值算

2017-03-17 10:06:00 172

原创 20170314

#include #include using namespace std;int main(){猜数字1.1版本//int i, j ,cnt=1;//srand(time(0));//j = rand() % 100 + 1;//cout//while(cin >> i)//{// /*if (cnt =

2017-03-17 10:04:06 149

原创 20170313

#include#include#includeint main(){//int a = 1, b = 2;//int sum;//sum = a + b;//printf("%d\n", sum);// /*return 0;*/// /*std::cin.ignore(std::cin.rdbuf()->in_avail() + 1);*/

2017-03-17 09:59:39 167

原创 20170312 练习代码

#include //#include using namespace std;int main()//{// /*std::*/cout // system("pause");// return 0;//}连续加法计算器//while(1)//{// int a=0, b=0;// while (1)// {// c

2017-03-17 09:54:48 230

原创 《C与指针》一,二,三章读书笔记

C与指针的前三章主要讲了一些基本新手容易理解的C语言和指针知识,和一些常见的尤其是初学者容易犯的错误。例如&&和&使用,==和=的代表意思不同等。可以说有些知识如果从根本不懂意思的话后期是无法通过编译器发现错误的,而且功能肯定也无法实现。在C语言的学习中,我觉得我应该慢慢地从不会写到能写出来,再到写的简练易懂才可以。多看看网上的范例,争取能理解多少是多少。学习,为自己,加油!

2016-11-05 17:23:19 189

空空如也

空空如也

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

TA关注的人

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