1. 在Visual FoxPro的表单上添加一个标签,其Name属性为:Label1,添加一个命令按钮,其Name属性为:Command1,Caption属性为:显示。
Command1的Click事件代码如下:
ThisForm.Label1.Caption="*"
For k=1 TO 2
ThisForm.Label1.Caption= ThisForm.Label1.Caption+Str(k,3)
EndFor
For n=1 TO 3
FOR i=1 TO n
ThisForm.Label1.Caption= ThisForm.Label1.Caption+Str(i*n,3)
EndFor
EndFor
运行上面的表单,单击命令按钮,则标签上显示的结果为(要求按格式写输出结果,空格用└┛表示):
2.设有数据库文件“学生管理.dbc”,该库中有“学生”表和“成绩”表,表结构如下:
“学生”表:学号(C,8),姓名(C,8),性别(C,2),平均分(N,5,1)
“成绩”表:学号(C,8),课程名(C,20),成绩(N,5,1)
设计应用程序界面如下:
设置控件属性如下:
文本框的Name属性为:Text1(Text1用于输出平均分最高的课程的课程名和平均分。)
命令按钮的Name属性为:Command1,Caption属性为:计算
编写Visual FoxPro程序实现下述功能:
(1)根据“成绩”表计算每个学生的“平均分”,并将结果存入“学生”表的“平均分”字段。
(2)根据上面的统计结果,生成一个新的自由表SC_AVG,该表的字段按顺序取自“学生”表的“学号”、“姓名”、“平均分”,并按“平均分”升序排列。
(3)根据“成绩”表计算每门课程的平均分,并在文本框中显示平均分最高课程的“课程名”和“平均分”(假设平均分最高的只有一门课程)。
程序如下,请将程序填写完整。(代码中行末的分号为逻辑行连接符)
Command1的Click事件
SET TALK OFF
SET SAFETY OFF
DIMENSION PJ(1,1)
OPEN DATABASE 学生管理
USE 学生
DO WHILE NOT EOF()
SELECT AVG(成绩) FROM 成绩 WHERE 学号=学生.学号 PJ
REPLACE 平均分 WITH PJ(1,1)
ENDDO
SELECT 学号,姓名,平均分 FROM 学生 ORDER BY 平均分 INTO TABLE SC_AVG
SELECT 课程名 AS 课程名,AVG(成绩) AS 平均分 FROM 成绩 GROUP BY 课程名;
INTO TABLE MYNEW
SELECT MAX(平均分) AS MAX_平均分 FROM MYNEW INTO TABLE MAX_AVGA
USE MAX_AVGA
MAX_A=MAX_平均分
SELECT 课程名 AS 课程名,平均分 AS 最高分 FROM MYNEW WHERE 平均分=MAX_A;
INTO TABLE MAX_AVGB
USE MAX_AVGB
=课程名+ STR(最高分,6)
CLOSE ALL
2012年河北高考试题
1.在Visual FoxPro的表单上添加一个标签,其Name属性为:Lba,Caption属性为:请输入字符串,添加一个文本框,其Name属性为:txt,添加一个标签,其Name属性为:Lbb,Caption属性为:空,添加一个命令按钮,其Name属性为:Command1,Caption属性为:确定。
Command1的Click事件代码如下:
mystr=ThisForm.txt.Value
mystr=Trim(mystr)
n=LEN(mystr)
DIME arr(n)
FOR i=1 TO n
arr(i)=SUBSTR(mystr,i,1)
ENDFOR
m=3
j=0
FOR i=n TO 1 STEP -1
IF arr(i)=[*]
j=j+1
ELSE
EXIT
ENDIF
ENDFOR
b=[ ]
c=[ ]
s=0
IF j>m
s=m
ELSE
s=j
ENDIF
FOR i=1 TO n-s
IF (arr(i)>=[0] and arr(i)<=[9])
b=b+arr(i)
ELSE
c=c+arr(i)
ENDIF
ENDFOR
mystr=c+b
ThisForm.lbb.Caption=mystr
Return
运行上面的表单,在文本框中输入:d12&%##ef34*****,单击“确定“按钮,在Lbb标签中显
示的是:
3.已有“学生信息管理.DBC”数据库,其中包含两个表:班级表和学生表,其中班级表的结构为:班号(C,8)、班名(C,20),学生表的结构为:学号(C,10)、班号(C,8)、姓名(C,6)、性别(C,2)、出生日期(D)、籍贯(C,10)、入学成绩(N,5,1),设计应用程序界面如下:
设置控件属性如下:
有一个选项按钮组,其Name属性为Optiongroup1,其中包含两个单选按钮,一个的Name属性为Option1、Caption属性为“学生信息查询”另一个的Name属性为Option2、Caption属性为“学生成绩查询”,两个复选框,一个的Name属性为Check1、Caption属性为“生成表”,另一个的Name属性为Check2、Caption属性为“排序”,两个命令按钮,名称分别为Command1和Command2、其对应的Caption属性分别为“确定”和“退出”,一个标签,其Name属性为Label1、Caption属性为“班号”,一个文本框,其Name属性为Text1。
编写Visual FoxPro程序实现下述功能:
在文本框中输入班号、如果选择“学生信息查询”,则查询学生的基本信息,包括学号、班名、姓名和籍贯,如果选择“学生成绩查询”,则查询学生的入学成绩信息,包括学号、班名、姓名和入学成绩,如果选择生成表,则将前面的查询输出到表中,如果不选,则在屏幕上输出,如果选择排序,则将查询结果按学号排序,否则不排序。
程序如下,请在空白位置填写正确的命令。(代码中行末的分号为逻辑行连接符)
Command1的Click事件
a=ThisForm.Optiongroup1.Option1.Value b=ThisForm.Optiongroup1.Option2.Value
c=ThisForm.Check1.Value
d=ThisForm.Check2.Value
(5)
OPEN DATABASE 学生信息管理
IF c=1 AND d=0
IF b=1
SELECT 学号,班名,姓名,入学成绩 FROM 班级表,学生表 WHERE;
班级表.班号=学生表.班号 AND 学生表.班号=e INTO TABLE stuscore.DBF
ELSE
SELECT 学号,班名,姓名,籍贯 FROM 班级表,学生表 WHERE;
班级表.班号=学生表.班号 AND 学生表.班号=e INTO TABLE stuxx.DBF
ENDIF
ENDIF
IF c=0 AND d=0
IF b=1
SELECT 学号,班名,姓名,入学成绩 FROM 班级表,学生表 WHERE;
班级表.班号=学生表.班号 AND 学生表.班号=e TO SCREEN
ELSE
SELECT 学号,班名,姓名,籍贯 FROM 班级表,学生表 WHERE;
班级表.班号=学生表.班号 AND 学生表.班号=e TO SCREEN
ENDIF
ENDIF
(6)
IF a=1
SELECT 学号,班名,姓名,籍贯 FROM 班级表,学生表 WHERE班级表.班号;
=学生表.班号 AND 学生表.班号=e ORDER BY 学号 DESC INTO TABLE stuxx.DBF
ELSE
SELECT 学号,班名,姓名,入学成绩 FROM 班级表,学生表 WHERE;
班级表.班号=学生表.班号 AND 学生表.班号=e ORDER BY 学号 DESC;
INTO TABLE stuscore.DBF
ENDIF
ENDIF
(7)
IF a=1
SELECT 学号,班名,姓名,籍贯 FROM 班级表,学生表 WHERE;
班级表.班号=学生表.班号 AND 学生表.班号=e ORDER BY 学号 DESC TO SCREEN
ELSE
SELECT 学号,班名,姓名,入学成绩 FROM 班级表,学生表 WHERE;
班级表.班号=学生表.班号 AND 学生表.班号=e ORDER BY 学号 DESC TO SCREEN
ENDIF
ENDIF
补充练习:
Visual FoxPro中,表单modi2.scx上有五个文本框(设其VALUE属性值均已设为数值型),一个命令按钮“计算”,该按钮的CLICK事件代码如下:
STORE 0 TO X,S1,S2,S3,S4
X=THISFORM.TEXT1.VALUE
DO WHILE X>0
IF INT(X/2)=X/2
S1=S1+1
ELSE
S2=S2+1
ENDIF
IF MOD(X,3)=0
S3=S3+1
ENDIF
X=X-1
ENDDO
THISFORM.TEXT2.VALUE=S1
THISFORM.TEXT3.VALUE=S2
THISFORM.TEXT4.VALUE=S3
THISFORM.TEXT5.VALUE=S1+S2+S3
运行上表单时,在TEXT1中输入10,单击”计算”按钮后,TEXT2、TEXT3、TEXT4、TEXT5中显示
结果依次为_________________________________________________________________。