当前位置:文档之家› 第七章 文件与数据流 (2)

第七章 文件与数据流 (2)

第七章 文件与数据流 (2)
第七章 文件与数据流 (2)

数据流图试题(卷)与答案解析

【问题1】(1)费用单 (2)待租赁房屋列表 (3)看房请求 (4)变更房屋状态请求 【问题2】(5)房主信息文件 (6)租赁者信息文件 (7)房屋信息文件 (8)看房记录文件 【问题3】(1)起点:房主终点:变更房屋状态数据流名称:变更房屋状态请求 (2)起点:租赁者终点:登记租赁者信息数据流名称:租赁者信息 (3)起点:租赁者终点:安排租赁者看房数据流名称:看房请求 试题一(共15分) 阅读以下说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。 【说明】 某高校欲开发一个成绩管理系统,记录并管理所有选修课程的学生的平时成绩和考试成绩,其主要功能描述如下: 1. 每门课程都有3到6个单元构成,每个单元结束后会进行一次测试,其成绩作为这门课程的平时成绩。课程结束后进行期末考试,其成绩作为这门课程的考试成绩。 2. 学生的平时成绩和考试成绩均由每门课程的主讲教师上传给成绩管理系统。

3. 在记录学生成绩之前,系统需要验证这些成绩是否有效。首先,根据学生信息文件来确认该学生是否选修这门课程,若没有,那么这些成绩是无效的;如果他的确选修了这门课程,再根据课程信息文件和课程单元信息文件来验证平时成绩是否与这门课程所包含的单元相对应,如果是,那么这些成绩是有效的,否则无效。 4. 对于有效成绩,系统将其保存在课程成绩文件中。对于无效成绩,系统会单独将其保存在无效成绩文件中,并将详细情况提交给教务处。在教务处没有给出具体处理意见之前,系统不会处理这些成绩。 5. 若一门课程的所有有效的平时成绩和考试成绩都已经被系统记录,系统会发送课程完成通知给教务处,告知该门课程的成绩已经齐全。教务处根据需要,请求系统生成相应的成绩列表,用来提交考试委员会审查。 6. 在生成成绩列表之前,系统会生成一份成绩报告给主讲教师,以便核对是否存在错误。主讲教师须将核对之后的成绩报告返还系统。 7. 根据主讲教师核对后的成绩报告,系统生成相应的成绩列表,递交考试委员会进行审查。考试委员会在审查之后,上交一份成绩审查结果给系统。对于所有通过审查的成绩,系统将会生成最终的成绩单,并通知每个选课学生。 现采用结构化方法对这个系统进行分析与设计,得到如图1-1所示的顶层数据流图和图1-2所示的0层数据流图。 图1-1 顶层数据流图

数据流图例题解析

数据流图例题解析 例题:请根据以下描述画出系统的数据流图。该子系统共有三个加工:(1)首先是“建立订货合同台帐”:从订货合同、材料检验单和客户文件输入数据、输出形成合同台帐文件;(2)然后是“分类合并”:从合同台帐文件输入数据,排序合并后形成合同分类文件,最后“打印”加工单元从合同分类文件打印出合同分类表。 所谓数据流图(Data Flow Diagram,简称DFD)是一种分析系统数据流程的图形工具。它摆脱了系统的物理内容,精确地在逻辑上描述系统的功能、输入、输出和数据存储等,是系统逻辑模型的重要组成部分。一般由数据流、加工、文件和数据源或终点四项组成 那么如何绘制数据流图呢?以本题为例进行说明: 首先我们可根据例题中的描述在纸上画出第一个加工“建立订货合同台帐”,如图1所示: 图1 其次,分析这个加工的输出、输入数据流。根据题意可知,该加工的输出是合同台帐文件、而为完成该项输出,必须有三项输入,即订货合同、材料检验单、客户文件。据此可绘制出如图2所示的图形: 图2 此时应注意两点:第一要对加工进行编号。本例中,我们将加工“建立订货合同台帐”编号为P1;第二要判断输入、输出项是一般的数据流、还是文件存储。

如果是文件存储(比如客户文件、合同台帐文件)则需要用右边开口的方框表示,同时表示数据流的箭头上的文字可省略。 第三、将加工“分类合并”画在纸上,如图3所示 图3 第四、找出加工“分类合并”的输入和输出项,并用箭头在纸上标注出来。本例中,该加工的输入数据流是合同台帐文件,输出数据流是合同分类文件,由于“合同台帐文件”已被绘制在纸张上,因此只需用箭头将它与加工联接起来即可。如图4所示: 图4 第五、按上述方法,将加工“打印”绘制在图纸上。如图5所示

数据流图(DFD)专题讲解

软件设计师考试的下午题的第一道题,数据库系统工程师考试的下午题的第一道题都是数据流图题,而能够将这道题全部做对的考生是非常少的。根据历年的辅导和阅卷经验,发现很多考生不是因为这方面的解题能力不够,而是缺乏解这种题的方法与技巧。本文介绍一些解这种类型题的方法和技巧,希望起来抛砖引玉的效果。 一.解题当中考生表现出的特点 由于这是下午考试的第一道题,所以很多考生从考前的紧张氛围当中逐渐平静下来开始答题,头脑还比较清醒,阅读起来比较流畅,速度还可以,自我感觉不错。可偏偏这道题有很多人不能全取15分,纠其原因有以下一些特点: 1.拿卷就做,不全面了解试卷,做到心中有数。这样会导致在解题过程当中缺少一种整体概念,不能明确自己在哪些题上必需拿分(多花时间),哪些题上自己拿不了分(少花时间)。这样,在解题时目标就会明确很多。 2.速度快,读一遍题就开始动手做。 3.速度慢,用手指逐个字的去看,心想看一遍就能做出题来。 4.在阅读题目时,不打记,不前后联系起来思考。 5.边做边怀疑边修改,浪费时间。

6.缺少的数据流找不准,可去掉的文件找不出来。 7.由于缺少项目开发经验,对一些事务分析不知如何去思考。 8.盲目乐观,却忽略了答题格式,丢了不应该丢的分。 二.解题的方法与技巧 1.首先要懂得数据流图设计要略。 有时为了增加数据流图的清晰性,防止数据流的箭头线太长,减少交叉绘制数据流条数,一般在一张图上可以重复同名的数据源点、终点与数据存储文件。如某个外部实体既是数据源点又是数据汇点,可以在数据流图的不同的地方重复绘制。在绘制时应该注意以下要点: (1)自外向内,自顶向下,逐层细化,完善求精。 (2)保持父图与子图的平衡。 为了表达较为复杂问题的数据处理过程,用一个数据流图往往不够。一般按问题的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系。根据层次关系一般将数据流图分为顶层数据流图、中间数据流图和底层数据流图,除顶层图外,其余分层数据流图从0开始编号。对任何一层数据流图来说,称它的上层数据流图为父图,在它的下一层的数据流图为子图。

数据流图画法要求

数据流图(DFD)画法要求 一、数据流图(DFD) 1.数据流图的基本符号 数据流图由四种基本符号组成,见图5-4-1所示。 图5-4-1 数据流图的基本符号 例:图5-4-2是一个简单的数据流图,它表示数据X从源S流出,经P加工转换成Y,接着经P加工转换为Z,在加工过程中从F中读取数据。 图5-4-2数据流图举例 下面来详细讨论各基本符号的使用方法。 2.数据流

数据流由一组确定的数据组成。例如“发票”为一个数据流,它由品名、规格、单位、单价、数量等数据组成。数据流用带有名字的具有箭头的线段表示,名字称为数据流名,表示流经的数据,箭头表示流向。数据流可以从加工流向加工,也可以从加工流进、流出文件,还可以从源点流向加工或从加工流向终点。 对数据流的表示有以下约定: 对流进或流出文件的数据流不需标注名字,因为文件本身就足以说明数据流。而别的数据流则必须标出名字,名字应能反映数据流的含义。 数据流不允许同名。 两个数据流在结构上相同是允许的,但必须体现人们对数据流的不同理解。例如图5-4-3(a)中的合理领料单与领料单两个数据流,它们的结构相同,但前者增加了合理性这一信息。 两个加工之间可以有几股不同的数据流,这是由于它们的用途不同,或它们之间没有联系,或它们的流动时间不同,如图5-4-3(b)所示。 (a)(b)(c) 图5-4-3 简单数据流图举例 数据流图描述的是数据流而不是控制流。如图5-4-3 (c)中,“月末”只是为了激发加工“计算工资”,是一个控制流而不是数据流,所以应从图中删去。 3.加工处理 加工处理是对数据进行的操作,它把流入的数据流转换为流出的数据流。每个加工处理都应取一个名字表示它的含义,并规定一个编号用来标识该加工在层次分解中的位置。名字中必须包含一个动词,例如“计算”、“打

系统分析数据流图10例教学教材

数据流图10例 1.请根据以下描述画出某库存管理系统的数据流图。该系统的数据流程描述如下:(1)首先,根据计划部门转来的收货通知单,和已存在的物资编码文件,建立物资采购单流水账;(2)然后,根据技术部门的物资验收报告和物资采购单流水账,更新物资台账文件;(3)最后,对物资台账分类汇总,将结果存储于物资总账文件中。 答: 图.1 2.请根据以下描述画出系统的数据流图。该子系统共有三个加工,(1)首先,根据生产计划、库存台账文件编制采购计划,建立采购计划文件;(2)其次,根据订货合同、采购计划文件,建立合同台帐文件;(3)最后,根据合同分类文件打印合同分类表。 答:

3.请根据以下业务流程描述,画出某物资管理系统的数据流图。该系统的业务流程描述如下:(1)生产车间向物资部提出物资需用计划,物资部计划人员根据库存台帐,编制物资采购计划;(2)采购人员根据物资采购计划,以及供货商报价单,编制合同台帐;(3)采购的物资到货后,库存管理人员根据技术科提供的验收报告,以及合同台帐,进行物资入库处理,并更新库存台帐。 答: 4.请根据以下描述画出某设备管理系统的数据流图。该系统的数据流程描述如下: (1)首先,根据技术科的验收报告,建立设备台帐;(2)然后,根据技术科的设备检修记录,更新设备台帐;(3)最后,对设备台帐分类汇总,打印输出统计报告。 答: 图.3

5.请根据以下业务流程描述,画出某仓库管理系统的数据流图。该系统的业务流程描述如下:(1)仓库管理员依据物资到货通知单,建立物资台帐;(2)领料人员向仓库管理员提交物资领用申请,库管员查询库存台帐并打印领料单;(3)月末进行物资盘点,生成并打印“物资收支存报表”。 答: 图.5

文件流是以外存文件为输入输出对象的数据流

文件流是以外存文件为输入输出对象的数据流,字符串流不是以外存文件为输入输出的对象,而以内存中用户定义的字符数组(字符串)为输入输出的对象,即将数据输出到内存中的字符数组,或者从字符数组(字符串)将数据读入。字符串流也称为内存流。 字符串流也有相应的缓冲区,开始时流缓冲区是空的。如果向字符数组存入数据,随着向流插入数据,流缓冲区中的数据不断增加,待缓冲区满了(或遇换行符),一起存入字符数组。如果是从字符数组读数据,先将字符数组中的数据送到流缓冲区,然后从缓冲区中提取数据赋给有关变量。 在字符数组中可以存放字符,也可以存放整数、浮点数以及其他类型的数据。在向字符数组存入数据之前,要先将数据从二进制形式转换为ASCII代码,然后存放在缓冲区,再从缓冲区送到字符数组。从字符数组读数据时,先将字符数组中的数据送到缓冲区,在赋给变量前要先将ASCII代码转换为二进制形式。总之,流缓冲区中的数据格式与字符数组相同。这种情况与以标准设备(键盘和显示器)为对象的输入输出是类似的,键盘和显示器都是按字符形式输入输出的设备,内存中的数据在输出到显示器之前,先要转换为ASCII码形式,并送到输出缓冲区中。从键盘输入的数据以ASCII码形式输入到输入缓冲区,在赋给变量前转换为相应变量类型的二进制形式,然后赋给变量。对于字符串流的输入输出的情况,如不清楚,可以从对标准设备的输入输出中得到启发。 文件流类有ifstream,ofstream和fstream,而字符串流类有istrstream,ostrstream和strstream。文件流类和字符串流类都是ostream,istream和iostream类的派生类,因此对它们的操作方法是基本相同的。向内存中的一个字符数组写数据就如同向文件写数据一样,但有3点不同: 1. 输出时数据不是流向外存文件,而是流向内存中的一个存储空间。输入时从内存中的存储空间读取数据。在严格的意义上 说,这不属于输入输出,称为读写比较合适。因为输入输出一般指的是在计算机内存与计算机外的文件(外部设备也视为文件)之间的数据传送。但由于C++的字符串流采用了C++的流输入输出机制,因此往往也用输入和输出来表述读写操作。 2. 字符串流对象关联的不是文件,而是内存中的一个字符数组,因此不需要打开和关闭文件。 3. 每个文件的最后都有一个文件结束符,表示文件的结束。而字符串流所关联的字符数组中没有相应的结束标志,用户要指定 一个特殊字符作为结束符,在向字符数组写入全部数据后要写入此字符。 字符串流类没有open成员函数,因此要在建立字符串流对象时通过给定参数来确立字符串流与字符数组的关联。即通过调用构造函数来解决此问题。建立字符串流对象的方法与含义如下。 建立输出字符串流对象 ostrstream类提供的构造函数的原型为: ostrstream::ostrstream(char *buffer,int n,int mode=ios::out); buffer是指向字符数组首元素的指针,n为指定的流缓冲区的大小(一般选与字符数组的大小相同,也可以不同),第3个参数是可选的,默认为ios::out方式。可以用以下语句建立输出字符串流对象并与字符数组建立关联: ostrstream strout(ch1,20); 作用是建立输出字符串流对象strout,并使strout与字符数组ch1关联(通过字符串流将数据输出到字符数组ch1),流缓冲区大小为20。 建立输入字符串流对象 istrstream类提供了两个带参的构造函数,原型为: istrstream::istrstream(char *buffer); istrstream::istrstream(char *buffer,int n); buffer是指向字符数组首元素的指针,用它来初始化流对象(使流对象与字符数组建立关联)。可以用以下语句建立输入字符串流对象: istrstream strin(ch2); 作用是建立输入字符串流对象strin,将字符数组ch2中的全部数据作为输入字符串流的内容。 istrstream strin(ch2,20); 流缓冲区大小为20,因此只将字符数组ch2中的,20个字符作为输入字符串流的内容。 建立输入输出字符串流对象 strstream类提供的构造函数的原型为: strstream::strstream(char *buffer,int n,int mode); 可以用以下语句建立输入输出字符串流对象:

软件开发中的数据流分析

软件开发中的数据流分析 数据流分析中,信息流是系统的一个需要考虑的关键因素,通常用数据流图来进行描绘。数据流图是结构化系统分析的主要工具,它表示了系统内部信息的流向,并表示了系统的逻辑处理的功能。也就是说,数据流图的作用就是从数据传递和加工的角度,在需求分析阶段以图形的方式描述数据流从输入到输出的移动变换过程,为系统建立逻辑模型。 1 数据流图的标示 数据流图是从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的传输变换过程。DFD 有四种元素,其基本符号如图3-5所示。 1)外部实体 与系统进行交互,但系统不对其进行加工和处理的实体,用带标记的矩形表示。 2)数据的加工 加工是对数据进行变换而活处理的单元,它接收一定的数据输入,对齐进行处理,并产生输出。在数据流图中加工/处理用带标记的圆圈表示,在圆圈内写上加工名。一个处理框可以代表一系列程序、单个程序或者程序的一个模块。 3)数据流 在数据加工之间或数据存储和数据加工之间进行流动的数据,用带标记的箭头表示。数据流由一组固定的数据组成,用来指出数据在系统内传播的路径。如订票单由旅客姓名、身份证号、年龄、日期、单位和目的地等数据项组成。由于数据流是流动中的数据,在数据流图中数据流用带箭头的线表示,在其线旁标注数据流名(与数据存储之间的数据流不用命名)。在数据流图中应该描绘所有可能的数据流向,而不应该描绘出现某个数据流的条件。数据流图中的箭头表示的是数据流,而程序流程图中的箭头表示的是控制流。

4)数据存储 表示信息的静态存储,可以代表文件、文件的一部分、数据库的元素等,用带标记的双实线表示。 在数据流图中,如果有两个以上数据流指向一个加工,或是从一个加工中引出两个以上的数据流,这些数据流之间往往存在一定的关系。为表达这些关系,可以对数据流的加工表上不同的几号。一般来说,数据流与加工之间可用星号“*”表示相邻的一对数据流同时出现,用“+”表示相邻的两数据流可取其一或者两者,用“☉表示相邻的两数据流只能取其一,具体情况如图3-6所示。 为了能够有效表达数据处理过程的数据加工情况,需要采用层次结构的数据流图,即按照系统的层次结构进行逐步分解,并以分分层的数据流图来反映这种结构关系,这样就能比较清楚地表达和理解整个系统。

第8章 数据流与文件的输入输出

第8章 C++的I/O系统 8.1 知识要点 1.C++语言的“流”是指信息从外部输入设备(如键盘、磁盘等)向计算机内部(内存)输入和从内存向外部输出设备(显示器、磁盘)输出的过程。这种输入输出过程被形象地比喻为“流”。 2.C++系统中的所有I/O类均包含在iostream.h 、fstream.h、strstream.h这三个系统头文件中。 3.C++系统编译预处理时,要对# include命令进行“文件包含”处理,把该命令中指定的文件中的全部内容嵌入到该命令的位置,再编译整个C++文件,生成相应的目标代码程序。“文件包含”命令可以节省程序设计人员的重复劳动,也可以共享一些相同的程序段。 C++语言不仅提供了现成的I/O类库供用户使用,而且还为用户进行标准I/O操作定义了4个类对象,它们分别是cin、cout、cerr、clong 4.用格式控制符进行格式化输入、输出 5.所谓“文件”一般是指:存储在外部介质上的数据的集合。文件可用于存入程序代码,也可用于存放数据。 6.C++语言的文件名也是由文件的主名和扩展名两部分组成,它们之间用“.”号分隔。文件的主名是由用户命名的一个有效的C++标识符,为了同其他软件系统兼容,一般不超过8个有效字符。 7.C++语言把文件看作是一个字符(字节)序列,即由一个一个字符的数据顺序组成。根据数据的组织形式可分为ASCII文件和二进制文件两种。ASCII文件又称为文本(text)文件或字符文件,它的每一个字节放一个ASCII代码,代表一个字符。二进制文件又称为字节文件,是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。 8.对文件的操作 要在程序中使用文件,就要在程序的开始包含预处理命令: #include 对一般文件(主要是磁盘文件)的操作过程是:打开,读/写,关闭。 用户对标准I/O文件不需要进行打开/关闭,标准I/O文件函数分为以下三种: (1)字符I/O函数字符输入函数getchar ( )和字符输出函数putchar ( )。 (2)字符串I/O函数字符串输入函数gets ( )和字符串输出函数puts ( )。 (3)格式化I/O函数格式化输入函数scanf ( )和格式化输出函数printf ( )。 9.对字符文件的操作 (1)字符文件 在字符文件中,以换行符‘\n’结束的一串字符称为记录;终端屏幕上输出的一行字符就相当于一条记录;交互输入时,用户通过键盘输入,以回车键结束的一串字符也是一条记录。 (2)向字符文件写入数据向字符文件写入数据有2种方法。 1)调用从ostream流类中继承来的插入操作重载函数。使用方法同交互输出过程,但这时插入操作符的第一个操作数应是某个定义过的文件对象而不是cout。 (3)从字符文件读取数据到内存变量从打开的字符文件中输入数据到内存变量有3种方法。 10.对字节文件(二进制文件)的操作 (1)字节文件 与字符文件不同的是,字节文件中存放的是可供机器直接读取的二进制代码,在打开方式中带有ios::binary选项 (2)建立二进制文件和write()成员函数一个文件被用户定义的一个文件流对象按字节方式打开后,通过文件流对象调用在ostream流类中定义的write()成员函数就能够向文件流对象所对应的文件中写入数据。 (3)访问二进制文件和read()成员函数 从字节文件读数据,就是把具有一定字节数的内容原原本本地复制到内存中由指定字符

文件与数据流

第8章文件与数据流 一、文件和流的概念 文件是指在各种驱动器上(硬盘、可移动磁盘等)永久或临时存储的数据的有序集合,是进行数据读/写操作的基本对象。文件通常具有文件名、路径、访问权限等属性。 流从概念上来说类似于单独的磁盘文件,它也是进行读/写操作的对象。流提供了连续的字节存储空间,通过流可以向后备的存储器写入数据,也可以从后备存储器读取数据。 与磁盘文件直接相关的流称为“文件流”。除此之外,还有网络流、内存流等其他类型的流。 流用于传输数据时,有两个传输方向: 读:将数据从外部数据源传输到程序中,这是读取流。 写:将数据从程序传输到外部数据源,这是写入流。

二、相关知识 1.流的创建 FileStream fs = new FileStream( "test1.dat", FileMode.Create, FileAccess.Write); 一般格式: FileStream fs = new FileStream( string path, FileMode mode, FileAccess access); 参数含义: path:指定当前FileStream对象将封装的文件的相 对路径或绝对路径。可以只是文件名(在程 序所在目录下创建或打开文件) mode:指定如何打开或创建文件,它的值必须是 FileMode枚举中的值。 access:指定如何访问文件,它的值必须是 FileAccess枚举中的值。 2)将数据写入流 fs.write(byte[] array,int offset,int count); 参数含义: array:要写入文件流的字节数组 offset:array数组中开始写入文件流的字节的下 标。 count:将要写入流的最大字节数 3)从流中读取数据 fs.ReadByte()从流中读取一个字节(返回已转换 为int的字节),并将流内的位置向前推进一个。 如果已经到达流的末尾,则返回-1。 在读之前,用canRead属性确定当前对象是否支持

数据流图试题及答案

数据流图试题及答案https://www.doczj.com/doc/921272641.html,work Information Technology Company.2020YEAR

【问题1】(1)费用单 (2)待租赁房屋列表 (3)看房请求 (4)变更房屋状态请求 【问题2】(5)房主信息文件 (6)租赁者信息文件 (7)房屋信息文件 (8)看房记录文件 【问题3】(1)起点:房主终点:变更房屋状态数据流名称:变更房屋状态请求 (2)起点:租赁者终点:登记租赁者信息数据流名称:租赁者信息 (3)起点:租赁者终点:安排租赁者看房数据流名称:看房请求 试题一(共15分) 阅读以下说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。【说明】 某高校欲开发一个成绩管理系统,记录并管理所有选修课程的学生的平时成绩和考试成绩,其主要功能描述如下: 1. 每门课程都有3到6个单元构成,每个单元结束后会进行一次测试,其成绩作为这门课程的平时成绩。课程结束后进行期末考试,其成绩作为这门课 程的考试成绩。

2. 学生的平时成绩和考试成绩均由每门课程的主讲教师上传给成绩管理系统。 3. 在记录学生成绩之前,系统需要验证这些成绩是否有效。首先,根据学生信息文件来确认该学生是否选修这门课程,若没有,那么这些成绩是无效的;如果他的确选修了这门课程,再根据课程信息文件和课程单元信息文件来验证平时成绩是否与这门课程所包含的单元相对应,如果是,那么这些成绩是有效的,否则无效。 4. 对于有效成绩,系统将其保存在课程成绩文件中。对于无效成绩,系统会单独将其保存在无效成绩文件中,并将详细情况提交给教务处。在教务处没有给出具体处理意见之前,系统不会处理这些成绩。 5. 若一门课程的所有有效的平时成绩和考试成绩都已经被系统记录,系统会发送课程完成通知给教务处,告知该门课程的成绩已经齐全。教务处根据需要,请求系统生成相应的成绩列表,用来提交考试委员会审查。 6. 在生成成绩列表之前,系统会生成一份成绩报告给主讲教师,以便核对是否存在错误。主讲教师须将核对之后的成绩报告返还系统。 7. 根据主讲教师核对后的成绩报告,系统生成相应的成绩列表,递交考试委员会进行审查。考试委员会在审查之后,上交一份成绩审查结果给系统。对于所有通过审查的成绩,系统将会生成最终的成绩单,并通知每个选课学生。 现采用结构化方法对这个系统进行分析与设计,得到如图1-1所示的顶层数据流图和图1-2所示的0层数据流图。 图1-1 顶层数据流图

分析数据流图8

试题1 阅读下列说明与数据流图,回答问题1至问题4,将解答填入答题纸得对应栏内. [说明] 某基于微处理器得住宅安全系统,使用传感器(如红外探头、摄像头等)来检测各种意外情况,如非法进入、火警、水灾等. 房主可以在安装该系统时配置安全监控设备(如传感器、显示器、报警器等),也可以在系统运行时修改配置,通过录像机与电视机监控与系统连接得所有传感器,并通过控制面板上得键盘与系统进行信息交互。在安装过程中,系统给每个传感器赋予一个编号(即id)与类型,并设置房主密码以启动与关闭系统,设置传感器事件发生时应自动拨出电话号码。当系统检测到一个传感器事件时,就激活警报,拨出预置得电话号码,并报告关于位置与检测到事件得性质等信息。 [数据流图4—1] [问题1] 数据流图4-1(住宅安全系统顶层图)中得A与B分别就是什么?

[数据流图4—2] [问题2] 数据流图4-2(住宅安全系统第0层DFD图)中得数据存储“配置信息”会影响图中得哪些加工? [数据流图4-3] [问题3] 将数据流图4-3(加工4得细化图)中得数据流补充完整,并指明加工名称、数据流得方向(输入/输出)与数据流名称. 试题2

阅读以下说明与数据流图,回答问题1~问题3. 【说明】 学生住宿服务系统帮助学生在就学得缄市内找到所需得住房,系统对出租得房屋信息、房主信息、需要租房得学生信息以及学生与房主得会面信息进行管理与维护。 房主信息包括姓名、地址、电话号码以及系统分配得唯一身份标识(D)与密码;房屋信息包括房屋地址、类型(单间/套间)、适合住宿得人数、房租、房主得ID以及现在就是否可以出租(例如由于装修原因,需等到装修后才可出租或者房屋已被租出).每当房屋信息发生变化时,房主必须通知系统,系统将更新房屋文件以便学生能够获得准确得可租用房屋信息。房主向系统中加入可租用得房屋信息时,须交纳一定得费用,由系统自动给出费用信息。房主可随时更新房屋得各种属性。 学生可通过系统查询现有得可租用得房屋,但必须先在系统中注册。学生信息包括姓名、现住址、电话号码、出生日期、性别以及系统分配得唯一身份标识(1D)与密码。若学生希望租用某房屋,则需要发出租房请求,请求中包含房屋得详细信息,系统将安排学生与房主会面得时间与地点,并将会面信息通知学生与房主,会面信息包括会面时间、地点以及会面双方得基本信息,系统将记录会面信息。 学生住宿服务系统得顶层图如图1—1所示;学生住宿服务系统得第0层DFD图如图1—2所示,其中,加工3得细化图如图1-3所示。

数据流程图例题解析

数据流程图例题解析 例题:请根据以下描述画出系统的数据流程图。该子系统共有三个加工:(1)首先是“建立订货合同台帐”:从订货合同、材料检验单和客户文件输入数据、输出形成合同台帐文件;(2)然后是“分类合并”:从合同台帐文件输入数据,排序合并后形成合同分类文件,最后“打印”加工单元从合同分类文件打印出合同分类表。 所谓数据流程图(Data Flow Diagram,简称DFD)是一种分析系统数据流程的图形工具。它摆脱了系统的物理内容,精确地在逻辑上描述系统的功能、输入、输出和数据存储等,是系统逻辑模型的重要组成部分。一般由数据流、加工、文件和数据源或终点四项组成。 那么如何绘制数据流程图呢?以本题为例进行说明: 首先我们可根据例题中的描述在纸上画出第一个加工“建立订货合同台帐”,如图1所示: 图1 其次,分析这个加工的输出、输入数据流。根据题意可知,该加工的输出是合同台帐文件、而为完成该项输出,必须有三项输入,即订货合同、材料检验单、客户文件。据此可绘制出如图2所示的图形: 图2 此时应注意两点:第一要对加工进行编号。本例中,我们将加工“建立订货合同台帐”编号为P1;第二要判断输入、输出项是一般的数据流、还是文件存储。如果是文件存储(比如客户文件、合同台帐文件)则需要用右边开口的方框表示,同时表示数据流的箭头上的文字可省略。 第三、将加工“分类合并”画在纸上,如图3所示。

图3 第四、找出加工“分类合并”的输入和输出项,并用箭头在纸上标注出来。本例中,该加工的输入数据流是合同台帐文件,输出数据流是合同分类文件,由于“合同台帐文件”已被绘制在纸张上,因此只需用箭头将它与加工联接起来即可。如图4所示: 图4 第五、按上述方法,将加工“打印”绘制在图纸上。如图5所示 图5

关于数据流文件的一些信息

关于数据流文件的一些信息 又是一篇关于Windows,NTFS和cmd的帖子哈~貌似本板块可以改名为中国cmd联盟了~嘻嘻~废话不多说,进入正题你用过卡巴斯基么?是不是每次复制文 件都会显示这个:screen.width*0.7){this.resized=true; this.width=screen.width*0.7;this.alt='Click here to open new window';}"哈哈,这个就是今天我们要讨论的话题:NTFS数据流。NTFS分区 的数据流是一个子文件系统允许额外的数据连接到一个特别的文件中,现在的FAT文件系统格式是不支持数据流格式的。简单点说就是给在NTFS分区格式的 文件添加了一个标记。除了上面举的卡巴斯基的例子,在WinRAR添加压缩文件时,在高级选项中就有"保存文件数据流"的选项。再看看卡巴斯基对NTFS数据流干了些什么,Kaspersky把文件的验证指纹信息保存到NTFS数据流里面,如 果病毒/木马修改了这个文件,Kaspersky就会很快发现文件校检有误,这就是 为什么Kaspersky安装完毕要必须"全盘检查"一次,这样可以大幅度加快以后 的病毒检查速度!那么,怎样添加NTFS数据流呢?这就和cmd有关了CODE:[Copy to clipboard]dir C:1.txt看看1.txt里的内容,记住哦~然后CODE:[Copy to clipboard]dir c:2.txt:stream.txt怎么样,糊涂了吧~先看看 2.txt的属性:0 Bytes,打开2.txt看看有什么?什么都没了~然后在输入:CODE:[Copy to clipboard]notepad 2.txt:stream.txt看看,出来什么了? 惊讶吧~其实每个文件都可以有多个流的,用这个NTFS的特性我们可以隐藏文 件哦~而且,还可以,隐藏木马^_^实际上,流还可以不依赖于文件,下面的命令 也是合法的(先不要试,否则可能会有点麻烦):CODE:[Copy to clipboard]dir e::stream.txt这是把流绑到了文件夹上,这种流就更隐蔽了,一般情况下 要想删除流只有将其宿主删除,如果你执行了刚才的命令,并且是在根文件夹 上执行的,如果你想删除它,那就恭喜你要格盘了:),不过有现成的工具可以 使用的,这个就是:Streams v1.53 Reveal NTFS alternate streams这么样,又是sysinternal的作品哦~我要说的就说完了,下面是网上收集的关于NTFS 流的资料了Quote:NTFS上的交换数据流NTFS上的交换数据流转载:来源不详--目录--1、前言2、概念3、性质和应用-3.1创建-3.2删除-3.3检测与提取-3.4保存与传输-3.5文件隐藏-3.6运行-3.7与IIS相关4、附言5、参考文章--1、前言交换数据流(alternate data streams,以下简称ADS)也不是什么新

数据流图深入讲解

软件设计师:数据流图深入讲解[1] https://www.doczj.com/doc/921272641.html,作者:佚名来源:考试吧2010年6月28日发表评论进入社区 软件设计师考试的下午题的第一道题,数据库系统工程师考试的下午题的第一道题都是数据流图题,而能够将这道题全部做对的考生是非常少的。根据历年的辅导和阅卷经验,发现很多考生不是因为这方面的解题能力不够,而是缺乏解这种题的方法与技巧。本文介绍一些解这种类型题的方法和技巧,希望起来抛砖引玉的效果。 一、解题当中考生表现出的特点 由于这是下午考试的第一道题,所以很多考生从考前的紧张氛围当中逐渐平静下来开始答题,头脑还比较清醒,阅读起来比较流畅,速度还可以,自我感觉不错。可偏偏这道题有很多人不能全取15分,纠其原因有以下一些特点: 1.拿卷就做,不全面了解试卷,做到心中有数。这样会导致在解题过程当中缺少一种整体概念,不能明确自己在哪些题上必需拿分(多花时间),哪些题上自己拿不了分(少花时间)。这样,在解题时目标就会明确很多。 2.速度快,读一遍题就开始动手做。 3.速度慢,用手指逐个字的去看,心想看一遍就能做出题来。 4.在阅读题目时,不打记,不前后联系起来思考。 5.边做边怀疑边修改,浪费时间。 6.缺少的数据流找不准,可去掉的文件找不出来。 7.由于缺少项目开发经验,对一些事务分析不知如何去思考。 8.盲目乐观,却忽略了答题格式,丢了不应该丢的分。 二、解题的方法与技巧

1.首先要懂得数据流图设计要略 有时为了增加数据流图的清晰性,防止数据流的箭头线太长,减少交叉绘制数据流条数,一般在一张图上可以重复同名的数据源点、终点与数据存储文件。如某个外部实体既是数据源点又是数据汇点,可以在数据流图的不同的地方重复绘制。在绘制时应该注意以下要点: (1)自外向内,自顶向下,逐层细化,完善求精。 (2)保持父图与子图的平衡。 为了表达较为复杂问题的数据处理过程,用一个数据流图往往不够。一般按问题的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系。根据层次关系一般将数据流图分为顶层数据流图、中间数据流图和底层数据流图,除顶层图外,其余分层数据流图从0开始编号。对任何一层数据流图来说,称它的上层数据流图为父图,在它的下一层的数据流图为子图。 顶层数据流图只含有一个加工,表示整个系统;输入数据流和输出数据流为系统的输入 数据和输出数据,表明了系统的范围,以及与外部环境的数据交换关系。 底层数据流图是指其加工不能再分解的数据流图,其加工称为“原子加工”。 中间数据流图是对父层数据流图中某个加工进行细化,而它的某个加工也可以再次细化,形成子图。中间层次的多少,一般视系统的复杂程度而定。 任何一个数据流子图必须与它上一层父图的某个加工对应,二者的输入数据流和输出数 据流必须保持一致,此即父图与子图的平衡。父图与子图的平衡是数据流图中的重要性质,保证了数据流图的一致性,便于分析人员阅读和理解。 在父图与子图平衡中,数据流的数目和名称可以完全相同;也可以在数目上不相等,但 是可以借助数据字典中数据流描述,确定父图中的数据流是由子图中几个数据流合并而成的,也即子图是对父图中加工和数据流同时进行分解,因此也属于父图与子图的平衡,如图1 所示。

软件工程-数据流图(DFD)大题解析

1/4 杭州电子科技大学 计算机学院 软件与智能研究所 某公司为了给员工分配住房,开发了员工住房分配系统,功能如下: 计算原始分:根据员工信息(员工号、姓名、年龄、性别、学历、工龄、婚否、职务、职称、住房情况)计算原始分,并将员工信息存入员工信息文件中。 计算标准分:根据员工的原始分计算标准分,并将其存入员工分数文件(员工号、标准分)。 计算分房分:根据标准分、分房计划文件(员工号、住房请求)中的分房人数,计算分房分,并存入分房分数文件(员工号、分房分)中。 分房分查询:员工可以根据自己的员工号查询相应的分房分,若输入错误则返回出错信息。 试根据上面的系统功能描述: (1) 画出该系统的分层数据流图。(8分) (2) 写出相应的数据字典(要求至少写出三项)。(4分) (3) 将数据流图转换为软件的结构图。(8分) (1): 1) 2) 第一层数据流图 员工信息文件 员工分数文件夹 分房分数文件 2. 名称:员工信息 别名: 描述:员工的各种信息 定义:员工号+姓名+年龄+性别+学历+工龄+婚否+职务+职称+住房情况 位置:员工信息文件 名称:分房计划文件 别名: 描述:准备分房的计划 定义:员工号+住房请求 位置:公司系统 名称:分房分数文件 别名:

描述:计算出的每个员工分房分数的文件 定义:员工号+分房分 位置:公司系统 2阅读以下说明和图,回答问题1至问题5,将解答填入答题纸的对应栏内。(20分) 【说明】 某高校欲开发一个成绩管理系统,记录并管理所有选修课程的学生的平时成绩和考试成绩,其主要功能描述如下: 1)每门课程都有3到6个单元构成,每个单元结束后会进行一次测试,其成绩作为这门课程的平时成绩。课程结束后进行期末考试,其成绩作为这门课程的考试成绩。 2)学生的平时成绩和考试成绩均由每门课程的主讲教师上传给成绩管理系统。 3)在记录学生成绩之前,系统需要验证这些成绩是否有效。首先,根据学生信息文件来确认该学生是否选修这门课程,若没有,那么这些成绩是无效的;如果他的确选修了这门课程,再根据课程信息文件和课程单元信息文件来验证平时成绩是否与这门课程所包含的单元相对应,如果是,那么这些成绩是有效的,否则无效。 4)对于有效成绩,系统将其保存在课程成绩文件中。对于无效成绩,系统会单独将其保存在无效成绩文件中,并将详细情况提交给教务处。在教务处没有给出具体处理意见之前,系统不会处理这些成绩。 5)若一门课程的所有有效的平时成绩和考试成绩都已经被系统记录,系统会发送课程完成通知给教务处,告知该门课程的成绩已经齐全。教务处根据需要,请求系统生成相应的成绩列表,用来提交考试委员会审查。 6)在生成成绩列表之前,系统会生成一份成绩报告给主讲教师,以便核对是否存在错误。主讲教师须将核对之后的成绩报告返还系统。 7)根据主讲教师核对后的成绩报告,系统生成相应的成绩列表,递交考试委员会进行审查。考试委员会在审查之后,上交一份成绩审查结果给系统。对于所有通过审查的成绩,系统将会生成最终的成绩单,并通知每个选课学生。 现采用结构化方法对这个系统进行分析与设计,得到如图2-1所示的顶层数据流图和图2-2所示的第1层数据流图。 【问题1】(4分) 使用说明中的词语,给出图1-1中的外部实体E1~E4的名称。 E1:考试委员会 E2:主讲教师 E3:每个选课学生 E4:教务处 【问题2】(3分) 使用说明中的词语,给出图1-2中的数据存储D1~D5的名称。 D1:课程信息文件 D2:课程单元信息文件 D3:学生信息文件 D4:课程成绩文件 D5:无效成绩文件 【问题3】(6分) 数据流图1-2缺少了三条数据流,根据说明及数据流图1-1提供的信息,分别指出这三条数据流的起点和终点。

实验三 文件与数据流 实验报告

实验三文件与数据流实验报告 一、实验目的 1. 掌握输入输出流类的层次关系和类中的方法及输入输出流的编程方法。 2. 理解对象序列化。 二、实验要求 1. 利用InputStream(抽象类)的子类FileInputStream以及BufferedInputStream类对文件进行读入操作。BufferedInputStream相对于FileInputStream类而言增加了缓存,减少了IO 操作,在一定程序上提升了程序的性能。同理,利用OutputStream的子类FileOutputStream 和BufferedOutputStream类进行文件的输出操作。 2. 通过DataInputStream和DataOutputStream对象进行基本数据类型的写入文件和从文件读出的操作。 3. 通过ObjectInputStream和ObjectOutputStream可以直接把对象写入到文件或者从文件中读出。同时,如果要使对象能够通过这个类写入到文件中,这个类需要实现Serializable 接口。 三、实验内容 1. 将文件f1.txt的内容加密(字母’A’ 变为’C’,字母’B’ 变为字母‘D’,…,字母‘Z’ 变为’B’)后存放到f 2.txt中。读出f2.txt文件的内容,并显示解密后的内容。 import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; public class FileExperiment00 { public static void main(String[] args) { try { encrypt(); decrypt(); } catch (Exception e) { e.printStackTrace(); } } public static void encrypt() throws Exception { File f1 = new File("f1.txt"); File f2 = new File("f2.txt"); if (!f1.exists()) { System.out.println("文件不存在"); return; } if (!f2.exists()) {

系统分析与设计-数据流图课堂练习-30分大题二选一

【试题一】

答案 [问题1] (1)费用单(2)待租赁房屋列表(3)看房请求(4)变更房屋状态请求 [问题2] (5)房主信息文件(6)租赁者信息文件(7)房屋信息文件(8)看房记录文件[问题3] (1)起点:房主终点:变更房屋状态数据流名称;变更房屋状态请求 (2)起点:租赁者终点:登记租赁者信息数据流名称:租赁者信息 (3)起点:租赁者终点,安排租赁者看房数据流名称:看房请求 [分析]

本题考查的是DFD的应用,属于比较传统的题目,考查点也与往年类似。[问题1]考查的是顶层DFD。顶层DFD通常用来确定系统边界,其中只包含一个唯一的加工(即待开发的系统)、外部实体以及外部实体与系统之间的输入输出数据流。题目要求填充的正是数据流。 细心的考生可能会发现,在0层DFD中,与“房主”相关的数据流有5条。其中的“费用单”是顶层DFD中没有出现过的,而且是系统输出给“房主”的。这条数据流恰好可以与第(1)空对应,因此(1)处缺失的数据流就是“费用单”。如果确定了(4)处的数据流,实际上[问题3]要求的一条数据流也就找到了。 由于(4)处缺失的数据流是一条输入数据流,从[说明]中可以看出,只有功能6“当租赁者与房主达成租房或退房协议后,房主向系统提交变更房屋状态的请求”所描述的数据流没有在“房主”与系统之间体现出来。因此可以确定,(4)处缺失的数据流就是“变更房屋状态请求”。相应地,可以确定,在0层图中缺失的其中一条数据流也是它,其起点是“房主”,终点是“变更房屋状态”这个加工。 类似地,通过比较两张DFD中与外部实体“租赁者”相关的数据流,可以发现:出现在0层图上的数据流“带租赁房屋列表”是顶层图上没有的,且与(2)处的数据流的方向一致。由此可以断定,(2)处的数据流就是“带租赁房屋列表”。而顶层图中的数据流“租赁者信息”却是0层图上没有的。这样就找到了0层图上缺失的第2条数据流:租赁者信息,它的起点是“租赁者”,终点是加工“登记租赁者信息”。 再回到[说明],其中与“租赁者”相关的功能“一旦租赁者从中找到合适的房屋,就可以提出看房请求”并没有在图中体现出来。这样就能确定(3)处的数据流应该是“看房请求”。而0层图中也没有出现这条数据流。所以,0层图中缺失的第3条数据流就是“看房请求”,它的起点是“租赁者”,终点是加工“安排租赁者看房”。 到此为止所有缺失的数据流都补齐了,0层图中的(5)~(8)需要填的是数据存储。由[说明]可以确

相关主题
文本预览
相关文档 最新文档