ImageVerifierCode 换一换
格式:DOCX , 页数:74 ,大小:597.23KB ,
资源ID:6470166      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6470166.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(VB公共基础知识.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

VB公共基础知识.docx

1、VB公共基础知识算法是指解题方案的准确而完整的描述算法不等于程序,也不等于计算方法,程序不能优于算法。算法的基本特征:(1) 可行性(2) 确定性(3) 有穷性(4) 拥有足够的情报算法是一组严谨地定义运算顺序的规则,每一个规则都是有效的,并且是明确的,此运算顺序将在有限的次数下终止。算法的基本要素:数据对象的运算和操作算法的控制结构: 顺序 选择 循环算法设计的基本方法: 列举法 归纳法 递推 递归 减半递推算法复杂度主要包括: 时间复杂度计算工作量 空间复杂度内存空间数据结构是指相互有关联的数据元素的集合相互有关联含有某种结构在数据结构中应包含以下二方面的信息: 数据元素本身的值 各数据元

2、素之间的互相关系数据结构主要研究和讨论以下三个方面的问题: 逻辑结构 存储结构 对各种数据结构的运算(1)逻辑结构具有逻辑关系的数据结构称为数据的逻辑结构数据的逻辑关系中最简单的描述是前后件关系前面的元素称为“前件”位于后面的元素称为“后件”(2)存储结构数据的存储结构有三种: 顺序结构 链接结构 索引结构数据的逻辑结构反映数据元素之间的内在关系和固有的联系数据的存储结构是数据的逻辑结构是表示数据元素在计算机中的存储形式。(3)对各种数据结构的运算主要是指对数据的查找、插入、删除、修改等运算数据结构的二种表示方法:(1) 二元关系(前后件关系)数据集合用记号D表示,数据元素之间的前后件关系用记

3、号R表示,数据结构用记号B表示。三者的关系式为:B=(D,R)D和R又可以用包含不同元素的向量来表示比如:一年四季的数据结构,可以这样表示:B=(D,R)D=春,夏,秋,冬R=(春,夏),(夏,秋),(秋,冬)(2) 图形表示法对于数据集合中的每一个数据元素,用中间标有元素值的方框表示,数据元素之间的联系用带有箭头的有向线段连接方框一般称为结点,各数据元素之间的还含有前后件关系,就用有向线段从前件结点指向后件结点。春夏秋冬数据结构分为两大类型: 线性结构 非线性结构线性结构条件:1. 有并且只有一个根结点2. 每一个结点最多有一个前件,也最多有一个后件常见的线性结构有: 线性表 栈 队列 线性

4、链表常见的非线性结构有: 树 二叉树 图空的数据结构不确定线性表由一组线性结构的数据元素构成,元素之间的相对位置是线性的线性表的长度数据元素的个数矩阵也是一个线性表在更复杂的线性表中,每一个数据元素不是简单的一项,而是由多个数据项组成一个数据元素由多个数据项组成的一个数据元素称为一条“记录”由多条记录构成的线性表又称为“文件”线性表的二种存储方式 顺序 链式线性表的顺序存储结构具有两个基本特点:(1)线性表中所有元素所占的存储空间是连续的;(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。ADR(ai)=ADR(a1)+(i-1)k .a1a2.ai.an.存储地址 ARD(a1)A

5、RD(a1)+kARD(a1)+(i-1)kARD(a1)+(n-1)k顺序表的插入运算是通过移动元素来实现的平均需要移动n/2个元素进行顺序表的删除运算时也需要移动元素平均需要移动(n-1)/2个元素栈是一种特殊的线性表。它限定,只能在一端进行插入和删除数据,另一端是封闭的它的特点是:先进后出,后进先出。具有记忆功能栈的运算为: 入栈运算 退栈运算 读栈顶元素当栈顶指针为0时,说明是栈空,此时是读取不到数据元素的栈的存储有两种: 顺序栈 链式栈队列也是一种线性表是“先进先出”或“后进后出”的线性表队列是在队尾插入新的数据,在队头取出数据,并在队列中删除该数据。尾指针(rear)头指针(fro

6、nt)栈的空间是事先被开辟好的,假如存放的数据大于存储空间,将会产生“溢出”。队列运算包括: 入队运算 退队运算入队运算只涉及队尾指针rear的变化退队运算只涉及队头指针front的变化循环队列将队列存储空间的最后一个位置设置到队头的前一个位置,在逻辑上形成环状的空间。队列空的条件:s0;队列满的条件:s1且frontrear初始状态:s0,且frontrearms1不能进行入队运算s0不能进行退队运算线性链表在物理存储单元上非连续、非顺序数据元素的逻辑顺序是通过线性表中的指针链接来实现每个结点由两部分组成:数据域和指针域线性链表的实例:双向链表:带链的栈:an-1 0 a1 an HEAD带

7、链的栈可以称为可利用栈。当计算机需要新的结点时就从可利用栈中取出存储结点,假如从线性表中删除一个结点时,可将该结点放到可利用栈中去。带链的队列 an a2 a1 0 frontrear线性链表的基本运算:(1)在线性链表中包含指定元素的结点之前插入一个新元素。(2)在线性链表中删除包含指定元素的结点。(3)将两个线性链表按要求合并成一个线性链表,完成线性链表扩充任务。(4)将一个线性链表按要求进行分解。(5)逆转线性链表。(6)复制线性链表。(7)线性链表的排序。(8)线性链表的查找。线性链表的查找、插入和删除运算(1) 在线性链表中查找指定的元素基本方法是从头指针开始沿着指针域路径往后扫描(

8、2) 线性链表的插入首先需要为该元素分配一个新结点,以便于存储该元素的值,然后将存放新元素值的结点链接到线性链表中指定的位置。0TOP0XHEAD(a)原来的可利用栈与线性链表p0bTOPq0XHEAD (b)从可利用栈取得结点p,在线性链表中找到包含元素x的前一个结点qp0bTOPq0XHEAD(c) p插入到q之后3) 线性链表的删除线性链表的删除,首先要在链表中找到要删除的结点,然后将该结点放到可利用栈中去。0TOP0XHEAD(a)原来的可利用栈与线性链表p0XHEAD(b)从线性链表中删除包含元素x的结点p后0TOPqp0XHEAD(c)将被删除的结点p送回可利用栈后线性链表的插入和

9、删除结点都不需要移动数据,只是修改链接的指针而已。* 但是线性链表不能随机存取循环链表下图a是一个非空的循环链表,图b是一个空的循环链表:循环链表的两个主要优点:一是在循环链表中,只要指出表中任何一个结点的位置,就可以从它出发访问到表中其他所有的结点;二是由于在循环链表中设置了一个表头结点,在任何情况下,循环链表中至少有一个结点存在,从而使空表与非空表的运算统一。* 循环链表是在单向链表的基础上增加了一个表头结点,其插入和删除运算与单链表相同。而且它可以从任一结点出发来访问表中其他所有结点,并实现空表与非空表的运算的统一。树的基本概念树是一种简单的非线性结构。在树这种数据结构中,所有数据元素之

10、间的关系具有明显的层次特性。在树结构中,每一个结点的前件,称为父结点。没有前件的结点只有一个,称为树的根结点。每一个结点的后件,称为子结点。没有后件的结点称为叶子结点。在树结构中,一个结点所拥有的后件的个数称为该结点的度,所有结点中最大的度称为树的度。树的最大层次称为树的深度。在计算机中可以用树结构来表示算术表达式。用树来表示算术表达式的原则如下: 表达式中的每一个运算符在树中对应一个结点,称为运算符结点 运算符的每一个运算对象在树中,为该运算符结点的子树(在树中的顺序为从左到右) 运算对象中的单变量均为叶子结点根据以上原则,可以将表达式a * ( b + c/d ) + e * hg * f

11、( s,t,x + y )用下图的树来表示,先可将这个表达式进行分解成如下式子:a * ( b + c/d )和e * hg * f( s,t,x + y ),这时它们的父运算符结点为“+”或者分解成:a * ( b + c/d ) + e * h和g * f( s,t,x + y ),这时它们的父运算符结点为“-”2、二叉树及其基本性质(1)什么是二叉树二叉树是一种很有用的非线性结构,它具有以下两个特点:1)非空二叉树只有一个根结点;2)每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树。* 根据二叉树的概念可知,二叉树的度可以为0(叶子结点)、1(只有一棵子树)或2(有2棵子树)这

12、三种情况。(2)二叉树的基本性质性质1 在二叉树的第k层上,最多有2k-1(k1)个结点。性质2深度为m的二叉树最多有个2m-1个结点。第1层的最大结点数加到m层的最大结点数:21-1 + 22-1 + + 2m-1 = n2 (21-1 + 22-1+ +2m-1) = 2n2m 1 = n性质3 在任意一棵二叉树中,度数为0的结点(即叶子结点)总比度为2的结点多一个。n0 = n2 + 1总的结点数n等于叶子结点n0、度数为1的结点n1、度数为2结点n2之和:n = n0 + n1 + n2除了根结点,每个结点都有一个前件(进入的分支),假设进入的分支数为m,所以总的结点数n等于进入的分支

13、数m + 1n = m + 1又由于这m个进入分支又分别是由非叶子结点射出的。其中度数为1的结点射出1个分支,度数为2的结点射出2个分支,因此:m = n1 + 2n2 n0 = n2 + 1性质4 具有n个结点的二叉树,其深度至少为log2n + 1,其中log2n表示取log2n的整数部分。3、满二叉树与完全二叉树满二叉树:除最后一层外,每一层上的所有结点都有两个子结点。完全二叉树:除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。* 根据完全二叉树的定义可得出:度为1的结点的个数为0或1。下图a表示的是满二叉树,下图b表示的是完全二叉树:完全二叉树还具有如下两

14、个特性:性质5 具有n个结点的完全二叉树深度为 log2n+ 1。性质6 设完全二叉树共有n个结点,如果从根结点开始,按层序(每一层从左到右)用自然数1,2,n给结点进行编号,则对于编号为k(k=1,2,n)的结点有以下结论:若k=1,则该结点为根结点,它没有父结点;若k1,则该结点的父结点的编号为INT(k/2)。若2kn,则编号为k的左子结点编号为2k;否则该结点无左子结点(显然也没有右子结点)。若2k+1n,则编号为k的右子结点编号为2k+1;否则该结点无右子结点。二叉树通常采用链式存储结构用于存储二叉树的存储结点的指针域有两个:左指针域和右指针域二叉树的链式存储结构又称为二叉链表* 一

15、般二叉树通常采用链式存储结构,对于满二叉树与完全二叉树来说,可以按层序进行顺序存储。二叉树的遍历前序遍历(DLR):根左子树右子树中序遍历(LDR):左子树根右子树后序遍历(LRD):左子树右子树根JHGIFEDCBA查找技术:1、顺序查找在下列两种情况下只能采用顺序查找:1)如果线性表是无序表,则存储结构不管是顺序还是链式2)即使是有序线性表,如果采用链式存储结构,也只能用顺序查找。2、二分法查找只适用于有序的顺序存储结构1)若中间项(中间项mid=(n-1)/2,mid的值四舍五入取整)的值等于x,则说明已查到;2)若x小于中间项的值,则在线性表的前半部分查找;3)若x大于中间项的值,则在

16、线性表的后半部分查找。排序技术:1、交换类排序法(方法:冒泡排序,快速排序)。(1) 冒泡排序法。一种最简单的交换类排序方法,它是通过相邻数据元素的交换逐步将线性表变成有序。(2) 快速排序法也是一种交换类的排序方法,但作了改进,可以通过一次交换消除多个逆序,所以它比冒泡排序法的排序速度要快,故称为快速排序法。2、插入类排序法(简单插入排序,希尔排序)。(1) 简单插入排序法7 5 8 2 4 9 6 6 1 1 3 1 5 4 9 6 6 1 3 7 8 2 9 6 6 1 3 8 2 4 5 1 7 8 2 4 9 6 6 1 3 7 5 1 6 8 2 4 1 1 7 5 3 9 6 6

17、 7 2 4 9 6 1 1 3 5 8 7 5 8 2 4 9 6 6 1 1 3 5 4 9 6 7 1 3 8 2 6 1 7 5 9 6 4 3 6 1 1 8 2 8 9 2 6 6 1 1 3 7 5 4 6 7 9 8 2 6 1 1 3 5 4 (2) 希尔排序法h的取法一般为:hi = n / 2k ( k = 1,2,2n ),其中n为待排序序列的长度。h = 6 7 19 24 13 31 8 82 18 44 63 5 29 h = 3 7 18 24 5 13 82 8 19 44 29 63 31 h = 1 7 5 8 18 13 63 24 19 29 44 8

18、2 31 29 44 31 63 82 最后结果7 5 8 13 18 24 19 3、选择类排序法(简单选择排序,堆排序)。(1) 简单选择排序法89 原序列 21 47 19 16 85 48 56 16 85 48 56 21 89 47 19 第1遍选择 19 89 85 48 56 21 47 16 第2遍选择 21 89 85 48 56 47 19 16 第3遍选择 47 85 48 56 89 21 19 16 第4遍选择 48 56 89 85 21 47 19 16 第5遍选择 56 89 48 21 47 19 16 85 第6遍选择 48 56 21 47 19 16

19、85 89 第7遍选择 (2) 堆排序法具有n个元素的序列(h1,h2,hn),当且仅当满足h1h2 或 h1h2hih2i+1hih2i+1( i = 1,2,n/2 )时称之为堆。91 24 12 30 53 36 91 47 24 12 30 53 85 36 85 47 53 91 36 47 24 12 30 85 总结:各种排序法比较:本章应考点拨:本章内容在笔试中会出现5-6个题目,是公共基础知识部分出题量比较多的一章,所占分值也比较大,约10分。第二章 程序设计基础程序设计风格:强调:“清晰第一,效率第二”应注重和考虑下述一些因素:(1)源程序文档化(2)数据说明(3)语句的结

20、构信息隐蔽是指: 采用封装技术,将程序模块的实施细节隐藏起来,模块的接口要尽量简单。 一个模块所包含的信息(过程或数据),对于不需要这些信息的其它模块来说,是不能访问的。模块的独立性是指模块之间的耦合程度要小。(4)输入和输出。面向过程的程序设计,主要考虑的是模块化、结构化设计结构化程序设计方法的主要原则: 自顶向下 逐步求精 模块化 限制使用goto语句。结构化程序的基本结构有三种: 顺序结构 选择结构 重复结构程序的单入口和单出口是程序模块化设计中的一条重要的原则面向对象的程序设计: 对象对对象的访问,可以通过对象的属性、方法进行面向对象的程序设计方法的主要优点:(1)与人类习惯的思维方法

21、所一致;(2)稳定性好;(3)可重用性好;(4)易于开发大型软件产品;(5)可维护性好。 属性 方法/操作/服务操作是对象的动态属性;对象的外部特征是对象的静态属性对象的基本特点: 标识惟一性 分类性 多态性 封装性 模块独立性好。 实例 继承 类 多态性 消息对象之间不能发生直接联系,但可以通过“消息”来进行沟通、来传递信息。消息的组成包括:(1)接收消息的对象的名称;(2)消息标识符,也称消息名称;(3)零个或多个参数。本章应考点拨:本章在考试中会出现约1个题目,所占分值大约占2分,是出题量较小的一章。本章内容比较少,也很简单,掌握住基本的概念就可以轻松应对考试了,所以在这部分丢分,比较可

22、惜。第三章软件工程基础3.1 软件工程基本概念1、软件的相关概念计算机软件包括: 程序 数据 相关文档。软件的分类: 应用软件 系统软件 支撑软件(或工具软件)软件的特点包括:1)软件是一种逻辑实体,不是物理实体;2)软件的生产与硬件不同,它没有明显的制作过程;3)软件在运行、使用期间不存在磨损和老化的问题;4)软件的开发和运行对计算机系统具有依赖性,受计算机的硬件所制约,这就导致了软件的移植问题;5)软件的复杂性高,成本昂贵。是因为人力成本高、开发困难所导致;6)软件开发涉及诸多的社会因素,比如版权、健康向上、有利于社会稳定等等。2、软件危机与软件工程软件工程的提出源自于软件危机。将软件危机

23、可以归结为成本、质量、生产率等问题。为了解决软件危机,所以就提出了软件工程这一概念。软件工程的核心思想就是把软件产品看成是一个工程产品。工程化的概念: 需求计划 可行性研究 工程审批 质量监督等工程化目标: 追求进度 经费 质量软件工程也有自身的特点,比如: 结构化 层次化 面向对象 模型 过程软件工程的目的就是要构造出一个优良的软件系统,软件工程的理论和技术性研究的内容主要包括以下两点:1)软件开发技术2)软件工程管理软件工程的主要思想是将工程化原则运用到软件开发过程,它包括3个要素: 方法 工具 过程3、软件生命周期生命周期是从软件的提出开始、软件的实现、软件的使用和维护到软件的停止使用退

24、役为止,更为具体地说,生命周期一般可分为三个阶段: 软件定义 软件开发 软件维护1) 在软件定义阶段主要是进行可行性研究,并完成如下任务: 制定计划 需求分析在制定计划中需要: 确定总目标 可行性研究 探讨解决方案 制定开发计划2) 软件开发阶段可分为: 软件设计 软件实现 软件测试软件设计主要包括: 概要设计 详细设计3) 软件运行维护阶段:软件已交付使用和投入运行,并在运行使用过程中不断地维护,同时根据提出的新的要求进行可能的扩充和删改。4、 软件工程的目标和与原则(1)软件工程目标:在给定成本、进度的前提下,开发出具有如下特性的产品: 有效性 可靠性 可理解性 可维护性 可重用性 可适应

25、性 可移植性 可追踪性 可互操作性 能充分满足用户的需求。(2)软件工程需要达到的基本目标应该是: 付出较低的开发成本; 达到要求的软件功能; 取得较好的软件性能; 开发易于移植的软件; 需要较低的维护费用; 能按时完成开发,并及时交付使用。(3)软件工程原则: 抽象 信息隐蔽 模块化 局部化 确定性 一致性 完备性 可验证性5、软件开发工具与软件开发环境(1)软件开发工具 单项开发工具 集成开发工具(2)软件开发环境是指全面支持软件开发全过程的软件工具的集合。各种软件工具 + 开发手段 + 一个存放开发过程的信息的中心数据库3.2结构化分析方法结构化分析方法包括以下三个组成部分: 结构化分析

26、方法 结构化设计方法 结构化编程方法。其中核心和基础的是结构化程序设计理论。这些理论包括: 需求分析与需求分析方法 结构化分析方法 软件需求规格说明书(SRS)1、需求分析与需求分析方法需求分析的任务是: 发现需求 求精和提炼 建立模型 定义需求需求分析的任务就是建立目标系统的逻辑模型,其中包括: 数据模型 功能模型 控制模型需求分析主要解决“做什么”的问题。需求分析阶段的工作可以概括为下述的四个方面:1 需求获取;2 需求分析;3 编写需求说明书;4 需求评审。需求获取涉及的关键问题有: 对问题空间的理解 人与人之间的沟通 不断变化的需求常见的需求分析方法主要有:1) 结构化需求分析方法,主要包括: 面向数据流的结构化分析方法 面向数据结构的结构化分析方法2)面向对象的分析方法从需求分析建立的模型特性来分,面向对象方法还可以为: 静态分析方法 动态分析方法2、结构化分析方法结构化分析方法是结构化程序设计理论在软件需求分析阶段的具体应用。它主要包括: 面向数据流的结构化分析方法 面向数据结构的结构化分析方法结构化分析方法常用的工具是: 数据流程图(DFD) 数据字典(DD) 结构化英语 判定表和判定树(1) 数据流图(DFD)数据流图的主要图形元素与说明如下:画数据流图的基本步骤是:1. 由外向里2. 自顶向下3. 逐层分解下图是一个数据流图的示

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1