资源描述:
《数据库原理与应用第10章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第10章子程序及基本菜单的使用方法第10章子程序及基本菜单的使用方法10.1转子程序语句DO和返回主程序语句10.2子程序调用的嵌10.3菜单的基本使用方法10.4程序设计举例10.5过程文件的使用方法10.6设置内存变量属性的语句10.7子程序调用中传递参数的语句10.8FoxPro基本菜单10.9用户自定义函数10.10编译FoxPro的命令文件第10章子程序及基本菜单的使用方法10.1转子程序语句DO和返回主程序语句——RETURN,RETRY1.转子程序语句——DO转子程序即调用子程序,语句为DO。语句格式
2、:DO〈文件名〉[WITH〈参数清单〉]这个语句出现在要调用子程序的主程序中,其中文件名指出的是一个子程序的文件名。WITH可选项用于参数的传递,具体用法在本章10.6节中介绍。第10章子程序及基本菜单的使用方法2.返回主程序语句——RETURN在FoxPro中,子程序与主程序一样,用同样的方法建立,以同样的文件格式存在磁盘上,具有同样的扩展名。子程序与主程序惟一的不同点是:子程序的最后一条语句必须是返回主程序语句,即RETURN。语句常用格式:RETURN若程序执行该语句就表明这个子程序已结束,应该回到调用它的主
3、程序,从调用此 子程序的 语句的下一条语句继续执行。(若子程序中无RETURN,则默认最后有一条 RETURN。)主程序调用子程序的过程可以形象地用一个如图10--1所示的图形表示。第10章子程序及基本菜单的使用方法主程序调用子程序的过程可以形象地用一个如图10--1所示的图形表示。例在第8章8.6节某个中学的学生成绩管理程序中,内循环部分是一个功能相对独立的部分。把这一部分作为子程序,其余部分作为主程序,重新编制此程序。第10章子程序及基本菜单的使用方法图10—1子程序调用流程图第10章子程序及基本菜单的使用方法
4、3.重复调用子程序语句——RETRY命令格式:RETRY与RETURN语句不同,RETRY语句从子程序返回到主程序中调用该子程序的语句。也即重新执行调用子程序语句,重新进入该子程序。RETRY一般用在发现错误时,反复多次调用子程序,直至错误消失,程序继续执行下去。第10章子程序及基本菜单的使用方法10.2子程序调用的嵌套用第三个子程序,在系统允许的嵌套范围内这样一个一个地调用下去,这种调用就称为子程序的嵌套。子程序的嵌套形式如图10—2所示。图中所示为一个主程序和三个子程序嵌套。第10章子程序及基本菜单的使用方法图
5、10—2子程序的嵌套第10章子程序及基本菜单的使用方法10.3菜单的基本使用方法10.3.1菜单的生成和选择菜单的生成一般有两种方法:一种是使用@...SAY命令在指定的坐标位置上显示菜单内容以及它所对应的功能号另一种方法是用显示命令?和引号在所要求的屏幕位置上指出菜单内容和菜单功能号。生成菜单以前要用CLEAR命令清理屏幕,以保证屏幕上无其它内容。菜单一般都是一个程序的主程序部分,所以对菜单的编辑和命令文件一样,用MODIFYCOMMAND命令来建立。第10章子程序及基本菜单的使用方法例假设有一个旅馆服务数据库文
6、件“LGFU.DBF”,试设计一个主控程序提供以下功能:第一个是查询功能第二个是登记功能第三个是清账功能第四个是结算功能。依题意,程序设计如下:SETTALKOFFCLEARALLUSELGFUDOWHILE.T.GOTOPCLEAR第10章子程序及基本菜单的使用方法?SPACE(10)+“********旅馆服务主菜单********”?SPACE(10)+“*0—退出旅馆前台服务*”?SPACE(10)+“*1—查询*”?SPACE(10)+“*2—登记*”?SPACE(10)+“*3—清账*”?SPACE(1
7、0)+“*4—结算*”?SPACE(10)+“***********************”第10章子程序及基本菜单的使用方法WAIT“请选择0—4号菜单:”TOA1DOCASECASEA1=“0”EXITCASEA1=“1”DOCXCASEA1=“2”DODJCASEA1=“3”DOQZ第10章子程序及基本菜单的使用方法CASEA=1“4”DOJSENDCASEENDDO运行此程序。执行到WAIT时,程序暂停执行,屏幕显示如下: ********旅馆服务主菜单*********0—退出旅馆前台服务**1—查询*
8、*2—登记**3—清账**4—结算************************请选择0—4号菜单:第10章子程序及基本菜单的使用方法这时在光标处没有任何数字,只等用户输入。当用户键入的数据是0~4中的一个时,程序将从暂停处继续执行情况语句。如果用户键入的数据为“0”,则在执行EXIT语句时,退出主控程序如果用户键入的数据是“1”,则调出子程序“CX.PR