首页  前一页  后一页  末页
[456] [457] [458] [459] [460]
本留言簿共有493条记录, 现在时间2025-5-25 8:44:33,计算机地址:192.168.9.44
日期查询:
现在是第91页
一共有99页
Books库中表及结构信息 环境:一键安装 库表:Mysql.sql  xx3.sql xx4.sql 页面:Myphp.php   
序号 留言内容
460

D:2021-9-2
T:7:32:00
IP:192.168.3.41



作者:
张顺海

2021.9.2 星期四

教学内容:面向对象程序设计

教学目的:理解什么是面向对象,掌握面向对象的核心关键词

教学重点:对象、属性、事件、方法

教学难点:对象的引用逻辑

教学时间:3课时

教学过程:

一、导入

定位:今天是我们三年级的第一节课,已经高三了,做为徐职学生,到高考还有9个月,到专业理论测试还有6个月,其中假期可能得1.5个月,还有4.5个月,每个月有20节课,将近90节课的时间,所以大家要珍惜每一节课。

二、表单

三、对象的引用

表单及对象的层次结构:

四个按钮对象的引用

 

四、总结

五、作业

459

D:2021-6-20
T:14:19:00
IP:192.168.9.36



作者:
张顺海

2021.6.21 星期一 

上机内容:子程序与过程

上机目的:掌握子程序与过程文件

上机过程:

一、熟悉本节任务,中英文录入10分钟

二、上节内容实习,引入子程序调用

1.判断素数实例,见上节内容   【v109_96.prg】                        &&本实例判断61是不是素数,可以判断任意一个数是不是素数(想一想如何更改)

2.水仙花实例,见上节内容   【v109_94.prg】                            &&本实例是判断100-999之间的所有水仙花数(你知道什么是水仙花数吗?)

3.冒泡排序法实例,见上节内容  【v109_95.prg】                     &&本实例是利用冒泡排序法实现10个数的排序(你知道什么是冒泡排序法吗)

4.自动出题并统计正确率实例,见上节内容 【v109_9.prg】    &&本实例是通过自定义算题的数量,来求证两个数之间的几种算术运算值(怎么控制的?)

5.九宫格处理实例(5*5=25宫格)【下载v109_97.prg】          &&本实例是实现宫格的一种算法(你用手填写5*5的25宫格,最少用多少秒?)

 

三、子程序建立及调用,本节实训

1.子程序的建立

平时我们写好的一段程序,比如:自动出题【V109_9.prg】、100-999之间的判断水仙花数【v109_94.prg】、10个数的冒泡排序【v109_95.prg】、九宫格处理【v109_97.prg】等,当被其它的程序调用时,这个已经写好的程序就是子程序。一个子程序文件中存储一个独立功能的程序,扩展名为.prg

所以,建立一个子程序的方法也是使用命令 modify  command 子程序名,一般子程序以return结束,返回主程序

主程序,就是调用其他的程序的程序。

2.子程序的调用

调用格式: do 子程序名 [with <参数列表>]

首先查看一级调用:【下载V109_10.prg】注意得保证 原来的程序段都在,且文件名与主程序中的相关调用子程序文件一致,才能正常运行,否则需要核查。

后边,有多级程序调用的演示图表

3.子程序间的数据传递

大家通过运行上边的主程序,可以看出,主程序只是通过do命令调用了原来我们的5段子程序,实现了5个功能综合调用,之间也没有传递数据。

看如下例子。

主程序:    M1.prg 【计算3!+4!+5!】

clear

s=0

p=0

for i=3 to 5

    do jc with i,p

    s=s+p

endfor

? "3!+4!+5!的阶乘",s

return

 

子程序:jc.prg

parameters x,y

y=1

for i=1 to x

     y=y*i

endfor

return

 

运行结果:

 

四、过程及过程文件,使用过程文件的目的就是提升系统效率,减少资源占用

大家可以看出,如果主程序调用100个子程序,加在一起,就是101个单独的文件,且每执行一个文件,就会将程序调入内存,且会占用一个资源(文件句柄),过多调用程序会降低系统速度,文件句柄是有限制的,打开的子程序越多,供打开其他文件的资源就会越少,比如:窗口、表单等,所以就出现了将多个子程序合并成一个过程文件,一次性调入,提升系统速度,占用一个文件句柄资源。

过程文件的建立:(将多个原来独立的程序,分别写入 procedure 与endproc之间,原来不同的程序用不同的过程名区分,同时也用作被调用程序的标志

注:Endproc或者 return可以省略,过程以下一个 procedure开始,以没有程序代码后结束。

下图就是将上边原来的 m1.prg 主程序,与子程序jc.prg 合在一起了,写到了一个文件里,然后把jc.prg删除(也就是已经不存在了),执行结果是一样的。

因为,在打开m1.prg这个程序时(其实m1就是一个过程文件了,含有主程序m1和一个过程jc),当然,一般把过程写入到另一个过程文件里,然后在主程序里,用专门的命令去调用和关闭,就是 打开命令set procdure to <过程文件名>, 关闭命令: set procedure to 

 

五、变量作用域(主要讲的是变量的生命周期,和程序与子程序之间调用时,同名变量的影响,还有利用同名变量,同步带回数据)

全局变量(Public)------主、子程序全穿透
局部变量(Local) ---------只在本级程序可见、可用,不影响、不返回主程序的变量,下级不继承、不可用
私有变量(Private) -----只在本级和下级子可序中可见、可用。
 

感受一下变量的作用域:

*主程序:M2

a=1

b=2

do S2     &&调用子程序

? a,b        && 显示的结果是: 1  3

? c            &&显示变量找不到,为什么?

return    &&主程序结束

 

*子程序:S2

b=3

c=30

? a,b      &&显示的结果   1  3

? c          &&显示的结果   30

return

458

D:2021-6-6
T:17:03:00
IP:192.168.9.36



作者:
张顺海

2021.6.9-2021.6.17 假期作业  【所有知识点及答案都在近期的教案里,请大家自行找寻、查看】

NO1:

判断1-100之间的素数

什么是素数:质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。

举例说明 : 

7(1,7)、13(1,13)、53(1,53)就是,因为除了能被1 和自己整除,别的就没有了

21(1、3、7、21)、63(1、3、7、9、63)就不是,因为21除了能被1、21整除以外,还能被3、7整除,所以21就不是,63同理

分析:

判断一个数是不是素数,基本原理就是从试除法,将1和本身去掉后,统统除一遍,只要有一次,是能够整除的,它就可以判定不是素数,只有除了一遍了,也没有找到整除的,就判断只有1和它本身能整除,所以是素数。

如:判断 61是不是素数,就得让61分别去除以2至60的数。【v109_96.prg】【v109_96_2.prg】【v109_96_3.prg

 

NO2:

熟悉流程控制,掌握三种程序设计结构,并能分辨各种结构,掌握多种控制语句,掌握三种交互式数据输入指令。

掌握本实例中的相关函数的应用。

NO3:

建立程序文件的命令:modify command 程序文件名

保存程序文件的命令:Ctrl + S或者点击工具栏上的保存按钮

运行程序文件的命令:do 程序文件名 或者 Ctrl+E(在程序正在编辑状态时) 或者 点击工具栏上的叹号运行当前程序图标

结构化程序设计的三种结构:顺序结构、分支结构、循环结构

分支结构的设计形式:单分支、双分支、多分支,分别对应(IF...Endif、IF...Else...Endif、Do case....Endcase)

循环结构的设计形式:DO循环、FOR循环、SCAN循环,分别对应的语句是(Do.....Enddo、For......Next、Scan....Endscan)

 

NO4:

1程序的设计及运行结构

顺序结构(自上而下)

选择结构(分支结构:单分支、双分支、多分支、嵌套分支——多选一)

循环结构(重复运行,自上而下,又自下而上,DO....EndDO、For......Next/EndFor、Scan.....EndScan)

循环三要素(初值、终值、步长)、循环次数的确定公式

2基本输入输出指令

输入指令:(交互式输入命令,程序暂停,等待从键盘上输入数据,并可以将输入的数据保存到指定的变量里,可以新建变量)

Accept  “提示信息1"   to   变量1            &&变量1类型是 C型

Wait   “提示信息2"   to   变量2      &&变量2类型是 C型,且长度为1

Input   “提示信息3"   to   变量3    &&变量3类型可以是 C、N、L、D型等

输入指令:(将指定的信息输出)

?  表达式1    &&先换行再输入表达式的值

??  表达式2   &&不换行在光标的当前位置输出表达式的值

3程序文件的建立、修改、运行、删除

建立及修改:Modify  Command   程序文件名    &&默认的程序文件的扩展名为.prg。但可以是其他的扩展名,修改时,需要写文件名的全称。

运行程序:Do  程序文件名   &&如果建立的非.prg的程序时,运行程序则需要写全称。

删除程序:Delete  File  程序文件名全称   &&注意不能删除处于打开(编辑)状态的程序文件。

457

D:2021-6-6
T:14:10:00
IP:192.168.9.36



作者:
张顺海

2021.6.7 星期一

上机内容:验证程序设计内容,

上机目的:理解程序控制

上机重点:各个模块的衔接与数据传递

上机时间:4课时

上机过程:

一、熟悉上机任务,中英文指法练习

二、上机流程

 

1.完成 节理论课的程序验证,重点看注释,掌握交互式语句的应用; 循环结构的控制;条件的判断;变量的应用【V109_9.prg
 
clea
accept "请输入你打算的次数" to n  &&这里使用的是交互式命令accept,如果用input的话,会影响下边的哪些语需要配合改变 。
? type("N"),type("val(n)")
*return
for i=1 to val(N)   &&类型转换函数val()的应用
clea   &&这里是本程序段中的第二个clear语句,如果没有会怎么样,只用循环外边的clear 会如何 
_screen.fontsize=20   &&这个是用来设置什么大小的,影响什么?
? "这是第"+ alltrim(str(i))+"轮:"     &&st() 函数与alltrim()的应用
input "Please input the NO1:"  to a
input "Please input the NO2:"  to b
*b= 6   && 这个语句前边的 * 号有什么用
c=a+b
? a,b
? a+b,a-b,a*b
if b<>0    &&这里的这个判断,有什么用,在什么情况下,才起效果?
    ?? a/b    &&这里的??(两个问号有什么用?如果用一个问题,会出现什么现象)
endif
wait    &&这里的这个交互式语句wait,有什么作用,没有它会怎么样
next 
? "已经结束"
 
2.分别验证如下程序段,并根据题目的含义,分析语句的用法
 
1)显示自然数1-10(同行显示) 本题 目的:如何控制显示 不同的,有规律的数字或者信息,如:如何控制起止,间隔,顺序。【v109_91.prg
 
Clear
for i=1 to 10
     ?? i
next
return 
 
 
2)  计算机1-100的自然数的累加和,结果保存到sum变量里,并输出它 【v109_92.prg
 
Clear
sum = 0
for i=1 to 100 step 1   &&注意步长 step的应用,可以试着改改 ,把 step 1改成 2 会怎么样?
     sum = sum + i
next 
?  "sum = " , sum 
return 
 
3) 有如下表格,利用Scan...Endscan语句,计算男同学的平均年龄。(本例用了两种方法,一个是原来SQL查询方法,一个是程序设计方法,但结果一样)【v109_93.prg
 
 
*下载数据表【xuesheng.dbf
Clear
use xuesheng
pj = 0
rs = 0
sum = 0
scan for xb="男"
       rs = rs +1
       sum = sum + nl
endscan
pj = sum / rs 
? "平均年龄", pj
use
return 
 
 
4)找出100-999之间的所有水仙花数。(什么是水仙花数: 它是一个三位正整数,每一位上的数字的立方和等于它本身 : 153 = 13+53+33=1+125+9)【v109_94.prg
 
本题 分两步
第一步:判断任意一个三位数是不是水仙花数
这一步,还得分为四小步
第1步,得到一个三位数
第2步,分解这个三位数,成为三个1位数
第3步,计算三个1位数的立方和
第4步,判断是否相等,如相等,便是水仙花
 
 
第二步:控制第一步的任意三位数,由100-999循环变化,全部判断一遍,即可把是水仙花的数字找出来。【本例只增加了一个循环控制,注意shu = i的用法
 
 
三、总结

1.循环控制(我们已经学习过了自动出题 、阅题 、统计、评语的 do while...enddo; 计算xuesheng.dbf中男生的平均年龄中的 scan...Endscan;今天实例中for....next。

2.在循语句的内部(循环体)中,是反复处理数据的过程,根据 shu = i 的应用,判断 了100-999之间所有的数据,是不是水仙花数,就是循环内外数据的传递

3.在今天的几个例子中,尤其是水仙花数的例子中,使用到了不少原来我们学习过的函数,这是函数应用的实战,需要大家熟悉函数功能和调用,才能处理这些题目时,想到它,尤其是分析的过程(水仙花数的分解过程),就是算法的分析过程。

本例使用的方法,和书上的也不完全一样,请大家分别学习、掌握。 书上的第二种字符串的方法,应该是比较简单的

4.看下边的冒泡法排序,理解 和掌握双重循环的控制  【v109_95.prg

四、作业

 判断1-100之间的素数

什么是素数:质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。

举例说明 : 

7(1,7)、13(1,13)、53(1,53)就是,因为除了能被1 和自己整除,别的就没有了

21(1、3、7、21)、63(1、3、7、9、63)就不是,因为21除了能被1、21整除以外,还能被3、7整除,所以21就不是,63同理

分析:

判断一个数是不是素数,基本原理就是从试除法,将1和本身去掉后,统统除一遍,只要有一次,是能够整除的,它就可以判定不是素数,只有除了一遍了,也没有找到整除的,就判断只有1和它本身能整除,所以是素数。

如:判断 61是不是素数,就得让61分别去除以2至60的数。【v109_96.prg】【v109_96_2.prg】【v109_96_3.prg

 

456

D:2021-6-3
T:7:49:00
IP:192.168.9.36



作者:
张顺海

2021.6.3 星期四

 

教学内容:程序设计应用

教学目的:掌握基本的输入输出、基本设计结构语法、简单的应用

教学重点:语句控制

教学难点:循环语句的应用

教学时间:两课时

教学过程:

一、复习和导入

通过理论与上机,我们已经基本了解了面向过程的结构化程序设计的理念。通过计算机自动出题、自动判题、自动统计、自动评语的模式,接触到了VFP可以完成 的程序设计。

通过样例流程图,非常直观的认识到了【顺序结构、分支结构、循环结构】的控制,也明白了什么地方需要顺序的(先后发生),什么地方需要分支的(选择发生)、什么地方需要循环的(重复发生)。通过交互式命令,操作者与程序进行了数据交互,也就懂得了人机交互是什么(Input、Accept、Wai)的含义。

这个样例,只是让大家知道什么是面向过程的程序设计(第四章),与面向对象的程序设计(第七章)的区别。让大家知道程序运行的设计结构(顺序、分支、循环)和人机交互,从这节课开始的四节课,我们就一步一步的把样例中用到的知识点,展开来,一点一点的熟悉它,并用不同的案例应用它。

二、新授(熟悉语法、规范)

程序文件的建立、修改、程序文件中命令的书写规范

基本的输入(accept、input、wait )、输出命令(?、??、???)

顺序结构的程序设计(根据圆的半径,计算圆的面积)

选择结构的程序设计(根据输入的两个数,从大到小输出)

循环结构的程序设计  (显示1-10的自然数)    

三、综合练习(注意程序运行结果的输出)

计算1到10之间的整数和

找出100-999之间的水仙花数

四、总结

理论知识:

1程序的设计及运行结构

顺序结构(自上而下)

选择结构(分支结构:单分支、双分支、多分支、嵌套分支——多选一)

循环结构(重复运行,自上而下,又自下而上,DO....EndDO、For......Next/EndFor、Scan.....EndScan)

循环三要素(初值、终值、步长)、循环次数的确定公式

2基本输入输出指令

输入指令:(交互式输入命令,程序暂停,等待从键盘上输入数据,并可以将输入的数据保存到指定的变量里,可以新建变量)

Accept  “提示信息1"   to   变量1            &&变量1类型是 C型

Wait   “提示信息2"   to   变量2      &&变量2类型是 C型,且长度为1

Input   “提示信息3"   to   变量3    &&变量3类型可以是 C、N、L、D型等

输入指令:(将指定的信息输出)

?  表达式1    &&先换行再输入表达式的值

??  表达式2   &&不换行在光标的当前位置输出表达式的值

3程序文件的建立、修改、运行、删除

建立及修改:Modify  Command   程序文件名    &&默认的程序文件的扩展名为.prg。但可以是其他的扩展名,修改时,需要写文件名的全称。

运行程序:Do  程序文件名   &&如果建立的非.prg的程序时,运行程序则需要写全称。

删除程序:Delete  File  程序文件名全称   &&注意不能删除处于打开(编辑)状态的程序文件。

分支结构的常用三种格式:[示意图]

循环结构的常用三种格式:Do while...Enddo、For....Next/Endfor 、Scan....Endscan

1.循环语法:

Do  While  <条件>

....

EndDo

 

For i=初值  to 终值  [ step 步长 ]

....

Next / Endfor

 

Scan [范围]  [ for 条件]

...

Endscan

2.循环三要素:

循环变量赋初值

循环条件始化

循环变量变化

3.循环次数的计算

次数=Int((终值 -初值)/步长)+1

4.举例:

i=1  &&循环变量赋初值

Do While  I<=5  &&循环条件始化

      ??  I

     i=i+1  &&循环变量变化

EndDo

5.小结:

i=1  &&循环变量赋初值,  也就是建立一个变量,(变量名 i、变量值 1、变量类型 n--->变量三要素)

i<=5 &&循环条件始化,也就是建立一个条件,(关系表达式  > 大于,< 小于,>= 大于等于,<=小于等于,<> # != 不等于)组成的式子,当然还可以综合表达式

i=i+1  &&  循环变量变化,初值 为1,向着终值5变化,每次变化 1,其中 1 5  1,分别叫“初值、终值、步长”

根据“初值、终值、步长” 来计算循环的次数

五、作业

10个数的冒泡排序法

clea
accept "请输入你打算的次数" to n
? type("N"),type("val(n)")
*return
for i=1 to val(N)
clea
_screen.fontsize=20
? "这是第"+ alltrim(str(i))+"轮:"
input "Please input the NO1:"  to a
input "Please input the NO2:"  to b
*b=
c=a+b
? a,b
? a+b,a-b,a*b
if b<>0 
    ?? a/b
endif
wait 
next 
? "已经结束"
六、反思
首页  前一页  后一页  末页
现在是第91页一共有99页