软件设计师-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的名称。

问题2 (4分)

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

问题3 (4分)

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

问题4 (3分)

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

试题二 (15分)

说明

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

概念模型设计

根据现阶段的信息,设计的实体联系图(不完整)如图2-1所示。
在这里插入图片描述

需求描述

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

逻辑结构设计

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

问题1 (4分)

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

问题2 (4分)

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

问题3 (7分)

该汽车公司现新增如下需求:记录车型在全国门店的销售情况,门店信息包括门店的编号,地址和电
话,销售包括销售数量和销售日期等对原有设计进行以下修改以实现该需求:
(1)在图1中体现门店信息及其车型销售情况、并标明新增的实体和联系,及其核心属性。
(2)给出新增加的关系模式,并标注主键和外键完整性约束。

试题三 (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所对应的类名。

问题2 (5分)

根据说明中的描述,给出图2的类C1-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 * ps) {
      (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;
}

试题六 (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 ps) {
      (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));
  }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/354954.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

opencv学习二值分析

内容来源于《opencv4应用开发入门、进阶与工程化实践》 二值分析&#xff1a; 常见的二值化方法&#xff1a; 基于全局阈值&#xff08;threshold&#xff09;得到的二值图像&#xff1b;基于自适应阈值&#xff08;adaptiveThreshold&#xff09;得到的二值图像&#xff1…

【数据分析】numpy基础第三天

前言 本文只会讲解最常用的加、减、乘、除&#xff0c;点乘&#xff08;或叫矩阵乘法&#xff09;、还有广播机制。 本文代码 链接提取码&#xff1a;1024 第1部分&#xff1a;基础数学计算 使用NumPy进行基本的数学运算是十分直观和简单的。下面我们将展示一些基本的加、…

幻兽帕鲁服务器怎么收费?4核16G配置

幻兽帕鲁服务器价格多少钱&#xff1f;4核16G服务器Palworld官方推荐配置&#xff0c;阿里云4核16G服务器32元1个月、96元3个月&#xff0c;腾讯云换手帕服务器服务器4核16G14M带宽66元一个月、277元3个月&#xff0c;8核32G22M配置115元1个月、345元3个月&#xff0c;16核64G3…

C# 实现 gRPC 服务和调用

写在前面 gRPC 是一种与语言无关的高性能远程过程调用 (RPC) 框架。 主要优点如下&#xff1a; 1.高性能轻量化。 2.协议优先的 API 定义模式&#xff0c;默认使用协议缓冲区&#xff0c;允许与语言无关的实现。 3.可用于多种语言的工具&#xff0c;以生成强类型服务器和客户…

flutter 搜索框实现,键盘搜索按钮,清空,防抖

import package:flutter/material.dart; import package:flutter_screenutil/flutter_screenutil.dart; import package:flutter_svg/svg.dart; import package:sy_project/config/app_colors.dart; import package:sy_project/core/assets.dart;/// 搜索textview class Custom…

cmake-find_package链接第三方库

文章目录 基本调用形式和模块模式使用方式 之前我们是使用了绝对路径来链接OpenCV第三方库&#xff0c;但是现在很多库一般会自己写一些cmake文件提供给用户&#xff0c;用户可以直接使用其中的内置变量即可。使用的命令就是find_package。 基本调用形式和模块模式 find_packa…

类和对象(1)

引入 我们在c语言阶段使用的struct其实与类很相似。所以c兼容c语言结构体struct的用法&#xff0c;同时升级成了类。但为了区分&#xff0c;我们用class来定义类&#xff0c;但是结果提也是可以的。 class 类名 {//private: //public: 访问限定符 //protected://成员函…

AI开启手机摄影新时代:三星Galaxy S24 Ultra影像解读

在全球科技领域&#xff0c;生成式AI无疑是当前最为炙手可热的亮点&#xff0c;不少行业专家和业界领袖都纷纷预言&#xff0c;生成式AI技术必将重塑千行百业。 那么是否有人想过&#xff0c;如果生成式AI技术被应用在智能手机上&#xff0c;又会带来怎样翻天覆地的变革&#x…

【electron】安装网络问题处理

目录 场景排查问题排查结论electron 安装失败解决方案 新的问题electron-builder 打包失败处理 场景 在mac上使用electron进行代码开发的时候&#xff0c;无法正常下载与electron、electron-builder相关的依赖 排查问题 是不是因为没有翻墙导致资源无法下载是不是没有设置正…

【揭秘】RecursiveTask全面解析

内容概要 RecursiveTask的优点在于能够将复杂任务递归分解为更小的子任务&#xff0c;从而提高处理效率&#xff0c;通过ForkJoinPool执行&#xff0c;RecursiveTask能充分利用多核处理器资源&#xff0c;实现任务的并行化处理&#xff0c;大大加快了计算速度&#xff0c;此外…

数据结构-顺序表的实现 [王道]

本博客记录个人寒假学习内容。此篇博客内容为 顺序表的定义。 博客中截图来自王道数据结构公开课 目录 顺序表的定义 顺序表的特点 顺序表的实现--静态分配 顺序表的实现--动态分配 顺序表的定义--知识结构框架 顺序表的定义 >线性表是具有相同(每个数据元素所占的空间…

win11设置mysql开机自启

目录 命令式 1、打开命令提示符或 PowerShell&#xff1a; 2、使用管理员权限运行命令行工具&#xff1a; 3、设置 MySQL 服务为开机自启动&#xff1a; 4、启动 MySQL 服务&#xff1a; 5、 验证设置是否生效&#xff1a; 操作视图式 1、右击任务栏 ---> 选择任务管…

南京观海微电子---如何减少时序报告中的逻辑延迟

1. 引言 在FPGA逻辑电路设计中&#xff0c;FPGA设计能达到的最高性能往往由以下因素决定&#xff1a; ▪ 工作时钟偏移和时钟不确定性&#xff1b; ▪ 逻辑延迟&#xff1a;在一个时钟周期内信号经过的逻辑量&#xff1b; ▪ 网络或路径延迟&#xff1a;Vivado布局布线后引…

服务攻防-开发框架安全SpringBootStruts2LaravelThinkPHPCVE复现

知识点&#xff1a; 1、PHP-框架安全-Thinkphp&Laravel 2、J2EE-框架安全-SpringBoot&Struts2 章节点&#xff1a; 1、目标判断-端口扫描&组合判断&信息来源 2、安全问题-配置不当&CVE漏洞&弱口令爆破 3、复现对象-数据库&中间件&开发框架&am…

深入理解TCP网络协议(1)

目录 1.TCP协议的段格式 2.TCP原理 2.1确认应答 2.2超时重传 3.三次握手(重点) 4.四次挥手 1.TCP协议的段格式 我们先来观察一下TCP协议的段格式图解: 源/目的端口号:标识数据从哪个进程来,到哪个进程去 32位序号/32位确认号:TCP会话的每一端都包含一个32位&#xff08…

力扣hot100 每日温度 单调递减栈

Problem: 739. 每日温度 文章目录 思路复杂度&#x1f49d; 单调栈 思路 &#x1f469;‍&#x1f3eb; 参考题解 复杂度 ⏰ 时间复杂度: O ( n ) O(n) O(n) &#x1f30e; 空间复杂度: O ( n ) O(n) O(n) &#x1f49d; 单调栈 class Solution {public int[] dailyTem…

【人工智能】反向传播算法及梯度下降法

反向传播算法 反向传播算法英文简称为BP&#xff0c;其基本思想是逐一地由样本集中的样本计算出实际输出和误差测度&#xff0c;通过误差测度对权重序列进行调整&#xff0c;重复这个循环&#xff0c;直到误差降至最低。 步骤&#xff1a;用输出层的误差调整输出层权值矩阵&am…

阿里云1分钟成功搭建幻兽帕鲁服务器,Palworld开黑不卡

如何自建幻兽帕鲁服务器&#xff1f;基于阿里云服务器搭建幻兽帕鲁palworld服务器教程来了&#xff0c;一看就懂系列。本文是利用OOS中幻兽帕鲁扩展程序来一键部署幻兽帕鲁服务器&#xff0c;阿里云百科aliyunbaike.com分享官方基于阿里云服务器快速创建幻兽帕鲁服务器教程&…

C++11(中):智能指针

智能指针 1.内存泄漏1.1内存泄漏的概念以及危害1.2内存泄漏的场景1.3如何避免内存泄漏 2.智能指针的使用及原理2.1RAII2.2智能指针的原理2.3 std::auto_ptr2.4 定制删除器2.5 std::unique_ptr2.6 std::shared_ptr2.7 std::weak_ptr2.7.1 std::shared_ptr的循环引用2.7.2 循环引…

go语言(二十一)---- channel的关闭

channel不像文件一样需要经常去关闭&#xff0c;只有当你确实没有任何发送数据了&#xff0c;或者你想显示的结束range循环之类的&#xff0c;才去关闭channel。关闭channel后&#xff0c;无法向channel再发送数据&#xff0c;&#xff08;引发pannic错误后&#xff0c;导致接收…