结构化程序设计与运行.docx
- 文档编号:13491600
- 上传时间:2023-06-14
- 格式:DOCX
- 页数:9
- 大小:129.20KB
结构化程序设计与运行.docx
《结构化程序设计与运行.docx》由会员分享,可在线阅读,更多相关《结构化程序设计与运行.docx(9页珍藏版)》请在冰点文库上搜索。
结构化程序设计与运行
实验课程名称VF及其应用系统开发
实验项目名称结构化程序设计与运行
专业班级电子科学与技术09级1班
学生姓名
学号
指导教师
实验时间2011年11月
第四章结构化程序设计与运行
1.实验目的
(1)熟练掌握程序文件的建立、保存、运行和调试的方法。
(2)重点掌握结构化程序设计的3种基本结构。
2.实验要求
练习使用命令方式和菜单方式建立、保存和运行下述程序。
若运行出现错误请调试。
(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显示货物库存清单,要求计算出每次货物的库存值和货物库存总值。
3.实验准备
(1)阅读主教材4.1节和4.2节。
(2)创建好“订货"数据库(见实验3-2)。
4.实验步骤
(1)建立程序文件:
执行命令MODIFYCOMMANDS2-4-1,在程序编辑窗口建立如下程序文件。
*程序文件名:
S2-4-1.PRG
*功能:
为“员工"表添加新纪录。
CLEAR
USE员工&&打开员工.dbf
APPENDBLANK&&添加一个空白记录
@10,5SAY"添加新纪录"
?
&&插入一个空行
INPUT"请输入工号:
"TOgh
INPUT“请输入姓名:
"TOxm
INPUT"请输入电话:
"TOdh
REPLACE工号WITHgh,姓名WITHxm,电话WITHdh&&将输入的数据写入表中
?
INPUT"是否输入照片(Y/N):
"TOzp
IFUPPER(zp)="Y"
MODIFYGENERAL照片&&输入照片
ENDIF
INPUT"是否输入备注(Y/N):
"TObz
IFUPPER(bz)="Y"
MODIFYMEMORY备注&&输入备注
ENDIF
DISPLAY&&显示新添加的记录
USE&&关闭员工.dbf
上述程序录入后,按ctrl+w保存文件,从而关闭文本编辑窗口。
然后执行命令"DOS2-4-1"运行程序。
若存在录入错误请调试。
输入新记录:
如下图;
(2)S2-4-2.PRG编制如下:
*程序文件名:
S2-4-2.PRG
*功能:
根据给出的货号,修改“货物"表的单价和库存量。
CLEAR
USE货物&&打开货物.dbf
@5,15SAY"修改货物的单价和库存量"
?
INPUT“请输入货号:
"TOhh&&货号唯一标识货物
LOCATEFOR货号=hh
IFFOUND()
DISPLAY
INPUT"请输入单价:
"TOdj&&显示修改前记录&&输入的数据保存在内存变量dj中
INPUT"请输入库存量:
"TOkcl
REPLACE单价WITHdj,;
库存量WITHkcl值&&用内存变量的值修改对应的字段的变量
?
‘请检查修改后的数据:
’
DISPLAY&&显示修改后记录
ELSE
@12,20SAY"无此货号!
"
ENDIF
USE
程序运行结果如图所示
(3)S2-4-3a.PRG编制如下:
*程序文件名:
S2-4-3a.PRG
*功能:
查询员工完成订单情况。
CLEAR
USE员工&&打开员工.dbf
SETORDERTO工号&&为建立关联作准备
SELECT0
USE订单
SETRELATIONTO工号INTO员工&&建立关联
SETSKIPTO员工&&说明已建关联为一多关系,子表员工为多方
@1,8SAY"查询员工完成订单情况:
"
?
&&插入一个空白行
INPUT"请输入工号:
"TOgh
LOCATEFOR员工.工号=gh&&顺序查询
IFFOUND()
LIST员工.工号,员工.姓名,订单.订单号,订单.订购日期,;
订单.客户编号FOR员工.工号=ghOFF
ELSE
?
’无订单!
’
ENDIF
USE
程序运行图如下;
程序运行结果见图2.4.2。
图2.4.2顺序查询员工完成订单情况
(4)S2-4-3b.PRG编制如下:
*程序文件名:
S2-4-3b.PRG
*功能:
查询员工完成订单情况。
CLEAR
@1,8SAY"查询员工完成订单情况(按组合键CTRL+Q退出)"
?
INPUT“输入工号:
"TOgh
SELECT员工.工号,员工.姓名,订单.订单号,订单.订购日期,订单.客户编号;
FROM订货!
员工INNERJOIN订货!
订单;
ON员工.工号=订单.工号;
WHERE员工.工号=gh
程序运行结果见图
[说明]由于使用SELECT-SQL命令查询,因此不需要预先打开员工表和订单表。
(5)S2-4-4.PRG编制如下:
*程序文件名:
S2-4-4.PRG
*功能:
用扫描循环语句编写程序,显示货物库存清单。
CLEAR
库存总值=0
USE货物
?
"货号","货名","单价","库存量","库存值"&&显示栏目标题SCAN
库存值=0
库存值=单价*库存量&&计算库存值
?
""+货号+""+货名+STR(单价,5,2)+STR(库存量,7)+STR(库存值,12,2)
库存总值=库存总值+库存值&&累计库存总值ENDSCAN
?
?
"库存总值:
",库存总值
USE
5.思考与操作
(1)在实验3-2中已对货物表作了字段级验证和记录级验证设置。
若将程序S2-4-1.PRG修改成“为货物表添加新记录",会出现什么情况?
若程序不能正常运行,应如何处理才能是程序正常运行?
答,程序不能正常运行,即不能向货物表中添加新记录。
因为程序有“APPENDBLANK"这种追加方式是不能通过字段级验证和记录级验证的。
可将程序修改为:
*程序文件名:
S2-4-1.PRG*功能:
为"货物"表添加新纪录。
CLEARUSE货物APPENDBROWSEUSE
(2)程序S2-4-2.PRG每次运行只能修改一个记录,试改写该程序,使其可以连续更新记录。
程序改写为:
*程序文件名:
S2-4-2.PRG
*功能:
根据给出的货号,修改"货物"表的单价和库存量,可连续修改。
CLEAR
USE货物&&打开货物.dbf
@5,15SAY"修改货物的单价和库存量"
?
jx='Y'DOWHILEjx='Y'&&循环开始
INPUT"请输入货号:
"TOhh&&货号唯一标识货物
LOCATEFOR货号=hh
IFFOUND()
DISPLAY&&显示修改前记录
INPUT"请输入单价:
"TOdj&&输入的数据保存在内存变量dj中
INPUT"请输入库存量:
"TOkclREPLACE单价WITHdj,;
库存量
WITHkcl&&用内存变量的值修改对应的字段的变量值
?
'请检查修改后的数据:
'
DISPLAY&&显示修改后记录
ELSE
?
"无此货号!
"
ENDIF
INPUT"是否继续修改(Y/N):
"TOjx
ENDDO&&循环结束
USE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结构 程序设计 运行
![提示](https://static.bingdoc.com/images/bang_tan.gif)