问答题

【说明】
某考务处理系统具有以下功能:
(1)输入报名单;
(2)自动编制准考证号;
(3)输出准考证;
(4)输入成绩清单;
(5)输出成绩通知单;
(6)输出成绩分布表;
(7)输入合格标准、输出录取通知单;
(8)试题难度分析,并输出试题难度分析表。
这里给出了实现上述要求的部分不完整的数据流图,其中部分数据流的组成如下所示。
报名单=报名号+姓名+通信地址
考生名册=报名号+准考证号+姓名+通信地址
成绩册=准考证号+(课程号+成绩)(其中W表示W重复多次)
准考证=报名号+姓名+准考证号


【问题1】
指出0层图中可以删去的部分。
【问题2】
在加工1子图中将遗漏的数据流添加在答题纸上。
【问题3】
加工2子图分解成如图所示的4个子加工及相关的文件(即数据存储)。试在此基础上将相关的DFD成份添加在答题纸上,以完成该加工子图。

【参考答案】

【问题1】
成绩册文件可删。
【问题2】
补充后的加工1子图如下所示。


【问题3】
完成后的加工2子图如下所示。

热门 试题

问答题
【说明】函数int Toplogical(LinkedWDigraph G)的功能是对图G中的顶点进行拓扑排序,并返回关键路径的长度。其中图G表示一个具有n个顶点的AOE一网,图中顶点从1~n依次编号,图G的存储结构采用邻接表表示,其数据类型定义如下: typedef struct Gnode *邻接表的表结点类型* int adivex; *邻接顶点编号* int weight; *弧上的权值* bstmct Gonde*nextare; *指示下一个弧的结点* Gnode; typedef struct Adjlist *邻接表的头结点类型* char vdata; *顶点的数据信息* struct Gnode*Firstadj; *指向邻接表的第1个表结点* Adjlist; typedef struct LinkedWDigraph *图的类型* int n, e; *图中顶点个数和边数* struct Adjlist head; *指向图中第1个顶点的邻接表的头结点* LinkedWDigraph; 【函数】 int Toplogical(LinkedWDigraph G) Gnode *p; int j,w,top=0; int *Stack,*ve,*indegree; ve=(int *)mallloc(G.n+1)* sizeof(int); indegree=(int *)malloc((G.n+1)*sizeof(int)); *存储网中个顶点的入度* Stack=(int *)malloc((G.n+1)*sizeof(int)); *存储入度为0的顶点的编号* if(!ve‖!indegree‖!Stack) exit(0); for(j=1;j<=G.n;j++) ve[j]=0; indegree[j]=0; *for* for(j=1;j<=G.n;j++) *求网中各顶点的入度* p=G.head[j].Firstadj; while(p) (1) ; p=p->nextarc; *while* *for* for(i=1;j<=G.n;j++) 求网中入度为0的顶点并保存其编号* if(!indegree[j]) Stack[++top]=j; while(top>0) w= (2) ; printf( %c , G.head[w].vdata); p=G.head[w].Firstadj; while(p) (3) ; if(!indegree[p->adjvex]) Stack[++top]=p->adjvex; if( (4) ) ve[p->adjvex]=ve[w]+p->weight; p=p->nextarc; *while* return (5) ; *Toplogical*