当前位置: 首页 > >

软件设计师模拟题第二十六套

发布时间:

软件设计师模拟题第二十六套 试题1 阅读下列说明和流程图,回答问题1至问题3,把解答填入答题纸的对 应栏内。 【说明】 某考务处理系统具有以下功能: (1)输入报名单; (2)自动编制准考证号; (3)输出准考证; (4)输入成绩清单; (5)输出成绩通知单; (6)输出成绩分布表; (7)输入合格标准、输出录取通知单; (8)试题难度分析,并输出试题难度分析表。 这里给出了实现上述要求的部分不完整的数据流图,其中部分数据流 的组成如下所示。 报名单=报名号+姓名+通信地址 考生名册=报名号+准考证号+姓名+通信地址 成绩册=准考证号+{课程号+成绩}(其中{W}表示W重复多次) 准考证=报名号+姓名+准考证号 图:说明和流程 【问题2】 在加工1子图中将遗漏的数据流添加在答题纸上。 【问题3】 加工2子图分解成如图所示的4个子加工及相关的文件(即数据存储)。 试在此基础上将相关的DFD成份添加在答题纸上,以完成该加工子图。 试题2 阅读下列说明,回答问题1至问题3,把解答填入答题纸的对应栏内。 【说明】 请设计一个图书馆数据库,此数据库中对每个借阅者保存的读者记录 包括:读者号、姓名、地址、性别、年龄、单位。对每本书存有:书号、书 名、作者、出版社。对每本书被借出的书存有读者号、借出日期和应还日期。 【问题3】 试题3 阅读下列说明和流程图,回答问题,把解答填入答题纸的对应栏内。 【说明】 某公司的用品采购流程如下所述。 (1)由营业部门提出需求用品清单。 (2)将需求用品清单交采购部门建立采购采买单据。 (3)采购部门建立采购采买单据后,交财务部门,向财务部申请款项, 预支定金。 (4)财务部建立应付帐款单据后,核支款项。 (5)采购部门再收到款项后,进行采买。 (6)采买完成,执行: 给其中任何一个表用SQL语句建表。 【问题1】 给出E-R图 【问题2】 转换成关系模型 给其中任何一个表用SQL语句建表。 ① 发票核剩余款项交财务部,即由财务部门处理。 ② 用品点交营业部门发放,即由营业部门处理。 (7)进行财务结算处理,执行: ① 采购部门:采购单据结案。 ② 财务部门:帐款冲销结案。 【问题】 完成下面的UML活动图对象流分析,1~11为活动,设计此采购活动的 流程。 采购活动的流程图 试题4(15分) 阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应 栏内。 【说明】函数int Toplogical (LinkedWDigraph G)的功能是对图G中的 顶点进行*伺判颍⒎祷毓丶肪兜某ざ取F渲型糋表示一个具有n个顶点的 AOE-网,图中顶点从1~n依次编号,图G的存储结构采用邻接表表示,其数据类 型定义如下: typedef struct Gnode{ /*邻接表的表结点类型*/ int adjvex; /*邻接顶点编号*/ int weight; /*弧上的权值*/ struct 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 (j=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*/



友情链接: