版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第七章第七章 Visual FoxPro 程序设计基础程序设计基础n7.1 程序建立和执行n7.2 程序的交互式命令n7.3 结构化程序设计n7.4 子程序与过程文件及用户n7.5 屏幕显示格式程序设计n7.6 程序调试和调试器n7.7 共享访问编程及多用户操作7.1 程序建立和执行n7.1.1 程序设计概念和步骤n1、程序:能够完成特定任务的命令序列,能够完成特定任务的命令序列,存储在命令文件(存储在命令文件(.PRG.PRG)中。运行该文件可)中。运行该文件可自动执行一系列操作自动执行一系列操作n2 2、程序设计步骤:n1)分析问题 2)确定算法 n3)画流程图 4)编写程序n5)调试程序
2、 6)建立文档7.1.2 程序的建立1 1项目管理器项目管理器 选择选择 “ “程序程序”项,单击项,单击“新建新建”按钮,打开代码编辑窗口,输入程序按钮,打开代码编辑窗口,输入程序内容。然后选择内容。然后选择“文件文件/ /保存保存”命令将编写的代码存入磁盘命令将编写的代码存入磁盘2. 2. 菜单菜单 选择选择“文件文件/ /新建新建”菜单命令,在菜单命令,在“新建新建”对话框中选择对话框中选择“程序程序”文件文件类型,按类型,按“新建文件新建文件”按钮,进入代码编辑窗口按钮,进入代码编辑窗口3. 3. 命令命令:MODIFY COMMAND MODIFY COMMAND 如果输入命令语句时
3、,如果输入命令语句时,必须一条命令占一行,一行写必须一条命令占一行,一行写不下时,在行尾加续行符不下时,在行尾加续行符“;”;”,换行后接着书写该命令语句换行后接着书写该命令语句 7.1.3 程序文件的修改对已建立的程序文件可以重新进入代码编辑窗口修改内容对已建立的程序文件可以重新进入代码编辑窗口修改内容 1. 1. 项目管理器项目管理器 选中要修改的程序文件,按选中要修改的程序文件,按“修改修改”按钮,在代码编辑窗口中按钮,在代码编辑窗口中进行修改。修改后,选择进行修改。修改后,选择“文件文件/ /保存保存”菜单命令,保存程序菜单命令,保存程序2. 2. 菜单菜单 选择选择“文件文件/ /打
4、开打开”菜单命令,在当对话框中选择要修改的程序菜单命令,在当对话框中选择要修改的程序文件,将其调入代码编辑窗口文件,将其调入代码编辑窗口 3. 3. 命令命令 MODIFY COMMAND MODIFY COMMAND 7.1.4 程序文件的执行1. 1. 项目管理器项目管理器 选中要执行的程序文件,按选中要执行的程序文件,按“运行运行”按钮按钮2. 2. 菜单菜单 选择选择“程序程序/ /运行运行”菜单命令菜单命令3. 3. 命令命令 DO DO 7.2 程序的交互式命令n7.2.1 人机交互式输入语句n1、键盘输入字符串命令:accept,暂停程序运行,接收键盘字符并存入内在变量n2、键盘
5、输入单个字符命令:wait n3、键盘输入任意类型数据命令:input7.2.2 基本命令1. 1. 环境设置命令环境设置命令(SETSET)设设 置置说说 明明SET TALK ON|OFFSET TALK ON|OFF人机对话设置命令人机对话设置命令SET CONSELE ON|OFFSET CONSELE ON|OFFSET PRINTER ON|OFFSET PRINTER ON|OFFSET SAFETY ON|OFFSET SAFETY ON|OFFSET HEADING ON|OFFSET HEADING ON|OFFSET STATUS ON|OFFSET STATUS ON|
6、OFFSET DEVICE TO SCREEN|PRINTERSET DEVICE TO SCREEN|PRINTERSET DEFAULT TOSET DEFAULT TOSET CONSELESET CONSELE的使用的使用? “? “请输入密码请输入密码:”:”SET CONSELE OFFSET CONSELE OFFACCEPT “ACCEPT “密码密码:” TO MM:” TO MM? “aaaaaaaaaa1111111111”? “aaaaaaaaaa1111111111”SET CONSELE ONSET CONSELE ON? MM? MM7.2.2 基本命令2 2注释
7、命令注释命令 非执行语句,用于提高程序的可读性非执行语句,用于提高程序的可读性 NOTENOTE、* *(行首注释)、(行首注释)、&(行尾注释)(行尾注释)3. 3. 文本显示命令文本显示命令 TEXTTEXT ENDTEXT ENDTEXT4. 4. 清除命令清除命令 CLEAR CLEAR (清屏)(清屏) CLEAR ALL CLEAR ALL (关闭所有文件、清除所有内存变量)(关闭所有文件、清除所有内存变量)5. 5. 关闭文件命令关闭文件命令 CLOSE ALL CLOSE ALL (关闭所有文件)(关闭所有文件) CLOSE CLOSE (关闭指定类型的文件)(关闭指定
8、类型的文件)7.2.2 基本命令6. 6. 运行中断和结束命令运行中断和结束命令 CANCEL CANCEL 终止程序运行,返回命令窗口终止程序运行,返回命令窗口 RETURN RETURN 结束当前程序的执行,返回到调用它的上级程序结束当前程序的执行,返回到调用它的上级程序 QUIT QUIT 关闭所有文件,退出关闭所有文件,退出VFPVFP系统,返回操作系统环境系统,返回操作系统环境7 7格式输入输出命令格式输入输出命令 格式格式1 1: SAY SAY 功能:在主窗口指定的位置处显示表达式的值功能:在主窗口指定的位置处显示表达式的值 格式格式2 2: SAY SAY GET GET RE
9、AD READ 功能:在窗口指定位置处分别显示表达式和变量的值。若使用功能:在窗口指定位置处分别显示表达式和变量的值。若使用READ READ 语句,则可以对变量进行修改语句,则可以对变量进行修改7.3 程序基本控制结构1. 1. 顺序结构顺序结构:按程序中语句的书写顺序逐条执行:按程序中语句的书写顺序逐条执行2. 2. 分支结构分支结构(选择结构):根据逻辑条件的结果执行不同的命令序列(选择结构):根据逻辑条件的结果执行不同的命令序列 单分支结构单分支结构:IFENDIFIFENDIF 例例: IF X3: IF X3 Y=5 Y=5 ENDIF ENDIF 双分支结构双分支结构:IFELS
10、EENDIFIFELSEENDIF 例例: IF X=0: IF X=0 Y=X Y=X* * *2+32+3 ELSE ELSE Y=X Y=X* *X X ENDIF ENDIF条件条件A AB BT TF F条件条件F FA AT T7.3 程序基本控制结构举例:设计密码校验系统(假设密码为举例:设计密码校验系统(假设密码为abcabc)CLSARCLSARSET TALK OFFSET TALK OFFACCEPT “ACCEPT “请输入您的密码请输入您的密码: TO MM: TO MMIF MM=abcIF MM=abc ? ? 欢迎使用本系统!欢迎使用本系统! ELSE ELSE
11、 ? “ ? “密码错误,无权登录密码错误,无权登录!ENDIFENDIFSET TALK ONSET TALK ON7.3 程序基本控制结构n举例:求一元二举例:求一元二次方程的实根次方程的实根(系数分别为(系数分别为a,b,c)SET TALK OFFSET TALK OFFCLEARCLEARINPUT INPUT 输入系数输入系数a a的值的值: TO A: TO AINPUT INPUT 输入系数输入系数b b的值的值: TO B: TO BINPUT INPUT 输入系数输入系数c c的值的值: TO C: TO CZ=BZ=B* *B-4B-4* *A A* *C CIF Z=0
12、IF Z=0 X1=(-B+SQRT(Z)/(2 X1=(-B+SQRT(Z)/(2* *A)A) X2=(-B-SQRT(Z)/(2 X2=(-B-SQRT(Z)/(2* *A)A) ? ? 方程的根为方程的根为:,X1,X2:,X1,X2ELSE ELSE ? ? 无实根无实根 ENDIFENDIFSET TALK ONSET TALK ON7.3 程序基本控制结构 多分支结构多分支结构:DO CASEENDCASEDO CASEENDCASE例例: : INPUT INPUT 请输入成绩请输入成绩: TO X: TO XDO CASEDO CASECASE X90CASE X90 ? ?
13、 优优 CASE X=80CASE X=80 ? ? 良良 CASE X=60CASE X=60 ? ? 及格及格 OTHERWIZEOTHERWIZE ? “ ? “差差”ENDCASEENDCASE条件条件1 1ENDCASEENDCASE后面语句后面语句N NY Y条件条件2 2条件条件n nOTHERWISEOTHERWISEN NN N语句列语句列1 1语句列语句列2 2语句列语句列n n其它语句列其它语句列Y YY YY YN N7.3 程序基本控制结构3. 3. 循环结构:循环结构: DO WHILEENDDO DO WHILEENDDO例例: S=0: S=0 I=1 I=1
14、DO WHILE I=10 DO WHILE I=10 S=S+I S=S+I I=I+1 I=I+1 ENDDO ENDDO ? S ? SENDDOENDDO后面语句后面语句条件条件循环体循环体F FT T7.3 程序基本控制结构例例: :显示所有同学显示所有同学, ,当遇到姓当遇到姓“李李”的同学退出的同学退出USE USE 学生学生DO WHILE .NOT.EOF()DO WHILE .NOT.EOF() IF IF 姓名姓名=李李 EXIT EXIT ELSE ELSE DISPLAY DISPLAY ENDIF ENDIF SKIP SKIPENDDOENDDO条件条件ENDDO
15、ENDDO后的语句后的语句Y YN NLOOPLOOPEXITEXIT循环体循环体7.3 程序基本控制结构举例:举例: DO WHILE I=10DO WHILE I=10 DO WHILE NOT EOF() DO WHILE NOT EOF() DO WHILE .T. DO WHILE .T.练习练习1. 1. 计算计算N! N! 2. 2. 编写查询程序编写查询程序3. 3. 编写删除程序编写删除程序4. 4. 编写添加程序编写添加程序5. 5. 计算计算1-2+3-4+5-6+9-101-2+3-4+5-6+9-106. 6. 统计男女生同学的人数统计男女生同学的人数7. 7. 给每
16、一个同学评定给每一个同学评定“优良中差优良中差”8. 8. 判断一个数是否是素数判断一个数是否是素数7.3 程序基本控制结构 FOR ENDFOR FOR ENDFOR【例】编程输出矩形乘法口诀表【例】编程输出矩形乘法口诀表SET TALK OFFSET TALK OFFCLEARCLEARFOR I=1 TO 9 FOR I=1 TO 9 FOR J=1 TO 9 FOR J=1 TO 9 ? STR(I,1)+? STR(I,1)+* *+STR(J,1)+=+STR(I+STR(J,1)+=+STR(I* *J,2)+ J,2)+ ENDFOR ENDFOR ? ?ENDFORENDFO
17、RSET TALK ONSET TALK ONRETURNRETURN7.3 程序基本控制结构【例】编程输出下三角形乘法口诀表【例】编程输出下三角形乘法口诀表SET TALK OFFSET TALK OFFCLEARCLEARFOR I= 1 TO 9FOR I= 1 TO 9 FOR J=1 TO I FOR J=1 TO I? STR(J,1)+? STR(J,1)+* *+STR(I,1)+=+STR(I+STR(I,1)+=+STR(I* *J,2)+ J,2)+ ENDFOR ENDFOR ? ? ENDFORENDFOR7.3 程序基本控制结构【例】输入【例】输入1010个数,并将
18、它们用比较法按由大到小的顺序排序输出个数,并将它们用比较法按由大到小的顺序排序输出SET TALK OFFSET TALK OFFCLEARCLEARDIMENSION A10DIMENSION A10FOR I=1 TO 10FOR I=1 TO 10 INPUT INPUT 请输入一个数请输入一个数: TO AI: TO AIENDFORENDFORFOR I=1 TO 9FOR I=1 TO 9 FOR J=I TO 10 FOR J=I TO 10 IF AIAJ IF AIA(J+1) IF A(J)A(J+1) T=A(J) T=A(J) A(J)=A(J+1) A(J)=A(J+
19、1) A(J+1)=T A(J+1)=T ENDIF ENDIF NEXT J NEXT JNEXT I NEXT I FOR I=1 TO 10FOR I=1 TO 10 ? A(I) ? A(I)NEXT INEXT I7.3 程序基本控制结构【例】输入【例】输入1010个数,用选择法将它们排序个数,用选择法将它们排序CLEARCLEARSET TALK OFFSET TALK OFFDIMENSION A(10)DIMENSION A(10)FOR I=1 TO 10FOR I=1 TO 10 INPUT TO A(i) INPUT TO A(i)NEXT INEXT IFOR I=1
20、TO 9FOR I=1 TO 9 P=1 P=1 FOR J=1 TO 10-I FOR J=1 TO 10-I IF A(P)A(J) IF A(P)A(J) P=J P=J ENDIF ENDIF NEXT J NEXT J T=A(P) T=A(P) A(P)=A(10-I+1) A(P)=A(10-I+1) A(10-I+1)=T A(10-I+1)=TNEXT I NEXT I FOR I=1 TO 10FOR I=1 TO 10 ? A(I) ? A(I)NEXT INEXT I7.3 程序基本控制结构图案打印程序一图案打印程序一CLEARCLEARFOR i=1 TO 4 FOR
21、 i=1 TO 4 FOR K=1 TO 2 FOR K=1 TO 2* *i-1i-1 I,40-I+K SAY I,40-I+K SAY * * NEXT NEXTNEXTNEXT * * * * * * * * * * * * * * * * * * *7.3 程序基本控制结构图案打印程序二图案打印程序二CLEARCLEARFOR i=1 TO 4 FOR i=1 TO 4 ? SPACE(5-I) ? SPACE(5-I) FOR K=1 TO 5 FOR K=1 TO 5? ? * * NEXT NEXT? ?NEXTNEXT * * * * * * * * * * * * * *
22、* * * * * * * * *CLEARCLEARFOR i=1 TO 4 FOR i=1 TO 4 FOR K=1 TO 5 FOR K=1 TO 5 I,40-I+K SAY I,40-I+K SAY * * NEXT NEXTNEXTNEXT7.3 程序基本控制结构图案打印程序三图案打印程序三CLEARCLEARFOR I=4 TO 1 STEP -1FOR I=4 TO 1 STEP -1 FOR K=1 TO 2 FOR K=1 TO 2* *I-1I-1 10-I,40-I+K SAY 10-I,40-I+K SAY * * NEXT NEXTNEXTNEXTCLEARCLEA
23、RFOR I=4 TO 1 STEP -1 FOR I=4 TO 1 STEP -1 ? SPACE(5-I) ? SPACE(5-I) FOR K=1 TO 2 FOR K=1 TO 2* *I-1I-1 ? ? * * NEXT NEXT ? ?NEXTNEXT* * * * * * * * * * * * * * * * * * * *7.3 程序基本控制结构CLEARCLEARINPUT INPUT 请输入请输入N N的值的值: TO N: TO NFOR I=1 TO N FOR I=1 TO N FOR K=1 TO 2 FOR K=1 TO 2* *I-1I-1 i,40-I+K
24、 SAY i,40-I+K SAY * * NEXT NEXTNEXTNEXTFOR I=N-1 TO 1 STEP -1FOR I=N-1 TO 1 STEP -1 FOR K=1 TO 2 FOR K=1 TO 2* *i-1 i-1 2 2* *N-I,40-I+K SAY N-I,40-I+K SAY * * NEXT NEXTNEXTNEXT * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *7.4 子程序与过程文件 1.1.过程的建立与调用过程的建立与调用 过程也叫子程序,是一个相对独立的程序段过程也叫子程序,
25、是一个相对独立的程序段, , 可以被其他程序调可以被其他程序调用。调用子程序的程序称为主程序用。调用子程序的程序称为主程序 1. 1. 过程的建立与调用过程的建立与调用 过程的建立过程的建立 一个过程就是一个具有特定功能的命令文件(一个过程就是一个具有特定功能的命令文件(.PRG.PRG),它的建),它的建立、运行与一般程序相同。但是,一个过程中至少要有一条立、运行与一般程序相同。但是,一个过程中至少要有一条RETURNRETURN返回语句返回语句 过程的调用过程的调用 在上级程序中设置一条在上级程序中设置一条 DO DO 命令即可调用一个过程命令即可调用一个过程 命令:命令:DO DO IN
26、 IN WITH WITH 7.4 子程序与过程文件 1.1.过程的建立与调用过程的建立与调用. . .DO SUB1DO SUB1. . . . . . . . .CANCELCANCEL 主程序主程序MAIN.PRGMAIN.PRG. . . .DO SUB2DO SUB2. . . . . . . . .RETURNRETURN 子程序子程序SUB1.PRGSUB1.PRG . . . . . . . . . . . . . . . . . . . RETURN RETURN . . . . . . . . . . . . RETURN TO MASTERRETURN TO MASTER
27、子程序子程序SUB2.PRGSUB2.PRG7.4 子程序与过程文件 2.2.过程文件过程文件 将多个过程存放在一个文件中形成过程文件。过程文件中的过程不能作将多个过程存放在一个文件中形成过程文件。过程文件中的过程不能作为一个命令文件单独存盘或独立运行为一个命令文件单独存盘或独立运行 过程文件的建立过程文件的建立 命令:命令:MODIFY COMMAND MODIFY COMMAND 过程文件的基本结构:过程文件的基本结构: PROCEDURE PROCEDURE RETURN TO MASTER RETURN TO MASTER ENDPROC ENDPROC 过程文件的打开与关闭过程文件的
28、打开与关闭 命令:命令:SET PROCEDURE TO SET PROCEDURE TO 7.4 子程序与过程文件 3.3.带参数的过程调用带参数的过程调用 将不同的参数分别传递给同一过程,执行同一功能的操作后返回将不同的参数分别传递给同一过程,执行同一功能的操作后返回不同的结果,可以大大提高程序模块的灵活性不同的结果,可以大大提高程序模块的灵活性 定义带参数的过程定义带参数的过程: PROCEDURE PROCEDURE PARAMETERS PARAMETERS RETURN RETURN ENDPROC ENDPROC 调用带参数的过程调用带参数的过程: 命令:命令:DO DO WIT
29、H WITH 7.5 自定义函数 自定义函数的建立和使用方法与过程相同。函数除了完成某种特自定义函数的建立和使用方法与过程相同。函数除了完成某种特定操作外,还返回一个值定操作外,还返回一个值 1. 1. 定义函数定义函数 FUNCTION FUNCTION ( () RETURN RETURN ENDFUNC ENDFUNC 2. 2. 调用函数调用函数 格式:格式: ()n 7.6 变量作用域 1 1全局变量全局变量 使用使用 PUBLIC PUBLIC 关键字定义的变量(也称公共变量),可以是全局关键字定义的变量(也称公共变量),可以是全局内存变量或数组内存变量或数组 格式:格式:PUBL
30、IC PUBLIC |数组数组 2 2局部变量局部变量 使用使用 LOCAL LOCAL 关键字定义的变量关键字定义的变量 格式:格式:LOCAL LOCAL |数组数组 3 3私有变量私有变量 有通过有通过 PUBLIC PUBLIC 或或 LOCAL LOCAL 关键字定义而在程序中直接使用(即由关键字定义而在程序中直接使用(即由系统自动隐含建立)的变量系统自动隐含建立)的变量 私有变量在建立它的程序及其下属的子程序中有效,一旦建立它的程序运行结束,私有变量在建立它的程序及其下属的子程序中有效,一旦建立它的程序运行结束,这些私有变量就自动清除这些私有变量就自动清除 当子程序中的变量与上级程序中的变量同名时,可以在当前子程序中使用当子程序中的变量与上级程序中的变量同名时,可以在当前子程序中使用 PRIVATE PRIVATE 关键字对该同名变量进行隐藏说明,使其在当前子程序中暂时无效关键字对该同名变量进行隐藏说明,使其在当前子程序中暂时无效 格式:格式:PRIVATE PRIVATE 7.6 变量作用域CLEAR MEMORYCLEAR MEMORYCLEARCLEARPUBLIC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 厨房承包合同
- 宿舍承包合同范本
- 2025杂工劳务分包合同
- 2025关于住房公积金借款合同书例文
- 房子装修承包合同
- 提高创新和问题解决能力的培训
- 2025会计工作劳动合同范本
- 2025副食品供货合同范文
- 工程材料采购合同简单
- 2025共有产权住房 预售合同 (范本)
- 2025江苏南京市金陵饭店股份限公司招聘高频重点提升(共500题)附带答案详解
- 公共政策分析 课件汇 陈振明 第0-9章 导论、绪论:政策科学的“研究纲领”- 政策监控
- 2025年牛津译林版英语七年级下册全册单元重点知识点与语法汇编
- 《小学作文指导》课件
- GMS要素-持续改进(CI)-上汽通用五菱-课件
- 《插画设计》课程标准
- 高考作文答题卡(作文)
- 在乡村治理中深化推广运用清单制、积分制、一张图工作方案
- GB/T 3921-2008纺织品色牢度试验耐皂洗色牢度
- 梅毒的诊断与治疗课件
- 工程伦理第二讲工程中的风险、安全与责任课件
评论
0/150
提交评论