上半年软件设计师考试真题下午Word文档格式.docx
- 文档编号:22002609
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:11
- 大小:236.68KB
上半年软件设计师考试真题下午Word文档格式.docx
《上半年软件设计师考试真题下午Word文档格式.docx》由会员分享,可在线阅读,更多相关《上半年软件设计师考试真题下午Word文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
【问题3】
根据说明和图中词语,补充图1-2中缺失的数据流及其起点和终点。
【问题4】
(5分)
图1-2所示的数据流图中,功能(6)发送通知包含创建通知并发送给学生或老师。
请
分解图1-2中加工(6),将分解出的加工和数据流填入答题纸的对应栏内。
(注:
数据流的起点和终点须使用加工的名称描述)
二、阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
某省针对每年举行的足球联赛,拟开发一套信息管理系统,以方便管理球队、球员、主教练、主裁判、比赛等信息。
【需求分析】
(1)系统需要维护球队、球员、主教练、主裁判、比赛等信息。
球队信息主要包括:
球队编号、名称、成立时间、人数、主场地址、球队主教练。
球员信息主要包括:
姓名、身份证号、出生日期、身高、家庭住址。
主教练信息主要包括:
姓名、身份证号、出生日期、资格证书号、级别。
主裁判信息主要包括:
姓名、身份证号、出生日期、资格证书号、获取证书时间、级别。
(2)每支球队有一名主教练和若干名球员。
一名主教练只能受聘于一支球队,一名球员只能效力于一支球队。
每支球队都有自己的唯一主场场地,且场地不能共用。
(3)足球联赛采用主客场循环制,一周进行一轮比赛,一轮的所有比赛同时进行。
(4)一场比赛有两支球队参加,一支球队作为主队身份、另一支作为客队身份参与比赛。
一场比赛只能有一名主裁判,每场比赛有唯一的比赛编码,每场比赛都记录比分和日期。
【概念结构设计】
根据需求分析阶段的信息,设计的实体联系图(不完整)如图2-1所示。
图2-1实体联系图
【逻辑结构设计】
根据概念结构设计阶段完成的实体联系图,得出如下关系模式(不完整):
球队(球队编号,名称,成立时间,人数,主场地址)
球员(姓名,身份证号,出生日期,身高,家庭住址,
(1))
主教练(姓名,身份证号,出生日期,资格证书号,级别,
(2))
主裁判(姓名,身份证号,出生日期,资格证书号,获取证书时间,级别)比赛(比赛编码,主队编号,客队编号,主裁判身份证号,比分,日期)
(6分)
补充图2-1中的联系和联系的类型。
图2-1中的联系“比赛”应具有的属性是哪些?
根据图2-1,将逻辑结构设计阶段生成的关系模式中的空
(1)~
(2)补充完整。
现在系统要增加赞助商信息,赞助商信息主要包括赞助商名称和赞助商编号。
赞助商可以赞助某支球队,一支球队只能有一个赞助商,但赞助商可以赞助多支球队。
赞助商也可以单独赞助某些球员,一名球员可以为多个赞助商代言。
请根据该要求,对图2-1进行修改,画出修改后的实体间联系和联系的类型。
三、阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
某物品拍卖网站为参与者提供物品拍卖平台,组织拍卖过程,提供在线或线下交易服务。
网站主要功能描述如下:
(1)拍卖参与者分为个人参与者和团体参与者两种。
不同的团体也可以组成新的团体参与拍卖活动。
网站记录每个参与者的名称。
(2)一次拍卖中,参与者或者是买方,或者是卖方。
(3)一次拍卖只拍出来自一个卖方的一件拍卖品;
多个买方可以出价:
卖方接受其中一个出价作为成交价,拍卖过程结束。
(4)在拍卖结算阶段,买卖双方可以选择两种成交方式:
线下成交,买卖双方在事先约定好的成交地点,当面完成物价款的支付和拍卖品的交付;
在线成交,买方通过网上支付平台支付物价款,拍卖品由卖方通过快递邮寄给买方。
一次拍卖过程的基本事件流描述如下:
(1)卖方在网站上发起一次拍卖,并设置本次拍卖的起拍价。
(2)确定拍卖标的以及拍卖标的保留价(若在拍卖时间结束时,所有出价均低于拍卖标的保留价,则本次拍卖失败)。
(1)在网站上发布本次拍卖品的介绍。
(2)买方参与拍卖,给出竟拍价。
(3)卖方选择接受一个竟拍价作为成交价,结束拍卖。
(4)系统记录拍卖成交价,进入拍卖结算阶段。
(5)卖方和买方协商拍卖品成交方式,并完成成交
现采用面向对象方法对系统进行分析与设计,得到如表3-1所示的类列表以及如图3-1所示
的类图,类中关键属性与方法如表3-2所示。
(7分)
根据说明中的描述,给出图3-1中
(1)~(7)所对应的类名(类名使用表3-1中给出的序号)。
根据说明中的描述,确定表3-2中的属性/方法分别属于哪个类(类名、方法/属性名使用表3-1、3-2中给出的序号)。
(3分)
在图3-1采用了何种设计模式?
以100字以内文字说明采用这种设计模式的原因。
四、阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。
【说明】n-皇后问题是在n行n列的棋盘上放置n个皇后,使得皇后彼此之间不受攻击,其规则是任意两个皇后不在同一行、同一列和相同的对角线上。
拟采用以下思路解决n-皇后问题:
第i个皇后放在第i行。
从第一个皇后开始,对每个皇后,从其对应行(第i个皇后对应第i行)的第一列开始尝试放置,若可以放置,确定该位置,考虑下一个皇后;
若与之前的皇后冲突,则考虑下一列;
若超出最后一列,则重新确定上一个皇后的位置。
重复该过程,直到找到所有的放置方案。
【C代码】下面是算法的C语言实现。
(1)常量和变量说明pos:
一维数组,pos[i]表示第i个皇后放置在第i行的具体位置count:
统计放置方案数i,j,k:
变量N:
皇后数
(2)C程序#include<
stdio.h>
#include<
math.h>
#defineN4/*判断第k个皇后目前放置位置是否与前面的皇后冲突*/
inisplace(intpos[],intk){inti;
for(i=1;
i<
k;
i++)
{if(
(1)||fabs(i-k)══fabs(pos[i]-pos[k]))
{return(4);
}
}
return1;
}
intmain(5)
{inti,j,count=1;
intpos[N+1];
//初始化位置
for(i=1;
=N;
{pos[i]=0;
}
(2);
while(j>
=1)
{pos[j]=pos[j]+1;
/*尝试摆放第i个皇后*/
while(pos[j]<
=N&
&
(3)_)
{pos[j]=
pos[j]+1;
}/*得到一个摆放方案*/
if(pos[j]<
j══N){printf("
方案%d:
"
count++);
{printf("
%d"
pos[i]);
printf("
\n"
);
}/*考虑下一个皇后*/
(4))
{j=j+1;
}else{//返回考虑上一个皇后
pos[j]=0;
(5);
}
return1;
(10分)
根据以上说明和C代码,填充C代码中的空
(1)~(5)。
根据以上说明和C代码,算法采用了(6)设计策略。
上述C代码的输出为:
(7)。
五、阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说
明】某图书管理系统中管理着两种类型的文献:
图书和论文。
现在要求统计所有馆藏文献的总页码(假设图书馆中有一本540页的图书和两篇各25页的论文,那么馆藏文献的总页码
就是590页)。
采用Visitor(访问者)模式实现该要求,得到如图5-1所示的类
图。
【C++码】
图5-1Visitor模式类图
classLibraryVisitor;
classLibraryItemInterface{public:
(1);
};
classArticle:
publicLibraryItemInterface{private:
stringm_title;
//论文名stringm_author;
//论文作者intm_start_page;
intm_end_page;
public:
Article(stringp_author,stringp_title,intp_start_page,intp_end_page);
intgetNumberOfPages();
voidaccept(LibraryVisitor*visitor);
classBook:
//书名stringm_author;
//作者intm_pages;
//页数
public:
Book(stringp_author,stringp_title,intp_pages);
voidaccept(LibraryVisitor*visitor);
classLibraryVisitor{public:
(2);
(3);
virtualvoidprintSum()=0;
classLibrarySumPrintVisitor:
publicLibraryVisitor{//打印总页数private:
intsum;
LibrarySumPrintVisitor();
voidvisit(Book*p_book);
voidvisit(Article*p_article);
voidprintSum();
//visitor.cpp
intArticle:
:
getNumberOfPages(){retumm_end_page-m_start_page;
voidArticle:
:
accept(LibraryVisitor*visitor){(4);
}Book:
Book(stringp_author,stringp_title,intp_pages){
m_title=p_title;
m_author=p_author;
m_pages=p_pages;
intBook:
getNumberOfPages(){returnm_pages;
}voidBook:
accept(LibraryVisitor*visitor){(5);
//其余代码省略
六阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】某图书管理系统中管理着两种类型的文献:
现在要求统计所有馆藏文献的总页码(假设图书馆中有一本540页的图书和两篇各25页的论文,那么馆藏文献的总页码就是590页)。
采用Visitor(访问者)模式实现该要求,得到如图6-1所示的类
图6-1Visitor模式类图
【Java代码】
importjav
(6)A.util.*;
interfaceLibraryVisitor{
classLibrarySumPrintVisitorimplementsLibraryVisitor{//打印总页数privateintsum=0;
publicvoidvisit(Bookp_book){
sum=sum+p_book.getNumberOfPages();
publicvoidvisit(Articlep_article){
sum=sum+p_article.getNumberOfPages();
publicvoidprintSum(){System.out.println("
SUM="
+sum);
interfaceLibraryItemInterface{
classArticleimplementsLibraryItemInterface{privateStringm_title;
//论文名
privateStringm_author;
//论文作者privateintm_start_page;
privateintm_end_page;
publicArticle(Stringp_author,Stringp_title,intp_start_page,intp_end_page){m_title=p_title;
m_author=p_author;
m_end_page=p_end_page;
publicintgetNumberOfPages(){returnm_end_page-m_start_page;
publicvoidaccept(LibraryVisitorVisitor){
(4);
classBookimplementsLibraryItemInterface{privateStringm_title;
//书名
//书作者privateintm_pages;
//页教
publicBook(Stringp_author,Stringp_title,intp_pages){m_title=p_title;
m_pages=p_pages;
publicintgetNumberOfPages(){returnm_pages;
publicvoidaccept(LibraryVisitorvisitor){
(5);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 上半年 软件 设计师 考试 下午