2023年5月软考中级软件设计师下午真题_第1页
2023年5月软考中级软件设计师下午真题_第2页
2023年5月软考中级软件设计师下午真题_第3页
2023年5月软考中级软件设计师下午真题_第4页
2023年5月软考中级软件设计师下午真题_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2023年5月软考中级软件设计师下午真题(总分:45.07,做题时间:120分钟)一、材料分析题(总题数:3,分数:60.00)1.

随着农业领域科学种植的发展,需要对农业基地及农事进行的信息化管理,为租户和农户等人员提供种植相关服务,现欲开发农事管理服务平台。其主要功能是:1.人员管理。平台管理员管理租户;租户管理农户并为其分配负责的地块,租户和农户以人员类型区分2.基地管理。租户填写基地名称、地域等描述信息,在显示的地图上绘制地块。3.种植管理。租户设定作物及其从种植到采收的整个农事过程,包括农事活动及其实施计划,农户根据相应农事过程提醒进行农事活动并记录。系统会在设定时间向农户进行农事提醒,对逾期未实施活动向租户发出逾期告警。4.投入品管理。租户统一维护化肥,杀虫剂等投入品信息,农户在农事活动中设定投入品的实际消耗。5.信息服务。用户按查询条件发起农事信息请求,对相关地块农事活动实施情况(如与农事过程比对)等农事信息进行筛选、对比和统计等处理,并将响应信息进行展示。系统也给其他第三方软件提供APP接口,通过接口访问的方式,提供账号,密码和查询条件发起农事信息请求,返回特定格式的农事信息,无查询条件时默返回账号下所有信息,多查询条件时返回满足全部条件的信息。现采用结构化方法对农事管理服务平台进行分析与设计,获得如图1-1所示的上下文数据流图和图1-2所示的0层数据流图。

(分数:1.75)(1).使用说明中的词语,给出图1-1中实体E1~E4的名称。(分数:1.00)__________________________________________________________________________________________

正确答案:(E1:平台管理员,E2:农户,E3:租户,E4:第三方软件)解析:实体是是数据的发源地与归宿地,找实体就是找题干当中的名词。根据“平台管理员管理租户”以及对应的数据流信息,可知E1就是“平台管理员”。根据“租户管理农户”,“租户填写基地名称、地域等描述信息”以及数据流图中相关数据流名称,可知E3就是租户。“农户根据相应农事过程提醒进行农事活动并记录”说明E2就是“农户”。“系统也给其他第三方软件提供APP接口....无查询条件时默返回账号下所有信息”得到E4是“第三方软件”。(2).使用说明中的词语,给出图1-2中的数据存储D1-D4的名称。(分数:0.25)__________________________________________________________________________________________

正确答案:(D1:用户信息表,D2:基地及地块信息表,D3:农事过程表,D4:农事活动表)解析:可以根据数据流名称判断存储信息,注意尽量使用题干给出的词汇。根据E1与E3流向P1的信息,可知“人员管理”会将“租户”和“农户”信息处理后进行存储。因此D1就是“用户信息表”。P2流向D2的数据流信息叫“基地及地块数据”,那么D2就是“基地及地块信息表”。同理根据P3流向D3和D4的数据信息,可得D3是“农事过程表”,D4是“农事活动表”。(3).根据说明和图中术语,补充图1-2中缺失的数据流及其起点和终点。(分数:0.25)__________________________________________________________________________________________

正确答案:()解析:补充缺失的数据流有两个要点:1、父图与子图要“平衡”,父图里有哪些数据流,子图也要包含这些数据流。2、子图内部要“平衡”,这里主要是指加工要有输入也要有输出。判断缺失的数据流一定要认真审题,主要关注的是题干描述出来的数据流信息,而数据流图确没有画出来的数据流。(4).根据说明,根据说明,给出"农事信息请求"数据流的组成。(分数:0.25)__________________________________________________________________________________________

正确答案:(农事活动信息、农事过程信息、地块信息)解析:根据“对相关地块农事活动实施情况(如与农事过程比对)等农事信息进行筛选、对比和统计等处理...”可知“农事信息请求”数据流包括:农事活动信息、农事过程信息、地块信息2.

某新能源汽车公司为了提升效率,需开发一个汽车零件采购系统。请完成系统的数据库设计。【概念结构设计】

【需求描述】(1)记录供应商的信息,包括供应商的名称,地址和一个电活(2)记录零件的信息,包括零件的编码、名称和价格。(3)纪录车型信息,包括车型的编号,名称和规格。(4)记录零件采购信息,某个车型的某种零件可以从多家供应商采购,某种零件也可以被多个车型采用,某家供应商也可以供应多种零件,还包括采购数量和采购日期。【逻辑结构设计】根据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整)供应商(名称,地址,电话)零件(编码,名称,价格)车型(编号,名称,规格)采购(车型编号,供应商名称,(a),(b),采购日期)(分数:1.66)(1).根据问题描述,补充图2-1的实体联系图(不增加新的实体)。(分数:1.00)__________________________________________________________________________________________

正确答案:()解析:实体和联系可以通过阅读题干获得信息,根据“某个车型的某种零件可以从多家供应商采购,某种零件也可以被多个车型采用,某家供应商也可以供应多种零件”。可知供应商、车型、零件存在采购关系。(2).补充逻辑结构设计结果中的(a)(b)两处空缺,并标注主键和外健完整性约束。(分数:0.33)__________________________________________________________________________________________

正确答案:(根据问题1的答案,供应商、车型、零件属于多元的联系。多元的联系需要将联系独立形成一个关系模式,该关系模式中要包含跟它有多元联系的各个实体的主键,题干已经给出了车型与供应商关系模式的主键,还缺少零件关系模式的主键“零件编码”。此外题干还说明采购关系模式需要包含“采购数量”与“采购日期”,因此空(b)就是“采购数量”。)解析:(3).该汽车公司现新增如下需求:记录车型在全国门店的销售情况,门店信息包括门店的编号,地址和电话,销售包括销售数量和销售日期等对原有设计进行以下修改以实现该需求:(1)在图1中体现门店信息及其车型销售情况、并标明新增的实体和联系,及其核心属性。(2)给出新增加的关系模式,并标注主键和外键完整性约束。(分数:0.33)__________________________________________________________________________________________

正确答案:((1)(2)门店(编号,地址,电话)主键:编号外键:无销售(门店编号,车型编号,销售数量,销售日期)主键:门店编号,车型编号外键:门店编号,车型编号)解析:第(1)问新增“门店”实体,其与“车型”是销售的关系,这个关系是多对多的关系,一个门店可以销售多种车型的汽车,每种车型的汽车也可以在多个门店进行销售。第(2)问多对多的联系需要转换成一个独立的关系模式,因此除了“门店”这个关系模式以外,还需增加“销售”关系模式。3.

某高校图书馆购买了若干学术资源的镜像数据库(MinorDB)资源,现要求开发一套数字图书馆(Digitallibrary)系统,面向校内用户(User)提供学术资源(Resource)的浏览,检索和下载服务系统的主要要求描述如下:(1)系统中存储了每个镜像数据库的基本信息,包括:数据库名称,访问地址,数据库属性以及数据库简介等信息,用户进入某个镜像数据降后,可以浏览检索以及下载其中的学术资源。

(2)学术资源包括会议论文(Conference

Paper)、期刑论文(Journal

Article)以及学位(Thesis)等:系统中存储了每个学术资源的题名、作者、发表时间、来源(哪个镜像数据库)、被引次数、下载次数等信息。对于会议论文,还需记录会议名称,召开时间以及召开地点;同一次会议的论文被收录在会议集(Proceeding)中。对于期刊论文,还需记录期刊名称,出版月份,期号以及主办单位;同一期号的论文被收录在一本期刊(Edition)中。对于学位论文,记录了学位类别(博士/硕士):毕业学校,专业及指导教师。会议集包含发表在该会议(在某个特定时间段,特定地点召开)上的所有文章。期刊的每一期在特定时间发行,其中包含若干篇文章。(3)系统用户(User)包括在校学生(Student),教师(Teacher)以及其他在职人员(Staff)。用户使用学校的统一身份认证登录系统后,使用系统提供的各项服务。(4)系统提供多种资源检索的方式,主要包括:按照资源的题名检索(Search

by

Title),按照作者名称检票(Search

By

author),按照来源检索(Search

By

Source)等。(5)用户可以下载资源,系统记录每个资源被下载的次数。现采用面向对象分析与设计方法开发该系统,得到如图1所乐的用例图以及图2所示的初始类图。

(分数:1.66)(1).根据说明中的描述,给出图3-2中的C1-C8所对应的类名。(分数:1.00)__________________________________________________________________________________________

正确答案:(C1:Resource或学术资源C2:ConferencePaper或会议论文C3:JournalArticle或期刑论文C4:Thesis或学位C5:User或系统用户C6:Student或在校学生C7:Teacher或教师C8:Staff或其他在职人员C6-C8顺序不限)解析:求类名可以通过类图中类之间的关系获得线索。C2与类“Proceeding”之间是聚合关系,这是一种整体类与部分类之间的关系,部分类含在整体类中。结合题干可知C2就是“会议论文(ConferencePaper)”。C3与类“Edition”是聚合关系,结合题干“同一期号的论文被收录在一本期刊(Edition)中...”的得知C3是“期刑论文(JournalArticle)”。C1与类“镜像数据库(MinorDB)”聚合关系,再看题干“镜像数据库(MinorDB)资源...提供学术资源(Resource)的浏览...”,C1又与C2、C3、C4是关联关系,也就是C1“拥有”C2、C3、C4,因此C1就是“学术资源(Resource)”C4是“学位(Thesis)”。在用例图中,用户可以检索资源,方式可以有按照资源的题名检索(SearchbyTitle),按照作者名称检票(SearchByauthor),按照来源检索(SearchBySource),恰好对应类图中的“Search”、“SearchbyTitle”、“SearchByauthor”、“SearchBySource”这几个类,所以C5就是“系统用户(User)”,C6-C8顺序不限,可以是“在校学生(Student)”、“教师(Teacher)”、“其他在职人员(Staff)”。(2).根据说明中的描述,给出图2的类C1-C4的关键属性。(分数:0.33)__________________________________________________________________________________________

正确答案:(C1的关键属性:学术资源的题目、作者、发表时间、来源、被引用次数、下载次数C2的关键属性:会议名称、召开时间、召开地点C3的关键属性:出版月份、期号、主办单位C4的关键属性:学位类别、毕业学校、专业、指导教师)解析:题干已经给了提示信息,如“系统中存储了每个学术资源的题名、作者、发表时间...”找出其中的关键属性,对于C1来说,“作者”与“发表时间”是其关键属性。同理其他类的关键属性也是从题干中找答案。(3).在该系统的开发过程中遇到了新的要求:用户能够在系统中对其所关注的数字资源注册他引通知,若该资源的他引次数发生变化,系候可以及时通知该用户,为了实现这个新的要求,可以在图2所系的类图中增加哪种设计模式?用150字以内文字解释选择该模式的原因。(分数:0.33)__________________________________________________________________________________________

正确答案:(观察者模式。观察者模式定义对象间的一对多的关系关系,当一个对象的对象状态发生改变时,所有依赖于它的对象都得到通知并自动更新。符合系统需求。)解析:二、填空题(总题数:2,分数:40.00)4.阅读下列说明和java代码。将应填入(n)处的字句写在答题纸的对应栏内。【说明】在某系统中,类interval代表由下界(lower

bound)和上界(upper

bound)定义的区间。要求采用不同的格式显示区间范围。如【lower

bound.upper

bound】;【lower

bound...upper

bound】;【lower

bound-upper

bound】等现采用策略(strategy)模式实现该要求,得到如图5-1所示的类图。

【java代码】enumTYPE{COMMA,DOTS,LINE}

interfacePrintStrategy{

Public

(1)

;}classInterval{

privatedoublelowerBound;

privatedoubleupperBound;

publicInterval(doublepLower,doublepUpper){

lowerBound=pLower;

upperBound=pUpper;

}

publicvoidprintInterval(PrintStrategyps){

(2)

;

}

publicdoublegetLower(){

returnlowerBound;

}

publicdoublegetUpper(){

returnupperBound;

}}classPrintIntervalLineimplementsPrintStrategy{

publicvoiddoPrint(Intervalval){

System.out.println("["+val.getLower()+"-"+val.getUpper()+"]");

}}classPrintIntervalDotsimplementsPrintStrategy{

publicvoiddoPrint(Intervalval){

System.out.println("["+val.getLower()+"..."+val.getUpper()+"]");

}}classPrintIntervalCommaimplementsPrintStrategy{

publicvoiddoPrint(Intervalval){

System.out.println("["+val.getLower()+","+val.getUpper()+"]");

}}ublicclassClient{

publicstaticPrintStrategygetStrategy(TYPEtype){

PrintStrategyst=null;

switch(type){

caseCOMMA:

(3)

break;

caseDOTS:

(4)

;

break;

caseLINE:

(5)

;

break;

}

returnst;

}

publicstaticvoidmain(String[]args){

Intervalinterval=newInterval(1.7,2.1);

interval.printInterval(getStrategy(TYPE.COMMA));

interval.printInterval(getStrategy(TYPE.DOTS));

interval.printInterval(getStrategy(TYPE.LINE));

}}

(分数:20.00)填空项1:__________________

(正确答案:(1)void

doPrint

(interval

val)(2)ps.doPrint(this)(3)st=

new

printintervalComma()(4)st=

new

prinIntervalDots()(5)st

=

new

printIntervalLine())解析:1、第1个空,根据interface判断,这是一个接口的定义,其中的方法为抽象方法,那么就要找具体实现这个接口的类,用它的方法来推断接口所定义的方法。根据“classPrintIntervalLineimplementsPrintStrategy”我们发现类PrintIntervalLine是对接口PrintStrategy的一个实现,这个类只有一个方法publicvoiddoPrint(Intervalval){.....}那么接口PrintStrategy必定要对doPrint进行定义抽象方法。推断出第一个空的答案为:voiddoPrint(intervalval)注意题目写好“;”此处不用再加。2、第二个空:补充方法printInterval的中具体的逻辑,入参为PrintStrategyps,我们先找哪个地方调用了这个类。我们发现在main方法中interval.printInterval(getStrategy(TYPE.COMMA));有调用getStrategy(TYPE.COMMA)的返回值是一个PrintStrategy的实现类的一个对象(不同的入参对应的对象不同)。这3个实现类都有下图的实现方法。那么我们推断,入参ps调用它的方法pr.doPrint(this);

注意printInterval方法的入参是它所在的类本身,所以doPrint方法中要写参数this代表这个类的对象自身2、第3-5空:switch是循环,case若与后面的值相等则执行下面的语句。此处给了3种情况,并且声明了一个空对象:PrintStrategyst=null;而最后方法返回了这个对象,我们知道return是不能返回null的,这3个空必然是对st进行赋值。根据上下文,COMMA要返回PrintIntervalComma类的对象,DOTS要返回PrintIntervalDots类的对象,LINE要返回PrintIntervalLine的对象,得出以下答案。new是java中对对象进行实例化。st=newprintintervalscomma()st=newprinIntervalsDots()st=newprintIntervalsLine()5.阅读下列说明和C++代码。将应填入(n)处的字句写在答题纸的对应栏内。【说明】在某系统中,类interval代表由下界(lower

bound)和上界(upper

bound)定义的区间。要求采用不同的格式显示区间范围。如【lower

bound.upper

bound】;【lower

bound...upper

bound】;【lower

bound-upper

bound】等现采用策略(strategy)模式实现该要求,得到如图6-1所示的类图。【C++代码】#include<iostream>usingnamespacestd;class

Print

strategy{

Public:

(1)

;}

class

Interval{

Private:

double

lower

Bound;

double

upper

Bound;Public:

Interval(double

P_lower,double

P_upper){

lower

Bound=P_lower;

upper

Bound=P_upper;}

void

Print

Interval

(Print

strategy*prt){

(2);}double

get

lower(){

return

lower

Bound}

double

get

upper{

return

upper

Bound}

}class

Print

IntervalsComma:Public

Prints

Strategy{

public:

void

doPrint(Interval

*val){

cout《“["《val→get

Lower()《“,”《val(→getupper()《“]”《

endl;}};class

P

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论