首页 VFP上机练习题_结构化程序设计

VFP上机练习题_结构化程序设计

举报
开通vip

VFP上机练习题_结构化程序设计结构化程序设计 将sb.dbf复制到D盘根目录下的xxx文件夹(xxx可用任意字母代替),执行命令:SET DEFAULT TO D:\XXX。 一、VFP程序设计中的输入、输出语句 1.字符串输入语句 命令格式:ACCEPT [提示信息] TO 示例1:编写一个程序cx1.prg,该程序打开sb.dbf,按输入的编号查询信息。 * cx1.prg USE sb ACCEPT "请输入要查询的设备编号:" TO bh LOCATE FOR 编号=bh DISPLAY USE RETURN 示例2:编写一个程序c...

VFP上机练习题_结构化程序设计
结构化程序 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 将sb.dbf复制到D盘根目录下的xxx文件夹(xxx可用任意字母代替),执行命令:SET DEFAULT TO D:\XXX。 一、VFP程序设计中的输入、输出语句 1.字符串输入语句 命令格式:ACCEPT [提示信息] TO <内存变量> 示例1:编写一个程序cx1.prg,该程序打开sb.dbf,按输入的编号查询信息。 * cx1.prg USE sb ACCEPT "请输入要查询的设备编号:" TO bh LOCATE FOR 编号=bh DISPLAY USE RETURN 示例2:编写一个程序cx2.prg,该程序打开sb.dbf,按输入的价格查询信息。 * cx2.prg USE sb ACCEPT "请输入要查询的设备价格:" TO jg jg = VAL(jg)                && 将变量jg转换为数值型 LOCATE FOR 价格=jg DISPLAY USE RETURN 2.表达式输入语句 命令格式:INPUT [提示信息] TO <内存变量> 示例3:编写一个程序circle1.prg,求解任意半径的圆的面积。 * circle1.prg CLEAR INPUT "请输入圆的半径:" TO r s=PI()*r*r ?"圆的面积=",s 思考:将示例1和示例2中的ACCEPT换为INPUT,程序要如何修改? 3.定位输入输出命令 命令格式: @<行,列> [SAY <表达式1>] [GET <变量名>] [DEFAULT <表达式2>] 示例4:试编写一程序,能根据记录号来修改某个设备的价格和部门。 * e4.prg CLEAR USE sb jlh=1 @2,10 SAY "请输入记录号: "GET jlh READ GO jlh @4,10 SAY "请修改第" +STR(jlh,1)+ "个设备的数据: " @5,10 SAY "价格" GET 价格 @6,10 SAY "部门" GET 部门 READ USE 示例5:将示例3改用定位输入输出命令实现 (程序略) 4.WAIT命令 命令格式: WAIT [<信息文本>] [TO <内存变量>][WINDOW [AT <行>,<列>]]     [NOWAIT][CLEAR | NOCLEAR][TIMEOUT <数值表达式>] 示例6:试编写一个程序,按”Y”键后能退出系统。 * e6.prg WAIT "是否退出?(Y/N)" TO i WINDOW AT 10,10 IF UPPER(i)="Y"     QUIT ENDIF 二、程序的控制结构 1.顺序结构 (示例略) 2.分支结构 ⑴ 简单的条件语句 示例7:将SB.DBF中第一个非主要设备的价格减少10% *e7.prg USE sb LOCATE FOR NOT 主要设备 IF FOUND()   DISPLAY 名称,价格   REPLACE 价格 WITH 价格*(1-0.1)   DISPLAY 名称,价格 ENDIF USE RETURN ⑵ 带ELSE的条件语句 示例8:试编写一程序,能打开任意一个表来浏览。 * e8.prg @5,10 SAY "请输入表名:"GET bm DEFAULT SPACE(10) READ bm=ALLTRIM(bm) IF FILE("&bm..dbf")   USE &bm   BROWSE ELSE   WAIT "该文件不存在!"WINDOW ENDIF ⑶ 多分支语句 示例9:显示当前季节程序 * e9.prg yue=MONTH(DATE()) DO CASE   CASE INLIST(yue,3,4,5)       jj="春"   CASE INLIST(yue,6,7,8)       jj="夏"   CASE INLIST(yue,9,10,11)       jj="秋"   CASE INLIST(yue,12,1,2)       jj="冬" ENDCASE WAIT jj WINDOW 3.循环结构 ⑴ 条件循环(DO WHILE) 示例10:试编写一程序,显示SB.DBF中所有单价超过10000元的设备名称。 * e10.prg USE sb DO WHILE NOT EOF( )   IF 价格>10000       ? 名称   ENDIF   SKIP ENDDO USE 示例11:按9万元以上,1~9万元,1万元以下三级价格分档统计SB.DBF中设备的个数。 * e11.prg STORE 0 TO K1,K2,K3 USE sb DO WHILE NOT EOF( )   DO CASE       CASE 价格>90000         K1=K1+1       CASE 价格<10000         K1=K1+1       OTHERWISE         K2=K2+1   ENDCASE SKIP ENDDO ? "9万元以上设备个数:"+STR(K1) ? "1~9万元设备个数:"+STR(K2) ? "1万元以下设备个数:"+STR(K3) USE ⑵ 步长循环(FOR) 示例12:编写计算s=1+2+3+… …+100的程序。 * e12.prg s=0 FOR i=1 TO 100     s=s+i NEXT ?”s=",s 思考:试将示例12用DO WHILE实现。 ⑶ 扫描循环(SCAN) 示例13:用SCAN扫描循环语句显示价格在10000元以上的设备的名称及价格。 * e13.prg USE sb SCAN FOR 价格>10000     ?名称 ENDSCAN USE ⑷ 循环辅助语句(LOOP和EXIT) 示例14:编程计算s=1+2+3+ … +100,并求1~100之间奇数之和。 * e14.prg STORE 0 TO i,s,t DO WHILE i<100   i=i+1   s=s+i   IF INT(i/2)=i/2       LOOP   ENDIF   t=t+i ENDDO ? "1+2+3+ … +100=",s ? "1~100的奇数和:",t ⑸ 多重循环 示例15:在SB.DBF中找出所有价格超过P的设备编号、名称与价格,并要求在各输出行下显示一行虚线。 * e15.prg CLEAR USE sb @5,10 SAY "请输入价格: "GET jg DEFAULT 0 READ SCAN   IF 价格>jg     ? 编号+SPACE(3)+名称+SPACE(3)+STR(价格,9,2)     ?         FOR i=1 TO 30             ?? "-"         ENDFOR   ENDIF ENDSCAN USE 三、模块化程序设计 1.子程序 示例16:编写3个子程序,用于计算圆的面积、周长及球的体积,在主程序中带参数调用。 主程序:yuan1.prg CLEAR ymj = 0 zc = 0 tj = 0 @3,3 SAY "请输入半径:" GET bj DEFAULT 0 READ DO js1 WITH bj,ymj DO js2 WITH bj,zc DO js3 WITH bj,tj ?"圆的面积=",ymj ?"圆的周长=",zc ?"球的体积=",tj 子程序1:js1.prg PARAMETERS r,s s=PI()*r*r RETURN 子程序2:js2.prg PARAMETERS r,c c=2*PI()*r RETURN 子程序3:js3.prg PARAMETERS r,v v=4/3*PI()*r*r*r RETURN 2.过程 示例17:将上例改为过程调用。 解1:过程作为独立的一个文件。 主程序:yuan2.prg CLEAR ymj = 0 zc = 0 tj = 0 @3,3 SAY "请输入半径:" GET bj DEFAULT 0 READ DO js1 WITH bj,ymj in js DO js2 WITH bj,zc in js DO js3 WITH bj,tj in js ?"圆的面积=",ymj ?"圆的周长=",zc ?"球的体积=",tj 过程文件:js.prg PROCEDURE js1 PARAMETERS r,s s=PI()*r*r RETURN PROCEDURE js2 PARAMETERS r,c c=2*PI()*r RETURN PROCEDURE js3 PARAMETERS r,v v=4/3*PI()*r*r*r RETURN 解法2:过程与调用程序包含在同一个文件中。 *yuan3.prg CLEAR ymj = 0 zc = 0 tj = 0 @3,3 SAY "请输入半径:" GET bj DEFAULT 0 READ DO js1 WITH bj,ymj DO js2 WITH bj,zc DO js3 WITH bj,tj ?"圆的面积=",ymj ?"圆的周长=",zc ?"球的体积=",tj PROCEDURE js1 PARAMETERS r,s s=PI()*r*r RETURN PROCEDURE js2 PARAMETERS r,c c=2*PI()*r RETURN PROCEDURE js3 PARAMETERS r,v v=4/3*PI()*r*r*r RETURN 3.函数 示例18:设计一个自定义函数,用来求一元一次方程AX+B=0的根。 解法1:函数作为一个独立的文件 * root.prg PARAMETERS a,b RETURN IIF(a=0,"无解",-b/a) 解法2:函数与调用程序包含在同一个文件中。 * root1.prg CLEAR @5,10 SAY "一次项系数:"GET a DEFAULT 1 @7,10 SAY "常数项:"GET b DEFAULT 0 READ ? "x: ",root1(a,b) FUNCTION root1 PARAMETERS u,v RETURN IIF(u=0, "无解",-v/u) 文档已经阅读完毕,请返回上一页!
本文档为【VFP上机练习题_结构化程序设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_321575
暂无简介~
格式:doc
大小:42KB
软件:Word
页数:8
分类:生活休闲
上传时间:2017-09-19
浏览量:60