自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 fscanf函数和memcopy函数,memmove函数

fscanf()函数fscanf()函数(有点像正则表达式):功 能: 从一个流中执行格式化输入,fscanf遇到空格和换行时结束,注意空格时也结束。用 法:int fscanf(FILE *stream, char *format,[argument...]);int fscanf(文件指针,格式字符串,输出列表);  for exam

2015-01-30 11:04:03 596

原创 FishGUI:迭代器设计模式二-----迭代器模式

设计意图:迭代器模式提供一了一种机制,可以使我们按照一种统一的方式遍历容器中的所有的节点,而无需了解容器的内部结构,实现这一点的关键是分离容器和容器的迭代器算法;如果不使用迭代器模式:遍历容器的算法就必须在容器内部。如果用户希望使用多种方式遍历容器,容器结构就会变得非常复杂;如果用户希望在同一时刻使用两种不同的方法来遍历容器,很难在一个类中同时为多种遍历算法记录当前的节点位置基

2014-12-27 14:34:34 732

原创 fishGUI:迭代器模式一------单链表和双链表的设计

问题:屏幕类和窗口类都能容纳其他的对象,因此在面向对象设计阶段为它们设计了一个公共的基类---容器类。这样如果要实现保存多个对象的机制可以在容器类中直接使用双向链表,代码的复用性就大幅提高了。但是如何具体地实现这种方案,并且尽可能复合面向对象原则并且可复用性最大化?实现方案一:问题:管理链表的数据结构分散在两个类中而且还要通过共有数据成员的方式把一个类中的内部信息暴露给另一给类

2014-12-27 09:14:50 948

原创 fishGUI:复合模式

复合模式设计意图:当一个系统中的对象需要组合成树形结构,以表示整体和部分的层次关系时,就可以使用复合模式。在继承关系的统一性和聚合关系的实用性得到了最好的结合基本结构:实现符合模式的关键是建立一个抽象类来代表所有简单对象和复合对象,使它们拥有公共的接口,系统中的简单对象和复合对象都是这个抽象类的派生类部件(Component)类:整颗继承树的抽象类,定义了整颗树中所有类的接口,其中包括管理和访问被聚合部件的接口,在这个抽象类中,可以实现一些缺省的行为,有时也需要定义访问上层部件的方法,这样可以使遍历整

2014-12-26 15:46:19 1648

原创 继承树: 透明VS安全 以及类型转换

继承树的透明和安全:透明:让客户程序透明地,无障碍地访问不同层次的类,这时面向对象语言提供继承机制的主要意图,也是完全替换原则的要求。在这种方案中最高层的抽象类如图11-3中的“动物”定义了适用于所有动物的接口,其他的派生类实现相应的接口即可。透明和职责分配的冲突;透明的继承用起来方便,但是存在一些问题:首先,当继承上的动物种类非常多时,很多动物都会有自己特有的一些行为,如果我们把这些行为全部定义在最高层的抽象类中,那么“动物“这个抽象类就会异常庞大,不易扩展和维护;其次,”飞“这个职责是否应该放在最

2014-12-26 15:43:55 1040

转载 怎么写一个拼写检查器

怎样写一个拼写检查器 Peter Norvig翻译: Eric You XU转载自:http://blog.youxu.info/spell-correct.html上个星期, 我的两个朋友 Dean 和 Bill 分别告诉我说他们对 Google 的快速高质量的拼写检查工具感到惊奇. 比如说在搜索的时候键入 [speling], 在不到 0.1 秒的时间内, Google 会

2014-12-26 09:55:19 625

原创 FishiGUI:全局变量和单件模式及其内存释放

全局变量的缺陷:变量名冲突:项目经理必须小心地维护变量名规则,所有工程师开发代码时,单个实例问题:全局变量不能阻止程序员定义一个类的多个对象实例,如果没有其他技术手段的帮助,保证一个类只有个类只有单个实例很困难初始化顺序:全局变量不可能保证相互之间遵循特定的初设计意图:保证一个类只有一个对象实例,并且提供一个访问该对象实例的全局访问点(不允许程序员随意创建该类的对象实例,但是可以从该类提供的静态成员函数得到该类唯一的对象实例的指针或者引用)

2014-12-24 10:55:33 848

原创 FishiGUI:观察者模式

观察者模式的设计意图:定义对象之间多对一的依赖关系,也即多个对象依赖于一个对象的关系,同时保证,当被依赖的对象状态发生变化时,所有的依赖者会被自动地通知。观察者模式的另一个名称是“”出版-----订阅模式“:当被依赖的对象向外发布自己的状态,而此前订阅了该状态的所有对象都会得到通知当一个对象需要通知另外一些对象,而无法预知哪些对象将被通知时,通过观察者模式就可以减弱通过对象和被通知对象之间的耦合关系当一个模块(模块A)的变化需要另外一个模块(模块B)相应的修改,而你不知道有多少个类会被修改,使用观察

2014-12-24 09:18:47 711

原创 FishiGUI:双向依赖--强双向依赖和弱双向依赖

强双向依赖:即在父亲类中聚合了一个孩子,而孩子类中有聚合一个父亲,首这种强双向依赖的关系不仅在现实世界根本不存在,在面向对象世界也不可能存在:“父亲有一个孩子,孩子有一个父亲”涉及到了两个命题,一个是因,一个是果,它们不能互为因果,在面向对象世界里,互为因果的代码则无法通过编译;头文件互相循环嵌入的代码也无法通过编译,这种情况类似于进程之间的死锁问题,编译器想要成功地编译父亲类,就会要求孩子类在父亲类之前被定义,而孩子类有要求父亲类咸鱼孩子类被定义---显然是自相矛盾的事情在C++语言,如果一定要实现双

2014-12-24 08:48:05 2185

原创 外观模式以及FishiGUI子系统外观模式的实现

外观模式:外观模式可以为一个子系统中的多个类提供统一的接口,外观模式定义了一个高层次的接口,并使一个子系统更易于使用;把一个组件单元构建成一个子系统有助于减少软件的复杂性,而且可以使子系统和其他的组件的通信更简洁和更容易控制,最大幅度地降低组件之间的耦合度。在面向对象设计的领域里,达到这一目标的最好的方法就是引进一个外观类,让它为子系统的通用功能提供一个简单的一致的公共接口子系统的接口不一定是具体的外观类,它和外观类之间的关系可能会有两种:子系统的接口是一个抽象类,不包含任何属性和具体的实现,其中

2014-12-23 11:16:42 640

原创 面向对象设计步骤二-------指定属性的类型和可见性,分配职责(GRASP),消息驱动,设计模式进行局部设计

增加遗漏的属性,指定属性的类型和可见性:分配职责,定义执行每个职责的方法:专家模式:创建者模式:低耦合:。高内聚:多态:纯虚构:中介者模式:不要和陌生人讲话:对消息驱动的系统,明确消息传递方式:利用设计模式进行局部设计:在面向对象设计的过程中,应该尽量使用成熟的设计模式来优化模型的局部设计:使用外观模式为适配器子系统添加一个统一的接口;通过实施观察者模式,是适配器子系统向框架层发送消息时,无需依赖于框架层的具体实现;对于系统中存在的只有唯一的对象实例的类,使用单件模式;

2014-12-23 08:55:14 1584

原创 面向对象设计的工作步骤一:细化和重组类,细化和实现类间的关系明确可见性

面向对象设计:面向对象设计是以面向对象分析阶段产生的分析模型作为输入,通过对分析模型中所有对象和类的分析,明确对象的属性和操作,指定属性的类型特征,不全对象之间的关系,并在不断细化的基础上,把分析模型转化为详细描述如何解决问题如何实现软件系统的对象模型;面向对象设计工作的主要工作步骤:细化和重组类细化和实现类间的关系,明确其可见性增加遗漏的属性,指定属性的类型和可见性分配职责,定义执行每个职责的方法对消息驱动的系统,明确消息传递方式利用设计模式进行局部设计画出详细的顺序图或者协作图

2014-12-22 21:04:39 2221

原创 面向对象设计:共性VS个性-------继承的粒度和聚合的粒度以及类的重构

共性和个性继承的粒度首先,必须基于需求来确定集成的力度,其次,对象的某些共性更适合用于属性而不是用新的基类和派生类来表达最后,要清楚,利用类和对象来模拟现实世界是手段而不是目的,我们最终的目的是最大限度的实现代码复用,提高软件质量,聚合的粒度:在UML语言中,聚合关系指的是整体和部分之间的关联关系纯粹为代码复用而存在的设计方案:在许多的实际的软件设计方案里,许多设计是纯粹为代码复用而存在的,也就是说,设计方案中的某些类无法对英语现实世界中的实际物体和关系,但是这些类的存在有助于提高代码的复用

2014-12-22 20:55:04 1091

转载 Python 正则表达式---概念基础,匹配过程,表达式元字符和语法以及实例

转载自 http://blog.csdn.net/pleasecallmewhy/article/details/8929576以下内容转自CNBLOG:http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html一、 正则表达式基础1.1.概念介绍正则表达式是用于处理字符串的强大工具,它并不

2014-12-19 20:48:45 510

转载 Python中的编码设定

PEP 263 - PEP 0263 -- Defining Python Source Code EncodingsPEP:0263Title:Defining Python Source Code EncodingsAuthor:Marc-André Lemburg , Martin von Löwis

2014-12-19 11:24:36 636

原创 设计模式的分类和种类及其适用情景

设计模式的分类和种类及其适用情景模式的种类及其适用情况

2014-12-18 18:13:45 764

原创 设计模式后的设计理念:需求变化,针对接口编程,优先使用聚合

模式的基本元素架构模式:设计模式:通用职责分配软件模式(GRASP模式):蕴含在设计模式中的设计原则和理念:设计模式最根本的意图是适应需求变化:针对接口编程,而不是针对实现编程:优先使用聚合而不是继承继承反映的是类之间的“‘.......是一个.......”这样的关系,聚合反映的是类之间“.................有一个.....”的关系

2014-12-18 16:38:42 1072

原创 用例级别--用户用例,高层用例和子功能用例

用例级别:用例级别指的是我们对用例模型的抽象和细化程度;在《编写有效用例》一书中,将由高到低的不同用例级别形象地比喻为云朵和风筝,海平面,海平面以下的鱼虾等自然界的事务,用户目标级用例:高层级别用例子功能级别用例扩展关系和包含关系

2014-12-18 15:01:03 6122

原创 需求分析的基本概念步骤和设计方案选择

设计方案选择的基本思路项目组面临两难选择时:首先用鱼和熊掌来识别矛盾的两个对立面:项目组用小鱼来比喻那些开发和维护代价较小,结构简单但是缺乏某些灵活性的设计方案,用熊掌来比喻那些灵活易扩展但是结构复杂,开发和维护成本较高的设计方案。在进行最终抉择的时候,项目组必须坚持如下准则:在满足需求的情况下,尽量选择小于,而舍弃熊掌;只有在存在无可置疑的理由时,才选择熊掌作为设计方案需求分

2014-12-18 11:28:29 4266

原创 用例建模及其作用和步骤

用例建模的作用:首先,用例模型是一种标准的语言,很容易成为开发人员之间交流和沟通的媒介,用例模型可以精确地定义软件需求,出现歧义的可能性很小,这可以保证用户和开发人员对需求理解的一致性其次,用例模型可以成为我们评估压法工作量的一个标准,特别是对于迭代式开发言。迭代式开发模型里,通常依据用例模型来划分软件的开发周期:优先级别高的用例会在早期的迭代周期中实现,而优先级别低的用例则被安排在后

2014-12-17 22:02:48 21940

转载 matplotlib 2D绘图基础

Pyplot tutorialDemo地址为:点击打开链接 一个简单的例子:view sourceprint?1.# -*- coding: utf-8 -*-2.import matplotlib.pyplot as plt3.plt.plot([1, 4, 9, 16])4.plt.ylabel('some numbe

2014-12-17 16:16:44 804

原创 Python matplotlib安装及所需要的 numpy dateutil pyparsing six的下载地址

推荐网址:http://www.lfd.uci.edu/~gohlke/pythonlibs/先下载相应的matplotlib,然后根据上面的requries需要的包点击相应的链接,然后下载相应的程序然后安装即可(我安装了(numpy,dateutil,pyparsing,six)

2014-12-17 11:26:45 879

转载 Python 内置函数sorted详解和itemgetter, attrgetter

Python lists have a built-insort() method that modifies the list in-place and a sorted() built-in function that builds a new sorted list from an iterable.There are many ways to use them to sort

2014-12-16 19:32:00 4858

原创 子系统设计和FishiGUI的子系统设计

目的和问题:除了依赖关系,还要规范操作系统适配层的所有接口,只要操作系统适配层的接口在移植过程中始终保持稳定,框架层的设计和实现就不会收到影响,但是为了实现同一接口的目标,为了保证同样的功能接口可以适用于不同的操作系统,必须对操作系统适配层进行更进一步的分解和细化子系统设计:子系统设计属于面向对象设计的范畴,是在面向对象分析工作结束之后进行的,对于那些相对独立却又比较复杂,不能用一个类

2014-12-16 11:32:56 864

原创 MVC模型和FishiGUI应用层的MVC模型

MVC概述:MVC (Modal View Controler)M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据你可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应

2014-12-16 10:52:37 965

原创 分层模型的典型应用和FishiGUI的分层模型

分层模式的典型应用:对于交互类型的软件也可以采用分层模式来进行架构分析,一般来说将交互性的软件分为三个层次比较合适:显示层的职责是为了显示信息,应用逻辑层封装那些一般不容易发生变化的核心逻辑,而数据持久层则用于数据处理并且把数据记录在文件,数据库等存储位置对于系统类型的软件,一般将软件分为中间层和系统层两个层次,中间层包括对话框架系统.数据管理接口以及一些与平台无关的服务,系统层则包括

2014-12-16 10:10:26 1091

原创 FishiGUI系统架构分析 和层次结构 二

FishiGUI的类型FIshiGUI属于为应用程序提供图形界面服务的框架系统,它并不直接与最终用户交互(负责与最终用户交互的是在FishiGUI基础上开发的应用程序),而是接受操作系统传来的硬件消息,完成相应的处理后,再将绘图消息发送给操作系统的图形接口,因此FishiGUI是一个系统类型的软件层体系结构:层体系结构有助于构建这样的应用:它能被分解成自任务组,其中每个子任

2014-12-16 09:43:37 1393

原创 软件开发架构分析和架构模式一

架构分析:架构分析工作主要从宏观上考虑一个软件系统应该如何组织。通常,在架构分析工作中,我们需要确定一些策略性的设计方针,原则和基本模式。在它们的指导下,我们可以高屋建瓴地分析软件系统的宏观结构,认识软件系统由哪些组件构成,了解组件之间的接口和协作关系。架构分析的结果对于后续的面向对象设计工作也是一种约束,有助于消除设计和实现过程中的随意性。因此,架构分析有时也被称为策略设计组件指的是

2014-12-16 08:40:36 1492

转载 python 字典的get方法

从字典中获取一个值  你需要从字典中获得一个值,不要处理在字典里找不到你所需要的键值的异常。  那就是字典的get方法。 如果你有一个字典  Python代码  d = {'key':'value'}    在一个异常安全的方法中,你能够写一个从d中提取‘key’的值的测试  Python代码  

2014-12-15 22:20:02 920

转载 numpy tile函数

Numpy的tile函数1.函数的定义与说明tile函数是模板numpy.lib.shape_base中的函数。函数的形式是tile(A,reps)函数参数说明中提到A和reps都是array_like的,什么是array_like的parameter呢?在网上查了一下,始终搞不明白,便把熟悉的python数据类型都试了一下,得出以下结论。A的类型众多,几乎所有类型都可以:arra

2014-12-15 21:02:35 1161

转载 Numpy 基础教程 array

numpy 基础教程基础篇NumPy的主要对象是同种元素的多维数组。这是一个所有的元素都是一种类型、通过一个正整数元组索引的元素表格(通常是元素是数字)。在NumPy中维度(dimensions)叫做轴(axes),轴的个数叫做秩(rank)。例如,在3D空间一个点的坐标[1, 2, 3]是一个秩为1的数组,因为它只有一个轴。那个轴长度为3.又例如,在以下例子中,数组的秩为2(它有两个

2014-12-15 20:47:35 664

原创 KNN(k近邻算法)

KNN算法:用于分类和回归预测(一般目标值(即分类的类别名)是:数值或者是标量值-比如0和1 是或者不是或者不知道)优点:精确度高,有离群点效果稳定,不需要关于数据的任何假设缺点:需要大量的计算,需要许多内存工作过程:现在假如我们已经拥有了一些数据(称为训练数据集)TS,并且拥有所有数据的类别名---即每条数据应该归于哪个类别。当我们要判断一条不知类别的数据时,首先让这条数

2014-12-15 19:22:17 559

原创 numpy for windows python 2.7 下载

numpy for windows python 2.7 下载链接:http://stackoverflow.com/questions/4554277/numpy-for-windows-python-2-7

2014-12-15 18:52:24 1350

转载 Python 机器学习库

转载自 http://blog.chinaunix.net/uid-22414998-id-4143709.html一、前提     在Pthon下做机器学习,需要科学计算包和绘图库的支持,科学计算则是NumPy或SciPy,似乎NumPy更流行些。画图工具包则必定为matplotlib。这些都是开源、免费使用的,选择这些库主要的原因是做线性代数中的矩阵计算极为便利,而且效率比自己开发高的

2014-12-14 09:48:03 665

原创 Python 异常处理

Python 异常处理的用途:错误处理:每当在运行时检测到程序错误时,Python就会引发异常,可以在程序代码中捕获和相应错误,或者忽略已经发生的异常,如果忽略错误,Python默认的异常处理行为将启动:停止程序,打印错误。如果不想启动默认行文,就要写try语句来捕捉异常并且从异常中回复:当检测到错误时,Python会跳到try处理器,而程序在try之后会重新执行时间通知:异常也可

2014-12-13 21:29:56 489

原创 python 函数装饰器

函数装饰器提供了一种方式,替函数明确了特定的运算模式,也就是将函数包裹了另一层,在另一函数的逻辑内实现静态方法的实现可以用如下的装饰器语法编写class C:@staticmethoddef meth():........装饰器实现的例子:class tracer:    def __init__(self,func):

2014-12-13 20:48:44 401

原创 Python 静态方法 类方法

Python 模拟静态方法:#staticmethod.pyclass Spam:    numInstances=0    #----------------------------------------------------------------------    def __init__(self):        """"""        Spam.

2014-12-13 20:34:11 493

原创 类相关的主题 子类扩展类型 伪私有属性 内容属性

通过子类扩展类型:类的伪私有属性:class语句内开头有两个下划线但是结尾没有两个下划线的变量名,会自动扩张而包含了所在类的名称。内容属性:提供一种方式让类定义自动调用的方法,来读取或者赋值实例属性,用得最多的是__getattr__和__setattr__

2014-12-13 19:58:47 371

原创 python 命名空间字典 字典键 继承树的打印

ython 命名空间字典模块的命名空间实际上是以字典的形式实现的,并且可以由内置属性__dict__显示这一点,类和实例对象也是如此:属性点号运算其实内部就是字典的索引运算,而属性继承其实就是搜索联结的字典而已,实例和类对象都是Python带有链接的字典因为属性实际是Python的字典键,那么有两种方式可以读取并对其进行赋值,通过点号运算或者通过键索引运算制作子类的实例时,该实例一开始回事空的命名空间字典,但是有链接会指向它的类,让继承搜索能顺着寻找,实际上,继承树可在特殊的属性中看到,实例中有个__

2014-12-13 18:59:05 1315

原创 Python 命名空间 及变量搜索规则 属性名称 属性名称 无点号运算的变量名

无点号运算的变量名与作用域相对应点号的属性名使用的是对象的命名空间有些作用域会对对象的命名空间进行初始化(模块和类)简单变量名:如果赋值就不是全局变量无点号的简单变量名遵循函数的LEGB作用域法则 具体如下啊:赋值语句(X=value):是变量名称为本地变量,在当前作用域内,创建或改变变量名X,除非声明它是全局变量引用(x):在当前作用域内搜索变量名X,之后是在任何以及所有的嵌套的函数中,然后是在当前的全局作用域中搜索,最后在内置作用域中搜索属性名称:对象命名空间点号的属性名指的是

2014-12-13 18:55:14 1229

matplotlib-1.4.2.win32-py2.7.exe

matplotlib-1.4.2.win32-py2.7.exe

2014-12-16

Python学习手册(第三版).pdf

Python学习手册(第三版)是非常好入门书籍

2014-12-16

numpy-1_5_0.chm

numpy-1_5_0.chm是配合Python 2.7的科学计算库的官方解释说明文档,非常详细

2014-12-16

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

TA关注的人

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