120 likes | 263 Views
教 案. ( FoxBASE+ ). 课 次: 59~60. 课 目: 数组和库文件的数据传送. 适用班级: WJ 0206~0208. 单 位: 随州市高级技工学校. 教 学 进 程. 新 课 导 入. 新 课. 练 习 巩 固. 小 结. 作 业 布 置. 新 课 导 入. 数组是各种计算机高级语言常用的一种数据结构。它功能强大,传递数据方便灵活。大家熟练掌握数组的应用,对提高我们开发的应用程序的功能将会起到重要作用。.
E N D
教 案 ( FoxBASE+) 课 次:59~60 课 目:数组和库文件的数据传送 适用班级:WJ 0206~0208 单 位:随州市高级技工学校
教 学 进 程 新 课 导 入 新 课 练 习 巩 固 小 结 作 业 布 置
新 课 导 入 数组是各种计算机高级语言常用的一种数据结构。它功能强大,传递数据方便灵活。大家熟练掌握数组的应用,对提高我们开发的应用程序的功能将会起到重要作用。 上次课,我们学习了数组的建立与赋值,那么,数组究竟如何应用呢?本课先学习数组与库文件的数据传送。 数组是一个新的概念,比较抽象。本课以幻灯片方式演示数组与库文件的数据传递过程,望大家注意观察,从中领会数组的工作原理和应用方法。
新 课 §7.2.2 数组和库文件的数据传送 一、新课讲解 二、应用举例 例题(1) 例题(2)
新 课 讲 解 二、传入命令 一、传出命令 操 作 要 点 命令格式: 命令格式: GATH FROM <数组名> [ FIEL <字段表> ] SCAT TO <数组名> [ FIEL <字段表> ] 传入命令和传出命令都只能对当前记录进行操作。因此,在传出和传入之前必须先将记录指针移到要操作的记录。如: 功 能: 功 能: 把库文件当前记录数据送入数组。 把数组中的数据依次送入库文件当前记录各个字段。 说 明: (1)将5号记录数据读入数组A(传出): 说 明: ①可用可选项 [ FIEL <字段表> ] 指定需传出的字段。当不指定时,则从第一个字段起依次将各字段值送入数组。 GO 5 ①可用可选项 [ FIEL <字段表> ]指定需传入数据的字段。当不指定时,则从第一个字段起依次将数组各元素数据传人。 SCAT TO A ②当数组元素比字段少时,FoxBASE+自动把数组扩充到与字段个数相同; (2)将数组A中的数据送入3号记录(传入): ②当元素比字段多时,多出的元素不传送数据;当元素比字段少时,多出的字段原有值不变。 GO 3 GATH FROMA ③当数组元素比字段多时,多出的数组元素值不变。 ③传人时注意:数组元素与对应字段数据类型必须一致。
例题一: 将 STUD.DBF三号记录移到一号记录之后 A(1) A(2) A(3) A(4) 分 析 A(5) .DIME A(4) 。MODI COMM YD A .F. .F. .F. .F. 022403 赵泉生 76.5 89.0 75.0 .F. .USE STUD 前面我们学习了利用数组对库文件记录进行传出、传人的基 本方法。我们可以按以下思路来拟订解题方案: SET TALK OFF .GO 3 操作步骤小结 DIME A(4) .SCAT TO A (1)首先,当然要建立数组、打开库文件; USE STUD .GO TOP (2)将待移动的3#记录存入数组; GO 3 .INSE BLAN ①将指针定位到待移动的记录; (3)将指针定位到1#记录; SCAT TO A 学号姓名英语数学FOX 022401张三85.0 82.5 92.5 022402李四 90.0 100.0 88.0 022403赵泉生 76.5 89.0 75.0 022404周武正96.0 90.0 85.0 …… .GATH FROM A (4)题意要求将3#记录放在1#记录之后,因此,不能将数组 中的数据直接送入1#记录,而应在其后插入一个空白记录,然后 将数据送入空白记录; ②将该记录数据读入数组,并做删除标记; DELE .GO 4 GO TOP ③将指针移到需要的位置,插入空白记录; 022403 022402李四 90.0 100.0 88.0 022403赵泉生76.5 89.0 75.0 022404周武正96.0 90.0 85.0 …… 赵泉生 76.5 89.0 75.0 向库文件中插入记录后,指针便移到刚插入的记录。即:新插入的记录就是当前记录。 。。 .DELE INSE BLAN ④将数组中的数据传入空白记录; .PACK (5)题意要求“移动”记录,而以上操作是“复制”了一条重复的 记录。因此,还需删除原被移动的记录。 GATH FROM A * ⑤删除原记录。 022404周武正96.0 90.0 85,0 …… PACK USE 现在,根据以上思路编程。为使大家较清楚地观察到每条命 令的执行情况,先以命令方式演示: SET TALK ON RETU
例题二: 交换 STUD.DBF第2和4号记录位置 分 析 方案一:使用一个数组 方案二:使用两个数组 数组 A 记录甲 数组 记录乙 数组 B
例题二:交换 STUD.DBF第2和4号记录位置 A(1) A(2) A(3) A(4)A(5) .DO JH SET TALK OFF A 022402 .F. .F. .F. .F. .F. 李四 90.0 100.0 88.0 DIME A(5) ,B(5) 操作步骤小结 B(1) B(2) B(3) B(4) B(5) USE STUD B GO 2 022404 .F. .F. .F. .F. .F. 周武正 96.0 90.0 85.0 ①2号记录 数组A SCAT TO A GO 4 ②4号记录 数组B SCAT TO B 学号姓名英语数学FOX 022401张三85.0 82.5 92.5 022402李四 90.0 100.0 88.0 022403赵泉生76.5 89.0 75.0 022404周武正96.0 90.0 85.0 …… ③ 4号记录 数组A GATH FROM A GO 2 022404 周武正 96.0 90.0 85.0 ④ 2号记录 数组B GATH FROM B USE 022402 李四 90.0 100.0 88.0 SET TALK ON RETU
练 习 巩 固 { *JH.PRG SET TALK OFF DIME A(5),B(5) USE STUD GO 2 SCAT TO A GO 4 SCAT TO B GATH FROM A GO 2 GATH FROM B USE SET TALK ON RETU ACCE ’请指定库文件名:‘TO S USE &S 一、语句练习 二、讨 论 { A 1、把库文件当前记录数据送入数组的命令是( )。 INPU ’请指定待交换的第一个记录号:‘TO N1 INPU ‘请指定待交换的第二个记录号:’TO N2 √ A、SCAT TO B、GATH FROM 2、把5号记录数据送入数组A的操作是( )。 C 课题: 修改上述程序,交换 STUD.DBF 中任意指定记录号的两记录位置。(注:记录号在程序运行时从键盘输入) GO N1 A、SCAT5 TO A B、GATH5 FROMA 前面程序中,我们使用的是常量。即:直接将指针移动到2号和4号记录。当然,如果要交换3、5号记录,只需将 GO 2、GO 4改为 GO 3、GO 5就行了。 那么,如果要交换任意两条指定记录号的记录,应如何修改程序? C、GO5 SCAT TO A √ D、GO5 GATH FROM A GO N2 如果想交换任意指定的库文件中的任意两条记录,又应对程序如何修改呢? 3、把数组A中的数据送入库文件3号记录的操作是( )。 D GO N1 A、SCAT3 TO A B、GATH3FROMA C、GO3 SCAT TO A D、GO3 GATH FROM A √ 请思考…… 请思考…… 请思考……
课 堂 小 结 本课学习了 数组和库文件的数据传送 。了解了在进行数据传递时库文件各字段与数组各元素之间的对应关系,并通过两个 实例,观看了数据的传递情况。 本课要点: ①传出、传入命令的基本格式; ②数据传送只能对“当前记录”进行。因此,与其它应用软件一样,操作前必须先“选定对象”(指针定位)。 . ③移动记录和交换记录的操作步骤。 ④数据传递是按“位置”进行的。如果修改元素值或用FIEL子句选择字段,应注意数据类型一致。 . 数组是一种应用十分广泛的数据结构。熟练掌握数组的应用, 对增强程序功能将起到重要作用。今天先学习这些内容,望大家 课后认真复习,切实弄懂。 .
习 题 一、填空题 将库文件当前记录数据读入数组的命令是________________; 将数组中的数据送入库文件当前记录的命令是________________。 下列习题请大家做在作业本上。请准备好,抓紧抄题! 二、命令题 请写出完成以下操作的命令序列: (1)将当前库文件2号记录的数据读入数组A; (2)将数组A的数据送入当前库文件5号记录; 三、编程题 试编一个程序,交换STUD.DBF中任意两个指定记录号的 记录位置。(注:记录号在程序执行过程中从键盘输入)。
结 束 今天的课程就学到这里。同学们,再见! 2013年12月12日