VF实验三 结构化程序设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三结构化程序设计
实验目的:
(1)熟练掌握程序文件的建立、保存、运行和调试的方法。
(2)重点掌握结构化程序设计的3种基本结构。
实验要求:
练习使用命令方式和菜单方式建立、保存和运行下述程序。
若运行出现错误请调试。
(1)编写程序S2-4-1.PRG,为“员工”表添加新纪录。
(2)货物表的单价和库存量需要经常修改,试编写程序S2-4-2.PRG对货物表作数据维护。
(3)分别用顺序查询(编程S2-4-3A.PRG)和SELECT-SQL命令查询(编程S2-4-3b.prg)员工个人完成订单情况。
(4)编程s2-4-4.PRG显示货物库存清单,要求计算出每次货物的库存值和货物库存总值。
实验步骤:
(1)建立程序文件:执行命令MODIFY COMMAND S2-4-1,在程序编辑窗口建立如下程序文件。
*程序文件名:S2-4-1.PRG
*功能:为“员工”表添加新纪录。
CLEAR
USE 员工&&打开员工.dbf
APPEND BLANK &&添加一个空白记录
@ 10,5 SAY”添加新纪录”
? &&插入一个空行
INPUT”请输入工号:”TO gh
INPUT “请输入姓名:”TO xm
INPUT”请输入电话:”TO dh
REPLACE 工号WITH gh,姓名with xm, 电话with dh &&将输入的数据写入表中
?
INPUT”是否输入照片(Y/N):”TO zp
IF UPPER(ZP)=”y”
MODIFY GENERAL 照片&&输入照片
EDIF
INPUT”是否输入备注(y/n):”TO BZ
IF UPPER(BZ)=”Y”
MODIFY MEMORY 备注&&输入备注
ENIF
DIPLAY
USE
上述程序录入后,按ctrl+w保存文件,从而关闭文本编辑窗口。
然后执行命令“DO S2-4-1”运行程序。
若存在录入错误请调试。
调试结果如下:
(2)s4-2-2.PRG编制如下:
*程序文件名:s4-2-2.PRG
*功能:根据给出的货号,修改"货物"表的单价和库存量。
CLEAR
USE 货物
@5,15 SAY"修改货物的单价和库存量"
?
INPUT "请输入货号"TO hh
LOCATE FOR 货号=hh
IF FOUND()
DISPLAY
INPUT"请输入单价":TO dj
INPUT"请输入库存量":TO kcl
REPLACE 单价WITH dj,;
库存量WITH kcl
? '请检查修改后的数据:'
DISPLAY
ELSE
@12,20 SAY"无此货号!" ENDIF
USE
程序运行结果如图2.4.1所示。
在修改一项记录如下:
(3)S2-4-3a.PRG编制如下:* 程序文件名:S2-4-3a.PRG
* 功能:查询员工完成订单情况。
CLEAR
USE 员工
SET ORDER TO gh
SELECT 0
USE 订单
SET RELATION TO 工号INTO 员工
SET SKIP TO 员工
@ 1,8 SAY”查询员工完成订单情况:”
?
INPUT”输入工号:”TO gh
LOCATE FOR 员工.工号=gh
IF FOUND()
LIST员工.工号,员工.姓名,订单.订单号,订单.订购日期,; 订单.客户编号FOR 员工.工号= gh OFF
ELSE
?’无订单!’
EDIF
USE
程序如下:
程序运行查询结果如下:
(4)S2-4-3b.PRG编制如下:
* 程序文件名:S2-4-3b.PRG
*功能:查询员工完成订单情况。
CLEAR
@ 1,8 SAY”查询员工完成订单情况(按组合键ctrl+q 退出)”
?
INPUT “输入工号:”TO gh
SELECT员工.工号,员工.姓名,订单.订单号,订单.订购日期,订单.客户号; FROM订货!员工INNER JION 订货!订单;
ON 员工.工号=订单.工号;
WHERE 员工.工号=gh
程序运行结果见图2.4.3。
[说明]由于使用SELECT-SQL命令查询,因此不需要预先打开员工表和订单表。
程序执行的结果如下:
1)工号为0002的员工的订单查询如下:
2)工号为0004的员工的订单查询如下:
(5)S2-4-4.PRG编制如下:
* 程序文件名:S2-4-4.PRG
*功能:用扫描循环语句编写程序,显示货物库存清单。
LCEAR
库存总值=0
USE货号
?”货号”,”货名”,”单价”,”库存量”,”库存值”
SCAN
库存值=0
库存值=单价*库存量
?”货号”,”货名”,”库存量”,”库存值”
?””+货号+””+货名+STR(单价,5,2)+STR(库存量,7)+STR(库存值,12,2)
库存总值= 库存总值+ 库存量
ENSCAN
?
?”库存总值:”,库存总值
Use
程序如下:
程序执行的结果如下:
5.思考与操作
(1)在试验3-2中已对货物表作了字段级验证和记录级验证设置。
若将程序S2-4-1.PRG 修改成“为货物表添加记录”,会出现什么情况?若程序不能正常运行,应如何处理才能是程序正常运行?
(2)程序S2-4-2.PRG每次运行只能修改一个记录,试改写该程序,使其可以连续更新记。