版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机二级公共基础知识
一.数据结构与算法
一、基本概念:
❖数据(Data):信息的载体,能够被计算机识别、存储和加工处理的物理符号。
包括文本类型的数据(如:字母、数字、汉字)和多媒体类型的数据(如:声
音、动画、图像)。
数据元素(DataElement):是数据的基本单位,有时也称为元素、结点、顶
点、记录,可以有若干个数据项(字段、域、属性)组成。
数据结构(DataStructure):指的是数据之间的相互关系,即数据的组织
形式。其包括三个部分:
1、逻辑结构:数据元素之间的逻辑关系
2、存储结构:数据元素及其关系在计算机存储器内的表示。
3、数据的运算(算法):即对数据施加的操作
数据的逻辑结构有两大类:
1、线性结构:
特征是:若结构是非空集,则有且仅有一个开始结点和一个终端结点,并且所有
结点最多只有一个直接前趋和一个直接后继。
例:一维数组、链表、栈、队列、串
2、非线性结构:
特征是:一个结点可能有多个直接前趋和直接后继。
例:多维数组、广义表、树、图
数据的存储结构有以下基本存储方法:
1、顺序存储方法:
该方法是将逻辑上相邻的结点存储在物理位置上相邻的存储单元里,结点间的逻
辑关系由存储单元的邻接关系来体现,一般通过数组来实现的。
2、链接存储方法:
该方法不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附
加的指针字段表示的。通过指针类型来实现的。
3、索引存储方法:
该方法通常是在存储结点信息的同时,还建立附加的索引表,索引表中的每一项
称为索引项,索引项的一般形式是:关键字,地址。
4、散列存储方法:
该方法的基本思想是根据结点的关键字直接计算出该结点的存储地址,通过散列
函数实现。例:除余法散列函数、相乘取整法散列函数
❖算法的基本特征:
1、可行性(Effectiveness):针对实际问题而设计的算法,执行后能够得到满意
的结果。
2、确定性(Definiteness):算法中的每一个步骤都必须有明确的定义,不允许
出现歧义性。
3、有穷性(Finiteness):算法必须在有限时间内做完,即必须在执行有限个步
骤之后终止。
❖时间复杂度:该算法执行的时间耗费,它是该算法所求解问题规模n的函数。
❖空间复杂度:该算法执行时所耗费的存储空间,它也是问题规模n的函数。
二、线性表:
❖线性表(LinearList):是由n性表0)个数据元素(结点)ai,a2,a3,,a„
组成的有限序列。对于非空的线性表,有且仅有一个开始结点a“它没有直
接前趋;有且仅有一个终端结点出,它没有直接后继;其余的结点有且仅有
一个直接前趋结点和一个直接后继结点。
*线性表的存储结构:
1、顺序存储(SequentialList):将线性表的结点按逻辑次序依次存放在一组地
址连续的存储单元里,用这种方法存储的线性表称为顺序表。
2、链式存储(LinkedList):逻辑上相邻的结点,物理上也相邻,存储单元可以
是连续的,也可以是不连续的,在存储每个结点值的同时,还存储指向其后继结
点的地址,用这种方法存储的线性表称为链表。
常见的运算有:
表的初始化、求表的长度、取表中的第I个结点、查找结点、插入新的结点、删
除结点。
顺序表和链表的比较:
1、基于空间的考虑:
A、顺序表的存储空间是静态分配的,而链表的存储空间是动态分配的。
B、顺序表占的存储空间必须是连续的,而链表占的存储空间可以是连续的,也
可是不连续的
C、顺序表存储密度为1,而链表中的每个结点,除了数据域外,还要额外的设
置指针域,存储密度小于1
2、基于时间的考虑:
A、在链表中的任何位置上进行插入和删除,只需要修改指针,而顺序表中平均
将要移动近一半的结点。
B、顺序表是随机存取结构,它的存取时间为0(1),而链表需从头结点顺着链扫
描链表。
总之,当线性表的长度变化不大,易于事先确定其大小时,为了节约存储空
间,宜采用顺序表作为存储结构;当线性表的长度变化较大,难以估计其存储规
模时,以采用链表作为存储结构为好。若线性表的操作主要是进行查找,很少做
插入和删除操作时,采用顺序表做存储结构为宜;对于频繁进行插入和删除的线
性表,宜采用链表做存储结构。
例:关于线性表的描述中,错误的是()
A、线性表是线性结构B、线性表的顺序存储结构,必须占用一片连续
的存储单元
C、线性表是单链表D、线性表的链式存储结构,不必占用一片连续的存
储单元
用数组表示线性表的优点是()
A、便于插入和删除操作B、便于随机存取
C、可以动态地分配存储空间D、不需要占用一片连续的存储空间
❖栈(Stack):是限制仅在表的一端进行插入和删除运算的线性表,通常称插
入、删除的这一端为栈顶(Top),另一端称为栈底(Bottom)。当表中没有元
素时称为空栈。是一种后进先出的线性表,又称为LIF0表。
栈的基本运算有:
栈的初始化、判栈空、判栈满、进栈、出栈等
栈的存储:
顺序存储、链式存储
例:若进栈的输入序列是A、B、C、D、E,并且在它们进栈的过程中可以进
行出栈操作,则不可能出现的出栈序列是()
A、EDCBAB、DECBAC、DCEABD、ABCDE
四、队列:
♦队列(Queue):也是一利运算受限的线性表,它只允许在表的一端进行插入,
而在另一端进行删除。允许删除的一段称为队头(Front),允许插入的一段
称为队尾(Rear)。(类似于生活中的购物排队)。是一种先进先出的线性表,
又称为FIFO表。
队列的基本运算:
队列的初始化、判队空、判队满、入队、出队
队列的存储实现:
顺序存储、链式存储
例:一个队列的入队序列是1,2,3,4,则队列的输出序列是()
A、4,3,2,1B、1,2,3,4C、1,4,3,2D、3,2,4,
1
五、串:
串(String):是零个或多个字符组成的有限序列。
串中所包含的字符个数称为该串的长度。
串中任意个连续字符组成的子序列称为该串的子串,包含子串的串相应地称
为王串
注:空串是任意串的子串,任意串是其自身的子串
串有串常量、串变量之分:
1、串常量在程序中只能被引用但不能改变其值,即只能读不能写。
2、串变量其值是可以改变的。
♦串的基本运算:
求串长、串复制、串联接、串比较、字符定位、
六、树(非线性结构):
❖树(Tree):是n(n>=0)个结点的有限集T,T(n=0)为空时称为空树,否则它
满足如下两个条件:
1、有且仅有一个特定的称为根(Root)的结点
2、其余的结点可分为m(m>=0)个互不相交的子集Tl,T2,…….,Tm,其中
每个子集本身又是一棵树,并称其为根的子树(Subtree)o
在树的树形图表示中,结点通常是用圆圈表示的,结点的名字一般是写在圆
圈旁边,有时亦可写在圆圈内。
度(Degree):一个结点拥有的子树数称为该结点的度。一棵树的度是指该树
中结点的最大度数。
叶子(Leaf):度为零的结点称为叶子或终端结点
♦分支结点(Node):度不为零的结点称为分支结点。
♦树中某个结点的子树之根称为该结点的孩子(Child)结点或子结点,相应的
该结点称为孩子结点的双亲(Parents)结点或父结点。
同一个双亲的孩子称为兄弟结点(Sibling)
♦:♦结点的层数(Level)是从根起算,设根的层数为1,其余结点的层数等于其双
求结点的层数加1.
树中结点的最大层数称为树的高度(Height)或深度(Depth).
❖森林(Forest):是m(m>=0)棵互不相交的树的集合。删去一棵树的根,就得
到一个森林,反之,加上一-1结点作树根,森林就变为--棵树。
❖二叉树(BinaryTree):是n(n>=0)个结点的有限集,它或者是空集(n=0),
或者由一个根结点及两棵互不相交的、分别称作这个根的左子树和右子树的
二叉树组成。
二叉树中,每个结点最多只能有两棵子树.,并且有左右之分。
二叉树的五种基本形态:
例:具有3个结点的二叉树有儿种形态。
❖满二叉树(FullBinaryTree):一棵深度为k且有2k-l个结点的二叉树称为
满二叉树
完全二叉树(CompleteBinaryTree):若一棵二叉树至多只有最下面的两层
上结点的度数可以小于2,并且最下…层上的结点都集中在该层最左边的若
干位置上,则此二叉树称为完全二叉树。
二叉树的性质:
性质1:二叉树第I层上的结点数目最多为2一(1>=1)
性质2:深度为k的二叉树至多有2k-l个结点(k>=l)
性质3:在任意一棵二叉树中,若终端结点的个数为n。,度为2的结点数为“,
则no=n2+l
性质4:具有n个结点的完全二叉树的深度为[glen]+l(取下整)或
[lag(n+D](取上整)。
例:一棵二叉树的结点数为18个,求它的最小高度
已知度为2的结点数为15个,求叶子结点数
二叉树的遍历:
♦遍历(Traversal):是指沿着某条搜索路线,依次对树中每个结点均做一次
且仅做一次访问。
前序遍历:(又称为先序遍历、先根遍历)
若二叉树为空,则执行空操作。否则:
1、访问根结点;
2、前序遍历左子树;
3、前序遍历右子树。
中序遍历:(又称为中根遍历)
若二叉树为空,则执行空操作。否则:
1、中序遍历左子树;
2、访问根结点;
3、中序遍历右子树。
后序遍历:(又称为后根遍历)
若二叉树为空,则执行空操作。否则:
1、后序遍历左子树;
2、后序遍历右子树;
3、访问根结点。
例:已知一棵二叉树的中序遍历序列是:FDGBACHE,其后序遍历序列是:FGDBHECA
求其前序遍历序列。
一棵二叉树的前序遍历序列为ABDGCFK,中序遍历序列为DGBAFCK,则结点
的后序遍历序列是()
A、ACFKDBGB、GDBFKCAC、KCFAGDBD、ABCDFKG
七、排序(Sort):
所谓排序,就是指整理文件中的记录,使之按关键字递增(或递减)次序排
列起来。
❖冒泡排序(BubbleSorting):
通过对待排序序列从后向前或从前向后(从下标较大的元素开始),依次比较
相邻元素的排序码,若发现逆序则交换,使排序码较大的元素逐渐从前部移向后
部或较小的元素逐渐从后部移向前部(从下标较大的单元移向下标较小的单元)。
直接选择排序(SelectionSorting):
扫描整个线性表,从中选出最小的元素,将它交换到表的最前面;然后对剩
下的子表采用同样的方法,直到子表空为止。
直接插入排序(InsertionSorting):
每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件
中的适当位置,直到全部记录插入完成为止。
。快速排序(QuickSorting):任取待排序序列中的某个元素作为基准(一般取
第一个元素),通过--趟排序,将待排元素分为左右两个子序列,左子序列
元素的排序码均小于或等于基准元素的排序码,右子序列的排序码则大于基
准元素的排序码,然后分别对两个子序列继续进行排序,直至整个序列有序。
各种内部排序方法的比较
时间复杂度
排序方法空间复杂度
最好时间平均时间最坏时间
直接插入0(n)0(n2)0(n2)0(1)
直接选择0(n2)0(n2)0(n2)0(1)
冒泡0(n)0(n2)0(n2)0(1)
快速0(nylon)0(nylon)0(n2)0(glen)
堆0(nylon)0(nylon)0(nylon)0(1)
例:对一个具有n个元素的序列进行冒泡排序,在最坏情况下,要进行交换的次
数是()
A、n(n+l)/2B、n(n'l)/2C、n*n/2D、n(n+l)/2-l
对n个元素进行冒泡排序过程中,最好情况下的时间复杂性为()
A、0(1)B、0(log2n)C、0(n)D、0(n)
对n个元素进行快速排序的过程中,平均情况下的时间复杂性为()
A、0(1)B、0(glen)C、0(n2)D、0(nylon)
八、查找(Searching):
所谓查找是指给定一个值K,在含有n个结点的表中找出关键字等于给定值
K的结点。若找到,则查找成功,返回该结点的信息或该结点在表中的位置;
否则查找失败,返回相关的提示信息。
♦顺序查找(SequentialSearch)的基本思想是:从表的一端开始,顺序扫描
线性表,依次将扫描到的结点关键字和给定值K相比较,若当前扫描到的结
点关键字与K相等,则查找成功;若扫描结束后,仍未找到关键字等于K的
结点,则查找失败。顺序查找即适用顺序存储结构,又适用链式存储结构。
查找成功的平均查找长度为:(n为结点数目)
(1+2+3+4+•••+□)/n=(n+l)/2
二分查找(BinarySearch)又称折半查找,它是一种效率较高的查找方法,
二分查找要求线性表是有序表,即表中结点按关键字有序,并且要用向量作
为表的存储结构。另外,二分查找只适用顺序存储结构,在链式存储结构上
王汴立即一分杳找
查找成功时的平均鲁找长度:(n为结点数目)
n+1,,.、,
lg(n+l)-l
n
当n很大时,可用近似公式:lag(n+l)-l表示
二.程序设计
2.1程序设计方法与风格
程序设计是一门技术,需要相应理论、技术、方法和工具来支持。程序设计方法
和技术的发展而言,主要经过了结构化程序设计和面向对象的程序设计阶段。
养成良好的程序设计的设计风格,主要考虑下述的因素:
1.源程序文档化
源程序文档化应考虑如下儿点:
(1)符号名的命名:符号名的命名有一定含义,便于理解
(2)程序注释:正确的注释帮助读者理解程序
(3)视觉组织:程序层次清晰
2.数据说明的方法
数据说明应考虑如下几点:
(1)数据说明的次序规范化
(2)说明语句中变量安排有序化。
(3)使用注释来说明复杂数据结构
3语句的结构
程序%该简单易懂,语句构造应该简单直接。应该注意的是:
(1)在一行内只写一条语句
(2)程序编写应优选考虑清晰性
(3)除非对效率有特殊要求,程序编写要清晰第一、效率第二
(4)首先要保证程序正确,然后要求提高速度
(5)避免使用临时变量而使程序可读性下降
(6)避免不必要的转移
(7)尽可能使用库函数
(8)避免使用复杂的条件语句
(9)尽量减少使用“否定”条件的条件语句
(10)数据结构要有利于程序的简化
(11)要模块化,使模块功能尽可能单一化
(12)利用信息隐藏,确保每一个模块的独立性
(13)从数据出发去构造程序
(14)不要修补不好的程序,要重新编写
4.输入和输出
无论是批处理的输入和输出方式,还是交互式的输入和输出方式,在设计
和编程时都应该考虑如下原则:
(1)对所有的输入数据都要检验数据的合理性
(2)检查输入项的各种重要组合的合理性
(3)输入格式要简单。
(4)输入数据时,应允许使用自由格式
(5)应允许缺省值
(6)输入一批数据时,最好使用输入结束标志
(7)在交互式输入/输出方式进行输入时,要在屏幕上使用提示符明确提示输入
要求,在数据输入过程中和输入结束时应在屏幕给出状态信息
(8)当程序设计语言对输入格式有严格要求时,应保持输入格式与输出语句的
一致性。给所有输入加注释,并设计输出报表格式。
2.2结构化程序设计
2.2.1结构化程序设计的原则
结构化程序设计方法主要原则包括:
1.自顶向下。设计程序时先考虑总体,后考虑细节
2.逐步求精。对复杂问题,逐步细化。
3.模块化。
4.限制使用got语句
2.2.2结构化程序的基本结构与特点
结构化程序设计方法是程序设计的先进方法和。和采用结构化程序设计方法
编写程序,可使程序结构良好、易读、易理解、易维护。结构化程序设计方法基
本可用三种基本结构就可实现。
1.顺序结构
顺序结构是顺序顺序执行结构,即是按照程序语句的自然顺序,一条•条语句地
执行。
2.选择结构
选择结构又称分支结构,它包括简单选择和多分支选择,这种结构可以根据给定
条件,判断执行哪一个分支中的语句。
3.重复结构
重复结构乂称为循环结构。它根据给定的条件判断是否重复执行某一段相同的程
序。
2.2.3结构化程序设计原则和方法的应用
在结构化程序设计的具体实施中,要注意把握如下要素:
(1)使用程序设计语言中的顺序、选择、循环等控制结构表示程序的控制逻辑
(2)选用的控制结构只准许有一个入口和一个出口
(3)程序语句组成容易识别的程序专项,每块只有一个入口和一个出口
(4)复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现
(5)语言中所没有的控制结构,应该采用前后一致的方法来模拟
(6)严格控制GOTO语句使用。
2.3面向对象的程序设计
2.3.1关于面向对象方法
面向对象(ObjectOriented)方法已经发展成为主流的软件开发方法。面向对
象方法的形成起源于实现语言,首先对设计语言的研究,随之形成面向对象分析
和设计方法。
面向对象方法的本质,就是主张从客观世界固有的事物出发来构造系统,提倡用
人类在现实生活中常用的思维方法来认识、理解和描述客观事物,强调最终建立
的系统能够映射问题域。也就是说,系统中的对象以及对象之间的关系能够如实
反映问题域中固有事物及其关系。
面向对象方法有如下优点:
1.与人类习惯的思维方法一致
面向对象和技术以对象为核心,对象是由数据和容许的操作组成的封装体,
与客观实体有直接的对应关系。对象之间通过传递消息互相联系,以模拟现实世
界中不同事物彼此之间的联系。如CD播放器、媒体播放器、软件窗口等等
2.稳定性好
面向对象的软件系统的结构是根据问题领域的模型建立起来的,当对系统的
功能需求变化时并不会引起软件结构的整体变化,往往仅需要作一些局部性的修
改。
3.可重用性好
软件重用是指在不同的软件开发过程中重复使用相同或相似软件元素(一般称为
类)的过程。重用是提高软件生产率的最主要的方法。
利用可重用的软件成分构造新的软件系统,一个对象类可以重复使用,对象类可
以创建,也以在已有的类上修改,但不影响原有类。
4.易于开发大型软件产品
可以把一个大型产品看作一系列互相独立的小产品来处理,这样不公降低了
技术难度,而又使开发工作的管理变得容易。
5.可维护性好
一般用传统的开发方法和面向过程的方法开发出来的软件很难维护,而面向
对象的方法开发的软件可维护性好。
(1)稳定性较好
(2)易于修改
(3)易于理解
(4)易于测试和调试
2.3.2面向对象方法的基本概念
关于面向对象方法,对其概念有许多不同的看法,但都涵盖了对象及对象属
性、方法、类、继承、多态性儿个基本要素。
1.对象(object)
对象是面向对象方法中最基本的概念。对象用来表示客观世界中的任何实体。
面向对象的程序设计方法中涉及的对象是系统中用来描述客观事物的一个实体,
是构成系统的一个基本单位,它由--组表示其静态特征的属性和它可执行的一组
操作组成。
对象有如下特点:
(1)标识惟一性
(2)分类性
(3)多态性
(4)封装性
(5)模块独立性好
2.类(Class)和实例(Instance)
将属性、操作相似的对象归为类,类具有共同属性、共同方法的对象的集合。
如中图中命令按钮就是同类对象。
3.消息(Message)
面向对象的世界是通过对象与对象彼此的相互合作来推动的,对象间的这种相互
合作需要一个机制协助进行,这的机制称为“消息”。
消息是一个实例与另一个实例之间传递的信息,它请求对象执行某一处理或回答
某一要求的信息,它统一了数据流和控制流。
一个消息由三部分组成:
(1)接收消息的对象的名称
(2)消息标识符(也称消息名)
(3)零个或多个参数
比如在窗体上画一个圆,对象名MyForm,消息名Circle,参数(50,50)为圆心,25
为半径
MyForm.Circle(50,50),25
4.继承(Inheritance)
继承是面向对象的方法的一个主要特征。继承是使用已有的类定义作为基础(直
接获得已有的性质和特征)建立新类的定义技术。
已有的类可以当做基类引用,则新类可当做派生类引用。
如右图就是VB中的基类:
5.多态性(Polymorphism)
对象根据所接受的消息而做出动作,同样的消息被不同的对象接受时可导致
完全不同的行动,该现象称为多态性
三.软件工程基础
一、基本概念:
软件(Software):软件是一种产品(逻辑产品),指的是计算机中程序及其说
明程序的各种文档。“程序”是计算任务的处理对象和处理规则的描述;“文
档”是有关计算机程序功能、设计、编制、使用的文字或图形资料。
♦软件危机的表现:
1、软件需求的增长得不到满足
2、软件开发成本和进度无法控制
3、软件质量难以保证
4、软件不可维护或维护程度非常低
5、软件成本不断提高
6、软件开发生产效率的提高赶不上硬件的发展和应用需求的增长
♦软件工程(SoftwareEngineering):用工程化的方法、科学知识和技术原理
来定义、开发、维护软件的一门学科。
软件工程的目标:
付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的
软件易于移植;需要较低的维护费用;能按时完成开发任务,及时交付使用;
开发的软件可靠性高。
❖软件工程研究的主要内容是软件开发技术和软件开发管理两个方面。
软件生存周期:是指一个软件从提出开发要求开始直到该软件报废(停止运
行)为止的整个时期。
软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型。
常用的模型有:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基
于知识的模型
瀑布模型是将软件生存周期各个活动规定为依线性顺序连接的若干阶段的模型。
主要包括问题定义及可行性分析、项目开发计划、需求分析、概要设计、详细设
计、编码、测试和维护几个阶段。
例:下列描述中正确的是()
A、程序就是软件B、软件开发不受计算机系统的限制
C、软件既是逻辑实体,又是物理实体D、软件是程序、数据
与相关文档的集合
二、软件可行性研究与项目开发计划:
软件可行性研究的目的是用最小的代价在尽可能短的时间内确定该软件项
目是否能够开发,是否值得去开发。
可行性研究的任务:
A、技术可行性
B、经济可行性
C、社会可行性(法律可行性)
可行性研究的具体步骤:
1、确定项目规模和目标
2、研究正在运行的系统
3、建立新系统的高层逻辑模型
4、导出和评价各种方案
5、推荐可行的方案
6、编写可行性研究报告
三、软件需求分析:
需求分析是指开发人员要准确理解用户的要求,进行细致的调查分析,将用
户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形
式功能规约(需求规格说明)的过程。
♦需求分析的基本任务:
1、问题识别
A、功能需求
B、性能需求
C、环境需求
n田户里面熏亲
2、A析与综合,导出软件的逻辑模型
3、编写文档(需求规格说明书)
❖需求分析的方法:
1、结构化分析(StructuredAnalysis):是面向数据流进行需求分析的方法。
SA方法利用图形等半形式化的描述方式表达需求,主要描述工具:
A、数据流图(DFD):是SA方法中用于表示系统逻辑模型的一种工具,以图形的
方式描绘数据在系统中流动和处理的过程。
B、数据字典(DD):用以定义数据流图中的各个成分的具体含义,为系统的分析、
设计及维护提供了有关元素的一致的定义和详细的描述。
C、描述加工逻辑的结构化语言、判定表、判定树
2、IDEF方法(是ICAMDefinition的缩写):
是一种用于进行复杂系统分析和设计的方法,是在结构化分析和设计技术的
基础上提出来的。
3、面向对象分析方法(OOP):
将客观世界的事物抽象为对象,通过属性和方法描述对象的状态和行为,具
有继承、封装和多态性等特征。
例:软件开发的结构化分析方法中,常用的描述软件功能需求的工具是()
A、业务流程图、处理说明B、软件流程图、模块说明
C、数据流程图、数据字典D、系统流程图、程序编码
四、软件概要设计:
将软件需求转换为软件表示的过程。
❖软件概要设计的基本任务:
1、设计软件系统结构
2、数据结构及数据库设计(概要设计、逻辑设计、物理设计):
3、编写概要设计文档:
4、评审:
软件设计的方法:
模块化:模块在程序中是数据说明、可执行语句等程序对象的集合,或者是
单独命名和编址的元素,如高级语言中的过程、函数、子程序等。
❖模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的
联系最少且接口简单。其度量标准是:耦合性和内聚性
耦合性也称块间联系,指软件系统结构中各模块间相互联系紧密程度的一种
度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。
❖内聚性也称块内联系,指模块功能强度的度量,即一个模块内部各个元素(语
句之间、程序段之间)彼此结合的紧密程度的度量。
将软件系统划分模块时,尽量做到高内聚低耦合。
例:为了使模块尽可能独立,要求()
A、模块的内聚程序要尽量高,且各模块间的耦合程序要尽量强
B、模块的内聚程序要尽量高,且各模块间的耦合程序要尽量弱
C、模块的内聚程序要尽量低,且各模块间的耦合程序要尽量弱
D、模块的内聚程序要尽量低,且各模块间的耦合程序要尽量强
五、软件详细设计:
主要确定每个模块具体执行过程
软件详细设计的基本任务:
1、为每个模块进行详细的算法设计:
2、为模块内的数据结构进行设计:
3、对数据库进行物理设计:
4、输入、输出格式设计
5、编写详细设计说明书:
6、评审:
详细设计常用三种工具:
图形(流程图、盒图、问题分析图PAD)、
表格(判定表)、
语言(过程设计语言,乂称为伪码)
六、软件编码:
主要是将详细设计得到的处理过程描述转换为基于某种计算机语言的程序
常用的计算机语言:Pascal,C、C++、Java等
七、软件测试:
软件测试代表了需求分析、设计、编码的最终复审。软件测试贯穿于软件开
发的全过程。
♦软件测试的目的:
1、软件测试是为了尽可能多地发现程序中的错误而执行程序的过程。
2、一个好的测试用例能够发现至今尚未发现的错误。
3、一个成功的测试是发现了至今尚未发现的错误的测试。
软件测试的原则:
1、测试用例应由输入数据和预期的输出数据两部分组成。
2、测试用例不仅选用合理的输入数据,还要选择不合理的输入数据
3、除了检查程序是否做了它应该做的事
4、应制定测试计划并严格执行,排除随意性
5、长期保留测试用例
6、对发现错误较多的程序段,应进行更深入的测试
7、程序员避免测试自己的程序
软件测试方法:
1、静态测试:
是指被测试程序不在机器上运行,而是采用人工检测和计算机辅助静态分
析的手段对程序进行检测。
2、动态测试:是指通过运行程序发现错误
A、黑盒测试法(功能测试):
主要对软件的接口进行测试,依据需求规格说明书,检查程序是否满足功能
要求。常用的技术是等价类划分法、边界值分析法、错误推测法、因果图法、综
合策略法
B、白盒测试法(结构测试):
主要测试程序的内部结构和处理过程。常用的技术是语句覆盖、条件覆盖、
路径覆盖、判定覆盖等
软件测试的实施:
1、单元测试:
单元测试是对软件设计的最小单位——模块(程序单元)进行正确性检验测
试,主要针对模块的以下五个基本特征进行测试:
A、模块接口
B、局部数据结构:
C、重要的执行路径:
D、错误处理测试:
E、边界条件:
2、集成测试:
集成测试是指在单元测试的基础上,将所有模块按照设计要求组装成一个完
整的系统进行的测试,故也称组装测试或联合测试。
主要方法有两种:
非渐增式测试:首先对每个模块分别进行单元测试,然后再把所有的模块按
设计要求组装在一起进行测试。
渐增式测试:逐个把未经过测试的模块组装到已经过测试的模块上去,进行
集成测试,每加入一个新模块进行一次集成测试,重复此过程直至程序组装完毕。
3、确认测试:
确认测试乂称有效性测试,它的任务是检查软件的功能与性能是否与需求规
格说明书中确定的指标相符合,因而需求规格说明是确认测试的基础。
4、系统测试:
系统测试是通过测试确认的软件作为整个计算机系统的一个元素,与计算机
硬件、外设、支撑软件、数据和人员等其他系统元素组合在一起,在实际运行环
境下对计算机系统进行一系列的集成测试和确认测试。
程序调试:
调试是在进行了成功的测试之后才开始的工作,目的是确定错误的原因和位
置,并改正错误,又称为纠错。
例:软件测试的目的是()
A、证明软件的正确性B、找出软件系统中存在的所有错
误
C、尽可能多地发现软件系统中的错误D、证明软件系统中存在错误
在软件测试方法中,黑箱测试法和白箱测试法是常用的方法,其中黑箱测试
法主要是
用于测试()
A、结构合理性B、软件外部功能C、程序正确性D、程序内部逻辑
八、软件维护:
软件投入使用后进行的阶段,是软件生存周期中时间最长的一个阶段,所花
费的精力和费用也是最多的一个阶段。主要是因为:隐含的错误要修改;新增的
功能要加入进去;环境的变化对程序进行变动等。
软件维护的内容有四类:
1、校正性维护:
为了识别和纠正错误,修改软件性能上的缺陷,其占整个维护工作的21%
2、适应性维护:
为了使应用软件适应环境(硬件、系统软件、数据)的变化而修改软件的过程
称为适应性维护,其占整个维护工作的25%
3、完善性维护:
增加软件功能、增强软件性能、提高软件运行效率而进行的维护活动称为完
善性维护,其占整个维护工作的50%
4、预防性维护:
为了提高软件的可维护性和可靠性而对软件进行的修改称为预防性维护,其
占整个维护工作的4%
例:软件维护是指()
A、维护软件正常运行B、软件的配置更新
C、对软件的改进、适应和完善D、软件开发期的一个阶段
软件生命周期中所花费用最多的阶段是()
A、详细设计B、软件编码C、软件测试D、软件维护
四.数据库原理基础
一、基本概念:
数据处理:是指将数据转换成信息的过程
数据管理是指对数据的组织、分类、编码、存储、检索和维护提供操作手段
其经历了以下阶段:
1、人工管理
2、文件系统
3、数据库系统
4、分布式数据库系统阶段
5、面向对象的数据库系统阶段
数据库(Database):是指存储在计算机存储设备上的结构化的相关数据的集
合,不仅包括数据本身,还包括事物之间的联系。
数据库应用系统(DBAS):是指系统开发人员利用数据库系统资源开发出来
的,面向某一类实际应用的应用软件系统。
数据库管理系统(DBMS):对数据库的建立、使用和维护进行管理和配置的软
件系统。是数据库系统的核心
数据库系统(DBS):由硬件系统、数据库集合、数据库管理系统及相关软件、
数据库管理员和用户组成。
数据库系统的特点:
实现数据共享、减少数据冗余
采用特定的数据模型
具有较高的数据独立性
统一的数据控制功能
实体:客观存在并且可以相互区别的事物称为实体。
实体的属性:实体所具有的物性称为实体的属性。
❖实体集:同类型的实体的集合称为实体集。
实体型:属性的集合表示一种实体类型,称为实体型。
例:数据库管理系统能实现对数据库中数据的查询、插入、修改和删除,这类功
能称为()
A、数据定义功能B、数据管理功能C、数据操纵功能D、数据控制功能
❖联系:实体之间的对应关系。
联系的类型:
1、一对一联系:表现为主表中的每一条记录只与相关表中的一条记录相关
联。
例如:班级与班长,学校与校长
2、一对多联系:表现为主表中的每一条记录与相关表中的多条记录相关联。
例如:班级与学生,部门与职工
3、多对多联系:表现为一个表中的多个记录在相关表中同样有多个记录相
关联。
例如:学生与课程,工程项目与零件
数据模型:不仅反映事物本身,还用来表示实体及实体之间联系的方法。
1、层次模型:用树形结构表示实体及其之间联系的模型称为层次模型。
2、网状模型:用网状结构表示实体及其之间联系的模型称为网状模型。
3、关系模型:用二维表结构来表示实体及实体之间的联系的模型称为关系
模型。
一个二维表称为一个关系,在VFP称为数据表。一个关系不仅表示实体本
身还表示实体之间的联系。
例:用树形结构表示实体之间联系的模型是()
A、关系模型B、网状模型C、层次模型D、以上三个都是
二、关系数据库:
*元组(Record):在一个关系中,水平方向的行称为元组。在VFP中称为记录
属性(Field):一个二维表中垂直方向的列称为属性。在VFP中称为字段名
域(Domain):属性的取值范围。根据数据类型和宽度来决定的。
♦关键字(PrimalKey):其值能够惟一标识一个元组的属性或属性的组合。
注:关键字不能出现空值或重复值
❖外部关键字(ForeignKey):如果表中的一个字段不是本表的主关键字或侯
选关键字,而是另外一个表的主关键字或侯选关键字,这个字段在本表中称
为外部关键字。
♦关系性质:
二维表中元组的个数是有限的——元组个数有限性
二维表中元组均不相同——元组的惟一性
二维表中元组的次序可以任意交换——元组的次序无关性
二维表中元组的分量是不可分割的基本数据项——元组分量的原子性
二维表中属性名各不相同——属性名惟一性
二维表中属性与次序无关,可任意交换——属性的次序无关性
例:关系数据模型中表示实体和实体间的联系的结构是()
A、树型B、网状C、二维表D、对象
三、关系运算:
并(Union):是由两个关系的元组组成的集合。(两个关系必须具有相同的
关系模式)
差(Difference):若有两个相同结构的关系R和S,R差S的结果属于R但
不属于S的元组组成的集合。
♦交(Intersection):若有两个相同的结构关系R和S,交的结果为两个关系
共同的元组。
♦选择(Selection):从关系中找出满足给定条件的元组的操作称为选择。
投影(Projection):从关系模式中指定若干个属性组成新的关系称为投影。
联接(Join):是关系的横向结合,关系模式改变了,是多个关系的关系模
式的组合。联接的结果是多个关系中满足条件的元组。
2002年9月全国计算机考试VF二级考试笔试试题
一、选择题((一)——(35)每小题2分,共70分)
下列各题A)、B)、C)、D)四个选项中,是有一个选项是正确的。请将正确
选项添涂在答题卡相应的位置上,答在试卷上不得分。
(1)在写列四个选项中,不属于基本关系运算的是
A)连接B)投影C)选择D)排序
(2)如果一个班只能有一个班长,而且一个班长不能同时担任其他班的班长,
班级和班长两个实体之间的关系属于
A)•对一联系B)一对二联系C)多对多联系D)一对多联系
(3)VF支持的数据模型是
A)层次数据模型B)关系数据模型C)网状数据模型D)树状数据模型
(4)VF的命令窗口中键如CREATEDATA命令以后,屏幕会出现一个创建对话框,
要想完成同样的工作,还可以采取如下步骤
A)单击“文件”菜单中的“新建”按钮,然后在新建对话框中选定“数据库”
单选钮,再单击“新建文件”命令按钮
B)单击“文件”菜单中的“新建”按钮,然后在新建对话框中选定“数据库”
单选钮,再单击“向导”命令按钮
C)单击“文件”菜单中的“新建”按钮,然后在新建对话框中选定“表”单选
钮,再单击“新建文件”命令按钮
D)单击“文件”菜单中的“新建”按钮,然后在新建对话框中选定“表”单选
钮,再单击“向导”命令按钮
(5)将内存变量定义为全局变量的VF命令是
A)LOCALB)PRIVATEC)PUBLICD)GLOBAL0(6)扩展名为DBC的文件是
A)表单文件B)数据库表文件C)数据库文件D)项目文件
(7)建设已经生成了名为mymenu的菜单问,执行该菜单文件的命令是
A)DOmymenuB)DOmymenu.mprC)DOmymenu.pjxD)DOmymenu.mnxO(8)
下面有关索引的描述正确的是
A)简化里索引以后。原来的数据库表文件中记录的物理顺序将被改变
B)索引与数据库表的数据存储在一个文件中
C)创建索引是创建一个指向数据库表文件记录的指针构成的文件
D)使用索引并不能加快对表的查询操作
(9)若建立索引的字段值不允许重复,并且一个表中只能创建一个。它应该是
A)主索引B)唯一索引C)后选索引D)普通索引
(10)参照完整性的规则不包括
A)更新规则B)删除规则C)插入规则D)检索规则
(11)一数据库名为student,要想打开该数据库,应使用的命令
A)OPENstudentB)OPENDATAstudentC)USEDATAstudentD)USEstudent
(12)下列函数中函数值为字符型的是
A)DATE()B)TIME()C)YEAR()D)DATETIME()
(13)在下面的数据类型中默认为.F.的是
A)数值型B)字符型C)逻辑型D)日期型
(14)在下面有关HAVING子句描述错误的是
A)HAVING子句必须与GROUPBY子句同时使用,不能单独使用
B)使用HAVING子句的同时不能使用WHERE子句
C)使用HAVING子句的同时可以使用WHERE子句
D)使用HAVING子句的作用是限定分组的条件
(15)——(27)使用的数据如下:
当前盘当前目录下有数据库db_stock,其中有数据库表stock,dbf,该数据库表
的内容是:股票代码股票名称单价交易所0600600青岛啤酒7.48上海
0600601方正科技15.20上海0600602广电电子10.40上海0600603兴业
房产12.76上海0600604二纺机9.96上海0600605轻工机械14.59上海
0000001深发展7.48深圳0000002深万科12.50深圳
(15)执行如下SQL语句后OSELECT*FROMstockINTODBFstockORDERBY单
价
A)系统将会提示出错信息
B)会生成一个按“单价”升序排列的表文件,将原来的stock,dbf文件覆盖
C)会生成一个按“单价”降序排列的表文件,将原来的stock,dbf文件覆盖
D)不会生成排序文件,只能在屏幕上显示一个按“单价”排序的结果
(16)执行下列程序以后,内存变量a的内容是OCLOSEDATABASE0a=00USEstock
OGOTOPODOWHILE.NOT.EOF()OIF单价>100a=a+10ENDIFOSKIPOENDD
A)1B)3C)5D)7
(17)有如下SQLSELECT语句OSELECT*FORMstockWHERE单价BETWEEN12.76
AND15.20与该语句等价的是
A)SELECT*FORMstockWHERE单价<=15.20.AND.单价>=12.76
B)SELECT*FORMstockWHERE单价<15.20.AND.单价>12.76
C)SELECT*FORMstockWHERE单价>=15.20.AND.单价<=12.76
D)SELECT*FORMstockWHERE单价>15.20.AND.单价<12.76
(18)如果在建立数据库表stock,dbf时,将单价字段的字段有效性规则设为“单
价>0",通过该设置,能保证数据的
A)实体完整性B)域完整性C)参照完整性D)表完整性
(19)在当前盘当前目录下删除表stock的命令是
A)DROPstockB)DELETETABLEstockC)DROPTABLEstockD)DELETEstock
(20)有如下SQP语句OSELECTmax(单价)INTOARRAYaFROMstock。执行该语
句后
A)a[l]的内容为15.2B)a[l]的内容为6
C)a[0]的内容为15.2D)a[0]的内容为6
(21)有如下SQP语句OSELECT股票代码,avg(单价)as均价FROM
stockOGROUPBY交易所INTODBFtemp0执行该语句后temp表中第二条记录
的“均价”字段的内容是
A)ALTERTABLEstock股票名称WITHc(10)
B)ALTERTABLEstock股票名称c(10)
C)ALTERTABLEstockALTRE股票名称c(10)
D)ALTERTABLEstock股票名称c(10)
(23)有如下SQP语句OCREATEVIEWstock_viewASSELECT*FROMstockWHERE
交易所=“深圳”0执行该语句后产生的视图包含的记录数个是
A)1B)2C)3D)4
(24)有如下SQP语句OCREATEVIEWview_stockASSELECT股票名称AS名称、
单价FROMstockO执行该语句后产生的视函含有的字段名是
A)股票名称、单价B)名称、单价C)名称、单价、交易所D)股票名趁、单
价、交易所(25)下面有关对视图的描述正确的是
A)可以使用MODIFYSTRUCTURE命令修改视图的结构
B)视图不能删除,否则影响原来的数据文件
C)视图是对表的复制产生的
D)使用对视图进行查询时必须事先打开该视图所在的数据库
(26)执行如下SQP语句后OSELECTVDISTINCT单价FROMstock;0WHERE单价
=(SELECTmin(单价)FROMstock)INTODBFstock_x0表stock_x中的记录个
数是
A)1B)203D)4
(27)求每个交易所的平均单价的SQP语句是
A)SELECT交易所,avg(单价)FROMstockGROUPBY单价
B)SELECT交易所,avg(单价)FROMstockORDERBY单价
C)SELECT交易所,avg(单价)FROMstockORDERBY交易所
D)SELECT交易所,avg(单价)FROMstockGROUPBY交易所
(28)视图设计器中含有的、但查询设计器却没有的选项卡是
A)筛选B)排序依据C)分组依据D)更新条件
(29)下面关于查询描述正确的是
A)可以使用CREATEVIEW打开查询设计器
B)使用查询设计器可以生成所有的SQP查询语句
C)使用查询设计器生成的SQP语句存盘后将存放在扩展名为QPR的文件中
D)使用DO语句执行查询时,可以不带扩展名
(30)使用报表向导定义报表时,定义报表布局的选项是
A)列数、方向、字段布局B)列数、行数、字段布局
C)行数、方向、字段布局D)列数、行数、方向
(31)能够将表单的Visible属性设置为.T.,并使表单成为活动对象的方法是
A)HideB)ShowC)ReleaseD)SetFocus
(32)下面对编辑框(EditBox)控制属性的描述正确的是
A)SelLength属性的设置可以小于0
B)当ScrollBars的属性值为0时,编辑框内包含水平滚动条
C)SeText属性在做界面设计时不可用,在运动时可读写
D)Readonly属性值为.T.,用户不能使用编辑框上的滚动条
(33)下面对控件的描述正确的是
A)用户可以在组合框中进行多重选择
B)用户可以在列表框中进行多重选择
C)用户可以在一个选项组中多个选项按钮
D)用户对一个表单内的一组复选框中只能选中其中一个
(34)确定列表框内的某个条目是否被选定应使用的属性是0A)value
B)ColumnCountC)ListCountD)SelectedO(35)没有关系RI和R2,经过关系
运算得到结果是S,则S是
A)一个关系B)一个表单C)一个数据库D)一个数组
二、填空题(每空2分,共30分)请将答案分别写在答题卡中的序号为[1]——[5]
的横线上,答在试卷上不得分。
(1)VisualFoxPro6.0是一个[1]位的数据棵管理系统。
(2)在连接运算中,[2]连接是去掉重复属性的等值连接。
(3)项目管理器的[3]选项卡用于显示和管理数据库、自由表和查询等。
(4)自由表的扩展名是[4]。
(5)LEFT(“123456789",LEN(“数据库”))的计算结果是[5]。
(6)同一个表的多个索引可以创建在一个索引文件中,索引文件名与相关的表
同名,索引文件的扩展名是[6],这种作因称为[7]。
(7)用来确定复选框是否被选中的属性是[8],用来指定显示在复选框旁
的文字的属性是[9]
下面各题使用如下的“教师”表和“学院”表
“教师”表职工号姓名职称年龄工资系号011020001肖天海副教授35
2000.0001011020002王岩盐教授403000.0002011020003刘星魂讲师25
1500.0001011020004张月新讲师301500.00030111020005李明玉教授
342000.0001011020006孙民山教授472100.0002011020007钱无名教
授492200.00030“学院”表0系号系名001英语002会计003工商管理
(8)使用SQP语句将一条新的记录插入学院表0INSERT[10]学院(系号,
系名)[113(“04”,“计算机”)
(9)使用SQP语句求“工商管理”系的所有职工的工资总和。0SELECT[12](工
资)FROM教师OWHERE系号IN(SELECT系号FROM[13]WHERE系名=“工
商管理”)
(10)使用SQP语句完成如下操作(将所有教授的工资提高5%)0[14]教师SET
工资=工资*1.05[15]职称="教授”
2002年9月VF试题答案(仅供参考)
DABACCBCADBBCBACABCABCBBDADDCABCBDA032自然数据.DBF123456.CDX
结构复合索引valueCAPTIONINTOvalueSSUM学院UPDATEWHERE
2003年4月全国计算机等级考试VF二级笔试试题
一、选择题(⑴~(35)每小题2分,共70分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项
涂写在大题卡相应位置上,答在试卷上不得分。
(1)VisualFoxProDBMS是
A)操作系统的一部分B)操作系统支持下的系统软件
C)一种编译程序D)一种操作系统
(2)VisualFoxProDBMS基于的数据模型是
A)层次型B)关系型C)网状型D)混合型
(3)设有部门和职员两个实体,每个职员只能属于一个部门,一个部门可以有多
名职员,
则部门与职员实体之间的联系类型是
A)m:nB)1:mC)m:kD)1:1
(4)在VisualFoxPro中,调用表设计器建立数据库表STUDENT.DBF的命令是
A)MODIFYSTRUCTURESTUDENTB)MODIFYCOMMANDSTUDENT
C)REATESTUDENTD)CREATETABLESTUDENT
(5)在VisualFoxPro中,关于自由表叙述正确的是
A)自由表和数据库表是完全相同的B)自由表不能建立字段级规则和约
C)自由表不能建立候选索引D)自由表不可以加入到数据库中
(6)在VisualFoxPro中,建立数据库表时,将年龄字段值限制在12~14之间的
这种约束属于
A)实体完整性约束B)域完整性约束C)参照完整性约束D)视图完整性约
(7)在VisualFoxPro中,运行表单TLSCX的命令是
A)DOT1B)RUNFORM1T1C)DOFORMT1D)DOFROMT1
⑻使用SQL语句进行分组检索时,为了去掉不满足条件的分组,应当
A)使用WHERE子句B)在GROUPBY后面使用HAVING子句
C)先使用WHERE子句,再使用HAVING子句。
D)先使用HAVING子句,再使用WHERE子句
(9)在VisualFoxPro的参照完整性规则不包括
A)更新规则B)删除规则C)查询规则D)插入规则
(10)在VisualFoxPro中,表结构中的逻辑型、通用型、日期型字段的宽度由
系统自动给出,它们分别为:
A)k4、8B)4、4、10C)l、10、8D)2、8、8
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 职场与健康生活承诺书4篇
- 生态建设专项责任承诺书3篇范文
- 人力资源经理任职资格模型构建指导手册
- 企业文档管理分类与编号系统
- 项目管理师高效沟通指南
- 企业内训师培训计划与实施流程
- 人力资源架构优化建议征集函5篇
- 项目管理中工期延误的应对预案
- 健康产业服务提升承诺书3篇
- 初三数学概率知识点-初三数学概率的简单应用知识点归纳
- 整形外科主治医师历年真题及答案
- 2024版电网典型设计10kV配电站房分册
- 村社区印章管理办法
- DB32∕T 4341-2022 水下道路隧道消防系统工程施工质量验收规范
- 对口支援新疆管理办法
- 北师大版(2024)七年级下册数学期末复习:解答题压轴题 尖子生练习题(含答案解析)
- 《真空熔炼过程解析》课件
- 消防监控考试试题及答案
- 2025年上海市金山区中考数学二模试卷(含解析)
- 腔镜手术缝针管理
- 人教版初中化学课件1:4.4 化学式与化合价
评论
0/150
提交评论