第67套Word下载.docx
《第67套Word下载.docx》由会员分享,可在线阅读,更多相关《第67套Word下载.docx(40页珍藏版)》请在冰豆网上搜索。
在考生文件夹下,打开招生数据库SDB,完成如下简单应用:
1.使用一对多表单向导选择KSB表和KSCJB表生成一个名为TWO的表单。
要求从父表KSB中选择所有字段,从子表KSCJB中选择所有字段,使用"
建立两表之间的关系,样式为阴影式;
按钮类型为图片按钮;
排序字段为考生号(来自KSB),升序;
表单标题为"
考生数据输入维护"
2.在考生文件夹下打开命令文件THREE.PRG,该命令文件用来查询所有成绩都高于或等于平均分的学生的考生号和姓名。
并将查询结果存储到表THREE中。
注意,该命令文件在第3行、第6行、第9行有错误,打开该命令文件,直接在错误处修改,不可改变SQL语句的结构和短语的顺序,不允许增加、删除或合并行。
命令文件THREE.PRG的内容如下:
1.按向导的要求设置即可。
2.第3行改为:
INTOarraytem
第6行改为:
WHEREnotexists;
第9行改为:
WHERE成绩<
tem
(1)and考生号=ksb.考生号);
三、综合应用(1小题,计30分)
在考生文件夹下,打开招生数据库SDB,完成如下综合应用:
1.创建文件名为form的表单,将表单标题改为:
录取研究生。
2.在表单中设计"
录取"
和"
退出"
两个按钮。
两个按钮功能分别如下:
⑴在"
按钮(Command1)中,编写程序,查询总成绩大于或等于330分的考生的考生号、姓名、性别、单位和该生的政治成绩、外语成绩、高数成绩(即高等数学成绩)、专业课成绩、总成绩,并将结果按总成绩降序排序存储到表FOUR中。
表FOUR(需要自己创建或生成)的字段名为:
考生号、姓名、性别、单位、政治成绩、外语成绩、高数成绩、专业课成绩、总成绩(各成绩字段的类型为N(5,1),其他字段的类型与原表中一致)。
⑵单击"
按钮(Command2)时,关闭表单。
3.表单设计完成后,运行表单,单击"
按钮进行统计,然后单击"
按钮关闭表单。
注:
在考试科目代码表DM中存储了各考试科目与考试科目名对应关系。
建立表单,添加控件,设置其基本属性,如下图:
设置“录取”按钮的Click事件代码为:
settalkoff
sele1
useksb
copystrutot1fiel考生号,姓名,性别,单位
altertablet1add政治成绩N(5,1)
altertablet1add外语成绩N(5,1)
altertablet1add高数成绩N(5,1)
altertablet1add专业课成绩N(5,1)
altertablet1add总成绩N(5,1)
closeall
dowhile!
eof()
scattokkkfield考生号,姓名,性别,单位
sele2
usekscjb
sum(成绩)toafor考生号=a.考生号
ifa>
=330
sele4
uset1
appeblank
gathfromkkk
locafor考生号=a.考生号
dowhilefound()
sele3
usedm
locafor考试科目=b.考试科目
docase
case考试科目名="
政治"
repl政治成绩withb.成绩
case考试科目名="
外语"
repl外语成绩withb.成绩
高等数学"
repl高数成绩withb.成绩
专业课"
repl专业课成绩withb.成绩
endcase
cont
enddo
endif
skip
replall总成绩with政治成绩+外语成绩+高数成绩+专业课成绩
sorton总成绩/Dtofour
设置“退出”按钮的Click事件代码为:
Thisform.release
本题所用到的表为:
在考生文件夹下,完成如下操作:
1.打开"
学生管理"
数据库,并从中永久删除"
学生"
表。
2.建立一个自由表"
教师"
,表结构如下:
编号字符型(8)
姓名字符型(10)
性别字符型
(2)
职称字符型(8)
3.利用查询设计器建立一个查询,该查询包含课程名为"
数据库"
的"
课程"
表中的全部信息,生成的查询保存为query。
4.用SQLUPDATE语句将"
表中课程名为"
的课程的任课教师更改为"
T2222"
并将相应的SQL语句存储在文件Four.prg中。
1.单击“打开”工具,选择文件类型为“数据库”,双击考生文件夹下的“学生管理”数据库,在随后打开的“数据库设计器”中,用鼠标右键单击“学生”表,在出现的快捷菜单中单击“删除”,有出现的对话框中单击“删除”按钮。
2.选使用命令CLOSEALL关闭所有的数据库,再使用命令“CREATE教师”建立自由表,在“表设计器”中分别输入每个字段的字段名、类型、宽度,最后单击“表设计器”中的“确定”按钮。
3.单击“新建”工具,在出现的“新建”对话框中选择“查询”,单击“新建文件”按钮,将“课程”表添加到查询设计器中,在“字段”卡中选择所有字段,在“筛选”选项卡中给出条件:
课程名=”数据库”,单击“保存”工具,给出查询文件名“query.qpr”,单击“确定”按钮。
使用命令:
MODICOMMFOUR进入编辑状态,输入下列代码,并保存、运行:
upda课程set任课教师="
where课程名="
在考生目录下完成如下简单应用:
1.建立表单,表单文件名和表单控件名均为formtest,表单标题为"
考试系统"
,表单背景为灰色(BackColor=192,192,192),其他要求如下:
(1)表单上有"
欢迎使用考试系统"
(Label1)8个字,其背景颜色为灰色(BackColor=192,192,192),字体为楷体,字号为24,字的颜色为桔红色(ForeColor=255,128,0);
当表单运行时,"
8个字向表单左侧移动,移动由计时器控件Timer1控制,间隔(interval属性)是每200毫秒左移10个点(提示:
在Timer1控件的Timer事件中写语句
THISFORM.Label1.Left=THISFORM.Label1.Left-10)
当完全移出表单后,又会从表单右侧移入。
(2)表单有一命令按钮(Command1),按钮标题为"
关闭"
,表单运行时单击此按钮关闭并释放表单。
2.在"
数据库中利用视图设计器建立一个视图sview,该视图包含3个字段课程编号、课程名和选课人数。
然后利用报表向导生成一个报表creport,该报表包含视图sview的全部字段和内容。
1.单击“新建”工具,在“新建”对话框中选择“表单”,单击“新建文件”按钮,进入表单设计器后,单击“保存”工具,输入文件名:
formtest,用鼠标右键单击表单,在快捷菜单中选择“属性”,在属性窗口中,将Name属性改为:
formtest,Caption属性改为:
考试系统。
打开“表单控件”工具栏,在表单上添加标签label1,打开其属性窗口,分别设置其Caption属性为:
欢迎使用考试系统;
设置其Backcolor属性为:
192,192,192;
Forecolor属性为:
255,128,0;
FontName属性为:
楷体;
Fontsize属性为24;
在表单上添加计时器控件timer1,设置其Interval属性为200,设置其timer事件代码为:
ifthisform.label1.left+thisform.label1.width<
=0
thisform.label1.left=thisform.width
else
thisform.label1.left=thisform.label1.left-10
添加命令按钮,将其caption属性改为:
关闭,其Click事件代码为:
设置的结果如下图:
2.先打开数据库,再使用新建视图,分别添加“课程”、“考试成绩”两个表,在“选取字段”、“排序条件”、“分组字段”中分别输入下图所示的内容,以sview为名保存,最后单击“运行”工具。
单击“新建”工具,在“新建”对话框内选择“报表”,单击“向导”按钮,然后按题目要求设置向导的每一步即可。
在考生目录下有myform表单文件,将该表单设置为顶层表单,然后设计一个菜单,并将新建立的菜单应用于该表单(在表单的load事件中运行菜单程序)。
新建立的菜单文件名为mymenu,结构如下(表单、报表和退出是菜单栏中的3个菜单项):
表单
浏览课程
浏览选课统计
报表
预览报表
退出
各菜单项的功能如下:
●选择"
浏览课程"
时在表单的表格控件中显示"
表的内容(在过程中完成,直接指定表名);
浏览选课统计"
时在表单的表格控件中显示简单应用题建立的视图sview的内容(在过程中完成,直接指定视图名);
预览报表"
时预览简单应用题建立的报表creport(在命令中完成);
时关闭和释放表单(在命令中完成)。
注意:
最后要生成菜单程序,并注意该菜单将作为顶层表单的菜单。
Myform表单如下图:
第一步:
新建菜单,进入菜单设计器,设置菜单栏和菜单项,其中,菜单项的“过程”或“命令”代码分别设置为:
浏览课程:
myform.grid1.recordsource="
浏览选课统计:
opendata学生管理
sview"
预览报表:
reportformcreportpreview
退出:
myform.release
单击“显示”菜单下的“常规选项”功能,选中其中的“顶层表单”复选框,用文件名“mymenu”保存菜单,单击“菜单”菜单下的“生成”功能,生成菜单程序文件mymenu.mpr。
第二步:
打开表单,将表单的ShowWindow属性设置为2,设置该表单的Load事件代码为:
domymenu.mprwithTHIS,.t.。
附:
本题相关表
一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)
在考生文件夹下完成如下操作:
1.新建一个名称为"
外汇数据"
的数据库。
2.将自由表rate_exchange和currency_sl添加到数据库中。
外币代码"
字段为rate_exchange和currency_sl建立永久联系(如果必要请建立相关索引)。
4.打开表单文件test_form,该表单的界面如下图所示,请将标签"
用户名"
口令"
的字体都改为"
黑体"
1.单击工具栏上的“新建”按扭,选择“数据库”,然后单击“新建文件”。
3.在数据库设计器中建立关系。
分析:
rate_exchange为父表,currency_sl为子表。
在rate_exchang中为“外币代码”建立主索引;
在currency_sl中“外币代码”建立普通索引。
(建立方法同前套题目中索引的建立方法,此处略)
然后将主表中的主索引“外币代码”拖放到子表中的“外币代码”索引处,建立永久关系。
二、简单应用(2小题,每题20分,计40分)
在考生文件夹下完成如下简单应用:
1.rate_pro.prg中的程序功能是计算出"
林诗因"
所持有的全部外币相当于
人民币的价值数量,summ中存放的是结果。
注意:
某种外币相当于人民币数量的计算公式:
人民币价值数量=该种外币的"
现钞买入价"
*该种外币"
持有数量"
请在指定位置修改程序的语句,不得增加或删除程序行,请保存所做的修改。
2.建立一个名为menu_rate的菜单,菜单中有两个菜单项"
查询"
"
项下中还有一个子菜单,子菜单有"
日元"
、"
欧元"
美元"
三个选项。
在"
菜单项下创建过程,该过程负责返回系统菜单。
1.打开rate_pro.prg文件,内容如下:
单击工具栏上的“新建”按扭,选择“菜单”,然后单击“新建文件”。
在对话框中单击“菜单”。
(或用命令creamenumenu_rate)
先设置主菜单,如下:
设置“查询”菜单的结果为“子菜单”,“退出”菜单的结果为“过程”,且过程的代码为:
setdefatosysmenu
创建“查询”的子菜单如下:
保存退出,菜单文件名为:
menu_rate
三、综合应用(1小题,计30分)
设计一个文件名和表单名均为myrate的表单,所有控件的属性必须在表单设计器的属性窗口中设置。
表单的标题为"
外汇持有情况"
表单中有一个选项组控件(命名为myOption)和两个命令按钮"
统计"
(command1)和"
(command2)。
其中,选项组控件有三个按钮"
运行表单时,首先在选项组控件中选择"
或"
单击"
命令按钮后,根据选项组控件的选择将持有相应外币的人的姓名和持有数量分别存入rate_ry.dbf(日元)或rate_my.dbf(美元)或rate_oy(欧元)中。
单击"
按钮时关闭表单。
表单建成后,要求运行表单,并分别统计"
的持有数量。
(1)单击工具栏的“新建”按扭,选择“表单”,再单击“新建文件”,启动“表单设计器”。
(2)按照题目要求添加控件,如图:
选中“选项按扭组”,单击右键,选择编辑,然后设置每个选项按扭的caption依次为:
日元、美元和欧元。
设置两个命令按扭的caption为:
统计和退出。
(3)编写事件代码。
“统计”按扭的click代码如下:
x=thisform.myoption.value
do
case
casex=1
SELECTCurrency_sl.姓名,Currency_sl.持有数量;
FROM
外汇数据!
rate_exchangeINNERJOIN外汇数据!
currency_sl;
ON
Rate_exchange.外币代码=Currency_sl.外币代码;
WHERERate_exchange.外币名称="
;
INTOTABLErate_ry.dbf
casex=2
INTOTABLErate_my.dbf
casex=3
INTOTABLErate_oy.dbf
Endcase
“退出”按扭的click代码:
thisform.release
※解题技巧:
“统计”按扭的代码可以用“查询设计器”做完,然后查看sql把代码复制过来;
每个分支粘贴一次,然后作少量的修改。
附数据表内容和结构如下:
1.建立一个名称为"
外汇管理"
2.将表currency_sl.DBF和rate_exchange.DBF添加到新建立的数据库中。
3.将表rate_exchange.DBF中"
买出价"
字段的名称改为"
现钞卖出价"
4.通过"
字段建立表rate_exchange.DBF和currency_sl.DBF之间的一对多永久联系(需要首先建立相关索引)。
1.利用“新建”工具创建数据库。
(操作略)
操作略。
(见前面章节)
2.在“数据库设计器”选中rate_exchange表,单击右键选择“修改”进入到“表设计器”,修改字段名。
分析可知:
rate_exchange表是父表,currency_sl是子表。
在rate_exchange中通过“外币代码”建立主索引,在currency_sl中通过“外币代码”建立普通索引;
然后为两表建立永久关系。
(操作略)
1.在建立的"
数据库中利用视图设计器建立满足如下要求的视图:
1)视图按顺序包含列Currency_sl.姓名、Rate_exchange.外币名称、
Currency_sl.持有数量和表达式Rate_exchange.基准价*Currency_sl.持有数量;
2)按"
Rate_exchange.基准价*Currency_sl.持有数量"
降序排序;
3)将视图保存为view_rate。
2.使用SQLSELECT语句完成一个汇总查询,结果保存在results.dbf表中,
该表含有"
姓名"
人民币价值"
两个字段(其中"
为每人持有外币的"
的合计),结果按"
降序排序。
1.利用“新建”工具创建视图,启动“视图设计器”。
(1)添加表到“视图设计器”中。
(2)设置输出的列。
(3)设置排序依据。
(4)保存视图。
方法一
查询设计器
新建一个查询,启动“查询设计器”。
添加表。
设置输出字段。
人民币价值可用表达式生成器生成,如下:
然后将其放到选定字段中。
设置排序依据。
输出设置。
分组设置。
(以姓名分组)
运行查询。
方法二
在命令窗口输入SQL语句。
SELECTCurrency_sl.姓名,;
SUM(Currency_sl.持有数量*Rate_exchange.基准价)
as人民币价值;
外汇管理!
currency_slINNERJOIN外汇管理!
rate_exchange;
Currency_sl.外币代码=Rate_exchange.外币代码;
GROUPBYCurrency_sl.姓名;
ORDERBY2DESC;
INTOTABLE
results.dbf
设计一个表单,所有控件的属性必须在表单设计器的属性窗口中设置,表单文件名为"
外汇浏览"
,表单界面如下所示:
其中:
1."
输入姓名"
为标签控件Label1;
2.表单标题为"
外汇查询"
3.文本框的名称为Text1,用于输入要查询的姓名,如张三丰;
4.表格控件的名称为Grid1,用于显示所查询人持有的外币名称和持有数量,RecordSourceType的属性为4(SQL说明);
5."
命令按钮的名称为Command1,单击该按钮时在表格控件Grid1中按持有数量升序显示所查询人持有的外币名称和数量(如上图所示),并将结果存储在以姓名命名的DBF表文件中,如张三丰.DBF;
6."
命令按钮的名称为Command2,单击该按钮时关闭表单。
完成以上表单设计后运行该表单,并分别查询"
张三丰"
李寻欢"
所持有的外币名称和持有数量。
先建立一空白表单。
添加控件到表单上。
在属性窗口设置属性。
标签的caption设为输入姓名
表单的caption设为外汇查询
表格控件的RecordSourceType的属性为4(SQL说明)
两个明令按扭的caption依次设为:
查询和退出
编写事件代码
“查询”按扭的click代码如下:
x=allt(thisform.text1.value)
thisform.grid1.recordsourcetype=4
thisform.grid1.recordsource=;
SELECTRate_exchange.外币名称,Currency_sl.持有数量;
WHERECurrency_sl.姓名=x;
ORDERBYCurrency_sl.持有数量;
INTOTABLE&
x"
thisform.refresh
上面代码中的SQL部分可用“查询设计器”得