自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 python模块和包

一、模块1.含义:当代码量比较大的时候,我们最好把代码拆分成一些有组织的代码片段,每个代码片段里面包含一组逻辑上有关联的函数或者类,每一个片段里放在一个独立的文件中,这样的片段称为模块。2.使用import可以在一个python文件中引入其他的模块。 C语言的#include本质上是文本替换,因此可能会导致一系列的问题(重复包含,包含顺序相关)。3.import实际上是创建了一个...

2019-04-23 16:50:04 263

原创 python文件操作与异常处理

一、文件操作内建函数open,能够打开一个指定路径下的文件,返回一个文件对象。open的两个参数:第一个参数是文件名,第二个是打开方式('r'、'w'、'a', 'b'依次表示读,写,追加写,二进制)。1.内建函数:包含在_buildings_这个模块中的一些函数,而_buildings_这个模块python解释器会去包含使用dir(_buildings_)可以看到pythonyigo...

2019-02-16 16:12:24 2084

原创 python序列和字典

一、序列1含义;包含若干个元素,元素有序排列,可通过下标访问一个或多个元素这样的对象(eg:字符串,列表,元组)。2.标准类型操作符:expr 1 < expr 23.序列类型操作符1)in / not in :判定一个元素是否在序列中,返回布尔值。2)连接操作符(+):把两个相同类型的序列进行连接。   这种操作效率低(新创建对象,把原有对象拷贝进去),所以对于...

2019-02-04 11:55:30 556

原创 python基础语法

一、语句和变量1.语句折行:如果一行代码太长,可以折成许多行来写,看起来清楚,毕竟人要看清楚代码。2.python中,如果一个语句被小括号,中括号,大括号包起来,是可以跨行书写的。3.如果没有用括号包起来,可以使用“\”来换行;双引号和单引号字符串都不能折行,但是三引号可以折行。二、缩进规范1.python中使用缩进表示表示语句块。同一个语句块中的代码必须保证严格的左对齐(...

2019-01-14 16:11:23 317

原创 python入门基础2

九、列表/元组/字典1.列表和元组类似于C中的数组。2.用[ ]表示列表,使用( )表示元组。                    3.列表和元素能保存任意数量,任意类型的python对象。4.可以使用下标来访问里面的元素,下标从0开始,最后一个下标为-1.5.可以使用[:] 操作得到列表或元组的子集,该操作和字符串一样。6.列表和元组唯一的区别:列表中的元素...

2019-01-04 22:05:37 221

原创 python入门基础1

一、变量和赋值1.python中的变量不需要声明,直接定义即可,会在初始化的时候决定变量的“类型”。2.使用“=”来进行初始化和赋值操作。eg: >>>counter=03.python中也支持增量赋值。eg: >>> n=n*10 等价于 >>> n*=104.python中不支持++/--的操作,只能这样>>&g...

2019-01-01 15:07:08 199

原创 性能测试

一、为什么要进行性能测试?1.判断应用程序能否很快的响应用户的需求2.判断应用程序能否处理业务所需要的事务数量3.判断在预期和非预期的用户负载下,应用程序是否稳定4.判断应用程序能否确保用户在使用软件时获得舒服的体验二、性能测试指标1.并发数1) 系统用户数:该系统注册的用户数2)在线用户数:登录该系统的用户数3)并发用户数:对服务器产生压力的用户数2.响应...

2018-09-30 20:27:47 364

原创 简单类型的文件压缩

什么是文件压缩?文件压缩:采用一种机制,将大文件转换为小文件。基本概念在一棵二叉树中:路径:定义从A结点到B结点所经过的分支序列为A结点到B结点的路径。 路径长度:定义从A结点到B结点所经过的分支个数为A结点到B结点的路径长度。二叉树的路径长度:从二叉树的根结点到二叉树中所有结点的路径长度之和。由树的定义可知:从属的根结点到达树中每一结点有且只有一条路径。若设根结点处于...

2018-09-17 10:33:52 341

原创 模拟实现空间配置器

实现背景:malloc在申请空间的时候会有很多缺陷,比如:效率比较低下,容易造成内存碎片,也容易造成空间额外的浪费,如果用户自己释放空间操作不当,还会产生内存泄漏的问题实现方法:若用户申请的空间大于128字节,定为大块内存,采用一级空间配置器的处理方法                  若用户申请的空间小于等于128字节,定为小块内存,采用二级空间配置器的处理方法具体实现原理:一级...

2018-09-13 12:57:16 251

原创 测试用例和测试分类

一、测试用例的设计方法1.基于需求的设计方法(总体设计方法):使测试更加有效,因为她使测试专注于质量问题产生的根源。基于需求的测试的关注点:1) 验证需求是否正确,完整,没有二义性,并且逻辑一致。                                            2) 设计出充分必要的测试集,以保证设计和代码都能完全符合需求。2.具体的设计方法1) 等价类:...

2018-09-12 15:21:42 12279 2

原创 测试相关理论

一、软件测试1.概念:验证软件功能是否能够满足用户的需求。(找bug,验证它没有问题) 1979年,《软件测试艺术》:软件测试是为了发现错误而执行程序或系统的过程。 1983年,《软件测试完全指南》,测试是以评价一个程序或者系统属性为目标的任何一种活动。测试是对软件质量的度量。1983年,IEEE软件工程标准术语:使用人工或自动手段,来运行或测试某个系统的过程。其目的在于检验它是否...

2018-09-08 20:13:28 589

原创 贪吃蛇游戏

首先在实现这个小游戏要考虑一下几个问题:一、需求1.只有一条蛇2.只有一个食物3.字符界面4.结束有些的方式:(1) 撞墙上   (2)自己撞到自己身上5.界面问题:只有边界部分有墙二、自顶向下分析解决问题(model::数据结构、view:界面问题、controller:控制流)蛇:当做链表处理,用坐标表示食物:也用坐标表示墙:已知宽度和宽度三、食物的...

2018-09-06 19:50:31 234

原创 C++容器STL

一、什么是STL?1,含义:STL是标准模板库,通俗来讲是常见的数据结构的封装和通用算法的结合(任意类型,不与数据结构相关)2.特点:通用  容器--->模板                       算法:模板+与数据结构无关                                  通用的算法:与数据类型无关--->模板              ...

2018-09-02 22:06:38 354

原创 C++多态

 一、什么是虚函数1.含义:虚函数是一种在基类定义为virtual的函数,并在一个或多个派生中再定义的函数。2.虚函数的特点:只要定义一个基类的指针,就可以指向派生类的对象。二、多态含义:一个东西在不同场景下可以表现出的多种形态。     举例:*  :可以表示 解引用,也可以表示 乘法                & :可以表示  与,也可以表示 取地址...

2018-08-28 17:21:23 335

原创 C++继承

一、继承1.含义:是面向对象程序设计使代码可以复用手段。它允许程序员在保持原有类(基类)特性的基础上进行扩展,增加功能,这样产生新的类,称为派生类。继承呈现了面向对象程序设计的层次结构。2继承的格式: 3.成员限定符与继承关系注意点:访问权限出现在类中               继承权限在继承列表中4.继承方式及权限对应表5.总结    1) pu...

2018-08-26 09:10:24 217

原创 浏览器中输入url请求之后发生的事情?

一、浏览器查找域名的IP地址1.请求一旦发起(比如:www.baidu.com),浏览器第一件事就是 解析这个域名,浏览器先查看本地硬盘的hosts文件,看看其中有没有和这个域名对应的规则,如果有的话,就直接使用hosts文件里面的ip地址;如果没有,浏览器就会发出一个DNS请求到本地DNS服务器。本地DNS服务器一般就是你的网络接入服务器上提供,比如中国电信,中国移动,中国联通。2....

2018-08-24 19:37:31 1256

原创 C/C++内存管理

一、程序内存区域划分二、malloc、calloc、realloc的比较1.相同点   1)返回值:成功:返回地址空间                    失败:NULL  2)使用之前都要进行判断是否为空  3) 释放空间的方式:free   4) 返回值:void* (可以强制类型转换)2.不同点 1)  malloc 参数:(字节数)  功能:负责将...

2018-08-21 22:35:37 240

原创 类和对象(下)

一、类的6个默认成员函数(空类也有) 二、构造函数1.什么是构造函数构造函数是一种随着对象创建而被调用的公有成员函数,有且仅在定义对象时自动执行一次,它的主要用途是为对象做初始化。2.构造函数的特点:函数名与类名相同 无返回值 编译器默认无参数 对象构造时系统自动调用对应的构造函数 构造函数可以重载 构造函数可以在类中定义,也可以在类外定义。 如果类定义中没有给...

2018-08-19 21:34:46 267

原创 高级IO

一、五种IO模型1.阻塞IO:在内核将数据准备好之前,系统调用会一直等待。所有的套接字,默认都是阻塞方式。2.非阻塞IO:如果内核还未将数据 准备好,系统调用任然会直接返回,并且返回EWOULDBLOCK错误码。3.信号驱动IO:内核将数据准备好的时候,使用SIGIO信号通知应用程序进行IO操作。(告诉应用程序何时可以开始拷贝数据  )4.IO多路转接:和阻塞类似,实际上最核心在于...

2018-08-18 19:31:44 269

原创 数据链路层(ARP协议,DNS协议和ICMP协议)

数据链路层(以太网协议):负责两个相邻设备之间的数据帧的传送和识别一、以太网的帧格式源地址和目的地址是指网卡的硬件地址(也叫MAC地址),长度是48位(6个字节),是在网卡出厂时固化的。 帧格式类型的字段有三种值,分别对应IP,ARP,RARP. 帧尾是CRC校验码.二、MAC地址含义:媒体访问控制,或物理地址,或硬件地址 用途:识别数据链路层中相连的节点。 组成:6个字...

2018-08-16 11:21:23 15656

原创 应用层(HTTP协议)

应用层:负责应用程序之间的沟通一、自定制协议:在应用层自己定制的数据格式结构化传输协议:(方便数据式的组织与解析)定义结构体来表示我们需要交互的信息。 发送数据时将这个结构体按照一个规则转换成字符串,接收到数据的时候再按照相同的规则把字符串转化回结构体。 这个过程叫做“序列化”(结构体转换成二进制序列)和“反序列化”(二进制数据转换成结构体)。 192.168.0.1:本地路由器...

2018-08-14 20:37:00 701

原创 网络层(IP协议)

一、网络层的作用:地址管理和路由选择二、网络层IP协议格式对上面每部分的说明:4位版本号:指定IP协议的版本,对于IPv4来说,就是4.4位首部长度:IP头部的长度是多少个32bit.4bit表示最大的数字是15,因此IP头部最大长度是60字节。8位服务类型:3位优先权字段(已经弃用),4位TOS字段,1位保留字段(必须置0)                      ...

2018-08-13 18:38:29 11536

原创 传输层深度剖析(TCP、UDP)

传输层:负责两台主机上应用程序之间的数据传输 TCP一、TCP的协议格式 对上图的解释;源/目的端口号:表示数据是从哪个进程来,到哪个进程去4位首部长度:表示TCP头部有多少个32位bit(多少个4字节),所以TCP头部最大长度是15*4=606位标志位:URG:紧急指针 ACK:确认号 PSH:提示接收端应用程序立刻从TCP缓冲区把数据读走 RST:对方...

2018-08-12 12:09:09 596

原创 类和对象(上)

一、类与对象的初步认识1.类是对象的抽象,而对象是类的具体实例。  类是抽象的,不占用内存;而对象是具体的,占用存储空间。2.面向过程与面向对象C语言是面向过程的,关注的是过程中的数据与方法。C++是面向对象的,关注的是对象’的属性与功能。二、类1.在C++中,结构体内不仅可以定义变量,也可以定义函数。struct student{ char _name[20...

2018-08-11 20:12:17 303

原创 线程

一、线程是什么linux下:线程是轻量级进程。(linux下线程和进程并不做明显的区别。线程是PCB进行模拟的.进程的一个执行流)               进程是具有多个线程的线程组。进程与线程的对比:1.进程是操作系统分配资源的一个基本单位。线程是操作系统CPU调度的一个基本单位。2.进程是拥有一个完整的资源平台。每个线程除了共享资源外也拥有自己的部分数据:线程ID,...

2018-08-10 21:23:10 207

原创 C++起航

一、命名空间作用:对标识符的名称进行本地化,以避免命名冲突或名字污染。注意:一个命名空间就定义了一个新的作用域,命名空间中所有的内容都局限在该命名空间中。定义:namespace +空间名 + { }1. 普通的命名空间namespace N1//N1为命名空间的名称{ //命名空间的内容可以是定义变量,也可以是定义函数 int a; int ADD(int left...

2018-08-09 16:31:18 194

原创 TCP协议(三次握手,四次挥手)

TCP三次握手建立连接:第一次握手:建立连接时,客户端发送SYN包到服务器,并进入SYN_SENT状态,等待服务器的确认。第二次握手:服务器收到SYN包,必须确认客户端的SYN,同时自己也发送一个SYN包,即SYN+ACK包握手,此时服务器进入SYN_RECV状态。第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK ,此包发送完毕,客户端和 服务器...

2018-08-08 10:18:24 472

原创 进程

一、什么是进程1)从用户角度来看,进程是程序一次动态执行的过程。2)从操作系统角度:硬件上有中断技术出现,产生了分时系统。进程是操作系统分配资源的基本单位。进程是操作系统分配资源的最小单位。进程有自己的运行状态和(虚拟的)地址空间。3)进程和程序的比较:进程是动态的运行过程,程序是静止的。 进程有PCB,程序没有。 进程是短暂的,程序相对永久。 一个进程只能对应一...

2018-08-07 21:07:14 207

原创 网络基础与socket编程

一、OSI七层模型与TCP / IP五层(或四层)模型1.OSI七层模型:下--->上       物理层-->数据链路层-->网络层-->传输层-->会话层-->表示层-->应用层2.TCP / IP 五层模型(下--->上):  1)  物理层(以太网协议):负责光 / 电信号的传递方式。比如:网线(双绞线)、同轴电缆、光纤、wi...

2018-08-05 11:10:58 404

原创 栈和队列

Stack.h:#pragma once#include <stdlib.h>#include <assert.h>#include <string.h>#define MAX_SIZE (100)typedef struct Position { int x; int y;} Position;typedef int SDat...

2018-08-04 21:45:39 194

原创 链表

 SList.h#pragma once#include <stdlib.h>#include <assert.h>#include <stdio.h>typedef int DataType;typedef struct SListNode { DataType data; struct SListNode *pNext;} SLi...

2018-07-31 12:12:47 197

原创 哈希

哈希函数:是元素的存储位置与它的关键码之间能够建立一 一映射的关系,那么在查找时通过该函数可以很快找到该数据。 key                  Hash (key) = key % m (m:存储单元的个数) 。哈希冲突:对于两个数据元素的关键字K1和K2 (K1 != K2) ,但是有:HashFunc (ki) == HashFunc (Kj) ,函数即不同关键字通过相 ...

2018-07-28 12:33:46 284

原创 排序

此处排序共其中排序的方法:快速排序,堆排序,归并排序,冒泡排序,选择排序,插入排序,希尔排序下面是分别的代码: 约定按照元素的大小升序排序1.快速排序 时间复杂度: 最坏 O(N ^ 2)(如果数组是逆序的) 平均水平 O(NlogN) 空间复杂度: O(N) 递归. 最坏情况下要递归 N 层 稳定性: 不稳定排序改进方面:       基准值方面:取中间数效率最高   ...

2018-07-27 07:24:06 186

原创 最受欢迎的3种水果(综合应用)

该代码的大体思路:先把所有的水果(及其受欢迎度即就是有几个人喜欢count)插入到一棵二叉搜索树中,在进行二叉树的中序  遍历,最后进行建立小堆的操作,即就可以找出最受欢迎的3种水果。主要操作:二叉搜索树的插入,中序遍历,建堆时条件(叶子结点的处理,已经满足堆的情况),向下调整的操作。具体代码如下:#include <stdio.h>#include <stdlib.h&...

2018-07-25 17:18:14 661

原创 二叉搜索树及应用

 二叉搜索树的特点:     1.若它的左子树不为空,则左子树上所有结点的值都小于根结点的值。     2. 若它的右子树不为空,则右子树上所有结点的值都大于根结点的值。     3.它的左右 也分别为二叉搜索树。 删除的情况分为四大类,八种情况:               备注:红色圈表示要删除的结点,蓝色和绿色表示替补结点.  情况4,5,6刚好与情况...

2018-07-25 15:29:40 495

原创

小堆:任意结点的关键码均小于它的左右孩子的关键码,位于堆顶的关键码最小,从根结点到每个结点的路径上的数组元素组成            的序列都是递增的。大堆:任意结点的关键码均大于它的左右孩子的关键码,位于堆顶的关键码最大,从根结点到每个结点的路径上的数组元素组成            的序列都是递减的。有上面的图可以看出:对存储在下标为0开始的数组中,因此在堆中给定下标i的结点:...

2018-07-19 21:29:15 296

原创 树形结构及二叉树

基本概念结点:结点包括一个数据元素及若干指向其他子树的分支(指针(索引))。结点的度:结点所拥有子树的个数为该结点的度。叶子结点(终端结点):度为0的结点。分支结点(非终端结点):度不为0的结点。一般树中除了叶子结点外都是分支结点。祖先结点:从根结点到该结点所经分支上的所有结点。子孙结点:以某结点为根结点的子树中所有结点。双亲结点:树中某结点有孩子结点,则这个结点称为他...

2018-07-11 20:36:11 779

原创 三子棋游戏

头文件#ifndef _GAME_H_#define _GAME_H_#include<stdio.h>#include<windows.h>#include<stdlib.h>#include <string.h>#include<time.h>#pragma warning(disable:4996)#defin...

2018-06-29 18:47:44 244

原创 linux进入目录,创建文件,显示文件分别需要什么权限?!

一,linux进入目录需要什么权限?步骤一:创建一个目录day02步骤二:用chmod命令将“day02”目录的默认权限进行修改此时可以看到用户没有权限,无法访问。步骤三:再将day02的权限修改,即给拥有者添加“r”读的权限cd进入目录,发现用户没有权限,无法访问。步骤四:将day02的权限从读改成只有写的权限cd进入目录,发现用户没有权限,无法访问。...

2018-06-13 21:04:02 2457

原创 结构体、位段、枚举、联合

结构体概念:将相同或不同数据放在一起的一种聚合数据类型。声明:struct tag{ member - list;}variable - list; 对上面的代码的说明:1.tag是结构体的标签或是名称,自己可以命名(见名知意)。可以省略,但是不建议省略。                                  2.member-list是结构体成员列表(不能...

2018-05-29 17:34:13 240

空空如也

空空如也

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

TA关注的人

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