《管理系统信息系统》上机实验.docx
- 文档编号:9061360
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:33
- 大小:587.68KB
《管理系统信息系统》上机实验.docx
《《管理系统信息系统》上机实验.docx》由会员分享,可在线阅读,更多相关《《管理系统信息系统》上机实验.docx(33页珍藏版)》请在冰豆网上搜索。
《管理系统信息系统》上机实验
海事大学本科生实验报告
《管理信息系统》上机实验
院(系):
交通运输管理学院
专业班级:
********************
课程名称:
管理信息系统
姓名:
***********
学号:
**************
指导教师:
********
完成日期:
2013年11月22日
管理信息系统
一、实验名称
图书馆借阅管理信息系统分析与设计
二、实验目的
.实践管理信息系统的分析与设计过程,掌握信息系统分析与设计的理论与方法,以及数据库设计理论,明确数据库中表的结构,各表关键字的设计,熟悉结构化查询语言SQL,以及绘图工具软件VISIO的使用。
三、实验要求
1、自拟题目或者选择下列题目,进行信息系统的分析与设计工作,要求按照相应的选题给出该实体的组织机构分析,管理职能分析,业务流程分析,数据流程分析,数据字典,数据加工处理的描述,功能结构图设计,新系统信息处理流程设计,代码设计,输出设计(主要指打印输出设计),存储文件格式设计(数据库结构设计),输入设计(主要指数据录入设计),程序设计说明书,以及实验总结。
其中,部分设计可选取具有代表性的模块进行详细分析与设计即可。
.可选题目:
(1)图书馆管理信息系统
(2)商品销售及会员管理信息系统
(3)银行信贷业务管理信息系统
(4)汽车销售企业管理信息系统
(5)教学管理信息系统
2、用VISIO画图
3、利用UC矩阵进行子系统划分
4、用数据库工具软件建立部分数据库及表,并使用SQL语言对表数据进行插入查询修改删除等基本操作。
要求有说明并截图。
四、实验容与步骤
(一)、实验容
本系统采用“自上而下地总体规划,自下而上地应用开发”的策略开发一个管理信息系统的过程。
通过分析传统的人工管理图书馆的不足,创建了一套行之有效的计算机管理图书馆的方案。
文章详细介绍了图书管理信息系统的系统分析部分,包括可行性分析、组织机构分析、管理职能分析、业务流程分析、数据流程分析、数据字典、处理描述等等;系统设计部分主要介绍了系统功能设计和数据库设计;系统实现部分列出了几个主要的程序框图,并附带了一些主要的窗口和程序。
本系统界面友好,操作简单,比较实用。
(二)实验步骤
1.系统U/C矩阵分析
过程/数据矩阵(U/C矩阵)
U/C矩阵是用来表达过程与数据两者之间的关系。
矩阵中的行表示数据类,列表示过程,并以字母U(Use)和C(Create)来表示过程对数据类的使用和产生。
U/C矩阵是MIS开发中用于系统分析阶段的一个重要工具。
提出了一种用关系数据库实现U/C矩阵的方法,并对其存储、正确性检验、表上作业等做了分析。
2.组织结构与功能分析
组织结构图一反映组织部之间隶属关系的树状结构图如图1,组织结构是如何对组织部进行分工、分配任务,形成上下左右的部门联系以及上下职位结构。
组织结构反映了组织的目标和计划、管理人员可利用的权责、组织所处的环境条件。
图1图书馆的组织结构图
从图中可以看出,这种组织结构设置简单、权责分明,信息沟通方便,便于集中管理。
适合于规模较小的图书馆。
3.组织/业务关系图
由上一节知道,组织结构图对于组织部各部分之间的联系程度,组织各部分主要业务职能和它们在业务过程中承担的工作却不能反映出来。
这会给后续的业务带来困难。
为了弥补这方面的不足,通常需要组织/业务关系图来反映组织各部分在承担业务时的关系。
“√”表示该部门是该项业务的相关部门;
“×”表示该部门是参加协调该业务的相关单位;
“*”表示该部门是对应组织的主要任务;
空格:
表示该单位与对应业务无关。
4.业务流程图
业务流程图(transactionflowdiagram简称TFD)就是利用一些规定的符号及连线来表示某个业务处理过程。
业务流程图的绘制基本上按照业务的实际处理步骤和过程绘制。
换句话说,就是一“本”用图形方式反映实际业务处理过程的“流水账”。
业务流程图是一种用尽可能少、尽可能简单的方法来描述业务处理过程的方法。
5.数据流程图
数据流程图(DataFlowDiagram,DFD)是以管理业务流程图为依据,通过抽象以舍去具体的组织结构、工作场所和物流等,单从数据信息流动的角度,来描述系统部及系统与环境之间的数据信息的传递、处理和存储过程的一种工具[1]。
数据流程图中常用的符号如图2.5-1所示:
6.数据字典
数据字典(Datadictionary)是一种用户可以访问的记录数据库和应用程序元数据的目录。
数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合.下面列出了系统的主要数据字典。
图书:
图书表结构
别名:
描述:
记录所有图书的基本情况
定义:
图书表信息=图书编号+图书名称+图书ISBN号+图书作者+图书+图书类型+图书价格+库存量+图书副本数量+图书总数
位置:
Librarydat.mdf数据库
名称:
管理员
别名:
描述:
记录管理员信息
定义:
管理员信息=管理员ID+管理员name+密码+加入时间
位置:
名称:
借阅请求
别名
描述:
学生借阅请求信息
定义:
借阅登记表=借阅ID+学生学号+图书编号
位置:
借书登记:
借书登记表
别名
描述:
记录所有图书的借阅情况
定义:
借阅登记表=借书编号+学生学号+图书编号+借书时间+归还时间+是否归还
位置:
Librarydat.mdf数据库
学生信息:
学生信息表结构
别名
描述:
记录所有学生信息情况
定义:
学生信息表=学生学号+学生+性别++身份号
位置:
Librarydat.mdf数据库
名称:
归还图书
别名
描述:
归还图书的相关信息
定义:
归还图书=借阅ID+学生学号+图书编号+归还日期
位置:
归还登记:
归还登记表结构
别名
描述:
记录所有已归还图书的借阅情况
定义:
归还信息表=编号+图书名称+归还时间+作者+
位置:
Librarydat.mdf数据库
名称:
提示惩罚信息
别名
描述:
未归还图书的学生需要提示的信息
定义:
提示惩罚信息表=借阅ID+学生学号+图书编号+应归还日期+处罚提示
位置:
名称:
管理条例1
别名
描述:
对正常归还的处理方法
定义:
管理条例1=借阅ID+未过规定归还时间
位置:
名称:
管理条例2
别名
描述:
对丢失或超期归还图书的处理方法
定义:
管理条例2=借阅ID+过规定归还时间+相关处罚方法
位置:
名称:
借阅结果
别名:
描述:
是否借阅成功的返回结果
定义:
借阅结果=借阅ID+图书编号+学生学号+是否借出+提示成功借阅
位置:
名称:
归还结果
别名:
描述:
归还图书操作完成后成功的返回结果
定义:
归还结果=借阅ID+图书编号+学生学号+是否已归还+是否提示惩罚
位置:
7.数据加工处理的描述
(7.1)处理逻辑的描述
处理逻辑名称:
图书编目系统
简述:
图书采购入库,经过编目等处理后,将其目录信息存入数据库,提供给读者使用。
目录信息包括书名、索书号、作者、、容简介、关键词、条码、字数、页数、出版日期等。
输入的数据流:
图书编目信息
处理逻辑:
编目数据录入,要求录入数据正确
输出的数据流:
图书编目信息
处理频率:
30本/日
处理逻辑名称:
编目管理
简述:
图书采购入库,经过编目等处理后,将其目录信息存入数据库,提供给读者使用。
目录信息包括书名、索书号、作者、、容简介、关键词、条码、字数、页数、出版日期等。
输入的数据流:
图书编目信息
处理逻辑:
编目数据录入,要求录入数据正确
输出的数据流:
图书编目信息
处理频率:
30本/日
处理逻辑名称:
图书借阅系统
简述:
读者查找到所需图书后应当到图书馆办理借阅手续。
图书借阅系统处理图书借阅、还书、续借等手续。
输入的数据流:
图书借阅单
处理逻辑:
图书借阅单输入,检查读者身份,检查图书在库情况,然后填写图书借阅库并修改图书表中的在库数量。
输出的数据流:
图书编目信息
处理频率:
100本/日
处理逻辑名称:
检查读者身份
简述:
检查读者身份,已注册的读者可以借书。
输入的数据流:
图书借阅单
处理逻辑:
查询读者表,已注册的读者可以借书。
输出的数据流:
图书借阅单合格借书者
处理频率:
100本/日
处理逻辑名称:
检查图书是否在库
简述:
检查所借图书是否有足够的库存。
输入的数据流:
图书借阅单
处理逻辑:
访问图书表,检查所借图书是否有足够的库存。
输出的数据流:
图书借阅单可以借阅
处理频率:
100本/日
处理逻辑名称:
填写借阅表,修改图书表。
简述:
填写借阅表,修改图书表。
输入的数据流:
图书借阅单
处理逻辑:
修改图书表中的所借图书的在库数量,在借阅表中填写借书情况。
输出的数据流:
图书借阅单可以借阅
处理频率:
100本/日
处理逻辑名称:
图书归还处理
简述:
图书归还处理
输入的数据流:
还书记录
处理逻辑:
还书时修改图书表中所借图书的在库量,并在借阅表中填写还书情况。
输出的数据流:
填写归还记录+归还修改在库书量
处理频率:
100本/日
处理逻辑名称:
图书征订系统
简述:
图书征订系统。
读者可从图书馆管理系统信息系统进入图书征订系统,进行图书的征订。
输入的数据流:
图书征订信息
处理逻辑:
读者填写图书征订信息,系统将检查读者的身份,合格的将写入借阅表,并修改图书库中该书的库存量。
输出的数据流:
填写图书征订信息
处理频率:
50本/日
处理逻辑名称:
征订信息输入
简述:
征订信息输入
输入的数据流:
图书征订信息
处理逻辑:
读者填写图书征订信息
输出的数据流:
读者身份检查
处理频率:
50本/日
处理逻辑名称:
读者身份检查
简述:
读者身份检查
输入的数据流:
图书征订信息
处理逻辑:
检查读者身份。
输出的数据流:
征订信息
处理频率:
50本/日
处理逻辑名称:
征订处理
简述:
征订处理
输入的数据流:
图书征订信息
处理逻辑:
合格的征订将写入借阅表,并修改图书表中该书的在库数量。
输出的数据流:
填写图书征订信息
处理频率:
50本/日
处理逻辑名称:
维护系统
简述:
系统维护对读者的管理。
只有系统中注册的用户才能在本馆中借阅图书。
输入的数据流:
读者登陆信息
处理逻辑:
读者登陆信息录入
输出的数据流:
读者信息
处理频率:
100人次/日
处理逻辑名称:
读者登陆检查
简述:
审查用户信息,合格的用户信息输入读者库。
输入的数据流:
读者登录信息
处理逻辑:
读者登录信息录入
输出的数据流:
读者信息
处理频率:
100人次/日
(7.2)数据存储的描述
数据存储名称:
读者表
简述:
读者信息,读者在本馆注册后成为注册读者。
数据存储组成:
用户名+密码
关键字:
用户名
数据存储名称:
图书库
简述:
存储本图书馆图书信息
数据存储组成:
书名+索书号+作者++容简介+关键词+条码+字数+页数+出版日期
关键字:
书名
数据存储名称:
借阅表
简述:
存储本馆图书借书信息
数据存储组成:
借书日期+索书号+读者账号+库室+还书日期+借书量+还书量
关键字:
索书号
8.功能结构图
功能结构图是一个完全以业务功能为主体的树状表,其目的在于描述组织部各部分的业务和功能
9.代码设计
在这里,我以图书借阅模块为例:
图书借阅代码设计
“借书”按纽
*检查是否输入了图书条码
ifempty(thisform.txtcode.text)
messagebox("请输入图书条码",16,"图书借阅管理")
thisform.txtcode.setfocus
return
endif
*检查在选择的库室中是否存在该条码图书
cCode=alltrim(thisform.txtcode.text)
cRoom=thisform.cmbroom.value
selectstorebibli
locateforalltrim(条码)==cCodeandalltrim(库室名)==croom
ifnotfound()
messagebox("“"+cRoom+"”"+"无<"+cCode+">条码图书",16,"图书借阅管理")
thisform.txtcode.setfocus
return
endif
*检查读者是否已经借阅了该条码图书
selecttempCursor
locateforalltrim(条码)==cCode
iffound()
messagebox("读者已经借阅该条码图书",16,"图书借阅管理")
thisform.txtcode.setfocus
return
endif
*保存读者借书记录
ndate=val(thisform.txtlenddate.text)
ifndate=0
insertintolenddata(条码,证号,库室,借期);
values(cCode,alltrim(thisform.txtnum.text),cRoom,date())
else
nyear=year(date())
nmonth=month(date())
nday=day(date())
nmonth=nmonth+ndate
ifnmonth>12
nyear=nyear+1
nmonth=nmonth-12
endif
ddate=date(nyear,nmonth,nday)
insertintolenddata(条码,证号,库室,借期,还期);
values(cCode,alltrim(thisform.txtnum.text),cRoom,date(),ddate)
endif
*刷新读者借书清单,执行查询获得读者借阅图书数据
cnum=alltrim(thisform.txtnum.text)
selectlenddata.条码,书名,索书号,库室,借期,还期fromlenddata,storebibli;
wherelenddata.条码==storebibli.条码andalltrim(lenddata.证号)==cnumand;
lenddata.库室==storebibli.库室名;
intocursortempCursor
*显示读者个人借书清单
thisform.txtLended.value=reccount()
thisform.grid1.recordsourcetype=1
thisform.grid1.recordsource='tempCursor'
*根据读者借阅图书册数是否达到借书数量限制禁用或启用借书按钮
ifthisform.txtsum.value=thisform.txtlended.value
thisform.cmdlend.enabled=.F.
else
thisform.cmdlend.enabled=.T.
endif
*修改馆藏图书记录的可借数
updatestorebibliset可借数=可借数-1;
wherealltrim(条码)==cCodeandalltrim(库室名)=cRoom
“续借”按纽
*检查是否输入了图书条码
ifempty(thisform.txtcode.text)
messagebox("请输入图书条码",16,"图书借阅管理")
thisform.txtcode.setfocus
return
endif
*检查读者是否已经借阅了该条码图书
cCode=alltrim(thisform.txtcode.text)
selecttempCursor
locateforalltrim(条码)==cCode
ifnotfound()
messagebox("读者没有借阅<"+cCode+">条码图书",16,"图书借阅管理")
thisform.txtcode.setfocus
return
endif
*修改该条码对应的借书记录
ndate=val(thisform.txtlenddate.text)
ifndate=0
updatelenddataset借期=date();
wherealltrim(条码)==cCode
else
nyear=year(date())
nmonth=month(date())
nday=day(date())
nmonth=nmonth+ndate
ifnmonth>12
nyear=nyear+1
nmonth=nmonth-12
endif
ddate=date(nyear,nmonth,nday)
updatelenddataset借期=date(),还期=ddate;
wherealltrim(条码)==cCode
endif
*刷新读者借书清单,执行查询获得读者借阅图书数据
cnum=alltrim(thisform.txtnum.text)
selectlenddata.条码,书名,索书号,库室,借期,还期fromlenddata,storebibli;
wherelenddata.条码==storebibli.条码andalltrim(lenddata.证号)==cnumand;
lenddata.库室==storebibli.库室名;
intocursortempCursor
*显示读者个人借书清单
thisform.txtLended.value=reccount()
thisform.grid1.recordsourcetype=1
thisform.grid1.recordsource='tempCursor'
*根据读者借阅图书册数是否达到借书数量限制禁用或启用借书按钮
ifthisform.txtsum.value=thisform.txtlended.value
thisform.cmdlend.enabled=.F.
else
thisform.cmdlend.enabled=.T.
endif
“还书”按纽
*检查是否输入了图书条码
ifempty(thisform.txtcode.text)
messagebox("请输入图书条码",16,"图书借阅管理")
thisform.txtcode.setfocus
return
endif
*检查读者是否借阅了该条码图书
cnum=alltrim(thisform.txtnum.text)
cCode=alltrim(thisform.txtcode.text)
selecttempCursor
locateforalltrim(条码)==cCode
ifnotfound()
messagebox("读者没有借阅<"+cCode+">条码图书",16,"图书借阅管理")
thisform.txtcode.setfocus
return
endif
*删除读者该条码图书借书记录
selectlenddata
deleteallforalltrim(条码)==cCodeandalltrim(证号)==cnum
pack
*刷新读者借书清单,执行查询获得读者借阅图书数据
selectlenddata.条码,书名,索书号,库室,借期,还期fromlenddata,storebibli;
wherelenddata.条码==storebibli.条码andalltrim(lenddata.证号)==cnumand;
lenddata.库室==storebibli.库室名;
intocursortempCursor
*显示读者个人借书清单
thisform.txtLended.value=reccount()
thisform.grid1.recordsourcetype=1
thisform.grid1.recordsource='tempCursor'
thisform.cmdlend.enabled=.T.
*修改馆藏图书记录的可借数
cRoom=thisform.cmbroom.value
updatestorebibliset可借数=可借数+1;
wherealltrim(条码)==cCodeandalltrim(库室名)=cRoom
“清除”按纽
thisform.txtnum.value=""
thisform.txtname.value=""
thisform.txtdept.value=""
thisform.txtoutdate.value=""
thisform.txtcode.value=""
thisform.txtlenddate.value=""
thisform.txttype.value=""
thisform.txtsum.value=""
thisform.txtlended.value=""
thisform.grid1.recordsource=""
“关闭”按纽
ifmessagebox("是否退出图书借阅管理?
",36,"图书借阅管理")=6
thisform.release&&关闭图书借阅管理表单
endif
10.输出设计
以图书征订管理模块为例:
读者可以在界面上选择“预览”按纽。
得到下图:
读者可以通过预览的方式查看自己的信息。
如果确认无误,则选择“打印”按纽,进行下一步的操作。
这样读者可以把自己想要的读书信息和征订信息通过系统输出,打印成报表。
11.数据库设计
依据数据库的原理,并结合以上E-R图,经过转化,即可进行数据库的物理设计。
基于以上数据库的逻辑设计,考虑程序设计的简易性,本系统决定采用一个数据库,在其下创建5个数据表,其结构分别如下:
表2.8-1图书信息表的结构
序号
字段名称
字段说明
类型
位数
属性
是否为主键
1
cBooksID
图书编号
文本
7
必须非空
是
2
cBooksName
图书名称
文本
20
必须非空
3
cBooksISBN
图书ISBN号
文本
15
可为空
4
cBooksAuthor
图书作者
文本
10
可为空
5
cBooksPublisher
图书
文本
20
可为空
6
cBooksType
图书类型
文本
16
可为空
7
smBooksPrice
图书价格
货币
可为空
8
iBooksStoreQuan
图书库存量
整数
可为空
9
iBooksLeftQuant
图书副本数量
整数
可为空
10
iBooksTotalQuan
图书总数
整数
可为空
2.图书借阅登记表(tBorrow),其字段列表如表2.8-2所示。
表2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 管理系统信息系统 管理 系统 信息系统 上机 实验