image

编辑人: 浅唱

calendar2025-06-15

message7

visits243

2023年5月软件设计师 下午题参考答案

一、[材料型]问答题

试题一(15分)

  阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。

[说明]

随着农业领域科学种植的发展,需要对农业基地及农事进行的信息化管理,为租户和农户等人员提供种植相关服务,现欲开发农事管理服务平台。其主要功能是:

1.人员管理。平台管理员管理租户;租户管理农户并为其分配负责的地块,租户和农户以人员类型区分

2.基地管理。租户填写基地名称、地域等描述信息,在显示的地图上绘制地块。

3.种植管理。租户设定作物及其从种植到采收的整个农事过程,包括农事活动及其实施计划,农户根据相应农事过程提醒进行农事活动并记录。系统会在设定时间向农户进行农事提醒,对逾期未实施活动向租户发出逾期告警。

4.投入品管理。租户统一维护化肥,杀虫剂等投入品信息,农户在农事活动中设定投入品的实际消耗。

5.信息服务。用户按查询条件发起农事信息请求,对相关地块农事活动实施情况(如与农事过程比对)等农事信息进行筛选、对比和统计等处理,并将响应信息进行展示。系统也给其他第三方软件提供APP接口,通过接口访问的方式,提供账号,密码和查询条件发起农事信息请求,返回特定格式的农事信息,无查询条件时默返回账号下所有信息,多查询条件时返回满足全部条件的信息。

现采用结构化方法对农事管理服务平台进行分析与设计,获得如图1-1所示的上下文数据流图和图1-2所示的0层数据流图。

1、[问题1] (4分)

  使用说明中的词语,给出图1-1中实体E1~E4的名称。


参考答案:

[问题1](4分)

E1:平台管理员

E2:农户

E3:租户

E4:第三方软件



试题一(15分)

  阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。

[说明]

随着农业领域科学种植的发展,需要对农业基地及农事进行的信息化管理,为租户和农户等人员提供种植相关服务,现欲开发农事管理服务平台。其主要功能是:

1.人员管理。平台管理员管理租户;租户管理农户并为其分配负责的地块,租户和农户以人员类型区分

2.基地管理。租户填写基地名称、地域等描述信息,在显示的地图上绘制地块。

3.种植管理。租户设定作物及其从种植到采收的整个农事过程,包括农事活动及其实施计划,农户根据相应农事过程提醒进行农事活动并记录。系统会在设定时间向农户进行农事提醒,对逾期未实施活动向租户发出逾期告警。

4.投入品管理。租户统一维护化肥,杀虫剂等投入品信息,农户在农事活动中设定投入品的实际消耗。

5.信息服务。用户按查询条件发起农事信息请求,对相关地块农事活动实施情况(如与农事过程比对)等农事信息进行筛选、对比和统计等处理,并将响应信息进行展示。系统也给其他第三方软件提供APP接口,通过接口访问的方式,提供账号,密码和查询条件发起农事信息请求,返回特定格式的农事信息,无查询条件时默返回账号下所有信息,多查询条件时返回满足全部条件的信息。

现采用结构化方法对农事管理服务平台进行分析与设计,获得如图1-1所示的上下文数据流图和图1-2所示的0层数据流图。

2、[问题2] (4分)

  使用说明中的词语,给出图1-2中的数据存储D1-D4 的名称。


参考答案:

D1:用户信息表

D2:基地及地块信息表

D3:农事过程表

D4:农事活动表



试题一(15分)

  阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。

[说明]

随着农业领域科学种植的发展,需要对农业基地及农事进行的信息化管理,为租户和农户等人员提供种植相关服务,现欲开发农事管理服务平台。其主要功能是:

1.人员管理。平台管理员管理租户;租户管理农户并为其分配负责的地块,租户和农户以人员类型区分

2.基地管理。租户填写基地名称、地域等描述信息,在显示的地图上绘制地块。

3.种植管理。租户设定作物及其从种植到采收的整个农事过程,包括农事活动及其实施计划,农户根据相应农事过程提醒进行农事活动并记录。系统会在设定时间向农户进行农事提醒,对逾期未实施活动向租户发出逾期告警。

4.投入品管理。租户统一维护化肥,杀虫剂等投入品信息,农户在农事活动中设定投入品的实际消耗。

5.信息服务。用户按查询条件发起农事信息请求,对相关地块农事活动实施情况(如与农事过程比对)等农事信息进行筛选、对比和统计等处理,并将响应信息进行展示。系统也给其他第三方软件提供APP接口,通过接口访问的方式,提供账号,密码和查询条件发起农事信息请求,返回特定格式的农事信息,无查询条件时默返回账号下所有信息,多查询条件时返回满足全部条件的信息。

现采用结构化方法对农事管理服务平台进行分析与设计,获得如图1-1所示的上下文数据流图和图1-2所示的0层数据流图。

3、[问题3] (4分)

 根据说明和图中术语,补充图1-2中缺失的数据流及其起点和终点。


参考答案:


试题一(15分)

  阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。

[说明]

随着农业领域科学种植的发展,需要对农业基地及农事进行的信息化管理,为租户和农户等人员提供种植相关服务,现欲开发农事管理服务平台。其主要功能是:

1.人员管理。平台管理员管理租户;租户管理农户并为其分配负责的地块,租户和农户以人员类型区分

2.基地管理。租户填写基地名称、地域等描述信息,在显示的地图上绘制地块。

3.种植管理。租户设定作物及其从种植到采收的整个农事过程,包括农事活动及其实施计划,农户根据相应农事过程提醒进行农事活动并记录。系统会在设定时间向农户进行农事提醒,对逾期未实施活动向租户发出逾期告警。

4.投入品管理。租户统一维护化肥,杀虫剂等投入品信息,农户在农事活动中设定投入品的实际消耗。

5.信息服务。用户按查询条件发起农事信息请求,对相关地块农事活动实施情况(如与农事过程比对)等农事信息进行筛选、对比和统计等处理,并将响应信息进行展示。系统也给其他第三方软件提供APP接口,通过接口访问的方式,提供账号,密码和查询条件发起农事信息请求,返回特定格式的农事信息,无查询条件时默返回账号下所有信息,多查询条件时返回满足全部条件的信息。

现采用结构化方法对农事管理服务平台进行分析与设计,获得如图1-1所示的上下文数据流图和图1-2所示的0层数据流图。

4、[问题4](3分)根据说明,根据说明,给出"农事信息请求"数据流的组成。


参考答案:

农事活动信息、农事过程信息、地块信息



试题二(15分)

  按照下列图表,填写答题纸的对应栏内。

【说明】

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

【概念结构设计】

【需求描述】

(1)记录供应商的信息,包括供应商的名称,地址和一个电活

(2)记录零件的信息,包括零件的编码、名称和价格。

(3)纪录车型信息,包括车型的编号,名称和规格。

(4)记录零件采购信息,某个车型的某种零件可以从多家供应商采购,某种零件也可以被多个车型采用,

某家供应商也可以供应多种零件,还包括采购数量和采购日期。

【逻辑结构设计】

根据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整)

供应商(名称,地址,电话)

零件(编码,名称,价格)

车型(编号,名称,规格)

采购(车型编号,供应商名称,(a),(b),采购日期)


5、[问题1] (4分)

  根据问题描述,补充图2-1的实体联系图(不增加新的实体)。

参考答案:


试题二(15分)

  按照下列图表,填写答题纸的对应栏内。

【说明】

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

【概念结构设计】

【需求描述】

(1)记录供应商的信息,包括供应商的名称,地址和一个电活

(2)记录零件的信息,包括零件的编码、名称和价格。

(3)纪录车型信息,包括车型的编号,名称和规格。

(4)记录零件采购信息,某个车型的某种零件可以从多家供应商采购,某种零件也可以被多个车型采用,

某家供应商也可以供应多种零件,还包括采购数量和采购日期。

【逻辑结构设计】

根据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整)

供应商(名称,地址,电话)

零件(编码,名称,价格)

车型(编号,名称,规格)

采购(车型编号,供应商名称,(a),(b),采购日期)


6、[问题2] (4分)

  补充逻辑结构设计结果中的(a)(b)两处空缺,并标注主键和外健完整性约束。


参考答案:

(a)零件编码(b)采购数量,主键是车型编号、供应商名称、零件编号的联合主键、采购日期。外

键是车型编号、供应商名称、零件编号。


试题二(15分)

  按照下列图表,填写答题纸的对应栏内。

【说明】

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

【概念结构设计】

【需求描述】

(1)记录供应商的信息,包括供应商的名称,地址和一个电活

(2)记录零件的信息,包括零件的编码、名称和价格。

(3)纪录车型信息,包括车型的编号,名称和规格。

(4)记录零件采购信息,某个车型的某种零件可以从多家供应商采购,某种零件也可以被多个车型采用,

某家供应商也可以供应多种零件,还包括采购数量和采购日期。

【逻辑结构设计】

根据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整)

供应商(名称,地址,电话)

零件(编码,名称,价格)

车型(编号,名称,规格)

采购(车型编号,供应商名称,(a),(b),采购日期)


7、[问题3] (7分)

该汽车公司现新增如下需求:记录车型在全国门店的销售情况,门店信息包括门店的编号,地址和电

话,销售包括销售数量和销售日期等对原有设计进行以下修改以实现该需求:

(1)在图1中体现门店信息及其车型销售情况、并标明新增的实体和联系,及其核心属性。

(2)给出新增加的关系模式,并标注主键和外键完整性约束。

参考答案:第一问:

(2)门店(编号,地址,电话)主键:编号 外键:无

销售(门店编号,车型编号,销售数量,销售日期)主键:门店编号,车型编号 外键:门店编号,车型编号


试题三(15分)

阅读下列说明和图,回答问题1至问题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所示的初始类图。

8、[问题1](6分)

根据说明中的描述,给出图3-2中的C1-C8所对应的类名。


参考答案:

C1:Resource或学术资源

C2:Conference Paper或会议论文

C3:Journal Article或期刑论文

C4:Thesis或学位

C5:User或系统用户

C6:Student或在校学生

C7:Teacher或教师

C8:Staff或其他在职人员

C6-C8顺序不限


试题三(15分)

阅读下列说明和图,回答问题1至问题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所示的初始类图。

9、[问题2](5分)

根据说明中的描述,给出图2的类C1-C4的关键属性。


参考答案:

C1的关键属性:学术资源的题目、作者、发表时间、来源、被引用次数、下载次数

C2的关键属性:会议名称、召开时间、召开地点

C3的关键属性:出版月份、期号、主办单位

C4的关键属性:学位类别、毕业学校、专业、指导教师



试题三(15分)

阅读下列说明和图,回答问题1至问题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所示的初始类图。

10、[问题3](4分)

在该系统的开发过程中遇到了新的要求:用户能够在系统中对其所关注的数字资源注册他引通知,若该资源的他引次数发生变化,系候可以及时通知该用户,为了实现这个新的要求,可以在图2所系的类图中增加哪种设计模式?用150字以内文字解释选择该模式的原因。

参考答案:

观察者模式

观察者模式定义对象间的一对多的关系关系,当一个对象的对象状态发生改变时,所有依赖于它的对象都得到通知并自动更新。符合系统需求。



二、填空题

阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内

【说明】

在某系统中,类interval代表由下界(lower bound)和上界(upper bound)定义的区间。要求采用不同的格式显示区间范围。如【lower bound.upper bound】;【lower bound...upper bound】;【lower bound-upper bound】等现采用策略(strategy)模式实现该要求,得到如图5-1所示的类图。


【Java代码】

import Java.util

enum

 TYPE{commA,Dots,LINE}

interface print strategy

Public(1);


class Inreval{

引用试题六此处的代码

}

Public double get lower {return lover...}

Public double get upper {return lover...}


class print intervals comma implements print strategy{

 Public void do print (interval Val){

   system. out.printin("I" +val(.get lower()+","+val.get upper()+"I";

}

}

 class print Intervals Dots imp...... Print strategy{

  public void do print (interval val){

system.out.print(a("I" +val.get lower()+"..."+val(......);

}

}

class Print Intervals Line imp......Print......gy{

  Public·static Print·Strategy get strategy (TYPE){

                                                                    type

Print Strategyst=null,

switch(type){

 case COMMA:

(3);

           br....;

 case DoTs:

 (4);

           br....;

 case LINE:

 (5);

           br....;

   Public static void main{STIxx}{

   Interaala=new...(1.7.2.1)

 a.print Interval(get strategy(

TYPE.   .COMMA)):

......(TYPE.Dots)):

......(TYPE.LINE)):

 }

}

11、试题五(15分)

阅读下列说明和java代码。将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

在某系统中,类interval代表由下界(lower bound)和上界(upper bound)定义的区间。要求采用

不同的格式显示区间范围。如【lower bound.upper bound】;【lower bound...upper bound】;【lower bound-upper bound】等现采用策略(strategy)模式实现该要求,得到如图5-1所示的类图。

【java代码】

enum TYPE { COMMA, DOTS, LINE }


interface PrintStrategy {

     Public       (1)  ;

}

class Interval {

    private double lowerBound;

    private double upperBound;


    public Interval(double pLower, double pUpper) {

        lowerBound = pLower;

        upperBound = pUpper;

    }


    public void printInterval(PrintStrategy ps) {

               (2)  ;

    }


    public double getLower() {

        return lowerBound;

    }


    public double getUpper() {

        return upperBound;

    }

}

class PrintIntervalLine implements PrintStrategy {

    public void doPrint(Interval val) {

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

    }

}

class PrintIntervalDots implements PrintStrategy {

    public void doPrint(Interval val) {

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

    }

}

class PrintIntervalComma implements PrintStrategy {

    public void doPrint(Interval val) {

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

    }

}

ublic class Client {

    public static PrintStrategy getStrategy(TYPE type){

        PrintStrategy st = null;

        switch (type) {

            case COMMA:

                      (3)  

                break;

            case DOTS:

                      (4)  ;

                break;

            case LINE:

                       (5)  ;

                break;

        }

        return st;

    }


    public static void main(String[] args) {

        Interval interval = new Interval(1.7, 2.1);

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

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

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

    }

}


A 正确

B 错误


12、试题六(15分)

阅读下列说明和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>

using namespace std;

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 Intervals Comma:Public Prints Strategy{

 public:

   void doPrint(Interval *val){

    cout《“["《val→get Lower()《“,”《val(→getupper()《“]”《

     endl;}

};

class Print Intervals Dots:Public Print Strategy{

 Public:

  void do Print (Interval*val){

   cout《"["《val→get Lower()《“...”《val→get upper()《]”《

    endl;}

};

class Print Intervals Line:Public Print Strategy{

 Public:

  Void do Print (Interval*val){

   cout《"["《val→get Lower()《“...”《val➡get upper()《“]”《

    endl;}

 enum TYPE { COMMA.DOTs.LINE}

Print strategy* get strategy (int type){

 Print strategy*st;

  switch (type){

   case COMMA:

(3);

   break;

  case Dots:

(4);

        break;
 case LINE:

(5);

   break;

 }

return st;

}

int main(){

 Interval a(1.7,2.1);

 a.Print Interval(get strategy(COMMA);

 a.Print Interval(get strategy(DoTs);

 a.Print Interval(get strategy(LINE);

}   return 0;


A 正确

B 错误


喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:2023年5月软件设计师 下午题参考答案

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share