Visual Foxpro.docx
《Visual Foxpro.docx》由会员分享,可在线阅读,更多相关《Visual Foxpro.docx(48页珍藏版)》请在冰豆网上搜索。
VisualFoxpro
如何顺利通过全国计算机等级二级VFP的考试
作为一名辅导老师,每次上课,学生最关心的问题是如何顺利通过考试。
针对全国计算机等级二级考试的要求和学生的自身特点,我认为作好以下几点非常重要:
一.首先要掌握正确的学习方法
学习是提高自身能力的最有效方法,报开始培训班,听辅导老师授课,通过考试的可能性很大,但是,有些学生只带着教材来听课,以为听懂老师的授课内容就可以达到应试的要求;这种把学习认为是听课的学生,上考场后会发现考题听老师讲过,就是无法在规定的时间内做出一份满意的答卷。
正确的学习方法有四个步骤:
预习,听课,复习,做练习。
预习就是把上课前自己先把所学的内容至少看一遍,那些内容已经掌握,哪些内容还存在问题;通过预习可以确定自己听课的重点。
听课是学习最重要的一个环节,听课的目的是解决自己不懂的问题,尤其是自己的理解与老师讲解的差距的地方;做笔记是课堂学习的一个良好习惯。
复习是对所学内容的归纳与总结,在复习是要求学生理清思路,总结重点,对需要记忆的内容进行适当背诵。
做练习是对学习效果的检查,通过做适量的习题,可以找出自己的薄弱环节,尤其是要高度重视自己做错的题,一定要结合教材内容全面掌握。
二.其次要全面熟悉指定教材的内容
许多学习计算机等级考试的考生,还有一些曾经考过计算机等级考试的考生,不重视对指定教材的学习;甚至有些考生在上考场时,还没有把指定教材认真看一遍。
这就形成了计算机专业的过关率不如非计算机专业的过关率,有一些考生几年也拿不到计算机二级合格证书。
最近几年国家对计算机等级证书非常重视,具体反映在几乎每年都有新题型推出,这些新题的推出在作题和考试过程中发生了重大的变化,如果不学习新的知识,按以前的要求去解题,得分的可能性很小。
2005年,教育部对计算机等级二级考试的科目,考试大纲进行了调整与变化,有原来的一部分考试内容改变为两部分内容,即计算机二级内容和所有计算机二级全部新增公共基础知识的考察。
2007年下半年教育部对全国计算机等级考试的指定教材进行了重新修订。
对2005年计算机机试新题发生了重大变化;这些内容的变化给考生应试增加了难度。
如果考生把指定教材认真看几遍,甚至没有2007版的计算机等级指定教材,要想在考试中过关,这种可能性会有多大?
三.做一定数量的练习题
计算机等级指定教材的内容是计算机知识和公共基础知识;在考试中,这些知识是以各种具体的考题出现在考生的面前,要求考生多做单选题和填空题,把所学的知识转化为应试能力,作出一份让自己满意,让阅卷老师能给60分以上的试卷,才是每位考生所追求的目标,要达到这个目标,做一定数量的练习题是必不可少的。
一般在听完一堂课后,作一些客观题,检验自己所学考点的掌握程度;在学完一章内容后,在规定的时间内做一定数量的各种类型的习题(如半小时做30到选择题,15到填空题,一套机试模拟题)检验自己的答题速度;在学完全部内容后,应在与考试内容相同时间范围内,做最近几年的考题或全真模拟题,检验自己的应试能力。
四.一定要重视最近几年的考题
事实求实的说,最近几年的考题值得研究。
全国计算机等级考试是由国家教育部发布的考试科目,考试大纲,各省,直辖市,自治区自考办组织考试,考试合格有国家教育部考试中心颁发《全国计算机等级考试合格证书》,重视历年考题从2005年考试大纲发生变化后重点掌握。
通过以上对历年考题的简单分析,希望能帮助考生了解考试的基本要求。
考试的总体难度在提升,反映了国家对计算机等级考试的要求在不断提高。
这些要求对考生来说,既是挑战,又是机会。
挑战是指考试学习的内容将更多,应试的难度增大;机会是指考生如果顺利通过计算机等级考试,将是一名合格的计算机操作人员,一定能在以后的工作生活中大显身手。
最后,预祝广大考生顺利通过计算机等级考试,早日成为一名21世纪合格的人才。
第一章计算机二级Visualfoxpro6.0基础理论
第一节基础
VisualFoxPro6.0在windows平台运行的32位数据开发系统之一,它采用了可视化的操作界面,面向对象的程序设计方法,大大简化了应用系统的开发过程,提供了强大的操作工具,是目前开发数据库系统软件之一。
一.VisualFoxPro6.0的工作方式
(1)命令/菜单的交互方式
简单介绍命令和菜单的运行方式
如:
①Creatdatabase数据库名
②用菜单新建表,项目,数据库等
(2)程序执行方式
如做表单的程序应用(字体向左走和字体变大变小)
ifthisform.lable1.left<=800
thisform.lable1.left=thisform.label1.left+1
else
thisform.lable1.left=0
endif
二.VisualFoxPro6.0的主要文件类型(列举几种)
(1)项目(pix)
(2)数据库(dbc)(3)自由表(dbf)
(4)程序(prg)(5)表单(scx)(6)报表(frx)
(7)单索引(idx)(8)复合索引(cdx)(9)文本文件(txt)
(10)菜单(mnx)
三.数据类型的表示和部分宽度
1.数据类型
①字符型(C)②数值型(N)③逻辑型(L)
④日期型(D)⑤时间型(T)⑥备注型(M)
⑦通用型(G)⑧浮点型(F)⑨双精度型(B)
⑩整型(I)11货币型(Y)
2.数据类型宽度(介绍系统自定义的几种)
(1)宽度为1:
L
(2)宽度为4:
I、M、G
(3)宽度为8:
D、T
注意:
(1)一个汉字宽度为2位符,一个数字或字母及符号占一个字符
(2)在建表过程中,必须选定数据类型和宽度
(3)比如N(8、2)表示N为数值型,8总宽度
3.表示小数点位数
举例:
建表讲解
学号姓名性别是否党员出生日期总成绩语文数学英语备注照片
四,系统路径
在VFP中,可以设置临时工作路径和永久路径两种,系统路径只限于平时上机练习,在考试中,切不可尝试
(1)临时路径:
SetdefaulttoC:
\kxst
(2)永久路径:
工具→选项→文件位置→默认目录C:
\kxst设置默认值
第二节数据库理论
一.数据信息和数据库(DB)
1.概念
(1)数据:
一切文字,数字,字母及其他符号组成的文本数据和以及图象,声音组成的多媒体数据的总和。
(2)信息:
处理过有用的数据
(3)数据库:
存储数据的空间,场所成仓库
2.三大模型
(1)层次型()
用树形结构表示实体及其之间联系的模型
例:
系
系代方系名系主任地点电话
教研室课程
教研室名办公室主任电话课程方课程名学分课时
教师
职工号姓名性别职称
(2)网状模型
用网状结构表示实体及其之间联系的模型
例:
专业系
教研室课程学生
教员任课选课
网状模型示例
(3)关系模型
用二维表结构表示实体及其之间联系的模型
注:
关系数据库模型以其完备的理论基础,简单的模型,说明性的查询语言和使用方便等优点得到了广泛使用。
二、数据库管理系统(DBMS)
它是数据库系统的核心,是位于用户及操作系统之间的一层数据管理软件,用于实现对数据的查询,更新,输入,转换等操作。
三.数据库应用系统(DBAS)
是开发人员利用数据库资源开发出来的面向某一类实际,应用的应用软件系统。
如:
人事管理系统,教学管理系统,生产管理系统。
四.数据库系统(DBS)
1.组成:
(1)硬件系统
(2)数据库集合(3)数据库管理系统(4)数据库应用系统(5)用户
2.特点:
(1)数据结构化
(2)共享性(3)独占性(4)可冗余
3.关系:
DBS包含DBMS,DBAS,DB
五.关系数据库
1.关系术语
(1)关系:
一个关系就是一张二维表
(2)元组:
在一个二维表中,水平方向的行称为元组,每一行是一个元组(行-记录-元组)
(3)二维表中垂直方向的列称为属性(列-字段-属性)
(4)域:
范围(性别=“男“或性别=”女“)
2.关系运算
1.传统的集合运算
A.并:
两个相同结构关系的并是由属于这两个关系的元组组成的集合
B.差:
例如,设有参加计算机小组的学生关系R,参加桥牌小组的学生是S.
C.交:
A和B的共同元组
注意:
在vf中设有直接提供传统的集合运算,可以通过其他操作或编号程序来实现。
3.专门的关系运算
(1)选择:
从关系中找出满足给定系统的元组的操作。
如:
list性别=“男“
(2)投影:
从关系模式中查询出所有出版单位,书名及作者,所进行的查询操作就属于投影运算。
(3)联接:
联接是关系的横向结合,联接运算将两个关系模式拼接成一个更宽的关系模式,生成的新关系中,包含满足联接条件的元组。
区别:
如选择如投影运算是对一个表的操作,联接运算需要两个表操作。
例如:
有职工和工资两个表,查询基本工资大于640元的职工姓名,性别,职称,基本工资,实发工资,奖金。
由于性别,职称,在职工表中,而其他字段在工资表中,需要把这两个表联接起来,然后再进行投影运算。
第三节数据库设计基础
一.数据库设计步骤
1.设计原则
(1)关系数据库的设计应遵循概念单一化“一事一地“的原则。
例如:
把一类的信息归为一类。
(2)避免在表之间出现重复字段
(3)表中字段必须是原始数据和基本数据元素。
在职工表应当包括出生日期字段,而不包括年龄字段,当需要查询年龄时候可以通过简单计算得到准确年龄。
(4)用外部关键字保证有关联的表之间的联系。
2,设计的步骤
(1)需求分析,确定建立数据库的目的,有利于保存哪些信息
(2)确定需要的表。
可以着手把需求划分成各个独立实体。
如:
客户,职工表订单,每个表可以设计成数据库中的表。
(3)确定所需字段(4)确定联系(5)设计求精
二.数据库设计的过程
1.需求分析
(1)信息需求
(2)处理需求
(3)安全性和完整性要求
2.确定需求表
3.确定所需字段
4.确定联系
5.设计求精
A.是否遗忘了字段
B是否存在保持大量空白字段
二.联接条件,各个关系中存在可以相互连接的字段
1.联接方式
(1)一对一
(2)一对多(3)多对多(通过纽带表联接)
2.联接的种类:
(1)永久联接
(2)临时联接
第二章表的基本操作
一.操作命令
1、数据库表
(1)新建:
Creatdababasecccreat表
打开:
opendababaseccuse表
关闭:
closeuse
修改:
modifymodify
2.显示
list(全部显示)display(当前显示)
3.修改结构
ModifyStructure
4,字段的修改
*增加新字段:
add
Altertable表名add联系电话n(15)
*更改名称:
rename
AltertableXSrename姓名to性别
*更改宽度与类型alter
AltertableXSalter姓名C(8)
*删除字段名:
drop
AltertableXSdrop姓名c(6)
二,表记录的操作命令
1.表记录的修改
(1)browse:
浏览修改
(2)Edit:
编辑修改
(3)Change:
逻辑修改
(4)replace:
替换修改:
replaceall总分with语文+数学
2.表记录的定位
gon:
将当前记录定位到第n条
gotop:
表头
goeop:
skip+n上下移动,正向下移,为负向上移(不包含当前记录)
3.记录的删除
delete逻辑删除,只加删除标记,并没有真正删除。
Pack物理删除,将所有带删除标记的全部删除。
Recall恢复被逻辑删除的当前记录。
Zap将所有记录删除
4.表的复制(copy)
(1)复制表记录:
copyto新表名
(2)复制表结构:
copystructureto新表名
例如:
use学生
copystructureto教师
use教师
brow
6.追加记录append
append:
在表尾添加记录
appendfrom表名:
将一个表的信息全部追加到另一个表
如:
useXS
appendfromcc
browse
7.插入记录insert
(1)insertblank插入一条新的空白记录
(3)insertbefore在当前记录前面插入一条新记录
三.范围
(1)all(全部,所有)
(2)next3表示包含三条记录
(3)record3表示第三条记录
(4)rest从当前开始的所有记录
注意:
(1)all,rest不带参数
(2)next和record必须带参数
(3)它们都含当前记录,而skip却不含当前记录
四.条件
(1)for满足条件的记录全部显示
(2)while遇到一个不满足条件的在不继续往下显示
如:
listfor性别=“男”
五.字段fields
如果表中的所有记录全部显示,可以不用fields,若要显示其中某n列,则加fields
listfields字段1,字段2,字段n
练习题:
1.显示信息训练
(1)显示从第三条到第五条记录中所有患有非典症状人的信息。
go3
brownext3for是否非典=.t.
(2)显示从第三条开始的五条记录中生日在1984以前的女生的信息。
Go3
Listnext5for出生日期<{^1984/01/01}and性别=”女”
(3)显示所有非未成年人的姓名和性别。
Listfor出生日期<={^1990/01/01}fields姓名,性别
2.修改信息的训练
(1)修改从第三条到第五条记录中所有患有非典症状的人的信息
Go3
Brownext3
(2)修改从第三条开始的五条记录中生日在1985年以前女生的信息
(3)修改所有未成年人的姓名和性别
Browforchusheng>={^1990/01/01}fields姓名,性别
答案:
3.删除信息训练
(1)删除年龄大于20周岁的男生的信息
Deletefor出生日期<={1988/01/01}
(2)删除从第三条开始的五条记录中生日1985年以后的女生的信息
Go3
Deletenext5for出生日期>={^1985/01/01}and性别=”女”
(3)删除所有非未成人的信息
答案:
4.复制信息训练
(1)复制从第三条到第五条记录中所有是团员的信息
Go3
Copynext3for是否团员=.t.
(2)复制从第三条开始的五条记录中生日在1985年以前的信息
Go3
Copynext5for出生日期<=
5.Replace使用
(1)将所有女生的年龄增加10岁
Replaceall总成绩with语文+数学+英语
假设当前有XS表,dbf表,表中含英语,语文,数学三个字段,现要求你用编程求出该表的总成绩
(2)
答案:
(1)replaceall年龄with年龄+10for性别=“女”
(3)replaceall总成绩with语文+数学
6.建立一个表进行表的操作练习
7.组织学生练习章节练习
8.在每节上课前进行提问,复习上一节课所学的掌握情况
第三章数据元素与函数
注意:
主要在理论考试中考,机试内容较少
第一节常量和变量
一.变量
1.概念:
值相对变的变量
2.特点:
(1)变量名不区分大小写
(2)后一个覆盖前一个
如:
Ab=3
aB=6
?
Ab+aB
3.变量的赋值(store)
(1)一个值赋给一个变量如:
a=3
(2)同时将一个值赋给多个变量
例如:
store3toa,b,c
显示?
4.值的显示
(1)?
换行显示
(2)?
?
同行显示
(3)list/displaymemorylikea显示类型,宽度等
5.删除
(1)replaceall
(2)clearmemoryall功能等价
6.分类:
字段变量和内存变量
练习:
假设XS表中第一条记录的姓名值是“张三”如果在命令窗口中敲入姓名:
123,请问这样的表示方法是否合理?
如果显示变量,结果是什么?
注意:
同时出现同名的字段变量与内存变量时,显示的是字段变量的值,因为字段变量的优先级高于内存变量。
二.常量
1.概念:
值相对不变的量
2.类型
(1)字符型:
凡用()“”[]括起来的信息都称为字符型
如:
“123”[123]
(2)数值型:
是常数用来表示数量的大小,由数字0-9,小数点和正负号构成。
如:
12,3,45,-6.78
注意:
5.878E12表示5.878×1012
(3)日期型
A.系统默认:
月/日/年
如:
listfor出生日期={11/27/06}
B.严格日期:
{^2006/11/27}
C.逻辑型:
T,F
注意:
前后两个句点作为逻辑型常量的定界符不可缺少。
第二节数组和运算符及表达式
一.数组:
名称相同,下标不同的一组元素
1.数组的定义
(1)dimension数组名(<下标上限1>,<下标上限2>……)
(2)declare
如:
dimex(3)一维数组有3个元素
dimex(3,2)二维数组6个元素
2.数组的赋值
注意:
默认值(F)
aa(1,1)=12aa(s)=“中国”aa(9)={11/25/99}
3.显示listmemorylikeaa
aa(3,4)3行4列元组:
12个元素
4.数据的传递
(1)数据由表发送数组:
scalterto数组名
(2)数据由数组发送表:
gatherfrom数组名
例如:
(1)如何把第一条记录复制到第二条记录
go1
scaltertoaa
go2
gatherfromaa
(3)如何把第一条记录和第二条记录互换位置
go1
scaltertoaa
go3
scaltertobb
go1
gatherfrombb
go3
gatherfromaa
举例:
例如一个箱子有香蕉,另一个粉笔相互互换位置
二.运算符与表达式
1.算术运算符:
+,—,*,/,%,求余,平方根
如:
?
3%2
?
2^4
2.字符运算符:
+,—
如:
?
“abc”+df“
?
abc“-df“
最后比较结果有什么不同
3.日期:
+,—
?
{^2006/11/27}-10若干天前的日期,反之相加若干天后的日期
*?
{^2006/11/27}-^{1984/01/23}/365
注意:
日期-日期=相差天数日期相加无意义
4.关系运算符:
=>,<>,<=,$,==,!
=
$包含:
左包含右为真,否则为假
如:
?
“ab“$”abc”结果(T)
?
“abcd“$”abc”结果(F)
5.两种特殊的比较运算符
1)一般比较运算
(1)数字比较?
3>2(T)按数量大小
(2)字符比较?
“陈真“>”陈世美“(T)按拼音比较
(3)嵌套比较?
‘17’>‘9(F)按位置比较
2)状态比较
(1)setexactoff粗略比较
如果左包含右为真,否则为假
?
“abc“=”abcd“(T)
?
“abc“=”abcd“(F)
(2)setexacton精确比较
先用空格补充位置,再比较
?
“abc”=“abc”
?
“abcd”=“abc”
第三节函数
一.函数
1.定义:
如图所示,当自变量X发生变化时,函数值Y也相应地发生变化,因此把Y称为X的函数。
X取0,1,2时,Y为1,4,7
2.分类
本章将常用函数分为5大类,通过举例介绍
(1)数值型函数
1)ABS返回指定的数值表达式的绝对值
例如:
x=10
?
abs(5-x)5?
abs(-1)1
2)int求整数
如:
int(678.6)
3)sqrt求平方根如:
?
sqrt(16)
4)round(678,678,-2)四舍五入
如:
?
round(125,456,1),(123,456,-1)
5)pi()如:
?
pi()结果3.14
6)max最大min最小
例如:
?
max(1,2,5)?
min(“a”,“T”,“t”)
7)mod()求余数(两个数值相除后的余数)
如:
?
mod(8,15)
(2)字符型
1)len()求字符总长度如:
?
len(“中华人民共和国”)
x=“中文visualFoxpro6.0”
?
len(x)结果:
20
3)trim()剪切后面的空格
ltrim()前面的空格
alltrim()剪切前后空格
例如:
x=”hh”
y=”ff”
z=”ddbbb”
?
trim(x)+ltrim(y)+alltrim(z)
4)upper()小写转化大写函数
lower()大写转化小写函数
例如:
?
upper(“abc=123”)
?
lower(x1y2AA)
5)space()空格生成函数
例如:
?
”ff”+space(10)+”hh”
6)substr从指定的位置起取函数值
?
substr(“sbcdef”,3)
?
substr(“abcdef”,3,2)
7)left()从指定左面取一个子串作为函数值
right()从指定的右面取一个函数值
例如:
x=”goodbye”
left(x,2)
?
right(x,3)
8)occurs求第一个字符串在第二个字符串中出现的次数
如:
x=”abcddffeaa”
?
occurs(“e”,x)
occurs(“f”,x)
9)求子串位置的函数
atc()求位置不区分大小写
at()求位置区分大小写
如:
X=”ThisisVisualFoxPro”
?
at(“fox”,x)
?
atc(“fox”,x)
?
atc(“is”x,3)
10)stuff()替换函数
如:
x1=”goodmorning”
x2=”bye”
?
stuff(x1,6,7,x2)
11)chrtran()替换
如:
x1=”计算机世界”
x2=”计算机ABC”
?
CHRTRAN(x1,x2,”电脑”
注意:
比较字符串是否相等,相等替换,不相等移第一个字符串.
12)like匹配函数
?
表示任意一个字符*表示一个或多个字符
如:
?
like(“AB?
”,”ABFT”)
(3)日期型
1)?
date()系统日期
例如:
?
date()显示当前日期
2)time()系统时间
3)datedime()系统时间
4)year(date())年
5)month(date())月
6)day(date())日
7)hour(dateti