软件设计师-23年上半年-下午答案

2024-02-01 11:36

本文主要是介绍软件设计师-23年上半年-下午答案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

软件设计师-23年上半年-下午答案

  • 更多软考资料 https://ruankao.blog.csdn.net/
  • 试题一、二、三、四必答,五、六二选一

试题一(15分)

说明

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

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

设计

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

上下文数据流图
0层数据流图

问题1 (4分)

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

E1:平台管理员
E2:农户
E3:租户
E4:第三方软件

问题2 (4分)

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

D1:用户信息表
D2:基地及地块信息表
D3:农事过程表
D4:农事活动表

问题3 (4分)

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

数据流名称起点终点
投入品实际消耗E2P4
地块信息D2P5
农事过程信息D3P5
农事活动信息D4P5

问题4 (3分)

根据说明,根据说明,给出"农事信息请求"数据流的组成。

农事信息请求 = 账号 + 密码 + 查询条件

试题二 (15分)

说明

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

需求描述

  1. 记录供应商的信息,包括供应商的名称,地址和一个电活
  2. 记录零件的信息,包括零件的编码、名称和价格。
  3. 纪录车型信息,包括车型的编号,名称和规格。
  4. 记录零件采购信息,某个车型的某种零件可以从多家供应商采购,某种零件也可以被多个车型采用,某家供应商也可以供应多种零件,还包括采购数量和采购日期。

概念模型设计

根据现阶段的信息,设计的实体联系图(不完整)如 图2-1 所示。
ER

逻辑结构设计

根据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整)
供应商(名称,地址,电话)
零件(编码,名称,价格)
车型(编号,名称,规格)
采购(车型编号,供应商名称,(a),(b),采购日期)

问题1 (4分)

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

ER

问题2 (4分)

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

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

问题3 (7分)

该汽车公司现新增如下需求:记录车型在全国门店的销售情况,门店信息包括门店的编号,地址和电话,销售包括销售数量和销售日期等对原有设计进行以下修改以实现该需求:

  1. 在 图2-1 中体现门店信息及其车型销售情况、并标明新增的实体和联系,及其核心属性。
  2. 给出新增加的关系模式,并标注主键和外键完整性约束。

ER

门店(门店编号,地址,电话)
销售(车型编号,门店编号,销售数量,销售日期)

试题三 (15分)

说明

某高校图书馆购买了若干学术资源的镜像数据库(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 (6分)

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

C1:Resoure
C2:ConferencePaper
C3:JounalArticle
C4:Thesis
C5:User
C6:Student
C7:Teacher
C8:Staff

问题2 (5分)

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

C1:题名、作者、发表时间、来源、被引次数、下载次数
C2:会议名称、召开时间、召开地点
C3:期刊名称、出版月份、期号、主办单位
C4:学位类别、毕业学校、专业、指导教师

问题3 (4分)

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

观察者模式,该模式适合当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新,符合问题描述中的当资源他引次数发生变化,便通知所有关注该资源的用户。

试题四 (15分)

阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。

说明

C代码

问题1 (8分)

问题2 (4分)

问题3 (3分)

试题五 (15分)

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

说明

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

#include <iostream>
using namespace std;
class PrintStrategy {public:(1);
};class Interval {private:double lowerBound;double upperBound;public:Interval(double pLower, double pUpper) {lowerBound = pLower;upperBound = pUpper;}void PrintInterval (PrintStrategy * ptr) {(2);}double getLower() {return lowerBound;}double getUpper() {return upperBound;}
};class PrintIntervalsLine : public PrintStrategy {public:void doPrint(Interval *val) {cout << val->getLower() << "-" << val->getUpper() << endl;}
};class PrintIntervalsDots : public PrintStrategy {public:void doPrint(Interval *val) {cout << val->getLower() << "..." << val->getUpper() << endl;}
};class PrintIntervalsComma : public PrintStrategy {public:void doPrint(Interval *val) {cout << val->getLower() << "." << val->getUpper() << endl;}
};enum TYPE { COMMA, DOTS, LINE};PrintStrategy* getStrategy (int type) {PrintStrategy* 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.PrintInterval(getStrategy(COMMA));a.PrintInterval(getStrategy(DOTS));a.PrintInterval(getStrategy(LINE));return 0;
}
1. virtual doPrint(Interval val) = 0;
2. ptr->doPrint(this);
3. st = new PrintIntervalsComma();
4. st = new PrintIntervalsDots();
5. st = new PrintIntervalsLine();

试题六 (15分)

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

说明

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

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 ptr) {(2);}public double getLower() {return lowerBound;}public double getUpper() {return upperBound;}
}
class PrintIntervalsLine implements PrintStrategy {public void doPrint(Interval val) {System.out.println("[" + val.getLower() + "-" + val.getUpper() + "]");}
}
class PrintIntervalsDots implements PrintStrategy {public void doPrint(Interval val) {System.out.println("[" + val.getLower() + "..." + val.getUpper() + "]");}
}
class PrintIntervalsComma implements PrintStrategy {public void doPrint(Interval val) {System.out.println("[" + val.getLower() + "," + val.getUpper() + "]");}
}public 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));}
}
1. void doPrint(Interval val); 或 abstract void doPrint(Interval val)
2. ptr.doPrint(this);
3. st = new PrintIntervalsComma();
4. st = new PrintIntervalsDots();
5. st = new PrintIntervalsLine();

这篇关于软件设计师-23年上半年-下午答案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/667162

相关文章

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

软件设计师备考——计算机系统

学习内容源自「软件设计师」 上午题 #1 计算机系统_哔哩哔哩_bilibili 目录 1.1.1 计算机系统硬件基本组成 1.1.2 中央处理单元 1.CPU 的功能 1)运算器 2)控制器 RISC && CISC 流水线控制 存储器  Cache 中断 输入输出IO控制方式 程序查询方式 中断驱动方式 直接存储器方式(DMA)  ​编辑 总线 ​编辑

poj 3104 二分答案

题意: n件湿度为num的衣服,每秒钟自己可以蒸发掉1个湿度。 然而如果使用了暖炉,每秒可以烧掉k个湿度,但不计算蒸发了。 现在问这么多的衣服,怎么烧事件最短。 解析: 二分答案咯。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <c

【STM32】SPI通信-软件与硬件读写SPI

SPI通信-软件与硬件读写SPI 软件SPI一、SPI通信协议1、SPI通信2、硬件电路3、移位示意图4、SPI时序基本单元(1)开始通信和结束通信(2)模式0---用的最多(3)模式1(4)模式2(5)模式3 5、SPI时序(1)写使能(2)指定地址写(3)指定地址读 二、W25Q64模块介绍1、W25Q64简介2、硬件电路3、W25Q64框图4、Flash操作注意事项软件SPI读写W2

系统架构设计师: 信息安全技术

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 系统架构设计师: 信息安全技术前言信息安全的基本要素:信息安全的范围:安全措施的目标:访问控制技术要素:访问控制包括:等保

免费也能高质量!2024年免费录屏软件深度对比评测

我公司因为客户覆盖面广的原因经常会开远程会议,有时候说的内容比较广需要引用多份的数据,我记录起来有一定难度,所以一般都用录屏工具来记录会议内容。这次我们来一起探索有什么免费录屏工具可以提高我们的工作效率吧。 1.福晰录屏大师 链接直达:https://www.foxitsoftware.cn/REC/  录屏软件录屏功能就是本职,这款录屏工具在录屏模式上提供了多种选项,可以选择屏幕录制、窗口

HomeBank:开源免费的个人财务管理软件

在个人财务管理领域,找到一个既免费又开源的解决方案并非易事。HomeBank&nbsp;正是这样一个项目,它不仅提供了强大的功能,还拥有一个活跃的社区,不断推动其发展和完善。 开源免费:HomeBank 是一个完全开源的项目,用户可以自由地使用、修改和分发。用户友好的界面:提供直观的图形用户界面,使得非技术用户也能轻松上手。数据导入支持:支持从 Quicken、Microsoft Money

PDF 软件如何帮助您编辑、转换和保护文件。

如何找到最好的 PDF 编辑器。 无论您是在为您的企业寻找更高效的 PDF 解决方案,还是尝试组织和编辑主文档,PDF 编辑器都可以在一个地方提供您需要的所有工具。市面上有很多 PDF 编辑器 — 在决定哪个最适合您时,请考虑这些因素。 1. 确定您的 PDF 文档软件需求。 不同的 PDF 文档软件程序可以具有不同的功能,因此在决定哪个是最适合您的 PDF 软件之前,请花点时间评估您的

java线程深度解析(一)——java new 接口?匿名内部类给你答案

http://blog.csdn.net/daybreak1209/article/details/51305477 一、内部类 1、内部类初识 一般,一个类里主要包含类的方法和属性,但在Java中还提出在类中继续定义类(内部类)的概念。 内部类的定义:类的内部定义类 先来看一个实例 [html]  view plain copy pu

梳理2024年,螺丝钉们爱用的3款剪辑软件

这年头,视频到处都是,就跟天上的星星一样数不清。不管你是公司里的新面孔,还是职场上的老狐狸,学会怎么剪视频,就好比找到了赢的秘诀。不管是给上司汇报工作,展示你的产品,还是自己搞点小视频记录生活,只要是剪辑得漂亮,肯定能一下子吸引大家的目光,让人记得你。咱们今天就来侃侃现在超火的三款视频剪辑工具,尤其是PR剪辑,你肯定听说过,这货在剪辑界可是大名鼎鼎,用它剪视频,既专业又麻利。 NO1. 福昕轻松