银杏酒店管理学院《管理信息系统实验指导书》Word格式文档下载.docx
- 文档编号:20030707
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:22
- 大小:31.16KB
银杏酒店管理学院《管理信息系统实验指导书》Word格式文档下载.docx
《银杏酒店管理学院《管理信息系统实验指导书》Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《银杏酒店管理学院《管理信息系统实验指导书》Word格式文档下载.docx(22页珍藏版)》请在冰豆网上搜索。
六、指导教师
原则上由管理信息系统课程讲授教师负责,由年轻教师担任主要的实验指导教师,实验室人员配合指导。
指导教师应在每次实验前讲清实验目的、基本原理、实验要求等,指导学生在规定的时间内完成相关课程实验。
七、实验设备配置
每人配置1台电脑,安装VisualFoxpro以及其他开发工具,可访问Internet。
八、重要提示
本课程实验分两大部分:
第一部分:
技术基础,熟练掌握VisualFoxpro6.0
第二部分:
管理信息系统综合实验
学时分配按专业和总课时灵活调配。
第一部分:
技术基础
(8课时)
实验一基础知识
实验目的:
熟悉VisualFoxPro6.0用户界面
要求:
1.熟悉VisualFoxPro的各种窗口、菜单、对话框,了解其用途。
2.了解VisualFoxPro的设计与管理工具。
3.假定表结构为:
Sb(编号C(5),名称C(6),启用日期D,价格N(9,2),部门C
(2),主要设备L,备注M,商标G)
用表设计器建立表sb.DBF的结构并输入数据记录。
4.写出实验报告。
实验二表的建立与维护
熟练掌握表的基本操作
1.利用实验1的结果,建立与维护表文件sb.dbf。
2.验证下列例题:
[例2-4]定义内存变量C,N1,N2,N3。
s='
VFP'
&
&
字符串VFP赋给变量S,结果S值为VFP,并成为字符型变量
STORE2*4TOn1,n2,n3&
计算2*4得8,结果3个变量值都是8,都成为数字型变量
[例2-5]按下列要求显示SB.DBF的有关信息。
(1)列出头3个记录。
(2)列出部门代码为21(一车间)的编号、名称与备注。
(3)列出1995年前所启用设备的编号、名称、价格与启用日期,还要求其中的价格打9折,并且不显示记录号。
USEsb
LISTNEXT3&
(1)
LIST部门,编号,名称,备注FOR部门="
21"
&
(2)
LIST编号,名称,价格*0.9,启用日期FORYEAR(启用日期)<
1995OFF&
(3)
[例2-6]表的复制示例。
COPYTOa1&
对sb.dbf原样复制,同时生成A1.DBF与A1.FPT
COPYTOa2FIELDS名称,编号FORLEFT(部门,1)="
2"
;
A2.DBF只含有各车间所具设备的名称与编号两个字段内容,而且名称排在编号前
[例2-7]以系统数据格式将sb.dbf的前3个记录复制到文本文件。
USEsb
COPYTOb1NEXT3SDF&
以系统数据格式复制,产生文本文件B1.TXT
TYPEb1.txt&
用TYPE命令显示文本文件B1.TXT的内容
[例2-8]为SB表设置过滤器,使其后的操作只对1990至1995年的记录起作用。
useSB
setfiltERtoYEAR(启用日期)>
=1990ANDYEAR(启用日期)<
=1995
LIST&
只显示1990年至1995年的记录
setfiltERto&
取消过滤器
显示全部记录
[例2-9]对SB.DBF命令设置字段表,使有效字段为编号、名称和部门。
useSB
setfielDSto编号,名称,部门
LIST&
显示3个字段的数据
setfielDSOFF&
取消字段表的作用
显示所有字段的数据
[例2-10]建立设备大修表DX.DBF。
CREATETABLEdx(编号c(5),年月c(4),费用n(6,1))
LISTSTRUCTURE&
主屏幕显示DX.DBF的结构
INSERTINTOdxVALUES("
016-1"
"
8911"
2763.5)
9112"
3520.0)
037-2"
9206"
6204.4)
038-1"
2850.0)
LISTOFF&
主窗口显示所有记录
[例2-11]将例2-6产生的表A1.DBF中所有记录的名称和价格字段的值追加到SB.DBF的末尾。
APPENDFROMa1FIELDS名称,价格&
A1表中7个记录的2个字段值追加到SB表的末尾
[例2-12]将例2-7产生的文本文件B1.TXT的记录添入SB.DBF的末尾。
usesb
APPENDFROMb1SDF&
B1.TXT是系统数据格式的文本文件
2.写出实验报告。
实验三查询与统计
熟练掌握数据查询与统计这两种最常见的应用
1.上机操作,验证下列例题。
2.写出实验报告。
[例3-1]对SB.DBF分别按以下要求排序:
(1)将非主要设备按启用日期降序排序,并要求新表只包含编号、名称、启用日期等3个字段。
(2)将主要设备按部门降序排序,当部门相同时则按价格升序排序。
SORTTOrqxON启用日期/DFIELDS编号,名称,启用日期FORNOT主要设备
USErqx&
打开新表RQX.DBF
主窗口显示如下
USE
SORTTObmxON部门/D,价格FOR主要设备
USEbmx
[例3-2]为SB.DBF建立一个结构复合索引文件,其中包括3个索引:
(1)记录以价格降序排列,索引为普通索引型。
(2)记录以部门升序排列,部门相同时则按价格升序排列,索引为普通索引型。
(3)记录以部门升序排列,部门相同时则按价格降序排列,索引为候选索引型。
INDEXON价格TAGjgDESCENDING&
建立SB.CDX,并为价格字段建立普通索引,索引标识为JG
LIST&
记录已按价格降序排列
INDEXON部门+STR(价格,9,2)TAGbmjg;
以字段表达式“部门+STR(价格,9,2)”建立普通索引,索引标识BMJG增入SB.CDX
索引表达式运算后升序排列,致使记录按部门升序、部门相同按价格升序排列
INDEXONVAL(部门)-价格/1000000TAGbmjg1CANDIDATE;
以字段表达式建立候选索引,索引标识bmjg1增入SB.CDX
索引表达式运算后升序排列,致使记录按部门升序、部门相同按价格降序排列
[例3-3]根据例3-2建立的索引改变主控索引。
setordeRtojg&
用索引标识JG指定主控索引
记录按价格降序排列
setordeRto3&
用索引序号3指定BMJG1为主控索引
LIST&
记录以部门升序排列,部门相同时则按价格降序排列
SETORDERTO&
取消主控索引
记录按物理顺序显示
setordeRto2&
用索引序号2指定BMJG为主控索引
LIST&
记录按部门升序排列,部门相同时则按价格升序排列
[例3-4]在SB.DBF中查询价格小于15000元的非主要设备。
LOCATEFOR价格<
15000ANDNOT主要设备
DISPLAY&
显示:
记录号编号名称启用日期价格部门主要设备备注商标
4038-1钻床10/12/895275.0023.F.Memogen
CONTINUE
RECNO(),名称,价格,主要设备&
6复印机10305.01.F.
CONTINUE&
状态条显示:
已到定位范围末尾。
[例3-5]SEEK命令用法示例。
INDEXON编号TAGbh
SEEK"
不可写为:
SEEK编号="
RECNO()&
显示:
4
INDEXON启用日期TAGqyrq
SEEK{3/5/90}
FOUND()&
.显示.T.,表示找到该日期
INDEXON价格TAGjg
SEEK1000.00
RECNO(),FOUND()&
除在状态条显示“没有找到。
”外,还在主屏幕显示:
8.F.
[例3-6]模糊查询与精确查询示例。
SETORDERTOTAGbh
03"
按编号前两个字符查找
RECNO(),FOUND()&
3.T.
SETEXACTON&
设置完全匹配环境
SEEK"
FOUND()&
返回.F.
SETEXACTOFF&
恢复成模糊匹配环境
[例3-7]通过多区操作从部门代码查出部门名。
CLOSEALL&
关闭所有打开的表,当前工作区为1号工作区
SELECT0&
1号工作区未打开过表,选定的工作区即该区
GO3&
移至3号记录,注意该记录的部门字段值为22
选定2号工作区为当前工作区
USEbmdm
INDEXON代码TAGdm
SEEKsb.部门&
即SEEK22
sb.编号,a.名称,名称
显示“037-2磨床二车间”。
这里“a.名称”指sb.名称,“名称”指bmdm.名称
SELECTsb&
选定SB.DBF所在工作区为当前工作区
编号,名称,bmdm.名称&
显示“037-2磨床二车间”
[例3-9]查询1992年起启用的设备,要求显示查到的设备的编号、名称、启用日期和部门名。
(a)建立视图文件SBBM.VUE。
(b)显示结果:
往命令窗口输入如下两条命令
SETSTRICTDATETO0&
使用通常的日期格式
BROWSEFIELDSBMDM.名称:
H='
部门名'
Sb.编号,Sb.名称:
设备名'
;
Sb.启用日期FORSb.启用日期>
={01/01/92}
(c)例3-9设置的多一关系可用如下命令序列来表达:
SELECT2
USEbmdm&
打开子表
INDEXON代码TAG代码ADDITIVE&
子表在代码字段建立索引
SELECT1
USEsb&
打开父表
SETRELATIONTOsb.部门INTObmdmADDITIVE&
指定在部门字段对子表设置多一关系
[例3-10]列出所有设备的价格、增值和部门名,试写出命令序列。
CLOSEALL
USEbmdm&
子表1
SETORDERTOTAG代码
SELECT3
USEzz&
子表2
父表
SETRELATIONTOsb.部门INTObmdm
SETRELATIONTOsb.编号INTOzzADDITIVE
SETSKIPTOzz&
子表ZZ为多方
BROWSEFIELDS编号,价格,zz.增值,bmdm.名称:
[例3-11]统计设备科拥有的设备台数,试写出命令序列。
SETVIEWTOsbbm&
恢复例3-9所建立的sb表与bmdm表的关联
LOCATEFORbmdm.名称='
设备科'
dm=bmdm.代码&
将bmdm表当前记录的代码保存到内存变量dm中
COUNTFORsb.部门=dmTOts&
由于两个表指针联动,不可直接用bmdm.代码来代替dm
'
设备科设备台数:
'
ts&
显示“设备科设备台数:
2”
[例3-12]试根据SB.DBF与ZZ.DBF求各设备的价格和与增值和,试写出命令序列。
USEsbIN0&
在可用的最小编号工作区打开sb表
SUM价格TOmjg
SELECT0
USEzz
SUMzz.增值TOmzz
价格和,增值和:
mjg,mzz&
显示“价格和,增值和:
505859.474720.00”
[例3-13]求所有设备价格与增值的总和,试写出命令序列。
USEsbIN0
CALCULATESUM(价格)TOjgh
CALCULATESUM(增值)TOzzh
价格与增值总和:
jgh+zzh&
显示“价格与增值总和:
510579.47”
[例3-14]在DX.DBF中按设备的编号来汇总大修费用,试写出命令序列。
USEdx
TOTALON编号TOjghzFIELDS费用&
按编号汇总费用,写入新表JGHZ.DBF
USEjghz
BROWSEFIELDS编号,费用TITLE'
大修费用汇总表'
[例3-15]查找大修过的所有设备。
SELECTDISTINCT编号FROMdx
[例3-16]求出每一设备的增值金额,并送至打印机打印。
SELECT编号,SUM(增值)FROMzz;
GROUPBY编号TOPRINTER
[例3-17]找出大修费用已超过5000元的设备,并将结果存入数组ADX。
SELECT编号FROMdx;
GROUPBY编号HAVINGSUM(费用)>
5000INTOARRAYadx
FORi=1TOALEN(adx)&
ALEN函数返回数组元素的个数
adx(i)
NEXT
[例3-18]求价格低于20000元的设备名称、启用日期与部门,并按启用日期升序排序。
SELECT名称,启用日期,部门FROMsb;
WHERE价格<
20000ORDERBY启用日期ASC
[例3-19]查找增值设备的编号、名称及每次增值的金额。
解一:
SELECTsb.编号,sb.名称,zz.增值;
FROMsbINNERJOINzzONsb.编号=zz.编号
解二:
SELECTsb.编号,sb.名称,zz.增值FROMsb,zz;
WHEREsb.编号=zz.编号
[例3-20]试汇总设备的大修费用,要求
(1)SB.编号头3位小于038。
(2)显示设备名称与大修费用小计。
(3)显示结果按大修费用小计降序排列。
解一:
SELECTsb.名称,SUM(dx.费用)FROMsbINNERJOINdxONsb.编号=dx.编号;
WHERELEFT(sb.编号,3)<
"
038"
GROUPBYdx.编号;
ORDERBY2DESCENDING
由于不可使用SUM(dx.费用)作为排序表达式,故命令的ORDERBY子句中用数字2来表示按查询结果中的第2列排序。
查询结果如图3.25所示。
SELECTsb.名称,SUM(dx.费用)FROMsb,dx;
WHEREsb.编号=dx.编号ANDLEFT(sb.编号,3)<
[例3-21]找出增值设备的名称,所属部门和累计增值金额。
SELECTsb.名称as设备名,bmdm.名称AS部门名,SUM(zz.增值)AS累计增值额;
FROMsb,bmdm,zz;
WHEREsb.编号=zz.编号ANDsb.部门=bmdm.代码GROUPBYzz.编号
[例3-28]从SBSJ数据库所属的SB和ZZ两个表中抽取编号、名称和增值3个字段,组成名称为“我的视图”的SQL视图。
可使用以下的命令:
OPENDATABASEsbsj&
含SB、ZZ等数据库表
CREATESQLVIEW我的视图;
ASSELECTsb.编号,sb.名称,zz.增值FROMsb,zzWHEREsb.编号=zz.编号
实验四结构化程序
熟练掌握VisualFoxPro6.0程序设计的基本方法
1.上机操作
(1)编一程序,要求显示九九乘法表(部分):
1×
1=11×
2=21×
3=31×
4=41×
5=5
2×
2=42×
3=62×
4=82×
5=10
……
5×
5=25
(2)编一学生成绩统计表。
设学生表和成绩表文件有如下信息:
学生表:
xs.dbf
记录号学号姓名住址
11001李利成都
21002王华绵阳
31003张丽重庆
41004吴芳内江
51005赵华自贡
成绩表:
cj.dbf
记录号学号数学外语计算机总分平均
11001567679
21002657483
31003766579
41004675658
51005789659
计算各位学生平均成绩,并按平均成绩降序输出成绩表,表中要有学号、姓名、各科成绩及平均成绩等信息。
(3)设计一个计算球表面积的子程序(或过程),并要求在主程序中带参数调用它。
计算公式:
算球表面积=
(4)设计一个自定义函数,用来求一元一次方程AX+B=0的根。
实验五菜单设计
熟练掌握菜单设计的基本方法
1.利用菜单设计器建立一个下拉式菜单。
2.建立一个具有撤销和剪贴板功能的快捷菜单,供浏览表文件是使用。
同时编写一个调用程序,来调用这个快捷菜单。
3.写出实验报告。
实验六表单设计
熟练掌握表单设计的基本方法
(1)创建以下表单:
表单的Name属性值为:
Form1;
表单上放有两个命令按钮,其Name属性值分别为:
Command1,Command2;
命令按钮Command1的Click事件代码如下:
thisform.scalemode=3&
表单坐标已象素为单位
x1=thisform.width/2
y1=thisform.width/2
max=iif(x1<
y1,x1,y1)
forr=0tomaxstep10
thisform.circle(r,x1,y1)
endfor
命令按钮Command2的Click事件代码如下:
thisform.cls
thisform.release
运行该表单:
鼠标左键单击命令按钮Command1的结果是:
鼠标左键单击命令按钮Command2的结果是:
(2)创建只含一个文本框控件(Text1)的表单(Form1):
表单(Form1)的Load事件代码编写如下:
PUBLICi
文本框(Text1)的Click事件代码编写如下:
IFi=.T.
.'
年月日间隔符设置为点号
i=.F.
ELSE
i=.T.
ENDIF
运行该表单时,鼠标左键逐次单击文本框的内部,该文本框内会出现什么情况?
(3)创建一表单,运行该表单时从右到左滚动显示“成都银杏酒店管理学院”。
实验七高级表单设计
熟练掌握高级表单设计方法
(1)设计一个具有密码检验功能的应用程序,并要求密码检验合格时能打开一个带菜单的设备管理窗口。
(2)创建一个表单子类,要求基于该子类的表单有如下特征:
表单的标题栏为“银杏酒店管理学院”;
表单的右下角具有数字时钟。
实验八报表设计
熟练掌握报表的设计
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 管理信息系统实验指导书 银杏 酒店 管理学院 管理信息系统 实验 指导书