浙江万里学院VFP学生自主学习报告

更新时间:2024-01-31 00:30:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《Visual FoxPro程序设计》课程

学生自主学习报告

( 学年 第二学期)

班 级: 学 号: 姓 名:

浙江万里学院基础学院计算机部

《Visual FoxPro程序设计》课程组

组 别 任课老师 组长 小组成员 Visual FoxPro程序设计

讨论一 VFP基础知识

一.讨论准备:学生分组讨论VFP数据类型、表达式、运算符、常用函数及表的基本操作命令等基础知识,由组长安排时间地点组织分组研究学习并完成基础知识练习题。

二.讨论目的:使学生熟练掌握VFP数据类型、表达式、常用函数等基础知识,为后续的算法设计打好坚实的语法知识。

三.讨论要求:各分组由学生小组长负责记录成员任务分工及学习讨论学习情况,并完成小组活动记录手册。各组成员在讨论学习基础上完成自主学习报告一。 四.讨论内容:

(1)VFP提供的数据类型有哪些?可用于字段变量、内存变量和常量的数据类型分别有哪些?

(2) VFP提供的运算符有哪些?运算符可分为几类?VFP表达式有几类,VFP表达式与数学表达式有何区别?

(3)VFP常用函数有哪些?对常用函数按其功能分类并举例说明函数使用格式及其功能。

(4)VFP有关表操作的常用命令有哪些?对常用命令分类并举例说明命令使用格式及作用。

五. VFP基础知识练习题

1) 数据库DB、数据库系统DBS、数据库管理系统DBMS三者之间的关系是:A A) DBS包括DB和DBMS B) DBMS包括DB和DBS C) DB包括DBS和DBMS

D) DBS就是DB,也就是DBMS

2) Visual FoxPro 6.0数据库系统是(C)型数据库系统。 A) 网络 B) 层次 C) 关系 D) 链状

3) 设A=“123”,B=“234”,表达式(C)的值为假(.F.)。 A) .NOT.(A==B) .OR.(B$“ABC”) B) .NOT.(A$“ABC”).AND.(A<>B) C) .NOT.(A<>B) D) .NOT.(A>=B)

4) 将逻辑假值赋给内存变量DY的正确方法是B A) DY=FALSE

B) STORE .F. TO DY C) DY=“.F.”

1

Visual FoxPro程序设计

D) STORE “F” TO DY

5) 假定Y=2,执行命令 ?Y=Y+2 后,其结果是C A) 3 B) 4 C) .F. D) .T.

6) 在下列Visual FoxPro表达式中,结果为日期型的正确表达式是B A) DATE()+TIME () B) DATE()+120

C) DATE()-CTOD("02/01/99") D) 288-DATE ()

7) 变量string=“1999年上半年全国计算机等级考试”,能够显示”1999年上半年计算

机等级考试”的命令是C A) ?string-”全国”

B) ?SUBSTR(string,1,8)+SUBSTR(string,11,17) C) ?SUBSTR(string,1,12)+SUBSTR(string,17,14) D) ?STR(string,1,12)+ STR(string,17,14)

8) 如果没有定义变量F,执行下列命令后,其结果为U的表达式是B A) ?TYPE(”.F.”) B) ?TYPE(”F”) C) ?TYPE(.F.) D) ?TYPE(F) 9) 命令序列

W1=“GOOD MORNING!”

W2=SUBSTR(STUFF(W1,6,0,”LUCKY”),1,10) ?W2

执行后,其结果为C A) GOOD MORNING

B) GOOD LUCKY MORNING C) GOOD LUCKY D) LUCKY MORNING

10) 安全可靠地退出Visual Foxpro系统地正确方法是A A) 在命令窗口中执行QUIT命令 B) 关掉计算机电源

C) 在命令窗口执行EXIT命令

D) 在”文件”菜单中执行”关闭”

11) 使用DIMENSION命令定义数组后,各数组元素在没有赋值之前数据类型是C A) 字符型 B) 数值型 C) 逻辑型 D) 未定义

12) 在下列Visual Foxpro表达式中,运算结果一定是逻辑值的是C A) 字符表达式 B) 数值表达式

2

Visual FoxPro程序设计

C) 关系表达式 D) 日期表达式

13) 在Visual Foxpro中,MIN(ROUND(8.89,1),9)的值是B A) 8 B) 8.9 C) 9 D) 8.89

14) 函数LEN(‘ABC’-‘ABC’)的值是B A) 0 B) 6 C) 7 D) 3

15) 若变量X=10,KK=“X=123”,则函数TYPE(“KK”)的值为C A) L B) N C) C D) 错误

16) 条件函数IIF((LEN(SPACE(1)-“1”)=2),1,-1)的值是A A) 1 B) 2 C) -1 D) 0

17) 顺序执行以下赋值命令X=“50”,Y=6*8,Z=LEFT(“Visual Foxpro”,3)之后,下列表

达式中,合法的表达式只有D A) X+Y B) Y+Z C) X-Z+Y D) &X+Y

18) 执行下列命令序列 ABC=“万里学院”

? SUBSTR(ABC,LEN(ABC)/2+1,4) 结果是B A) 万里 B) 学院 C) 里学

D) 变量未找到

19) 表达式ASC(“APPEND”)的值为C A) 128 B) 97 C) 65 D) “A”

20) 执行以下命令序列(设今天为2005年2月1日)B ?YEAR(DATE()-365) 的结果为

3

Visual FoxPro程序设计

A) 其中有语法错误 B) 2004 C) 2000

D) 2002-1-5

21) 下列4个表达式中,运算结果为数值型的是D A) ? ”9988”-”1255” B) ? 200+800=1000

C) ? {^2015/05/16}-20 D) ? LEN(SPACE(3))

22) 设变量X=12345.678,现欲求变量X的整数位数,应使用表达式 C A) LEN(INT(X))

B) LEN(STR(INT(X))) C) LEN(LTRIM(STR(X))) D) LEN(ALLTRIM(INT(X)))

23) 将字符型数据转换成日期型数据,使用的函数是C A) dtoc B) str C) ctod D) val

24) {^2005/01/05}+15是一个( C ) A) 日期常量 B) 数值常量 C) 日期表达式 D) 非法表达式

25) 以下选项中,( A )是合法的字符型常量 A) [123+E456] B) 123 C) 123.456 D) 123*10

26) 下面哪个不是给内存变量赋值的正确语句D A) x=3+5 B) x=“3+5” C) x=int(3+5)

D) x==val(“3+5”)

27) 与其它三个关系运算符不等价的是D A) <> B) # C) != D) ><

28) 建立一个表文件结构时,若该库文件中有备注型字段,则保存时会(D ) A) 只创建一个表文件,扩展名为. dbf

B) 在创建一个表文件同时还创建一个备注文件,扩展名为.CDX C) 在创建一个表文件同时还创建一个备注文件,扩展名为.txt

D) 在创建一个表文件同时还创建一个备注文件,扩展名为.fpt

4

Visual FoxPro程序设计

29) 要求数据表文件某数值型字段的整数是5位,小数是1位,该字段的宽度至少定义为

(B ) A) 8位 B) 7位 C) 6位 D) 5位

30) 一个表的全部备注字段的内容存储在(D )中 A) 同一数据表文件 B) 不同表备注文件 C) 同一文本文件 D) 同一表备注文件

31) 下述命令中的哪一条不能关闭表( A) A) CLEAR

B) CLOSE DATABASE C) USE

D) CLEAR ALL

32) 建立一个表文件结构,表中有编号字段(C型,6字节),出生年月字段(D型)和团

员否字段(L型),则表中总的字段宽度是(C) A) 18 B) 17 C) 16 D) 15

33) 下列命令中,修改表文件结构的命令是(B ) A) MODIFY FILE

B) MODIFY STRUCTURE C) MODIFY COMMAND D) CREATE STRUCTURE

34) 在Visual FoxPro 的表结构中,逻辑型,日期型和备注型字段的宽度分别为(A) A) 1,8,4 B) 1,8,10 C) 3,8,10 D) 3,8,任意

35) 要显示表中当前记录的内容,可使用命令( B) A) LIST B) DISPLAY C) BROWSE D) modify

36) 用APPEND 命令插入一条记录时,被插入的记录在表中的位置是( A) A) 表最后面 B) 表最前面 C) 当前记录之前 D) 当前记录之后

37) 不能对记录进行编辑修改的命令是( C) A) BROWSE

5

Visual FoxPro程序设计

B) CHANGE

C) MODIFY STRUCTURE D) EDIT

38) Visual FoxPro表文件由两部分组成,即(B ) A) .DBF文件和.FPT文件 B) 表结构和记录数据 C) .DBF文件和.BAK文件 D) PRG文件和.FXP文件

39) XS.DBF是一个具有一个备注字段和一个通用字段的表文件,使用COPY TO PXS 命令

进行复制操作,其结果为(B ) A) 得到一个新表文件

B) 得到一个新的表文件和一个新的表备注文件

C) 得到一个新的表文件和一个新的表备注文件,以及一个新的表通用文件 D) 得到一个新的表文件和两个新的表备注文件

40) 在Visual FoxPro系统中,”.DBF”文件被称为(B ) A) 数据库文件 B) 表文件 C) 程序文件 D) 项目文件

41) 如果要给当前表增加一个字段,应使用的命令是( B) A) APPEND

B) MODIFY STRUCTURE C) INSERT D) EDIT

42) 在表的备注字段中可以输入的内容有( D)

A)图像 B)波形声音 C)视频剪辑 D)文字 43) 当RECALL命令不带任何范围和条件时,表示(D )。 A)恢复所有带删除标记的记录

B)恢复从当前记录以后所有带删除标记的记录 C)恢复当前记录开始下一条带删除标记的记录

D)恢复当前记录

44) 在已打开表文件的第3条记录前插入一条记录,可使用( B)命令。 A)GO 3 B)GO 3 INSERT INSERT BEFORE C)GO 3 D)GO 4

INSERT BLANK INSERT BEFORE 45) 下列叙述正确的是( C)

A)只能打开一个数据库 B)备注字段的数据保存在表文件中

C)可以使用多个工作区打开多个表 C)一个工作区可以同时打开多个表

46) 已建立一个”学生”表Student.dbf,并输入5名学生的记录,用APPEND命令追加一

条新记录,这个新记录的记录号是(B ):

A) 5 B) 6 C) 7 D) 4

6

Visual FoxPro程序设计

47) 将逻辑真值赋给内存变量X的正确方法是(D)。

A)X=True

B)STORE “.T.” TO X

C)X=T D)STORE .T. TO X 48) 在下列函数中,函数值为数值的是( C )。

A) BOF() B) CTOD('01/01/96')

C) AT('人民','中华人民共和国') D) SUBSTR(DTOC(DATE()),7)

49) 在Visual FoxPro的表文件中,每条记录总长度比定义的所有字段宽度之和多一个字

节,该字节用于( D )。

A) 存放索引关键字 B) 存放记录号 C) 存放记录宽度 D) 存放删除标记 50) 在命令窗口中,已打开学生表,要将记录指针定位在第一个奖学金大于75元的记录上,

用命令( B )。

A) FIND FOR 奖学金>75 B) LOCATAE FOR奖学金>75 C) SEEK FOR 奖学金>75 D) LIST FOR 奖学金>75 51) 现有以下命令: T=23400 M=MOD(T,60) HH=INT(T/60) H=MOD(HH,24) D=INT(HH/24) ? D,H,M

执行上述命令后的结果为( C)。 A)0 6 16

B)6 16 0

C)16 6 0 D)6 0 16

52) 在Visual FoxPro中,Max(ROUND(9.26, 1),8)的值是(A )。 A)9.3 B)9 53) 命令序列 A=8 B=6

? IIF(A<>B,8,6)的值是( B)。

A)6 B)8 C).T. D)0

54) 在下列Visual FoxPro表达式中,结果为字符串的正确表达式是( A )。 A)“1234”-”43”

B)”ABCD”+“XYZ”=“ABCDXYZ”

C)DTOC(DATE())>“09/24/09” D)DATE()

55) Visual FoxPro中,打开表文件后,若要浏览表中的数据,可以执行(C)命令。 A)CREATE B)MODIFY C)BROWSE D)SKIP

56) 设当前已打开表文件X.DBF,执行命令COPY STRU TO Y的作用是( D)。 A)仅将当前一条记录拷贝到Y.DBF中 B)将X.DBF的全部记录拷贝到Y.DBF中

C)将X.DBF和Y.DBF的内容连接后再存入Y.DBF中 D)仅将表文件X.DBF的结构复制到新建立的Y.DBF文件中

7

C)1 D)8

Visual FoxPro程序设计

57) 表文件中有10条记录,当前记录号为3,执行命令LIST Next 4(回车)所显示的记

录的序号为( C)。 A)4~7 B)5~8 C)3~6 D)3~10

58) 设当前记录号是10,执行命令SKIP -6后,当前记录号变为(A)

A)4 B)5 C)6 D)3

59) 已建立一个学生表Student.dbf,并输入10名学生的记录,当前记录为5,用ZAP命

令删除记录,删除的记录是(C): A) 第5条记录 B)第5~10条记录 C)全部记录 D)没有记录删除 60) ? “化学” $ “北京语言文化学院”的运算结果是( A )。 A).T. B).F. C)9 D)5 61) 执行下面命令序列后,最后一条命令显示的结果为( A)。 USE 库存表 DISP DISP DISP NEXT 2 ? RECNO()

A)2 B)3 C)4 D)5

62) 表文件中有数学,英语,计算机和总分四个数值型字段,要将当前记录的三科成绩汇

总后存入总分字段中,应使用命令( B)。 A)TOTAL 数学+英语+计算机 TO 总分 B)REPLACE 总分 WITH 数学+英语+计算机 C)SUM 数学+英语+计算机 TO 总分

D)REPLACE ALL 数学+英语+计算机 WITH 总分

63) 在当前表中,查找第2个男同学的记录,应使用命令( C )。 A) locate for 性别=“男” next 2 B) locate for 性别=“男”

C)先执行locate for 性别=“男”,然后再执行 continue

D) list for 性别=“男” next 2

64) 设表TXL.DBF中有 20 条记录。在VFP命令窗口中执行以下命令序列,最后显示的结

果是( D)。 USE TXL SKIP 3 COUNT TO N ? N

A) 0 B) 3 C) 4 D) 20 65) 下面哪个命令可以同时给多个变量赋值( C )。

A.INPUT B. ACCEPT C. STORE D. WAIT

66) 表文件的表结构中有语文、物理、化学和总分字段,且都是数值型,要将所有学生的

各门成绩汇总后存入总分字段中,使用命令(C): A)REPLACE 总分WITH 语文+物理+化学

8

Visual FoxPro程序设计

B)REPLACE 总分WITH 语文,物理,化学 C)REPLACE ALL 总分WITH 语文+物理+化学

D)REPLACE ALL总分WITH 语文+物理+化学 FOR REST

67) 在下列四个选项中,不属于VFP逻辑运算符的是( D )。 A. .AND. B. ! C. .OR. D. .XOR. 关系中的属性对应于二维表中的( B)。

A. 记录 B. 字段 C. 行 D. 范围

68) 已知当前表有80个记录,当前记录为第10号记录。执行SKIP 3后当前记录为第(C)

号记录。 A. 7 B. 10 C. 13 D. 15 69) 表学生.DBF中共有20个记录,顺序执行下面命令(C): SET DELETED OFF USE 学生 DELETE COUNT TO AA PACK COUNT TO AA ZAP COUNT TO AA USE

3次COUNT 得到的AA结果分别为:

A)19,19,1 B)19,19,0 C)20,19,0 D)20,19,19 70) 当EOF()函数的值为真时,记录指针位于( B )。 A. 表文件的头 B. 表文件的尾 C. 最后一条记录 D. 第一条记录 71) 在VFP中,最多可以有( C )个工作区。

A. 10 B. 255 C. 32767 D. 任意 72) 若想从字符串'计算中心'中取出'算'字,应用函数( C )。 A. SUBSTR(“计算中心”,2,2) B. SUBSTR(“计算中心”,2,1) C. SUBSTR(“计算中心”,3,2) D. SUBSTR(“计算中心”,5,2) 73) 数据库系统中的核心是( B)。

A. 硬件系统 B. 数据库集合 C. 数据库管理系统 D. 数据库管理者和用户 74) 下述命令中,不能显示数据表记录的命令是( D )。

A. LIST B. DISP C. BROWSE D. MODI STRU

75) 某数值型字段的宽度为9位,小数位数为3位,则该字段的最大值是(C ) A)999999999 B)999 C)99999.999 76) 下列命令序列输出结果为(C)。 USE 工资表 GO BOTTOM

9

D)99999.99

Visual FoxPro程序设计

SKIP –1 ? EOF()

A).T. B)T C).F. D)F 77) 设N=“213.4”,? 21+&N的结果是(B ) A)21 B)234.4 78) 执行下列命令序列

C)213.4

D)数据类型不匹配

AB=“热烈庆祝建国60周年” ? SUBSTR(AB,LEN(AB)/3-1,4) 结果是( B)。

A)建国 B)庆祝 C)周年 D)60 79) 在Visual FoxPro中,要将一个数值型变量转换为字符型变量,应使用的函数为(D)。 A)INT() B)CTOD() C)VAL() D)STR() 80) 计算结果不是字符串”Teacher”的语句是( A)。 A)at(\,\

B)substr(\

C)left(\)right(\

10

Visual FoxPro程序设计

自 主 学 习 项 目 报 告(一)

项目名称 VFP基础知识 理论 基础练习 一、 讨论学习内容提纲 1、VFP提供的数据类型 2、VFP表达式和运算符 3、自由表与数据库表的区别 4、表操作常用命令 5、VFP常用函数

二、讨论学习中出现的问题或体会

三、讨论学习内容知识点归纳及举例说明(可粘贴附页) 要求:1、归纳VFP的运算符种类

2、简述自由表与数据库表的区别

3、归纳表的基本操作命令,描述命令基本格式,并举例说明命令功能

4、归纳VFP常用函数,描述函数基本格式,并举例说明函数功能 第一题

1.算数运算符(举例结果为.t.)

() 分组优先运算符 例子:(3+2)*2=10 **、^ 乘方运算符 例子:3^2=9

*、/ 乘除运算符 例子:2*3=6 9/3=3 % 求余运算符 例子:5%2=1`

+、- 加减或单目运算符 例子:2+3=5 8-4=4

运算符的优先级依次为括号、单目运算、乘幂、乘除、求余、加减。 2.字符运算符

+ 字符串连接符,功能:将运算符2边的字符串连接起来,形成一个新字符串。例

11

项目类别 自主学时(小时) 完成项目日期 教师评价 Visual FoxPro程序设计

子:”ab”+”cd”=”abcd”

- 串尾空格移位连接符,功能:将2个字符连接时,把第一个字符串的尾部空格(若存在)移到后面字符串的尾部。例子” abc ” -”de”=”abcde ” 3.关系运算符(举例结果为.t.) < 小于 例子:3<5 > 大于 例子:5>4

= 等于 例子:”asdf”=”asd”

== 相等比较 例子:”abcd”==”abcd” <= 小于等于 例子:4<=5 >= 大于等于 例子:7>=7 <>、#、!= 不等于 例子:2+3<>3+3 $ 包含运算 ”ab”$”abcde” 4.逻辑运算(按优先级顺序排列)

.NOT.或NOT或! 逻辑非 例子:.NOT..T.=.F.

.AND.或AND 逻辑与 例子:A=.T. B=.F.,A .AND. B=.F. .OR.或OR 逻辑或 例子:A=.T. B=.F.,A .OR. B=.T. 第二题

归属于某个数据库的表称为数据库表。独立存在、不与任何数据库相关联的表称为自由表。两种表可以相互转化的。 区别:

数据库表对于自由表来说具有更加强大的功能以及拥有自由表所没有的许多特性:长文件名、字段验证等。所以大多数应用需要建立数据库,并创建新表或添加自由表到数据库中,即成为数据库表。

1.数据库表可以使用长字段名(最多可达到128个字符),而自由表最多只能达到10个字符。 2.数据库表可以指定标题和添加注释,可以指定规则、提示信息、默认值和输入掩码。 而自由表没有以上设置。

3. 数据库表可以建立主索引。而自由表不能建立主索引。 第三题

(1)<范围>子句——用以确定显示的记录(即表中的行) RECORD n 显示第n条单条记录

NEXT n 显示当前记录开始的共n条连续记录 REST 显示当前记录开始到表文件尾的所有记录 ALL 显示所有记录(可省略)

(2) FIELDS<字段名表>——用以确定显示的字段(即表中的列) 若省略“FIELDS<字段名表>”子句,则表示对所有字段进行操作。 (3)

1.打开表文件

USE<文件名>——打开指定的表文件,记录指针指向第一条记录,表中若有备注字段,相关的备注文件自动打开(.FPT) 例:USE 学生成绩记录表 2.关闭表文件

USE——关闭当前工作区表文件

CLOSE TABELS——关闭所有打开的表文件 3.记录指针定位

12

Visual FoxPro程序设计

①绝对移动

GO/GOTO[RECORD]<记录号> GO/GOTO TOP 顶

GO/GOTO BOTTOM 底 ②相对移动

SKIP<±n>——正整数往文件尾,负整数往文件头 例;GOTO 3 SKIP 3 ?RECNO() 6

(4)显示、浏览表文件

显示命令格式:LIST[<范围>][FIELDS<字段名表>][FOR<条件>][WHILE<条件>] 例:LIST RECO 4——显示第4条记录

浏览命令格式:DISPLAY[<范围>][FIELDS<字段名表>][FOR<条件>][WHILE<条件>] 当省略 “[<范围>]”时,LIST命令显示所有记录;DISP命令则显示当前记录 (5)追加与修改记录 APPEND [BLANK]

例:向当前数据表尾部追加记录。 APPEND

(6)插入记录(默认在当前记录的后面插入记录) INSERT [BLANK][BEFORE]

例:在当前记录后插入一条空记录。 INSERT BLANK (7)记录删除

1.逻辑删除——给记录添加一个删除标记,可恢复 DELETE [<范围>][FOR 条件] 例:GO 7 DELE

结果:逻辑删除第7条记录

2.物理删除——从表中彻底删除,不可恢复 PACK (物理删除被逻辑删除的记录) ZAP (无条件删除)

例:删除“职工编号”空白的记录。 DELETE ALL FOR 职工编号=\PACK

(8)记录的寻位定位

LOCATE [<范围>] FOR [<表达式1>] 继续查找命令:CONTINUE

例子:在当前的表中查找姓“张”的记录。 LOCATE FOR 姓名=\张\(9)表文件复制

COPY TO <文件名> [<范围>][FIELDS <字段名表>] [FOR <条件>][WHILE<条件>]

例子:把当前表中“应发合计”大于1000元的记录复制到新数据表GZ2中。

13

Visual FoxPro程序设计

COPY TO A:GZ2 FOR 应发合计>1000 (10)从文件中追加记录

APPEND FROM <文件名> [FOR <条件>][FIELDS<字段名表>]

例子:把GZ1表中“应发合计”大于1000的记录复制到当前的表后面。 APPEND FROM GZ1 FOR 应发合计>1000 (11)记录修改

用REPLACE命令修改

REPLACE [<范围>] <字段名1> WITH <表达式>] [,<字段名2>WITH<表达式2>][…][FOR <条件>] 例子:计算各记录“应发合计”字段的值。

REPLACE ALL 应发合计 WITH 职务工资+岗位津贴+保留奖金+保留津贴 第四题

一、数值和数学函数 1.取整函数

INT(<数值表达式> )

【功能】该函数取指定数值表达式计算机结果的整数部分 例:?INT(22.4+10) 32

2.四舍五入函数

ROUND(<数值表达式1>,<数值表达式2>) 【功能】该函数根据要求保留小数位数。 例:? ROUND(123.456,0) 123

3. 求余数函数

MOD(<数值表达式1>,<数值表达式2>)

【功能】返回<数值表达式1>除以<数值表达式2>的余数。如<数值表达式2>为正,则函数值为正,否则为负。 例:?MOD(6*6,10) 6

4. 最大值,最小值函数

MAX/ MIN (<表达式1>,< 表达式2>[,< 表达式3>...]) 【功能】返回数值表达式中的最大值或最小值。 例:?MAX(1,2,3) 3

5. 绝对值函数

ABS(<数值表达式>)

【功能】返回<数值表达式>的绝对值。 例:?ABS(-21.4) 21.4 6.平方根函数

SQRT(<数值表达式>)

【功能】该函数返回<数值表达式>的算数平方根。 例:?SQRT(9)

14

Visual FoxPro程序设计

B=T ENDIF

________ && --3 T=A A=C C=T ENDIF

________ &&-- 4 T=B B=C C=T ENDIF

________ &&-- 5 SET TALK ON

第8题

要求:通过字符串变量的操作,使得竖向显示“伟大祖国”,横向显示“祖国伟大”。 注意:程序中的错误行位于“*******”行下,不能添加或删除程序行。

SET TALK OFF

STORE \伟大祖国\CLEAR N=1

DO WHILE N<8

? SUBSTR(XY,N,2) ***************** N=N+1 ENDDO

? SUBSTR(XY,5,4) ?? SUBSTR(XY,1,4) RETURN

第9题 要求:

1.从键盘输入一串字符(口令),自动判断输入的口令是否与系统的口令(“MANAGER”)完全一致;

2.是则显示相应的欢迎信息;否则有三次机会;

3.输入次数在三次以内,给予重输的提示;输入次数超过三次,则显示无权 使用系统的提示。

注意:仅在标记\之前填写所缺代码,不能添加或删除程序。

SET TALK OFF CLEAR C=\

25

Visual FoxPro程序设计

FOR I=1 TO ___________ && —1 ACCEPT C+\请输入口令:\ __________________ &&—2 ?\欢迎使用本系统!\

____________ && —3 ENDIF

C=\口令输入错误,再试一次!\

________ && —4 ________ &&—5 ? \对不起,你无权使用本系统\ENDIF

SET TALK ON

第10题

要求:求当1!+ 3!+ 5!+...+ n!的值不超过10的20次幂时的临界值及n的值。 注意:程序中的错误行位于“*******”行下,不能添加或删除程序行。

SET TALK OFF CLEAR

*****1***** S=0

STORE 1 TO T,N

DO WHILE S<=1E+20 T=T*(N+1)*(N+2) S=S+T *****2***** N=N+1 ENDDO ? \? \SET TALK ON

第11题

已知:在考生文件夹的Paper子文件夹中存在成绩.dbf(学号,课程号,成绩)。 要求:从键盘输入学生的学号,在“成绩”表中计算该生的平均成绩,并说明成绩的档次(优 、良、中、及格和不及格),如果该生不在表中则提示相应的信息。 注意:仅在标记\之前填写所缺代码,不能添加或删除程序。

SET TALK OFF CLEAR USE 成绩

ACCEPT\请输入学生的学号:\_____________________ &&__1 IF !FOUND()

26

Visual FoxPro程序设计

? \查无此人!\ELSE

_________________________________ &&__2 DO CASE

CASE CJ>=90 DC=\优\ CASE CJ>=80 DC=\良\ CASE CJ>=70 DC=\中\ CASE CJ>=60 DC=\及格\

__________________ &&__3

DC=\不及格\

_____________ &&__4

? XH,CJ,DC

_____________ &&__5 USE

SET TALK ON

第12题

要求:求x ^1+ x^2 + x^3 + x^4 +...+x^n的值。n,x从键盘输入。

注意:程序中的错误行位于“*******”行下,不能添加或删除程序行。

SET TALK OFF CLEAR

INPUT \INPUT \S=0

*****1***** T=0

FOR I=1 TO N T=T*X S=S+T ENDFOR

*****2***** ?\SET TALK ON

第13题 编程:已知圆的半径R,计算圆的面积。(注意:圆的半径不能为负数) 第14题 编程:从键盘输入一个数,说明它是奇数还是偶数。

第15题 编程:显示输出学生表中获得奖学金的学生姓名和奖学金。 第16题 编程:计算1+1/2+...+1/100

27

Visual FoxPro程序设计

自 主 学 习 项 目 报 告(二)

项目名称 结构化程序设计基础 编程练习 项目类别 自主学时(小时) 理论 完成项目日期 教师评价(得分

一、讨论学习主要内容提纲

1、结构化程序的三种基本控制结构和基本语句 2、程序算法描述流程图 3、函数与过程

4、函数参数传递方式及变量作用域

二、讨论中出现的问题与体会

三、讨论学习内容知识点归纳及编程练习(可粘贴附页) 归纳VFP结构化程序设计的基本语句,描述语句基本格式 一、If结构(二重选择) 格式:IF<条件表达式> <语句序列1> [ELSE

<语句序列2>] ENDIF

二重选择结构执行时,首先计算<条件表达式>的值,当有ELSE子句时,若其值为真,运行<语句序列1>后执行ENDIF后面的语句;若其值为假,则运行<语句序列2>后,执行ENDIF后面的语句。当无ELSE子句时(也可无<语句序列2>),若其值为真,运行<语句序列1>后执行ENDIF后面的语句;若其值为假,跳过<语句序列1>后,直接执行ENDIF后面的语句。

二、Case结构(多重选择) 格式:DO CASE

CASE<逻辑表达式1> <语句序列1> CASE<逻辑表达式2> <语句序列2> ···

28

Visual FoxPro程序设计

CASE<逻辑表达式n> <语句序列n> OTHERWISE

<语句序列n+1> ENDCASE

在多重选择结构中,系统依次计算<逻辑表达式1>(I=1,2,3,···,N)的逻辑值,当找到第一个<逻辑表达式1>为真(.T.)时,执行<语句序列1>,然后,结束多重选择结构并执行ENDCASE后语句。当所有的<逻辑表达式1>的值均为假(.F.)时,若有OTHERWISE语句,就执行<语句序列n+1>,然后执行ENDCASE后语句,若无OTHERWISE语句时,直接执行ENDCASE后语句。DO CASE语句可以多层嵌套。 三、For结构(计数型循环)

格式:FOR循环变量=循环初值 TO 循环终值[STEP步长] [语句序列] [LOOP] [EXIT]

ENDFOR/NEXT

FOR循坏适用于循坏次数已知的情况。FOR语句中的循坏变量称为循坏控制变量,也称为循坏计数器。STEP子句控制循坏每循坏一次计数器内容的增加值(即步长),无STEP子句时,步长为1.步长可以为正值、负值,一般不应是零(避免死循坏)。LOOP和EXIT的使用与前面两种循坏相同。

FOR循坏执行时,先将循坏初值赋给循坏控制变量;然后判断循坏控制变量的值是否超过终值,若循坏变量的超过终值,结束该循坏,执行ENDFOR后面的第一句语句;否则,执行循坏体内各语句。当遇到ENDFOR(或NEXT)语句后,循环控制变量的值将于步长相加,重新判断循坏控制变量的值是否超过终值,直至循环变量的值超过终值,结束该循坏(或通过EXIT语句退出)。 四、While结构(条件循坏)

结构:DO WHILE<条件表达式> [<语句序列>] [LOOP] [EXIT] ENDDO

在执行DO WHILE循环时,先检测<条件表达式>语句中的条件,若<条件表达式>的值为“假”,则不执行DO WHILE循坏,程序控制转到ENDDO之后的语句;若该条件的值为“真”,依次执行循坏体内各语句,执行到ENDDO语句后,将程序的控制转向循坏的开头重新判断<条件表达式>语句的条件,如果其值仍为“真”,重新执行循环体,如果该条件的值为“假”,程序控制转向ENDDO之后的语句,结束DO WHILE循环。

29

Visual FoxPro程序设计

四、程序设计与调试(可粘贴附页)

设计题1:从键盘输入一串字符(口令),自动判断输入的口令是

否与系统的口令(自设)一致,是则显示相应的欢迎信息;否则有3次机会。输入次数在3次以内,给予重输的提示;输入次数超过3次,则显示无权使用系统的提示。

程序源代码:(可粘贴附页) Set talk off clear

string=”ABCDEF” x=1

do while .t.

accept “input pass word:” to str if str=string ?”welcome” exit else x=x+1 endif

?”try again”,x loop endif enddo set talk on

程序运行结果:

input pass word: ABCDEF

welcome

程序调试小结

30

Visual FoxPro程序设计

设计题2:编写一程序,从键盘输入一个中文星期,输出其对应

的英文星期,如输入“星期一”,输出“Monday”。

程序源代码:(可粘贴附页) Set talk off clear

accept “请输入中文星期:” to zwxq do case

case zwxq=”星期一” ?”Monday”

case zwxq=”星期二” ?”Tuesday”

case zwxq=”星期三” ?”Wednesday”

case zwxq=”星期四” ?”Thursday”

case zwxq=”星期五” ?”Friday”

case zwxq=”星期六” ?”Saturday”

case zwxq=”星期日” ?”Sunday” otherwise ?”数据错误” Endcase Set talk on

程序运行结果:

请输入中文星期: 星期四

Thursday

程序调试小结

31

Visual FoxPro程序设计

设计题3:从键盘任意输入两个整数,求出最大公约数和最小公

倍数。

程序源代码:(可粘贴附页) Set talk off clear

input “n” to n input “m” to m x=max(n,m) for i=x to n*m

if mod(I,m)=0 and mod(I,n)=0 y 1=1 exit endif endfor

?”y 1”=”+alltrim(str(y 1,19))+”,y 2=”+alltrim” (str (m*n/y1,19)) Set talk on

程序运行结果: N6 M9

3 18

程序调试小结

32

Visual FoxPro程序设计

设计题4: 求1-----k之间奇数的和,k从键盘输入,用do while

循环实现。

程序源代码:(可粘贴附页) Set talk off clear s=0

input “请输入一个数:” to k do while n<=k s=s+n n=n+2 enddo

?”奇数之和:”,s Set talk on

程序运行结果: 请输入一个数:5 9

程序调试小结

33

Visual FoxPro程序设计

讨论三 面向对象程序设计

1.讨论准备:根据讨论的目的和讨论内容的要求,设计面向对象程序设计题库并在讨论课前

发给学生进行小组研究学习,各小组由学生小组长负责记录成员分工,编程讨论学习情况等。

2.讨论目的:使学生熟练掌握常用控件功能及其用法,了解面向对象程序设计方法,通过各类表单设计学生掌握操作界面的布局和美观设计技巧,训练学生界面美观与功能实用结合的设计能力,理解数据库应用程序设计思路。 3.讨论内容:

(1)什么是面向对象程序设计?它与结构化程序设计的区别与联系? (2)类与对象的关系。VFP中关于类的划分。 (3)对象的属性、方法与事件的理解 (4)各类表单的设计,理解事件驱动执行方式 4.讨论表单设计题

面向对象程序设计题主要以表单设计题练习面向程序的设计方法,要求在讨论掌握类与对象、常用控件的属性设置、方法调用、事件触发等面向对象基本概念的基础上完成各类表单的设计。共有15道题,各小组协作完成练习并完成个人自主学习报告和小组活动记录报告。 要求:

(1) 个人自主学习报告中记录针对每个表单设计使用的控件及其相关属性的设置,并编写相

关对象的事件代码。记录表单运行调试情况。

(2) 小组活动记录报告由各小组组长记录任务分工及讨论情况。并对成员参加讨论情况评

分。 第1题

要求:

1.编制一个选项按钮组调色板;

2.当用户按了某个按钮后,选项按钮组的背景色就会变。

注意:以默认方式命名控件,以从左至右,从上向下的顺序拖放控件。

34

Visual FoxPro程序设计

第2题 要求:

1.编制一个文字水平动态移动操纵的表单;

2.文字信息(纵向)初始的显示位置在表单的左边,表单执行后,每间隔20毫秒,文字会自动以间隔加1的幅度逐步向表单右边移动,直到文字到达表单最右边缘;3.然后每间隔20毫秒文字会自动以间隔减1的幅度逐步向表单左边移动,直到文字回复到初始位置; 4.整个过程不间断地来回移动。

注意:以默认方式命名控件,以从左至右,从上向下的顺序拖放控件。

第3题 要求:

编制一个日历时钟表单,表单中的日历是当前日期、当前星期,时钟会动态跳动(每1秒跳一次)。

注意:以默认方式命名控件,以从左至右,从上向下的顺序拖放控件。

第4题 要求:

1.在表单中的三个文本框中分别输入3个数,判别是否能形成三角形,如果是三角形,求出此三角形的面积。2.判断是否是三角形,可利用:a+b>c, 且c>0 a+c>b, 且b>0 b+c>a, 且a>0判断。

注意:以默认方式命名控件,以从左至右,从上向下的顺序拖放控件。

35

Visual FoxPro程序设计

第5题 要求:

1.编制一个表单完成表文件“学生.dbf”内容的只读浏览显示功能; 2.表单初始显示内容为表文件“学生.dbf”的首记录;

3.当按“前翻”“后翻”“首记录”“末记录”按钮时,表单将自动显示相应记录的内容; 4.当翻至表头或表底时,将自动设置相应按钮不可访问。

注意:以默认方式命名控件,以从左至右,从上向下的顺序拖放控件。

第6题 要求:

1.编制“学生”表信息查询界面;

2.查询与用户指定的学生姓名相匹配的记录,并显示指定学生的所有信息。 注意:以默认方式命名控件,以从左至右,从上向下的顺序拖放控件。

第7题 要求:

1.编制一个抽奖表单,抽奖的号码为“学生.DBF”表文件的学号字段;

36

Visual FoxPro程序设计

2.当按“开始”按钮,表单的显示控件以0.1秒的间隔动态滚动显示学号字段值;

3.当按“抽号”按钮,表单的显示控件定格显示抽中的学号字段值;4.抽取的号码不允许重复。 注意:以默认方式命名控件,以从左至右,从上向下的顺序拖放控件。

第8题

1、 编制一个按学号查询学生信息的表单。命令按钮“确定”、“重查”和“继续”名称分别

为COMMAND1、COMMAND2和COMMAND3。“请输入学号”标签控件名为 label1。除了TEXT1,所有文本框控件都与字段绑定。具体要求: 1)图2为运行初始界面,等待用户输入学号;

2)当输入某学号后,按“确定” 按钮,系统将查找相应记录。如果找到,则显示对应记录信息,否则,显示“查无此人”,具体界面如图3、图4所示。 3)当按“重查”按钮时,焦点回到TEXT1,与图2运行初始界面相同。 4)当按“退出” 按钮时,退出表单。 图1 表单中控件的布局界面 图2 表单运行初始界面 图3 学号输入为正确时界面 图4 学号输入错误时界面

37

Visual FoxPro程序设计

自 主 学 习 项 目 报 告(三)

项目名称 面向对象程序设计基础 表单设计训练

一、讨论学习主要内容提纲 1、Visual FoxPro类与对象 2、对象的属性、方法与事件 3、Visual FoxPro的容器类与控件类

4、Visual FoxPro常用控件的属性、方法、事件

二、讨论学习中出现的问题与体会

三、讨论学习内容知识点归纳及举例说明(可粘贴附页) 归纳Visual FoxPro常用控件的属性、方法、事件

项目类别 自主学时(小时) 完成项目日期 教师评价(得分 理论 38

Visual FoxPro程序设计

39

Visual FoxPro程序设计

四、表单设计与调试(可粘贴附页)

设计题1:

表单设计涉及的控件对象及其属性、方法、事件:

事件代码:

(描述示例:Command1的Click事件代码)

40

Visual FoxPro程序设计

设计题2:

表单设计涉及的控件对象及其属性、方法、事件:

事件代码:

(描述示例:Command1的Click事件代码)

41

Visual FoxPro程序设计

设计题3:

表单设计涉及的控件对象及其属性、方法、事件:

事件代码:

(描述示例:Command1的Click事件代码)

42

Visual FoxPro程序设计

设计题4:

表单设计涉及的控件对象及其属性、方法、事件:

事件代码:

(描述示例:Command1的Click事件代码)

43

Visual FoxPro程序设计

44

Visual FoxPro程序设计

小 组 研 讨 记 录

第____次研讨 研讨时间________ _ 研讨地点_________

研讨项目名称 小组成员情况 序号 1 2 3 4 5 6 7 8 9 10 11 12 学号 姓名 签到 任务分工 评分 本次学习研讨活动小结: 组长(签名): 45

Visual FoxPro程序设计

本次学习研讨主要内容: 记录员(签名):

46

Visual FoxPro程序设计

小 组 研 讨 记 录

第____次研讨 研讨时间________ _ 研讨地点_________

研讨项目名称 小组成员情况 序号 1 2 3 4 5 6 7 8 9 10 11 12 学号 姓名 签到 任务分工 评分 本次学习研讨活动小结: 组长(签名): 47

Visual FoxPro程序设计

本次学习研讨主要内容: 记录员(签名):

48

Visual FoxPro程序设计

小 组 研 讨 记 录

第____次研讨 研讨时间________ _ 研讨地点_____________

研讨项目名称 小组成员情况 序号 1 2 3 4 5 6 7 8 9 10 11 12 学号 姓名 签到 任务分工 评分 本次学习研讨活动小结: 组长(签名): 49

本文来源:https://www.bwwdw.com/article/rkjw.html

Top