武汉科技学院《管理信息系统》实验报告班级: 级 专业 班 姓名: 学号: 序号: 指导教师:侯德林 实验时间: 年 月 日实验三:MIS系统设计与实施一、实验目的1、能够正确运用系统设计的过程与方法, 复习、巩固系统设计知识,提高系统设计实践能力2、熟悉功能结构图设计、代码设计、数据存储设计、输入输出设计等环节,并编制相应的文档及程序编写3、进一步树立正确的系统设计、实施思想,培养分析问题、解决问题的能力,提高查询资料和撰写书面文件的能力二、实验内容1、根据前述实验系统分析内容,进行系统设计包括功能结构图设计、代码设计、数据存储设计、信息系统流程图设计、输入输出设计等2、根据面向对象方法,绘制系统的详细设计类模型图3、在计算机上实现上述内容,完成一个实用、可运行的管理信息系统三、操作步骤1.从软件工程的角度讲,软件开发一般分为六个阶段:第一步,需求分析阶段这里主要工作是搞好用户的需求分析,然后再进行系统分析在这个阶段,开发方与用户方的深入交流是项目获得成功的关键,项目管理的重要目标便是建立一个便于开发方与用户方之间进行交流的环境。
进行需求分析,主要是找出开发本软件的目的,所需的各种功能等,并形成一个系统的分析文档 第二步,概要设计阶段这个阶段主要是将系统需求分析的结果模块化,并把系统的数据流向等关系搞明白最好画出一个程序的流程图,把整个项目的框架设计出来比如对工资管理系统来说,就要考虑需要哪些模块,每个模块大体需要完成哪些功能,以及它们之间有什么关系等等第三步,详细设计阶段这个阶段是在系统的模块化的基础上,把系统的功能具体化,逐步完善系统的功能需求这个阶段要为具体的设计打好基础第四步,编码阶段这个阶段是系统具体设计的实施阶段,就是将所有的功能通过编码具体化为功能实现的过程同时还包括,设计封面、适合用户使用、实现容错等第五步,测试阶段当完成编码之后,要对系统进行反复的调试,保证正确实现各种功能,保证系统整体的正确无误,如输入合法数据时是否反映正确;对于非法的数据是否具有容错能力等只有顺利通过测试阶段的系统,才能够投入实际使用一般的工资管理系统的主要功能包括:记录的录入、浏览、修改、统计、查找和打印等,下面将该系统的主要功能模块列出1.表单功能模块工资主控模块工资初始化及备份模块 工资录入模块 工资浏览模块 工资修改模块 工资统计模块 工资查找模块 工资打印模块系统封面模块系统帮助模块系统时间模块2.菜单与报表文件系统功能菜单工资表报表 工资条报表 3.数据库文件数据库名称 数据表名称功能结构图设计数据存储设计文件设计就是根据文件的使用要求、处理方式、存储量、数据的活动性以及硬件设备的条件等,合理地确定文件类别,选择文件介质,决定文件的组织方式和存取方法。
一、文件的分类按文件的组织方式分类按文件的组织方式可把文件分为顺序文件、索引文件和直接存取文件二、文件设计1.数据组织的层次为了使零散的数据变为有意义的信息,需要将数据有序地组织起来,才能对数据进行有效地处理数据的逻辑组织一般有四个基本逻辑元素组成:数据项、记录、文件和数据库,并组成了以数据库为最高层次的层次结构(1)数据项(2)记录(3)文件相关(同类)记录的集合称为文件(4)数据库2.文件的组织形式和存取方式:顺序文件组织三、数据库设计数据库设计是在选定的数据库管理系统基础上建立数据库的过程数据库设计除用户要求分析外,还包括概念结构设计,逻辑结构设计和物理结构设计等三个阶段由于数据库系统已形成一门独立的学科,所以,当我们把数据库设计原理应用到MIS 开发中时数据库设计的几个步骤就与系统开发的各个阶段相对应.且融为一体信息系统流程图设计输入输出设计工资管理过程中,我们要快捷方便地进行数据输入输出处理,分析数据输入输出中存在的问题,提出工作中应注意的问题,并就数据输出提出了改进措施. 我们要分析其它工资管理系统中数据输入输出中存在的不足,并提出改进方法及其程序代码,从而实现完整准确快捷地输入输出数据.2.模型图3.在powerbuilder9.0环境下做个图书库存管理系统一、首先创建数据库与基本表创建登录界面与主窗口对象并进行窗口布局。
演示如下:退出按钮的代码:close(w_mainwindow)disconnect;其它按钮分别跳转到不同窗口二、创建窗口与布局,演示如下:以下为图书馆入库管理系统的一些代码(1)图书入库管理窗口的open时间代码如下:Connect using SQLCA;dw_1.SetTransObject(SQLCA)dw_1.Retrieve(1)dw_2.SetTransObject(SQLCA)dw_2.Retrieve(1)(2)首记录string firstrecdw_1.Scrolltorow(0)firstrec="图书编号="+"'"+dw_1.object.data[1,1]+"'"dw_2.Setfilter(firstrec)filter(dw_2)dw_2.Retrieve(1)(3)上一条记录string priorrecinteger numnum=dw_1.Getrow()if num=1 then Messagebox("注意!","目前已经是第一条记录了!")else dw_1.Scrollpriorrow() num=dw_1.Getrow() priorrec="图书编号="+"'"+dw_1.object.data[num,1]+"'" dw_2.setfilter(priorrec) filter(dw_2) dw_2.Retrieve(1)end if(4)下一条记录string nextrecinteger numnum=dw_1.Getrow()if num=dw_1.Rowcount() then Messagebox("注意!","目前已经是最后一条记录了!")else dw_1.Scrollnextrow() num=dw_1.Scrollnextrow() nextrec="图书编号="+"'"+dw_1.object.data[num,1]+"'" dw_2.Setfilter(nextrec) filter(dw_2) dw_2.Retrieve(1)end if(5)尾记录string lastrecinteger numdw_1.Scrolltorow(dw_1.rowcount())num=dw_1.Getrow()lastrec="图书编号="+"'"+dw_1.object.data[num,1]+"'"dw_2.Setfilter(lastrec)filter(dw_2)dw_2.Retrieve(1)(6)增加记录long numnum=dw_1.Getrow()dw_2.Insertrow(dw_2.Rowcount()+1)dw_2.object.data[dw_2.rowcount(),1]=dw_1.object.data[num,1]dw_2.object.data[dw_2.rowcount(),2]=dw_1.object.data[num,2]dw_2.Scrolltorow(dw_2.rowcount())(7)删除记录long numinteger yessyess=Messagebox("注意!","删除的记录不可回复!确认要删除吗?", question!,YesNo!)if yess=1 then num=dw_2.Getrow() deleterow(dw_2,num)else Messagebox("说明","记录没有被删除,仍然可以使用!")end if(8)确认if update(dw_2,true,false)=1 then dw_2.ResetUpdate() commit; dw_2.Retrieve(0)else Rollback; Messagebox("注意!","数据保存失败!")end if(9)执行查询string s1,s2integer nums1=ddlb_1.text+"="+"'"+sle_1.text+"'"dw_1.Setfilter(S1)filter(dw_1)dw_1.retrieve()num=dw_1.getrow()s2="("+"图书编号="+"'"+dw_1.object.data[num,1]+"'"+")"+"or"+"("+"书名="+"'"+dw_1.object.data[num,2]+"'"+")"dw_2.setfilter(s2)filter(dw_2)dw_2.retrieve(0)s2="图书编号<>''"dw_1.Setfilter(s2)filter(dw_1)三、数据初始化窗口的布局如下:四、实验收获和建议 在这次试验中,使我印象最深刻的就是做这个管理系统。
花了很长时间,通过去图书馆、上网查资料、请教别人等多种途径,才把这个图书库存管理系统做出来,但是功能并不是很完全,一方面时间有限,另一方面能力也有限但是做出这么一个简单的管理系统我感觉可以了,至少在现阶段算可以但是以后的路还很长,不知道会面临什么样的困难但我一定会脚踏实地的走下去。