文档库 最新最全的文档下载
当前位置:文档库 › 《管理信息系统实验指导书》

《管理信息系统实验指导书》

管理信息系统实验二

实验大纲

一、实验目的

1. 掌握《 管理信息系统( MIS ) 》课程中的MIS 开发方法,开发一个小型SMIS 。

2. 本实验不强调系统分析、系统设计,主要训练系统实施和开发的能力,了解系统实现的过程。

二、实验准备

1. 硬件∶Pentium 微机。

2.

软件∶Windows 环境∶Visual FoxPro 6.0

三、实验内容 实验题目∶学生管理信息系统的开发

该班级属学生科领导,SMIS 主要负责学生信息∶增加、删除、修改、查询、显示。

四、系统实施

1. 编写一个主控模块, 该模块运行后, 屏幕首先显示如下信息:

20070805****班 管理信息系统 成都理工大学 财务管理系

学生姓名 研制 2009年5月

屏幕显示如下的下拉式菜单: 选定不同的功能模块,将可以完成不同的模块功能. 2. 请编写上述9个子模块,各模块要求如下: (1) 系统初始化—— 在数据库结构和数据已经存在的情况下,擦去课程1、课程2、课程3字段的值,以便以后填写它们的新数值。 (2) 退出SMIS 系统——结束用户停止使用本系统,并在屏幕上显示

帮助 系统说明 查询与计算 查询 计算 显示 编辑 填写 修改 删除 系统管理 系统初始化 退出SMIS 系统

******班管理信息系统使用结束

再见

模块功能:退出到Windows。

(3) 填写——在数据文件中追加学员的记录。

模块功能:追加一条学员记录

(4) 修改——在数据文件中修改某一条学员记录

模块功能:根据学号(或姓名)修改某一条学员记录

(5) 删除——在数据文件中删除某一条学员记录

模块功能:根据学号或根据姓名删除某一学员记录、或删除全部学员记录。

(6) 查询——在数据文件中查询符合条件的学员记录,并将其显示在屏幕上。

模块功能: 1. 按照学号查询符合条件的某学员记录

2. 按照姓名查询符合条件的某学员记录

若检索成功, 请按如下格式显示(否则提示∶查无此人):

记录编号:

学号: 姓名: 性别: 年龄: 班号: 系别∶

课程1: 课程2: 课程3: 总分: 备注:

(7) 计算

模块功能:计算每个学员的总分、显示总分最高者和最低者;显示全部学员每门课程的平均成绩、每门课程最高分和最低分。

(8) 显示——在屏幕上显示全部数据记录

模块功能:逐屏根据学号顺序显示全部学员记录。

(9) 系统说明——系统说明将在屏幕上出现如下提示信息:

系统说明

a. 本系统是成都理工大学*******系****** 班管理信息系统.

b. 本系统是成都理工大学*******系****** 研制

c. 本系统是用Visual FoxPro(或Foxbase)开发.

d. 系统启动命令 a. 先进入Visual FoxPro(或Foxbase)状态

b. DO ****

f. 系统采用菜单提示的方法, 便于用户使用.

g. 系统必需留有备份盘.

**********大学*******系****** 2009 年5月**日

五、建立一个数据库文件

记录格式内容如下:

学号姓名系别班号年龄性别课程1 课程2 课程3 备注

请输入12-15条数据记录

六、调试并验收SMIS

请把整个系统连机调试并检验通过其功能,并在教师前使用并检查该系统。

参考文献

1. 史济民、汤观全,《Visual Foxpro 及其应用系统开发》,清华大学出版社,2000年1月

管理信息系统实验二

实验指导书

SMIS的开发过程将用到以下几个方面的知识:

1. 数据库(表)的基本操作第二章:表的基本操作

2. 菜单的设计第五章的第一节:下拉菜单的设计

3. 表单的设计第六章:表单设计基础

第七章:表单控件设计;第八章:表单高级设计

4. 程序设计请参考第四章:程序设计初步

5. 项目管理器请参考第一章第七节:项目管理器

SMIS具体开发过程分为如下16步:

一、建立并设置默认工作目录

为避免为SMIS所建立的各个文件与其他文件混在一起,可建立在硬盘上建立一子目录,并设置默认目录到此目录。

方法:在VFP的命令窗口中输入如下两条命令:

MD D:\SMIS

SET DEFAULT TO D:\SMIS

设置好默认目录以后,在保存所建立的各类文件时,如不指定盘符、路径,文件都将保存在此目录中。每次上机结束之前,关闭VFP,在Windows中将SMIS中所有文件复制到优盘上。下次上机时,先在Windows中将优盘上的文件复制到D:\SMIS目录,启动VFP 后,再使用命令:SET DEFAULT TO C:\SMIS 重设默认目录。(注意:退出VFP后,所设置的默认目录不被保存,再次进入VFP时,必须重新使用命令:SET DEFAULT TO D:\SMIS 设置默认目录)

二、建立数据库:STUDENTS.DBF

方法:在命令窗口中输入命令:create STUDENTS调出表设计器,定义各字段的字段名、类型、宽度、小数位如下:

字段名类型宽度小数

学号字符型4

姓名字符型8

性别字符型2

年龄数值型24+1 0

班号字符型5

系别字符型2

课程1 数值型30

课程2 数值型30

课程3 数值型30

备注备注型4

三、建立下拉菜单

第1步:调出菜单设计器

方法:单击“文件”菜单项,选择“新建”再选择“菜单”再单击“新建文件”按钮,

现单击“菜单”按钮。

第2步:输入各级菜单及其相应的调用命令。

一级菜单二级菜单调用的命令

系统管理系统初始化do form frmxtcsh

退出SMIS系统quit

编辑填写do form frmtx

修改do form frmxg

删除do form frmsc

查询计算查询do form frmcx

计算do form frmjs

显示do xs

帮助系统说明do form frmxtsm

第3步:单击“显示”菜单项,选择“常规选项”选择“顶层菜单”,再单击“确定”按钮。

第4步:单击“菜单”菜单项,选择“生成”输入文件名:mnusmis.mnx保存菜单设计器中的内容,并用mnusmis.mpr作为生成的可执行的菜单程序的文件名。

四、设计SMIS的主表单:frmsmis

第1步:调出表单设计器

方法:单击“文件”菜单项,选择“新建”再选择“表单”再单击“新建文件”按钮。

第2步:设置表单的有关属性

属性名称属性值

name frmsmis

caption 学生管理信息系统

desktop .T.

showwindow 2 (作项层表单)

第3步:编写事件代码

init 过程的代码

application.visible=.F.

do mnusmis.mpr with this, .T.

destroy 过程的代码

application.visible=.T.

cancel

(注:系统最终调试成功后,可将cancel 改为quit )

第4步:存盘退出

单击常用工具栏中的“保存”按钮,在“另存为”对话框的“保存表单为”框中输入frmsmis,单击对话框中的“保存”按钮,将表单存盘,然后关闭表单设计器。

五、编写主程序:main.prg

在命令窗口中使用命令:

modify command main

程序内容:

do form frmsmis

read events

六、设计“系统初始化”表单:frmxtcsh

第1步:打开表单设计器

第2步:设置表单的有关属性

属性名称属性值

name frmxtcsh

caption 系统初始化

showwindow 1(在项层表单中)

第3步:添加一个文本框(用于显示提示信息)并设置文本框的属性

属性名称属性值

value 要清除所有学生的各科成绩吗?

fontsize (请根据自己的喜好进行设置)

forecolor (请根据自己的喜好进行设置)

backcolor (请根据自己的喜好进行设置)

第4步:添加两个命令按钮并设置命令按钮的属性、编写命令按钮的事件代码

command1的属性

属性名称属性值

caption 清除

fontsize (请根据自己的喜好进行设置)

command2的属性

属性名称属性值

caption 返回

fontsize (请根据自己的喜好进行设置)

command1的事件代码

click 过程的代码:

use students

replace all 课程1 with 0,课程2 with 0,课程3 with 0

thisform.text1.value="所有学生的各科成绩已被清除!"

command2的事件代码

click 过程的代码:

thisform.release

第5步:存盘退出

以frmxtcsh 作表单文件名

七、创建用于显示一个学生的数据的表单类:clsfrmstud

第1步:调出类设计器

方法:单击“文件”菜单项,选择“新建”再选择“类”再单击“新建文件”按钮,填写“新建类”对话框中的类名(clsfrmstud)、派生于(form)、

存储于(clslibsmis)并单击“确定”按钮。

第2步:在类设计器中的表单上添加10个标签、10个文本框,一个命令按钮并合理安排它们的位置。

第3步:设置有关的属性

对象属性属性值

clsfrmstud showwindow 1(在项层表单中)

label1 caption 学号

label2 caption 姓名

label3 caption 性别

label4 caption 年龄

label5 caption 班号

label6 caption 系别

label7 caption 课程1

label8 caption 课程2

label9 caption 课程3

label10 caption 备注

text1 controlsource 学号

text2 controlsource 姓名

text3 controlsource 性别

text4 controlsource 年龄

text5 controlsource 班号

text6 controlsource 系别

text7 controlsource 课程1

text8 controlsource 课程2

text9 controlsource 课程3

text10 controlsource 备注

command1 caption 返回

第4步:设置有“返回”命令按钮的事件代码

click 事件的代码:

thisform.release

第5步:存盘退出

八、创建“填写”子表单frmtx

第1步:打开表单设计器

第2步:将自定义的clsfrmstud类添加到“表单控件工具栏”

方法:单击“表单控件工具栏”中的“查看类”按钮,选择“添加”,在“打开”对话框中选择文件“clslibsmis.vcx”再单击“打开”,此时在“表单控件工具栏”中将出现一个“clsfrmstud”控件。

第3步:利用自定义的clsfrmstud类创建表单

方法:选中“表单控件工具栏”中的“clsfrmstud”控件,鼠标移到表单上并单击鼠标左键,此时屏幕上出现一对话框提问:“要添加表单,需要一个表单集对象,创建一个吗?”,回答“是(Y)”。

第4步:设置新创建的表单的属性和事件代码

属性属性值

name frmtx

caption 填写

对象事件代码

frmtx init 过程的代码

use students

append blank

frmtx destroy 过程的代码

delete for empty(学号)

pack

frmtx getfocus 过程的代码

thisform.text1.setfocus

第5步:添加一命令按钮command2,并设置其属性和事件代码

(在第3步操作之后,“表单控件工具栏”中显示的控件是用户自定义的类,此时要使用常用的表单控件,可单击“表单控件工具栏”中的“查看类”按钮,选择“常用”。)属性属性值

caption 继续

事件代码

click 过程的代码

append blank

thisform.text1.refresh

thisform.text2.refresh

thisform.text3.refresh

thisform.text4.refresh

thisform.text5.refresh

thisform.text6.refresh

thisform.text7.refresh

thisform.text8.refresh

thisform.text9.refresh

thisform.text10.refresh

第6步:将表单集中多余的表单:form1删除

方法:选中表单:form1,选择“表单”菜单项中的“移去表单”

第7步:存盘退出,存盘时用frmtx作表单的文件名。

九、创建可根据学生的学号和姓名来指定显示一个学生的数据的表单类clsfrmstuda

第1步:调出类设计器

方法:单击“文件”菜单项,选择“新建”再选择“类”再单击“新建文件”按钮,填写“新建类”对话框中的类名(clsfrmstuda)、派生于(clsfrmstud)(方法:单击派生于列表框右边的带三个小数点的按钮,从打开对话框中选择clslibsmis.vcx并单击“打开”)、存储于(clslibsmis)并单击“确定”按钮。

第2步:添加一个标签和两个“组合框”:label11、combo1、combo2,合理安排它们的位置并设置其属性:

对象属性属性值

label11 caption 请指定学生的学号或姓名

combo1 rowsouretype 6 -- 字段

rowsoure 学号

combo2 rowsouretype 6 -- 字段

rowsoure 姓名

第3步:编写事件代码

对象过程及代码

clsfrmstuda

init

use students

https://www.wendangku.net/doc/8e7440525.html,bo1.value=学号

https://www.wendangku.net/doc/8e7440525.html,bo2.value=姓名

getfocus

https://www.wendangku.net/doc/8e7440525.html,bo1.setfocus

destroy

use

combo1

valid

thisform.text1.refresh

thisform.text2.refresh

thisform.text3.refresh

thisform.text4.refresh

thisform.text5.refresh

thisform.text6.refresh

thisform.text7.refresh

thisform.text8.refresh

thisform.text9.refresh

thisform.text10.refresh

locate for alltrim(学号)==alltrim(this.value)

if found() or empty(学号)

return .t.

else

return .f.

endif

combo2

valid

thisform.text1.refresh

thisform.text2.refresh

thisform.text3.refresh

thisform.text4.refresh

thisform.text5.refresh

thisform.text6.refresh

thisform.text7.refresh

thisform.text8.refresh

thisform.text9.refresh

thisform.text10.refresh

locate for alltrim(姓名)==alltrim(this.value)

if found() or empty(姓名)

return .t.

else

return .f.

endif

第4步:存盘退出

十、创建“修改”子表单frmxg

第1步:打开表单设计器。

第2步:利用自定义的clsfrmstuda类创建表单。

(先使用步骤八的第2步的方法将clsfrmstuda添加到“表单控件工具栏”)

方法:选中“表单控件工具栏”中的“clsfrmstuda”控件,鼠标移到表单上并单击鼠标左键,此时屏幕上出现一对话框提问:“要添加表单,需要一个表单集对象,创建一个吗?”,回答“是(Y)”。

第3步:设置新创建的表单的属性和事件代码。

属性属性值

name frmxg

caption 修改

第4步:将表单集中多余的表单:form1删除

方法:选中表单:form1,选择“表单”菜单项中的“移去表单”

第5步:存盘退出,存盘时用frmxg作表单的文件名。

十一、创建“删除”子表单frmsc

第1步:打开表单设计器。

第2步:利用自定义的clsfrmstuda类创建表单。

方法:选中“表单控件工具栏”中的“clsfrmstuda”控件,鼠标移到表单上,此时屏幕上出现一对话框提问:“要添加表单,需要一个表单集对象,创建一个吗?”,回答“是(Y)”。

第3步:设置新创建的表单的属性和事件代码。

属性属性值

name frmsc

caption 删除

第4步:将text1~text10设置为只读

对象属性属性值

text1 readonly .T.

text2 readonly .T.

text3 readonly .T.

text4 readonly .T.

text5 readonly .T.

text6 readonly .T.

text7 readonly .T.

text8 readonly .T.

text9 readonly .T.

text10 readonly .T.

第6步:在新创建的表单中增加4个命令按钮:command2、command3、command4、command5,1个标签:label11,1个复选框:check1、设置属性和事件代码如下:对象属性属性值

command2 caption 删除当前记录

command3 caption 恢复当前记录

command4 caption 删除所有记录

command5 caption 恢复所有记录

label11 caption 当前记录是否已加删除标志?

check1 readonly .T.

第5步:编写表单及控件的事件代码

对象过程及代码

frmsc destroy

pack

use

combo1 valid

thisform.check1.value=delete()

dodefault()

combo2 valid

thisform.check1.value=delete()

dodefault()

command2 click

delete

thisform.check1.value=.t.

command3 click

recall

thisform.check1.value=.f.

command4 click

delete all

thisform.check1.value=.t.

command5 click

recall all

thisform.check1.value=.f.

第7步:将表单集中多余的表单:form1删除

方法:选中表单:form1,选择“表单”菜单项中的“移去表单”

第8步:存盘退出,存盘时用frmsc作表单的文件名

十二、创建“查询”子表单frmcx

第1步:打开表单设计器。

第2步:利用自定义的clsfrmstuda类创建表单。

方法:选中“表单控件工具栏”中的“clsfrmstuda”控件,鼠标移到表单上并单击鼠标左键,此时屏幕上出现一对话框提问:“要添加表单,需要一个表单集对象,创建一个吗?”,回答“是(Y)”。

第3步:设置新创建的表单的属性和事件代码。

属性属性值

name frmcx

caption 查询

第4步:将text1~text10设置为只读

对象属性属性值

text1 readonly .T.

text2 readonly .T.

text3 readonly .T.

text4 readonly .T.

text5 readonly .T.

text6 readonly .T.

text7 readonly .T.

text8 readonly .T.

text9 readonly .T.

text10 readonly .T.

第5步:将表单集中多余的表单:form1删除

方法:选中表单:form1,选择“表单”菜单项中的“移去表单”

第6步:存盘退出,存盘时用frmcx作表单的文件名。

十三、创建“计算”子表单frmjs

第1步:打开表单设计器。

第2步:设置表单的有关属性

属性名称属性值

name frmjs

caption 计算

showwindow 1 (在项层表单中)

第3步:在表单上添加4个标签和11个文本框合理按排它们的位置并设置它们的属性对象属性属性值

label1 caption 总分最高者、最低分者:

label2 caption 课程1的最高分、最低分、平均分:

label3 caption 课程2的最高分、最低分、平均分:

label4 caption 课程3的最高分、最低分、平均分:

第4步:在init过程中编写用于计算的代码:

对象过程及其代码

frmjs init

use students

set talk off

max=课程1+课程2+课程3

min=课程1+课程2+课程3

max1=课程1

min1=课程1

max2=课程2

min2=课程2

max3=课程3

min3=课程3

scan

if 课程1+课程2+课程3>max

max=课程1+课程2+课程3

endif

if 课程1+课程2+课程3

min=课程1+课程2+课程3

endif

if 课程1>max1

max1=课程1

endif

if 课程1

min1=课程1

endif

if 课程2>max2

max2=课程2

endif

if 课程2

min2=课程2

endif

if 课程3>max3

max3=课程3

endif

if 课程3

min3=课程3

endif

endscan

average 课程1,课程2,课程3 to aver1,aver2,aver3

locate for 课程1+课程2+课程3=max

xmofmax=姓名

locate for 课程1+课程2+课程3=min

xmofmin=姓名

this.text1.value=xmofmax

this.text2.value=xmofmin

this.text3.value=max1

this.text4.value=min1

this.text5.value=aver1

this.text6.value=max2

this.text7.value=min2

this.text8.value=aver2

this.text9.value=max3

this.text10.value=min3

this.text11.value=aver3

第6步:存盘退出,存盘时用frmjs作表单的文件名。

十四、创建“显示”子程序xs

第1步:在命令窗口中输入命令:

modify command xs

第2步:在程序编辑窗口中输入如下代码:

use students

brow noedit noappend nodelete

use

十五、创建“系统说明”子表单frmxtsm

第1步:打开表单设计器。

第2步:设置表单的有关属性

属性名称属性值

name frmxtsm

caption 系统说明

showwindow 1 (在项层表单中)

第3步:在表单上添加1个文本框、1个命令按钮合理安排它们的位置(文本框的尺寸应足够大,用于显示说明信息),并设置属性

对象属性名称属性值

command1 caption 返回

第4步:编写表单和控件的事件代码

对象过程及其代码

frmxtsm init

this.text1.value=' 系统说明'+chr(10)+;

' 本系统是电子科大XX 系XXXXXX 的管理信息系统'+chr(10)+;

'............'

command1 click

thisform.release

第5步:存盘退出,存盘时用frmxtsm作表单的文件名。

十六、创建项目文件:smis.pjx,并将smis编译成可执行文件:smis.exe 当SMIS的全部程序创建完成后,并在Visual Foxpro中调试成功后,可将其编译成EXE 文件,从而可脱离Visual Foxpro 而运行。(可先参考步骤四第3步的说明,将表单:frmsmis 的destory事件中的cancel命令改成quit命令)

第1步:打开项目管理器

方法:单击“文件”菜单项,选择“新建”再选择“项目”再单击“新建文件”按钮,以smis.pjx作项目文件名。

第2步:将主程序添加到项目中

选“代码”|“程序”,单击“添加”按钮,在“打开”对话框中选择:main.prg ,单击“确定”,将main.prg添加到项目。

第3步:编译

单击“连编”按钮,在操作框中选择“连编可执行文件”,单击“确认”。

相关文档