自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(0)
  • 资源 (64)
  • 收藏
  • 关注

空空如也

研究生(硕士+博士研究生使用)复试 英语自我介绍 成功上岸985高校

英语自我介绍(原则对简历的高度概括和凝炼) 英语自我介绍和英语问答都是重在流畅和自信(而不是侧重于语法) 难一点的词汇有音标注释 针对有工作的考研 可以稍微修改为自己的模板使用

2022-06-07

一款好用的科研PDF阅读器,Sumatra PDF

一款好用的科研PDF阅读器,开源。可做笔记。

2022-06-06

《传感器技术及应用》课程教学实施报告

《传感器技术及应用》课程教学实施报告

2022-06-06

博士生面试/复试综合汇报PPT模板+案例

2022年成功上岸的博士生面试/复试综合汇报PPT模板+案例。涉及01-1个人简历 01-2求学工作经历荣誉奖励 01-3学习成绩 01-4学习成绩 02-1硕士研究方向及发表论文 02-2主持及参加的课题和创新团队 03-1研究现状及发展 03-2研究思路设想与拟解决问题 03-3研究技术路线设想 03-4研究规划与目标

2022-06-06

昆明理工大学考博英语词汇真题(范围)

昆明理工大学考博英语词汇真题(范围),复习单项选择词汇,做题记单词。2022年笔试在线,因压缩一半的时间,没有词汇。

2022-06-06

hadoop-eclipse-plugin-1.2.1.jar

ant编译的hadoop-eclipse-plugin-1.2.1.jar 经测试eclipse-java-juno-SR2-linux-gtk.tar.gz 4.2.2 是成功的

2013-08-20

2010.06-2012.06英语六级真题答案整理和分析

自己从一网站上整理的2010.06-2012.06英语六级真题答案整理和分析

2012-11-06

软件工程之专题十一: 系统工程知识

专题十一: 系统工程知识 1. 系统与系统工程: 1.1 系统的概念: 系统就是由多个元素有机的结合在一起,执行特定的功能以达到特定目标的集合体,说的更详细一点就是: [1] 系统是由各个元素或子系统组成的; [2] 系统的各元素之间是相互作用和相互制约的; [3] 系统是有目标的; [4] 系统和环境有关,要适应环境的变化; [5] 系统有强烈的整体性,单元要服从整体。 一般系统论的概念:相互作用的多元素的复合体,系统具有多元性、相关性和整体性; 对系统概括为整体性、关联性、动态性、有序性和终极性,其中整体性是系统思想的核心观点,整体性不等于局部特性之和; 1.2系统的分类 系统可以按照各种各样的方法进行分类,一般的分类方法有5种: [1] 按系统的复杂程度:静态系统、控制系统、生物系统、社会系统和宇宙系统 [2] 按系统的抽象程度:概念系统、逻辑系统和实体系统 [3] 按系统的功能:经济系统、军事系统、电力系统和铁路信息系统 [4] 按系统的内部结构、形态:开环系统和闭环系统,静态系统和动态系统,线性系统和非线性系统,确定性系统和随机系统; [5] 按系统与外界的关系:封闭系统和开放系统; 1.3系统的特性 系统具有如下特性: [1] 整体性:系统中的元素是有机结合的 [2] 层次性:系统中的每个元素仍然可以看做是一个系统 [3] 相关性:系统内各个元素是有联系和相互作用的 [4] 目的性:任何一个系统都有一定的目标 [5] 环境适应性:任何系统都处在特定的环境中; 1.4系统与环境 一个系统之外的一切与其相关的事物构成的集合,统称为系统的环境。系统从环境中产生,在环境中运行、延续和演化。 系统的能控与能观:也可以称为可控和可观,这在控制系统中是重要的概念; 系统的接口与耦合:是指系统与环境的结合点或者是子系统之间的连接点,在信息系统中接口的作用十分重要。系统的耦合是指系统之间的联系,某些系统之间不容易耦合,可以采用缓冲器或者是中间件与之联系。 系统的自组织性:子系统之间的自发通过相互作用就能产生协同想象和相干效应,形成自己一定的组织功能和时空结构,使系统表现出新的有序状态。 1.5系统工程与系统方法 系统工程是系统科学在工程技术中的应用,其核心是组织管理与决策。所谓的系统工程主要有两层意思: 1) 作为学科,它研究大规模复杂系统为对象的一门新学科; 2) 作为工程,它又是一们工程技术,具有一般工程技术的特征,又有其自身的特点,研究物质系统和概念系统; 系统的思想即吧研究对象作为整体来考虑,着眼于整体最优进行, 1.6信息系统工程 信息工程一般是指以计算机、网络、数据库、软件等信息技术于产品为基本构件的系统工程; 信息系统工程的特征: 1) 信息系统工程是将信息系统、系统工程和信息工程三者相结合的产物。 2) 信息工程基于数据库系统; 3) 信息工程的目标是建设计算机化的企业管理系统 4) 信息工程是有多种技术和学科的综合; 5) 是一个以生产信息、辅助企业管理和决策的人/机社会系统工程; 6) 以数据库系统为中心,而且已经建立在计算机和网络平台上; 信息系统工程的发展: 大致可分为三大阶段: 1) 数据处理时代:中央处理机 2) 微机时代:分布式处理 3) 网络时代:规模更大、复杂性更高 2.系统分析基础知识 2.1系统分析的目的和任务 系统分析的主要任务似乎对现行的系统进一步详细调查,将调查到的文挡资料集中,对组织内部整体管理状况和信息处理过程进行分析,为系统开发提供所需的资料,并提交系统方案说明书; 系统分析侧重于从业务全过程的角度进行分析,确定分析结果,提出信息系统的各种设想和方案,并对所有的设想和方案进行分、研究、比较、判断和选择,获得一个最优的新系统的逻辑模型,并在用户理解计算机系统的工作流程和处理方式的情况下,将它明确的表达成书面资料—系统分析报告,即系统方案说明书。 系统分析阶段的结果是得到目标系统的逻辑模型,系统分析的主要步骤: 1) 对当前的系统进行详细调查,收集数据; 2) 建立当前系统的逻辑模型 3) 对现状分析,提出改良意见和新年系统应达到的目标 4) 建立新系统的逻辑模型 5) 编写系统方案说明书 2.2结构化分析方法 采用结构化的分析方法对一个系统进行

2011-06-05

软件工程之专题十:算法分析与设计

专题十:算法分析与设计 1.常用的算法设计方法:   1.1 迭代法   1.2 穷举搜索法   1.3 递推法   1.4 递归法   1.5 贪婪法   1.6 分治法   1.7 动态规划法   1.8 回溯法 算法基础部分: 算法是对特定问题求解步骤的一种描述,算法是指令的有限序列,其中每一条指令表示一个或多个操作。 算法具有以下5个属性:   有穷性:一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。   确定性:算法中每一条指令必须有确切的含义。不存在二义性。只有一个入口和一个出口   可行性:一个算法是可行的就是算法描述的操作是可以通过已经实现的基本运算执行有限次来实现的。   输入:一个算法有零个或多个输入,这些输入取自于某个特定对象的集合。   输出:一个算法有一个或多个输出,这些输出同输入有着某些特定关系的量。 所以对应的算法设计的要求:   正确性:算法应满足具体问题的需求;   可读性:算法应该好读,以有利于读者对程序的理解;   健壮性:算法应具有容错处理,当输入为非法数据时,算法应对其作出反应,而不是产生莫名其妙的输出结果。   效率与存储量需求:效率指的是算法执行的时间;存储量需求指算法执行过程中所需要的最大存储空间。一般这两者与问题的规模有关。 1.1 迭代法: 迭代法是用于求方程或方程组近似根的一种常用的算法设计方法。设方程为f(x)=0,用某种数学方法导出等价的形式x=g(x),然后按以下步骤执行: (1)选一个方程的近似根,赋给变量x0; (2)将x0的值保存于变量x1,然后计算g(x1),并将结果存于变量x0; (3)当x0与x1的差的绝对值还小于指定的精度要求时,重复步骤(2)的计算。 若方程有根,并且用上述方法计算出来的近似根序列收敛,则按上述方法求得的x0就认为是方程的根。上述算法用C程序的形式表示为: 【算法】迭代法求方程的根 { x0=初始近似根; do { x1=x0; x0=g(x1); /*按特定的方程计算新的近似根*/ } while ( fabs(x0-x1)>Epsilon); printf(“方程的近似根是%f\n”,x0); } 迭代算法也常用于求方程组的根,令 X=(x0,x1,…,xn-1) 设方程组为: xi=gi(X) (I=0,1,…,n-1) 则求方程组根的迭代算法可描述如下: 【算法】迭代法求方程组的根 { for (i=0;i<n;i++) x[i]=初始近似根; do { for (i=0;i<n;i++) y[i]=x[i]; for (i=0;i<n;i++) x[i]=gi(X); for (delta=0.0,i=0;i<n;i++) if (fabs(y[i]-x[i])>delta) delta=fabs(y[i]-x[i]); } while (delta>Epsilon); for (i=0;i<n;i++) printf(“变量x[%d]的近似根是 %f”,I,x[i]); printf(“\n”); } 具体使用迭代法求根时应注意以下两种可能发生的情况: (1)如果方程无解,算法求出的近似根序列就不会收敛,迭代过程会变成死循环,因此在使用迭代算法前应先考察方程是否有解,并在程序中对迭代的次数给予限制; (2)方程虽然有解,但迭代公式选择不当,或迭代的初始近似根选择不合理,也会导致迭代失败。 1.2 穷举搜索法: 穷举搜索法是对可能是解的众多候选解按某种顺序进行逐一枚举和检验,并从中找出那些符合要求的候选解作为问题的解。 要解决的问题只有有限种可能,在没有更好算法时总可以用穷举搜索的办法解决,即逐个的检查所有可能的情况。可以想象,情况较多时这种方法极为费时。实际上并不需要机械的检查每一种情况,常常是可以提前判断出某些情况不可能取到最优解,从而可以提前舍弃这些情况。这样也是隐含的检查了所有可能的情况,既减少了搜索量,又保证了不漏掉最优解。 【问题】 将A、B、C、D、E、F这六个变量排成如图所示的三角形,这六个变量分别取[1,6]上的整数,且均不相同。求使三角形三条边上的变量之和相等的全部解。如图就是一个解。 程序引入变量a、b、c、d、e、f,并让它们分别顺序取1至6的整数,在它们互不相同的条件下,测试由它们排成的如图所示的三角形三条边上的变量之和是否相等,如相等即为一种满足要求的排列,把它们输出。当这些变量取尽所有的组合后,程序就可得到全部可能的解。细节见下面的程序。 # include <stdio.h> void main() { int a,b,c,d,e,f; for (a=1;a<=6;a++) //a,b,c,d,e依次取不同的值 for (b=1;b<=6;b++) { if (b==a) continue; for (c=1;c<=6;c++) { if (c==a)||(c==b) continue; for (d=1;d<=6;d++) { if (d==a)||(d==b)||(d==c) continue; for (e=1;e<=6;e++) { if (e==a)||(e==b)||(e==c)||(e==d) continue; f=21-(a+b+c+d+e);//最后一个用减法算 if ((a+b+c==c+d+e))&&(a+b+c==e+f+a)) { printf(“%6d,a); printf(“%4d%4d”,b,f); printf(“%2d%4d%4d”,c,d,e); scanf(“%c”); } } } } } }

2011-06-05

软件工程之专题九:数据结构知识

专题九:数据结构知识 数据结构是计算机软件的一门基础课程,计算机科学各个领域及有关的应用软件都要用到各种数据结构.语言编译要使用栈、散列表及语法树;操作系统中用队列、存储管理表及目录树等;数据库系统运用线性表、多链表及索引树等进行数据管理;而在人工智能领域,依求解问题性质的差异将涉及到各种不同的数据结构,如广义表、集合、搜索树及各种有向图等等。学习数据结构目的是要熟悉一些最常用的数据结构,明确数据结构内在的逻辑关系,知道它们在计算机中的存储表示,并结合各种典型应用说明它们在进行各种操作时的动态性质及实际的执行算法,进一步提高软件计和编程水平。通过对不同存储结构和相应算法的对比,增强我们根据求解问题的性质选择合理的数据结构,并将问题求解算法的空间、时间及复杂性控制在一定范围的能力。 软件设计师考试大纲对数据结构部分的要求是熟练掌握常用数据结构和常用算法,因此,本专题从数据结构的概述出发,对基本的概念引出常用的数据结构类型的介绍和讲解,同时在讲解各种数据结构中间采用算法与数据结构相结合的方式,在算法步骤中使用数据结构,对数据结构的重点、难点进行了分析,最后讲解了与数据结构紧密相关的排序和查找算法,以及一些以往考试题的分析。 1. 数据结构概述 数据结构研究了计算机需要处理的数据对象和对象之间的关系;刻画了应用中涉及到的数据的逻辑组织;也描述了数据在计算机中如何存储、传送、转换。 学习数据结构注意的问题:  系统掌握基本数据结构的特点及其不同实现。  了解并掌握各种数据结构上主要操作的实现及其性能(时间、空间)的分析。  掌握各种数据结构的使用特性,在算法设计中能够进行选择。  掌握常用的递归、回溯、迭代、递推等方法的设计  掌握自顶向下、逐步求精的程序设计方法。  掌握自顶向下、逐步求精的程序设计方法。 在学习数据结构的知识之前,我们要了解一下数据结构中的基本概念。 数据:对客观事物的符号表示,在计算机中就是指所有能输入到计算机中并被计算机程序所处理的符号的总称。 数据项: 是数据的不可分割的最小单位; 数据元素:是数据的基本单位,在计算机程序中通常作为一个整体进行处理;一个数据元素可由若干个数据项组成。 数据对象:是性质相同的数据元素的集合,是数据的一个子集。 数据结构上的基本操作: ◆插入操作 ◆删除操作 ◆更新操作 ◆查找操作 ◆排序操作 数据结构是指数据对象及相互关系和构造方法,一个数据结构B形式上可以用一个二元组表示为B=(A,R)。其中,A是数据结构中的数据(称为结点)的非空有限集合,R是定义在A上的关系的非空有限集合。 根据数据元素之间的关系的不同特性,通常有下列4类基本结构。  集合——结构中的数据元素除了“同属于一个集合”的关系外,别无其他关系。  线性结构——结构中的数据元素之间存在一个对一个的关系。  树形结构——结构中的元素之间存在一个对多个的关系。  图状结构或网状结构——结构中的元素之间存在多个对多个的关系。 数据结构中,结点与结点间的相互关系是数据的逻辑结构。数据结构在计算机中的表示(又称为映象)称为数据的物理结构,也称存储结构。 数据元素之间的关系在计算机中有两种不同的表示方式:顺序映象和非顺序映象,并由此得到两种不同的存储结构:顺序存储结构和链式存储结构。 任何一个算法的设计取决于选定的数据(逻辑)结构,而算法的实现依赖于采用的存储结构。 数据的逻辑结构分为两类: 线性结构:线性表、栈、队列和串 非线性结构:树、图 数据的存储方法有四类: 顺序存储方法 链接存储方法 索引存储方法 散列存储方法 2. 常用数据结构 2.1线性表 在数据结构中,线性结构常称为线性表,是最简单、最常用的一种数据结构,它是由n个相同数据类型的结点组成的有限序列。 其特点是:在数据元素的非空有限集合中,  ◆存在唯一的一个被称做“第一个”的数据元素  ◆存在唯一的一个被称做“最后一个”的元素数据元素  ◆除第一个之外,集合中的每个数据元素均只有一个前驱  ◆除最后一个之外,集合中每个数据元素均只有一个后继 一个由n个结点e0,e1…,en-1组成的线性表记为:(e0,e1…,en-1)。线性表的结点个数称为线性表的长度,长度为0的线性表称为空的线性表,简称空表。对于非空线性表,e0是线性表的第一个结点,en-1是线性表的最后一个结点。线性表的结点构成了一个序列,对序列中两个相邻结点ei和ei-1,称前者是后者的前驱结点,后者是前者的后继结点。 线性表最重要的性质是线性表中结点和相对位置是确定的。 线性表的结点也称为表元,或称为记录,要求线性表的结点一定是同一类型的数据。线性表的结点可由若干个成分组成,其中唯一标识表元的成分成为关键字,简称键。 线性表是一个相当灵活的数据结构,它的长度可以根据需要增长或缩短。对线性表的基本运算如下:  INITIATE(L)初始化操作  LENGTH(L) 求长度函数  GET(L,i) 取元素函数  PRIOR(L,elm)求前驱函数  NEXT(L,elm) 求后继函数  LOCATE(L,x) 定位函数  INSERT(L,i,b)插入操作  DELETE(L,i) 删除操作 有多种存储方式能将线性表存储在计算机内,其中最常用的是顺序存储和链接存储。根据存储方式的不同,其上述的运算实现也不一样。 ◆ 顺序存储:是最简单的存储方式,其特点是逻辑关系上相邻的两个元素在物理位置上也相邻。通常使用一个足够大的数组,从数组的第一个元素开始,将线性表的结点依次存储在数组中。 顺序存储方式优点:能直接访问线性表中的任意结点。 线性表的第i个元素a[i]的存储位置可以使用以下公式求得: LOC(ai)=LOC(a1)+(i-1)*l 式中LOC(a1)是线性表的第一个数据元素a1的存储位置,通常称做线性表的起始位置或基地址。 顺序存储的缺点: 1) 线性表的大小固定,浪费大量的存储空间,不利于节点的增加和减少; 执行线性表的插入和删除操作要移动其他元素,不够方便; ◆链式存储 线性表链接存储是用链表来存储线性表。 单链表(线性链表): 从链表的第一个表元开始,将线性表的结点依次存储在链表的各表元中。链表的每个表元除要存储线性表结点的信息以外,还要有一个成分来存储其后继结点的指针。 线性链表的特点是:每个链表都有一个头指针,整个链表的存取必须从头指针开始,头指针指向第一个数据元素的位置,最后的节点指针为空。当链表为空时,头指针为空值;链表非空时,头指针指向第一个节点。 链式存储的缺点: 1) 由于要存储地址指针,所以浪费空间; 直接访问节点不方便; 循环链表: 循环链表是另一种形式的链式存储结构,是单链表的变形。它的特点就是表中最后一个结点的指针域指向头结点,整个链表形成一个环。因此,从表中任意一个结点出发都可以找到表中的其他结点。 循环链表和单向链表基本一致,差别仅在于算法中循环的条件不是结点的指针是否为空,而是他们的指针是否等于头指针, 循环链表最后一个结点的 link 指针不为 0 (NULL),而是指向了表的前端。 为简化操作,在循环链表中往往加入表头结点。 循环链表的特点是:只要知道表中某一结点的地址,就可搜寻到所有其他结点的地址。 循环链表的示例: 带表头结点的循环链表 : 双向链表: 双向链表是另一种形式的链式结构,双向链表的结点中有两个指针域,其一指向直接后继,另一指向直接前趋。双向链表克服了单链表的单向性的缺点。 前驱方向 后继方向 双向链表也可以有循环表,链表中存在两个环。一个结点的前趋的后继和该结点的后继的前趋都是指向该结点的。 p == p→lLink→rLink == p→rLink→lLink 2.2 栈 栈(Stack)是限定仅在表尾进行插入或删除操作的线性表。表尾端称栈顶(top),表头端称栈底(bottom)。 若有栈 S=(s0,s1,…,sn-1)则s0为栈底结点,sn-1为栈顶结点。通常称栈的结点插入为进栈,栈的结点删除为出栈。因为最后进栈的结点必定最先出栈,所以栈具有后进先出的特点。可以用一下一个图形来形象的表示: 栈有两种存储结构:顺序栈和链栈 顺序栈即栈的顺序存储结构是,利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时设指针top指示栈顶元素的当前位置。 栈也可以用链表实现,链式存储结构的栈简称链栈。若同时需两个以上的栈,则最好采用这种结构。对于栈上的操作,总结如下,大家可以仔细看一下这些程序,一个大的程序都是由一些对数据结构的小的操作组成的。 顺序存储的栈的基本操作如下: 判断栈满: int stackfull(seqstack *s) { return (s->top= =stacksize-1); } 进栈: void push(seqstack *s,datatype x) { if (stackfull(s)) error(“stack verflow”); s->data[++s->top]=x; } 判断栈空: int stackempty(seqstack *s) { return (s->top= = -1) } 出栈: datatype pop(seqstack *s) { if (stackempty(s)) error(“stack underflow”); x=s->data[top]; s->top--; return (x); }

2011-06-05

软件工程之专题七:软件工程专题

专题七:软件工程专题 1、软件工程知识 1.1概述 软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题的工程。其目的是提高软件生产率、提高软件质量、减低软件成本。 软件工程是1968年在德国的NATO会议上提出的,希望用工程化的原则和方法来克服软件危机;而软件危机就是软件开发和维护过程中的各种问题,由于软件开发阶段缺乏好的方法的指导和好的工具的辅助,而且缺少有关的文档,使得大量的软件难以维护。 软件生命周期是指由软件定义、软件开发和软件维护等阶段组成的全过程,反映软件生存期内各种工作得组织以及各个阶段如何衔接。下表归纳了软件生存周期各个阶段的任务、参与人员和产生文档。 常见的软件开发模型有瀑布模型、演化模型、螺旋模型和喷泉模型等。 阶段 任务 参与人员 产生文档 软件定义阶段——待开发软件要“做什么” 系统分析 确定待开发软件的总体要求和适用范围,以及与之有关的硬件、支撑软件的要求 用户、项目负责人、系统分析员 可合并项目计划书中 软件项目计划 确定待开发软件的目标,对其进行可行性分析,并对资源分配、进度安排等做出合理的计划 用户、项目负责人、系统分析员 可行性分析报告、项目计划书 需求分析 确定待开发软件的功能、性能、界面等要求,从而确定系统的逻辑模型 用户、项目负责人、系统分析员 需求规格说明书 软件开发阶段——待开发软件“怎么做” 软件设计 概要设计 模块分解,确定软件的结构,模块的功能和模块间的接口,以及全局数据结构的设计 系统分析员、高级程序员 设计说明书、数据说明书、模块开发卷宗 详细设计 设计每个模块的实现细节和局部数据结构的设计 高级程序员、程序员 编码 用某种程序语言为每个模块编写程序 高级程序员、程序员 程序清单 软件测试 发现软件中的错误,并加以纠正 高级程序员或系统分析员(另一部门或单位) 软件测试计划、软件测试用例说明,软件测试报告 软件维护阶段—开发后交付使用的软件的维护 软件维护 使软件适应外界环境的变化、实现功能的扩充和质量的改善而修改软件 维护人员 维护计划、维护报告   软件由计算机程序、数据及文档组成,同时与硬件、数据库人、过程等共同构成计算机系统。软件工程包括三个要素:方法、工具和过程。   主要的软件开发方法有以下几种方法:   生命周期法:命周期法认为:每一个软件系统都有一定的生命周期。软件的生命周期是指一个软件系统从其提出、调查到分析、设计和有效使用,直至被淘汰或取代的整个期间。软件生命周期法就是按软件生命周期的各个阶段划分任务,按一定的规则和步骤,有效地进行软件开发的方法。   通常一个软件系统的生命周期可分为五个阶段:准备阶段、分析阶段、设计阶段、实施阶段、运行与维护阶段   原型法:原型法是先根据用户的最主要要求,开发出能实现系统最基本功能的一个原型,再根据用户对原型使用与评价的意见,反复修改完善原型,直到等到用户满意的最终系统为止。   原型法分4个阶段:确定用户需求;设计原型;使用、评价原型;修改、完善原型。 1.2软件分析 软件开发模型:瀑布模型;演化模型(原型法);螺旋模型;喷泉模型(迭代和无间隙);软件成本模型;可行性分析的任务是从技术上、经济上、使用上、法律上分析需解决的问题是否存在可行的解。 需求分析是软件生存周期中相当重要的一个阶段。需求分析主要是确定待开发软件的功能、性能、数据、界面等要求。具体有以下几点:  确定软件系统的综合要求  分析软件系统的数据要求  导出系统的逻辑模型  修正项目开发计划  如有必要,可开发一个原型系统 需求分析的基本原则是能够表达和理解问题的信息域和功能域;以层次化的方式进行分解和不断细化;要给出系统的逻辑视图和物理视图; 描述软件需求的方法: 功能层次模型:一般来讲就是系统的功能图,模块分布图等描述整个系统的功能的分布和功能的层次结构; 数据流模型:就是以数据流为着眼点的分析方法得到的模型,主要通过数据在整个系统的流动情况来确定系统的主要功能主线和流程; 控制流模型:通过了解和界定系统中控制线,通过控制流的走向和控制的对象来确定系统的功能分布和控制与被控制的关系; 结构化分析(SA)方法是一种面向数据流的需求分析方法,它适用于分析大型数据处理系统。结构化分析方法的基本思想是自顶向下逐层分解,这样做可以把一个大问题分解成若干个小问题,经过多次逐层分解,每个最底层的问题都是足够简单、容易解决的,这个过程就是分解的过程。 结构化方法的分析结果由数据流图DFD、数据词典和加工逻辑说明几个部分组成。其中,DFD的基本成分有数据流(data flow)、加工(process)、文件(file)和源/宿(source/sink)。  画数据流图的基本步骤:自外向内、自顶向下、逐层细化、完善求精;  数据流图的父图与子图要平衡, 即输入和输出的数据流一致;  数据流图中的每个加工至少有一个输入数据流和一个输出数据流;  局部的数据存储不画出来,只有当局部数据存储作为某些数据加工之间的数据接口才画出,这有利于信息隐蔽;  画数据流的时候不画控制流,两者的区别就是控制流中没有数据;  一个加工的数据流与输出流不应该同名;  允许一个加工有多条数据流流向另一个加工,也允许一个加工有两个相同的输出流向两个不同的加工;  保持数据守恒:一个加工的所有输出数据必须

2011-06-05

软件工程之专题六: 数据库知识

专题六: 数据库知识 数据库管理系统的功能和特征   • 数据库模型(概念模式、外模式、内模式)   • 数据模型,ER图,第一范式、第二范式、第三范式   • 数据操作(集合运算和关系运算)   • 数据库语言(SQL)   • 数据库的控制功能(并发控制、恢复、安全性、完整性)   • 数据仓库和分布式数据库基础知识 1、数据库知识 1.1数据管理技术的发展   数据管理技术的发展阶段:   人工阶段:数据处理方式是批处理。其特点是:  数据不保存  没有专用的软件对数据进行管理  只有程序概念,没有文件概念  一组数据对应一个程序,即数据是面向程序的   文件系统阶段:数据处理方式有批处理,也有联机实时处理。其特点是:  数据可长期保存在外存上  数据的逻辑结构与物理结构有了区别,但简单  文件组织已多样化,有索引文件、链接文件和直接存取文件等,但文件之间相互独立,没有联系  数据不再属于某个特定的程序,可重复使用,但数据结构和程序之间的依赖关系并未根本改变。 其缺点是:  数据冗余性  数据不一致性  数据联系弱   数据库阶段:其特点是:  用关系模型表示复杂的数据模型  有较高的数据独立性  数据库系统为用户提供了方便的用户接口  数据库管理系统提供了四个方面的数据控制能力-数据完整性、数据安全性、数据库的并发控制、数据库的恢复 数据库的基本概念   数据库(DB):是存储在一起的相关数据的集合。DB能为各种用户共享,具有最小冗余度,数据间联系密切,而又有较高的程序与数据的独立性。   数据库管理系统(DBMS):DBMS是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。DBMS可分为层次型、网状型、关系型、面向对象型。   数据库系统(DBS):即是采用了数据库技术的计算机系统,是实现有组织地、动态存储大量关联数据,方便多用户访问的计算机软件、硬件和数据资源而组成的系统。   数据库技术:研究数据库的结构、存储、设计、管理和使用的一门软件学科。

2011-06-05

软件工程专题五:计算机网络知识

专题五:计算机网络知识 1、计算机网络知识 1.1计算机网络知识概述: 计算机网络的发展: 计算机网络就是采用通信手段,将地理位置分散的,各自具备自主功能的若干台计算机有机地连接起来的一个复杂系统,这个复杂系统可用来实现通信交往、资源共享或协同工作等目标。 计算机网络是计算机技术和通信技术日益发展和密切结合的产物,其发展可分为4代: ◆第一代的计算机网络实际上是指以单台计算机为中心的远程联机系统,也称之为面向终端的计算机通信网络 ◆第二代的计算机网络简称为计算机—计算机网络,它把一个计算机网络分成“通信子网”和“资源子网”两大部分 ◆第三代网络指的是开放式标准化的网络,目前存在着两种占主导地位的网络体系结构TCP/IP和OSI体系结构 ◆第四代网络是目前正在探讨与发展中的网络结构 功能: 计算机网络具备3大基本功能:  通信交往,即计算机用户之间的相互通信与交往  共享资源,包括硬件资源、软件资源、数据与信息资源  协同工作,即计算机之间或计算机用户之间的协同工作 分类: 计算机网络根据不同的角度有不同的分类。  按地理区域范围可分为局域网(LAN)、城域网(MAN)、广域网(WAN)、互联网(Internet)  按信息传输技术分类可分为广播式网络和点到点网络。  按网络传输信息所采用的物理信道可分为有线网络和无线网络  按网络的使用范围可分为公用网和专用网  按网络的拓扑结构可分为星形网、环形网、总线网、树形网、完全连接网、交叉环形网以及不规则网。 组成: 计算机网络由计算机硬件、软件、通信设备、通信线路(通信介质)以及数据和信息资源组成。 另外,也可以把计算机网络分为资源子网和通信子网两个部分,通信子网负责网络信息的传输而资源子网负责信息的处理。例如,对于局域网而言,资源子网是由LAN中的各台计算机(服务器和客户机)及其外部设备组成,而通信子网则是由传输介质、网卡和网络其他连接设备组成。 1.2网络协议和架构模型:   网络协议(有时也称为通信协议)是指在计算机与计算机之间进行通信必须遵循的一些事先约定好的规则。网络协议必须遵循标准化的体系结构,目前主要有ISO的OSI标准和TCP/IP协议组标准。  ISO OSI/RM层次模型   在OSI/RM层次模型中,把网络协议规定成7层模型。   I. 物理层    给出了一个通信信道的物理媒体上传输原始的二进制数据流(也称比特流)时的协议。   II. 数据链路层   给出了把二进制数据流划分成数据帧,并依照一定规则传送与处理的协议。   III. 网络层   把数据帧划分成更小的“分组”,规定分组的格式,给出使分组经过通信子网正确的从源传送到目的地的协议。网络层是控制通信子网正常运行的协议,它提供两类典型的数据分组传送服务方式。  数据报(datagram):也称为无连接的网络服务,适宜于传送短的报文,传送速度快。  虚电路(virtual circuit):是基于连接的网络服务,类似于电话系统的通话。   IV. 运输层(传输层)   根据高层用户的请求建立起有效的网络通信连接,处理端到端之间通信的差错控制、恢复处理和流量控制问题,也可以方便的撤消与拆除网络连接。   V. 会话层   允许不同主机上的各种进程之间进行会话。   VI. 表示层   为应用层提供传输的信息在表示方面的规则与协议。   VII. 应用层   为各类不同的网络应用提供使用网络环境的手段,具体规定了在用户级别需要的、带有通信任务的许多常用信息服务的规则和协议。   TCP/IP协议组   TCP/IP协议组,也称因特网协议组,共有5层结构。   I. 物理层   II. 数据链路层   III. 网络层   用来方便的连接各种通信子网,负责路由选择合适的通信节点,使数据能从源主机发往目的地主机。其中有IP协议、ICMP(网际控制报文)协议、ARP协议、RARP协议等。   IV. 传输层   只存在于主机之间,提供主机之间进程与进程的有效数据传输。其中有TCP协议与UDP协议。   V. 应用层   提供了各种应用程序使用的协议,如FTP、HTTP等。这里的应用层对应ISO/RM的会话层、表示层和应用层。 1.3网络操作系统:   网络操作系统是实现网络通信的有关协议以及为网络中各类用户提供网络服务的软件的集合,其主要目标是使用户能通过网络上各个计算机站点去方便而高效地享用和管理网络上的各类资源。   网络操作系统除了具有处理机管理、存储管理、文件管理、设备管理等基本的操作系统功能,还必须具有如下两大功能。  通过实现各类网络通信协议,提供可靠而有效的网络通信交往能力。  通过实现各种网络命令、实用程序和应用接口,向各类用户提供网络服务功能,使用户能根据其规定的权限去使用相应的网络资源。   目前最流行的网络操作系统是UNIX、Linux、Windows NT Server、Novell Netware。    Novell Netware   也被称为Novell网。其主要特征是:  对文件与目录进行集中管理,提供目录服务与帐户管理服务  主要采用文件级传输信息的方式工作,并以优化方式配置和管理最重要的硬盘资源内容  具有相对完善的一批安全性措施,包括:卷/目录/文件的管理,帐户与计费管理,用户权限、文件/目录属性限制,用户登录的站点与  时间限制等,都可以由LAN中的网络管理员进行统筹规划与管理  提供了一类开放式的网络软件使用、安装与开发环境  提供了共享打印服务  对硬盘与系统采取了较多的可靠性措施 Microsoft Windows NT Server 即NT网络。1993年推出NT系统,2000年后使用Windows 2000 Server。其主要特征是:  非常适合作为企事业单位应用服务器和数据库服务器的支持,构成客户机/服务器应用系统  提供了域模型工作方式和工作组模型工作方式  具有相当友善的用户使用界面  具有相当良好的开放性  支持多种文件系统  采用用户登录环境文件(profile)和信任关系来加强集中管理资源和集中管理用户环境与权限 提供有一批改进网络可靠性与安全性的措施 UNIX UNIX系统是目前应用最广的系统平台,它重点实现以下几个方面的内容。  文件管理  在网上管理用户程序的分布与执行  网络内点到点的邮件传送和文件传输  网络内非本地的打印输出服务 1.4局域网技术 基本特征 局域网的基本特征是:

2011-06-05

软件工程专题四:多媒体专题

专题四:多媒体专题 1、多媒体知识: 1.1多媒体知识概述  基本概念 多媒体信息一般指用文本、图形、图像、动画、音频和视频影像等形式表示的信息。多媒体计算机技术是指利用计算机交互地综合处理相互之间有联系的文本、图形、图像、动画、音频、视频等多种信息。多媒体的主要特性表现在信息载体的多样性、交互性和集成性。 多媒体技术是指能对多种载体上的信息和多种存储体上的信息进行处理的技术; 而媒体是指承载信息的载体; 多媒体具有交互性而媒体不具备交互性; 屏幕更新频率:显示器每秒更新的次数; 彩数:显示画面的色彩数;(bpp是指表示每个像素所需的2进制位数) 分辨率:显示画面的细腻程度;  关键技术 在多媒体的研究与开放中,利用了许多关键技术,这些技术是支持多媒体研究与开发的核心。  数据压缩技术 数字化的声音和图像包含了大量的数据。如果不进行数据压缩,实时处理数字化的声音和图像信息所需要的存储容量、传输率和计算速度都是目前计算机难以承受的。所以数据压缩技术一直是多媒体各项研究的重点。  大规模集成电路(VLSI)制造技术 进行声音和图像信息的压缩处理要求进行大量的计算。VLSI技术的发展让我们可以生产低廉的数字信号处理器(DSP)芯片用硬件来完成复杂的计算处理。  大容量的光盘存储器(CD-ROM) 多媒体信息虽然经过了压缩处理,但还是含有大量的数据,所以需要有大容量的存储设备来保存这些信息。  实时多任务操作系统 多媒体技术需要同时处理声音、文字、图像等多种媒体信息,其中声音和视频图像还要求实时处理,需要有能支持对多媒体信息进行实时处理的操作系统。  构成 通常,多媒体系统由以下4个部分构成。  硬件系统 最重要是根据多媒体技术标准而研制生产的多媒体信息处理芯片、板卡和光盘驱动器等。  多媒体操作系统 这是多媒体的核心,具有实时任务调度、多媒体数据转换和同步控制、对多媒体设备的驱动和控制,以及图形用户界面管理等。  媒体处理系统工具 它是多媒体重要的组成部分,也称为多媒体系统开发工具软件。  用户应用软件 1.2图形和图像  基本原理 ◆亮度、色调和饱和度 亮度:表示光的明亮程度,它与被观察物体的发光强度和人类视觉系统的视敏功能有关。 色调:反映的是颜色的种类,是决定颜色的基本特性。 饱和度:指颜色的纯度,即掺入白光的程度,或者说是颜色的深浅程度。 色调和饱和度通称为色度。 ◆彩色空间 在多媒体技术中,用得最多的是RGB彩色空间表示。 而一般在彩色电视系统中,采用的是YUV彩色空间。 另外,还有CIE XYZ、CIE LAB、CCIR601-2YCbCr彩色空间等。 ◆图形图像文件 图形是指用计算机绘制工具绘制的画面,包括直线、曲线,圆/圆弧,方框等成分。图形一般按各个成分的参数形式存储,可以对各个成分进行移动、缩放、旋转和扭曲等变换,可以在绘图仪上将各个成分输出。 图像是由输入设备捕捉的实际场景或以数字化形式存储的任意画面。图像可以用位图或矢量图形式存储。 ●位图 也叫黑白图象,它是按图像点阵形式存储各像素的颜色编码或灰度级。位图适于表现含有大量细节的画面,并可直接、快速地显示或印出。其存储量大,一般需要压缩存储。 ●矢量图 它用一组指令或参数来描述其中的各个成分,易于对各个成分进行移动、缩放、旋转和扭曲等变换。矢量图适于描述由多种比较规则的图形元素构成的图形,但输出图像画面时将转换成位图形式。 图形图像的主要指标有分辨率、色彩数、图形灰度。分辨率有屏幕分辨率和输出分辨率。前者用每英寸行数和列数表示,后者是以每英寸的像点数表示。图形图像的色彩数和灰度级则是用位来表示。真彩:24位 图形和图像文件格式很多,以下主要介绍几种常见的格式。  BMP:PC机上最常见的位图格式,尤其在Windows系统中使用特别广泛。  GIF:主要用于在不同平台上进行图像交换,是经过压缩的图形格式。GIF文件最大64MB,颜色数最多256色。  JPEG:文件压缩比较高,文件比较小。虽然它采用的是有损压缩算法,但对图形图像的损失影响并非很大。其色彩数最高可达到24位。  TIF:有压缩和非压缩两大类,是许多图像应用软件所支持的主要文件格式之一,其最高支持的色彩数可达16M。  PSD:Photoshop中的标准文件格式,专门为Photoshop而优化。  CDR:CorelDraw的文件格式。 注:Photoshop和CorelDraw都是目前最流行的图形图像处理软件。 1.3音频  基本概念 模拟录音方式直接记录音频信号的波形,重放时用磁头拾取信号。目前模拟录音动态范围可达到80db(分贝,信噪比的单位),为进一步提高音质,采用数字音频技术。 计算机内的音频必须是数字形式的。数字声音是一个数据序列,是一种采样的声音,它是由模拟声音经抽样、量化和编码后得到的。 在对音频数据进行压缩时,需要从语音质量、数据率和计算量3个方面来加以考虑。 语音压缩编码从压缩方法来看,可分为3类。  波形编码:采用这种编码可获得高质量语音,但数据率不易降低。  参数编码:该方法的数据率低,但质量又不高。  混合编码:综合前面两种方法的编码方法。 语音、语言和音乐合成 语音合成从合成采用的技术来讲可分为:  发音参数合成  声道模型参数合成  波形编辑合成 如果从合成策略上又可分为:  频谱逼近  波形逼近 实现计算机语音输出有两种方法:一.录音/重放;二.文-与转换; 语言合成目前和仅处于文字到语音转换的层次上。文-语转换(TTS)是一种智能型的语音合成,需要建立语音参数数据库、发音规则库等。 音乐合成技术有两种。 ◆调频(FM)合成 FM合成方式是将多个频率的简单声音合成复合音来模拟各种乐器的声音。FM合成方式是早期使用的方法,用这种方法产生的声音音色少、音质差。 ◆波形表(Wave Table)合成 这种方法是先把各种真正乐器的声音录下来,再进行数字化处理形成波形数据,然后将各种波形数据存储在只读存储器中。发音时通过查表找到所选乐器的波形数据,再经过调制、滤波、再合成等处理形成立体声送去发音。存储声音样本的ROM容量的大小对波表合成效果影响很大。 MIDI: MIDI(musical instrument digital interface)是数字乐器接口的国际标准,它定义了电子音乐设备与计算机的通讯接口,规定了使用数字编码来描述音乐乐谱的规范。 常见的MIDI设备有电子琴等。计算机中以MID为扩展名的文件称为MIDI文件,其中存放的是对MIDI设备的命令,即每个音符的频率、音量、通道号等指示信息。最后播出的声音是由MIDI设备根据这些信息产生的。 MIDI声音可以用于配音,它的缺点是对回放设备的依赖太强,还有就是不能记录人声; 常见音频格式:

2011-06-05

软件工程之专题二:程序语言部分

1、程序语言知识 1.1 程序语言:    程序语言分为低级语言和高级语言两个大类。    低级语言:又称为面向机器语言,它是特定的计算机系统所固有的语言。  机器语言:虽然执行效率高,但编写出来的程序可读性很差,程序难以修改和维护。  汇编语言:汇编语言是机器语言的一种提升,它使用了一些助记符号来表示机器指 令中的操作码和操作数。但它仍然是一种和计算机的机器语言十分接近的语言,使用起来仍然不太方便。  高级语言:与人们的自然语言比较接近,使用起来很方便,也极大的提高了程序设 计的效率。 下面简单介绍了几种高级语言的特点: Fortran:第一个被广泛用于进行科学计算的高级语言。 Algol: 早期研制出来的高级语言。有严格的文法规则,用巴科斯范BNF来描述语言的文法,是一个分程序结构的语言。(最近嵌套原则和存储器使用效率高) Cobol:面向事务处理的高级语言。在数据库管理系统设计方面使用广泛。 Pascal:具有相当强的表达能力,特别是对于数据结构功能的表达极具优势。 C :当今最通用的程序设计语言。C是一种较低级的语言,提供了指针和地址操作的能力,但正是因为它的这一特点,才使它更具灵活性。C与UNIX操作系统紧密相关。 Prolog:逻辑型语言的代表。它是建立在关系理论和一阶谓词逻辑理论基础上的。Prolog程序由一些俗称事实和规则的Horn子句组成,具有很强的推理功能,适用书写自动定理证明、专家系统、自然语言理解等问题的程序。 LISP:典型的函数型程序语言。它以λ演算为基础。它广泛的用于问题求解等人工智能领域。 面向对象技术具有3个最重要的特征:封装性、继承性和多态性。 ◆封装性:指隐藏类对象内部实现的复杂细节,将类以变量类型的形式提供给用户,从而有效地保护内部所有数据不受外部破坏。 ◆继承性:指一个类(父类)再加上某些新的特征生成另外一个新类(子类),子类具有父类的全部特征,从而增强了类的共享机制,实现了软件的可重用性,简化了软件的开发工作。 ◆多态性:指将同一处理过程或函数应用于不同的变量(参数),实现数据和过程的功能重载,从而简化编码。 下面简单介绍一下几种面向对象语言。 C++:是在C语言的基础上发展起来与C兼容的语言。是目前最流行的面向对象语言,主要增加了类功能和从其他类中继承类对象的功能。 Smalltalk:典型的面向对象的程序设计语言,引入了类和对象。 Java: 由SUN公司开发的一种面向对象的程序设计语言。其主要特点是可移植性好,可用于各种平台,尤其适合网络上运行。 数据类型和控制结构: 对于不同的程序语言,其提供的数据类型都不相同。数据是程序操作的对象,使用时都需要分配内存空间,它们都具有以下的属性。 数据名称:由用户通过标示符命名; 类型: 说明数据占用内存的大小和存放方式 存储类: 说明数据在内存中的位置和生存期 作用域: 说明数据可以使用的范围 生存期: 说明数据占用内存的时间 数据从不同角度可分成不同的类别: 纯量数据类型(基础数据类型)和结构数据类型:其中纯量数据类型包括(实型、整型、布尔型、指针,双精度型和枚举型);而结构数据类型包括(联合、数组、复型和记录) 按作用域分:全局量和局部量 按生存期分:自动生存期(auto)、静态生存期(static)和动态生存期 按程序运行期数据值是否改变:常量和变量 按类型分:void、标量、函数和聚合  标量又可分为算术、枚举和指针;  聚合可分为数组、结构体和共用体。 按构造方式分:基本类型和派生类型(主要参考C语言) 基本类型是void、char、int、float、double和枚举类型,以及其变种short、long、signed和unsigned。 派生类型包括指针、数组、函数、结构体(struct)和共用体(union)。其中,最后两种为用户类型。 程序语言中的控制结构为数据和数据上的运算组合成程序提供了基本框架,主要包括3种控制结构,即  顺序:  选择:if语句  重复:while语句 1.2 汇编语言: 汇编程序是为特定的计算机或者计算机系统设计的面向机器的语言。 汇编语言中的语句可以分成两大类:  与机器指令相对应的可执行汇编语句;  汇编控制语句,即伪指令。 伪指令并不翻译成机器指令,它的作用是控制汇编程序工作。 每条汇编语句被划分成4个区,依次是标号区、操作码区、操作数区和注解区。 例如:[标号] [操作码] [操作数] [注解] 用汇编语言编写的源程序,要通过汇编程序将它翻译成机器语言程序,才能被计算机执行。因此,汇编程序的功能就是将汇编语言所编写的源程序翻译成由机器指令和其他信息组成的目标程序。它的基本工作包括:  将每一条可执行汇编语句转换成对应的机器指令  处理源程序中出现的伪指令 整个汇编程序工作通常要对源程序进行两次扫描才能完成。第一次扫描主要工作是定义符号的值。第二次扫描的目的则是产生目标程序。其中,可执行汇编语句被翻译成对应的二进制代码机器指令,而伪指令会根据伪指令记忆码调用伪指令表对应元素所规定的子程序入口。 1.3 解释程序: 解释程序是一种语言处理程序,它直接执行源程序或源程序的内部形式。它并不产生目标程序,这是它和编译程序的主要区别。 高级语言实现语言处理有4种方案:  源程序被直接解释执行。  先将源程序翻译成高级中间代码,然后再扫描和解释执行高级中间代码。  先将源程序转化成和机器代码十分接近的低级中间代码,再解释执行这种中间代码。  源程序被最终翻译成机器语言表示的目标程序。这类系统的目标程序执行效率最高。 翻译系统与解释系统比较:  翻译系统在执行速度上都优于建立在解释执行基础上的系统;  翻译系统的缺点是其复杂性高,这使得它的开发和维护费用都大;  解释系统比较简单,可移植性较好,适合于以交互方式执行程序;  解释系统缺点是执行速度慢; 纯粹的解释和纯粹的编译都是极端,因此一般是两种技术的结合,先将源程序编译形成中间代码,然后由解释器解释执行。 解释系统的结构可分成两个部分。 1.包括通常的词法分析程序以及语法和语义分析程序,它的作用仍是把源程序翻译成中间代码,中间代码的设计常采用逆波兰(后缀)表示形式(符号在后面)。 2.解释部分,用来对第一部分所产生的中间代码进行解释执行,完成真正的解释。 1.4 编译程序: 编译程序的功能是把某些高级语言书写的源程序翻译成与之等价的低级语言(汇编语言或者机器语言)的目标程序。其过程可以分成6个阶段。

2011-06-05

软件工程之专题一:计算机系统知识

1、计算机硬件基础知识: 1.1计算机系统结构  计算机的发展历史:    1946年,世界上第一台电子计算机ENIAC出现,之后经历了5个发展阶段: 冯式结构计算机的组成部分:存储器、运算器、控制器、输入设备和输出设备。 强化的概念: 计算机的工作过程:一般是由用户使用各种编程语言把所需要完成的任务以程序的形式提交给计算机,然后翻译成计算机能直接执行的机器语言程序,在计算机上运行。 计算机系统可以由下面的模型表示:

2011-06-05

图论与网络流理论 图论与网络流理论

中科院研究生院专业基础课 第一章 图的基本概念 图的基本概念;二部图及其性质;图的同构;关联矩阵与邻接矩阵。 路、圈与连通图;最短路问题。 树及其基本性质;生成树;最小生成树。 第二章 图的连通性 割点、割边和块;边连通与点连通;连通度;Whitney 定理;可靠通信网络的设计。 第三章 匹配问题 匹配与最大匹配;完美匹配;二部图的最大匹配;指派问题与最大权匹配。 第四章 欧拉图与哈密尔顿图 欧拉图;中国邮递员问题;哈密尔顿图;旅行商问题。 第五章 支配集、独立集、覆盖集与团 支配集、点独立集、点覆盖集、边覆盖集与团的概念及其求法。 第六章 图的着色问题 点着色;边着色;平面图;四色猜想;色多项式;色数的应用。 第七章 网络流理论 有向图;网络与网络流的基本概念;最大流最小割定理;求最大流的标号算法;最小费 用流问题;最小费用最大流;网络流理论的应用。

2011-05-01

qt-x11-free-3.3.4.tar.gz

qt 环境搭建软件 qt 环境搭建软件 qt 环境搭建软件

2010-03-01

CrazyProgramer

精心收藏,故拿来和大家分享。如有侵权,请管理员删掉!

2010-03-01

qtdesigner sqlite qt

Rapid Dialog Design Qt is designed to be pleasant and intuitive to hand-code, and it is perfectly possible to develop Qt applications purely by writing C++ source code. Qt Designer expands the options available to programmers, allowing them to combine visually designed forms with their source code. In this section, we will use Qt Designer to create the Go-to-Cell dialog shown in Figure 2.4. Whether we do it in code or in Qt Designer, creating a dialog always involves the same fundamental steps: Create and initialize the child widgets. Put the child widgets in layouts. Set the tab order. Establish signal–slot connections. Implement the dialog's custom slots. Figure 2.4. Go-to-Cell dialog To launch Qt Designer, click Qt 3.2.x|Qt Designer in the Start menu on Windows, type designer on the command line on Unix, or double-click designer in the Mac OS X Finder. When Qt Designer starts, it will pop up a list of templates. Click the "Dialog" template, then click OK. You should now have a window called "Form1". Figure 2.5. Qt Designer with an empty form The first step is to create the child widgets and place them on the form. Create one text label, one line editor, one (horizontal) spacer, and two push buttons. For each item, click its name or icon in the "toolbox" at the left of Qt Designer's main window and then click the form roughly where the item should go. Now drag the bottom of the form up to make it shorter. This should produce a form that is similar to Figure 2.6. Don't spend too much time positioning the items on the form; Qt's layout managers will lay them out precisely later on.

2010-03-01

嵌入式数据库sqlite简介

SQLite命令行功能简介 DML/DDL语句的使用和以前一致,不做介绍 .databases 列出数据库文件名 .tables ?PATTERN? 列出?PATTERN?匹配的表名 .import FILE TABLE 将文件中的数据导入的文件中 .dump ?TABLE? 生成形成数据库表的SQL脚本 .output FILENAME 将输出导入到指定的文件中 .output stdout 将输出打印到屏幕 .mode MODE ?TABLE? 设置数据输出模式(csv,html,tcl… .nullvalue STRING 用指定的串代替输出的NULL串 .read FILENAME 执行指定文件中的SQL语句 .schema ?TABLE? 打印创建数据库表的SQL语句 .separator STRING 用指定的字符串代替字段分隔符 .show 打印所有SQLite环境变量的设置 .quit 退出命令行接口

2010-03-01

XML 指南XML 实例XML 测验XML 基础

Empire Burlesque Bob Dylan USA Columbia 10.90 1985 Hide your heart Bonnie Tyler UK CBS Records 9.90 1988 . . . . 即使使用CSS的显示效果很好,我们不认为使用CSS样式单显示XML文档是未来Web开发的趋势。我们相信,使用XSL程序格式化XML文档将会是未来的趋势,目前最主要的浏览器都支持这种技术。 -------------------------------------------------------------------------------- 使用XML创建未来的主页? 你愿意使用XML来创建你未来的网站么? 不,我不认为这是一个好主意。我们也不拒绝去做这样一个尝试:A homepage written in XML. 我们不相信XML会直接用于创建未来的Web页面。

2010-03-01

Packet Tracer 5.0软件使用教程深入详解

第一篇、熟悉界面 一、设备的选择与连接 在界面的左下角一块区域,这里有许多种类的硬件设备,从左至右,从上到下依次为路由器、交换机、集线器、无线设备、设备之间的连线(Connections)、终端设备、仿真广域网、Custom Made Devices(自定义设备)下面着重讲一下“Connections”,用鼠标点一下它之后,在右边你会看到各种类型的线,依次为Automatically Choose Connection Type(自动选线,万能的,一般不建议使用,除非你真的不知道设备之间该用什么线)、控制线、直通线、交叉线、光纤、电话线、同轴电缆、DCE、DTE。其中DCE和DTE是用于路由器之间的连线,实际当中,你需要把DCE和一台路由器相连,DTE和另一台设备相连。而在这里,你只需选一根就是了,若你选了DCE这一根线,则和这根线先连的路由器为DCE,配置该路由器时需配置时钟哦。交叉线只在路由器和电脑直接相连,或交换机和交换机之间相连时才会用到。 注释:那么Custom Made Devices设备是做什么的呢?通过实验发现当我们用鼠标单击不放开左键把位于第一行的第一个设备也就是Router中的任意一个拖到工作区,然后再拖一个然后我们尝试用串行线Serial DTE连接两个路由器时发现,他们之间是不会正常连接的,原因是这两个设备初始化对然虽然都是模块化的,但是没有添加,比如多个串口等等。那么,这个Custom Made Devices设备就比较好了,他会自动添加一些“必须设备的”,在实验环境下每次选择设备就不用手动添加所需设备了,使用起来很方便,除非你想添加“用户自定义设备”里没有的设备再添加也不迟。 当你需要用哪个设备的时候,先用鼠标单击一下它,然后在中央的工作区域点一下就OK了,或者直接用鼠标摁住这个设备把它拖上去。连线你就选中一种线,然后就在要连接的线的设备上点一下,选接口,再点另一设备,选接口就OK了。注意,接口可不能乱选哦。连接好线后,你可以把鼠标指针移到该连线上,你就会线两端的接口类型和名称哦,配置的时候要用到它。

2010-03-01

Outlook Express 使用技巧大全之设置篇

①.选择“常规”选项卡,这是OutlookExpress的常规设置,我们选中“每隔X分钟检查一次新”复选框,然后设定好时间间隔用于指定OutlookExpress检查新邮件的间隔时间。选中该复选框后,每次启动OutlookExpress时将同时检查新邮件,如果你想立即检查新邮件,可以单击工具栏上的“发送和接收”按钮,同时发件箱中的所有邮件都将被发送出去。   ②.选择“发送”选项卡,设定好邮件和新闻的发送格式,一般选HTML格式,并选中“立即发送邮件”复选框。   ③.选择“阅读邮件”选项卡进行邮件阅读设置和邮件字体设置。   ④.“安全”选项卡允许我们对邮件的安全性进行设置,如果你要更改Internet区域(这是你的电子邮件所在的区域)的安全级,可点击“设置”按钮,要将单个的Web站点添加到“受限制的站点”区域(在该区域可以为单个站点设置严格的安全级),可单击“区域”列表中的“受限制的站点区域”,然后单击“添加站点”。如果你担心别人假冒你的电子邮件,那么你可以设置自己的数字签名。数字签名是您的电子身份卡,它可使收件人相信邮件是您发送的,并且未被伪造或篡改。你得先点击“安全”选项卡上的“获取数字标识”来获取它,然后选中“从以下地点发送安全邮件时使用数字标识”复选框,再单击“数字标识”按钮并选定希望该帐号使用的数字标识。   以上选项设定完毕,我们还要添加Internet帐号,当然你先得从Internet服务提供商(ISP)那里得到如下信息:邮件服务器名、帐号名和密码以及接收和发送邮件的服务器名;对于要添加新闻阅读则须知道要连接的新闻服务器名、帐号名和密码(如果需要的话)。如果要添加邮件帐号:   ①.打开“工具”菜单,点中“帐号”,单击“添加”,选择“邮件”,在弹出的“姓名”窗口中填入你的大名,并单击“下一步”,

2010-03-01

数据结构 课程设计 joseph环

int main() { int n,m; node *head=NULL,*p=NULL; //头指针即首成员地址,遍历指针p printf ("请输入成员总人数:\n"); scanf ("%d",&n); //总成员数 while (n<=0) //不合法情况 { printf ("n值必须是合法的,请重新输入:\n"); scanf ("%d",&n); } if(!CreateList_Circle(&head,n)) //创建循环链表,返回头指针head return OVERFLOW; printf ("请输入初始的m值:\n"); scanf ("%d",&m); //初始m while (m<=0) { printf ("m必须是合法的,请重新输入:\n"); scanf ("%d",&m); } printf ("\n输出顺序是:\n"); p=head; }

2009-12-06

数据结构 算法 运算器

{ /*判断优先级*/ case '>':PushOp(opstack,x);flags=0;break; case '<': PopOp(opstack,&c); PopNum(numstack,&b); PopNum(numstack,&a); PushNum(numstack,Calc(a,b,c));flags=1; Process(numstack,opstack,x);break; /*递归调用*/ case '=':PopOp(opstack,&c);flags=1;break; default:printf("Wrong Express!");exit(0); } } } void main()/*主函数*/ { NumStack numstack;OpStack opstack;char s[N];int i=0; numstack.top=0;opstack.top=0; PushOp (&opstack,'#'); printf("Enter your expression and end it with #:\n");scanf("%s",s); for(i=0;i<strlen(s);i++) Process(&numstack,&opstack,s[i]); printf("The result is %6.2f\n",numstack.array[numstack.top-1]); }

2009-12-06

数据结构与算法 通讯录

{ int j,i; long k; fp=fopen("people.txt","r+t"); if(fp!=NULL) {for(i=1;i<maxlen;i++) { j=fgetc(fp); if(j==EOF) return; k=i-1; fseek(fp,k*sizeof(struct persons),0); fread(&persons[i],sizeof(struct persons),1,fp); s=(linklist)malloc(sizeof(listnode)); strcpy(s->name,persons[i].name); strcpy(s->school,persons[i].school); strcpy(s->city,persons[i].city); strcpy(s->phnum,persons[i].phnum); strcpy(s->eip,persons[i].eip); if(head==NULL) head=s; else r->next=s; r=s;} } else { fp=fopen("people.txt","w"); i=1; } } ; ; ; void List() { p1=head; while(p1!=NULL) { printf("\n\n\tname:%s\n",p1->name); printf("\n\n\tschool:%s",p1->school); printf("\n\n\tcity:%s",p1->city); printf("\n\n\tphnum:%s",p1->phnum); printf("\n\n\teip:%s",p1->eip); p1=p1->next; } } ; ; ; void Delete() { printf("\n\n\tplease input the name:"); gets(name1); p4=head; if(strcmp(p4->name,name1

2009-12-06

数据结构 运动会分数统计

#define MAX 50 //#define NULL 0 typedef struct node1{ int school; /*学校编号*/ int record; /*项目成绩*/ struct node1 *next; /*链域*/ }Schools; typedef struct { int item; /*项目编号*/ Schools *firstschool; /*链域指向链表中第一个结点*/ }ITEM; typedef struct { int z; /* 项目总数 */ ITEM a[MAX]; }ALLitems; typedef struct node2 { int item; /*该学校获奖的项目*/ int record; /*项目成绩*/ struct node2 *next; /*链域*/ }Items; typedef struct { int school; /*学校编号*/ int score; /*学校总分*/ int boys; /*男团体总分*/ int girls; /*女团体总分*/ Items *firstitem; /*链域指向链表中第一个获奖项目的结点*/ }SCHNode; typedef struct { int n; /* 学校总数 */ SCHNode b[MAX]; }ALLNode; ALLitems *g1; ALLNode *g2;

2009-12-06

最短距离问题 数据结构与算法

#include<stdio.h> #include<malloc.h> #define OK 1; #define ERROR -1; typedef int Status; typedef long VRType; typedef int VertexType; typedef long ShortPathTable; #define FALSE 0 #define TRUE 1 typedef int SElemtype; //定义栈的数据类型 enum{A,B,C,D,E,F}; //===========栈的相关定义============ typedef struct //定义一个顺序栈 { SElemtype *base; SElemtype *top; int stacksize; }SqStack; typedef struct Path { int status; //指明路径建立状态 int LastEstablishedBy; //指出结点的最短路径的建立依据 }PathMatrix[6][6]; typedef struct { VRType adj; //结点的路径开销 }ArcCell,AdjMatrix[6][6]; typedef struct { VertexType vexs[6]; //顶点向量 AdjMatrix arcs; //邻接矩阵 int vexnum,arcnum; //vexnum为图的当前顶点数,arcnum为图的当前边数 }MGraph; ShortPathTable DP[6]={9999,9999,9999,9999,9999,9999}; PathMatrix *P; MGraph *G; //=============初始化栈============== Status InitStask(SqStack *S) { S->base=(SElemtype *)malloc(sizeof(SElemtype)); if(!S->base) return ERROR; S->top=S->base; S->stacksize=0; return OK; } //===============入栈================ Status Push(SqStack *S,SElemtype e) { SElemtype *p; S->top=(SElemtype *)realloc(S->top,1); //分配存储空间 if(!S->base) return ERROR; p=S->top-1; //top始终指向栈顶的上一个元素 *p=e; S->stacksize+=1; return OK; } //===============出栈================ Status Pop(SqStack *S,SElemtype *e) { SElemtype *p; if(S->base==S->top)

2009-12-06

jdbc笔记整理 sql

将数据库的 JDBC 驱动加载到 classpath 中,在基于 JAVAEE 的 WEB 应用库产品的 JDBC 驱动复制到 WEB-INF/lib 下 . 加载 JDBC 驱动,并将其注册到 DriverManager 中,下面是一些主流数 //Oracle8/8i/9iO 数据库 (thin 模式 ) Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); //Sql Server7.0/2000 数据库 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); //DB2 数据库 Class.froName("com.ibm.db2.jdbc.app.DB2Driver").newInstance(); //Informix 数据库 Class.forName("com.informix.jdbc.IfxDriver").newInstance(); //Sybase 数据库 Class.forName("com.sybase.jdbc.SybDriver").newInstance(); //MySQL 数据库 Class.forName("com.mysql.jdbc.Driver").newInstance(); //PostgreSQL 数据库 Class.forNaem("org.postgresql.Driver").newInstance(); 建立数据库连接,取得 Connection 对象 . 例如 :

2009-12-06

Java课件以及代码

 编译时错误 javac: Command not found  包含javac编译器的路径变量设置不正确。  HelloWorldApp.java:3: Method printl (java.lang.String) not found in class java.io.PrintStream. System.out.printl (“Hello World!”); ^  方法名printl不正确, HelloWorldApp.java:1: Public class HelloWorldapp must be defined in a file called "HelloWorldapp.java". public class HelloWorldapp{ ^ 文件定义的公有类HelloWorldapp的名字和文件名不匹配。  运行时错误  Can't find class HelloWorldApp • 系统找不到名为HelloWorldApp的类文件。  In class HelloWorldApp: main must be public and static • main()方法的左侧缺少static或public  文件中含有的类个数错误 • 在一个源文件中只能定义一个公有类  层次错误  解释:一个.java源文件可以含有三个“顶层”元素,这三个元素必须依次是: (1)一个包说明,即package语句,可选 (2)任意多个引入语句,即import语句 (3)类和接口说明  整体来看,Java程序的结构如下:  package语句:零个或1个,必须放在文件开始;  import语句:零个或多个,必须放在所有类定义之前;  公有的(public)类定义:零个或一个;  类定义:零个或多个;  接口定义:零个或多个; 源文件命名时,若文件中含有public类,源文件必须与该类名字一致,注意区分大小写。  正确的语句序列: package Transportation;//怎样写包??? import java.awt.Graphics; import java.applet.Applet;  错误的语句顺序: import java.awt.Graphics; import java.applet.Applet; package Transportation;  错误的语句顺序://这个怎么还错? package Transportation; package House; import java.applet.Applet; 使用Java API文档  从SUN公司的网站上下载文档文件,假定文件存放在jdk目录下,则在浏览器地址框中输入 jdk\docs\index.html 即可以查看JDK文档。 第2章 标识符和数据类型 Java程序的结构  package语句:可以没有,或1个,但必须放在文件开始的地方  import语句:可以没有,或可以有多个,如果有import语句的话,必须放在所有类定义之前  public型的类定义:每个文件中最多有一个  类定义:每个文件中包含的类定义的个数没有限制  接口定义:每个文件中包含的接口定义个数没有限制 Java的基本语法单位  空白、注释及语句  空白  换行符及回车键、空格键、水平定位键(tab)都是空白。Java程序的元素之间可插入任意数量的空白,编译器将忽略掉多余的空白  程序中除了加入适当的空白外,还应使用缩进格式,使得同一层语句的起始列位置相同 不提倡的程序风格  一种不好的风格 class Point {int x,y;Point(int x1,int y1) {x=x1; y=y1;} Point() {this(0,0);} void moveto(int x1,int y1){ x=x1;y=y1;}} 提倡的程序风格 class Point { int x, y; // 点的x轴、y轴坐标 Point(int x1, int y1) // 构造方法 {x = x1;y = y1;} Point() // 构造方法 {this( 0, 0); } void moveto(int x1, int y1) // 点

2009-12-06

RedHat9.0网络配置DNS服务器

RedHat9.0配置DNS服务器RedHat9.0网络配置DNS服务器RedHat9.0网络配置DNS服务器RedHat9.0网络配置DNS服务器RedHat9.0网络配置DNS服务器RedHat9.0网络配置DNS服务器RedHat9.0网络配置DNS服务器RedHat9.0网络配置DNS服务器RedHat9.0网络配置DNS服务器RedHat9.0网络配置DNS服务器RedHat9.0网络配置DNS服务器

2009-10-06

BP 神经网络程序BP 神经网络程序

BP 神经网络程序BP 神经网络程序BP 神经网络程序BP 神经网络程序BP 神经网络程序BP 神经网络程序BP 神经网络程序BP 神经网络程序BP 神经网络程序BP 神经网络程序BP 神经网络程序BP 神经网络程序BP 神经网络程序

2009-10-06

CCNA CCNP Packet Tracer 5.0软件使用

Packet Tracer 5.0软件使用教程深入详解 CCNA CCNP 资格认证考试

2009-10-06

Outlook+Express 使用技巧大全 使用手册

Outlook+Express 使用技巧大全 使用手册Outlook+Express 使用技巧大全 使用手册Outlook+Express 使用技巧大全 使用手册

2009-10-06

计算机操作系统课后习题答案 考研专用

计算机操作系统课后习题答案 考研专用计算机操作系统课后习题答案 考研专用计算机操作系统课后习题答案 考研专用计算机操作系统课后习题答案 考研专用

2009-10-06

mysql图解安装 VMware下linux 图解安装 SQL2005 图解安装

参照mysql图解安装 VMware下linux 图解安装 SQL2005 图解安装

2009-10-06

proteus教程 单片机 电路原理图的画法

proteus教程 单片机 快速掌握电路原理图的画法

2009-10-06

计算机网络习题答案 考研专用

计算机网络习题答案 考研专用计算机网络习题答案 考研专用计算机网络习题答案 考研专用计算机网络习题答案 考研专用

2009-10-06

计算机组成原理课后习题答案(唐朔飞)

计算机组成原理课后习题答案计算机组成原理课后习题答案计算机组成原理课后习题答案

2009-10-06

空空如也

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

TA关注的人

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