logo资料库

vfp初学者教程——《菜鸟学习VFP》.doc

第1页 / 共125页
第2页 / 共125页
第3页 / 共125页
第4页 / 共125页
第5页 / 共125页
第6页 / 共125页
第7页 / 共125页
第8页 / 共125页
资料共125页,剩余部分请下载后查看
VFP程序安装简要说明
8÷2=4(千米)
Else
?”这个数据是数值型”
If vartype(a)=”L” or vartype(a)=”X”
Else
Else
Case vartype(a)=”L” or vartype(a)=”X”
Case vartype(a)=”D”
Case vartype(a)=”T”
Otherwise
*cx5
Input”请输入一个三位数” to x
Loop &&回去,重来
?x,”这个数不是同构数”
Endif &&别忘了,前面的条件语句
Do while i<=n
If b^2-4*a*c=0
Else
Endif
Endfor
N=3
Do p1 with n
“必须是A栋,B栋或C栋”
Select 户名,地址 from yh
Select * from yh
Select 户号,户名,地址 from yh
Select 户名,地址 from yh where left(户名,2)=”刘”
Select 户名,地址 from yh where left(地址,1)=”A”
Select 户名,地址,余额 from yh,yhzh where yh.户号=yhzh.户号
Select 户名,地址,余额 from yh inner join yhzh on yh.户号=y
Select 户名,地址,余额 from yh,yhzh where yh.户号=yhzh.户号 a
Select 户名,地址,余额 from yh inner join yhzh on yh.户号=y
Select yh.户号, 地址 from yh,yhzh where yh.户号=yhzh.户号
Select 户名,地址 from yh,yhzh where (yhzh.余额 between 0
Select 户名,地址 from yh where 地址 like “C%”
Select 户名,地址 from yh where left(地址,1)=”C”
Select avg(本月指数-上月指数) from ydzs
Select max(本月指数) from ydzs
Select left(地址,1) as 楼号 distinct from yh
ORDER BY 3 DESC;
INTO CURSOR temp
GROUP BY 1;
ORDER BY 2 DESC
菜鸟学习 VF6 菜鸟学习 VFP 前言 大学的暑假是珍贵的,像我这样暑假呆在家里面,整天无所事事的同学不在少数,为了 应付枯燥乏味的暑假,我决定在暑假学习一些知识,挑来挑去还是觉得选 VFP 比较有意义, 因为这门科需要过二级,相信许多看到这篇文章的朋友也要过二级,那么我们大家就从今天 开始共同学习吧。 所以从今天起,我的网上 VFP 学习课程便开张了,希望我能写完。说起为什么会开这 个专题,我相信很多读者都有疑问,学习就学习是了,干嘛还将自己的学习成果放到网上来? 我在这里要澄清一下,之所以我会选择这样做,是因为我觉得一个人在家里面学习太没有那 种气氛了,我希望能够放到网上来,大家看着想着,遇到问题大家可以在一起讨论,在一起 互相提意见,还有就是希望能够帮到有心学习 VFP,但是却觉得枯燥乏味而放弃的朋友。 在更新期间,我将在我的 QQ 空间(http://user.qzone.qq.com/591841742/infocenter?ptlang=2052 天下人犯是一家),上更新。欢迎大家转载,转载请注明出处,也希望大家能够在我的博客 上踊跃发言。 首先要说明的是本文仅针对上机考试编写,让你能够在计算机上完成初级的数据库程序 开发。关于理论的请多阅读教材。另外是针对 VFP 的初学者,也就是菜鸟级人物来学习, 为了应付随之而来的省和国家二级 VFP 考试的同学使用,如果是 VFP 数据库专业人员来这 里的话,希望多提提意见,不要见笑,错误之处,还请指正,就此拜谢!呵呵。 VFP 是 microsoft 公司开发的一款数据库管理系统(DBMS),全称是 Visual FoxPro。作 为二级考试科目的是采用关系数据库系统 Visual FoxPro 6.0 (为了区分版本,在以后的文章 中简称为 VF6),VF6 是小型数据库管理系统的杰作,它以强大的性能,完整而又丰富的工 具,较高的处理速度,友好的界面以及较完备的兼容性等特点,备受广大用户的欢迎。(注: 该段内容来自国家二级考试 VFP 课本前言——高等教育出版社出版) 好了,套话到此结束,本来上面的那一段话不想写的,然后又觉得至少把出处点明,在 吹吹牛,说 VFP 多好多好,毕竟人家公司开发这系统也不容易。由于 VF6 毕竟作为一门课 程来学习,枯燥乏味在所难免,但在这里,我尽量用友好,和谐,幽默的语言来面对大家, 希望给赏光的读者带来一个愉快又充实的暑假。 第一次写前言,写的不好,大家请多多海涵,不要留言骂我 - 1 -
菜鸟学习 VF6 第一天:VF6 编程基础(一) VFP 程序安装简要说明 在正式写这一课之前,我想先讲一下 VF6 程序安装说明,当然看到这儿的读者的电脑 里面可能已经安装了 VF6,那么本节可以略去直接看下一节。其实正版的图书里面大都是说 买什么 microsoft visual studio 套件包含有四个编程软件什么的,总的来说,在我们国家的情 况下,这些在我看来纯属废话,就让写这句话的人自己去买,他都不一定干。归根究底还是 咱国家的盗版太猖獗了,网络管制虽说最近见好,但是哪有那么容易彻底呢,所以大家可以 利用你的网络优势,马上去百度吧,这里需要说明的是一般 done 下来的压缩包解压后是一 个文件夹,我相信以你的电脑能够达到安装 VF6 的最低配置要求,双击 SETUP 安装,写序 列号的那儿都填 1 吧,如图所示。 然后直接点“下一步”,选择典型安装就行,最后会提示安装 MSDN,直接不睬他,我们不 需要,安装好之后便可以进入课程学习了。对于盗版,我也无语了,知识产权在我们国家很 难受保护,是政府的打击力度不够大吗?怪不得游戏市场在中国没有盗版就没有市场是一条 铁定法则了。 - 2 -
菜鸟学习 VF6 2.VF6 编程基础 纵观 VF6,只有这一部分可以独立出来学习了,咱们现在关于什么是数据库,什么是 二维表,什么是表单,等不懂没有关系,先通过学习编程来了解一下程序设计语言,这对以 后的 SQL 语言学习,面向对象程序设计,菜单,报表等设计都有很大的好处。 既然是基础,那就是从变量,常量开始说起,这两个概念,相信学过数学的人都懂, 但是在计算机程序语言关于常量的概念中加入了数据类型这么个要素,相信这也不难理解, 以下的,我们死记硬背:VF6 中的常量有:数值型(N),字符型(C),货币型(Y),日期 型(D),日期时间型(T),逻辑型(L)。 在这里不要把表的记录形式弄混了,表的记录类型中还有浮点型(F),双精度型(B), 整型(I),备注型(M)和通用型(G)。我在这儿点出来了,希望读者能够给予注意。 关于常量的类型,我觉得没啥好说的,书上讲了一大堆,其实只要看常量名就能知道 数据的大致内容了,这里有必要说一下逻辑型的数据只有”.T.”和” .F.”两种,即是和否,然后 说一下,在程序中将这些常量数据赋给变量的时候必须加定界符,下面举例说明: (1)将数值型赋给变量:store 23 to x 即直接赋值,无需加定界符。 (2)将字符型赋给变量:store “你好” to y ,即需要在数据两边加上一对引号,可 以是双引号,也可以是单引号,一般也可以以括号的形式赋值,如 x = [你好]. (3)将货币型赋给变量:store $100 to z ,即在数字前面加上”$”.其他的细节参阅 书本,在此不做详细介绍(不是我懒,实在没这必要)。 (4)将日期型赋给变量:store {^1990-08-20} to w ,即在数据上加一对大括号, 然后数据前方加上“^”,这是严格的日期格式,还有传统的日期格式:{08/20/90} {08-20-1990} {08 20 1990} 等。然后日期的显示格式都是可调的,比如年份的位数,月日年,年月日,日 期间隔符号等。 比如:set century on/off set date to ymd (year month date ) set mark to “-“ 这容易套吧?以后所有的语句我都是通过举例的方式来让读者套用,而不像书上直接把公式 写出来,很是晦涩。 (5)日期时间型赋给变量:store {^1990-08-20,02:38a} to r //将时间 02:38 AM 赋给 变量。 (6)前面讲过了,我不讲了。 其实这么多,我觉得也不是太重要,当然这是针对上机,理论中还是要掌握的,见教材第二 章前面。 - 3 -
菜鸟学习 VF6 常量说了这么多,相信大家也能够了解个大概了,有的教材上说了很多,没关系,现 在只要把上面所说的背下就 OK,等你编程有一定基础了回来看就会觉得简单多了。 下面说说变量,变量名要求啦,等等见书本,咱们上机之需要一个字母搞定!然后就 是数组,再下看来数组这玩意比普通变量稍微复杂,不过也就稍微那么一点点,看我通过举 例道来 Dimension x(3) 这样就定义了一个一维数组,包含三个变量,即 x(1),x(2),x(3). Dimension x(2,2) 这样便定义了一个二维数组,包含四个变量,即 x(1,1), x(1,2), x(2,1), x(2,2)。 整个数组的数据类型为 A(array)array 为英文数组的说法。实际在编程中经常会遇到 一维数组的使用,二维数组较复杂,编程题中较罕见,有兴趣去翻一些专业的教材。在后面 的编程题中,我会通过举例的方式来使用一维数组。 下面我们共同学习程序中的表达式,先学习最简单的数学表达式。 加,减,乘,除分别对应于“+”,“-”,“*”,“/” 次方是数字前面加一个”^”,然后加上幂数。 或者是数后面用两个乘号,如 6 的三次方为 6^3 或者 6**3 ,根号同样可以写成幂指数。最 后是求余公式“%” 如:8%3=2 ,还有括号的用法和数学类似括起来就是将某个表达式单 独运算,如:6^(1/2)=2.45 (默认保留两位小数), 其他的我们菜鸟暂时不用掌握。 怎么样?简单吧,数学公式中用上面的几个符号就可以表达出来了。 还有字符表达式,等在高等教育出版社出版的二级 VFP 教程上第 56 页有详细的介绍,先去 翻课本。翻完后再继续回来看。下面将所学的内容复习一下,以上所说的内容实例见下图, 大家在看完后,最好也先能实际操作一下,(所有标点符号用西文状态下的!) - 4 -
菜鸟学习 VF6 好了,大家书本上的知识都看完了吧,相信我们都对常量,变量,表达式有了初步的 了解,下面进入程序的基本组成元素,函数。 函数分为数值函数,字符函数,日期时间函数,数据类型转换函数,测试函数,在教 材的 61 页,再去看书吧(真的不是我懒,实在是不需要,我写的这玩意只是教程,不是教 才,这些基础的必须要通过书本来掌握,如果这些我都写那整个暑假都是不够的,所以关于 函数,在程序中遇到,就会有详细的解释) 今天是第一天,说的内容不多,其实也没啥好说的,希望读者能够把常量的几种类型, 变量,以及数组,表达式,函数,等牢记于心,明天我们正式讲简单的 VFP 程序编写。 哦,很晚了呢,我想去困觉了,今晚开始准备写这玩意,希望我能一直写下去,如果 大家支持的话,我会很高兴的,如果没有人支持,我也要一直坚持下去。 - 5 -
菜鸟学习 VF6 第二天:VF6 编程基础(二) 昨天较为简单的说明了程序语言中常量,变量,以及函数表达式等程序体的基本元素, 今天我们正式说明在 VF6 中最基本的面向过程程序语言编写。 其实在我看来,程序语言就是许多个表达式连在一起而组成的特定的格式的文本,例 如我们在小学里经常会遇到这样的数学题: 小明在二个小时走了 8km 的路程,问你小明家离学校有 2km,需要多少时间才能到? 我们现在可能会直接就写出答案了,说来惭愧,那个时候我上小学的时候最怕遇到此类应用 题,当时我们会先写出公式算出每小时走多远,然后在拿 2 除以这个每小时走的路程。得到 的就是我们想要的答案:具体写出来就是: 8÷2=4(千米) 2÷4=0.5(小时) 这个就是我们当时的解题步骤,最后不要忘了答一下,呵呵。当然这个比较简单,今天 我们想要说的是程序,就假设我们来编程算这个应用题,我们的思路和上面的一样,只是用 VFP 的程序语言,首先,我们在程序语言里面经常会先清除窗口内容,即 clear ,所以我们在 做编程题的时候,这个一般不重要,这个 clear 可要可不要,在程序结束处还有个 RETURN, 这在我们平时的编程里面也是可有可无的,它的作用是返回调用它的上级程序,在一些大的 程序里面那就必须引起足够的重视。我们在编程的过程中我们得到了另外的常量 4 和最后的 结果,因此我们需要两个变量来存储它们,意思就是给它找个代号,在表达式中引用它。最 后要说明的是输出号是“?”和“??”前一个是在主程序中换行输出,后一个是不换行输 出。一次性可以同时输出多个结果,将这些变量和常量之间用“,”号或空格隔开。当然在 输出常量的时候记得加上定界符! 下面我们把上面的转换成为 VFP 程序语言。双击打开 VF6,然后点文件-新建-程序-新 建文件,或者在命令窗口中输入 modi command 然后输入程序语言,输入完毕后点程序-运 行,或者直接点工具栏上的感叹号,首先系统会提示你先保存,这里说一下,在以后的程序 文件和数据库文件中,我的位置是在 E 盘 vfp 文件夹,建议大家使用同样的文件名,文件路 径和文件夹。 *cx1 Clear T=8/2 &&算出中间值,用 T 存储 S=2/t &&得出结果,存储在变量 s 中 - 6 -
菜鸟学习 VF6 ?”需要”,s,”小时” Return 说明一下,这里以*号开头的一行,以及每行&&后面的部分均为解释说明,不参与运 行,因此读者在输入程序时可以把这些忽略掉。 程序及其运行结果如图所示: 好了,这就是我今晚要说明的第一个程序,虽然非常简单(简单到什么程度呢?没有 用到函数,没有用到程序语言,甚至表达式一步就能搞定:s=2/(8/2),呵呵。),我却花了很多 的文字,目的是希望大家都能看懂,这样我也会倍感欣慰,有必要说明一下,在以后的程序 编写中,如果大家有更好的方法,希望你能以留言的方式告知与我,感激不尽) 上面只是为程序开了个头,下面我们继续,这次我们来编这个老掉牙的程序,给你一 个半径,算出圆的周长与面积: 圆的周长为:C=2πr 圆的面积为:s=πr2 这里我们需要用到一个函数,圆周率函数, 相信我们在昨天已经记得这个函数了:PI() 它就是得到圆周率的函数可以直接当一个常量 来使用。然后我们需要从键盘接受一个值作为半径,我们用 r 来存储这个值。然后接收数据 在 VF6 中有两种 input 和 accept 前一种可以接收任何类型的常量,但需要加上定界符, 后一个不管输入什么都是当成字符型(C)常量来对待。好了,下面看程序体: *cx2 Clear Input “请输入圆的半径” to r &&接收圆的半径值。引号里面的内容显示在主窗口。 C=2*pi()*r &&算出圆的周长 S=pi()*r^2 &&算出圆的面积 ?”圆的周长是:”,c,”圆的面积是:”,s Return 在这里啰嗦一句,大家在试验这些程序的时候最好自己敲,不要复制,因为敲程序也是 - 7 -
菜鸟学习 VF6 一项技术活。好了,程序及其运行结果如图所示: 下面我们引进一个程序体里面的判断语句,通俗一点讲就是如果这样我该干哪些事,如 果不是这样是那样我又该哪些事,如果不是这样又不是那样是其他的样子,我又该干哪些 事……这个语句就是 if 语句和 case 语句,本人看来其实还是 case 语句要简单的多,但其实 二者都不难理解,只不过在条件比较多的时候,if 显的要麻烦一点。下面我通过举例的方式 来说明程序中这两条语句的使用。 从键盘接收一个数据,判断这个数据的类型,并输出。 我们在前面已经讲过了,VFP 常量有六种基本类型,vartype 函数可以返回这些数据的 类 型 , 其 中 有 一 个.null.值 比 较 特 殊 , 空 值在 普 通 的 情 况 下 返 回 的 是 X 表 明 是 空 值如 vartype(.null.)=”X”,但如果在函数后面加上一个.t.的逻辑表达式,如 vartype(.null.,.t.)则会返 回 L 表明该数据为逻辑型,vartype 函数返回的是字符型,因此在程序中必须将 vartype 返回 的值加上定界符引号,此外此函数还可以返回通用型,未定义型等,这些可以不用掌握,如 感兴趣可以上网搜索。下面我们先用 if 语言做: *cx3 clear Input”请键入数据:” to a If vartype(a)=”C” &&表面输入的数据是字符型,下同 ?”这个数据是字符型” Else If vartype(a)=”N” ?”这个数据是数值型” Else - 8 -
分享到:
收藏