第
1题: 阅读下列说明和图,回答问题1至4,将答案填入答题纸的对应栏内。
【说明】
某公司拟开发一个共享单车系统,采用北斗定位系统进行单车定位,提供针对用户的APP以及微信小程序,基于Web的管理与监控系统。该共享单车系统的主要功能如下。
1)用户注册登录。用户在APP段端输入手机号并获取验证码后进行注册,将用户信息进行存储。用户登录后显示用户所在位置周围的单车。
2)使用单车。
①扫码/手动开锁。通过扫描二维码或手动输入编码获取开锁密码,系统发送开锁指令进行开锁,系统修改单车状态,新建单车行程。
②骑行单车。单车定时上传位置,更新行程。
③锁车结账。用户停止使用或手动锁车并结束行程后,系统根据已设置好的计费规则及使用时间自动结算,更新本次骑行的费用并显示给用户,用户确认支付后,记录行程的支付状态,系统还将重置单车的开锁密码和单车状态。
3)辅助管理。
①查询。用户可以查看行程列表和行程详细信息。
②保修。用户上报所在位置或单车位置以及单车故障信息并进行记录。
4)管理与监控
①单车管理及计费规则设置。商家对单车基础信息,状态等进行管理,对计费规则进行设置并存储。
②单车监控。对单车,故障,行程等进行查询统计。
③用户管理。管理用户信用与状态信息,对用户进行查询统计。
现采用结构化方法对共享单车系统进行分析与设计,获得如图1-1所示的上下文数据流图和图1-2所示的0层数据流图。
【问题1】(3分)
使用说明中的词语,给出图1-1中的实体E1~E3的名称。
【问题2】(5分)
使用说明中的词语,给出图1-2中的数据存储D1~D5的名称。
【问题3】(5分)
根据说明和图中术语及符号,补充图1-2中缺失的数据流及其起点和终点。
【问题4】(2分)
根据说明中术语,说明“使用单车”可以分解为那些子加工?
答案解析与讨论:
www.cnitpm.com/st/395659227.html第
3题: 阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某大学拟开发一个用于管理学术出版物(Publication)的数字图书馆系统,用户可以从该系统查询或下载已发表的学术出版物。系统的主要功能如下:
1.登录系统。系统的用户(User)仅限于该大学的学生(Student),教师(Faculty)和其它工作人员(Staff)。在访问系统之前,用户必须使用其校园账号和密码登录系统。
2.查询某位作者(Author)的所有出版物。系统中保存了会议文章(ConfPaper),期刊文章(JournalArticle)和校内技术报告(TechReport)等学术出版物的信息,如题目,作者以及出版年份等。除此之外,系统还存储了不
同类型出版物的一些特有信息;
(1)对于会议文章,系统还记录了会议名称,召开时间以及召开地点;
(2)对于期刊文章,系统还记录了期刊名称,出版月份,期号以及主办单位;
(3)对于校内技术报告,系统还记录了由学校分配的唯一ID。
3.查询制定会议集(Proceedings)或某个期刊特定期(Edition)的所有文章。会议集包含了发表在该会议(在某个特定时间段,特定地点召开)上的所有文章。期刊的每一期在特定时间发行,其中包含若干篇文章。
4.下载出版物。系统记录每个出版物被下载的次数。
5.查询引用了某篇出版物的所有出版物。在学术出版物中引用他人或早期的文献作为相关工作或背景资料是很常见的现象。用户也可以在系统中为某篇出版物注册引用通知,若有新的出版物引用该出版物,系统将发送电子邮件通知该用户。
现在采用面向对象方法对该系统进行开发,得到系统的初始设计类图如图3-1所示。
【问题1】(9分)
根据说明中的描述,给出图3-1中C1~C9所对应的类名。
【问题2】(4分)
根据说明中的描述,给出图3-1中类C6~C9的属性。
【问题3】(2分)
图3-1中包含了那种设计模式?实现的是该系统的哪个功能?
答案解析与讨论:
www.cnitpm.com/st/395678773.html第
4题: 阅读下列说明和C代码,回答问题1至问题2,将解答写在答题纸的对应栏内
【说明】
一个无向连通图G上的哈密尔顿(Hamilton)回路是指从图G上的某个顶点出发,经过图上所有其他顶点一次且仅一次,最后回到该顶点的路径。一种求解无向图上的哈密尔顿回路算法的基本思想如下:
假设图G存在一个从顶点u0出发的哈密尔顿回路u0—u1—u2—u3—...—u0—un-1—u0。算法从顶点u0出发,访问该顶点的一个未被访问的领接顶点u1 ,接着从顶点u1出发,访问u1的一个未被访问的领接顶点u2,...。对顶点ui,重复进行以下操作:访问ui的一个为被访问的领接顶点ui+1;若ui的所有领接顶点均已被访问,则返回到顶点ui-1,考虑ui-1的下一个未被访问的领接顶点,仍记为ui;直到找到一个哈密尔顿回路或者找不到哈密尔顿回路,算法结束。
【C代码】
下面是算法的C语言实现。
(1)常量和变量说明
n:图G中的顶点数
c[][]:图G的领接矩阵
k:统计变量,当前已经访问的顶点数为k+1
x[k]:第k个访问的顶点编号,从0开始
visited[x[k]]:第k个顶点的访问标志,0表示未访问,1表示已访问
(2)C程序
#include
#include
#define MAX 4Void Hamilton(int n,int x[MAX],int c[MAX][MAX]){
int i;
int visited[MAX];
int k;
/*初始化x数组和visited数组*/
for(i=o;ix[i]=0;
Visited[i]=0;
}
/*访问起初顶点*/
K=0;
(1) ;
x[0]=0;
k=k+1;
/*访问其它顶点*/
while(k>0){
x[k]=x[k]+1;
while(x[k]if( (2) &&c[x[k-1]][x[k]]==1){/*领接顶点x[k]未被访问过*/
break;
}
else{
x[k]=x[k]+1;
}
}
if(x[k]for(k=0;kprintf(“%d--”,x[k]);/*输出哈密尔顿回路*/
}
printf(“%d\n”,x[0]);
return;
}
else if(x[k]&&k (4) ;
k=k+1;
}
else {/*没有未被访问过的领接顶点,回退到上一个顶点*/
x[k]=0;
visited[x[k]]=0;
(5) ;
}
}
}
【问题1】(10分)
根据题干说明,填充C代码中的空(1)~(5)。
【问题2】(5分)
根据题干说明和C代码,算法采用的设计策略是(6),该方法在遍历图的顶点时,采用的是(7)方法(深度优先或广度优先)。
答案解析与讨论:
www.cnitpm.com/st/395684405.html第
5题: 阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
某图像预览程序要求能够查看BMP,JPEG和GIF三种格式的文件,且能够在Windows和Linux两种操作系统上运行。程序需具有较好的扩展性以支持新的文件格式和操作系统。为满足上述需求并减少所需生成的子类数目,现采用桥接 (Bridge)模式进行设计,得到如图5.1所示的类图。
【c++代码】
#include
#include
Using namespace std;
class matrix{//各种格式的文件最终都被转化为像素矩阵
//此处代码省略
};
class Implement{
Public:
(1) ;//显示像素矩阵m
};
class WinImp:public Implementor{
Public:
Void doPaint(Matrix m){/*调用Windows系统的绘制函数绘制像素矩阵*/}
};
class LinuxImp: public Implementor{
public:
Void doPaint(Matrix m){/*调用Linux系统的绘制函数绘制像素矩阵*/}
};
class Imag{
public:
void setImp(Implementor *imp){this.imp=imp;}
virtual void parseFile(String fileName)=0;
protected:
Implenentor *imp;
};
class BMPImage:public Image{
//此处代码省略
};
class GIFImage:public Image{
public:
void parseFile(String fileName){
//此处解析GIF文件并获取一个像素矩阵对象m
(2) ;//显示像素矩阵m
}
};
class JPEGImage:public Image{
//此处代码省略
};
int main(){
public static void main(String[] args){
//在Linux操作系统上查看demo.gif图像文件
Imag imag= (3) ;
Implementor imageImp= (4) ;
(5) ;
image.parseFile(“demo.gif”);
}
}
答案解析与讨论:
www.cnitpm.com/st/3956916756.html