VF 习题Word文件下载.docx
《VF 习题Word文件下载.docx》由会员分享,可在线阅读,更多相关《VF 习题Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。
DELETEFROM数据库名!
表名WHERE条件表达式
(5)更新记录
UPDATE数据库名!
表名
SET字段名1=表达式1,字段名2=表达式2…
WHERE条件表达式
说明:
如果不使用WHERE子句,则更新全部记录
二、数据库基本操作题
在VF集成环境下,按照以下要求操作。
1、请在考生文件夹下建立一个数据库KS1。
2、在新建的数据库KS1中建立一个名称为order.dbf的数据库表,表结构如下:
客户号字符型(6)
订单号字符型(5)
订购日期日期型
总金额数值型(10,2)
3、在新建的表中添加如下记录内容:
客户号订单号订购日期总金额
c10001tr01c2001-10-14000.00
d00001tr01a2002-2-104450.00
4、为表order.db按“客户号”的降序建立结构复合索引,索引类型为主索引,索引标识为khh。
5、按客户号升序排序生成新的排序文件:
Sname.dbf。
6、复制一个新的表文件,只要客户号和订单号两个字段,名称为:
new.dbf。
三、SQL命令题
1、已有表文件stock(股票代码C(6),买入价N(10.2),现价N(10.2),持有数量N(10)),
按照如下要求写出SQL语句。
(1)查询股票代码为“000625”的股票的持有数量,并将查询结果按“持有数量”的降序输出到表文件sl.dbf中。
Sele持有数量fromstockwhere股票代码=”000625”orderby持有数量descintotablesl
(2)查询“买入价”最高的股票代码和持有数量。
Sele股票代码,持有数量fromstockwhere买入价>
=all(sele买入价fromstock)
说明:
>
=all表示大于或等于子查询结果中的最大值
(3)利用SQL命令插入记录("
600028"
4.36,4.60,5500)到stock.dbf表。
Insertintostockvalue("
4.36,4.60,5500)
(4)利用SQL命令将stock.dbf表中股票代码为"
600007"
的股票现价改为8.88;
并将所有股票的持有数量都加20
Updatestockset现价=8.88where股票代码="
(5)利用SQL命令将stock.dbf表中股票代码为"
600000"
的股票加上删除标记。
deletefromstockwhere股票代码="
2、已有表文件:
成绩.dbf(学号(C),姓名(C),班级(C),英语(N),数据库(N),数学(N))
按照以下要求写出SQL语句。
(1)查询“会计091”班英语最高分是多少?
selemax(英语)as英语最高分from成绩
(2)查询“会计091”班英语最高分的学生的学号、姓名和英语成绩;
sele学号,姓名,英语from成绩;
where英语>
=all(select英语fromstuwhere班级=”会计091”)
=all大于或等于子查询结果中的最大值
=ANY大于或等于子查询结果中的最小值
(3)查询每个班级三门课程的总分,输出信息为:
班级,英语总分,数据库总分,数学总分;
Select班级,sum(英语)as英语总分,sum(数据库)as数据库总分,sum(数学)as数学总分from成绩groupby班级
(4)在成绩表中查询数学良好(75~85分)的学生的学号、姓名、数学、数据库、英语信息,并将查询结果输出到数组aa中;
Select学号,姓名,数学,数据库,英语from成绩where数学between75and85intoarrayaa
等价命令:
Select学号,姓名,数学,数据库,英语from成绩where数学>
=75and数学<
=85intoarrayaa
(5)在成绩表中求出所有学生的英语、数据库、数学的平均成绩,显示结果为英语平均分、数据库平均分、数学平均分。
Selectavg(英语)as英语平均分,avg(数据库)as数据库平均分,avg(数学)as数学平均分from成绩
四、填空题
(1)用严格的日期格式,将日期型数据2008年7月1日赋值给变量A2的语句。
A={^2008/07/01}
(2)在VFP中要将系统默认磁盘设置为F:
\data盘,可执行命令是什么?
setdefaulttof:
\data
(3)顺序执行如下两条命令后,显示的结果是________。
s="
ABC"
s=s-"
DEF"
?
s
结果:
ABCDEF
(4)用命令方式,在D盘根目录下建立一个名为“学生信息管理”的数据库,写出命令。
Creatdatabased:
\学生信息管理
(5)写出打开数据库“学生信息管理.dbc”的设计器的命令。
Modifydatabase学生信息管理
(6)修改数据库中表结构的命令是________?
Modifystructure
(7)写出创建项目文件“学生信息管理.pjx”的命令。
Creatproject学生信息管理
(8)项目管理器的功能是什么?
参看教材32页
(9)在项目管理器的右侧有6个命令按钮,这6个命令按钮会随着所选文件类型的不同而动态改变,6个命令按钮分别是:
新建、添加、修改、运行、移去、连编
(10)已知学生基本情况表,下面的操作是对其增加6号和7号记录,请填空。
USE 学生基本情况表
____________go6
INSERTBEFORE
INSERT
(11)恢复所有做删除标记的记录的命令是:
__________recallall
(12)假设表文件student.dbf已经打开,将student.dbf的结构原样复制到表文件"
xsb3.dbf"
中的命令是________。
copystructuretoxsb3
(13)有自由表文件:
xs.dbf(xh(c7),xm(c8),xb(L),
csrq(D8),jxj(N7.2),bz(M4))
写出以独占方式打开表文件“xs.dbf”的命令:
usexsEXCLUSIVE
(14)有自由表文件:
写出连续显示表的全部记录的命令:
list
(15)有自由表文件:
写出:
显示1985年1月1日至2002年12月31日之间出生的学生记录:
listforcsrq>
={^1985/01/01}andcsrq<
={^2002/12/31}
(16)有自由表文件:
将记录指针从首记录向下移3条记录,显示当前记录号,并显示当前记录内容,请填空:
gotop
skip3
?
________recno()
display
(17)有自由表文件:
xs.dbf(xh(c7),xm(c8),xb(C2),
写出如下list或display或browse命令:
显示所有女生的姓名、出生日期、奖学金的记录。
Listfieldxm,csrq,jxjforxb=”女”
或Displayfieldxm,csrq,jxjforxb=”女”
或browsefieldxm,csrq,jxjforxb=”女”
(18)将记录指针从末记录向上移2条记录,显示记录号,并显示该记录内容,请填空。
usexs.dbf
gobottom
skip-2
recno()
_______display
(19)已知表:
stu.dbf(姓名(c6),性别(c2),班级(c5),籍贯(c6),数学(N3),英语(N3),物理(N3),平均成绩(N3),总分(N5))。
假设stu.dbf已经打开,下列两条命令是在表的第3条记录前增加一条新的空白记录的命令,请填空。
go3
insert____________beforeblank
(20)已知表:
stu.dbf(姓名(c6),性别(c2),班级(c5),籍贯(c6),数学(N3),英语(N3),物理(N3),平均成绩(N3),总分(N5));
下列命令序列是在"
stu.dbf"
表的第4条记录后增加一条新的空白记录的,再用Replace替换命令修改新添加的空白记录。
记录的内容为:
”刘小开”,”男”,”旅游1”,”广州”,95,88,86,请完善程序。
usestu
go4
insertblan
replace姓名with’刘小开’,性别with’男’,班级with’旅游1’,籍贯with’广州’,_________
数学with95,英语with88,物理with86
(21)已知表:
设stu.dbf已经打开,用Replace命令计算表中所有记录的平均成绩和总分字段的值。
Replaceall总分with数学+英语+物理,平均成绩with总分/3
(22)已知表:
设stu.dbf已经打开,将stu.dbf原样复制为stud.dbf。
Copytostud
(23)已知表:
假设与"
stu.db"
f结构相同的表文件"
stud.dbf"
已经打开,写出将stu.dbf中的男生记录添加到stud.dbf尾部的命令。
Appendfromstufor性别=”男”
(24)已知表:
下列命令序列是彻底删除7~9号记录的命令,请填空:
go7
deletenext3
____________pack
(25)已知表:
下列命令是用Sum命令分别求出数学、英语、物理三门课程的所有学生的总分,分别存入内存变量sx,yy,wl中,并在屏幕上显示,请填空:
sum数学,英语,物理to____________sx,yy,wl
sx,yy,wl
(26)已知表:
在表的尾部添加2条新的空白记录,空白记录的姓名字段用“最高分”替换;
数学、英语、物理、平均成绩、总分字段分别用它们的最高分替换,如下
图所示,请完善程序:
appendblan
appendblan
selectmax(数学),max(英语),max(物理),max(平均成绩),max(总分)intoarray________a
*该命令执行后记录指针移动到表的末尾
skip-2
Replace姓名with“最高分”,数学witha
(1),英语witha
(2),物理witha(3),平均成绩witha(4),总分witha(5)
(27)已知表:
按班级进行汇总:
求出数学,英语,物理三门课程的班级总分,并汇总到表文件hz.bdf中,表文件hz.dbf的记录是:
一个班一条记录。
请完善程序:
Usestu
Indexon班级tagbj&
&
必须按班级建索引
________on班级tohzfield数学,英语,物理
Total
(28)主索引和______索引不允许记录中出现重复值。
侯选
(29)在VF中利用菜单方式建立的索引都是______索引。
结构复合
(30)根据表:
xs.dbf(学号(c7),姓名(c8),性别(L),出生日期(D8),奖学金(N7.2),备注(4)),写出实现下列的操作命令。
假设表“xs.dbf”已经打开:
按学生的学号建立单索引文件“sy.idx”
Indexon学号tosy
五、程序设计
1、下载文件student6.dbf到考生文件夹,编写程序文件prog6.prg,prog6程序的功能是:
①统计student6.dbf数据表中考生的成绩,统计办法为:
笔试和上机成绩都为90分(含90)以上(优秀)的人数,笔试和上机成绩都为60分(含60)以上(合格)的人数,如单项60分(含60)以上(补考)的人数,其他(不及格)的人数。
②新建一个表newtable6.dbf,有两个字段:
结论C(10),人数N(3),将统计结果存入newtable6.dbf表中,并将prog6.prg和newtable6.dbf文件上传。
③,请完善程序,并运行、存盘提交。
(2)
ETTALKOFF
store0ton1,n2,n3,n4
USEstudent6.dbf
dowhilenot(eof())
docase
case笔试>
=90.AND.上机>
=90
n1=n1+1
=60.and.上机>
=60
n2=n2+1
case(笔试<
60.and.上机>
60)(or)(笔试>
60.and.上机<
60)
n3=n3+1
otherwise
n4=n4+1
endcase
(skip)
enddo
(use)newtable6.dbf
INSERTintonewtable6value("
优秀"
n1)
合格"
n2)
补考"
n3)
不合格"
n4)
USE
SETTALKON
2、下载程序文件prog6.prg到考生文件夹,并在考生文件夹新建一个表newtable6.dbf,该表只有一个字段:
结论N(10.2);
①、prog6程序的功能是:
求T=1!
+2!
+3!
+4!
+…20!
的值。
要求(分别用do-while,循环和for循环实现,)。
②、程序编写运行完后请按要求提交。
(5)
settalkoff
s=(0)
t=
(1)
i=1
DOwhilei<
=10
t=t*i
s=s+t
(i=i+1)
ENDDO
USEnewtable6
appendblank
(replace)结论WITHS
use
settalkon
3、下载table6.dbf,prog6.prg文件到考生文件夹,并将table6.dbf文件另复制成tableout6.dbf文件;
prog6程序的功能是:
①对tableout6.dbf中的每条记录的工资字段作如下变化:
若工资>
=5000,则下降6%;
若工资<
5000,则下降3%。
要求用dowhile.not.eof()控制每条记录。
②完善程序后运行程序,完成后保存程序并按要求提交。
(7)
USEtableout6
DOwhile(noteof())
IF基本工资>
=()
REPLACE基本工资with基本工资*0.94
ELSE
REPLACE基本工资with基本工资*0.97
ENDIF
六、其它
1、求10—300之间能同时被3和5整除的数的和;
2、记录的替换(replace命令)
3、记录的排序(sort)
4、表的复制命令(copy)
5、记录追加命令(appendfrom)
程序分析题:
参见VF程序分析.ppt
实验报告5索引练习
1、主索引和______索引不允许记录中出现重复值。
(候选索引)
2、在VF中利用菜单方式建立的索引都是______索引文件。
(结构复合索引)
3、根据表:
(4-5题)
4、假设表“xs.dbf”已经打开:
按学生的学号建立单索引文件“sy.idx”(注意:
单索引只能按升序,单索引不能建立侯选索引Candidate)
Indexon学号tosy
5、按学生的性别、降序建立结构复合索引,索引类型为唯一索引,索引标识为:
sy1Indexon性别tagsy1desc
6、按学生的出生日期降序建立结构复合索引,索引标识为sy3
Indexon出生日期tagsy3desc
实验报告6多区操作
1、在VF中选择一个没有使用的、编号最小的工作区的命令是________。
Select0
2、使用数据库设计器为两个表建立永久关系,首先应在父表中建立主索引,在子表中建立________索引。
普通
3、有3个数据表,其结构如下,程序的功能是以“学生成绩”表为主表,分别以学号和课程号与“学生档案”和“课程表”建立临时关联关系,请完善下列命令序列,使之能够显示学生所选课程的成绩及相应课程的学分。
学生档案.dbf,有字段:
学号、姓名、性别……
学生成绩.dbf,有字段:
学号、课程号、成绩
课程表.dbf,有字段:
课程号、课程名、学分
SELECT1
USE学生档案
INDEXON学号tagXH
SELECT3
USE课程表
INDEXON课程号tagKH
SELECT2
USE学生成绩
___________________SETRELATIONTO学号INTOa
SETRELATIONTO课程号INTOCADDITIVE
LIST学号,A->
姓名,C->
课程名,成绩,c->
学分
4、设有两个表:
学生档案(学号、姓名、民族)
学生成绩(学号、成绩)
若要在它们之间建立关联,然后为每个少数民族(即汉族以外的民族)考生的成绩增加5分,最后显示全体考生的学号、姓名和成绩。
请对如下命令序列填空:
__________indexon学号tagxh
SETRELATIONTO学号INTOA
REPLACE成绩WITH成绩+5forA->
民族<
"
汉"
LIST学号,A.姓名,成绩
SETRELATIONTO
CLOSEALL
实验报告7SQL命令练习
1、利用SQL命令建立学生管理数据库,其中包含3个表:
学生表、选课表和课程表。
其结构为:
学生(学号,姓名,性别,出生年月,籍贯,所在系,入学成绩)
课程(课程号,课程名,先行课,学分)
选课(学号,课程号,成绩),请填空:
CREATE【database】学生管理
CREATETABLE学生(学号C(8)PRIMARYKEY,姓名C(8),性别C
(2),;
出生年月DNULL,籍贯C(10),入学成绩N(5,1)CHECK(入学成绩>
0)ERROR"
成绩应该大于0!
)default550
CREATE【table】课程(课程号C(3)PRIMARYKEY,课程名C(20),学时N(3),
学分N
(2),必修L)
CREATETABLE选课(学号C(8),课程号C(3),成绩ICHECK(成绩>
=0AND成绩<
=100)ERROR"
成绩值的范围0~100"
DEFAULT60,;
FOREIGNKEY学号TAG学号REFERENCES学生,;
FOREIGNKEY课程号TAG课程号REFERENCES课程)
2、为课程表增加一个整数类型的学时字段的命令如下,请填空:
ALTERTABLE课程【add】学时ICHECK(学时>
16);
ERROR“学时应该大于16!
“default20
3、修改“学生”表中的性别字段类型为逻辑型,默认值为.t.。
并将该表中的“出生年月”字段名改为“出生日期”,命令如下,请填空:
ALTERTABLE学生【alter】性别Ldefa.t.
ALTERTABLE学生【rename】出生年月to出生日期
4、列出“学生.dbf”中的全部学生信息的命令,请填空:
SELECT【*】FROM学生
5、列出“学生.dbf”中全部学生的姓名和年龄,去掉姓名重名记录,命令如下,请填空
SELECT【distinct】姓名AS学生名单,YEAR(DATE())-YEAR(出生年月)