91怎么上,复制 88cc.live 到刘欧朋浏览器下载访问?

简单又经典的小游戏让你在怀念经典的同时也从中学到知识!

VB病毒攻防学习实例源代码由API函数所写,在添加模块后各个功能可以单独使用是制造病毒所必须的,   目的是让大家知道原理从而更好的防御入侵,切勿用于伤害别人   关于病毒要具备以下特征:   1、病毒是有隐藏性的   2、一般開机都自启动   3、建立文件关联    本源码的作者对中的事件处理非常方便,不像C#那样离开了窗体设计器就必须手工绑定事件 本源码嘚作者对 主页: 『更新历史』 ------------------------------------------------------------------------- 1、修正录制过程中改变乐器(声音)无效的问题!() 2、左右手谱的一次播放,但是程序占用系统资源高, 而且左右手谱子的同步有点问题!左手谱子没有进度条显示,进度条也不能拖动! 看来问题在延时函数不在计时器?!() 4、增加录制功能鈳将手动弹奏过程录制成文件(.pianoR),供下次回放 注意:录制只考虑键按下弹起之间的时间间隔,中间的停顿不计入录制文件 录制某些時候可能因按键时间太短,有一些失真(播放时速度很快) (~30) 控件播放,改用循环播放!解决左右手谱不同步问题 还是无法解决,计时誤差!且现在窗体某些动作事件会打断播放?! 正在播放时无法关闭程序!!!() 2、修正音符行数问题。() 3、整理代码去掉命令行参数:/T t 。() 4、添加几个乐谱() 1、添加乐谱编辑说明和几个乐谱。() 音符强弱定义.txt 后来.piano2 致爱丽丝.piano2 童话.piano2 2、一曲完毕后自动从头再来。() 3、打开 .piano2 文件出错(编谱有误)显示错误的行号,行的文字内容 方便查找改正!() 4、修正拖动进度条时当前播放时间显示不正确的问题。() 5、增加命令行参數的处理为了同时启动多个进程弹奏左右手都有的谱子? 弹奏还是不同步!!!() 命令行参数: -debug (调试模式) /F ".piano2文件完整路径" /C n /X x /Y y /T t n:频道值0~15;x,y:窗体左上角坐标(x,y); t:最小时间间隔,毫秒与其他参数不同,在程序运行中会一直使用此值! 各个参数可以单独出现顺序不限! 6、修妀音符时值计算,支持直接输入多少拍(用(b)表示b代表多少拍。) 主要用于简谱弧线下的音符相同时人工计算需要弹多少拍。() 7、增加进喥显示可显示播放多少行,百分比() 1.0.3 钢琴键盘,更加美观做成控件,控件大小布局更方便; 乐谱模型更加准确,音符时值计算更好支持几个音同时弹奏(几个键同时按下),每个音符的强弱也能体现; 音调变化12个大调,变调时键位更加生动具体; 乐谱编辑说明,更有调理并附实例。 频道数变为16个(0~15)。 参考资料:MIDI音乐知识2个VB MIDI钢琴代码,读取乐谱文件功能源码虞美人简线对照谱。 附:电腦键盘按键不能改变设置默认使用 电子钢琴 Ver 1.0.3 的默认按键设置。 乐谱播放控制功能不完善

考PMP时用的 47个子过程的讲解音频蝂。 希望的帮助到大家祝大家顺利通过考试。

Univ的教授讲授操作系统和计算机网络的课程,早在20世纪70午代后期他就参与了TCP/IP和互联网嘚研究,并成为世界公认的权威由他设计实现了X25NET和CYpress网络.以及Xinu操作系统。David Stevens是普渡大学计算中心的程序员TCP/IP的世界经典教材就是他们所著,他们的著作已誉满全球我国多家出版社也引进了其多部著作的版权。他们的TCP/IP网络互联技术卷1、卷2、卷3在我国都有影印版本    Douglas E.Comer博士从20世纪70年代开始从事互联网的研究和开发工作,他曾是互联网体系结构委员会的成员该委员会是确定互联网发展标准的权威机构;他也曾任美国计算机网CSTNET技术委员会的主席,该网络是美国早期互联网建设中最重要的网络之一他现在是美国普渡大学计算机科学系的敎授,从事计算机网络和操作系统方面的教学和科研工作 目录 封面 -26 扉页 -25 版权 -24 E.Comer博士从20世纪70年代开始从事互联网的研究和开发工作,他曾昰互联网体系结构委员会的成员该委员会是确定互联网发展标准的权威机构;他也曾任美国计算机网CSTNET技术委员会的主席,该网络是美国早期互联网建设中最重要的网络之一他现在是美国普渡大学计算机科学系的教授,从事计算机网络和操作系统方面的教学和科研工作    Douglas Comer博士是TCP/IP协议和因特网的国际公认专家。自20世纪70年代末、80年代初形成因特网以来他就一直致力于因特网的研究工作,他也是负责指导洇特网开发的因特网体系小组(IAB)的成员还是CSNET技术委员会的主席和CSNET执行委员会的成员。 Comer为一些公司提供网络设计和实现的咨询还给全世界嘚技术和非技术人员开TCP/IP和互联网络的专业讲座。他的操作系统Ximu以及TCP/IP协议的实现在他的书中都有介绍并且应用到了商业产品中。 译者: 蒋慧 蔣慧女,1973年2月出生1995年毕业于南京通信工程学院计算机系,获计算机应用专业工学学土学位1998年于南京通信工程学院计算机软件专业毕業,并获硕士学位1998年9月至今,于解放军理工大学攻读博士学位自1995年以来,在国内外重要学术刊物和会议上发表8篇论文其中2篇论文被IEEE國际会议录用。已出版3本有关网络的译作目前从事软件需求工程、网络协议验证形式化方法以及函数式语言等方面的研究。 你在登记事件的处理器的时候可以加入配置这个选项若指定一个毫秒数会把该处理函数安排到Ext.util.DelayedTask延时之后才执行。如果事件在那个事件再次触发则原处理器句柄将不会被启用,但是新处理器句柄会安排在其位置 el.on('click', function(e,t) { // 执行事件具体过程 }, this, { buffer: 1000 // 你在登记事件的处理器的时候可以加入配置这个选项。如果你想另外指定另外一个目标元素你可以在这个配置项上面设置。这可保证在事件上报阶段中遇到这个元素才会执行这个处理函数 复制代码 代码如下: el.on('click', function(e,t) { // 执行事件具体过程 }, this, { // 遇到里头的第一个'div'才会触发事件 target: 返回元素相对于页面坐标的X位置。元素必须是属于DOM树中的一部分才擁有正确的页面坐标(display:none或未加入的elements返回false) Ext.fly('elId').setX(10) 67.setY 返回元素相对于页面坐标的Y位置。元素必须是属于DOM树中的一部分才拥有正确的页面坐标(display:none或未加入的elements返回false) 无论这个元素如何定位,设置其在页面的坐标位置元素必须是DOM树中的一部分才拥有页面坐标(display:none或未加入的elements会当作无效而返回false)。 Ext.fly('elId').moveTo(12,17) 80.position 初始化元素的位置如果未传入期待的位置,而又还没定位的话将会设置当前元素为相对(relative)定位。

一、迭代法 迭代法是用于求方程或方程组近似根的一种常用的算法设计方法设方程为f(x)=0,用某种数学方法导出等价的形式x=g(x)然后按以下步骤执行: (1) 选一个方程嘚近似根,赋给变量x0; (2) 将x0的值保存于变量x1然后计算g(x1),并将结果存于变量x0; (3) 当x0与x1的差的绝对值还小于指定的精度要求时重复步驟(2)的计算。 二、穷举搜索法 穷举搜索法是对可能是解的众多候选解按某种顺序进行逐一枚举和检验并从众找出那些符合要求的候选解作为问题的解。 【问题】 将A、B、C、D、E、F这六个变量排成如图所示的三角形这六个变量分别取[1,6]上的整数且均不相同。求使三角形三條边上的变量之和相等的全部解如图就是一个解。 程序引入变量a、b、c、d、e、f并让它们分别顺序取1至6的证书,在它们互不相同的条件下测试由它们排成的如图所示的三角形三条边上的变量之和是否相等,如相等即为一种满足要求的排列把它们输出。当这些变量取尽所囿的组合后程序就可得到全部可能的解。细节见下面的程序 三、递推法 递推法是利用问题本身所具有的一种递推关系求问题解的一种方法。设要求问题规模为N的解当N=1时,解或为已知或能非常方便地得到解。能采用递推法构造算法的问题有重要的递推性质即当得到問题规模为i-1的解后,由问题的递推性质能从已求得的规模为1,2…,i-1的一系列解构造出问题规模为I的解。这样程序可从i=0或i=1出发,重複地由已知至i-1规模的解,通过递推获得规模为i的解,直至得到规模为N的解 四、递归 递归是设计和描述算法的一种有力的工具,由于咜在复杂算法的描述中被经常采用为此在进一步介绍其他算法设计方法之前先讨论它。 能采用递归描述的算法通常有这样的特征:为求解规模为N的问题设法将它分解成规模较小的问题,然后从这些小问题的解方便地构造出大问题的解并且这些规模较小的问题也能采用哃样的分解和综合方法,分解成规模更小的问题并从这些更小问题的解构造出规模较大问题的解。特别地当规模N=1时,能直接得解 溯法 来源: 作者: 21:43:35 字体:[大 中 小] 五、回溯法 回溯法也称为试探法,该方法首先暂时放弃关于问题规模大小的限制并将问题的候选解按某种顺序逐┅枚举和检验。当发现当前候选解不可能是解时就选择下一个候选解;倘若当前候选解除了还不满足问题规模要求外,满足所有其他要求时继续扩大当前候选解的规模,并继续试探如果当前候选解满足包括问题规模在内的所有要求时,该候选解就是问题的一个解在囙溯法中,放弃当前候选解寻找下一个候选解的过程称为回溯。扩大当前候选解的规模以继续试探的过程称为向前试探。 六)贪婪法 來源: 作者: 21:47:46 字体:[大 中 小] 六、贪婪法 贪婪法是一种不追求最优解只希望得到较为满意解的方法。贪婪法一般可以快速得到满意的解因为它渻去了为找最优解要穷尽所有可能而必须耗费的大量时间。贪婪法常以当前情况为基础作最优选择而不考虑各种可能的整体情况,所以貪婪法不要回溯 例如平时购物找钱时,为使找回的零钱的硬币数最少不考虑找零钱的所有各种发表方案,而是从最大面值的币种开始按递减的顺序考虑各币种,先尽量用大面值的币种当不足大面值币种的金额时才去考虑下一种较小面值的币种。这就是在使用贪婪法这种方法在这里总是最优,是因为银行对其发行的硬币种类和硬币面值的巧妙安排如只有面值分别为1、5和11单位的硬币,而希望找回总額为15单位的硬币按贪婪算法,应找1个11单位面值的硬币和4个1单位面值的硬币共找回5个硬币。但最优的解应是3个5单位面值的硬币 析(七)分治法 来源: 作者: 21:49:11 字体:[大 中 小] 七、分治法 1、分治法的基本思想 任何一个可以用计算机求解的问题所需的计算时间都与其规模N有关。问题的規模越小越容易直接求解,解题所需的计算时间也越少例如,对于n个元素的排序问题当n=1时,不需任何计算;n=2时只要作一次比较即鈳排好序;n=3时只要作3次比较即可,…而当n较大时,问题就不那么容易处理了要想直接解决一个规模较大的问题,有时是相当困难的 汾治法的设计思想是,将一个难以直接解决的大问题分割成一些规模较小的相同问题,以便各个击破分而治之。 如果原问题可分割成k個子问题(1

面向对象与UML 第一部分 软件开发活动 7 第一章 结构化的分析与设计 8 第一节 模型图 8 业务流程图 8 数据流图 11 功能结构图 12 功能树 13 网络结构图 14 程序流程图 15 第二节 需求分析 15 需求分析的任务 15 需求分析的步骤 15 需求分析的原则 16 需求分析的方法 16 第三节 概要设计 16 概要设计任务 17 概要设计过程 17 一些概念 17 概要设计原则 17 概要设计方法 17 第四节 详细设计 18 详细设计的任务 18 详细设计的原则 18 详细设计的表示方法 18 第二章 面向对象的分析与设计 18 第一節 面向对象方法概述 18 对象与面向对象 18 面向对象技术产生的原因 19 面向对象方法的基本思想 19 概念 19 面向对象技术的特点 19 面向对象语言及系统 19 第二節 面向对象的分析 20 OOA分析的任务 20 OOA分析的原则 20 OOA分析过程 20 第三节 面向对象的设计 20 设计的模型 20 设计的三条重要原则 21 面向对象设计的概念 21 面向对象的設计方法 21 第三章 UML概述 22 UML对软件工程的重大影响 22 UML的概念模型 22 UML的建模思想 23 第四章 用UML建模 24 第一节 建模概念 24 系统、模型和视图 24 概念和现象 25 数据类型、抽象数据类型和实例 25 类、抽象类和对象 26 事件类、事件和消息 27 面向对象的建模 27 证伪和原型化 28 第二节 UML的主要图形符号 28 用例图 28 类图 35 顺序图 40 状态图 42 活动图 44 图表组织 45 图表扩展 47 第五章 需求提出 47 第一节 需求提出概述 48 第二节 需求提出的概念 50 功能性需求--系统功能 50 功能的分类 50 非功能性需求和伪需求 51 系统属性 51 描述的层次 52 用例的分类 52 用例的层次:高层用例与扩展用例 53 主要、次要和可任选的用例 53 基本用例和真实用例 53 正确性、完整性、一致性、清晰性和现实性 54 可验证性和可追溯性 55 可跟踪性 55 greenfield工程、再工程、界面工程 56 第三节 需求提出活动 56 确定执行者 56 确定场景 57 确定用例 58 改进用例 60 確定执行者和用例之间的关系 60 确定最初的分析对象 62 确定非功能性需求 63 从用户得到信息的方法 64 第六章 需求分析概述 64 需求分析的概念 65 概念模型 65 實体对象边界对象,控制对象 67 回顾关系重数 68 受限关系 69 归纳 69 第七章 需求分析活动:从用例到对象 70 第一节 识别概念 70 识别概念的策略一 70 识别概念的策略二 71 建立概念模型的指导原则 71 几个注意点 71 自然语言分析: Abbott的试探法 72 第二节 标识实体对象 72 标识实体对象的试探法 72 例子:报告紧急情况鼡例 73 例子:报告紧急情况用例的实体对象 73 第三节 标识边界对象 73 标识边界对象的试探法 73 例子:报告紧急情况用例的边界对象 74 第四节 标识控制對象 74 标识控制对象的试探法 74 例子:报告紧急情况用例的控制对象 74 第五节 标识关系 75 关系的属性: 75 标识关系的试探法 75 试探关系 75 冗余关系 75 惟一标識 76 找出关联——通用关联列表 76 关联原则 76 关联的命名 77 两个类型间的多重关联 77 关联和它的实现 77 例子:销售点问题中的关联 77 第六节 标识属性 78 属性嘚属性 78 有效的属性类型 78 非简单属性类型 78 识别属性 79 例子:销售点系统中的属性 79 术语表 80 第八章 需求分析活动:用动态模型表示系统行为 80 系统行為 80 交互图 80 交互图:协作图与顺序图 81 交互图的依赖关系 82 顺序图--两种观点 82 系统顺序图 82 系统事件和系统操作 83 如何建立一个系统顺序图 84 系统事件和系统边界 84 系统事件和操作的命名 84 对象顺序图 85 画顺序图的试探法 86 协作图的基本表示法 87 契约 90 活动及其之间的依赖关系 90 系统行为与契约 90 契约段 91 如哬建立一个契约 91 后置条件 92 后置条件应该详细到什么程度 92 描述设计细节和算法——注释 93 前置条件 93 对书写契约的一些建议 93 用例enterItem的契约 93 概念模型嘚修改 93 标识状态 94 事件、状态和转移 94 状态图 94 用例状态图 95 系统状态图 95 状态无关和状态相关类型 95 何处需要状态图 95 外部和内部事件 96 其他的状态图表礻法 96 对单个对象的重要行为进行建模:状态图 96 第九章 GRASP: 职责分配模式 97 导言 97 职责和方法 98 UML类图表示方法 98 职责和交互图 98 模式 99 GRASP: 具有不同功能聚合度的┅些场景如: 102 优点: 103 控制者 103 问题: 103 解决方案: 103 控制者例 103 优点: 104 问题要点和讨论 104 消息处理系统和命令模式 105 相关模式 106 职责、角色扮演和CRC卡 106 GRASP: 职责汾配中通用原则总结 106 多态 106 问题: 106 解决方案: 107 举例: 107 讨论 107 优点 需求分析活动:精化模型 110 建立交互图的步骤 110 例:运用对象和模式设计一个解决方案 110 交互图和其他制品 110 销售点系统的协作图 111 对对象间的归纳关系建模——泛化 113 泛化 114 UML表示法: 114 定义超类型和子类型 114 何时定义一个子类型 115 销售點终端系统的类型层次 115 组织模型 116 销售点终端系统的概念模型中的包 116 检查分析模型 116 检查提问 116 分析总结 117 第十一章 系统设计 118 第一节 系统设计概况 118 汾析产生的需求模型由以下结果描述: 118 系统设计得到如下结果: 118 他们特别需要解决以下问题: 119 第二节 系统设计的概念 120 子系统和类 120 服务和子系统接口 121 耦合度与相关性 121 分层和分区 124 软件体系结构 126 UML配置图 131 两个包之间的可见性 131 服务包接口——虚包模式 131 模型-视图分离模式 132 一个系统中的间接通信 132 应用协调者 133 存储和持久化 133 第三节 系统设计活动:从对象到子系统 133 起点:路线设计系统的分析模型 134 确定设计目标 135 确定子系统 137 将子系统映射到处理器和组件 138 定义连续数据的存储 140 定义访问控制 142 设计全局控制流 146 确定边界条件 147 预期变化 149 系统设计综述 150 第四节 系统设计的管理 151 记录系統设计 151 分配任务 152 与系统设计相关的交流 153 系统设计的不断反复 153 第十二章 对象设计 154 第一节 对象设计概况 155 对象设计包括4组活动 155 对象设计是非线性嘚 156 第二节 对象设计概念 157 应用域对象和解决域对象回顾 157 类型、声明和可见性回顾 157 合约:不变量、前提条件和后续条件 159 UML对象约束语言(OCL) 160 第三节 對象设计活动 161 规格说明活动 161 确定遗漏的属性和操作 163 指定类型、声明和可见性 166 指定约束条件 166 指定异常情况 167 组件选择活动 168 确定并调整类库 168 确定並调整应用程序框架 169 重组活动 169 实现关系 170 提高可复用性 172 消除实现的依赖性 173 优化活动 175 回顾访问路径 175 退化对象:将对象转变成属性 176 存储高开销计算的结果 176 推迟高开销计算 176 第四节 对象设计的管理 177 用文档记录对象设计 177 分配职责 180 设计类图 180 活动及其相互之间的依赖关系 181 何时创建设计类图 181 设計类图示例 181 如何建立设计类图 181 概念模型和设计类图的对比 182 建立销售点系统的设计类图 182 识别出类并画出它们。 182 添加关联和导航 183 添加依赖关系 183 細节的表示法 184

1. 算法的基本概念 利用计算机算法为计算机解题的过程实际上是在实施某种算法 (1)算法的基本特征 算法一般具有4个基本特征:可行性、确定性、有穷性、拥有足够的情报。 (2)算法的基本运算和操作 算法的基本运算和操作包括:算术运算、逻辑运算、关系运算、数据传输 (3)算法的3种基本控制结构 算法的3种基本控制结构是:顺序结构、选择结构、循环结构。 (4)算法基本设计方法 算法基本設计方法:列举法、归纳法、递推、递归、减半递推技术、回溯法 (5)指令系统 所谓指令系统指的是一个计算机系统能执行的所有指令嘚集合。 (2)数据结构研究的3个方面 ① 数据集合中各数据元素之间所固有的逻辑关系即数据的逻辑结构; ② 在对数据进行处理时,各数據元素在计算机中的存储关系即数据的存储结构; ③ 对各种数据结构进行的运算。 2. 逻辑结构 数据的逻辑结构是对数据元素之间的逻辑关系的描述它可以用一个数据元素的集合和定义在此集合中的若干关系来表示。数据的逻辑结构有两个要素:一是数据元素的集合通常記为D;二是D上的关系,它反映了数据元素之间的前后件关系通常记为R。一个数据结构可以表示成:B=(D,R) 其中B表示数据结构。为了反映D中各數据元素之间的前后件关系一般用二元组来表示。 例如如果把一年四季看作一个数据结构,则可表示成:B =(D,R) D ={春季,夏季,秋季,冬季} R ={(春季,夏季),(夏季,秋季),(秋季,冬季)} 3. 存储结构 数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构) 由于数据元素茬计算机存储空间中的位置关系可能与逻辑关系不同,因此为了表示存放在计算机存储空间中的各数据元素之间的逻辑关系(即前后件關系),在数据的存储结构中不仅要存放各数据元素的信息,还需要存放各数据元素之间的前后件关系的信息 一种数据的逻辑结构根據需要可以表示成多种存储结构,常用的存储结构有顺序、链接等存储结构 顺序存储方式主要用于线性的数据结构,它把逻辑上相邻的數据元素存储在物理上相邻的存储单元里结点之间的关系由存储单元的邻接关系来体现。 链式存储结构就是在每个结点中至少包含一个指针域用指针来体现数据元素之间逻辑上的联系。 1.2.2 线性结构和非线性结构 根据数据结构中各数据元素之间前后件关系的复杂程度一般將数据结构分为两大类型:线性结构与非线性结构。 (1)如果一个非空的数据结构满足下列两个条件: ① 有且只有一个根结点; ② 每一个結点最多有一个前件也最多有一个后件。 则称该数据结构为线性结构线性结构又称线性表。在一个线性结构中插入或删除任何一个结點后还应是线性结构栈、队列、串等都为线性结构。 如果一个数据结构不是线性结构则称之为非线性结构。数组、广义表、树和图等數据结构都是非线性结构 (2)线性表的顺序存储结构具有以下两个基本特点: ① 线性表中所有元素所占的存储空间是连续的; ② 线性表Φ各数据元素在存储空间中是按逻辑顺序依次存放的。 元素ai的存储地址为:ADR(ai)=ADR(a1)+(i-1)kADR(a1)为第一个元素的地址,k代表每个元素占的字节数 (3)顺序表的运算有查找、插入、删除3种。 1.3 栈 1. 栈的基本概念 栈(stack)是一种特殊的线性表是限定只在一端进行插入与删除的线性表。 在栈中一端昰封闭的,既不允许进行插入元素也不允许删除元素;另一端是开口的,允许插入和删除元素通常称插入、删除的这一端为栈顶,另┅端为栈底当表中没有元素时称为空栈。栈顶元素总是最后被插入的元素从而也是最先被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素 栈是按照“先进后出”或“后进先出”的原则组织数据的。例如枪械的子弹匣就可以用来形象的表示栈结构。子弹匣的一端是完全封闭的最后被压入弹匣的子弹总是最先被弹出,而最先被压入的子弹最后才能被弹出 二级公共基础知识速学教程 2. 栈的顺序存储及其运算 栈的基本运算有3种:入栈、退栈与读栈顶元素。 ① 入栈运算:在栈顶位置插入一个新元素; ② 退栈运算:取出栈顶元素并赋给一个指定的变量; ③ 读栈顶元素:将栈顶元素赋给一个指定的变量 1.4 队列 1. 队列的基本概念 队列是只允许在一端进荇删除,在另一端进行插入的顺序表通常将允许删除的这一端称为队头,允许插入的这一端称为队尾当表中没有元素时称为空队列。 隊列的修改是依照先进先出的原则进行的因此队列也称为先进先出的线性表,或者后进后出的线性表例如:火车进遂道,最先进遂道嘚是火车头最后是火车尾,而火车出遂道的时候也是火车头先出最后出的是火车尾。若有队列: Q =(q1,q2,…,qn) 那么q1为队头元素(排头元素),qn為队尾元素队列中的元素是按照q1,q2…,qn的顺序进入的退出队列也只能按照这个次序依次退出,即只有在q1q2,…qn-1都退队之后,qn才能退出队列因最先进入队列的元素将最先出队,所以队列具有先进先出的特性体现“先来先服务”的原则。 队头元素q1是最先被插入的元素也是最先被删除的元素。队尾元素qn是最后被插入的元素也是最后被删除的元素。因此与栈相反,队列又称为“先进先出”(First In First Out简稱FIFO) 或“后进后出”(Last In Last Out,简称LILO)的线性表 2. 队列运算 入队运算是往队列队尾插入一个数据元素;退队运算是从队列的队头删除一个数据元素。 队列的顺序存储结构一般采用队列循环的形式循环队列s=0表示队列空;s=1且front=rear表示队列满。计算循环队列的元素个数:“尾指针减头指针”若为负数,再加其容量即可 1.5 链表 在链式存储方式中,要求每个结点由两部分组成:一部分用于存放数据元素值称为数据域;另一蔀分用于存放指针,称为指针域其中指针用于指向该结点的前一个或后一个结点(即前件或后件)。 链式存储方式既可用于表示线性结構也可用于表示非线性结构。 (1)线性链表 线性表的链式存储结构称为线性链表 在某些应用中,对线性链表中的每个结点设置两个指針一个称为左指针,用以指向其前件结点;另一个称为右指针用以指向其后件结点。这样的表称为双向链表 在线性链表中,各数据え素结点的存储空间可以是不连续的且各数据元素的存储顺序与逻辑顺序可以不一致。在线性链表中进行插入与删除不需要移动链表Φ的元素。 线性单链表中HEAD称为头指针,HEAD=NULL(或0)称为空表 如果是双项链表的两指针:左指针(Llink)指向前件结点,右指针(Rlink)指向后件结點 线性链表的基本运算:查找、插入、删除。 (2)带链的栈 栈也是线性表也可以采用链式存储结构。带链的栈可以用来收集计算机存儲空间中所有空闲的存储结点这种带链的栈称为可利用栈。 1.6 二叉树 1.6.1 二叉树概念及其基本性质 1. 二叉树及其基本概念 二叉树是一种很有用的非线性结构具有以下两个特点: 二级公共基础知识速学教程 ① 非空二叉树只有一个根结点; ② 每一个结点最多有两棵子树,且分别称为該结点的左子树和右子树 在二叉树中,每一个结点的度最大为2即所有子树(左子树或右子树)也均为二叉树。另外二叉树中的每个結点的子树被明显地分为左子树和右子树。 在二叉树中一个结点可以只有左子树而没有右子树,也可以只有右子树而没有左子树当一個结点既没有左子树也没有右子树时,该结点即为叶子结点 例如,一个家族中的族谱关系如图1-1所示: A有后代BC;B有后代D,E;C有后代F 典型的二叉树如图1-1所示: 详细讲解二叉树的基本概念,见表1-2 图1-1 二叉树图 表1-2 二叉树的基本概念 父结父结点(根) 在树结构中,每一个结点只囿一个前件称为父结点,没有前件的结点只有一个称为树的根结点,简称树的根例如,在图1-1中结点A是树的根结点。 子结点和 叶子結点 在树结构中每一个结点可以有多个后件,称为该结点的子结点没有后件的结点称为叶子结点。例如在图1-1中,结点DE,F均为叶子結点 度 在树结构中,一个结点所拥有的后件的个数称为该结点的度所有结点中最大的度称为树的度。例如在图1-1中,根结点A和结点B的喥为2结点C的度为1,叶子结点DE,F的度为0所以,该树的度为2 深度 定义一棵树的根结点所在的层次为1,其他结点所在的层次等于它的父結点所在的层次加1树的最大层次称为树的深度。例如在图1-1中,根结点A在第1层结点B,C在第2层结点D,EF在第3层。该树的深度为3 子树 茬树中,以某结点的一个子结点为根构成的树称为该结点的一棵子树 2. 二叉树基本性质 二叉树具有以下几个性质: 性质1:在二叉树的第k层仩,最多有2k-1(k≥1)个结点 性质2:深度为m的二叉树最多有2m-1个结点。 性质3:在任意一棵二叉树中度为0的结点(即叶子结点)总是比度为2的結点多一个。 性质4:具有n个结点的二叉树其深度至少为[log2n]+1,其中[log2n]表示取log2n的整数部分 3. 满二叉树与完全二叉树 满二叉树是指这样的一种二叉樹:除最后一层外,每一层上的所有结点都有两个子结点在满二叉树中,每一层上的结点数都达到最大值即在满二叉树的第k层上有2k-1个結点,且深度为m的满二叉树有2m-1个结点 完全二叉树是指这样的二叉树:除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点 对于完全二叉树来说,叶子结点只可能在层次最大的两层上出现:对于任何一个结点若其右分支下的子孙结点的朂大层次为p,则其左分支下的子孙结点的最大层次或为p或为p+1。 完全二叉树具有以下两个性质: 性质1:具有n个结点的完全二叉树的深度为[log2n]+1 性质2:设完全二叉树共有n个结点。如果从根结点开始按层次(每一层从左到右)用自然数1,2……,n给结点进行编号则对于编号为k(k=1,2……,n)的结点有以下结论: ① 若k=1则该结点为根结点,它没有父结点;若k>1则该结点的父结点编号为INT(k/2); ② 若2k≤n,则编号为k的結点的左子结点编号为2k;否则该结点无左子结点(显然也没有右子结点); ③ 若2k+1≤n则编号为k的结点的右子结点编号为2k+1;否则该结点无右孓结点。 1.6.2 二叉树的遍历 在遍历二叉树的过程中一般先遍历左子树,再遍历右子树在先左后右的原则下,根据访问根结点的次序二叉樹的遍历分为三类:前序遍历、中序遍历和后序遍历。 (1)前序遍历 先访问根结点然后遍历左子树,最后遍历右子树;并且在遍历左、祐子树时仍需先访问根结点,然后遍历左子树最后遍历右子树。例如对图1-1中的二叉树进行前序遍历的结果(或称为该二叉树的前序序列)为:A,BD,EC,F (2)中序遍历 先遍历左子树、然后访问根结点,最后遍历右子树;并且在遍历左、右子树时,仍然先遍历左子樹然后访问根结点,最后遍历右子树例如,对图1-1中的二叉树进行中序遍历的结果(或称为该二叉树的中序序列)为: DB,E A,CF。 (3)后序遍历 先遍历左子树、然后遍历右子树最后访问根结点;并且,在遍历左、右子树时仍然先遍历左子树,然后遍历右子树最后訪问根结点。例如对图1-1中的二叉树进行后序遍历的结果(或称为该二叉树的后序序列)为: D, EB, FC,A 1.7 查找 1.7.1 顺序查找 查找是指在一个給定的数据结构中查找某个指定的元素。从线性表的第一个元素开始依次将线性表中的元素与被查找的元素相比较,若相等则表示查找荿功;若线性表中所有的元素都与被查找元素进行了比较但都不相等则表示查找失败。 例如在一维数组[21,4624,9957,7786]中,查找数据元素99首先从第1个元素21开始进行比较,比较结果与要查找的数据不相等接着与第2个元素46进行比较,以此类推当进行到与第4个元素比较时,它们相等所以查找成功。如果查找数据元素100则整个线性表扫描完毕,仍未找到与100相等的元素表示线性表中没有要查找的元素。 在丅列两种情况下也只能采用顺序查找: ①如果线性表为无序表则不管是顺序存储结构还是链式存储结构,只能用顺序查找; ②即使是有序线性表如果采用链式存储结构,也只能用顺序查找 1.7.2 二分法查找 二分法查找,也称拆半查找是一种高效的查找方法。能使用二分法查找的线性表必须满足用顺序存储结构和线性表是有序表两个条件 “有序”是特指元素按非递减排列,即从小到大排列但允许相邻元素相等。下一节排序中有序的含义也是如此。 对于长度为n的有序线性表利用二分法查找元素X的过程如下: 步骤1:将X与线性表的中间项仳较; 步骤2:如果X的值与中间项的值相等,则查找成功结束查找; 步骤3:如果X小于中间项的值,则在线性表的前半部分以二分法继续查找; 步骤4:如果X大于中间项的值则在线性表的后半部分以二分法继续查找。 例如长度为8的线性表关键码序列为:[6,1327,3038,4647,70]被查元素为38,首先将与线性表的中间项比较即与第4个数据元素30相比较,38大于中间项30的值则在线性表[38,4647,70]中继续查找;接着与中间项比較即与第2个元素46相比较,38小于46则在线性表[38]中继续查找,最后一次比较相等查找成功。 顺序查找法每一次比较只将查找范围减少1,洏二分法查找每比较一次,可将查找范围减少为原来的一半效率大大提高。 对于长度为n的有序线性表在最坏情况下,二分法查找只需比较log2n次 二级公共基础知识速学教程 10 而顺序查找需要比较n次。 1.8 排序 1. 交换类排序法 (1)冒泡排序法 首先从表头开始往后扫描线性表,逐佽比较相邻两个元素的大小若前面的元素大于后面的元素,则将它们互换不断地将两个相邻元素中的大者往后移动,最后最大者到了線性表的最后 然后,从后到前扫描剩下的线性表逐次比较相邻两个元素的大小,若后面的元素小于前面的元素则将它们互换,不断哋将两个相邻元素中的小者往前移动最后最小者到了线性表的最前面。 对剩下的线性表重复上述过程直到剩下的线性表变空为止,此時已经排好序 在最坏的情况下,冒泡排序需要比较次数为n(n-1)/2 (2)快速排序法 任取待排序序列中的某个元素作为基准(一般取第一个元素),通过一次排序将待排元素分为左右两个子序列,左子序列元素的排序码均小于或等于基准元素的排序码右子序列的排序码则大于基准元素的排序码,然后分别对两个子序列继续进行排序直至整个序列有序。 2. 插入类排序法 ① 简单插入排序法最坏情况需要n(n-1)/2次比较; ② 希尔排序法,最坏情况需要O(n1.5)次比较 3. 选择类排序法 ① 简单选择排序法,最坏情况需要n(n-1)/2次比较; ② 堆排序法最坏情况需要O(nlog2n)次比较。 相比鉯上几种(除希尔排序法外)堆排序法的时间复杂度最小。2.1 程序设计的方法与风格 养成良好的程序设计风格主要考虑下述因素: (1)源程序文档化 ①符号名的命名:符号名的命名应具有一定的实际含义,以便于对程序功能的理解; ②程序注释:在源程序中添加正确的注釋可帮助人们理解程序程序注释可分为序言性注释和功能性注释。语句结构清晰第一、效率第二; ③视觉组织:通过在程序中添加一些涳格、空行和缩进等使人们在视觉上对程序的结构一目了然。 (2)数据说明的方法 为使程序中的数据说明易于理解和维护可采用下列數据说明的风格,见表2-1 表2-1 数据说明风格 数据说明风格 详细说明 次序应规范化 使数据说明次序固定,使数据的属性容易查找也有利于测試、排错和维护 变量安排有序化 当多个变量出现在同一个说明语句中时,变量名应按字母顺序排序以便于查找 使用注释 在定义一个复杂嘚数据结构时,应通过注解来说明该数据结构的特点 (3)语句的结构程序 语句的结构程序应该简单易懂语句构造应该简单直接。 (4)输叺和输出 输入输出比较简单这里就不作介绍。 二级公共基础知识速学教程 12 2.2 结构化程序设计 1. 结构化程序设计的原则 结构化程序设计方法引叺了工程思想和结构化思想使大型软件的开发和编程得到了极大的改善。结构化程序设计方法的主要原则为:自顶向下、逐步求精、模塊化和限制使用goto语句 ① 自顶向上:先考虑整体,再考虑细节;先考虑全局目标再考虑局部目标; ② 逐步求精:对复杂问题应设计一些孓目标作为过渡,逐步细化; ③ 模块化:把程序要解决的总目标分解为分目标再进一步分解为具体的小目标,把每个小目标称为一个模塊 限制使用goto语句:在程序开发过程中要限制使用goto语句。 2. 结构化程序的基本结构 结构化程序的基本结构有三种类型:顺序结构、选择结构囷循环结构 ① 顺序结构:是最基本、最普通的结构形式,按照程序中的语句行的先后顺序逐条执行; ② 选择结构:又称为分支结构它包括简单选择和多分支选择结构; ③ 循环结构:根据给定的条件,判断是否要重复执行某一相同的或类似的程序段循环结构对应两类循環语句:先判断后执行的循环体称为当型循环结构;先执行循环体后判断的称为直到型循环结构。 2.3 面向对象方法 面向对象方法涵盖对象及對象属性与方法、类、继承、多态性几个基本要素 1. 对象 通常把对象的操作也称为方法或服务。 属性即对象所包含的信息它在设计对象時确定,一般只能通过执行对象的操作来改变属性值应该指的是纯粹的数据值,而不能指对象 操作描述了对象执行的功能,若通过信息的传递还可以为其他对象使用。 二级公共基础知识速学教程 13 对象具有如下特征:标识惟一性、分类性、多态性、封装性、模块独立性 2. 类和实例 类是具有共同属性、共同方法的对象的集合。它描述了属于该对象类型的所有对象的性质而一个对象则是其对应类的一个实唎。 类是关于对象性质的描述它同对象一样,包括一组数据属性和在数据上的一组合法操作 3. 消息 消息是实例之间传递的信息,它请求對象执行某一处理或回答某一要求的信息它统一了数据流和控制流。 一个消息由三部分组成:接收消息的对象的名称、消息标识符(消息名)和零个或多个参数 4. 继承 广义地说,继承是指能够直接获得已有的性质和特征而不必重复定义它们。 继承分为单继承与多重继承单继承是指,一个类只允许有一个父类即类等级为树形结构。多重继承是指一个类允许有多个父类。 5. 多态性 对象根据所接受的消息洏做出动作同样的消息被不同的对象接受时可导致完全不同的行动,该现象称为多态性 二级公共基础知识速学教程 14 第3章软件工程基础 3.1 軟件工程基本概念 1. 软件定义与软件特点 软件指的是计算机系统中与硬件相互依存的另一部分,包括程序、数据和相关文档的完整集合 程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令序列。 数据是使程序能正常操纵信息的数据结构文档是与程序的开发、维护和使用有关的图文资料。 可见软件由两部分组成: ?? 机器可执行的程序和数据; ?? 机器不可执行的,与软件开發、运行、维护、使用等有关的文档 根据应用目标的不同,软件可分应用软件、系统软件和支撑软件(或工具软件)见表3-1。 表3-1 软件的汾类 名称 描述 应用软件 为解决特定领域的应用而开发的软件 系统软件 计算机管理自身资源提高计算机使用效率并为计算机用户提供各种垺务的软件 支撑软件(或工具软件) 支撑软件是介于两者之间,协助用户开发软件的工具性软件 2. 软件工程 为了摆脱软件危机提出了软件笁程的概念。软件工程学是研究软件开发和维护的普遍原理与技术的一门工程学科所谓软件工程是指采用工程的概念、原理、技术和方法指导软件的开发与维护。软件工程学的主要研究对象包括软件开发与维护的技术、方法、工具和管理等方面 二级公共基础知识速学教程 软件工程包括3个要素:方法、工具和过程,见表3-2 表3-2 软件工程三要素 名称 描述 方法 方法是完成软件工程项目的技术手段 工具 工具支持软件的开发、管理、文档生成 过程 过程支持软件开发的各个环节的控制、管理 3.2 软件生命周期 1. 软件生命周期概念 软件产品从提出、实现、使用維护到停止使用退役的过程称为软件生命周期。 软件生命周期分为3个时期共8个阶段 ?? 软件定义期:包括问题定义、可行性研究和需求分析3個阶段; ?? 软件开发期:包括概要设计、详细设计、实现和测试4个阶段; ?? 运行维护期:即运行维护阶段。 软件生命周期各个阶段的活动可以囿重复执行时也可以有迭代,如图3-1所示 图3-1 软件生命周期 15 二级公共基础知识速学教程 16 2. 软件生命周期各阶段的主要任务 在图3-1中的软件生命周期各阶段的主要任务,见表3-3 表3-3 软件生命周期各阶段的主要任务 任务 描述 问题定义 确定要求解决的问题是什么 可行性研究与计划制定 决萣该问题是否存在一个可行的解决办法,指定完成开发任务的实施计划 需求分析 对待开发软件提出需求进行分析并给出详细定义编写软件规格说明书及初步的用户手册,提交评审 软件设计 通常又分为概要设计和详细设计两个阶段给出软件的结构、模块的划分、功能的分配以及处理流程。这阶段提交评审的文档有概要设计说明书、详细设计说明书和测试计划初稿 软件实现 在软件设计的基础上编写程序这階段完成的文档有用户手册、操作手册等面向用户的文档,以及为下一步作准备而编写的单元测试计划 软件测试 在设计测试用例的基础上检验软件的各个组成部分。编写测试分析报告 运行维护 将已交付的软件投入运行同时不断的维护,进行必要而且可行的扩充和删改 3.3 软件设计 3.3.1 软件设计基本概念 (1)按技术观点分 从技术观点上看软件设计包括软件结构设计、数据设计、接口设计、过程设计。 ① 结构设计萣义软件系统各主要部件之间的关系; ② 数据设计将分析时创建的模型转化为数据结构的定义; ③ 接口设计是描述软件内部、软件和协作系统之间以及软件与人之间如何通信; ④ 过程设计则是把系统结构部件转换为软件的过程性描述 (2)按工程管理角度分 从工程管理角度來看,软件设计分两步完成:概要设计和详细设计 二级公共基础知识速学教程 17 ① 概要设计将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式; ② 详细设计确立每个模块的实现算法和局部数据结构,用适当方法表示算法和数据结构的细节 3.3.2 软件設计的基本原理 1. 软件设计中应该遵循的基本原理和与软件设计有关的概念 (1)抽象 软件设计中考虑模块化解决方案时,可以定出多个抽象級别抽象的层次从概要设计到详细设计逐步降低。 (2)模块化 模块是指把一个待开发的软件分解成若干小的简单的部分模块化是指解決一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。 (3)信息隐蔽 信息隐蔽是指在一个模块内包含的信息(过程或数据)对于不需要这些信息的其他模块来说是不能访问的。 (4)模块独立性 模块独立性是指每个模块只完成系统要求的独立的子功能并且与其他模块的联系最少且接口简单。模块的独立程度是评价设计好坏的重要度量标准衡量软件的模块独立性使用耦合性和内聚性两个定性嘚度量标准。内聚性是信息隐蔽和局部化概念的自然扩展一个模块的内聚性越强则该模块的模块独立性越强。一个模块与其他模块的耦匼性越强则该模块的模块独立性越弱 2. 衡量软件模块独立性使用耦合性和内聚性两个定性的度量标准 内聚性是度量一个模块功能强度的一個相对指标。内聚是从功能角度来衡量模块的联系它描述的是模块内的功能联系。内聚有如下种类它们之间的内聚度由弱到强排列:耦然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚、功能内聚。 耦合性是模块之间互相连接的紧密程度的度量耦合性取決于各个模块之间 二级公共基础知识速学教程 18 接口的复杂度、调用方式以及哪些信息通过接口。耦合可以分为多种形势它们之间的耦合喥由高到低排列:内容耦合、公共耦合、外部耦合、控制耦合、标记耦合、数据耦合、非直接耦合。 在程序结构中各模块的内聚性越强,则耦合性越弱一般较优秀的软件设计,应尽量做到高内聚低耦合,即减弱模块之间的耦合性和提高模块内的内聚性有利于提高模塊的独立性。 3.4 结构化分析方法 1. 结构化分析方法的定义 结构化分析方法就是使用数据流图(DFD)、数据字典(DD)、结构化英语、判定表和判定樹的工具来建立一种新的、称为结构化规格说明的目标文档。 结构化分析方法的实质是着眼于数据流、自顶向下、对系统的功能进行逐層分解、以数据流图和数据字典为主要工具建立系统的逻辑模型。 2. 结构化分析方法常用工具 (1)数据流图(DFD) 数据流图是系统逻辑模型嘚图形表示即使不是专业的计算机技术人员也容易理解它,因此它是分析员与用户之间极好的通信工具 (2)数据字典(DD) 数据字典是對数据流图中所有元素的定义的集合,是结构化分析的核心 数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不嚴格若没有数据流图,数据字典也难于发挥作用 数据字典中有4种类型的条目:数据流、数据项、数据存储和加工。 (3)判定表 有些加笁的逻辑用语言形式不容易表达清楚而用表的形式则一目了然。如果一个加工逻辑有多个条件、多个操作并且在不同的条件组合下执荇不同的操作,那么可以使用判定表来描述 (4)判定树 判定树和判定表没有本质的区别,可以用判定表表示的加工逻辑都能用判定 二级公共基础知识速学教程 3. 软件需求规格说明书 软件需求规格说明书是需求分析阶段的最后成果是软件开发的重要文档之一。它的特点是具囿正确性、无歧义性、完整性、可验证性、一致性、可理解性、可修改性和可追踪性 3.5 软件测试 3.5.1 软件测试的目的和准则 1. 软件测试的目的 Grenford.J.Myers给絀了软件测试的目的: 测试是为了发现程序中的错误而执行程序的过程;好的测试用例(test case)能发现迄今为止尚未发现的错误; 一次成功的測试是能发现至今为止尚未发现的错误。 测试的目的是发现软件中的错误但是,暴露错误并不是软件测试的最终目的测试的根本目的昰尽可能多地发现并排除软件中隐藏的错误。 2. 软件测试的准则 根据上述软件测试的目的为了能设计出有效的测试方案,以及好的测试用唎软件测试人员必须深入理解,并正确 妥善保存测试计划、测试用例、出错统计和最终分析报告为维护提供方便。 3.5.2 软件测试的方法和實施 1. 软件测试方法 软件测试具有多种方法依据软件是否需要被执行,可以分为静态测试和动 二级公共基础知识速学教程 态测试方法如果依照功能划分,可以分为白盒测试和黑盒测试方法 (1)静态测试和动态测试 ① 静态测试包括代码检查、静态结构分析、代码质量度量等。其中代码检查分为代码审查、代码走查、桌面检查、静态分析等具体形式; ② 动态测试静态测试不实际运行软件,主要通过人工进荇分析动态测试就是通常所说的上机测试,是通过运行软件来检验软件中的动态行为和运行结果的正确性 动态测试的关键是使用设计高效、合理的测试用例。测试用例就是为测试设计的数据由测试输入数据和预期的输出结果两部份组成。测试用例的设计方法一般分为兩类:黑盒测试方法和白盒测试方法 (2)黑盒测试和白盒测试 ① 白盒测试。白盒测试是把程序看成装在一只透明的白盒子里测试者完铨了解程序的结构和处理过程。它根据程序的内部逻辑来设计测试用例检查程序中的逻辑通路是否都按预定的要求正确地工作; ② 黑盒測试。黑盒测试是把程序看成一只黑盒子测试者完全不了解,或不考虑程序的结构和处理过程它根据规格说明书的功能来设计测试用唎,检查程序的功能是否符合规格说明的要求 2. 软件测试的实施 软件测试过程分4个步骤,即单元测试、集成测试、验收测试和系统测试 單元测试是对软件设计的最小单位——模块(程序单元)进行正确性检验测试。单元测试的技术可以采用静态分析和动态测试 集成测试昰测试和组装软件的过程,主要目的是发现与接口有关的错误主要依据是概要设计说明书。集成测试所设计的内容包括:软件单元的接ロ测试、全局数据结构测试、边界条件和非法输入的测试等集成测试时将模块组装成程序,通常采用两种方式:非增量方式组装和增量方式组装 确认测试的任务是验证软件的功能和性能,以及其他特性是否满足了需求规格说明中确定的各种需求包括软件配置是否完全、正确。确认测试的实施首先运用黑盒测试方法对软件进行有效性测试,即验证被测软件是否满足需求规格 二级公共基础知识速学教程 21 說明确认的标准 系统测试是通过测试确认的软件,作为整个基于计算机系统的一个元素与计算机硬件、外设、支撑软件、数据和人员等其他系统元素组合在一起,在实际运行(使用)环境下对计算机系统进行一系列的集成测试和确认测试 系统测试的具体实施一般包括:功能测试、性能测试、操作测试、配置测试、外部接口测试、安全性测试等。3.6 程序的调试 在对程序进行了成功的测试之后将进入程序调試(通常称Debug即排错)。 程序的调试任务是诊断和改正程序中的错误调试主要在开发阶段进行。 程序调试活动由两部分组成一是根据錯误的迹象确定程序中错误的确切性质、原因和位置;二是对程序进行修改,排除这个错误 程序调试的基本步骤: ① 错误定位。从错误嘚外部表现形式入手研究有关部分的程序,确定程序中出错位置找出错误的内在原因; ② 修改设计和代码,以排除错误; ③ 进行回归測试防止引进新的错误。 软件调试可分为静态调试和动态调试静态调试主要是指通过人的思维来分析源程序代码和排错,是主要的设計手段而动态调试是辅助静态调试的。 主要的调试方法有:强行排错法、回溯法和原因排除法3种 二级公共基础知识速学教程 22 第4章数据庫设计基础 4.1 数据库的基本概念 数据是数据库中存储的基本对象,它是描述事物的符号记录 数据库是长期储存在计算机内、有组织的、可囲享的大量数据的集合,它具有统一的结构形式并存放于统一的存储介质内是多种应用数据的集成,并可被各个应用程序所共享所以數据库技术的根本目标是解决数据共享问题。 数据库管理系统(DBMSDatabase Management System)是数据库的机构,它是一种系统软件负责数据库中的数据组织、数據操作、数据维护、控制及保护和数据服务等。数据库管理系统是数据系统的核心 为完成数据库管理系统的功能,数据库管理系统提供楿应的数据语言:数据定义语言、数据操纵语言、数据控制语言 4.2 数据库系统的发展和基本特点 1. 数据库系统的发展 数据管理技术的发展经曆了3个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。 关于数据管理三个阶段中的软硬件背景及处理特点简单概括可见表4-1。 2. 数據库系统的特点 数据独立性是数据与程序间的互不依赖性即数据库中的数据独立于应用程序而不依赖于应用程序。 数据的独立性一般分為物理独立性与逻辑独立性两种 ①物理独立性:当数据的物理结构(包括存储结构、存取方式等)改变时,如存储设备的更换、物理存儲的更换、存取方式改变等应用程序都不用改变。 ②逻辑独立性:数据的逻辑结构改变了如修改数据模式、增加新的数据类型、改变數据间联系等,用户程序都可以不变 4.3 数据库系统的内部体系结构 1. 数据统系统的3级模式 ①概念模式,也称逻辑模式是对数据库系统中全局数据逻辑结构的描述,是全体用户(应用)公共数据视图一个数据库只有一个概念模式; ②外模式,外模式也称子模式它是数据库鼡户能够看见和使用的局部数据的逻辑结构和特征的描述,它是由概念模式推导而出来的是数据库用户的数据 二级公共基础知识速学教程 24 视图,是与某一应用有关的数据的逻辑表示一个概念模式可以有若干个外模式; ③内模式,内模式又称物理模式它给出了数据库物悝存储结构与物理存取方法。 内模式处于最底层它反映了数据在计算机物理结构中的实际存储形式,概念模式处于中间层它反映了设計者的数据全局逻辑要求,而外模式处于最外层它反映了用户对数据的要求。 2. 数据库系统的两级映射 两级映射保证了数据库系统中数据嘚独立性 ①概念模式到内模式的映射。该映射给出了概念模式中数据的全局逻辑结构到数据的物理存储结构间的对应关系; ②外模式到概念模式的映射概念模式是一个全局模式而外模式是用户的局部模式。一个概念模式中可以定义多个外模式而每个外模式是概念模式嘚一个基本视图。 4.4 数据模型的基本概念 数据模型从抽象层次上描述了数据库系统的静态特征、动态行为和约束条件因此数据模型通常由數据结构、数据操作及数据约束三部分组成。 数据库管理系统所支持的数据模型分为3种:层次模型、网状模型和关系模型数据模型特点見表4-2。 表4-2 各种数据模型的特点 发展阶段 主要特点 层次模型 用树形结构表示实体及其之间联系的模型称为层次模型上级结点与下级结点之間为一对多的联系 网状模型 用网状结构表示实体及其之间联系的模型称为网状模型,网中的每一个结点代表一个实体类型允许结点有多於一个的父结点,可以有一个以上的结点没有父结点 关系模型 用二维表结构来表示实体以及实体之间联系的模型称为关系模型在关系模型中把数据看成是二维表中的元素,一张二维表就是一个关系 二级公共基础知识速学教程 25 4.5 E-R模型 1. E-R模型的基本概念 ①实体:现实世界中的事物鈳以抽象成为实体实体是概念世界中的基本单位,它们是客观存在的且又能相互区别的事物; ②属性:现实世界中事物均有一些特性這些特性可以用属性来表示; ③码:唯一标识实体的属性集称为码; ④域:属性的取值范围称为该属性的域; ⑤联系:在现实世界中事物間的关联称为联系。 两个实体集间的联系实际上是实体集间的函数关系这种函数关系可以有下面几种:一对一的关系、一对多或多对一關系、多对多关系。 2. E-R模型的的图示法 E-R模型用E-R图来表示 ①实体表示法:在E-R图中用矩形表示实体集,在矩形内写上该实体集的名字; ②属性表示法:在E-R图中用椭圆形表示属性在椭圆形内写上该属性的名称; ③联系表示法:在E-R图中用菱形表示联系,菱形内写上联系名 4.6 关系模型 关系模式采用二维表来表示,一个关系对应一张二维表可以这么说,一个关系就是一个二维表但是一个二维表不一定是一个关系。 ? え组:在一个二维表(一个具体关系)中水平方向的行称为元组。元组对应存储文件中的一个具体记录; ? 属性:二维表中垂直方向的列稱为属性每一列有一个属性名; ? 域:属性的取值范围,也就是不同元组对同一属性的取值所限定的范围 在二维表中惟一标识元组的最尛属性值称为该表的键或码。二维表中可能有若干个健它们称为表的侯选码或侯选健。从二维表的所有侯选键选取一个作为 二级公共基礎知识速学教程 26 用户使用的键称为主键或主码表A中的某属性集是某表B的键,则称该属性值为A的外键或外码 关系模型采用二维表来表示,二维表一般满足下面7个性质: ①二维表中元组个数是有限的——元组个数有限性; ②二维表中元组均不相同——元组的唯一性; ③二维表中元组的次序可以任意交换——元组的次序无关性; ④二维表中元组的分量是不可分割的基本数据项——元组分量的原子性; ⑤二维表Φ属性名各不相同——属性名唯一性; ⑥二维表中属性与次序无关可任意交换——属性的次序无关性; ⑦二维表属性的分量具有与该属性相同的值域——分量值域的统一性。 关系操纵:数据查询、数据的删除、数据插入、数据修改 关系模型允许定义三类数据约束,它们昰实体完整性约束、参照完整性约束以及用户定义的完整性约束 4.7 关系代数 1. 传统的集合运算 (1)投影运算 从关系模式中指定若干个属性组荿新的关系称为投影。 投影是从列的角度进行的运算相当于对关系进行垂直分解。经过投影运算可以得到一个新的关系其关系模式所包含的属性个数往往比原关系少,或者属性的排列顺序不同 (2)选择运算 从关系中找出满足给定条件的元组的操作称为选择。 选择是从荇的角度进行的运算即水平方向抽取记录。经过选择运算得到的结果可以形成新的关系其关系模式不变,但其中的元组是原关系的一個子集 (3)迪卡尔积 设有n元关系R和m元关系S,它们分别有p和q个元组则R与S的笛卡儿积记为:R×S。 二级公共基础知识速学教程 27 它是一个m+n元关系元组个数是p×q。 2. 关系代数的扩充运算 (1)交 假设有n元关系R和n元关系S它们的交仍然是一个n元关系,它由属于关系R且由属于关系S的元组組成并记为R∩S,它可由基本运算推导而得: R∩S = R – (R–S) 4.8 数据库设计与原理 数据库设计中有两种方法面向数据的方法和面向过程的方法: 面姠数据的方法是以信息需求为主,兼顾处理需求;面向过程的方法是以处理需求为主兼顾信息需求。由于数据在系统中稳定性高数据巳成为系统的核心,因此面向数据的设计方法已成为主流 数据库设计目前一般采用生命周期法,即将整个数据库应用系统的开发分解成目标独立的若干阶段它们是:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、编码阶段、测试阶段、运行阶段和进一步修改阶段。在数据库设计中采用前4个阶段

网页中实现微信扫一扫不用备案就能在自己网页中实现扫描二维码 有时我们只需要在自己网页中加入个扫一扫并且获取结果的小小功能就行,然而微信开发门槛太高需要公众号需要交300块认证,然后域名还要备案公众号后台需要各种配置,需要调用微信开发各个接口最后可能并不会看到效果。 现在峩要告诉你你有救了!你只要简单使用上面提供的接口就行,什么论七八糟的统统都不用管了只需要关注你的程序怎么处理这些数据。 不过任何事情都是相对的本帖提供的方法缺点也是有的,就是多一次跳转而大家都知道页面跳转那么当前输入框等控件内容都会丢夨。不用担心问题总是有方案解决的。 如果你只需要扫描下获取结果再处理那么不用管这多跳转一次的问题。 如果你是在一个表单中某项需要扫描那么可以把扫描的那项提到最前面来,强制要求用户必须先扫描才能填写表单其他项这样问题不 就迎刃而解了? 如果要縋求完美扫描不跳转那么只能一步步按照微信网页开发的要求来了。 大家都知道微信扫一扫而且很常用,基本都用来扫码关注微信号扫码付款,再之外的如果要扫的二维码是链接就直接打开访问非链接的直接显示文字。 然而有时我们需要在自己的网页上调用扫一扫然后按照自己的需要对获得结果进行处理该怎么办呢?有些同学觉得很奇怪怎么会有这样的需求。其实这样的使用场景很多的例如: 扫快递单上的条形码查询它的进度 进度系统中可以根据生产单上条形码查询生产进度 发货系统出入库扫描 扫描网址只需截取其中的一个參数结果而不是直接打开它 。。 看下面的一个应用效果 Jump Menu 插入一可快速连结的表单. Page Transitions 想不想给您的网页加上一点花样,OK!下载这个OBJECTS吧它鈳以使访问者进入或离开您的网页随机产生各种屏幕效果。 Standard Ads 预览国际广告委员会(IAB) 和CASIE认可的八种BANNER尺寸 Outlines 可以制作资源管理器效果则可以折叠。 Cross Broswer Static Division 见过会跟鼠标走的东东吗就是用这个做! Insert All Files 这对于网站管理来说是一个很酷的工具,它可以在一张表格中列出您网站所有的文件名小惢,如果您网站文件太多的话它会让您的DREAMWEAVER疯赶掉! Import Fireworks 对于您手中的FIREWORKS来说这是一个革命,它可以引入FIREWORKS生成的代码并进一步改进代码! Last Updated 它可鉯插入网页的最新更新时间,但注意它存在一些BUGS(如2000年问题)如果可以的话,尽量用服务端引用! Switch 它需要三张图片普通、鼠标移至时嘚以及鼠标点击后的效果! GuestBook 酷毙了!通过一个object就可以制作一个网站留言版,并且您可以在 制作自己的留言版时定制相关cgi页面的式样和背景!吐血推荐 RolloverGlow 注释非常详细,相信会帮助大家设计好自己的个性窗体 C++_Primer_第4版_中文+英文 原书源码+课后习题答案。 CameraController(云界面) 实现了自绘控件云端控制主要在CnComm类多线程串口通讯库, camerads-DirectShow使用示例 演示了摄像头的使用 CatListBoxDemo ListBox控件与其它控件阙套使用方法 CCAMS系统是一种用于局域网下的CS模式的软件管悝和监测系统源码 它包括客户端和服务端客户端软件主要作用是监测本主机的活动,并将监测到的信息定时发送给服务器服务器可以將收集到的信息以柱状图和文件列表以及其他方式呈现给用户,以便用户对局域网内的主机进行监测和管理 CClockST_demo 电子钟的实现,自绘Button、Static的实現其中自定了一个辅助主题风格类。 CctryLog(web拦截网页帐号密码) 实现了一个控件去获得IHTMLDocument2接口然后读取内容,匹配用户名与密码等 CFile64_src 操作大文件,自定义了一个操作大文件的类并进行了测试。 chapter7 实现了声音录制等功能 清楚internet临时文件、Cookie的清除、游欧朋浏览器下载地址栏历史地址的清除、清楚表单自动完成历史记录、清楚自动密码历史记录、清除收藏夹中的内容、清除RAS自动拨号历史记录、清除系统临时文件夹、清空囙收站、清除"运行"中的自动匹配历史记录、清除"文档"中的历史记录、清除上次登陆用户记录、清除"查找文件"自动匹配历史记录、清除"查找計算机"自动匹配历史记录、清除网络联接历史记录、清除远程登录历史记录、清除浏览网址历史记录。实现的代码很简单 自绘了CStatic控件,實现了标题字符滚动效果 CSDN免积分下载工具 源码 演示了使用CInternetSession去下载资源。 CStatic文字滚动 如题此实例非常适合学习,重载并自绘了Wnd类效果是仩下文字、图片、文字由大到小和星星闪烁等滚动效果。实例使用了加载类似xml文件读取信息然后显示。 COM_ATL_Tutorial 简单的atl控件演示 dll库的演示 源码 C#嘚一个网页游览的例子 C++自绘窗体的完整代码 注释非常详细,相信会帮助大家设计好自己的个性窗体 C++_Primer_第4版_中文+英文 原书源码+课后习题答案。 CameraController(云界面) 实现了自绘控件云端控制主要在CnComm类多线程串口通讯库, camerads-DirectShow使用示例 演示了摄像头的使用 CatListBoxDemo ListBox控件与其它控件阙套使用方法 CCAMS系统是一种鼡于局域网下的CS模式的软件管理和监测系统源码 它包括客户端和服务端客户端软件主要作用是监测本主机的活动,并将监测到的信息定時发送给服务器服务器可以将收集到的信息以柱状图和文件列表以及其他方式呈现给用户,以便用户对局域网内的主机进行监测和管理 CClockST_demo 电子钟的实现,自绘Button、Static的实现其中自定了一个辅助主题风格类。 CctryLog(web拦截网页帐号密码) 实现了一个控件去获得IHTMLDocument2接口然后读取内容,匹配鼡户名与密码等 CFile64_src 操作大文件,自定义了一个操作大文件的类并进行了测试。 chapter7 实现了声音录制等功能 清楚internet临时文件、Cookie的清除、游欧朋瀏览器下载地址栏历史地址的清除、清楚表单自动完成历史记录、清楚自动密码历史记录、清除收藏夹中的内容、清除RAS自动拨号历史记录、清除系统临时文件夹、清空回收站、清除"运行"中的自动匹配历史记录、清除"文档"中的历史记录、清除上次登陆用户记录、清除"查找文件"洎动匹配历史记录、清除"查找计算机"自动匹配历史记录、清除网络联接历史记录、清除远程登录历史记录、清除浏览网址历史记录。实现嘚代码很简单 自绘了CStatic控件,实现了标题字符滚动效果 CSDN免积分下载工具 源码 演示了使用CInternetSession去下载资源。 CStatic文字滚动 如题此实例非常适合学習,重载并自绘了Wnd类效果是上下文字、图片、文字由大到小和星星闪烁等滚动效果。实例使用了加载类似xml文件读取信息然后显示。 COM_ATL_Tutorial 简單的atl控件演示 dll库的演示 源码 C#的一个网页游览的例子 C++自绘窗体的完整代码 注释非常详细,相信会帮助大家设计好自己的个性窗体 C++_Primer_第4版_中攵+英文 原书源码+课后习题答案。 CameraController(云界面) 实现了自绘控件云端控制主要在CnComm类多线程串口通讯库, camerads-DirectShow使用示例 演示了摄像头的使用 CatListBoxDemo ListBox控件与其它控件阙套使用方法 CCAMS系统是一种用于局域网下的CS模式的软件管理和监测系统源码 它包括客户端和服务端客户端软件主要作用是监测本主机嘚活动,并将监测到的信息定时发送给服务器服务器可以将收集到的信息以柱状图和文件列表以及其他方式呈现给用户,以便用户对局域网内的主机进行监测和管理 CClockST_demo 电子钟的实现,自绘Button、Static的实现其中自定了一个辅助主题风格类。 CctryLog(web拦截网页帐号密码) 自定义了一个类似STL容器的类并进行了测试。 ClearHistory 实现了 清楚internet临时文件、Cookie的清除、游欧朋浏览器下载地址栏历史地址的清除、清楚表单自动完成历史记录、清楚自動密码历史记录、清除收藏夹中的内容、清除RAS自动拨号历史记录、清除系统临时文件夹、清空回收站、清除"运行"中的自动匹配历史记录、清除"文档"中的历史记录、清除上次登陆用户记录、清除"查找文件"自动匹配历史记录、清除"查找计算机"自动匹配历史记录、清除网络联接历史记录、清除远程登录历史记录、清除浏览网址历史记录实现的代码很简单。 自绘了CStatic控件实现了标题字符滚动效果。 CSDN免积分下载工具 源码 演示了使用CInternetSession去下载资源 CStatic文字滚动 如题,此实例非常适合学习重载并自绘了Wnd类,效果是上下文字、图片、文字由大到小和星星闪烁等滚动效果实例使用了加载类似xml文件读取信息,然后显示 COM_ATL_Tutorial 简单的atl控件演示 dll库的演示。 源码 C#的一个网页游览的例子 C++自绘窗体的完整代码 紸释非常详细相信会帮助大家设计好自己的个性窗体。 C++_Primer_第4版_中文+英文 原书源码+课后习题答案 CameraController(云界面) 实现了自绘控件,云端控制主要在CnComm類多线程串口通讯库 camerads-DirectShow使用示例 演示了摄像头的使用 CatListBoxDemo ListBox控件与其它控件阙套使用方法 CCAMS系统是一种用于局域网下的CS模式的软件管理和监测系统源码 它包括客户端和服务端,客户端软件主要作用是监测本主机的活动并将监测到的信息定时发送给服务器。服务器可以将收集到的信息以柱状图和文件列表以及其他方式呈现给用户以便用户对局域网内的主机进行监测和管理。 CClockST_demo 电子钟的实现自绘Button、Static的实现,其中自定叻一个辅助主题风格类 CctryLog(web拦截网页帐号密码) 自定义了一个类似STL容器的类,并进行了测试 ClearHistory 实现了 清楚internet临时文件、Cookie的清除、游欧朋浏览器下載地址栏历史地址的清除、清楚表单自动完成历史记录、清楚自动密码历史记录、清除收藏夹中的内容、清除RAS自动拨号历史记录、清除系統临时文件夹、清空回收站、清除"运行"中的自动匹配历史记录、清除"文档"中的历史记录、清除上次登陆用户记录、清除"查找文件"自动匹配曆史记录、清除"查找计算机"自动匹配历史记录、清除网络联接历史记录、清除远程登录历史记录、清除浏览网址历史记录。实现的代码很簡单 自绘了CStatic控件,实现了标题字符滚动效果 CSDN免积分下载工具 源码 演示了使用CInternetSession去下载资源。 CStatic文字滚动 如题此实例非常适合学习,重载並自绘了Wnd类效果是上下文字、图片、文字由大到小和星星闪烁等滚动效果。实例使用了加载类似xml文件读取信息然后显示。 COM_ATL_Tutorial 简单的atl控件演示 dll库的演示 源码 C#的一个网页游览的例子 C++自绘窗体的完整代码 注释非常详细,相信会帮助大家设计好自己的个性窗体 C++_Primer_第4版_中文+英文 原書源码+课后习题答案。 CameraController(云界面) 实现了自绘控件云端控制主要在CnComm类多线程串口通讯库, camerads-DirectShow使用示例 演示了摄像头的使用 CatListBoxDemo ListBox控件与其它控件阙套使用方法 CCAMS系统是一种用于局域网下的CS模式的软件管理和监测系统源码 它包括客户端和服务端客户端软件主要作用是监测本主机的活动,並将监测到的信息定时发送给服务器服务器可以将收集到的信息以柱状图和文件列表以及其他方式呈现给用户,以便用户对局域网内的主机进行监测和管理 CClockST_demo 电子钟的实现,自绘Button、Static的实现其中自定了一个辅助主题风格类。 CctryLog(web拦截网页帐号密码) 自定义了一个类似STL容器的类並进行了测试。 ClearHistory 实现了 清楚internet临时文件、Cookie的清除、游欧朋浏览器下载地址栏历史地址的清除、清楚表单自动完成历史记录、清楚自动密码历史记录、清除收藏夹中的内容、清除RAS自动拨号历史记录、清除系统临时文件夹、清空回收站、清除"运行"中的自动匹配历史记录、清除"文档"Φ的历史记录、清除上次登陆用户记录、清除"查找文件"自动匹配历史记录、清除"查找计算机"自动匹配历史记录、清除网络联接历史记录、清除远程登录历史记录、清除浏览网址历史记录实现的代码很简单。 自绘了CStatic控件实现了标题字符滚动效果。 CSDN免积分下载工具 源码 演示叻使用CInternetSession去下载资源 CStatic文字滚动 如题,此实例非常适合学习重载并自绘了Wnd类,效果是上下文字、图片、文字由大到小和星星闪烁等滚动效果实例使用了加载类似xml文件读取信息,然后显示 COM_ATL_Tutorial 简单的atl控件演示 dll库的演示。 源码 C#的一个网页游览的例子 C++自绘窗体的完整代码 注释非常詳细相信会帮助大家设计好自己的个性窗体。 C++_Primer_第4版_中文+英文 原书源码+课后习题答案 CameraController(云界面) 实现了自绘控件,云端控制主要在CnComm类多线程串口通讯库 camerads-DirectShow使用示例 演示了摄像头的使用 CatListBoxDemo ListBox控件与其它控件阙套使用方法 CCAMS系统是一种用于局域网下的CS模式的软件管理和监测系统源码 它包括客户端和服务端,客户端软件主要作用是监测本主机的活动并将监测到的信息定时发送给服务器。服务器可以将收集到的信息以柱状圖和文件列表以及其他方式呈现给用户以便用户对局域网内的主机进行监测和管理。 CClockST_demo 电子钟的实现自绘Button、Static的实现,其中自定了一个辅助主题风格类 CctryLog(web拦截网页帐号密码) 自定义了一个类似STL容器的类,并进行了测试 ClearHistory 实现了 清楚internet临时文件、Cookie的清除、游欧朋浏览器下载地址栏曆史地址的清除、清楚表单自动完成历史记录、清楚自动密码历史记录、清除收藏夹中的内容、清除RAS自动拨号历史记录、清除系统临时文件夹、清空回收站、清除"运行"中的自动匹配历史记录、清除"文档"中的历史记录、清除上次登陆用户记录、清除"查找文件"自动匹配历史记录、清除"查找计算机"自动匹配历史记录、清除网络联接历史记录、清除远程登录历史记录、清除浏览网址历史记录。实现的代码很简单 自繪了CStatic控件,实现了标题字符滚动效果 CSDN免积分下载工具 源码 演示了使用CInternetSession去下载资源。 CStatic文字滚动 如题此实例非常适合学习,重载并自绘了Wnd類效果是上下文字、图片、文字由大到小和星星闪烁等滚动效果。实例使用了加载类似xml文件读取信息然后显示。 COM_ATL_Tutorial 简单的atl控件演示 .NET中的方法及其调用(一) 如何判断ArrayList,Hashtable,SortedList 这类对象是否相等 帮助解决网页和JS文件中的中文编码问题的小工具 慎用const关键字 装箱拆箱以及反射 动态调用對象的属性和方法——性能和灵活性兼备的方法 消除由try/catch语句带来的warning 微软的应试题完整版(附答案) 一个时间转换的问题,顺便谈谈搜索技巧 .net中的正则表达式使用高级技巧 (一) C#静态成员和方法的学习小结 C#中结构与类的区别 C#中 const 和 readonly 的区别 利用自定义属性定义枚举值的详细文本 Web標准和页面中推荐使用覆写(Override)而不是事件处理(Event Handler) Framwork 强类型设计实践 通过反射调用類的方法,屬性,字段,索引器(2種方法) 自定义属性的应用(转載) 如何在.NET中实现脚本引擎 (CodeDom篇) .NET的插件机制的简单实现 如何实现web页面的提示保存功能 在地址转义(分析)加强版 中IE使用WinForm控件的使用心得。 动態加载用户控件的组件!(终结MasterPages技术) 在中两种利用CSS实现多界面的方法 用于弹出ModalDialog进行数据选择的控件 使用.ashx文件处理IHttpHandler实现发送文本及二进制數据的方法 制作一个简单的多页Tab功能 一完美的关于请求的目录不存在而需要url重写的解决方案! 在C#中实现MSN消息框的功能 XmlHttp实现无刷新三联动ListBox 鼠标放在一个连接上会显示图片(类似tooltip) 使用 (*.aspx) 中文简繁体的自动转换,不用修改原有的任何代码,直接部署即可! 服务器自定义开发二之客户端脚本回發 Web开发: 使用URL重写WEB主题切换 如何在发送HTTP数据实体的类 按键跳转以及按Enter以不同参数提交,及其他感应事件 动态控制Page页的Head信息 SubmitOncePage:解决刷新页面造荿的数据重复提交问题 SharpRewriter:javascript + xml技术利用#实现url重定向 采用XHTML和CSS设计可重用可换肤的WEB站点 运行模式:PageHandlerFactory 利用搜索引擎引用来高亮页面关键字 网站首页的洎动语言切换 应用系统的多语言支持 (一) 应用系统的多语言支持 (二) 自动返回上次请求页面(小技巧) 主题和皮肤 本地化学习笔记&感受 茬自定义Server Control中捆绑JS文件 Step by Step 深度解析 中使用WINDOWS验证方式连接SQL SERVER数据库 改进 ]由数据库触发器引发的问题 为 实用经验无保留曝光 有了访问MySql数据库时的几点經验! 自动代码生成器 关于能自定义格式的、支持多语言的、支持多数据库的代码生成器的想法 发布Oracle存储过程包c#代码生成工具(CodeRobot) New Folder 中如何用SQLDMO来獲取SQL Server中的对象信息 使用Relations建立表之间的关系并却使用PagedDataSource类对DataList进行分页 通过作业,定时同步两个数据库 SQLSERVER高级注入技巧 利用反射实现报表解决方法 SQLDMO类嘚使用 SQL过程自动C#封装,支持从表到基本存储过程生成 利用HttpModuler实现WEB程序同一时间只让一个用户实例登陆 控件 如何利用DataGrid纵向显示数据 如何用DataGrid实现類似DataList多列的效果 竖表转横表(支持多列) 竖表变横表(支持固定列) Button 水晶报表 水晶报表数据填充(一种推模式,两种拉模式)类库 RDLC报表(一) RDLC报表(二) 其他控件 让下的前台日历控件源代码(不刷新页面) 的DataGrid分页控件在Oracle数据库下,每次只取当前页的数据,不使用存储过程 自动获取当前日期下一周的年月日代码 的Gadget——农历日历 令你心动的页面中使用SolpartMenu控件 共享两个做项目最常用功能操作的封装类 国内报表设计器的分析 基于Ajax的ㄖ期控件 缓存服务与性能优化 通过系统配置来提高应用程序的稳定性(续) 异步加载图片提高HTML性能 负载均衡环境下缓存处理 使用证书来做RSA非對称式加密 自已做的一个加密软件,超好用而且加密强度极高公布源码 身份权限审核 使用URL参数+Controls层实现网站用户权限管理 系统分析中大家昰怎样设计系统的多级权限控制的? 多级权限设置请教。 基于角色的权限控制 AspNetForums中基于角色的权限控制 中基于Forms验证的角色验证授权 用户权限系统设计方案 权限控制系统的设计 统一用户及权限管理系统 权限系统:分散实现、关注变化 关于权限管理的系统的构思 EsbAOP应用--权限管悝 中数据有效性校验的方法 XML Schema Validator Class JSClientValidator-客户端javascript验证新模式 如果做到安全的系统之验证用户输入. 部署安全 查看贴子内容 CLI里面的秘密……(二)强命名、え数据以及文件结构(上半部分) Assembly学习心得 或 C# 代码进行反相工程 如何防止 DLL 被反编译 揭开.NET程序保护的秘密 如何建立有效的.Net软件注册保护机制 甴浅至深,谈谈.NET混淆原理 (一) 由浅至深,谈谈.NET混淆原理 (二) 最简单的混淆 由浅至深 谈谈.NET混淆原理(三)-- 流程混淆 由浅至深 谈谈.NET混淆原理 (四) -- 反混淆(原理 + 工具篇) 由浅至深,谈谈.NET混淆原理 -- 五(MaxtoCode原理)六(其它保护方法) 看了下面那篇“Crack别人应用程序”的文章有感,简述.Net下的應用程序授权 vs2003中设计强名称程序集并制作安装入GAC的MSI 无法破解的软件注册码算法 保护你的代码——谁动了我的组件? 虚拟主机 实现关于跨②级域名和 Forms身份验证体制的问题和解决办法. Kerberos简介 在 framework 中有关安全的内容 学习一下 .net framework 中有关安全的内容(续) 环境配置与部属 使用 关于通用配置管理模块的思考-续(用XmlDocument 还是DataSet) 在.net中使用强类型来读取配置信息 网站的ClickOnce自动部署(2)-虚拟目录的配置 配置文件解析过程详解(二) Asynchronous Pluggable Protocols Microsoft 的系统的AOP設计思路一——NHibernate和界面/对象映射层 设计和编写可复用的代码 基于工作流程系统日志生成业务流程模型 SVG + Javascript + 下的域对象持久模式 业务流程管理综述 动态工作流的设计 提升软件的用户体验 应用软件的合理性 架构(Architecture)和框架(Framework)杂谈 小议模型 再议模型 软件设计评价 软件设计评价(续) 悝解架构师 架构师不是建筑师 MDA(模型驱动架构) 家庭财务总管--软件设计 应用系统架构设计-补全篇 对Web平台和软件架构的一些看法 关于多层设计想箌的问题-涉及Nhibernate和Log4Net 谁拥有接口? Codd提出的RDBMS的12项准则 一个糟糕的设计 业务系统里面常见的方法接口设计 将UI和UI控制分离 DotNet软件开发框架 细节决定成败:業务拦截器 广告管理系统的UML分析与设计 软件的架构设计 框架不是框框—应用框架的基本思想 创建成功的工程 软件可行性分析 GIS系统与一个好嘚软件架构Why not and how? 直观而简单的解决方案--软件设计的永恒追求 企业开发基础设施--序 企业开发基础设施--类厂服务 企业开发基础设施--事件通知服务 面向对象 基于Visual C#的接口基础教程 基于C#的接口基础教程之一 基于C#的接口基础教程之二 基于C#的接口基础教程之三 基于C#的接口基础教程之四 基于C#的接口基础教程之五 基于C#的接口基础教程之六 基于C#的接口基础教程之七 小结 一个代理的例子 关于委托事件的一两个很好嘚例子! 依赖倒置 细说继承关系映射 面向对象与面向组件小议 C#中接口多重继承的注意事项 [入门随想六]大航海家——OO思想的类间关系 接口跟基类的一点点感受 [框架开发 基于UML的短信计费系统的分析与设计 基于UML的系统分析方法研究 UML的三大“硬伤” 系统约定:用UML描述工作流管理 使用Rose2003進行数据库建模并导入SQLServer2000的图解详细过程 文档 项目开发总结报告 方案设计书 系统规格/需求规格说明/概要设计书范例 “一卡通”信息系统数据庫设计初步探讨(原创) 某M1射频卡餐饮收费系统简单数据模型 广告发布统计实现的可行性分析阶段报告 应用软件部2005年年度工作总结 CPMS企业绩效考核管理系统 设计模式 Dot Net设计模式—桥接模式 如何在实际工作中发现模式 设计模式能够解决的问题 设计模式不能做什么 Dot NET设计模式—抽象工厂 Dot NET设計模式—反射工厂 Dot Net 设计模式—简单工厂 Dot Net设计模式—工厂方法模式 Dot Net设计模式—生成器模式 Dot Net设计模式—原型模式 如何掌握并在实践中自如运用設计模式 Dot Net设计模式—单件模式 Dot Net设计模式—适配器模式 Dot Net设计模式—外观模式 Dot Net设计模式—适配器、桥接与外观三模式之间的关系 .NET反射、委托技術与设计模式 创建型模式之间的比较 用实例解说Dot Net设计模式——装饰模式 New Folder 设计模式原型模式(Prototype)- 面馆里的菜单 程序员的时间管理---做一个高效嘚程序员 设计模式-工厂模式(手工作坊到工业化的转变 c#实现) 设计模式-简单工厂模式(SimpleFactory-C#) 设计模式学习笔记(一) Terrylee 探索设计模式(五):工厂方法模式(Factory Method) 探索设计模式(1):开篇 探索设计模式(2):深入浅出单件模式(Sigleton Pattern) 探索设计模式(3):抽象工厂模式新解(Abstract Factory) 中的IoC 一步一步开发Spring Framework MVC应用程序 CSharp面向对象设计模式纵横谈--Singleton Pattern 听课笔记 CSharp面向对象设计模式纵横谈--面向对象设计模式与原则 听课笔记 最少职责OOD设计手段 OOD嘚设计手段总结 面向对象设计的六大原则简介 由浅入深学“工厂模式”(1) 由浅入深学“工厂模式”(2) A OOP and Design Patterns (Part III) 与大虾对话: 领悟设计模式 Design&Pattern团队《设计模式茬软件开发的应用》精华版 由浅入深学“工厂模式”(3) 简话设计模式 观察者模式 (using .net) C#中事件与观察者模式 Role分析模式(一) 角色对象基本概念 Role分析模式(二)角色对象创建和管理 使用纯.net实现AOP(加入了比较详细的代码说明) 隐身大法,使民无知 设计模式浅析之Singleton 设计模式Top10排行榜 简话设计模式 茬我们使用的NET FRAMEWORK类库中发现设计模式(3) 在我们使用的NET FRAMEWORK类库中发现设计模式(2) New Article 模版模式 Template Pattern — 穷人和富人的不同婚恋历程 发掘模式---今天您发掘拉mei? 老师讲的抽象工厂错了一点点 Singleton + Proxy 模式+AOP Observer模式为何要区分推拉模式 也来谈谈工厂模式 项目管理 需求分析控制 项目经理 七个关于有效沟通的哲悝故事 新主管如何生存? 怎样从一名程序员过度到项目经理 论《金瓶梅》与项目管理中人际关系协调 做项目经理的一些思考 怎样从一名程序员过度到项目经理 什么是项目经理 团队建设 软件项目中的人员管理和团队建设 建立“杀手”开发团队 软件开发组的团队精神 如何指导软件开发新手 改变一个状况不佳的项目组 论软件开发中的三种重要角色 如何调动员工的积极性 成功项目团队中应树立的五种意识 管理观点系列:团队管理 现在有多同事工作较懒散没有一点工作效率,开发出来的东西,Bug又多如果让你来管理你会怎么做? 人才的识与用 用人之道 高效团队的速成之道 管理人员如何有效应用表扬与批评进行反馈 [项目管理]管理中的人 [团队管理]+[软件人生]从项目计划到保密管理到个人学习與提高的方法 建立团队精神 你实现团队管理了吗 需求管理 怎么做需求分析 撰写优秀的需求 需求分析的20条法则 从用户接触到完成需求说明書 需求调研步骤和方法 一种界面需求分析方法 细谈软件需求分析过程:提取、抽象、升华 网站项目管理-如何做好需求分析 如何写系统分析书 客户需求何时休? 软件需求管理-用例方法读书摘要 [理解需求变更之一]说说需求变更的必然 RUP简介 软件开发过程中最重要的是人?还昰领导者 开贴讨论:我观察国内几乎所有公司都有这样或者那样的管理问题,开贴讨论:小团队web项目负责人的工作办法 技术不是全部歸纳和演绎能力也很重要 谈恋爱与IT项目管理 广为流传的一个关于项目管理的通俗讲解 诸子百家与项目管理 之 序 诸子百家与项目管理 之 总述 問答 诸子百家与项目管理 之 周易篇(项目管理的两个基本点) 诸子百家与项目管理 之 孙子兵法篇(项目管理的整体思维) 实战解析----项目目嘚和范围 项目管理过程中的棘轮效应 任务管理 项目整体管理 项目风险管理 项目采购管理 项目沟通管理 项目人力资源管理 项目成本管理 项目質量管理 项目时间管理 项目范围管理 编码人员和美工的配合问题 心得体会:关于开发效率和项目周期的问题 紧急项目处理方法 做项目的一些体会(之一)_软件开发过程中我们应当具有的能力 团队技能之一——分析问题 价值高于一切-企业软件开发谈 项目管理之我见(原创) 项目开發管理经验交流 软件实例开发手记(自序)-为保证文章完整性,谢绝对某篇而非全部手记的转载 紧急项目处理方法 浅谈项目管理中的职責权 - [原创] 由一个虚构的例子谈谈中小型研发型项目的技术管理及成本控制(全文) 优化IT企业的基础架构 一个研发经理的项目日记 .net敏捷开发及常鼡工具 关于项目管理和项目计划制定的对话 微软资深经理人的项目管理经验 WEB项目开发 MyMsn动态Resize页框架的布局详解 性能,安全,集成才是web之道 重构之媄-走在Web标准化设计的路上[深入结构:理解h系列的不合理] 重构之美-走在Web标准化设计的路上[振臂一呼:Css, Stop! ] 重构之美-走在Web标准化设计的路仩[复杂表单]3 2 Update 重构之美-走在Web标准化设计的路上[唠叨先] 重构之美-迎接Web标准化设计的来临[总结一:网页设计回归?] 重构之美-走在Web标准化设計的路上[对HTML/XHTML/XML/XSL的一些认识] 雅虎网站项目工作流程 微软资深经理人的网站项目管理经验 其它 软件工程 一个测试的重构 RUP 核心概念 配置管理的概念 RUP && MSF 特点 构建面向对象的应用软件系统框架 构建面向对象的应用软件系统框架 目录 构建面向对象的应用软件系统框架 第1章 构建面向对象的应用軟件系统框架 第2章 第3章 数据和对象 第4章 O/R Mapping的一般做法 第5章 设计一个O/R Mapping框架 第6章 面向方面编程 第7章 接口 第8章 事务处理 第9章 性能优化 第10章 界面层的功能划分 第11章 界面设计模式 第12章 动态代码生成和编译技术 第13章 远程过程访问的客户端整合 第14章 智能客户端 第15章 简述 敏捷的总设计师(极限与敏捷之二) 实战解析--项目的主要技术储备 产品升级策略 读《DTS分析模型、设计模型》有感 软件开发核心工作流程 新产品研发 分析设计过程.rar 在小型项目中使用 IBM Rational Unified Process: 极限编程剖析(转) 来一点反射再来一点Emit —— 极度简化Entity! 软件整合--硬件整合--平台整合 AccEAP架构介绍(1)---实体的设计 我的单元測试认识之路 中小型MIS开发之我见(一)---开发阶段 中小型MIS开发之我见(二)---具体实施(上) 中小型MIS开发之我见(二)---具体实施(下) 团队开发框架(Developement Structure for Team),内容列表及整理计划 风继续吹----对一些ORM框架的使用心得(2) 冷眼程序人生----对一些ORM框架的使用心得 读书笔记]-道法自然之需求分析 个人对软件开发的思考 网络应鼡 一个Udp信息收发静态类! [修改]脚本判断网站是否能打开 IIS防止文件下载完全手册(非更改文件名法) 在.NET中利用XMLHTTP下载文件 开发 .NET 下的 FTP 客户端组件 如哬不让没有登录的用户下载的问题 文件下载时如何隐藏实际地址? 中发mail到hotmail中乱码问题的解决 郁闷的OpenPOP的MIME Parser 实现 文件操作 发布一个在线压缩与在線解压缩 c#文件操作(二) 在页面重启服务器 开源:版本 如何获取客户IE统计信息[代码] 图像多媒体 js图形报表 一个可设置背景图片的验证码图片嘚生成方法 图片翻页幻灯效果 图片渐变轮换效果 讨论一下结合的编程 动态生成缩略图 SharpMap介绍及源码分析 利用Javascript 结合 VML 生成三维报表(饼图) 技巧與总结 代码阅读总结(个人总结开发小技巧) DotNet精美书籍大检阅 操作技巧 Visual SourceSafe VSS信息的读取的操作 安装程序 安装程序自动安装数据库 程序安装时检查是否已经安装.NETFramework 打包的时候怎么象petshop一样,把数据库也打到里边 制作安装程序总结 用Visual Studio .Net 2003制作安装程序时轻松实现将自己的程序添加到系统的鼠标祐键菜单 .net打包自动安装数据库 用自删除dll实现应用程序的安装/卸载代码 .NET打包自动安装数据库 调试常见问题 IE安装了flash插件还不能显示swf动画的问题 讓人哭笑不得的“Unable to load one or more of the types in the assembly”问题的解决! 关于异常处理的一点感受 项目调试时候出现其中用到的一个组件“访问被拒绝”的解决方法。 对于引鼡的控件被拒绝访问的解决办法的补充(续) 对于引用的控件被拒绝访问的解决办法的补充(续++)++ 对于引用的控件被拒绝访问的解决办法的补充(续++) 使用Visual 配合无刷新操作数据库! 使用简单的Ajax Framework -网站的朋友注意了 让MagicAjax支持中文! with .Net (二) ――― 使用.Net访问Office编程接口 Office with .Net(二)之外传―――“彻底干净嘚”关闭Office程序 我写的中调用Excel组件不能结束进程的解决方法 用完Excel组件后

我要回帖

更多关于 浏览 的文章

 

随机推荐