vf基础知识要点_第1页
vf基础知识要点_第2页
vf基础知识要点_第3页
vf基础知识要点_第4页
vf基础知识要点_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、#数值类型【科学记数法】格式:实数E整数。如3.5E3,表示3.5*10八3。 E大小写均可,指数可以为负数。【算术运算符】加法(+)、减法(-)、乘法(*)、除法(/)、乘法(*,A)【优先级】 括号最高,然后乘方,然后乘除,然后加减【余数计算规则】1. 被除数=除数*商+余数2. 余数的绝对值必须小于除数的绝对值3. VFP 规定余数和除数同号【精度】 总原则:除非是整数,否则至少保留 2 位小数。不存在计算结果只有 1 位小数的情况。+,- :取两个操作数的小数位数多的一个作为计算结果的小数位数。只有两个整数相加减结果才是 整数。*,/ :将两个操作数的小数位数相加,作为计算结果的小数位

2、数。只有两个整数相乘除结果才是整 数。%:余数的计算结果,小数位数和被除数一致。被除数为整数时,结果为整数。*,A :计算结果至少保留 2 位小数。无论任何情况,计算结果都不为整数。货币类型1. 只要在数值类型前加上 $符号即代表货币类型2. 小数位数永远保留 4 位#数值函数【绝对值和符号】ABS数值表达式):求数值表达式的绝对值。SIGN(数值表达式):求数值表达式的符号。特别的,若用X表示某表达式,则ABS(X)*SIGN(X)=X【取整和四舍五入】INT(数值表达式):直接对数值表达式取整,直接舍去小数部分。CEILING(数值表达式):天花板函数,返回大于该表达式的最小整数。FLOO

3、R数值表达式):地板函数,返回小于该表达式的最大整数。ROUND数值表达式,精度):精度为正,表示保留几位小数;精度为 0,表示保留整数;精度为负, 表示将整数后几位置为 0。【其他】SQRT数值表达式):求数值表达式的平方根。其中,数值表达式必须是非负数,可以不是整数。 MOD被除数,除数):求余数,规则和!算符相同。PI() :求圆周率,返回值为 3.14。MAX一组表达式):求这组表达式中的最大值。MIN(一组表达式):求这组表达式中的最小值。【适用范围】1. 以上函数对于货币类型基本上都适用。2. 和比较大小相关的函数如 MAX MIN BETWEE等对其他类型(如字符型、日期型、日期

4、时间型) 等也适用。#表示方法【三种定界符】双引号"abc"、单引号'abc'、中括号abc可混合使用,如 "hello" 表示的就是 "hello" 这个字符串(双引号也是字符串的一部分) 。 【连接!算】加法:字符串a+字符串b,结果为二者直接相连。如:"abc "+"xyz"="abc xyz"减法:字符串 a-字符串b,结果将a尾部的空格转接到 b的尾部,然后再相连。如:"abc"-"xyz"="abc

5、xyz "【字符长度】一般的,普通英文半角字符,一个字符占 1 字节,长度为 1。 特别的,一个汉字或一个汉字符号占 2 字节,长度为 2。字符函数【获取长度】LEN(字符串):计算字符串的长度。如果字符串是由+或-组成的表达式,那么+和-计算后的结果长 度相等。【大小写转换】UPPERS符串):全部字符转成大写。LOWERS符串):全部字符转成小写。【生成空格】SPACE整数数值):返回一个由 整数数值个空格组成的字符串。【去掉空格】TRIM(字符串):去掉字符串尾部(右边)的空格。LTRIM(字符串):去掉字符串头部(左边)的空格。ALLTRIM字符串):去掉字符串两边的空格。#

6、字符函数【字符串截取】LEFT(字符串,截取长度):从字符串左边开始,截取指定长度的字符作为函数返回值。RIGHT字符串,截取长度):从字符串右边开始,截取指定长度的字符作为函数返回值。SUBSTF字符串,起始位置,截取长度):从字符串起始位置开始,截取指定长度的字符作为函数返 回值。起始位置从 1 开始,截取长度如果省略则一直截取到最右边。【子串出现】OCCOU子串,父串):返回子串在父串中出现的次数,如果没有出现过则返回0。AT(子串,父串,出现次数):返回子串在父串中第 出现次数次出现时,子串首字符在父串中的位 置。省略出现次数则代表第一次出现。ATC(子串,父串,出现次数):同上。AT

7、函数对大小写敏感,ATC函数对大小写不敏感,即'A'和'a' 可视作同一个字符。【字符替换】STUFF原始字符串,起始位置,长度,新字符串):将 原始字符串 中,从 起始位置开始,截取 长 度字符串,将其替换为 新字符串 ,将替换后的新字符串作为结果返回。CHRTRA原字符串,待替换字符,新字符):将原字符串 中的所有 待替换字符 全部替换为 新字 符,将替换后的新字符串作为结果返回。本函数是以单个字符作为替换单位。#表示方法【严格的日期格式】fYYYY/MM/DD1. 两边使用大括号,年份前面使用脱字符A2. 年份必须 4位,月和日可以 1 位也可以 2 位3

8、. 中间的分隔符可以是斜杠 / 、减号 - 、句点 . 和空格四类字符【设置命令】 以下命令均用于设置显示结果。1. SET MARK TO 分隔符设置显示出来的分隔符,默认是斜杠 /。如果分隔符省略,则表示恢复为默认。2. SET DATE TO 格式设置年月日显示顺序,丫皿叶月曰,DMY3月年,MDY月日年,也可以设置国家名。TO省略与否, 效果相同。3. SET CENTURY ON|OFF如写ON则显示4位年份;如写OFF则显示2位年份。 【传统的日期格式】 SET STRICTDATE TO 0 输入此命令后,方可使用传统的日期格式。与严格格式的区别:1. 不使用脱字符A2. 年份可

9、以写 2位,也可以写 4位3. 年月日使用顺序受SET DATE命令影响【日期时间类型】格式: 日期部分 , 时间部分 日期部分也分为严格和传统两种格式,用法与日期格式相同。 时间部分: HH:MM:SS AM|A|PM|P相关计算【加减运算】日期 +正整数、正整数 +日期:表示几天后的日期,返回值为日期类型。 日期 -正整数:表示几天前的日期,返回值为日期类型。日期 -日期:表示两个日期相差几天,返回值为数值类型。日期时间 +正整数、正整数 +日期时间:表示几秒后的日期时间,返回值为日期时间类型。 日期时间 - 正整数:表示几秒前的日期时间,返回值为日期时间类型。日期时间 - 日期时间:表示

10、两个日期时间相差几秒,返回值为数值类型。 【有关函数】DATE():返回当前日期,返回值为日期类型。DATETIME()返回当前日期时间,返回值为日期时间类型。TIME():返回当前事件,返回值为时间类型。YEAR日期/日期时间表达式):提取表达式中的年,返回数值类型。 MONTH日期/日期时间表达式):提取表达式中的月,返回数值类型。 DAY(日期/日期时间表达式):提取表达式中的日,返回数值类型。 HOUR日期时间表达式):提取表达式中的时,返回数值类型。 MINUTE日期时间表达式):提取表达式中的分,返回数值类型。 SEC(日期时间表达式):提取表达式中的秒,返回数值类型。#获取类型V

11、ARTYPE表达式),其结果用一个字母来表示表达式的类型。N(Number):数值类型 Y(Currency) :货币类型C(Character) :字符类型D(Date) :日期类型T(Time) :日期时间类型数值型和字符型STR(数值表达式,长度,精度):将数值型转换为字符型 如何确定计算结果的精度:1. 按照精度确定要保留的小数位数2. 按照长度再次调整保留的小数位数3. 如果长度小于数值的整数部分长度,则显示 整数个星号*VAL(字符表达式) 从左往右读取字符表达式,遇到第一个非数字字符即停止 日期时间型和字符型CTOD字符表达式):将字符转换成日期类型CTOT字符表达式):将字符转

12、换成日期时间类型1 ,则转换结果和主窗口输出的结果一DTOC表达式,1):将日期转换成字符类型。如果不写参数 致;如果写参数1,则转换为YYYYMMDD式的8位字符串TTOC表达式,1):将日期时间转换成字符类型。如果不写参数 1,则转换结果和主窗口输出的结 果一致;如果写参数1,则转换为YYYYMMDDhhmr格式的14位字符串 逻辑类型 逻辑类型只有两个值:真和假。真:.T.或.t. 或.Y.或.y.假:.F.或.f.或.N.或.n. 逻辑型的常量两边各有一个点,是不能省略的 获取类型VARTYPE表达式),其结果用一个字母来表示表达式的类型N(Number):数值类型Y(Currency

13、) :货币类型C(Character) :字符类型D(Date) :日期类型T(Time) :日期时间类型L(Logic): 逻辑类型 关系运算符 关系运算符:比较两个数的大小。>: 大于<: 小于=: 等于>=: 大于等于<=: 小于等于 <>、!= 、#: 不等于常见的类型比较:数值类型和货币类型 日期类型和日期时间类型:越晚越大,越早越小 逻辑类型: .T.>.F.ASCII 字符在计算机中都是用数字表示的 特殊字符的 ASCII: "0" 的 ASCII: 48 "A" 的 ASCII: 65"

14、a" 的 ASCII:97 字符类型比较大小:VFP中,比较两个字符大小的规则是从左往右,一个字符一个字符的比较。字符类型两个字符相等的情况:不完全相等和完全相等。完全相等 (=) :必须长度相等,且所有字符都相等 不完全相等 (=) 有以下两种情况:SET EXACT OFF默认):判断标准以右边字符串结束为准 SET EXACT ON分别去掉右侧空格后,完全相等。子串 $父串:检测父串中是否出现子串。 逻辑运算符 三种逻辑运算符:非、与、或 非运算(.NOT.或NOT)颠倒真假 与运算(.AND或AND)必须同时为真或运算(.OR.或OR):只要一个为真即可【真值表】函数BETW

15、EE表达式,低值,高值):表达式 = 低值AND表达式 =高值EMPTY表达式):"空值"测试函数不同类型的空值表示:LIKE(通配符表达式,表达式):字符串匹配函数* :和任意个任意字符匹配?: 和单个任意字符匹配空值类型空值(.NULL.或NULL):用于表示"不确定"、"没意义"状态。使用注意:1. 空值类型不属于任何一种类型,但又都兼容。2. 用VARTYPE(检测空值,输出的结果是 X。3. 一般来说,通常我们不用 NULL来参与运算,因为结果一般都是 NULL 函数ISNULL(表达式):检测表达式的值是否为 NULLEM

16、PTY表达式):检测表达式的值是否为"空值"。EMPTY(NUL的值为假。#变量变量(内存变量):内存中的一小块存储空间。在 VFP中,变量无需定义,即可使用(只需赋值,变 量即自动完成定义 )。变量两种赋值命令:1. 变量名=表达式,其中=称作赋值运算符,该赋值语句一次只能赋值一个变量。 2.STORE 表达式 TO 变量名表,该赋值命令一次可以赋值多个变量。变量的显示LIST MEMORYLIKE 通配符表达式 DISPLAY MEMORYLIKE通配符表达式 其中通配符: *表示任意个任意字符, ?表示单个任意字符。 注意:变量的显示并不是简单的显示变量的值,而是显示

17、跟变量有关的一系列详细信息。 变量的释放CLEAR MEMORY空所有的变量。RELEASE 变 量名表 :清除指定变量。RELEASE ALLLIKE 通配符表/RELESE ALLEXCEPT通配符表 :清除符合/不符合通配符的变 量。数组 数组:用于存储用途相似的一组数据 数组的定义:1. 一维数组的定义:DIMENSION数组名 (下标上限)|DECLEAR 数组名 (下标上限)2. 二维数组的定义:DIMENSION数组名 (下标上限1,下标上限2)|DECLEAF数组名 (下标上限1, 下标上限 2)3. 数组的批量赋值:STORE数值TO数组名变量名变量名的命名规则:规则 1:只

18、能包含 4 类字符,字母,数字,汉字,下划线规则 2:数字不能作为首字符规则 3:变量名之间不能重复 变量的输入 变量输入命令:INPUT命令:可以接受所有类型的数据。格式:INPUT提示语TO 变量名,其中 提示语 可以省略不写。ACCEPTS令:只能接受字符类型的数据。格式:ACCEPT提示语TO 变量名,其中 提示语 可以省略不写。WAIT命令:只能接受最多1个字符。格式:WAIT提示语TO 变量名WINDOW AT 行, 列TIMEOUT 数值表达式 ,其中 参数可以任选。宏替换函数宏替换函数格式: &字符型变量 . ,其中 . 可以省略不写。功能:将里面存储的变量转成实际 V

19、FP的命令。程序 程序:更强大的命令执行方式。程序的特点:1. 可以保存。所以程序均可保存成文件。2. 编译执行。支持选择、循环等程序流程。 命令窗口中的命令和程序的两大区别:1. 关闭VFP后,命令窗口中所有命令都会自动消失,而程序是可以保存下来的。2. 命令窗口中的命令是写一行执行一行,是立即执行的。而程序中的程序是写完之后一起执行的。 程序相关的命令:1. 新建/打开程序MODIFY COMMAND路径2. 执行程序 DO 程序路径 3. 删除指定文件 ERASE 文件路径 程序编译: .PRG-.FXP项目项目:一个项目对应一个软件。项目包括:数据 ( 数据库、表、查询 ) 、文档 (

20、 表单、报表、标签 ) 、 代码(程序、 API 库、应用程序 ) 和其他( 菜单、文本文件、其他文件 ) 。 项目相关的命令:1. 新建项目 CREATE PROJECT2. 打开项目MODIFY PROJECT程序路径IF 语句IF 语句的一般格式:IF 逻辑条件 *条件为真时执行这里ELSE*条件为假时执行这里ENDIFIF 语句的嵌套:IF 逻辑条件 1* 条件 1 为真时执行这里IF 逻辑条件 2*条件 2为真时执行这里ELSE*条件 2为假时执行这里ENDIFELSE* 条件 1 为假时执行这里ENDIF轻量级选择函数IIF 格式:IIF(< 逻辑表达式 >,<

21、返回值 1>,< 返回值 2> 其中,逻辑表达式为真则返回 " 返回值 1",为假则返回 " 返回值 2" IIF 语句的嵌套 :IIF(< 逻辑表达式 1>,< 返回值 1>,<IIF(< 逻辑表达式 2>,<返回值 1>,<返回值 2>)>)DO CAS语句DO CAS语句的一般格式:DO CASECASE <条件 1> <第1组语句>CASE <条件 2><第2组语句> OTHERWISE<其他语句 >

22、;ENDCASE注释 注释:程序中的标记 两种主要形式:1. * < 注释内容 >|NOTE <注释内容 >2.&& <注释内容 >FOR循环FOF循环的语法:FOR匸初始值TO终止值STEP步长循环体ENDFOR|NEXTFOR循环使用注意点:1. 循环变量:循环体中并非必须出现2. 循环次数:终止数 - 起始数+13.STEP:循环变量的步长4. 省略形式:等同于 STEP 1FOF循环原理图:遍历查找 遍历查找语法:FOR匸初始值TO终止值STEP步长IF I 符合某判定条件* 对符合条件的 I 进行处理ENDIF ENDFOR|NEX

23、T 水仙花数 水仙花数特点:1. 是一个三位数 (100-999)2. 设百位a,十位b,个位c,则aA3+bA3+cA3=abc DO WHILE循环语法格式:DO WHILE <判定条件 ><循环体>ENDDO 两种控制语句:EXIT:直接退出整个循环LOOP吉束本次循环,进入下次循环数据库基础基本概念:1. 关系型数据库:有一个个表格 ( 关系)组成。2. 关系:一个表格就是一个关系3. 数据管理的三个阶段: 人工管理阶段:所有工作都依赖人工,效率低下 文件管理阶段:使用文件进行管理,冗余度高,独立性差 数据库系统阶段:彻底解决数据共享问题 获取字段类型VARTY

24、PE表达式),其结果用一个字母来表示表达式的类型。I(Integer):整型F(Float): 浮点型B(Double): 双精度型M(Memory):备注型G(General): 通用型 表的常用命令表相关的命令:1. 新建表CREATE <表路径 >CREATE TABLE表路径 >(字段表)2. 打开表USE <表路径 >3. 修改表的结构MODIFY STRUCTUREMODI STRU4. 浏览/ 编辑BROWSE/CHAN、GEEDIT5. 删除记录DELETE vFO表达式 >6. 恢复记录RECALL vFO表达式 >7. 物理删除PA

25、CK8. 物理清空ZAP9. 批量修改REPLACE ALL字段名> WITH <新字段值><FOR表达式>10. 表的显示LISTFIELSv 字段名表><FOR表达式>TO FILE v 文件名 >表的遍历和表相关的函数:1. 记录总数 RECCOUNT()2. 记录号 RECNO()3. 文件开头 BOF()4. 文件结尾 EOF()命令(改变表指针的指向 ) :1. 直接定位GO 记录号 |TOP|BOTTOMGOTO 记录号 |TOP|BOTTOM2. 移动定位:SKIP 移动行数 3. 查找定位LOCATE vFO表达式 和CO

26、NTINU配合使用VFP中的两种变量:字段变量和内存变量 修改字段变量的值:1. BROWSECHANGEEDIT2. REPLACE.WITH.SCATTE命令:将当前记录存入指定数组一般格式: SCATTERFIELDS 字段名表 TO 数组名 SCAN循环SCAN循环:对表进行遍历循环一般格式:SCANFO表达式 循环体ENDSCAN数据库的使用 数据库使用要点:1. 新建完数据会产生三个文件.dbc: 数据库主文件.dct: 数据库备注文件.dcx: 数据库索引文件2. 新建数据库的命令CREATE DATABASE3. 根据新建表是否放进数据库中,有以下两种情况 数据库表:从属于某数

27、据库 自由表:不属于任何数据库数据库表的一些特性:a. 使用长表名、长字段名b. 指定字段默认值c. 指定表之间的关系d. 设计数据完整性索引使用索引的要点:1. 物理顺序:表中数据的实际存储顺序2. 逻辑顺序:在索引中排列并指定其和物理顺序的关系3. 索引的目标:提高查询效率4. 索引文件的扩展名: 非结构索引: .idx 或和表不同名 .cdx结构复合索引:和表同名 .cdx5. 结构复合索引的特点:a. 可以随表打开b. 可设置多个索引方案c. 记录修改时,自动更新索引类型索引类型分为以下 4 种:1. 主索引a. 字段值不能为空b. 字段值不能重复c. 一个表只能有一个主索引2. 候选

28、索引a. 字段值不能为空b. 字段值不能重复3. 唯一索引 记录值重复时,以首次出现记录为基础排序4. 普通索引 对指定字段或表达式进行排序 数据完整性 数据完整性:用于保证数据的正确性。包括实体完整性、域完整性和参照完整性。 实体完整性:确保表中的记录唯一 1.候选索引:记录值不能为空、不能重复2. 主索引:记录值不能为空、不能重复、一个表只能有一个 域完整性:指定指定的取值范围 1.基本设定:数据类型、宽度 2.有效性规则:规则、信息、默认值 参照完整性:保证父表和子表的数据一致 1.更新规则:级联、限制、忽略 2.删除规则:级联、限制、忽略3. 插入规则:限制、忽略 级联:子表跟着父表,

29、随之修改 限制:如果子表存在相关数据,禁止父表修改 忽略:子表不受父表的影响工作区的使用 工作区:每一个表都是在一个工作区中打开的。 工作区使用一些要点:1.在VFP中有32767个工作区,编号为1327672.SELECT命令:打开指定的工作区格式:SELECT工作区号|表别名其中,如果没有指定 表别名,则等同于表名USE命令:在当前工作区打开指定的表为打开的表指定别名:USE 表名IN 工作区ALIAS 别名3. 当前工作区:无论打开多少表,当前工作区只有一个4.SELECT 0:打开最小的空白工作区5. 永久联系:记录值更改时受影响6. 临时联系:记录指针移动时受影响格式:SET REL

30、ATION TC关联字段INTO 表名 取消临时性联系: SET RELATION TO第一章 算法和数据结构第一课算法的概念算法的定义算法是指解决方案的准确而完整的描述,是一系列解决冋题的清晰指令。算法工程序。 算法的 5 大特征 1. 至少 1 个输出:任何算法,必须有输出结果。 2. 至少 0 个输入,足够的情报: 对于复杂算法,情报越充足,效果越好。 3. 有穷性:算法能在有限的执行步骤内、有限的时间内执 行结束。 4. 可行性:算法的每一个步骤都必须能够翻译成计算机可执行的基本操作。5.确定性: 算法的每一个步骤都必须描述准确,没有歧义。算法的复杂度 【时间复杂度】以基本操作次数的数

31、量级计数,不以秒计数。常见复杂度(越小越快):O(1)O(log n)0( n)0( nlogn )0(门八2)0(2八n)0( n!) 【空间复杂度】算法执行过程中的空间开销。 【二者关系】虽然算法中常常会以牺牲空间的方式来换取时间效率, 但一般认为二者没有必然关系。 第二课数据结构的概念数据结构的定义 数据结构是指计算机组织、存储数据的方式。数据结构可分为逻辑结构和存储结构。其中: 1.逻辑 结构又分为线性结构和非线性结构。 2. 存储结构又分为顺序存储结构和链式存储结构 逻辑结构 逻辑结构不关心数据如何存储,只关心数据的组织方式。逻辑结构可分为线性结构和非线性结构。、网状图存储结构又分为

32、顺序存储结构和链式存储2. 查找、修改比较方便 3. 插入、删除比较2. 插入、删除比较不方便 3. 查找、修改比典型线性结构:栈、队列典型非线性结构:树(二叉树) 存储结构存储结构不关心数据如何组织, 只关心数据的存储方式。 结构。【顺序存储结构】 1 .所有元素在内存中按顺序排列 不方便【链式存储结构】 1 .所有元素在内存中随机分布 较方便 4. 由于要存储下一元素的地址,所以需要更多的存储空间【二者关系】二者没有必然关系 第三课栈 基本概念1 .栈属于逻辑结构的概念, 属于线性结构。 2. 栈既可以用顺序存储结构实现, 也可以用链式存储结 构实现。 3.栈的特点是先进后出( FIL0)

33、。 4. 进出过程中,栈底指针不变,栈顶指针移动。 计算规则视栈顶和栈底指针的指向规则而定。一般的,栈底指向首元素的前一位置(比如0),栈顶指针指向尾元素(比如 5),即栈中 1、2、3、4、5各存储了一个数据。此时:栈中元素个数 =栈顶指针- 栈底指针(比如 5-0=5)第四课队列 基本概念 1 .队列属于逻辑结构的概念, 属于线性结构。 2. 队列既可以用顺序存储结构实现, 也可以用链式存 储结构实现。 3. 栈的特点是先进先出( FIF0)。 4. 队头负责出队,队尾负责入队。循环队列循环队列是专门针对顺序存储结构空间固定的特点而设计的, 所以一般认为循环队列是顺序存储结 构。其核心原理

34、是: 当队尾到达队列最大位置、 而队头不在最小位置时如果继续入队,则队尾移至 队列最小位置,从头开始移动,形成循环。出队时同理。计算规则 视栈顶和栈底指针的指向规则而定。一般的,队头指向首元素的前一位置,队尾指针指向尾元素。 假设队列容量为 20: 1 .若队尾队头(比如队尾为 7,队头为 2):队列元素个数 =队尾指针-队头 指针( 7-2=5) 2.若队头队尾(比如队尾为 2,队头为 7):队列元素个数 =队尾指针 -队头指针+ 队列容量( 2-7+20=15)其中,第二种情况只有循环队列中才会出现。第五课二叉树的计算基本概念1. 一个二叉树只有一个根节点。 2. 在二叉树中, 任何一个节

35、点最多只能有 2 个子节点。 3.一个节点 有几个子节点,则度为几。度为 0 的节点称为叶子节点。常用公式1. 第n层的节点数最多为2A(n-1)个。2.层数为n的二叉树,总节点数最多为25-1个。3.叶子节 点数=度为2的节点数+14.二叉树节点总数 =度为2的节点数+度为1的节点数+叶子节点数 第六课二叉树的遍历遍历规则 先序遍历:父节点、左子树、右子树中序遍历:左子树、父节点、右子树后序遍历:左子树、右子 树、父节点其中左右子树按此规则继续拆分, 拆分过程中也按其对应规则遍历, 直到不能再拆分为 止。第七课查找算法顺序查找其算法复杂度为0(n),长度为n的线性表,最多需要n次才能找到指定

36、元素。顺序查找最大 / 最小值长度为 n 的线性表,所有元素随机排列,最多需要 n-1 次才能找到最大 / 最小值.二分查找其算法复杂度为 0(logn) ,长度为 n 的线性表,最多需要 logn 次就能找到指定元素。二分查找使用条件1 .使用顺序存储结构(如数组)。 2.所有元素按序排列。第八课排序算法按原理分类 交换类:冒泡排序、快速排序选择类:简单选择排序、堆排序插入类:简单插入排序、希尔排序 按稳定性分类稳定:冒泡排序、简单插入排序不稳定(快选希堆):快速排序、简单选择排序、希尔排序、 堆排序按算法复杂度0(nA2) :冒泡排序、简单选择排序、简单插入排序 0(nlogn) :快速排

37、序、堆排序、希尔排序在一 般情况下,快速排序是已知常用算法中效率最高的。在最坏情况下,快速排序的算法复杂度是0(nA)2。第二章软件工程第一课软件工程的算法基本概念软件主要包括: 程序、数据、文档。软件按用途可分为系统软件、 支撑软件、 应用软件。 系统软件: 电脑操作系统、手机操作系统、数据库管理系统( DBM)S 应用软件:大众应用软件、数据库应用软 件软件危机 钱不够:成本不断增高、成本无法控制、成本无法满足需求增长、预算管理失控时间不够:生产效 率越来越低、进度无法控制、 生产率的提高赶不上硬件和需求的发展质量不够: 质量难以保证、 软 件不可维护、软件可维护程度极低软件工程三要素 方

38、法:为软件开发提供了“如何做”的技术。工具:为软件工程方法提供了自动的或半自动的软件 支撑环境。 过程:将软件工程的方法和工具综合起来以达到合理、 及时地进行计算机软件开发的目 的。它支持软件开发的各个环节的控制和管理。第二课需求分析基本概念可行性研究主要考虑: 经济、技术、 法律。需求分析阶段最重要的文档: 软件需求规格说明书 。 软件需求规格说明书的任务是统一认识,所以必须追求准确,消灭歧义。数据流图( DFD)箭头:数据流圆形、椭圆形:数据的加工方框:系统和环境的接口半开口的方框、双杠:数据的存 储文件数据字典1. 是数据流图的重要补充 2. 应该包含数据流图中提到的所有数据第三课软件设

39、计概要设计耦合性: 模块之间的关联程度内聚性: 模块内部的关联程度设计原则: 高内聚低耦合软件系统结构 图:深度、宽度、扇入、扇出。详细设计【程序流程图】箭头:控制流矩形:执行步骤菱形:逻辑条件【N-S图】【PAD图】第四课结构化程序设计基本原则 自顶向下、逐步求精、模块化使用 3种基本控制结构,限制 goto 语句的使用3 种控制结构顺序结构、选择结构、循环结构 第五课面向对象程序设计基本概念 对象是类的实例。类由两个部分组成:属性、方法。由同一个类定义的对象,拥有相同的属性和方 法类的特征封装型、继承性、多态性 第六课测试与调试 基本概念 测试:发现错误调试:诊断并改正错误注意:没有一种方

40、法可以保证软件没有错误 黑盒和白盒【黑盒】根据软件的外部功能设计测试用例例如:等价类划分、边界值分析、错误推测法【白盒】 根据软件的内部逻辑设计测试用例例如:基本路径覆盖测试、逻辑条件覆盖测试测试流程单元测试:对单一模块进行测试集成测试:对模块间的协作进行测试确认测试:对 软件需求规格 说明书的需求进行逐一确认系统测试: 对安全、 性能等系统指标进行测试回归测试: 对调试后的 代码重新进行测试 第三章数据库系统第一课数据库系统的概念基本概念数据(Data):信息的载体。包括类型和值两个属性。数据库(DB :依照某种数据模型将数据组 织并存放起来的集合。数据库管理系统(DBMS :系统软件,是数

41、据库系统的核心,为数据库提供 底层服务。数据库管理系统(DBAS :基于数据库管理系统设计的应用软件,面向普通用户使用。 数据库管理员(DBA :负责数据库设计、维护、性能、安全等工作的高科技人才。数据库系统(DBS : 包括以上所有概念,再加上其他相关软硬件环境的总和。数据语言 数据定义语言:表的建立、修改和删除数据操纵语言:表中数据的增加、删除、修改和查询数据控 制语言:负责表中的安全性和完整性的设置发展阶段人工管理阶段 -文件管理阶段 -数据库管理阶段数据库管理阶段主要解决的问题:数据共享。独立性 逻辑独立性:逻辑结构修改时,应用程序不需要修改。物理独立性:物理结构修改时,应用程序不需要

42、修改 三级模式 概念模式(逻辑模式):数据库逻辑结构的全局描述外模式(子模式):用户能看到的数据库逻辑 结构和描述内模式(物理模式):数据库的物理存储结构和存取方法 第二课 E-R 模型基本概念E(Entity) :实体 R(RelationShip) :联系一对一:学生和学号、中国公民和身份证、考生和准考 证号一对多:班长和班级、宿舍和学生多对多:学生和课程、老师和课程 图示 实体 :矩形联系:菱形属性:椭圆形 第三课关系模型基本概念 层次模型:用“树”的方式组织数据网状模型:用“图”的方式组织数据关系模型:用“二维表” 的方式组织数据【关系模型】属性、元组【关系数据库】字段、记录元组的分量

43、是关系模型中的最 小不可再分单位数据完整性 候选键(候选关键字):可以标识记录唯一性的几个字段。主键(主关键字):可以标识记录唯一 性的一个字段。一个表只能有一个主关键字。外键(外部关键字):如果当前表中某字段是其他表 的主键,则称此字段为外键。实体完整性:主键和候选键不能为空。参照完整性:对一对多关系中 父表和子表之间关系的制约。自定义完整性:其他设置。 如域完整性, 就是对字段取值范围进行设 置。第四课关系代数(上) 基本概念 【交】计算前提:两个关系的属性完全相同属性规则:属性保持不变。元组规则:对两个关系中的 元组求交集。 【并】计算前提:两个关系的属性完全相同属性规则:属性保持不变。

44、元组规则:对 两个关系中的元组求并集。【差】R-S=T计算前提:两个关系的属性完全相同属性规则:属性保持 不变。元组规则:表示取R中存在且S中不存在的元组形成结果To【笛卡儿积】RxS=T#算前提: 对属性无要求属性规则: 对两个关系的属性求并集。 元组规则: 对两个关系的元组做全排列。 【除】 R/S=T计算前提:S的属性应是R的子集属性规则:取R中存在的属性而S中不存在的属性作为结 果T的属性,即对属性做差运算。元组规则:在 R中选择与各属性值完全相等的元组,将其对 T 中的属性做投影。第五课关系代数(下)基本概念【选择】规则:按照指定规则,对元组进行筛选,属性不变。【投影】规则:按照指定

45、规则,对属 性进行筛选,元组不变。【连接】前提:两个关系中有一个公共属性规则:先做笛卡儿积,然后根据连接条件对结果做选择。连接条件根据公共属性设计。【自然连接】 一个公共属性规则: 1. 做笛卡儿积, 2. 将公共属性值相等的记录留下,RxS=M提:两个关系中有3. 将两个公共属性合并为一个第六课数据库的设计生命周期【需求分析】数据流图、数据字典、需求规格说明书【概念设计】设计E-R模型【逻辑设计】将E-R模型转换为数据模型(主要是关系模型)【物理设计】将关系模型转换为关系数据库SELECT语句上使用SELECTS句的一些要点:1.SELECT语句的一般格式:SELECT 字段名表 FROM

46、表名 WHEREv查询条件SELECTS句的本质是:先选择,再投影其中,WHEREv查询条件是根据条件,对表中的记录进行选择SELECT 字段名表是对筛选后的结果进行投影2. 两种基本的关系运算选择:属性 (字段)不变,筛选元组 (记录)。改变行数 投影:元组不变,筛选属性。改变列数3. 返回表中的全部记录:SELECT * FROM 表名 BROWSE4. 设计WHER条件:AND是并集,OR是交集,UNION是求并集5.SQL两个字符相等的情况:a. =:两字符串长度相等,字符一致b. =:判断标准以右边字符串结束为准6. LIKE: 字符串模糊查询, %做通配符7. WHER短 语:a.

47、 判断查询条件是否为真WHERE查询条件=.WHERE查询条件WHERENOT 查询条件b. 空值WHERE 字段名 IS NULLNULL应该和IS搭配使用SELECTS 句下SELECTS句使用要点:1. 为字段指定别名SELECT 字段名表 别名 FROM 表名 WHEREv查询条件 注意:别名不能用于查询条件2. 对查询结果消除重复: DISTINCT3. 按指定字段排序:ORDER BY 排序字段名表 ASC升序,默认值)|DESC(降序)4. 对记录进行截取:TOP和ORDER BY配合使用a. 对前N条排序记录进行截取格式:SELECT TOP N 字段名表 FROM 表名WHE

48、REv查询条件 ORDER BY 排序字段名表b. 对前N8条排序记录进行截取格式: SELECT TOP N PERCENTv字段名表 FROM 表名WHEREv查询条件 ORDER BY 排序字段名表5. 去向a. INTO TABLE|DBF存入永久表,VFP将新建一个表文件b. INTO CURSOR存入临时表,关闭VFP即删除c. TO FILE:存入文本文件连接 连接运算包含以下四种:1. 自然连接:主要针对字表扩展格式1: SELECT v字段名表 FROM v表名 WHEREv查询条件其中,v表名 多张表,指定v连接条件格式2: SELECT v字段名表 FROM v表1 IN

49、NER JOIN v表2 ON v连接条件2. 左连接格式: SELECT 字段名表 FROM 表13. 右连接格式: SELECT 字段名表 FROM 表14. 全连接格式: SELECT 字段名表 FROM 表1LEFT JOIN <表 2> ON <连接条件 >RIGHT JOIN <表 2> ON <连接条件 >FULL JOIN <表 2> ON <连接条件 >计算与分组1. 五种计算函数COUNT(:) 计数SUM():求和AVG():求平均数MAX():求最大值MIN() :求最小值2. 分组格式:SELEC

50、T 字段名表 FROM 表名 WHEREv查询条件 GROUP BY 分组字段名表 HAVING 分组条件 3. 分组查询执行顺序a. WHER:E 通过查询条件进行筛选b. GROUP BY将选择后的结果进行分组c. HAVING将分组后的结果再进行筛选(条件中一般包含计算函数)嵌套 使用嵌套的一些要点:1. 嵌套使用的关键字a. IN :至少一个b. NOT I N :双重否定c. EXISTS:验证内存子查询是否存在2. 直接比较:子查询结果只有一个值3. 量词:子查询结果不止一个值a. ANY|SOME 子查询任意一个记录满足条件即可b. ALL :子查询所有记录都满足条件才行查询和视

51、图【查询】1. qpr文件:是一种专门存储 SQL SELECT勺文件2. 命令:对于查询的操作命令a. CREATE QUERY打开"新建查询"对话框b. DO 查询文件路径 :查询文件路径中必须包含扩展名.qpr3. 选项卡:一个选项卡对于一个 SQL短语a. 字段: SELECTb. 连接: JOIN ONc. 筛选: WHEREd. 排序依据: ORDER BYe. 分组依据: GROUP BY.HAVING.【视图】1. 视图:不存储数据,但可以和基本表一样操作2. 命令:所以命令必须都先打开数据库a. 新建视图CREATE VIEWCREATE VIEW 视图名

52、 AS vSELEC语句 b. 使用视图USE 视图名BROWSESELECT.FROM 视图名 .UPDATE 视图名 SET .c. 删除视图DROP VIEW 视图名 【查询VS视图】相同点:1. 都可以使用设计器生成2. 本身都不存储数据不同点:1. 查询存储在 .qpr 文件中,视图无文件2. 查询可独立存在,视图依附于数据库3. 查询只能显示数据,视图可以修改4. 视图可像基本表一样使用SELECTS 句上使用SELECTS句的一些要点:1.SELECT语句的一般格式:SELECT 字段名表 FROM 表名 WHEREv查询条件SELECTS句的本质是:先选择,再投影其中,WHER

53、Ev查询条件是根据条件,对表中的记录进行选择 SELECT 字段名表是对筛选后的结果进行投影2. 两种基本的关系运算选择:属性 (字段)不变,筛选元组 (记录)。改变行数 投影:元组不变,筛选属性。改变列数3. 返回表中的全部记录:SELECT * FROM 表名 BROWSE4. 设计WHER条件:AND是并集,OR是交集,UNION是求并集 5.SQL两个字符相等的情况:a. =:两字符串长度相等,字符一致b. =:判断标准以右边字符串结束为准6. LIKE: 字符串模糊查询, %做通配符7. WHER短 语:a. 判断查询条件是否为真WHERE查询条件=.T.WHERE查询条件WHERE

54、NOT 查询条件b. 空值WHERE 字段名 IS NULLNULL应该和IS搭配使用SELECTS 句下SELECT语句使用要点:1. 为字段指定别名SELECT 字段名表 别名 FROM 表名 WHEREv查询条件注意:别名不能用于查询条件2. 对查询结果消除重复: DISTINCT3. 按指定字段排序:ORDER BY 排序字段名表 ASC升序,默认值)|DESC(降序)4. 对记录进行截取:TOP和ORDER BY配合使用a. 对前N条排序记录进行截取格式:SELECT TOP N 字段名表 FROM 表名WHERE查询条件 ORDER BY 排序字段名表b. 对前N8条排序记录进行截

55、取格式: SELECT TOP N PERCENT字段名表 FROM 表名 WHERE查询条件 ORDER BY 排序字段名表5. 去向a. INTO TABLE|DBF存入永久表,VFP将新建一个表文件b. INTO CURSOR存入临时表,关闭VFP即删除c. TO FILE:存入文本文件 连接 连接运算包含以下四种:1. 自然连接:主要针对字表扩展格式1: SELECT 字段名表 FROM 表名 WHERE查询条件 其中,表名 多张表,指定 连接条件格式2: SELECT 字段名表 FROM 表1 INNER JOIN 表2 ON 连接条件2. 左连接格式:SELECT 字段名表 FROM 表1 LEFT JOIN 表2 ON 连接条件3. 右连接格式:SELECT 字段名表 FROM 表1 RIGHT JOIN 表2 ON 连接条件4. 全连接格式:SELECT 字段名表 FROM 表1 FULL JOIN 表2 ON 连接条件 计算与分组1 .五种计算函数COUNT()计数SUM()求和AVG():求平均数MAX():求最大值 MIN():求最小值2. 分

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论