《Visual Foxpro》综合复习资料(2)

2019-08-17 14:09

SET TALK ON RETURN

2、有如下程序段,其功能是显示汉字“2008年北京申奥成功!”从屏幕的顶部移至底部,设屏幕共24行。请填空补充该程序。 CLEAR

CH=〝2008年北京申奥成功!〞 R=1

DO WHILE ____ R<=24________

@_____R _____ , 26 SAY CH T=INKEY(0.2)

______ R=R+1_________ ENDDO RETURN

3、表文件“xs.dbf”中记录如下 学号 姓名 性别 成绩 S101 张军 男 90 S102 林平 男 66 S103 任涛 男 50 S104 何晓红 女 76 S105 徐静 女 82 S106 刘维海 男 86 S107 李敏 女 92 S108 马华远 男 60 S109 李娜 女 76 S110 赵菲 女 78 阅读下列程序: CLEAR USE XS

INDEX ON –成绩 TO CJ1 GO TOP

DISP 姓名,成绩 N=0

LOCATE FOR 性别=女 AND 成绩>=80 DO WHILE .NOT. EOF() IF FOUND() N=N+1 CONTINUE ENDIF ENDDO ? N

CLOSE ALL RETURN

(1)程序第六行“DISP 姓名,成绩”执行结果显示是___D_____

(A) 张军 90 (B)赵菲 78 (C)任涛 50 (D)李敏 92

(2)程序运行完毕后,N的值为_____A _________

(A) 2 (B)3 (C)4 (D)5 (3)关于循环中的CONTINUE,说法正确的是______c___________ (A) 可以用SKIP语句代替,不影响程序执行结果 (B) 可以放到循环外,不影响程序执行结果 (C) 去掉CONTINUE,程序将进入死循环 (D) 去掉CONTINUE,不影响程序执行结果 4、数据库信息.DBC 中有数据库表职工.DBF,用SELECT 命令查询职工表中年龄不小于25岁、“职务”字段为“销售员”的职工的信息,结果按“部门号”字段值降序排列,请填空:

SELECT 部门号,职工号,姓名,职务,年龄; FROM 人事!职工

WHERE 年龄>=25 AND 职务=“销售员” ORDER BY 部门号 desc 5、有图书表TS.DBF,其内容如下

记录号 书名 出版单位 单价 1 VFP数据库 电子科大 20.00 2 计算机基础 四川大学 25.00 3 信号与系统 电子科大 28.00 4 计算机网络 电子科大 27.00 5 计算机原理 四川大学 21.00 6 现代汉语 四川师大 23.00 7 操作系统 西南交大 24.00 阅读下列程序:

UPDATE TS SET 单价=单价+8 WHERE 出版单位=’四川师大’

SELECT 出版单位,AVG(单价) AS 单价 FROM TS GROUP BY 出版单位;

INTO DBF ABC

SELECT * FROM ABC WHERE 单价<28 ORDER BY 单价 DESC; INTO DBF ABC1 USE ABC1 ? 出版单位

(1) 新表ABC的记录数有______C_____个

(A)7 (B) 5 (C)4 (D)3 (2) 最后显示的出版单位是___B_________ (A)电子科大 (B)四川大学 (C)西南交大 (D)四川师大 (4)新表ABC1的记录数有_____A________个

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

五、程序设计题

1、假设约定年龄不超过35岁的职工为青年职工;年龄在36岁至45岁的职工为中年职工;年龄超过45岁的职工为老年职工。从键盘输入任一职工姓名在STUD表中查找,显示其姓名、年龄以及所属的职工类型。

SET TALK OFF CLEAR USE STUD

ACCEPT '请输入所查的姓名: ' TO XM

LOCATE FOR 姓名=XM IF .NOT. FOUND()

?”查无此人” ELSE

NL=YEAR(DATE())-YEAR(出生日期) DO CASE

CASE NL<=35

?姓名,NL,”青年职工” CASE NL>35 .AND. NL<=45 ? 姓名,NL,”中年职工” OTHERWISE

? 姓名,NL,”老年职工”

ENDCASE

ENDIF USE

SET TALK ON RETURN

2、编程显示STUD表中所有男学员的姓名、工龄及工资。 SET TALK OFF USE STUD SCAN

IF 性别=”男”

? 姓名,YEAR(DATE())-YEAR(工作时间),工资 ENDIF ENDSCAN USE

SET TALK ON RETURN

3、从键盘输入N个数存入数组A中,找出其中的最大数。 SET TALK OFF CLEAR

INPUT “N=?” TO N DIMENSION A(N) FOR I=1 TO N

INPUT \输入一个数\ TO A(I) ENDFOR

MAX=A(1) &&给存放最大数的变量MAX赋初值 FOR I=2 TO N

IF A(I) >MAX MAX=A(I) ENDIF

ENDFOR

?”MAX=”,MAX SET TALK ON RETURN

4、打开STUD表,分别统计所有姓“张”学员的平均年龄和所有姓“王”学员的平均年龄。 SET TALK OFF CLEAR CNTZH=0 SUMZH=0 CNTWANG=0 SUMWANG=0

DO WHILE NOT EOF() IF 姓名=”张” CNTZH=CNTZH+1 SUMZH=SUMZH+(YEAR(DATE())-YEAR(出生日期)) ENDIF

IF 姓名=”张” CNTWANG=CNTWANG+1 SUMWANG=SUMWANG+(YEAR(DATE())-YEAR(出生日期)) ENDIF ENDDO

? “张姓学员的平均年龄为:”,SUMZH/CNTZH

? “王姓学员的平均年龄为:”,SUMWANG/CNTWANG SET TALK ON RETURN

5、有如下售书数据表BOOK.DBF,BOOK.DBF中的记录如下: 书号 单价 数量 总计 B0168 19.8 3 B6915 12.6 36 B9023 40.0 100 B4682 18.0 40 B6329 28.0 56 B8127 2.0 20

要逐条计算总计并填入“总计”字段之中,计算按照如下规则: 若数量小于等于10,总计等于“单价*数量” 若数量大于50,总计等于“单价*数量*(1-5/100)” 若数量在11与50之间,总计等于“单价*数量(1-10/100)” SET TALK OFF CLEAR

USE BOOK

DO WHILE NOT EOF() IF 数量<=10 REPLACE 总计 WITH 单价*数量 ENDIF

IF 数量>50 REPLACE 总计 WITH 单价*数量*(1-5/100) ENDIF

IF 数量>=11 AND 数量<=50 REPLACE 总计 WITH 单价*数量*(1-10/100) ENDIF SKIP ENDDO

SET TALK ON RETURN

6、从键盘输入任一自然数N,求小于等于N的自然数之和。 SET TALK OFF CLEAR

S=0 T=0

INPUT “N=?” TO N DO WHILE T

S=S+T ENDDO ?”S=”,S

SET TALK ON RETURN

7、根据表SCORE(学号,课程号,成绩)中的数据,统计选修课程号分别为“000002”、“000005”和“000008”课程的人数以及这些课程的平均分。

SET TALK OFF

STORE 0 TO S2,S5,S8 STORE 0 TO N2,N5,N8 USE SCORE SCAN

DO CASE

CASE 课程号=”000002” N2=N2+1 S2=S2+成绩

CASE 课程号=”000005”

N5=N5+1


《Visual Foxpro》综合复习资料(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:努力办好让人民满意的高等教育

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: