文档库 最新最全的文档下载
当前位置:文档库 › 数据流图与数据字典练习与答案

数据流图与数据字典练习与答案

数据流图与数据字典练习与答案
数据流图与数据字典练习与答案

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输出合法选课记录;

取该生下一选修课程编码

END DO;

输出该生学号;

END

加工1.2查已修课程成绩

BEGIN

根据学号在学生成绩库中查找该生的重修课程;

输出重修课程编码;

END

注释:学生成绩记录中成绩不及格,备注=‘必修’则该课程重修

加工1.3计算课程冲突率

BEGIN

接收合法选课记录或者重修课程;

REPEAT

CASE 课程类别OF

重修课程://重修课程必须优先安排//

BEGIN 查开课清单;填写该生个人课表END;

合法选课记录:

BEGIN

根据课程号在开课清单中查当前所选课程时间表;

检查当前所选课程与该生已选课程是否冲突;

IF 不产生冲突

THEN 填写该生个人课表;

ELSE BEGIN

计算冲突率;

IF 冲突率<3O%

THEN 填写学生个人课表//当前课程可选

ELSE BEGIN

根据课程类别优先序删除冲突课程;//优先序:重修,必修,

// 限选,任选

重新计算课程冲突率;

END

END

END

END

接收合法选课记录或者重修课程;

UNTIL合法选课记录或者重修课程不存在;

输出已选课程;

END

加工1.4计算课程注册费

BEGIN

读取选课单;

合计费用=0;

WHILE课程编码不空DO

在开课清单中查找该课程注册费;

合计费用=合计费用十课程注册费;

取该生下一选修课程编码

END;

输出费用;

END

加工2课程注册

BEGIN

确认学生交费注册;

根据学生已注册课程在开课清单中查找课程;

写学生课程注册表;

END

加工3.1打印学生课表

BEGIN

课程注册表逐一读取学生学号;

WHILE 学号DO

在开课清单中查找该课程注册费;

合计费用=合计费用十课程注册费;

取该生下一选修课程编码

END DO

输出费用;

END

加工3.2 打印学生课表

BEGIN

将课程注册表中记录按照课程编码排序;

根据课程编码打印课程成绩单;

END

5.某公司承担空中和地面运输业务。计算货物托运费的比率规定如下:

空运,如果货物重量小于等于2kg.则一律收费6元;如果货物重量大于2 kg而

又小于等于20 kg,则收费3元/kg;如果货物重量大于20 kg,则收费4元/kg。

地运,若为慢件每kg收费为l元,若为快件,当重量小于等于20 kg时,收费为2

元/kg,当货物重量大于20 kg时,则收费为3元/kg。

请画出对应于计算托运费比率的判定树和判定表。

解:

判定表:

方式空运空运空运地运地运地运

货物重量≤20Kg>2Kg、≤20Kg>20Kg慢件重量≤20Kg>20Kg 收费6元3元/Kg4元/Kg1元/Kg2元/Kg3元/Kg

相关文档