阅读下列说明和图,回答问题1至问题4 ,将解答填入答题纸的对应栏内。
【说明】
某公司拟开发一个共享单车系统,采用北斗定位系统进行单车定位,提供针对用户的APP以及微信小程序、基于Web的管理与监控系统。该共享单车系统的主要功能如下。
【问题1】(3分)
使用说明中的词语,给出图1-1中的实体 El~E3 的名称。
【问题2】(5分)
使用说明中的词语,给出图1-2中的数据存储D1~D5的名称。
【问题3】(5分)
根据说明和图中术语及符号,补充图1-2中缺失的数据流及其起点和终点.
【问题4】(2分)
根据说明中术语,说明"使用单车"可以分解为哪些子加工?
阅读下列说明,回答问题1至4问题,将解答填入答题纸的对应栏内。
【说明】
M公司为了便于开展和管理各项业务活动,提高公司的知名度和影响力,拟构建一个基于网络的会议策划系统。
【需求分析结果】
该系统的部分功能及初步需求分析的结果如下 :
(1)M公司旗下有业务部、策划部和其他部门。部门信息包括部门号、部门名、主管、联系电话和邮箱号;每个部门只有一名主管,只负责管理本部门的工作,且主管参照员工关系的员工号;一个部门有多名员工,每名员工属于且仅属于一个部门。
(2)员工信息包括员工号、姓名、职位、联系方式和薪资。职位包括主管、业务员、 策划员等。业务员负责受理用户申请,设置受理标志。一名业务员可以受理多个用户申请,但一个用户申请只能由一名业务员受理。
(3)用户信息包括用户号、用户名、银行账号、电话、联系地址。用户号唯一标识用户信息中的每一个元组。
(4)用户申请信息包括申请号、用户号、会议日期、天数、参会人数、地点、预算和受理标志。申请号唯一标识用户申请信息中的每一个元组,且一个用户可以提交多个申请,但一个用户申请只对应一个用户号。
(5)策划部主管为己受理的用户申请制定会议策划任务。策划任务包括申请号、任务明细和要求完成时间.申请号唯一标识策划任务的每一个元组。一个策划任务只对应一个已受理的用户申请,但一个策划任务可由多名策划员参与执行,且一名策划员可以参与执行,且在项策划任务。
【概念模型设计】
根据需求阶段收集的信息,设计的实体联系图(不完整)如图 2-1 所示。
【关系模型设计】
部门(部门号,部门名,部门主管,联系电话,邮箱号)
员工(员工号,姓名,(a),联系方式,薪资)
用户(用户名,(b),电话,联系地址)
用户申请(申请号,用户号,会议日期,天数,参会人数,地点,受理标志,(c))
执行(申请号,任务明细,(d))
【问题1】(5分)
根据问题描述,补充五个联系,完善图2-1的实体联系图。联系名可用联系1、联系2、联系3、联系4和联系5,联系的类型为1:1、1:n和m:n(或1 : 1、1:* 和 * :*)。
【问题2】(4分)
根据题意,将关系模型中的空(a)~(d)补充完整,并填入答题纸对应的位置上。
【问题3】(4分)
给出“用户申请”和“策划任务”关系模式的主键和外键。
【问题4】(2分)
请问“执行”关系模式的主键为全码的说法正确吗?为什么?
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某大学拟开发一个用于管理学术出版物(Publication) 的数字图书馆系统,用户可以从该系统查询或下载已发表的学术出版物。系统的主要功能如下:
现在采用面向对象方法对该系统进行开发,得到系统的初始设计类图如图3-1所示。
【问题1】(9分)
根据说明中的描述,给出图3-1中C1~C9所对应的类名。
【问题1】(4分)
根据说明中的描述,给出图3-1中类C6~C9的属性。
【问题3】 (2分)
图3-1中包含了哪种设计模式?实现的是该系统的哪个功能?
阅读下列说明和C代码,回答问题1至问题 2,将解答写在答题纸的对应栏内。
【说明】
一个无向连通图G点上的哈密尔顿(Hamiltion)回路是指从图G上的某个顶点出发,经过图上所有其他顶点一次且仅一次,最后回到该顶点的路径。一种求解无向图上哈密尔顿回路算法的基础私下如下:
假设图G存在一个从顶点V0出发的哈密尔顿回路V1——V2——V3——…——Vn-1——V0。算法从顶点V0出发,访问该顶点的一个未被访问的邻接顶点V1,接着从顶点V1出发,访问V1一个未被访问的邻接顶点V2,…。;对顶点Vi,重复进行以下操作:访问Vi的一个未被访问的邻接接点Vi+1;若Vi的所有邻接顶点均已被访问,则返回到顶点Vi-1,考虑Vi-1的下一个未被访问的邻接顶点,仍记为Vi;知道找到一条哈密尔顿回路或者找不到哈密尔顿回路,算法结束。
【C代码】
下面是算法的C语言实现。
(1)常量和变量说明
n :图G中的顶点数
c[][]:图G的邻接矩阵
K:统计变量,当期已经访问的定点数为k+1
x[k]:第k个访问的顶点编号,从0开始
Visited[x[k]]:第k个顶点的访问标志,0表示未访问,1表示已访问
【问题1】(10分)
根据题干说明。填充C代码中的空(1)~(5).
【问题2】(5分)
根据题干说明和C代码,算法采用的设计策略为(6),该方法在遍历图的顶点时,采用的是(7)方法(深度优先或广度优先)。
从下列的 2 道试题(试题五至试题六)中任选 1 道解答。
如果解答的试题数超过 1 道,则题号小的 1 道解答有效。
阅读下列说明和 C++代码,将应填入( )处的字句写在答题纸的对应栏内。
【说明】
某图像预览程序要求能够查看BMP 、JPEG和GIF三种格式的文件,且能够Windows和Linux两种操作系统上运行程序需具有较好的扩展性以支持新的文件格式和操作系统。为满足上述需求并减少所需生成的子类数目,现采用桥接(Bridge)模式进行设计,得到如图5-1所示的类图。
【问题1】
【C++代码】
#include <stdio.h>;
#include <string>;
Using namespace std;
class Matrix{
//各种格式的文件最终都被转化为像素矩阵
//此处代码省略
};
class Implementor{
public:
(1);//显示像素矩阵 m
};
class WinImp:public Implementor{
public:
Viod doPaint(Matrix m){
/*调用Windows系统的绘制函数绘制像素矩阵*/}
};
class LinuxImp:public Implementor{
/*调用Linux系统的绘制函数绘制像素矩阵*/
};
class Image{
public:
viod setImp(Implement*imp){
this->imp=imp;}
Virtual viod parseFile(string fileName)=0
protected:
Implementor*imp;
};
class BMPImage:public Image{
//此处省略代码
};
class GIFImage:public Image{
Public:
viod parseFile(string fileName) {
//此处解析GIF文件并获得一个像素矩阵对象m
(2);//显示像素矩阵m
}
};
class JPEGImage:public Image{
//此处代码省略
};
int main(){
//在linux操作系统上查看demo.gif图像文件
Image*image=(3);
Implementor*imageImp=(4);
(5)
Image->parseFile(〝demo.gif〝);
return 0;
}
阅读下列说明和Java代码,将应填入一且上一处的字句写在答题纸的对应栏内。
【说明】
某图像预览程序要求能够查看BMP 、JPEG和GIF三种格式的文件,且能够在Windows和Linux两种操作系统上运行。程序需具有较好的扩展性以支持新的文件格式和操作系统。为满足上述需求并减少所需生成的子类数目,现采用桥接模式进行设计,得到如图6-1所示的类图。
【问题1】
【Jave代码】
import java.util.*;
class Matrix{
//各种格式的文件最终都被转化为像素矩阵
//此处代码省略
};
abstract class Implementor{
Public(1);//显示像素矩阵 m
};
class WinImp extends Implementor{
public void doPaint(Matrix m){
//调用 Windows 系统的绘制函数绘制像素矩阵}
};
class LinuxImp extends Implementor{
public void doPaint(Matrix m){
//调用 Linux 系统的绘制函数绘制像素矩阵}
};
abstract class Image{
public void setImp(Implementor imp){
this.imp= imp; }
public abstract void parseFile(String fileName);
protected Implementor imp;
};
class BMPImage extends Image{
//此处代码省略
};
class GIFImage extends Image{
public void parseFile(String fileName) {
//此处解析BMP文件并获得一个像素矩阵对象m
(2);//显示像素矩阵m
}
};
Class Main{
Public static viod main(String[]args){
//在Linux操作系统上查看demo.gif图像文件
Image image=(3)
Implementor imageImp=(4)
(5)
Image.parseFile(〝demo.gif〝);
}
}