VFP总复习题.docx

上传人:b****8 文档编号:10063818 上传时间:2023-05-23 格式:DOCX 页数:13 大小:20.57KB
下载 相关 举报
VFP总复习题.docx_第1页
第1页 / 共13页
VFP总复习题.docx_第2页
第2页 / 共13页
VFP总复习题.docx_第3页
第3页 / 共13页
VFP总复习题.docx_第4页
第4页 / 共13页
VFP总复习题.docx_第5页
第5页 / 共13页
VFP总复习题.docx_第6页
第6页 / 共13页
VFP总复习题.docx_第7页
第7页 / 共13页
VFP总复习题.docx_第8页
第8页 / 共13页
VFP总复习题.docx_第9页
第9页 / 共13页
VFP总复习题.docx_第10页
第10页 / 共13页
VFP总复习题.docx_第11页
第11页 / 共13页
VFP总复习题.docx_第12页
第12页 / 共13页
VFP总复习题.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

VFP总复习题.docx

《VFP总复习题.docx》由会员分享,可在线阅读,更多相关《VFP总复习题.docx(13页珍藏版)》请在冰点文库上搜索。

VFP总复习题.docx

VFP总复习题

第一部分基本操作复习

创建项目管理器和数据库

1、在d:

\学生管理建立一个名为“学生管理”的项目文件;

2、在项目管理器中建立一个名为“学生管理”的数据库。

3、在"学生管理"数据库中建立"学生成绩"表,表结构如下:

学号字符型(8)

姓名字符型(10)

数学数值型(5.1)该字段允许出现"空"值,默认值为.NULL.

英语数值型(5.1)该字段允许出现"空"值,默认值为.NULL.

计算机数值型(5.1)该字段允许出现"空"值,默认值为.NULL.

数据如下:

学号姓名数学英语计算机

20041030谢林胜788890

20041031张辉臣826754

文件备份

4、将“学生表”备份到“学生备份表”中,将”学生选课表”备份到“学生选课备份表”中。

use学生表

copyto学生备份表

5、将"学生备份表"中"出生日期"字段值为1985年8月1日以前的记录进行逻辑删除。

出生日期<{^DELEALLFOR1985/08/01}

6、复制“学生表”结构,删除入学时间、入学成绩、专业编号、简历、照片字段,将其命名为“学生简表”,将“学生备份表”中的所有记录追加到“学生简表”中,并取消所有逻辑删除标记。

COPYSTRUTO学生简表

USE学生简表

APPEFROM学生表

RECLALL

添加数据表

7、将"学生备份表"和“学生选课备份表”添加到“学生管理”数据库中。

字段有效性规则

8、为学生备份表的"性别"字段设置字段有效性规则:

性别=“男”.or.性别=“女”,

出错提示信息为:

“性别等于男或女”,

默认值为:

"男"。

修改数据表

9.在学生备份表中增加一个名为"班级"的字段,字段数据类型为"字符型"、宽度为20。

建立表间关系

10、通过"学号"字段建立"学生备份表"表和"学生选课备份"表间的永久联系(如果必要请先建立有关索引)。

数据排序

11、将"学生备份"表中的记录按"出生日期"先后顺序排序,在"出生日期"相同的情况下,再按"学号"从低到高排序,排序结果存入表NEW_STUDENT中。

sorttoNEW_STUDENTon出生日期,学号

查询向导

12、使用查询向导建立一个标准查询QUERY.QPR,表选取“学生表”,字段选取“姓名”和“出生日期”。

13、从"学生备份表"中查询所有女同学(即:

性别="女")信息,查询结果存入"女同学"表。

本地视图

14、建立本地视图"stu_view",视图的字段为"学生备份表"的"学号"、"姓名"和"出生日期"字段,并按"出生日期"先后顺序排序,"出生日期"相同的情况下,按"学号"升序排序。

第二部分SQL语言复习

知识点

SELECT…FROM文件名查询

CREATEVIEW视图名AS…创建

SELECT说明要查询的数据

FROM说明要查询的数据来自哪个或哪些表,可以对单个表或多个表进行查询;

WHERE说明查询条件,即选择元组的条件;

GROUPBY短语用于对查询结果进行分组,可以利用它进行分组汇总;

HAVING短语必须跟随GROUPBY短语使用,它用来限定分组必须满足的条件;

ORDERBY用来对查询的结果进行排序。

简单查询

1、列出学生表里所有学生的信息

SELECT*FROM学生

2、列出学生选课表里所有课程的编号

SELECTDIST课程编号FROM学生选课

*(使用DIST可去掉重复行)

条件查询

1、列出学生表里03专业所有学生的学号,姓名,专业编号

SELECT学号,姓名,专业编号FROM学生;

WHERE专业编号='03'

2、查找入学成绩500~600之间所有学生;

SELECT*FROM学生WHERE入学成绩;

BETWEEN500AND600

3、查询专业编号为03和04的学生信息;

SELECT学号,姓名,专业编号FROM学生;

WHERE专业编号IN('03','04')

4、查询入学成绩600分以上学生信息并排序输出

SELECT学号,姓名,入学成绩AS总成绩;

FROM学生WHERE入学成绩>600;

ORDEBY总成绩DESC

5、查询专业编号为“04”所有女学生信息

SELECT*FROM学生;

WHERE专业编号='04'AND性别="女"

6、查询专业编号为“04”且入学成绩大于600分的所有男学生信息。

SELECT*FROM学生;

WHERE专业编号='04'AND入学成绩>=600;

AND性别='男'

7、查找所有姓“李”学生指定信息;

SELECT学号,姓名,入学成绩FROM学生;

WHERE姓名LIKE"李%"

8、查询选课成绩>=80学生姓名成绩;

SELECT学生.姓名,学生选课.成绩;

FROM学生INNERJOIN学生选课;

ON学生.学号=学生选课.学号;

AND学生选课.成绩>=80

统计查询

1、查询全体学生总人数;

SELECTCOUNT(*)AS全体学生总人数;

FROM学生

&&COUNT(*)用来统计元组的个数,不消除重复;

&&不允许使用DISTINCT关键字

2、求2004年年龄大于18岁的学生人数。

SELECTCOUNT(*)AS大于18岁人数;

FROM学生;

WHERE2004-YEAR(出生日期)>18

3、计算入学成绩在600分以上人数;

SELECTCOUNT(*)AS入学600分人数;

FROM学生WHERE入学成绩>=600

4、计算女生平均入学成绩;

SELECTAVG(入学成绩)AS女生平均分;

FROM学生WHERE性别="女"

*(问:

要求统计最高(低)入学成绩如何修改表达式)

5、统计每个学生选修课的门数;

SELECT学号,COUNT(*)AS选修门数;

FROM学生选课GROUPBY学号

*(该题把学号相同的记录作为一组,;

*对每一组用COUNT进行计算,统计出每个学生选修课的门数)

6、统计选修课门数3门以上学生;

SELECT学号,COUNT(*)AS选修门数;

FROM学生选课GROUPBY学号;

HAVINGCOUNT(*)=>3

*(注意:

此语句中用了HAVING语句,其功能是选择满足条件的组。

7、求入学成绩最高与最低相差分数。

SELECTMAX(入学成绩)AS最高成绩,;

MIN(入学成绩)AS最低成绩,;

MAX(入学成绩)-MIN(入学成绩);

AS高低成绩相差FROM学生

8、显示总分最高的前3位学生的信息;

SELECT*TOP3FROM学生成绩;

ORDERBY总分DESC

9、显示总分最低的30%学生信息;

SELECT*TOP30PERCENT;

FROM学生成绩ORDERBY总分

查询输出

1、学生选课成绩输出到数据表;

SELECT学号,课程编号,成绩FROM学生选课;

ORDERBY成绩desc;

INTOTABLE作业44

2、学生选课成绩输出到文本文件;

SELECT学号,课程编号,成绩FROM学生选课;

ORDERBY成绩desc;

TOFILE作业44.TXT

数据库定义

1、从单个表派生出的视图

从学生表中创立视图1,使其显示学号和专业编号两个字段全部记录。

OPENDATA学生选课库

CREATEVIEW视图1AS;

SELECT学号,专业编号FROM学生

2、从多个表中派生出来的视图

在"学生选课库"数据库中,根据学生表建立一个统计各专业学生人数的视图,该视图包含"专业编号"、"学生人数"两个字段,视图名为"view1",并按专业编号升序排序;(提示:

可先编一个程序,用SQL语句直接建立这个视图)

在“学生选课库”数据库中,根据学生表建立一个统计各专业学生人数的视图,该视图包含“专业编号”、“学生人数”两个字段,视图名为“view1”,并按专业编号升序排序

OPENDATA学生选课库

CREATEVIEWview1AS;

SELECT专业编号,COUNT(*)AS学生人数;

FROM学生GROUPBY专业编号

用SQL编写视图实例(作业35)

在"职工管理"数据库中,建立一个名称为s_view的视图,字段为职工表中的"编号"、"姓名"、"性别"、"民族"和工资表中的"基本工资"、"奖金"、"工资合计"(其中工资合计=基本工资+奖金),结果按"工资合计"降序排序,工资相同的情况下按编号升序排序。

注意:

视图中的字段个数、字段名和字段先后排列的顺序,要与题目叙述的一致,否则不得分。

opendata职工管理

CREATEVIEWs_viewAS;

SELECT职工表.编号,职工表.姓名,;

职工表.性别,职工表.民族,,;

工资表.基本工资,工资表.奖金,;

工资表.基本工资+工资表.奖金as工资合计;

FROM职工表INNERJOIN工资表;

ON工资表.编号=职工表.编号

第三部分报表制作(简单应用题)

简单应用题1(作业37)

请在VisualFoxPro中完成下列操作(本题共有1小题):

使用报表向导建立一个简单报表。

要求选择成绩表中"学号"、"姓名"和"英语"三个字段,报表的标题为"英语考试成绩表",其他选项使用默认设置,报表文件名为English_score.frx。

简单应用题2(作业38)

请在VisualFoxPro中完成下列操作(本题共有1小题):

使用向导建立一对多报表student_report。

父表为学生.dbf,字段为学号、姓名、性别和入学成绩,子表为学生成绩.dbf,字段为各科成绩和总分,报表标题为"学生入学前后成绩对照表",其他使用默认设置。

第四部分表单制作(综合应用题)

等级考试综合应用题1(作业57)

请在VisualFoxPro中完成下列操作(本题共有1小题):

建立一个表单,将表单的标题和表单文件名都设置为:

"查询职工信息"。

在表单中,添加下列控件:

1)表格控件(Grid1),其数据源类型(RecordSourceType)设置为:

0-表;

2)选项组控件(Optiongroup1),选项组控件有两个按钮"职工表"(名称为Option1)和"工资表"(名称为Option2);

3)命令按钮(Command1),标题设置为:

"查询",功能为:

在选项组控件中选择"职工表"或"工资表",单击"查询"命令按钮后,在表格控件(Grid1)中显示所选择表的记录(使用IF语句判断);

4)命令按钮(Command2),标题设置为:

"退出",功能为:

用鼠标单击该按钮时,释放所在表单。

5)表单上要有考生姓名

1)表格控件(Grid1)

2)选项组控件有两个按钮“职工表和”工资表”

3)命令按钮(Command1),标题设置为:

"查询",功能为:

在选项组控件中选择"职工表"或"工资表",单击"查询"命令按钮后,在表格控件(Grid1)中显示所选择表的记录(使用IF语句判断);

4)命令按钮(Command2),标题设置为:

"退出"

查询按钮方法代码

N=THISFORM.Optiongroup1.VALUE

IFN=1

THISFORM.GRID1.RECORDSOURCE="职工表.dbf"

ELSE

THISFORM.GRID1.RECORDSOURCE="工资表.dbf"

ENDIF

等级考试综合应用题2(作业58)

请在VisualFoxPro中完成下列操作(本题共有1小题):

建立一个表单,将表单的文件名和标题均设置为:

"浏览";

在表单中,添加下列控件:

1)页框(PageFrame1),有"学生表"(Page1)和"成绩表"(Page2)两个选项卡,单击选项卡"学生表"时,在选项卡"学生"中使用"表格"方式显示"学生表"中的记录;单击选项卡"成绩"时,在选项卡"成绩表"中使用"表格"方式显示"成绩表"中的记录;

要求:

将学生表和成绩表添加到数据环境。

2)命令按钮(Command1),其标题为:

退出,功能为:

用鼠标单击该按钮时,释放所在表单。

3)表单上要有考生姓名

等级考试综合应用题3(作业47)

打开testform2表单,表单的标题设置为:

"学生成绩查询"。

在表单中,添加下列控件:

1)文本框(text1);

2)"查询"按钮(Command1):

在"查询"按钮的Click事件中,使用SQL的SELECT命令查询"成绩表"中每个学生的学号、姓名、总分,并将查询结果存储到"总分表"表中。

在文本框text1中,显示"查询结束"。

(注:

总分为数学、英语和计算机三门课成绩之和)

3)"退出"按钮(Command2):

单击"退出"按钮时,关闭表单。

表单设计完成后,运行表单进行查询。

查询按钮代码:

SELE学号,姓名,数学+外语+计算机AS总分;

FROM学生成绩ORDEBY总分DESC;

intotabl总分表

thisform.refresh

THISFORM.TEXT1.VALUE="查询结束!

"

等级考试综合应用题4(作业49)

请在VisualFoxPro中完成下列操作(本题共有1小题):

在"人事管理"数据库中,根据"职工表"建立一个统计各部门职工人数的视图,该视图包含"部门号"、"职工人数"两个字段,视图名为"view1",并按部门号升序排序;

打开考试文件夹下的表单testform7。

将表单的标题设置为:

"查询部门职工人数";在表单的数据环境中,添加视图view1。

在表单中,添加下列控件:

1)表格控件Grid1,运行表单时,在表格控件Grid1中显示视图"view1"的记录;

2)命令按钮Command1,标题设置为:

"关闭",功能为:

用鼠标单击该按钮时,释放所在表单。

本题可编写程序制作视图:

opendata人事管理

creaviewview1as;

SELECT部门号,COUNT(*)AS职工人数;

FROM职工表GROUPBY部门号

等级考试综合应用题5(作业18)

打开考试文件夹下的表单testform3。

表单的标题设置为:

"查询职工信息"。

在表单的数据环境中,添加"职工管理"库中的表:

职工.dbf。

在表单中,添加下列控件:

1)标签label1和label2,其标题为:

"姓名"和"年龄";

2)文本框text1和text2,设置文本框text1和text2的ControlSource属性,当执行表单时,该框中分别显示职工.dbf中的姓名和年龄;(不需要编写事件代码)

3)命令按钮command1和command2,其标题分别为:

"上一记录"和"下一记录"。

功能分别为:

用鼠标单击command1按钮时,将表记录指针移动到上一条记录,如果移到表文件首,则移到末记录;用鼠标单击command2按钮时,将表记录指针移动到下一条记录,如果移到表文件末,则移到首记录;

4)命令按钮command3,其标题为:

"退出",功能为:

用鼠标单击该按钮时,释放所在表单。

“上一记录”方法代码:

ifnotbof()

skip-1

thisform.refresh

else

gobott

thisform.refresh

endif

“下一记录”方法代码:

ifnoteof()

skip1

thisform.refresh

else

gotop

thisform.refresh

endif

等级考试综合应用题6(作业56)

打开考试文件夹下的表单testform4。

将表单的标题设置为:

"浏览";将表单中的表格控件(Grid1)的数据源类型(RecordSourceType)设置为:

0-表;在表单中,添加三个命令按钮Command1、Command2和Command3,并完成下列操作:

1)命令按钮Command1的标题设置为:

"显示学生表",功能为:

用鼠标单击该按钮时,表格控件(Grid1)的数据源(RecordSource)设置为"学生表.dbf";

2)命令按钮Command2的标题设置为:

"显示成绩表",功能为:

用鼠标单击该按钮时,表格控件(Grid1)的数据源(RecordSource)设置为"成绩表.dbf";

3)将命令按钮Command3的标题设置为:

"退出",功能为:

用鼠标单击该按钮时,释放所在表单。

THISFORM.Grid1.RecordSource="学生表.dbf"

thisform.refresh

等级考试综合应用题7(作业55)

打开考试文件夹下的表单testform5。

表单的标题设置为:

浏览学生表。

在表单的数据环境中,添加学生库中的表:

学生表.dbf。

在表单中,添加下列控件:

1)标签label1和label2,其标题为:

学号和姓名;

2)编辑框Edit1和Edit2,设置编辑框Edit1和Edit2的ControlSource属性,当执行表单时,该框中分别显示表"学生表"中的学号和姓名;(不需要编写事件代码)

3)计时器Timer1,功能为:

表单运行时,每1秒钟向下移动1条记录,如果移到表文件末,再返回到首记录;(在移动记录过程中,表单中的内容要随着更新。

4)命令按钮command1,其标题为:

退出,功能为:

用鼠标单击该按钮时,释放所在表单。

ifnoteof()

skip1

thisform.refresh

else

gotop

thisform.refresh

endif

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2