书签 分享 收藏 举报 版权申诉 / 43
上传文档赚钱

类型VisualFoxPro程序设计教程学习培训模板课件.ppt

  • 上传人(卖家):林田
  • 文档编号:4141910
  • 上传时间:2022-11-14
  • 格式:PPT
  • 页数:43
  • 大小:1.20MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《VisualFoxPro程序设计教程学习培训模板课件.ppt》由用户(林田)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    VisualFoxPro 程序设计 教程 学习 培训 模板 课件
    资源描述:

    1、1.数组的声明 语法格式为:DIMENSION|DECLEAR数组名数组名(行数行数,列数列数)2.数组的赋值【例6-1】随机产生10个两位整数,找出其最大值、最小值和平均值。设计步骤如下:(1)建立应用程序用户界面与设置对象属性。(2)编写代码。随机整数的生成由表单的Activate事件代码完成:PUBLIC a(14)因为要在不同的过程中使用数组,故声明为因为要在不同的过程中使用数组,故声明为PUBLICp=FOR i=1 TO 14 a(i)=INT(RAND()*90)+10 p=p+STR(a(i),3)+,ENDFORTHISFORM.Label2.Caption=ALLT(LEF

    2、T(p,LEN(p)1)THISFORM.Label3.Caption=最大值最大值=THISFORM.Label4.Caption=最小值最小值=THISFORM.Label5.Caption=平均值平均值=求 最 大、最 小 以 及 平 均 值 由“确 定”按 钮Command2的Click事件代码完成:min=100max=10s=0FOR i=1 TO 14 IF a(i)max max=a(i)ENDIF IF a(i)min min=a(i)ENDIF s=s+a(i)NextTHISFORM.Label3.Caption=最大值最大值=+STR(max,3)THISFORM.La

    3、bel4.Caption=最小值最小值=+STR(min,3)THISFORM.Label5.Caption=平均值平均值=+STR(s/14,6,2)“重置重置”按钮按钮Command1的的Click事件代码:事件代码:THISFORM.Activate 最后是最后是“关闭关闭”按钮按钮Command3的的Click事件代码:事件代码:RELEASE THISFORM1.重新定义数组的维数2.数组变量的释放 使用RELEASE命令可以从内存中释放变量和数组。其语法是:RELEASE 变量列表变量列表|数组名列表数组名列表【例6-2】斐波那契(Fibonacci)数列问题。Fibonacci数

    4、列问题起源于一个古典的有关兔子繁殖的问题:假设在第1个月时有一对小兔子,第2个月时成为大兔子,第3个月时成为老兔子,并生出一对小兔子(一对老,一对小)。第4个月时老兔子又生出一对小兔子,上个月的小兔子变成大兔子(一对老,一对大,一对小)。第5个月时上个月的大兔子成为老兔子,上个月的小兔子变成大兔子,两对老兔子生出两对小兔子(两对老,一对中,两对小)这样,各月的兔子对数为:1,1,2,3,5,8,这就是Fibonacci数列。其中第n项的计算公式为:Fib(n)=Fib(n1)+Fib(n2)设计步骤如下:(1)建立应用程序用户界面与设置对象属性。(2)编写代码。首先在表单的首先在表单的Load

    5、事件代码中声明全局变量数组事件代码中声明全局变量数组F():PUBLIC F(1,2)F(1,1)=Fib(1)F(1,2)=1 在表单的在表单的UnLoad事件代码中释放全局变量数组事件代码中释放全局变量数组F():RELEASE F 在微调器控件在微调器控件Spinner1的的InteractiveChange事件代码中改变事件代码中改变数组的大小:数组的大小:n=THIS.ValueDIME F(n,2)F(2,1)=Fib(2)F(2,2)=1FOR I=3 TO n F(i,1)=Fib(+ALLT(STR(i)+)F(i,2)=F(i1,2)+F(i2,2)ENDFORTHISFO

    6、RM.List1.NumberOfElements=n 表单运行结果如图表单运行结果如图6-5所示。所示。【例6-3】设有一个55的方阵,其中元素是由计算机随机生成的小于100的整数。求出:(1)主对角线上元素之和;(2)方阵中最大的元素。如图6-6所示。设计步骤如下:(1)建立应用程序用户界面与设置对象属性 (2)编写代码。首先在表单的首先在表单的Load事件代码中声明数组:事件代码中声明数组:PUBLIC a(5,5)方阵的生成由表单的方阵的生成由表单的Activate事件代码完成:事件代码完成:FOR i=1 TO 25 yes=1 DO WHILE yes=1 x=INT(RAND()

    7、*100)yes=0 FOR j=1 TO i 1 IF x=VAL(a(j)yes=1&如与前面的元素相同,则返回到如与前面的元素相同,则返回到Do循环循环 EXIT ENDIF ENDFOR ENDDO a(i)=STR(x,3)ENDFORTHISFORM.List1.NumberOfElements=5THISFORM.Text1.Value=THISFORM.Text2.Value=在表单的在表单的UnLoad事件代码中释放全局变量数组事件代码中释放全局变量数组a():RELEASE a 计算功能由计算功能由“计算计算”按钮按钮Command1的的Click事件代码完成事件代码完成:

    8、s=0FOR i=1 TO 5 s=s+VAL(a(i,i)ENDFORTHISFORM.Text1.Value=smax=0 FOR I=1 TO 5 FOR j=1 TO 5 IF max VAL(a(i,j)max=VAL(a(i,j)p=i q=j ENDIF ENDFORENDFORTHISFORM.Text2.Value=A(+STR(p,1)+,+STR(q,1)+)=+STR(max,3)“重置重置”按钮按钮Command2的的Click事件代码:事件代码:THISFORM.Activate1.处理数组元素的函数 数组提供了一种快速排序数据的方法。如果数据保存在数组中,就可以很

    9、方便地对其进行检索、排序或其他各种操作。可以使用如下函数来处理数组元素:(1)数组元素的排序ASORT()。(2)数组元素的搜索ASCAN()。(3)数组元素的删除ADEL()。(4)数组元素的插入AINS()。(5)数组元素的个数ALEN()。【例6-4】由计算机随机生成10个互不相同的数,然后将这些数按由小到大的顺序显示出来。如图6-7所示。设计步骤如下:(1)建立应用程序用户界面与设置对象属性。程序界面的建立与各控件属性的设置参见图6-7。(2)编写代码。首先在表单的Load事件代码中声明数组:PUBLIC a(10)随机整数的生成由表单的Activate事件代码完成:p=FOR i=1

    10、 TO 10 yes=1 DO WHILE yes=1 x=INT(RAND()*100)yes=0 FOR j=1 TO i 1 IF x=VAL(a(j)yes=1&如与前面的元素相同,则返回到如与前面的元素相同,则返回到Do循环循环 EXIT ENDIF ENDFOR ENDDO a(i)=STR(x,2)p=p+a(i)+,ENDFORTHISFORM.Label2.Caption=LEFT(p,LEN(p)2)THISFORM.Label4.Caption=编写编写“排序排序”按钮按钮Command1的的Click事件代码:事件代码:asort(a)p=FOR i=1 TO 10 p

    11、=p+a(i)+,ENDFORTHISFORM.Label4.Caption=LEFT(p,LEN(p)2)编写编写“重置重置”按钮按钮Command2的的Click事件代码:事件代码:THISFORM.Activate2.与数据表记录进行数据交换的命令 用于数组与数据表记录之间进行数据交换的命令有:(1)SCATTER将数据从当前记录复制到数组中去。(2)GATHER用来自数组的数据替换当前表中的数据。(3)COPY TO ARRAY从当前表向一个数组复制数据。(4)APPEND FROM ARRAY用来自数组的数据给当前表追加新记录。【例【例6-5】使用数组来作为组合框的数据源。设计步骤如

    12、下:(1)设计表单界面。选择新建表单,进入表单设计器。增加一个组合框Combo1、一个文本框Text1、一个复选框Check、两个标签和两个形状控件。(2)设置对象属性。程序举例 (3)编写事件代码。编写表单事件代码:Load事件:PUBLIC a(9,3)a(1,1)=曹植a(1,2)=三国a(1,3)=七步诗+CHR(13)+CHR(13)+煮豆燃豆萁,+CHR(13)+豆在釜中泣:+CHR(13)+本是同根生,+CHR(13)+相煎何太急!a(2,1)=李白a(2,2)=唐代a(2,3)=望庐山瀑布+CHR(13)+CHR(13)+日照香炉生紫烟,+CHR(13)+遥看瀑布挂前川。+CH

    13、R(13)+飞流直下三千尺,+CHR(13)+疑是银河落九天。a(3,1)=杜甫a(3,2)=唐代a(3,3)=绝句+CHR(13)+CHR(13)+两个黄鹂鸣翠柳,+CHR(13)+一行白鹭上青天。+CHR(13)+窗含西岭千秋雪,+CHR(13)+门泊东吴万里船。a(4,1)=苏轼a(4,2)=宋代a(4,3)=题西林壁+CHR(13)+CHR(13)+横看成岭侧成峰,+CHR(13)+远近高低各不同。+CHR(13)+不识庐山真面目,+CHR(13)+只缘身在此山中。a(5,1)=李请照a(5,2)=宋代a(5,3)=绝句+CHR(13)+CHR(13)+生当作人杰,+CHR(13)+死

    14、亦为鬼雄。+CHR(13)+至今思项羽,+CHR(13)+不肯过江东。a(6,1)=林升a(6,2)=南宋a(6,3)=题临安邸+CHR(13)+CHR(13)+山外青山楼外楼,+CHR(13)+西湖歌舞几时休?+CHR(13)+暖风熏得游人醉,+CHR(13)+直把杭州当汴州。a(7,1)=马致远a(7,2)=元代 a(7,3)=天净沙-秋思+CHR(13)+CHR(13)+枯藤老树昏鸦,+CHR(13)+小桥流水人家,+CHR(13)+古道西风瘦马。+CHR(13)+夕阳西下,+CHR(13)+断肠人在天涯。a(8,1)=于谦a(8,2)=明代 a(8,3)=石灰咏+CHR(13)+CHR

    15、(13)+千锤万凿出深山,+CHR(13)+烈火焚烧若等闲。+CHR(13)+粉身碎骨浑不怕,+CHR(13)+要留清白在人间。a(9,1)=郑燮a(9,2)=清代 a(9,3)=竹石+CHR(13)+CHR(13)+咬定青山不放松,+CHR(13)+立根原在破岩中。+CHR(13)+千磨万击还坚劲,+CHR(13)+任尔东西南北风。Activate事件:THISFORM.Combo1.Value=1THISFORM.Text1.Value=a(1,2)Destroy事件:RELEASE a 编写Combo1的InteractiveChange事件代码:s=ASCAN(a,THIS.Displ

    16、ayValue)THISFORM.Text1.Value=a(s+1)THISFORM.Refresh 编写Check1的属性:THISFORM.Combo1.ColumnCount=IIF(THIS.Value=0,1,2)6.3 对象数组【例6-6】在例3-7中使用对象变量。在例3-7的基础上改写代码。编写表单的Init事件代码:PUBLIC txt1,txt2txt1=THIS.Container1.Text1txt2=THIS.Container2.Text1 改写表单的改写表单的Activate事件代码:事件代码:txt1.SetFocus 编写表单的编写表单的Destroy事件代码

    17、:事件代码:txt1=0txt2=0RELEASE txt1,txt2 编写Command1的Click事件代码:txt2.Value=txt1.Value*(9/5)+32 编写Command2的Click事件代码:txt1.Value=(txt2.Value-32)*(5/9)编写文本框Text1的事件代码 GotFocus事件代码:THIS.SelStart=0THIS.SelLength=LEN(THIS.Text)InteractiveChange事件代码:txt2.Value=编写文本框Text2的事件代码 GotFocus事件代码:THIS.SelStart=0THIS.SelL

    18、ength=LEN(THIS.Text)InteractiveChange事件代码:txt1.Value=使用AddObject方法可以在程序的运行中向容器添加对象,其语法格式为:容器对象名容器对象名.AddObject(对象名对象名,类名类名)程序举例【例6-7】用“筛法”找1100之间的全部素数。“筛法”求素数表是由希腊著名数学家Eratost henes提出来的,其方法是:在纸上写出1n的全部整数。如图6-10所示。然后逐一判断它们是否素数,找出一个非素数就把它挖掉(筛掉),最后剩下的就是素数。具体做法是:(1)先将1挖掉;(2)用2去除它后面的每个数,把能被2整除的数挖掉,即把2的倍数

    19、挖掉(如图6-11);图图6-11 开始用开始用2作除数,将作除数,将2的倍数挖掉的倍数挖掉(3)用3去除它后面的每个数,把3的倍数挖掉;(4)分别用4,5各数作为除数去除这些数后面的各数(4已被挖掉,不必再用4当除数,只需用未被挖掉的数作除数即可)。这个过程一直进行到除数为为止(如果不是整数就取其整数部分)。剩下的全是素数 设计步骤如下:(1)建立应用程序用户界面与设置对象属性。(2)编写程序代码。编写表单的Destroy事件代码:Lab=0 编写容器Container1的Init事件代码:PUBLIC Lab10,10FOR I=1 TO 100 k=ALLT(STR(i)THIS.Add

    20、Object(Lab&k,Label)Labi=THIS.Lab&kENDFOR.FOR I=1 TO 10 FOR j=1 TO 10 WITH Labi,j Left=25*(j1)+2 .Top=20*(i1)+2 .Height=20 .Width=25 .Visible=.T.Caption=ALLT(STR(i1)*10+j).Alignment=2 .FontBold=.T.FontName=garamond ENDWITH ENDFORENDFOR 编写“开始”按钮Command1的Click事件代码:n=100Lab(1).Enabled=.F.FOR i=2 TO SQRT

    21、(n)IF Lab(i).Enabled=.T.WAIT 现在开始将能被+ALLT(STR(i)+整除的整数筛去;WINDOW at 8,50 timeout 3 FOR j=I+1 TO n IF Lab(j).Enabled=.T.IF j%I=0 WAIT 将+ALLT(STR(j)+筛去 WINDOW at 8,50 timeout 0.3 Lab(j).Enabled=.F.ENDIF ENDIF ENDFOR ENDIFENDFORa=MESSAGEBOX(剩下来的整数都是素数剩下来的整数都是素数+CHR(13)+再作一遍吗?再作一遍吗?,4+48,)IF a=6 FOR I=1

    22、TO 100 Lab(i).Enabled=.T.ENDFORENDIF 编写编写“关闭关闭”按钮按钮Command2的的Click事件代码:事件代码:RELEASE THISFORM【例6-8】奇数阶的幻方阵。如图6-14所示。设计步骤如下:(1)建立应用程序用户界面。(2)设置对象属性。如表6-5所示。(3)编写程序代码。首先在表单的Load事件代码中定义全局变量n用来存放所选择的幻方阵的阶数,定义全局变量数组Lab1,1用来存放显示幻方阵各个元素的标签组。PUBLIC Lab(1,1),n 当然不能忘记在表单的DeSTORE事件代码中释放全局变量及数组:Lab=0RELEASE Lab,

    23、n 在表单的Activate事件代码中调用“布阵”按钮的Click事件代码:THISFORM.Command1.Click 编写容器编写容器Container1的的Init事件代码:事件代码:n=THISFORM.Spinner1.Valuedd=230/ndd=INT(dd+.5)DIME Labn,nFOR i=1 TO n*n k=ALLT(STR(i)THIS.AddObject(label&k,Label)labi=THIS.Label&kENDFORFOR i=1 TO n FOR j=1 TO n WITH labi,j .Left=dd*(j1)+2 .Top=dd*(i1)+

    24、2 .Height=dd .Width=dd .Visible=.T.Caption=.BackColor=RGB(255,255,255).ForeColor=RGB(0,0,255).Alignment=2 .BorderStyle=1 .FontSize=dd*.6 ENDWITH ENDFORENDFORTHIS.Height=dd*n+4THIS.Width=dd*n+4 编写编写“布阵布阵”按钮按钮Command1的的Click事件代事件代码:码:DIME a(n,n)STORE 0 TO aI=1j=(n+1)/2a(i,j)=1labi,j.Caption=ALLT(STR(1

    25、)FOR x=2 TO n*n IF a(i,j)%n=0 I=I+1 ELSE I=IIF(i=1,n,i1)j=IIF(j=n,1,j+1)ENDIF a(i,j)=x labi,j.Caption=ALLT(STR(x)ENDFOR 编写编写Spinner1的的InteractiveChange事件代码:事件代码:FOR i=1 TO n*n a1=ALLT(STR(i)THISFORM.Container1.RemoveObject(label&a1)ENDFORn=THIS.ValueTHISFORM.Container1.Init 编写编写“退出退出”按钮按钮Command2的的C

    26、lick事件代码:事件代码:THISFORM.Release6.1 某数组有10个元素,要求将前5个元素与后5个元素对换。即第1个元素与第10个元素互换,第2个元素与第9个元素互换,第5个元素与第6个元素互换。输出数组对换后各元素的值。6.2 修改上题,数组元素的值由计算机随机产生。6.3 编写程序,建立并输出一个1010的矩阵,该矩阵两条对角线元素为1,其余元素均为0。6.4 有一个86的矩阵,各元素的值由由计算机随机产生,求全部元素的平均值,并输出高于平均值的元素以及它们的行、列号。6.5 矩阵转置。即将矩阵行、列互换:876543218765432198765432转置876543218

    27、7654321987654326.6 求方阵的两个对角线元素和。6.7 找出二维数组nm中的“鞍点”。所谓鞍点是指它在本行中值最大,在本列中值最小。输出鞍点的行、列号,有可能在一个数组中找不到鞍点,如无鞍点则输出“无”。6.8 矩阵的加法运算。两个相同阶数的矩阵A和B相加,是将相应位置上的元素相加后放到同阶矩阵C的相应位置。13323473514243412312371232543124414814325044373246522865388266146.9 矩阵的乘法运算。设A=(aij)为nk矩阵,B=(bij)为km矩阵,则C=AB为nm矩阵,C中元素:6.10 设某班共10名学生,为了评

    28、定某门课程的奖学金,按规定超过全班平均成绩10%者发给一等奖,超过全班成绩5%者发给二等奖。试编制程序,输出应获奖学金的学生名单(包括姓名、学号、成绩、奖学金等级)。6.11 为上题增加一个命令按钮,统计一个班学生09、1019、2029、9099及100各分数段的人数。6.12 利用随机函数,模拟投币结果。设共投币100次,求“两个正面”、“两个反面”、“一正一反”三种情况各出现多少次。6.13 设计一个“通讯录”程序。当用户在下拉列表框中选择某一人名后,在“电话号码”文本框中显示出对应的电话号码。当用户选择或取消“单位”和“住址”复选框后,将打开或关闭“工作单位”或“家庭住址”文本框,如图

    29、6-17所示。图图6-17 “通讯录通讯录”程序程序6.14 某校召开运动会。有10人参加男子100米短跑决赛,运动员号码和成绩如表6-6,试设计一程序,按成绩排名次。运动员号码运动员号码成绩成绩运动员号码运动员号码成绩成绩011 号12.4 秒476 号14.9 秒095 号12.9 秒201 号13.2 秒233 号13.8 秒171 号11.9 秒246 号14.1 秒101 号13.1 秒008 号12.6 秒138 号15.1 秒6.15 在上题中利用数组的排序函数ASORT()进行排序。表6-6 运动员号码和成绩图6-18 竞赛用评分程序6.16 编写竞赛用评分程序:去掉一个最高分,去掉一个最低分,选手的得分最后为余下分数的平均分。如图6-18所示。

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:VisualFoxPro程序设计教程学习培训模板课件.ppt
    链接地址:https://www.163wenku.com/p-4141910.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库