50
Visual FoxPro 程程程程程 2012 级 VFP 级级级级级级 级级级 级级级级级级级级级 级级级 级级[email protected]

Visual FoxPro 程序设计之

Embed Size (px)

DESCRIPTION

命. 令. 与. 数. 据. 表. Visual FoxPro 程序设计之. 2012 级 VFP 程序设计教程 第二讲. 计算机与数学教研室:靳瑞霞 邮箱: [email protected]. 字 组词 造句 写作文. 有效地进行 VFP 的学习:一步一个脚印. 数据类型、常量和变量 表达式和函数 VF 命令 写程序. 学习步骤:. VF 的常量与变量. 常量( 35 ). 1. 1 )数值型常量 : 如: 20 , 16 , 100 , 1 2 )字符型常量 : 用单引号或双引号括起的 字符串,如: "ABCD" - PowerPoint PPT Presentation

Citation preview

Page 1: Visual FoxPro 程序设计之

Visual FoxPro程序设计之

2012级 VFP程序设计教程 第二讲

命 令与数 据

计算机与数学教研室:靳瑞霞邮箱: [email protected]

Page 2: Visual FoxPro 程序设计之

第 2 页

第 2 页

• 字• 组词• 造句• 写作文

数据类型、常量和变量 表达式和函数 VF 命令 写程序

学习步骤:

有效地进行 VFP的学习:一步一个脚印

Page 3: Visual FoxPro 程序设计之

第 3 页

第 3 页VF 的常量与变量VF 的常量与变量

1常量( 35)

1 )数值型常量 : 如:20, 16, 100, 1

2 )字符型常量 : 用单引号或双引号括起的字符串,如: "ABCD"   

3 )逻辑型常量,只有两种: .T.和 .F.4 )日期型常量和日期时间型常量 :

如 {^1999-04-22},{^1999-04-24 10:00am}

5 )货币型常量: $1234

Page 4: Visual FoxPro 程序设计之

第 4 页

第 4 页

变量( 38)

内存变量——存放单个数据的内存单元 数组变量——存放多个数据的内存单元组 字段变量——存放在二维表中的数据项 系统变量—— VFP提供了一批系统内存变量,它们都以下划线开头,分别用于控制外部设备 ( 如打印机、鼠标器等 ) ,屏幕输出格式等方面的信息。

VF 的常量与变量VF 的常量与变量

1

Page 5: Visual FoxPro 程序设计之

第 5 页

第 5 页

变量( 38)

• 以字母、数字及下划线组成,中文 VFP可以 使用汉字作变量名。• 以字母或下划线开始,中文 VFP可以汉字开

始。• 长度为 1-128个字符,每个汉字占 2 个字符。• 不能使用 VFP的保留字。

VF 的常量与变量VF 的常量与变量

变量命名规则1

Page 6: Visual FoxPro 程序设计之

第 6 页

第 6 页

变量

内存变量 内存变量是一般意义下的简单变量。每一个内存变量都必须有一个固定的名称,以标识该内存单元的存储位置。用户可以通过变量标识符使用内存单元存取数据。

内存变量的类型有数值型、浮点型、字符型、逻辑型、日期型和日期时间型 6 种,它的定义是通过赋值语句来进行的。

VF 的常量与变量VF 的常量与变量

1

Page 7: Visual FoxPro 程序设计之

第 7 页

第 7 页

1变量

1 、 < 内存变量 >=< 表达式 >

2 、 STORE < 表达式 > TO < 内存变量表 >

功能:计算表达式,然后将计算结果赋给内存变量。格式1 只能给一个内存变量赋值,而格式 2 可以将同一数据赋给多个内存变量。

说明: ①内存变量在赋值时定义了它的值及类型,其类型与所赋

的值的类型相同。 ②STORE命令的 < 内存变量表 > 可包括多个内存变量,但

须用逗号来分隔。

VF 的常量与变量VF 的常量与变量

内存变量赋值语句

Page 8: Visual FoxPro 程序设计之

第 8 页

第 8 页VF 的常量与变量VF 的常量与变量

1

s=" 计算机 " && 字符串计算机赋给变量 s , s 成为字符型

变量 STORE 2*4 TO x,y,z && 计算 2*4 得 8 , x 、 y 、 z 值都为 8 ,均

是数值型变量

&&: 注释语句

变量

Page 9: Visual FoxPro 程序设计之

第 9 页

第 9 页VF 的常量与变量VF 的常量与变量

1变量

内存变量赋值后有两种输出方式:

1 、 list memory 内存变量名

2 、?或??输出(?进行换行输出,??不换行输出)

*** 切记不可边赋值边输出,即? A=2*3×

Page 10: Visual FoxPro 程序设计之

第 10 页

第 10 页

VF 的函数VF 的函数

2函数( 42)

函数一般格式:函数名( [ 参数表 ] ) 1. 数值函数• 求绝对值函数: ABS(< 数值型表达式 >)例: ?abs(-16) 结果 :16• 求平方根函数: SQRT(< 数值型表达式 >)例: ?sqrt(16) 结果 :4• 取整函数 :INT(< 数值型表达式 >) CEILING (< 数值型表达式 >) FLOOR (< 数值型表达式 >)例: ?int(56.72) 结果 :56

Page 11: Visual FoxPro 程序设计之

第 11 页

第 11 页

VF 的函数VF 的函数

2函数

• 求余数函数MOD(< 数值型表达式 1>,< 数值型表达式 2>) 注意:如果被除数与除数同号,函数值为两数相除的余数,如果被除数与除数异号,函数值为两数的余数再加上除数的值。所得余数的符号和表达式 2 相同。例: ?mod(25,7) 结果 :4 ?mod(25,—7) 结果 :—3• 四舍五入函数ROUND(< 数值型表达式 1>,< 数值型表达式 2>)• 求最大值和最小值函数MAX(< 表达式 1>,< 表达式 2>,…, < 表达式 n>)MIN(< 表达式 1>,< 表达式 2>,…, < 表达式 n>)

Page 12: Visual FoxPro 程序设计之

第 12 页

第 12 页

VF 的函数VF 的函数

2函数

2 、字符函数:计算字符串长度函数计算字符串长度函数 LEN()LEN()计算字符串长度函数计算字符串长度函数 LEN()LEN()格式: LEN(< 字符表达式 >)

示例: ?LEN(“ABCDF”) X=“ 首都经贸大学” ?LEN(X)

生成空格函数生成空格函数 SPACE()SPACE()生成空格函数生成空格函数 SPACE()SPACE()格式: SPACE(< 数值表达式 >)

示例: ?“ 北京” +SPACE(3)+“ 首都”

Page 13: Visual FoxPro 程序设计之

第 13 页

第 13 页

VF 的函数VF 的函数

2函数

取子字符串函数取子字符串函数SUBSTRSUBSTR ()、()、 LEFTLEFT ()、()、 RIGHTRIGHT()()

取子字符串函数取子字符串函数SUBSTRSUBSTR ()、()、 LEFTLEFT ()、()、 RIGHTRIGHT()()格式: SUBSTR(< 字符表达式 > , < 数值表

达式 1>[, < 数值表达式 2>])

示例: ?SUBSTR(“ 城市经济” ,5,4)

LEFT(< 字符表达式 > , < 数值表达式 >

RIGHT(< 字符表达式 > , < 数值表达式>

Page 14: Visual FoxPro 程序设计之

第 14 页

第 14 页

VF 的函数VF 的函数

2函数

转换函数转换函数(( 4848 ))STRSTR ()、()、 valval ()()、、 CTODCTOD ()、()、 DTOCDTOC()()

转换函数转换函数(( 4848 ))STRSTR ()、()、 valval ()()、、 CTODCTOD ()、()、 DTOCDTOC()()格式: STR(<数值型表达式 1>[ , < 数值型

表达式 2>[,<数值型表达式 3>]] 功能:将数值型表达式 1 的值转换成字符串, < 数值型表达式 2> 决定转换后字符串的长度, < 数值型表达式 3> 决定保留的小数位数 。

Page 15: Visual FoxPro 程序设计之

第 15 页

第 15 页

VF 的表达式VF 的表达式

3表达式( 50)

算术表达式• 算术运算符 括号 ( ) 乘方 ** 或 ^ 乘 * 除 / 求余 % 加 + 减 -

?2*(3+6)

?65/43

?2^16

?100%13

a=3

b=6

c=2

X1=(-b+(b^2-4*a*c)^(1/2))/(2*a)

Page 16: Visual FoxPro 程序设计之

第 16 页

第 16 页

VF 的表达式VF 的表达式

3表达式

字符表达式 连接运算符: + 和 - 例: x=‘ 中国 ’ y=‘ 新乡’ ?x+y 结果:中国 新乡 ?x-y 结果:中国新乡• 包含运算符: $ (结果是逻辑值) 例: ?’old’ $ ’hold’ 结果: .T.

Page 17: Visual FoxPro 程序设计之

第 17 页

第 17 页

VF 的表达式VF 的表达式

3表达式

日期和时间表达式• 运算符: + 和 - 例: {^2010-05-01}-{^2010-04-08} {^2010-05-01}-DATE( )DATE( ) 函数:取系统当前日期 (P46)

Page 18: Visual FoxPro 程序设计之

第 18 页

第 18 页

VF 的表达式VF 的表达式

3表达式

关系表达式 (p51)• 关系运算符:

= 、 < 、 <= 、 > 、 >= 、 <> 或 !=• 结果是逻辑值• 字符的比较规则:

– Machine– PinYin– Stroke

例: ?12<23/5+6 结果: .F. ?” 张三” <“ 李四” 结果: .F. ?’HE’>’he’ 结果: .T.

Page 19: Visual FoxPro 程序设计之

第 19 页

第 19 页

VF 的表达式VF 的表达式

3表达式

逻辑表达式• 逻辑运算符: 非 NOT .NOT. ! 与 AND .AND. 或 OR .OR.例: !12>8 结果: .F. 12>8 AND 6<3 结果: .F. 12>8 OR 6<3 结果: .T.

Page 20: Visual FoxPro 程序设计之

第 20 页

第 20 页

VF 表的基本操作VF 表的基本操作

表的建立( 57)4

二维表的两个组成部分:表结构、表记录,建立表的关键在于表结构的设计。

CREATE 命令或文件 / 新建菜单方式可打开表设计器,表的扩展名默认为 .DBF ,表建好后放置在默认目录中

CREATE 命令或文件 / 新建菜单方式可打开表设计器,表的扩展名默认为 .DBF ,表建好后放置在默认目录中

Page 21: Visual FoxPro 程序设计之

第 21 页

第 21 页

VF 表的基本操作VF 表的基本操作

表的建立4

• 设计表结构的关键要素 :• 1 、字段名(字段变量):由汉字、字母、数字或

下划线组成,以汉字、字母或下划线开头,自由表的字段名最多为 10 个字符,数据库表的字段名最多为 128 个字符。

• 2 、字段类型:• 3 、字段宽度:• 4 、小数位数:• 5 、是否允许• 为空值 NULL

Page 22: Visual FoxPro 程序设计之

第 22 页

第 22 页

VF 表的基本操作VF 表的基本操作

表的建立4

表结构的修改命令 :P63 Modify structure 表结构的显示: P62List/Display Structure [to printer[prompt] ︱to file< 文件名 >]表结构的复制: P69Copy structure to < 文件名 > [fields< 字段名表 >]

Page 23: Visual FoxPro 程序设计之

第 23 页

第 23 页

VF 表的基本操作VF 表的基本操作

记录指针与定位(66)

4

VF 系统给表中每个记录提供一个记录号并自动设置一个指针,表打开时记录指针指向第一个记录

VF 系统给表中每个记录提供一个记录号并自动设置一个指针,表打开时记录指针指向第一个记录

Page 24: Visual FoxPro 程序设计之

第 24 页

第 24 页

VF 表的基本操作VF 表的基本操作

记录指针与定位4

绝对定位与相对定位• 相对定位: go < 数值型表达式 > go top go bottom•在当前记录指针位置的基础上,将记录指针向前或向后移动 N 条( N 为正数向后移动, N 为负数向前移动)。 格式 : SKIP N

Page 25: Visual FoxPro 程序设计之

第 25 页

第 25 页

VF 表的基本操作VF 表的基本操作

记录指针与定位4

表头、表尾定位记录开始标志第一条记录第二条记录

第 n 条记录记录结尾标志

GO TOPGO TOP

GO BOTTOMGO BOTTOM

BOFBegin of file

EOFEnd of file

Page 26: Visual FoxPro 程序设计之

例 : USE STUDENT GO 4

SKIP -2 SKIP 3

Page 27: Visual FoxPro 程序设计之

VF 表的基本操作VF 表的基本操作

记录指针与定位4

表结构 记录号 函数值记录开始标志 1 BOF( )=.T.

第一条记录 1 BOF( )=.F.

第二条记录 2 RECNO( )=2

… …

第十条记录 10 RECNO( )=10

记录结尾标志 11 EOF( )=.T.

表中记录定位的相关函数

Page 28: Visual FoxPro 程序设计之

第 28 页

第 28 页

VF 表的基本操作VF 表的基本操作

4LIST/DISPLAY命令 (62)

List /Display [Fields < 字段名表 >] [< 范围 >] [FOR < 条件 >][While< 条件 >] [To Printer[Prompt]][To File< 文件名 >] [OFF]

1 、 [Fields < 字段名表 >]

举例: List/disp fiel 学号 , 姓名 , 籍贯

2 、 [< 范围 >] [FOR < 条件 >][While< 条件>]

举例: List for mod(recno(),2)=1

3 、 [To Printer[Prompt]]

4 、 [To File< 文件名 >]

5 、 [OFF]

1 、 [Fields < 字段名表 >]

举例: List/disp fiel 学号 , 姓名 , 籍贯

2 、 [< 范围 >] [FOR < 条件 >][While< 条件>]

举例: List for mod(recno(),2)=1

3 、 [To Printer[Prompt]]

4 、 [To File< 文件名 >]

5 、 [OFF]

说明:

说明:

Page 29: Visual FoxPro 程序设计之

第 29 页

第 29 页

VF 表的基本操作VF 表的基本操作

4LIST/DISPLAY命

ALL 所有记录,缺省范围子句时通常默认为 ALL

NEXT <N>

从当前记录起的 N 个记录

RECORD <N>

第 N 个记录

REST 从当前记录起到最后一个记录止的所有记录

范围子句

Page 30: Visual FoxPro 程序设计之

第 30 页

第 30 页

VF 表的基本操作VF 表的基本操作

4LIST/DISPLAY命

令FOR 子句

• FOR 子句的 < 条件 > 为逻辑表达式,它指定选择记录的条件。 FOR 子句默认的搜索范围为全部记录。若命令中还含有范围子句,则在指定范围中筛选出符合条件的记录。举例 :

LIST FOR ! 少数民族否 .AND. 性别 =“ 男”

LIST 姓名,性别, year(date())-year( 出生日期 ), 简历 for “ 湖” $ 籍贯

Page 31: Visual FoxPro 程序设计之

第 31 页

第 31 页

VF 表的基本操作VF 表的基本操作

4LIST/DISPLAY命

令WHILE 子句

该子句也用于指明操作条件,但它仅在当前记录符合 < 条件 > 时开始依次筛选记录,一旦遇到不满足条件的记录时就停止操作。

LIST WHILE 性别 =“ 男”

Page 32: Visual FoxPro 程序设计之

第 32 页

第 32 页

VF 表的基本操作VF 表的基本操作

4LIST/DISPLAY命

令注意:注意:• LIST / DISPLAY 命令兼有查询的功能• 另有定位查询命令: LOCATE[ 范围 ]FOR< 条件 > ︳

WHILE< 条件 > (必须与 DISPLAY 命令结合使用)Use studentLocate for ! 少数民族否 and 性别 =“ 男”Disp 姓名 , 入学成绩 , year(dae())-year( 出生日期 )Continuedisp

Page 33: Visual FoxPro 程序设计之

第 33 页

第 33 页

VF 表的基本操作VF 表的基本操作

4 表的修改

•1 )窗口浏览式修改命令 (p64) •BROWSE [FIELDS< 字段名表 >][for< 条件 >]• 功能:浏览或编辑表文件中数据,在该窗口可以进行修改数据、添加数据、删除数据等操作。 FIELDS< 字段名表 > 可以指定字段进行显示或 修改数据。•举例:brow fiel 学号 , 姓名 , 入学成绩 for 性别 =“ 女”

Page 34: Visual FoxPro 程序设计之

第 34 页

第 34 页

VF 表的基本操作VF 表的基本操作

4表的修改

2 )数据的批量修改命令(p66)REPLACE < 字段名 1> WITH < 表达式 1>

[ADDITIVE][ , < 字段名 2> WITH < 表达式 2> [ADDITIVE] … ] [ 范围 ] [ FOR ︱ while< 条件 > ]

功能:用表达式的值自动替换指定字段值 注意( 1 )范围或条件缺省,只替换当前记录 ( 2 ) [ADDITIVE] 选项,表达式值添加到备注字段中已有数据的尾部,否则表达式值将覆盖字段的原有数据。

Page 35: Visual FoxPro 程序设计之

第 35 页

第 35 页

VF 表的基本操作VF 表的基本操作

4

举例: p66( 例题 4.3)举例: p66( 例题 4.3)

• USE STUDENT• REPLACE 入学成绩 WITH 入学成绩 +20 ;• for 少数民族否• List• Go 6• REPLACE 出生日期 with {^1983-09-07}• Disp

表的修改

Page 36: Visual FoxPro 程序设计之

第 36 页

第 36 页

VF 表的基本操作VF 表的基本操作

4表的删除

表数据的删除及恢复• 删除机制:• 逻辑删除:加删除标记(放入回收站)• 物理删除:将加删除标记的记录从表中真

正清除(清空回收站)• 恢复:去删除标记(还原)

Page 37: Visual FoxPro 程序设计之

第 37 页

第 37 页

(四) VF 的表(四) VF 的表

4表的删除

逻辑删除 格式: DELETE [ 范围 ] [ FOR ︱ While< 条

件 > ] 说明:若无范围或条件,只删除当前记录恢复被逻辑删除的命令 格式: RECALL [ 范围 ] [ FOR ︱ while < 条

件 > ]物理删除 格式: PACK &&彻底删除被逻辑删除的记录

数据表清空 ZAP &&彻底删除所有记录(除表结构)

Page 38: Visual FoxPro 程序设计之

第 38 页

第 38 页

VF 表的基本操作VF 表的基本操作

4 饭卡信息管理命令实例• 查询余额: LIST 余额 FOR 卡号 =“20060612”• 消费: REPLACE 余额 WITH 余额 -3.2• 加钱: REPLACE 余额 WITH 余额 +50• 开卡: APPEND BLANK REPLACE 卡号 WITH “20060612” ,姓名 WITH “ 赵军” ,余额 WITH 100• 销户: DELETE FOR 卡号 =“20060612” PACK

Page 39: Visual FoxPro 程序设计之

第 39 页

第 39 页

VF 表的基本操作VF 表的基本操作

4表的复制

• 命令格式 :P69• Copy to< 文件名 >[fields]< 字段名表 >[< 范围 >]• [for< 条件 >][while< 条件 >][[type]sdf ︱ delimited

︱ xls][with< 定界符 > ︱ blank]• 举例 :• Use student• Copy to newb1 for 入学成绩 >600• Use newb1• List

Page 40: Visual FoxPro 程序设计之

第 40 页

第 40 页

VF 表的基本操作VF 表的基本操作

4

排序是根据不同的字段对当前表的记录做出不同的排列,产生一个新表。

• Sort to < 文件名 > on < 字段 1>[/a ︱ /d][/c] [,< 字段 2>[/a ︱ /d][/c] …][fields< 字段名表 >] [< 范围 >][for< 条件 >][while< 条件 >] 举例: Use student Sort on 入学成绩 /d to cjb Use cjb List next 5

表的排序 (p73)

Page 41: Visual FoxPro 程序设计之

第 41 页

第 41 页

VF 表的基本操作VF 表的基本操作

4

索引并不是重新排列表记录的物理顺序,而是另外形成一个索引关键表达式与记录号之间的对照表(索引文件)。

索引并不是重新排列表记录的物理顺序,而是另外形成一个索引关键表达式与记录号之间的对照表(索引文件)。

表的索引 (p74)

Page 42: Visual FoxPro 程序设计之

第 42 页

第 42 页

VF 表的基本操作VF 表的基本操作

4

• 索引文件的种类:• 1 )单索引文件:只能保存一个索引,单

索引文件的扩展名为: .idx• 2 )复合索引文件:可以存储多个索引,

是一个压缩的索引文件,其扩展名为: .cdx

*** 有一类特殊的复合索引文件叫做结构复合索引文件,此类索引文件的文件名与相应的表文件名相同,扩展名为 .cdx ,无论何时打开表,该类索引文件由系统同时打开。所以对表的记录进行修改时,结构复合索引文件会进行自动更新!

表的索引

Page 43: Visual FoxPro 程序设计之

第 43 页

第 43 页

VF 表的基本操作VF 表的基本操作

4

索引的类型:• 1 )主索引:不允许在指定字段或表达式中出现重复

值的索引,只有数据库表才能建立主索引而且每一个表只能建立一个主索引。

• 2 )候选索引:也是不允许在指定字段或表达式中出现重复值的索引,数据库表和自由表都可以建立候选索引,并且一个表可以建立多个候选索引。

• 3 )惟一索引:系统只在索引文件中保留第一次出现的索引关键字值,数据库表和自由表都可以建立惟一索引。

• 4 )普通索引:允许索引关键字值重复出现,适合用来进行表中记录的排序和查询,数据库表和自由表都可以建立普通索引。

表的索引

Page 44: Visual FoxPro 程序设计之

第 44 页

第 44 页

VF 表的基本操作VF 表的基本操作

4

Index on < 索引表达式 >To < 单索引文件名 > ︱ tag< 索引标志名 >[of< 复合索引文件

名 >][for< 条件 >][compact][ascending ︱ descending][unique]

[additive]• ( 1 )索引表达式的操作数应具有相同的数据类型。• ( 2 )选择竖线左侧的 to < 单索引文件名 > 则产生单索引

文 件,否则产生复合索引文件。• ( 3 )建立复合索引时,系统默认或选用 ascending ,按索

引表达式的升序建立索引,选用 descending按降序建立索引,单索引文件只能按升序索引。

• ( 4 )选用 unique ,对于索引表达式相同的记录,只选第一个记录

表的索引

Page 45: Visual FoxPro 程序设计之

第 45 页

第 45 页

VF 表的基本操作VF 表的基本操作

4

• 例题 1 :就学生表,显示入学成绩最高的 5 名学生的记录• Use student• Index on – 入学成绩 to sy• List next 5

• 例题 2:• 1 )按学号的升序排序,不允许有编号相同的记录• 2 )先按性别排序,性别相同再按入学成绩降序排序• Use student• Index on 学号 tag sy1 unique• List• Index on 性别 +str(1000- 入学成绩 ) tag sy2• List

表的索引

Page 46: Visual FoxPro 程序设计之

第 46 页

第 46 页

VF 表的基本操作VF 表的基本操作

4

• 1 、索引文件的打开:• Use< 表文件名 > index< 索引文件名表 >• Set index to [< 索引文件名表 >][additive]• 2 、主控索引• Set order to [< 索引文件顺序号 > ︱ < 单

索引文件名 >] ︱ [tag]< 索引标志名 > [of< 复合索引文件名 >]• 3 、关闭索引文件• Close index• Set index to

表的索引

Page 47: Visual FoxPro 程序设计之

第 47 页

第 47 页

VF 表的基本操作VF 表的基本操作

4

• 4 、删除索引• Delete file < 索引文件名 > 删除单索引文件• Delete tag all ︱ < 索引标志名表 > 删除复合索引文

件• 5 、更新索引: Reindex [compact]• 6 、索引定位查询: Seek< 表达式 >• 举例 : 就学生表查询 1983 年 9 月 7 日出生的学生的

记录Use studentIndex on 出生日期 tag sy4D={^1983-09-07}Seek DDisp

表的索引

Page 48: Visual FoxPro 程序设计之

第 48 页

第 48 页

VF 表的基本操作VF 表的基本操作

5

• 1 )每条命令必须以命令动词开头,以回车键结束,若一行不能写完,可以用“;”标注,在下一行继续输入该命令。一条VFP的最大长度为 8192个字符。

• 2 )命令动词与子句、子句与子句、子句内的各部分之间必须用空格隔开。

• 3 )命令动词与各子句中的保留字等都可简写为前 4 个字 符,而且不区分大小写。• 4 )命令格式中以“ |”分隔的两项表示两者之中选其一; 用中括号“ [ ]”括起来的部分表示可选项; 用尖括号“ < >”括起来的部分表示不能省略的内容。• 5 )命令行中所出现的标点符号必须是英文状态的

VFP 的命令格式

Page 49: Visual FoxPro 程序设计之

第 49 页

第 49 页实验作业

• 1.p55 页: 6• 2.p55 页: 7• 3.第四章重要例题

Page 50: Visual FoxPro 程序设计之

课件制作

《数据库系统概论》

《数据库系统简明教程》

《数据库技术与应用》

参考书目:

谢谢

我们见证:

计算机应用已进入菜鸟时代!