您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 数据流图与数据字典练习与答案
1.需求分析阶段的主要任务是什么?怎样理解分析阶段的任务是决定“做什么”,而不是“怎样做”?解:需求分析阶段的主要任务是用户和软件人员双方一起来充分地理解用户的要求,并把双方共同的理解明确地表达成一份书面文档——需求说明书。用户要求通常包括功能要求、性能要求、可靠性要求、安全保密要求以及开发费用、开发周期、可使用的资源等方面的限制,其中功能要求是最基本的,它又包括数据要求和加工要求两方面。所以,软件阶段的任务是解决软件系统做什么,而不是怎么做。2.什么是结构化分析方法?要经过哪些步骤来实现?解:所谓结构化分析方法是在分析一个软件系统时使用“自顶向下逐层分解”的方式表达用户需求。对系统作了合理的逐层分解后,就可分别理解系统的每一个细部,这样,就可以有效地控制系统的复杂性。结构化分析方法的步骤:理解当前的现实环境,获得当前人工系统的具体模型。从当前系统的具体模型抽象出当前系统的逻辑模型。分析目标系统与当前系统逻辑上的差别,建立目标系统的逻辑模型。为目标系统的逻辑模型作补充。3.为什么DFD要分层?画分层DFD要遵循哪些原则?解:对一个大型的系统,如用一张数据流图画出所有的数据流和加工,则图纸将极其庞大复杂,因而难以理解。为了控制复杂性,SA方法采用“分层”的技术。画分层DFD要遵循哪些原则:分解应自然,概念上合理、清晰。只要不影响数据流图的“易理解性”,可以适当地多分解成几部分,这样分层图的层数就可少些。一般说来,在上层可以分解得快些,而在下层则应分解得慢些,因为上层是一些综合性的描述,“易理解性”相对地说不太重要4.选择一个系统(例如人事档案管理系统、图书管理系统、医院监护系统、足球俱乐部管理系统、财务管理系统、学生选课系统、飞机订票系统等),用SA方法对它进行分析,画出系统的分层DFD图,并建立相应的数据词典。解:下面是一个学生选课系统的DFD。数据词典(l)数据流条目数据流选课单选课单=学生学号十{课程编码}1数据流学生课程表学生课程表=学生学号十{课程时间表}l数据流课程成绩单课程成绩单=课程编码十课程名十[任课教师|指导教师]十{学号十姓名十成绩(十备注)}数据流费用费用=学生学号十[课程编码十课程费用]l十合计金额数据流学生学号别名学号学生学号:基本数据项,由8位数字组成。其中l~5位为班级号,6~8位为班内序号,从OOl开始。数据流合法选课记录别名选课记录,重修课程,已选课程合法选课记录=学号+课程时间表(2)文件条目文件开课清单课程记录=课程编码十课程名十注册金额十[任课教师|指导教师](十职称)十起始周+终止周+{上课时间}组织:以课程编码为记录关键字升序排列文件课程注册表注册记录=学生学号十课程编码十课程名十[任课教师|指导教师](十职称)十起始周十终止周十上课时间组织:以课程编码为记录关键字升序排列文件学生成绩库学生成绩=学生学号十课程编码十成绩十备注组织:以学号为记录关键字升序排列注释:备注域用于标识课程类别(必修/限选/任选)(3)数据项条目课程编码:xxxxxxx(7位数字)第l位:系编号第2~3位:教研室编号第4~6位:课程序号第7位:课堂号课程时间表=课程编码十起始周十终止周十{星期十节十教室号}起始周、终止周1~22星期1~6节:1~12教室号:xxxx课程名=长度≤30的字符串任课教师、指导教师姓名=长度≤8的字符串成绩=nnn(3位整数)(4)加工说明加工l.l合法性检查BEGIN读取选课单;WHILE课程编码不空DO在开课清单中查找该课程;IF找到THEN输出合法选课记录;取该生下一选修课程编码ENDDO;输出该生学号;END加工1.2查已修课程成绩BEGIN根据学号在学生成绩库中查找该生的重修课程;输出重修课程编码;END注释:学生成绩记录中成绩不及格,备注=‘必修’则该课程重修加工1.3计算课程冲突率BEGIN接收合法选课记录或者重修课程;REPEATCASE课程类别OF重修课程://重修课程必须优先安排//BEGIN查开课清单;填写该生个人课表END;合法选课记录:BEGIN根据课程号在开课清单中查当前所选课程时间表;检查当前所选课程与该生已选课程是否冲突;IF不产生冲突THEN填写该生个人课表;ELSEBEGIN计算冲突率;IF冲突率<3O%THEN填写学生个人课表//当前课程可选ELSEBEGIN根据课程类别优先序删除冲突课程;//优先序:重修,必修,//限选,任选重新计算课程冲突率;ENDENDENDEND接收合法选课记录或者重修课程;UNTIL合法选课记录或者重修课程不存在;输出已选课程;END加工1.4计算课程注册费BEGIN读取选课单;合计费用=0;WHILE课程编码不空DO在开课清单中查找该课程注册费;合计费用=合计费用十课程注册费;取该生下一选修课程编码END;输出费用;END加工2课程注册BEGIN确认学生交费注册;根据学生已注册课程在开课清单中查找课程;写学生课程注册表;END加工3.1打印学生课表BEGIN课程注册表逐一读取学生学号;WHILE学号DO在开课清单中查找该课程注册费;合计费用=合计费用十课程注册费;取该生下一选修课程编码ENDDO输出费用;END加工3.2打印学生课表BEGIN将课程注册表中记录按照课程编码排序;根据课程编码打印课程成绩单;END5.某公司承担空中和地面运输业务。计算货物托运费的比率规定如下:空运,如果货物重量小于等于2kg.则一律收费6元;如果货物重量大于2kg而又小于等于20kg,则收费3元/kg;如果货物重量大于20kg,则收费4元/kg。地运,若为慢件每kg收费为l元,若为快件,当重量小于等于20kg时,收费为2元/kg,当货物重量大于20kg时,则收费为3元/kg。请画出对应于计算托运费比率的判定树和判定表。解:判定表:方式空运空运空运地运地运地运货物重量≤20Kg2Kg、≤20Kg20Kg慢件重量≤20Kg20Kg收费6元3元/Kg4元/Kg1元/Kg2元/Kg3元/Kg
本文标题:数据流图与数据字典练习与答案
链接地址:https://www.777doc.com/doc-4242215 .html