上机考试知识点.docx
《上机考试知识点.docx》由会员分享,可在线阅读,更多相关《上机考试知识点.docx(22页珍藏版)》请在冰豆网上搜索。
![上机考试知识点.docx](https://file1.bdocx.com/fileroot1/2023-2/3/f74e315f-42fc-4401-af64-d20ccd203d0e/f74e315f-42fc-4401-af64-d20ccd203d0e1.gif)
上机考试知识点
上机考试知识点:
1.设置默认路径,两种方法:
(1)setdefato…….(关闭vfp窗口后再次打开时要重新设)例:
setdefatoa:
(2)工具/选项/文件位置。
2.关于项目、数据库和表的操作:
(1)设置字段的标题
打开要设置的数据库表的表设计器,选择“字段”选项卡,选择要设置的字段(单击字段左侧的列),在“标题”框中设置。
(2)设置默认值
打开要设置的数据库表的表设计器,选择“字段”选项卡,选择要设置的字段(单击字段左侧的列),在“默认值”框中设置。
注意点:
默认值如果是字符型,需加上英文双引号,例:
xb字段的默认值:
”男”;
如果是货币型,需在前面加上$符号,例:
jbgz字段的默认值:
$1000;
如果是日期型,需加上{^},例:
csrq字段的默认值:
{^1981/2/11}。
(3)修改字段的长度
打开要设置的数据库表的表设计器,选择“字段”选项卡,选择要设置的字段(单击字段左侧的列),设置宽度。
注意点:
a.一个汉字占两个字节。
例:
设置xm字段宽度,能容纳4个汉字,需要设置该字段的宽度为8
b.设置带小数的字段宽度时,要考虑小数点的位数。
例:
修改jbgz字段的宽度,使之能容纳6位整数和1位小数,则需要设置该字段的宽度为8。
(4)设置字段的有效性规则和记录的验证规则及信息
字段的有效性规则是一个逻辑表达式,并对表中该字段的值进行检查,如果字段的值使得表达式的结果为.T.,则允许该字段的值存在,否则不允许。
例:
出生日期在1980年之前(包括1980),year(date())<=1980;
记录的有效性规则也是逻辑表达式,但是涉及了多个字段。
例:
年龄必须比工龄大20,year(gzrq)-year(csrq)>=20;
有效性信息必须加上一对英文双引号,例:
”性别只能是男或女!
”
(5)设置字段注释
打开要设置的数据库表的表设计器,选择“字段”选项卡,选择要设置的字段(单击字段左侧的列),在“字段注释”框中设置。
(6)增加字段
打开要设置的数据库表的表设计器,选择“字段”选项卡,在最后一个字段后,输入字段名、数据类型等。
(7)对字段设置格式和输入掩码(如:
只接受2个字符,且只接受数字)
打开要设置的数据库表的表设计器,选择“字段”选项卡,选择要设置的字段(单击字段左侧的列),在“格式”和“输入掩码”框中设置。
如:
设置显示货币符号,格式:
$;设置只接受2位数字,输入掩码:
99。
设置自动删除字段的前导空格,格式:
T。
(8)字段的显示类
打开要设置的数据库表的表设计器,选择“字段”选项卡,选择要设置的字段(单击字段左侧的列),在“显示类”框中设置。
(9)创建索引
打开要设置的数据库表的表设计器,选择“索引”选项卡,设置索引名、类型、索引表达式、排序等。
注意点:
a.如果索引表达式是由多个字段组成(出现先按什么排序再按什么排序),用“+”联接,例:
先按系代号(xdh)排序,系代号相同的再按专业代号(zydh)字段排序,索引表达式为:
xdh+zydh
b.一定要保持多个字段的数据类型的一致性(一般情况下都要求是字符型,如不是需要通过一系列的函数进行转换)。
例:
要求先按工号(gh)字段的首字符排序,工号首字符相同的再按住房补贴(zfbt)字段排序,索引表达式为:
left(gh,1)+str(zfbt)
c.设置索引筛选:
在“索引”选项卡的“筛选”中设置,如:
要求按籍贯(jg)字段升序排序,且仅对“江苏”籍的学生记录排序。
(10)为文件添加编辑说明
选中要添加编辑说明的文件,单击右键,在快捷菜单中选择“编辑说明”。
(11)将表添加为项目中的自由表
在项目管理器中选中“自由表”,单击“添加”按钮,选择要添加的表。
(12)记录的删除
a.个别记录的删除:
打开表的浏览窗口,在要删除的记录前加上删除标记,然后表/彻底删除。
b.批量记录的删除(例:
删除所有副教授的记录):
:
打开表的浏览窗口,表/删除记录,设置删除范围和删除条件,然后表/彻底删除。
(13)为文件设置包含/排除状态
选中要设置包含/排除状态的文件,单击右键,在快捷菜单中选择包含/排除状态。
(14)添加一条新记录
打开表的浏览窗口,显示/追加方式,在表的末尾输入新记录。
(15)修改表中记录(记录的批量修改)
打开表的浏览窗口,表/替换字段,选择要替换的字段,替换的新字段,替换范围和条件。
例:
将xs表中所有记录的zydh(专业代号)首字符由“1”改为“9”。
在“替换字段”对话框中,选择替换字段为zydh,新字段为“9”+substr(zydh,2),作用范围:
all,替换条件:
left(zydh,1)=”1”
(16)设置触发器(删除、插入、更新)
打开要设置的数据库表的表设计器,选择“表”选项卡,根据要求设置删除触发器或插入触发器或更新触发器。
触发器实际上是一个逻辑表达式,如果字段的值使得表达式的结果为.T.,则允许相应的操作(删除、插入、更新),否则不允许。
例:
为xs表设置删除触发器:
不允许删除。
则打开xs表的表设计器,选择“表”选项卡,设置删除触发器为.F.。
(17)创建永久关系和设置参照完整性(先要进行数据库清理)
一般题目中主表的主索引,子表的普通索引已经建好,直接打开数据库设计器建立关系:
将主表的主索引拖到子表的相应索引上即可。
创建好永久关系后就可以设置参照完整性了,打开数据库设计器,数据库/编辑参照完整性,根据题目要求选择相应选项,如“更新级联”,在“更新规则”选项卡里选择“级联”选项。
(设置参照完整性之前要先清理数据库:
数据库/清理数据库)。
(18)设置项目信息
在项目管理器中,选中任一对象,单击右键,选择“项目信息”。
3.设计查询:
在项目管理器中选择已存在的查询文件,单击修改,打开查询设计器:
(1)选择要添加的表或视图;
(2)在“字段”选项卡中通过选择字段和输入表达式添加输出字段,看题目要求如果输出字段是中文要在“函数和表达式”框中用as子句指定别名,如:
输出字段:
年级(xh前两位),则表达式为:
left(xh,2)as年级;
(3)如果是多表查询,在“联接”选项卡中查看联接条件是否正确。
一般通过公共字段建立联接。
(4)辨别查询中是否有筛选条件,如有,在“筛选”选项卡中设置,如查询男同学的……..,则男同学是筛选条件,在“筛选”选项卡中设置,字段名选择”xb”,条件选择”=”,实例输入“男”。
同时注意筛选条件有多个时它们之间的逻辑关系系(and还是or)
(5)查询中如有排序,在“排序依据”选项卡中设置。
注意:
先添加排序字段,添加好后再设置升序或降序。
如果是先按……排序,再按…….排序,还要注意排序字段添加的先后顺序。
(6)判断该查询是否需要进行分组
如果查询中出现了查询“每个”或“各个”这样的文字以及输出字段中出现了“总分”或“人数”等,一般就要进行分组,在“分组依据”选项卡中选择“分组字段”,有时候分组字段有多个,如查询每个系各个年级男、女生人数,则分组依据为:
ximing(或xdh)、年级、xb。
如果是分组查询,还要看看查询中是否有“满足条件”(即对分组查询的结果再进行筛选的条件),如总分大于480,在“分组依据”选项卡中单击“满足条件”按钮进行设置,同时注意满足条件有多个时它们之间的逻辑关系(and还是or)。
(7)设置查询结果的去向
查询/查询去向
(8)设置杂项
如有无重复记录、前几条记录等。
在“杂项”选项卡中设置。
4.设计菜单:
在项目管理器中选择已存在的菜单文件,单击修改,打开菜单设计器:
(1)创建菜单
要注意菜单的层次关系。
创建子菜单:
输入菜单名,结果选择“子菜单”,单击“编辑”,进入子菜单中编辑子菜单。
返回上级菜单,在“菜单级”下拉列表框中选择。
(2)设置访问键(热键)
在菜单名称后面加上\<热键字符,如:
为“考试项目”菜单设置热键“Alt+M”,则选中“考试项目”菜单,在菜单名称中设置为:
考试项目(\(3)设置分组线
选择要设置的分组线下方的菜单项,单击“插入”按钮,在该菜单项上方插入了一个新菜单项,将该菜单项名称设为:
\-。
(4)设置快捷键
选择要设置快捷键的菜单项,单击“选项”按钮,单击“键标签”旁的文本框,在键盘上按下要设置的快捷键即可。
(5)设置某菜单项废止
选择要设置废止的菜单项,单击“选项”按钮,在“跳过”旁的文本框中输入.T.。
(6)插入系统菜单
定位到要插入的系统菜单同级别的下方的菜单,单击“插入栏”按钮,选择相应系统菜单,单击“插入”。
(7)设置菜单的命令或过程
常用的一些命令:
将vfp主菜单恢复为系统默认菜单:
setsysmenutodefault
调用表单:
doform表单名
运行查询:
do查询名.qpr
向当前表中添加空白记录:
appendblank
(8)设置菜单项的状态信息
选择要设置快捷键的菜单项,单击“选项”按钮,在“信息”旁的文本框中输入相应的状态信息,注意:
信息要加上英文双引号。
(9)菜单项的移动
选中要移动的菜单项的最左侧的灰色按钮,按住鼠标左键拖动到目的位置。
5.设计表单:
在项目管理器中选择已存在的表单文件,单击修改,打开表单设计器:
(1)设置表单的一些常用属性:
打开“属性”对话框,选择表单对象,选择相应的属性进行设置
caption:
设置表单的标题,该属性值是字符型,所以如果将非字符串设为表单的标题需要进行数据类型的转换。
例:
将表单标题设为系统日期,则将caption属性设为:
=dtoc(date())
backcolor:
设置表单的背景色
forceolor:
设置表单的前景色
picture:
设置表单的背景图片
alwaysontop:
表单是否始终在最上方
autocenter:
表单运行时在vfp窗口中自动居中
borderstyle:
表单的边框样式
maxbutton、minbutton:
表单是否具有最大化、最小化按钮
movable:
表单运行时是否可以移动位置
windowstate:
表单运行时是最大化、最小化还是正常状态。
(2)在表单的数据环境中添加表或视图
显示/数据环境,然后添加表或视图。
(3)设置控件的一些常用属性:
打开“属性”对话框,选择要设置属性的控件对象,选择相应的属性进行设置
控件的一些共有的常用属性
name:
对象的名称,注意和caption属性的区别
readonly:
只读
enabled:
废止或启用控件
标签常用属性:
Caption
BackStyle:
指定显示的标签是否透明。
AutoSize:
决定是否可以自动地调整标签的大小。
WordWrap:
确定标签上显示的文本能否换行。
Fontsize:
字体大小
Fonename:
字体名称
Forecolor:
前景色
Backcolor:
背景色
文本框和编辑框常用属性:
ControlSource:
指定与文本框绑定的数据源
Value:
指定文本框的当前选定的值。
InputMask:
指定文本框中数据的输入格式和显示方式。
Format:
指定控件的Value属性的输入和输出格式,即指定数据输入的限制条件和显示格式。
PasswordChar:
用设定的字符来显示用户输入的值。
ScrollBars:
编辑框是否有垂直滚动条
命令按钮和命令按钮组常用属性:
Caption:
指定在命令按钮上显示的文本。
Picture:
指定命令按钮的图片。
Default:
设置为.T.,则可以按[enter]键选择此命令按钮。
Cancel:
设置为.T.,则可按[Esc]键选择此命令按钮。
Enabled:
指定该按钮能否响应用户引发的事件。
Buttoncount:
设置命令按钮组中按钮的个数。
buttons(i):
可以用来访问各个按钮。
列表框和组合框常用属性:
RowSource:
列表框的下拉列表中数据的来源
RowSourceType:
列表框的下拉列表中数据的来源的类型
ControlSource:
用于指定从列表中选择的值保存在何处。
ColumnCount:
设置列的个数。
Style:
组合框是否允许用户输入数据。
选项按钮组常用属性:
Bunttoncount:
设定选项按钮组中的选项按钮数目。
Value:
表明用户选定了哪一个按钮。
各个按钮的Caption属性用来显示各个选项的文本信息
复选框常用属性:
Caption:
设置复选框的显示信息
Alignment:
控制信息左边或右边显示
表格常用属性:
RecordSource:
用来设置表格的数据源
RecordSourcetype:
用来设置表格的数据源类型
ColumnCount:
设置表格中的列数
DeleteMark:
指定在表格中是否出现删除标记列
微调框常用属性:
Value:
指定微调控件的当前值。
KeyBoardHighValue、KeyBoardLowValue:
指定从键盘输入微调框的最大/最小值。
SpinnerHighValue、SpinnerLowValue:
指定通过单击微调按钮输入的最大/最小值。
Increment:
指定单击上下箭头时,微调控件中数值的增加量或减小量,默认值为1.00
计时器常用属性:
Enabled:
设置计时器控件是否可用。
Interval:
用于指定计时器控件的Timer事件之间的事件间隔,单位为毫秒。
线条控件的主要属性:
BorderWidth:
指定线条的线宽
BorderStlye:
指定线条的线型
LineSlant:
指定线条倾斜方向(\、/)
形状控件的主要属性:
Curvature:
决定显示什么样的图形(0-99)
FillStlye:
指定用来填充图形状的图案
SpecialEffect:
指定控件的不同样式选项(三维或平面)
(4)设置访问键(热键)
在Caption属性中设置,设置方法为:
在访问键的字母前加一个\<,如:
\(5)编写事件代码
在程序代码设置对象的属性:
对象引用.属性名=属性值
在程序代码中调用方法:
对象引用.方法名
关闭表单:
thisform.release
表单刷新:
thisform.refresh
(6)设置工具提示文本
表单的showwindow设置为.T.,控件的tooltiptext属性设置为要出现的提示文本信息。
6.程序改错:
在项目管理器中选择已存在的程序文件,单击修改,打开表程序编辑窗口:
(1)先输入语句,运行,查看错误原因。
(2)根据程序的功能,逐条看语句,一般有两个错误,特别注意查看循环语句中是否有错误。
(3)注意变量的数据类型之类的错误。
表单上机题:
一、下列表单的功能是根据组合框中所选择的学号,在页框的第1页的表格中显示该学生各门课程的成绩,在页框的第2页中统计该学生的最高分和平均分。
1.设置组合框的ROWSOURCE和ROWSOURCETYPE属性,使之用于选择学生的学号。
2.将第1页中的表格的RECORDSOURCETYPE设置为1,RECORDSOURCE设置为”CJ”,编写第一页的ACTIVATE事件代码,使表格中显示所选学生的各门课程成绩。
3.编写第2页中的选项按钮组的CLICK事件代码,使文本框中根据选项按钮组的当前值显示当前学生的最高分或平均分。
4.编写“新增记录”命令按钮的CLICK事件代码,使得按下该按钮,CJ表中添加一条空白记录。
二、下列表单的功能是在文本框中输入年龄,按下“搜索”按钮,在下面的表格中显示该年龄段的教师的工号、姓名和所担任课程的课程代号。
1.在表单的LOAD事件中编写代码:
CREATECURSORcur_rk(ghc(5),xmc(8),kcdhc(20))
&&创建一张临时表
2.设置表格的RECORDSOURCETYPE设置为1,RECORDSOURCE设置为”cur_rk”。
3.编写“搜索”按钮的CLICK事件代码:
LOCALnl1,nl2
nl1=ThisForm.text1.Value
nl2=ThisForm.text2.Value
SELECTrk.ghASgh,js.xmASxm,rk.kcdhASkcdhFROMjs,rk;
WHEREjs.gh=rk.ghANDyear(date())-year(csrq)>=nl1ANDyear(date())-year(csrq)<=nl2;
INTOCURSrk_tmp;
ORDERBYxm&&查询年龄在文本框中年龄范围内的教师的工号,姓名和课程代号,并将结果输出到临时表rk_tmp
selectcur_rk
zap
APPENDFROMDBF("rk_tmp")&&先彻底删除临时表cur_rk中的所有记录,然后将rk_tmp中的记录追加到cur_rk中
ThisForm.Refresh
三、下列表单的功能是控制xm字段是否显示在表格中,如图所示。
图1
图2
1.将表格的设置表格的RECORDSOURCETYPE设置为1,RECORDSOURCE设置为”cj”。
2.给复选框编写click事件代码:
vfield='xs.'+ALLT(this.caption)
FORK=1TOThisform.Grid2.ColumnCount
IFthisform.grid2.columns(k).text1.controlsource=vfield
IFthis.value=1
ThisForm.Grid2.Columns(k).Width=80
ELSE
ThisForm.Grid2.Columns(k).Width=0
ENDIF
ENDIF
ENDF&&通过设置表格中该字段对应的列的宽度实现该字段是否显示。
2004年(春)二级VisualFoxpro上机试卷
(1)
(本试卷完成时间70分钟)
说明:
1.首先运行考试软盘中的“上级考试”应用程序以输入考生的准考证号、姓名和试卷代号;
2.启动VisualFoxPro系统后,首先在命令窗口中执行命令:
SETDEFAULTTOA:
以设置默认的工作目录,然后再开始做题。
一、项目、数据库和表操作(12分)
打开软盘根目录下的项目文件TEST,在该项目中已有一数据库SJK。
3.按如下要求修改SJK中学生(XS)表的结构:
(1)设置姓名(xm)字段的宽度,使之最多能容纳4个汉字。
(2)为了使xm字段在输入数据时自动删除前导空格,设置xm字段的相关属性。
(3)设置性别(xb)字段的默认值为“男”。
(4)增加一个备注型的字段,字段名为“备注”。
(5)创建唯一索引jsjg,要求按籍贯(jg)字段的升序排序,且仅对“江苏”籍的学生记录排序。
(6)为xs表设置说明信息:
学生基本信息表。
4.设置TEST项目的作者为考生自己的姓名。
5.彻底删除cj表中所有xh字段值开头为“99”的记录。
6.为xs表设置插入触发器:
学号开头两位只能是“00”至“10”。
7.如果在xs表中更改了某个学生的xh字段值,则要求自动同步更改成绩(cj)表中相应xh字段值,根据此要求设置这两个表之间的参照完整性。
二、设计查询(8分)
已知数据库sjk中含有视图bjst,视图中包含班级编号(bjbh)、系代号(xdh)、系名(ximing)、专业代号(zydh)和专业名称(zymc)字段,按如下要求修改TEST项目中的查询CHAXUN:
基于BJST视图和学生(xs)表以系为单位,按籍贯(jg)统计各系各地学生的人数,要求输出字段为:
ximing、jg、人数,查询结果首先按系名升序排序,同一个系再按人数降序排序。
三、设计菜单(5分)
项目TEST中已存在菜单MENUM,其中已定义了“文件”、“显示”和“表操作”三个菜单栏。
按如下要求修改菜单,完成后的运行效果如图1所示。
1.为“文件”下的“恢复系统菜单”设置快捷健“CTRL+R”。
2.在“文件”菜单栏下插入系统菜单“导出”。
3.为“表操作”菜单栏下的“记录定位”菜单项设置子菜单,该子菜单包括四个菜单项“第一条”、“上一条”、“下一条”和“最后一条”。
4.为“表操作”菜单栏下的菜单项“增加记录”设置命令:
当执行该菜单项时,在当前表文件中增加一个空白记录。
5.为“显示”菜单栏设置访问键“ALT+S”。
图1
四、设计表单(10分)
TEST项目中已经存在表单FORMM,该表单用来进行学生补考情况查询,根据下列要求修改表单,完成以后运行表单,效果如图2、图3所示。
1.列表框List1中显示课程代号(kcdh)与课程名(kcm)两列内容。
2.在List1的上方加一个标签,标签的Caption属性为“课程列表”。
3.表单运行时,页框初始激活第一页。
4.为List1编写Init事件代码,使得程序刚运行时光标停在List1的第一行上。
5.完善List1的InterActiveChange事件代码:
当选择不同的课程时,页框的第一页显示该课程的补考人数,第二页显示该课程补考学生清单。
图2
图3
五、程序改错(5分)
下列程序的功能是:
对英文字符串进行加密处理。
对英文字符串进行加密处理。
加密算法是:
将字符串中的第2、4、6、8(偶数位)个字符换成其“对称”字符(a与z对称,A与Z对称,b与y对称,B与Y对称,等等)。
例如,字符串“ABcdEF”加密后为“AYcwEU”。
要求:
1.项目中有一个程序文件PCODE,将下列程序输入到其中并进行修改。
2.在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。
CString=”ABcdEF”
CResult=SPACE(0)
FORn=1TOLEN(cString)
IFMOD(n,2)=0
cResult=cResult+SUBSTR(cString,n,1)
ELSE
c=SUBSTR(cString,n,1)
IFISUPPER(c)&&ISUPPER()函数的功能是判断一字符(串)是否为大写
cResult=cResult+STR(25-(ASC(c)-ASC(“A”))+ASC(“A”))
ELSE
cResult=cResult+STR(25-(ASC(c)-ASC(“a”))+ASC(“a”))
ENDIF
ENDIF
ENDFOR
WAITWINDOWS”字符串加密后为”+cResult
2004年(春)二级VisualFoxpro上机试卷
(2)
(本试卷完成时间70分钟)
说明:
1.先运行考试软盘中的“上级考试”应用程序以输入考生的准考证号、姓名和试卷代号;
2.动VisualFoxPro系统后,首先在命令窗口中执行命令:
SETDEFAULTTOA:
以设置默认的工作目录,然后再开始做题。
一、项目、数据库和表操作(12分)
打开软盘根目录下的项目文件TEST,在该项目中已有一数据库SJK。
1.要求修改SJK中课程(KC)表的结构:
(1)设置必修课(bxk)字段的默认值为逻辑真(.T.)。
(2)设置课程代号(kcdh)字段的输入掩码:
课程代号只能是四位数字字符。
(3)