笔试复习
一、公共基础知识(30%) Ⅰ.数据结构与算法
01.算法4个基本特征:可行性、确定性、有穷性、拥有足够的情报 02.算法的复杂度:执行算法所需要的计算工作量 03.算法空间复杂度:实行算法所需的内存空间 04.数据结构可分为 线性结构又称线性表
非线性结构:不满足线性结构的数据结构 05.线性表的顺序存储结构 元素所占的存储空间必须连续
元素在存储空间的位置是按逻辑顺序存放的
06.栈:其插入运算与删除运算都只在线性表的一端进行,也被称为“先进后出”表或“后进先出”表 07.栈顶:允许插入与删除的一端
08.队列:是指允许在一端进行插入,在另一端进行删除的线性表,又称“先进先出”的线性表 09.队尾:允许插入的一端,用为指针指向队尾元素
10.排头:允许删除的一端,用头指针指向头元素的前一位置 11.树是简单的非线性结构 12.树的度:所有节点最大的度 13.树的深度:树的最大层次 14.二叉树是一种非线性结构
15.二叉树的每个节点最多可有两棵子树,称为左子树和右子树 16.二叉树的基本性质
在二叉树的第k 层上至多有1
2-k 个结点(k ≥1)
深度为m 的二叉树至多有1
2
-m 个结点
●对任何一棵二叉树,度为0的结点(即叶子结点)总是比度为2的结点多一个 17.二叉树的存储结构又称二叉链表,对满二叉树和完全二叉树课按层次进行顺序存储 18.二叉树的遍历包括前序遍历、中序遍历和后序遍历
前序遍历:首先访问根结点,然后遍历左子树,最后遍历右子树 中序遍历:首先遍历左子树,然后访问根结点,最后遍历右子树 ●后序遍历:首先遍历左子树,然后遍历右子树,最后访问根结点
19.查找技术:二分查找对长度为n 的有序线性表,在最坏情况下二分查找法只需比较n 2
log 次
20.交换类排序法
冒泡排序:冒泡排序需要比较的次数为n(n-1)/2
快速排序:最坏情况下,即每次划分,只得到一个序列,时间效率为O(2n ) 21.插入类排序法:简单插入排序法比较次数为n(n-1)/2 22.选择类排序法:
简单选择排序法:最坏情况下需要比较n(n-1)/2次 堆排序的方法:是需要比较的次数为O(n n 2
log
)
Ⅱ.程序设计基础
01.结构化程序设计的原则:自顶向下、逐步求精、模块化和限制使用GOTO语句
02.结构化程序的基本结构:顺序结构、选择结构和重复结构
Ⅲ.软件工程基础
01.软件:是指与计算机系统的操作有关的计算机程序、规程、规则,以及可能有的文件、文档和数据
02.软件可分为应用软件、系统软件和支撑软件
03.软件危机指在计算机软件的开发和维护中遇到的一系列严重问题
04.软件生命周期:软件产品从提出、实现、使用维护到停止使用的过程
05.软件生命周期划分
软件定义期:包括问题定义、可行性研究和需求分析
软件开发期:包括概要设计、详细设计、实现和测试
●运行维护期:即运行维护阶段
06.结构化分析常用工具:包括数据流图、数字字典(核心方法)、判断树和判断表
07.符号名称作用:→箭头代表数据流
﹦双杠代表存储文件
○圆或椭圆代表加工
□方框代表源和潭
08.结构化概要设计
4个任务:设计软件系统结构、数据结构及数据库设计、编写概要设计文档、概要设计文档评审
面向数据流的设计方法:数据流图的信息分为交换流和事物流,结构形式有交换型和事务型
09.图形工具:程序流程图、N-S、PAD、HIPO
10.软件测试的目的:为了发现错误而执行程序的过程
11.软件测试的方法
白盒测试:根据程序的内部逻辑设计测试用例,主要方法有逻辑覆盖测试、基本路径测试等
黑盒测试:根据规格说明书的功能来设计测试用例,主要诊断方法有等价划分法、边界值分析法、错误推测法、因果图法等,主要用于软件确认测试
12.软件测试过程的4个步骤:单元测试、集成测试、验收测试和系统测试
13.程序的调试
任务:诊断和改正程序中的错误
调试方法:强行排错法、原因排除法和回朔法
Ⅳ.数据库设计基础
01.为了完成数据库管理系统:DBMS提供了相应的数据语言;数据定义语言(负责数据的模式定义与数据
的物理存取构建)、数据操纵语言(负责数据的操纵)、数据控制语言(负责数据完整性、安全
性的定义)
02.数据库管理系统是数据库系统的核心
03.数据模型
E-R模型:提供了表示实体、属性和联系的方法。实体间联系有“一对一”、“一对多”和“多对多” 层次模型:利用树形结构表示实体及其之间联系
●关系模型:采用二维表(由表框架和表的元组组成)来表示实体和实体间联系的数据模型
?网状模型:层次模型的扩展
二、数据库库基础(5.33%)
Ⅰ.关系数据库
01.关系术语
元组:水平方向的行
属性:二维表中垂直方向的列
02.专门的关系运算:选择、投影、连接
Ⅱ.VF项目管理器
01.数据选项卡:包含项目中的所有数据,包括数据库、自由表和查询
02.文档选项卡:显示和管理项目文件中的文档文件,包括表单、报表和标签等
03.程序文件的扩展名为.prg
Ⅲ.VF文件类型
扩展名:数据库.dbc 表.dbf 菜单.mnx 生成的菜单程序.mpr 可执行程序.exe 报表.frx 项目.pjx 程序.prg 表单.scx 文本.t xt
三、数据与数据运算(8.69%)
Ⅰ.常量与变量
01.严格日期格式:{^yyy-mm-dd}
02.逻辑型常量:逻辑真和逻辑假的常量
03.VF中的变量分为字段变量和内存变量
04.如果用户想访问内存变量,需要在内存变量名前加M.或M->作为前缀
05.数据在使用前要用dimension或declare命令显示创建
06.内存变量的赋值
格式1:store <表达式> to <内存变量名表>
格式2:<内存变量名表> = <表达式>
功能:计算表达式并将表达式赋值给一个或多个内存变量,格式2只能给一个变量赋值
07.表达式的显示
格式1:?[<表达式表>]
格式2:??[<表达式表>
功能:计算表达式表中的各表达式并输出各表达式的值
Ⅱ.表达式
01.数值运算的优先级
^或**:乘方运算
* 或/ 或%:乘、除、求余运算
02.字符串运算
+:前后两个字符串首尾连接形成一个新的字符串
-:连接前后两个字符串,并将前字符串的尾部空格移到合并后的新字符串尾部
03.日期时间表达式
<日期> + <天数>:指定若干天后的日期
<日期> - <天数>:指定若干天前的日期
●<日期> - <日期>:两个指定日期的差值
04.逻辑运算符:.AND.(逻辑与) 、.OR.(逻辑或)、..NOT.(逻辑非)
01.求整数函数
格式:int(<数值表达式>)
ceiling(<数值表达式>)
floor(<数值表达式>)
功能:int( )返回给定数值表达式的整数部分
ceiling( )返回大于或等于给定数值表达式的最小整数
floor( )返回小于或等于给定数值表达式的最大整数
02.四舍五入函数
格式:round(<数值表达式1>、<数值表达式2>)
功能:返回指定表达式在指定位置四舍五入后的结果
03.求余函数
格式:mod(<数值表达式1>、<数值表达式2>)
功能:返回两个数值相除后的余数
04.求字符串长度函数
格式:len(<字符表达式>)
功能:返回指定字符表达式的长度
05.空格字符串生成函数
格式:space(<数值表达式>)
功能:返回指定个数的空个字符组成的字符串
06.取子串函数
格式:left(<字符表达式>、<长度>)
right(<字符表达式>、<长度>)
substr(<字符表达式>、<起始位置>[,<长度>])
功能:left( )从给定字符串的左端取指定长度的子串。函数值为字符型
right( )从给定字符串的右端取指定长度的子串。函数值为字符型
substr( )从给定字符串的指定位置开始取指定长度的子串。函数值为字符型07.求子串位置函数
格式:at(<字符表达式1>、<字符表达式2>[,<数值表达式>])
功能:at( )返回<字符表达式1>在<字符表达式2>中出现的位置
08.系统日期和时间函数
格式:date( )
time( )
功能:date( )返回系统当前日期,函数值为日期型
time( )返回系统当前时间,函数值为字符型,格式为:hh:mm:ss
09.年份、月份和天数函数
格式:year( <日期表达式>│<日期时间表达式>)
month(<日期表达式>│<日期时间表达式>)
day(<日期表达式>│<日期时间表达式>)
功能:year( )从指定的日期表达式或日期时间表达式中抽出年份,函数值为数值型month( )从指定的日期表达式或日期时间表达式中抽出月份,函数值为数值型
day( )从指定的日期表达式或日期时间表达式中抽出日,函数值为数值型
格式:&<字符型变量>[ . ]
功能:替换出字符变量的内容
11.条件测试函数
格式:iif(<逻辑表达式>、<表达式1>、<表达式2>)
功能:测试<逻辑表达式>的值,若为逻辑真.T.,则返回<表达式1>的值;若为逻辑假.F.,则返回<表达式2>的值
四、VF数据库及其操作(11.44%)
Ⅰ.VF数据库及其建立
01.使用数据库
打开数据库的命令是open database
格式:open database [
●含义:filename要打开数据库的名
exclusive以独占方式打开数据库
shared以共享方式打开数据库
noupdate指定数据库按只读方式打开
validate检查在数据库中引用的对象是否合法
Ⅱ.建立数据库表
01.字段类型:字符型(C) 数值型(N) 日期型(D) 日期时间型(T) 整型(I) 逻辑型(L) 备注型(M) 通用型(G)
02.空值:即null,它表示是否允许该字段为空值
Ⅲ.表的基本操作
01.逻辑删除或置删除标记的命令是dele t e
格式:dele t e[for(expression1)]
expression1:指定逻辑表达式
02.物理删除有删除标记记录的命令是pack
03.使用zap命令可以物理删除表中的全部记录
04.直接修改:replace文件名1 with eExpression1 [,文件名2 with eExpression2]…[fo r (Expression1)]
多个字段(eExpression1,eExpression2…)
05.skip命令:可以使用该命令向前后向后移动若干条记录
格式:ship[n]
n为正或负的整数
06.用locate命令定位
locate是按条件定位记录位置的命令,格式:locate for <条件表达式>
条件表达式:是查询定位的表达式,该命令执行后将记录指针定位在满足条件的第一条记录上
●如果想要指针定位到下一个满足条件的记录,可以使用continue命令
Ⅳ.索引
01.主索引:它强调的“不允许出现重复值”是指建立索引的字段值不允许重复
02.候选索引:候选索引和主索引具有相同的特性,一个表可建立多个候选索引
03.唯一索引:它的“唯一性”是指索引项的唯一,而不是字段值的唯一
04.普通索引:普通索引也可决定记录的处理顺序,它不仅允许字段中出现重复值,并且索引项中也允许出
现重复值,在一个表中可建立多个普通索引
Ⅴ.数据的完整性
01.在VF中将主关键字称为主索引,将候选关键字称为候选索引
02.“规则”是逻辑表达式,“信息”是字符串表达式,“默认值”的类型则由字段的类型决定
03.建立表之间的关系:首先在父表中建立主索引,在子表中建立普通索引,然后通过父表的主索引和子表
的普通索引建立两表间联系
04.参照完整性:更新规则、删除规则、插入规则
05.自由表:就是不属于任何数据库的表
06.指定工作区的命令是select
格式:select nWorkArea|cTableAlias
最小的工作区号是1,最大的工作区号是32767
07.insert命令
insert在当前记录之后插入记录
insert blank在当前记录之后插入一个空白的记录
●insert before在当前记录之前插入记录
?insert before blank在当前记录之前插入一个空白的记录
五、关系数据库标准语言SQL(22.78%)
Ⅰ.查询功能
01.SQL的核心是查询,基本形式select-form-where查询块组成
格式:select all|distinct]
[<别名>.]
[form <数据库名>!]<表名>
where <联接条件>[and<联接条件>…][and|or<筛选条件>]
[group by <分组表达式>]
[having <筛选条件>]
[order by<排序表达式>[asc|desc]
含义:select说明要查询的数据
form 说明要查询的数据来自哪个或哪些表
where 说明查询条件,即选择元祖的条件
group by 短语用于对查询结果进行分组,可以利用它分组汇总
having 短语必须跟随group by 短语使用,用来限定分组必须满足的条件
order by 短语用来对查询的结果进行排序
02.简单查询
格式:select<字段名列表>from<表名>where<查询条件>
可使用distinct短语去掉查询结果中的重复值
03.SOL select的几个特殊运算符
等价:>=…and <=…
between…and表示该查询的条件是“在…和…之间”相当于用and连接的一个逻辑表达式
●like一个字符串匹配运算符,通配符“%”表示0个或多个字符,通配符“-”(下划线)表示一个字符
04.排序:通过在select语句中加入order by 可将查询结果排序,可以按升序(asc)和降序(desc)排列行或列
05.SOL计算函数
avg:计算一个数值列的平均值
count:计算指定列中选择的项数,count(*)统计查询输出的行数
●min:计算指定列中的最小值
?max:计算指定列中的最大值
?sum:计算指定列中的数值总和
06.分组与计算查询:出了简单的查询外还可以加上group by子句进行分组计算查询
group by groupcolumn[,groupcolumn][having flitercondition]
having子句和where子句不矛盾,在查询中是最先用where子句限定元组,然后进行分组,最后用having 子句限定分组
07.利用空值查询:查询空值时要使用is null
08. .SOL select的几个特殊选项
⑴显示部分结果
格式:top nExpr[percent]
含义:nExpr 是数字表达式,可以是1~32767之间的整数
⑵将查询结果存放在临时文件中:使用短语into cursor CursorName(CursorName是临时文件名)
⑶将查询结果存放在数组中:使用短语into array ArrayName(ArrayName是任意的数组变量名)
⑷将查询结果存放在永久表中:使用短语into dbf|table TableName
⑸将查询结果存放在文本文件中:使用短语into file FileName[additive]
09.插入数据
格式:insert into dbf-name[(fname1[,fname2,…)]
values(eExpression1[,eExpression2,…])
含义:into dbf-name:指出了要添加新记录的表名
values:指出了要输入到新记录的指定字段中的数据值
10.更新数据:update命令是用新的值更新表中的记录
格式:update TableName
set Column-Name1
含义:update TableName指出进行记录修改的表名称
set支出将被更新的字段及它们的新值
11.删除数据
格式:delete from TableName[where Coudition]
这里form指定从哪个表中的删除数据,where指定被删除的记录所满足的条件
12.表的定义:可以通过SQL的create table命令建立表
create table|dbf TableName1[name longTableName][free]
除了建立表的基础功能外还包括:主关键字primary key、定义域完整性check约束及出错提示信息error、定义默认值default
13.表的删除:drop table Table-name
14.表结构的修改:alter table
格式1:alter table TableName1(表名)add(增加)| alter[column]FieldName1
[primary key(主索引)|unique(普通索引)]
格式2:alter table TableName1 alter[column(字段名)] FieldName2[null|not null]
15.视图的定义:定义视图可以使用create view语句来实现
格式:create view view-name视图文件名
as select语句
06.视图的删除:drop view<视图名>
六、查询与视图(3.11%)
01..查询(.qpr)
02.“字段”选项卡对应于select短语,用来选定包含在查询结果中的字段
03.“排序依据”选项卡对应于order by短语,用来决定查询结果输出中记录的排序排列
04.“联接”选项卡对应于join on短语,用来确定各表或视图之间的联接关系
05.“筛选”选项卡对应于where短语,用来指定查询条件
06.“分组依据”选项卡对应于group by短语,用来分组,便于基于一组计算
07.“杂项”选项卡对应于distinct、top短语,用来指定是否要重复记录和列在前面的记录
08.查询去向:在查询中选择
09.表.dbf
七、程序设计(4.38%)
Ⅰ.程序与程序文件
01.程序文件的建立与修改:可以用命令方式建立和修改程序文件
modify command<文件名>
系统自动加上默认扩展名.prg
02.程序文件的执行:do <文件名>
Ⅱ.程序的基本结构
01.条件语句
格式if <条件表达式>
<语句序列1>
eels<语句序列2>
endif
说明:若<条件表达式>为真则执行<语句序列1>,若<条件表达式>为假则执行<语句序列2>
02.分支语句
格式:do case
case<条件1>
<语句序列1>
case<条件2>
<语句序列2>
…
[otherwise<语句序列n>]
endcase
说明:依次判断case后的条件是否成立,当发现某个case后面的条件成立时,就执行该case和下一个case之间的命令序列,然后执行endcase后面的命令
03.循环结构
⑴do while-enddo语句
格式:do while<条件表达式>
[<语句序列>]
[exit]
[loop]
enddo
说明:loop直接将程序控制返回到do while语句;exit也可以放在do while和enddo之间的任何位置⑵for-endfor语句
格式:for<循环变量>=<初值>to<终值>[step<步长>][<循环体>]
endfor|next
04.模块的定义
格式:procedure|function<过程名>
<命令数列>
若return不带<表达式>,则返回逻辑真
05.参数传递
格式1:do <文件名|<过程名> with <实参表>
格式2:set udfparms to value|reference命令重新设置参数传递的方式。to value表示按值传递,to reference表示按引用传递
06.公共变量:public<内存变量表>
07.私有变量:私有变量的作用域是建立它的模块及其下属的各层模块,当建立它的模块程序运行结束,
这些私有变量也将自动清除
08.局部变量:只能在建立它的模块中使用而不能在上层或下层模块中使用变量
local<内存变量表>
该命令建立指定的局部内存变量,并赋初值.F.
八、表单设计与应用(10.67%)
01.this当前对象,thisform当前对象所在的表单
02.运行表单:在命令窗口下输入do form<表单文件名>[name<变量名>]
03.表单常用名:
AutoCenter 指定表单初始化时是否自动在VF主窗口内居中显示
Caption 指明显示表单标题栏上的文本
Minbutton 表单是否有最小化按钮
WindowTtpe 指定表单模式表单(1)还是非模式表单(0)
04.表单控件:
DblClick事件:用鼠标双击对象时引发
Click事件:当用户单击鼠标左键或在程序中包含了一个触发该事件的代码时将发生此事件
RightClick事件:用鼠标右键单击对象时引发
Release事件:将表单从内存中释放(清除)
05.标签(Label)控件属性:Caption 指定标签的标题文本
06.命令按钮(CommangButton)控件属性:
Default 默认值.F.
Cancel 默认值.F.
Enabled指定表单或控件能否相应由用户引发的事件,默认值.T.
V isible 指定对象是可见的还是隐藏的
07.文本框(TextBox)控制属性:
V alue属性:返回文本框的当前内容
PasswordChar属性:指定文本框控件内是显示用户输入的字符还是显示占位符
InputMax属性:指定一个文本框中如何输入和显示数据
08.模式符:
x:允许输入任何字符
9:允许输入数字和正负号
#:允许输入数字、空格和正负号
10.编辑框(EditBox)控件属性:ReadOnly属性指定用户能否编辑编辑框中的内容。该属性默认值.F.,此时
用户可以修改编辑框中的内容
11.编辑框(CheckBox)控件属性:0或.F.表示未被选中;1或.T.表示被选中;2或.NULL表示不确定
12.列表框(ListBox)控件属性:
RowSourceType属性:指明列表框中条目的数据源类型
RowSource属性:指定列表框条目
MultiSelect属性:指定用户能否在列表框控件内进行多重选定
13.选项组(OptionGroup)控件属性:
ButtonCount属性:指定选项组中选项按钮的数目
V alue属性:若为数值型值n,则表示选项组中第n个选项按钮被选中;若为字符型值c,则表示选项组中caption属性值为c的选项按钮被选中
14.表格控件(Grid)常用属性
RecordSourceType属性:指明表格数据源的类型
RecordSource属性:指定表格数据源
ColumnCount属性:指定表格的列数
15.页框(PageFrame)控件属性:PageCount属性:用于指明一个页框对象所包含的页(page)对象的数量
九、菜单的设计与应用(0.89%)
01.系统菜单:
格式:set sysmenu on|off|automatic
|to<弹出式菜单名表>
|to<条形菜单项名表>
|to
功能:to
Nosave 将缺省的配置恢复成VF系统菜单的标准配置
02.定义菜单:访问键的字符前加上“\ <”两个字符
分组线:\ -
十、报表设计(2.22%)
01.设计报表数据源:报表的数据源通常是数据库中的表或自由表,也可以是视图、查询或临时表
02.域控件:通过域控件实时显示当前日期和时间等
03.报表输出:report form<报表文件>[preview]
十一、开发应用程序(0.44%)
应用程序连编结果有两种文件形式
应用程序文件(.app):需要在VF中运行
可执行文件(.exe):可以脱离VF在windows中运行