银杏酒店管理学院《管理信息系统实验指导书》.docx
《银杏酒店管理学院《管理信息系统实验指导书》.docx》由会员分享,可在线阅读,更多相关《银杏酒店管理学院《管理信息系统实验指导书》.docx(24页珍藏版)》请在冰豆网上搜索。
![银杏酒店管理学院《管理信息系统实验指导书》.docx](https://file1.bdocx.com/fileroot1/2023-2/6/b2ecb7de-1e1f-4832-aa29-82f768574673/b2ecb7de-1e1f-4832-aa29-82f7685746731.gif)
银杏酒店管理学院《管理信息系统实验指导书》
《管理信息系统》实验指导书
一、实验的地位、作用
管理信息系统实验作为课程实践性环节之一,是教学过程中必不可少的重要内容。
通过计算机实验和案例分析,使学生加深理解、验证巩固课堂教学内容;增强管理信息系统的感性认识;掌握管理信息系统分析、开发的基本方法;培养学生理论与实践相结合的能力。
二、基本原理及课程简介
《管理信息系统》是一门培养学生信息系统分析、设计、开发能力的理论课程,同时要求学生具有较强的动手实践能力。
在信息管理与信息系统专业的培养计划中,它是核心课程。
本课程在教学内容方面着重基本理论、基本知识和基本方法。
在实践能力方面着重培养系统分析方法、系统设计方法与基本技能的训练。
实验课程不同于理论课程,应充分体现“教师指导下的以学生为中心”的教学模式,以学生为认知主体,充分调动学生的积极性和能动性,重视学生自学能力的培养,共开设5个实验项目。
实验1-4侧重单项技能训练,实验5为综合性实验。
三、实验内容及要求
用信息系统开发工具(例如VFP,也可用Access、VB等)开发一个实用的中小型管理信息系统。
1、根据实验时间选择适当规模大小的设计课题。
2、根据合理的进度安排,按照系统开发的流程及方法,踏实地开展实验活动。
3、实验过程中,根据选题的具体需求,在开发各环节中撰写相关的技术文档,最后要求提交详细的课程设计报告。
4、开发出可以运行的管理信息系统,通过上机检查。
四、实验的考查
由指导教师根据学生完成课程设计任务的情况综合打分,记入平时成绩。
五、实验报告撰写要求
实验报告撰写的基本要求是报告原则上不少于2000字,需在封面注明设计选题、班级、姓名、学号及课题设计日期、地点,其正文至少包括如下几个方面的内容:
(1)可行性分析
(2)系统分析部分
1)业务流程图
2)数据流程图
3)功能分析图
4)数据字典
5)数据加工处理的描述
6)管理信息系统流程设想图(新系统模型)
(3)系统设计部分
1)功能结构图设计
2)新系统信息处理流程设计
3)输出设计(主要指打印输出设计)
4)存储文件格式设计(数据库结构设计)
5)输入设计(主要指数据录入卡设计)
6)代码设计(职工证号和部门代号等)
7)程序设计说明书
(4)系统实施部分
1)程序框图
2)源程序
3)模拟运行数据
4)打印报表
5)系统使用说明书
(5)附录或参考资料
六、指导教师
原则上由管理信息系统课程讲授教师负责,由年轻教师担任主要的实验指导教师,实验室人员配合指导。
指导教师应在每次实验前讲清实验目的、基本原理、实验要求等,指导学生在规定的时间内完成相关课程实验。
七、实验设备配置
每人配置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.验证下列例题:
[例24]定义内存变量C,N1,N2,N3。
s='VFP'&&字符串VFP赋给变量S,结果S值为VFP,并成为字符型变量
STORE2*4TOn1,n2,n3&&计算2*4得8,结果3个变量值都是8,都成为数字型变量
[例25]按下列要求显示SB.DBF的有关信息。
(1)列出头3个记录。
(2)列出部门代码为21(一车间)的编号、名称与备注。
(3)列出1995年前所启用设备的编号、名称、价格与启用日期,还要求其中的价格打9折,并且不显示记录号。
USEsb
LISTNEXT3&&
(1)
LIST部门,编号,名称,备注FOR部门="21"&&
(2)
LIST编号,名称,价格*0.9,启用日期FORYEAR(启用日期)<1995OFF&&(3)
[例2-6]表的复制示例。
USEsb
COPYTOa1&&对sb.dbf原样复制,同时生成A1.DBF与A1.FPT
COPYTOa2FIELDS名称,编号FORLEFT(部门,1)="2";
&&A2.DBF只含有各车间所具设备的名称与编号两个字段内容,而且名称排在编号前
[例27]以系统数据格式将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&&取消过滤器
LIST&&显示全部记录
[例2-9]对SB.DBF命令设置字段表,使有效字段为编号、名称和部门。
useSB
setfielDSto编号,名称,部门
LIST&&显示3个字段的数据
setfielDSOFF&&取消字段表的作用
LIST&&显示所有字段的数据
[例2-10]建立设备大修表DX.DBF。
CREATETABLEdx(编号c(5),年月c(4),费用n(6,1))
LISTSTRUCTURE&&主屏幕显示DX.DBF的结构
INSERTINTOdxVALUES("016-1","8911",2763.5)
INSERTINTOdxVALUES("016-1","9112",3520.0)
INSERTINTOdxVALUES("037-2","9206",6204.4)
INSERTINTOdxVALUES("038-1","8911",2850.0)
LISTOFF&&主窗口显示所有记录
[例2-11]将例2-6产生的表A1.DBF中所有记录的名称和价格字段的值追加到SB.DBF的末尾。
USEsb
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)将主要设备按部门降序排序,当部门相同时则按价格升序排序。
USEsb
SORTTOrqxON启用日期/DFIELDS编号,名称,启用日期FORNOT主要设备
USErqx&&打开新表RQX.DBF
LIST&&主窗口显示如下
USE
SORTTObmxON部门/D,价格FOR主要设备
USEbmx
LIST&&主窗口显示如下
[例3-2]为SB.DBF建立一个结构复合索引文件,其中包括3个索引:
(1)记录以价格降序排列,索引为普通索引型。
(2)记录以部门升序排列,部门相同时则按价格升序排列,索引为普通索引型。
(3)记录以部门升序排列,部门相同时则按价格降序排列,索引为候选索引型。
USEsb
INDEXON价格TAGjgDESCENDING&&建立SB.CDX,并为价格字段建立普通索引,索引标识为JG
LIST&&记录已按价格降序排列
INDEXON部门+STR(价格,9,2)TAGbmjg;
&&以字段表达式“部门+STR(价格,9,2)”建立普通索引,索引标识BMJG增入SB.CDX
LIST&&索引表达式运算后升序排列,致使记录按部门升序、部门相同按价格升序排列
INDEXONVAL(部门)-价格/1000000TAGbmjg1CANDIDATE;
&&以字段表达式建立候选索引,索引标识bmjg1增入SB.CDX
LIST&&索引表达式运算后升序排列,致使记录按部门升序、部门相同按价格降序排列
[例3-3]根据例3-2建立的索引改变主控索引。
USEsb
setordeRtojg&&用索引标识JG指定主控索引
LIST&&记录按价格降序排列
setordeRto3&&用索引序号3指定BMJG1为主控索引
LIST&&记录以部门升序排列,部门相同时则按价格降序排列
SETORDERTO&&取消主控索引
LIST&&记录按物理顺序显示
setordeRto2&&用索引序号2指定BMJG为主控索引
LIST&&记录按部门升序排列,部门相同时则按价格升序排列
[例3-4]在SB.DBF中查询价格小于15000元的非主要设备。
USEsb
LOCATEFOR价格<15000ANDNOT主要设备
DISPLAY&&显示:
记录号编号名称启用日期价格部门主要设备备注商标
4038-1钻床10/12/895275.0023.F.Memogen
CONTINUE
?
RECNO(),名称,价格,主要设备&&显示:
6复印机10305.01.F._
CONTINUE&&状态条显示:
已到定位范围末尾。
[例3-5]SEEK命令用法示例。
USEsb
INDEXON编号TAGbh
SEEK"038-1"&&不可写为:
SEEK编号="038-1"
?
RECNO()&&显示:
4
INDEXON启用日期TAGqyrq
SEEK{3/5/90}
?
FOUND()&&.显示.T.,表示找到该日期
INDEXON价格TAGjg
SEEK1000.00
?
RECNO(),FOUND()&&除在状态条显示“没有找到。
”外,还在主屏幕显示:
8.F.
[例3-6]模糊查询与精确查询示例。
USEsb
SETORDERTOTAGbh
SEEK"03"&&按编号前两个字符查找
?
RECNO(),FOUND()&&显示:
3.T.
SETEXACTON&&设置完全匹配环境
SEEK"03"
?
FOUND()&&返回.F.
SETEXACTOFF&&恢复成模糊匹配环境
[例3-7]通过多区操作从部门代码查出部门名。
CLOSEALL&&关闭所有打开的表,当前工作区为1号工作区
SELECT0&&1号工作区未打开过表,选定的工作区即该区
USEsb
GO3&&移至3号记录,注意该记录的部门字段值为22
SELECT0&&选定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.名称:
H='设备名',;
Sb.启用日期FORSb.启用日期>={01/01/92}
(c)例3-9设置的多一关系可用如下命令序列来表达:
SELECT2
USEbmdm&&打开子表
INDEXON代码TAG代码ADDITIVE&&子表在代码字段建立索引
SELECT1
USEsb&&打开父表
SETRELATIONTOsb.部门INTObmdmADDITIVE&&指定在部门字段对子表设置多一关系
[例3-10]列出所有设备的价格、增值和部门名,试写出命令序列。
CLOSEALL
SELECT2
USEbmdm&&子表1
SETORDERTOTAG代码
SELECT3
USEzz&&子表2
INDEXON编号TAGbh
SELECT1
USEsb&&父表
SETRELATIONTOsb.部门INTObmdm
SETRELATIONTOsb.编号INTOzzADDITIVE
SETSKIPTOzz&&子表ZZ为多方
BROWSEFIELDS编号,价格,zz.增值,bmdm.名称:
H='部门名'
[例3-11]统计设备科拥有的设备台数,试写出命令序列。
SETVIEWTOsbbm&&恢复例3-9所建立的sb表与bmdm表的关联
LOCATEFORbmdm.名称='设备科'
dm=bmdm.代码&&将bmdm表当前记录的代码保存到内存变量dm中
COUNTFORsb.部门=dmTOts&&由于两个表指针联动,不可直接用bmdm.代码来代替dm
?
'设备科设备台数:
',ts&&显示“设备科设备台数:
2”
[例3-12]试根据SB.DBF与ZZ.DBF求各设备的价格和与增值和,试写出命令序列。
CLOSEALL
USEsbIN0&&在可用的最小编号工作区打开sb表
SUM价格TOmjg
SELECT0
USEzz
SUMzz.增值TOmzz
?
'价格和,增值和:
',mjg,mzz&&显示“价格和,增值和:
505859.474720.00”
[例3-13]求所有设备价格与增值的总和,试写出命令序列。
CLOSEALL
USEsbIN0
CALCULATESUM(价格)TOjgh
SELECT0
USEzz
CALCULATESUM(增值)TOzzh
?
'价格与增值总和:
',jgh+zzh&&显示“价格与增值总和:
510579.47”
[例3-14]在DX.DBF中按设备的编号来汇总大修费用,试写出命令序列。
USEdx
INDEXON编号TAGbh
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)<"038";
GROUPBYdx.编号;
ORDERBY2DESCENDING
[例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的根。
2.写出实验报告。
实验五菜单设计
实验目的:
熟练掌握菜单设计的基本方法
要求:
1.利用菜单设计器建立一个下拉式菜单。
2.建立一个具有撤销和剪贴板功能的快捷菜单,供浏览表文件是使用。
同时编写一个调用程序,来调用这个快捷菜单。
3.写出实验报告。
实验六表单设计
实验目的:
熟练掌握表单设计的基本方法
要求:
1.上机操作
(1)创建以下表单:
表单的Name属性值为:
Form1;
表单上放有两个命令按钮,其Name属性值分别为:
Command1,Command2;
命令按钮Command1的Click事件代码如下:
thisform.scalemode=3&&表单坐标已象素为单位
x1=thisform.width/2
y1=thisform.width/2
max=iif(x1forr=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.
THISFORM.TEXT1.VALUE=DATE()
THISFORM.TEXT1.DateFormat=12&&日期格式设置为年月日次序
THISFORM.TEXT1.DateMark='.'&&年月日间隔符设置为点号
i=.F.
ELSE
THISFORM.TEXT1.VALUE=TIME()
i=.T.
ENDIF
运行该表单时,鼠标左键逐次单击文本框的内部,该文本框内会出现什么情况?
(3)创建一表单,运行该表单时从右到左滚动显示“成都银杏酒店管理学院”。
2.写出实验报告。
实验七高级表单设计
实验目的:
熟练掌握高级表单设计方法
要求:
1.上机操作
(1)设计一个具有密码检验功能的应用程序,并要求密码检验合