2023年上半年 软件设计师答案解析

3,199 阅读16分钟

 前言:2023年上半年软考已经落幕了,学长整理了一下软件设计师的题目以及个人理解的答案(仅供参考)希望能够帮助参加软考的各个小伙伴能够清晰的估分,希望大家都能通过考试~**

目录

                   2023年上半年 软件设计师 上午试卷

                   2023年上半年 软件设计师 下午试卷


全国计算机技术与软件专业技术资格(水平)考试

2023年上半年 软件设计师 上午试卷

(考试时间9:00~11:30共150分钟)

请按下述要求正确填写答题卡

1.在答题卡的指定位置上正确填写你的姓名和准考证号,并粘贴考生条形码。

2.本试卷的试题中共有75个空格,需要全部解答,每个空格1分,满分75分。

3.每个空格对应一个序号,有A、B、C、D四个选项,请选择一个最恰当的选项作为解答,在答题卡相应序号下填涂该选项。

4.解答前务必阅读例题和答题卡上的例题填涂样式及填涂注意事项。解答时用正规2B铅笔正确填涂选项,如需修改,请用橡皮擦干净,否则会导致不能正确评分。

(例题)

2023年上半年全国计算机技术与软件专业技术资格(水平)考试日期是(88)月(89)日。

(88)A. 3 B. 4 C. 5 D. 6

(89)A. 25 B. 26 C. 27 D. 28

因为考试日期是“5月27日”,故(88)选C,(89)选C,应在答题卡序号88下对C填涂,在序号89下对C填涂(参看答题卡)

计算机中,系统总线用于 (1) 连接。

(1)  A. 接口和外设 B. 运算器、控制器和寄存器

C. CPU、主存及外设部件 D. DMA控制器和中断控制器

在由高速缓存、主存和硬盘构成的三级存储体系中,CPU执行指令时需要读取数据,那么DMA控制器和CPU发出的数据地址是 (2) 。

(2)  A. 高速缓存地址 B. 主存物理地址

C. 硬盘的扇区地址 D. 虚拟地址

设信息位是8位,用海明码来发现并纠正1位出错的情况,则校验位的位数至少为 (3) 。

(3)  A. 1 B. 2 C. 4 D. 8

中断向量提供的是 (4) 。

(4)  A. 中断源的设备地址 B. 中断服务程序的入口地址

C. 传递数据的起始地址 D. 主程序的断点地址

计算机系统中,定点数常采用补码表示,以下关于补码表示的叙述中,错误的是 (5) 。

(5)  A. 补码零的表示是唯一的 B. 可以将减法运算转化为加法运算

C. 符号位可以与数值位一起参加运算 D. 与真值的对应关系简单且直观

设指令流水线将一条指令的执行分为取指、分析、执行三段,已知取指时间是2ns,分析时间是2ns,执行时间是1ns,则执行完1000条指令所需的时间为 (6) 。

(6) A. 1004ns B. 1998ns C. 2003ns D. 2008ns

在OSI参考模型中,负责对应用层消息进行压缩、加密功能的层次为 (7) 。

(7) A. 传输层 B. 会话层 C. 表示层 D. 应用层

在PKI体系中,由SSL / TSL实现HTTPS应用。浏览器和服务器之间用于加密HTTP消息的方式是 (8) ,如果服务器证书被撤销那么所产生的后果是 (9) 。

(8)  A. 对方公钥 + 公钥加密 B. 本方公钥 + 公钥加密

C. 会话密钥 + 公钥加密 D. 会话密钥 + 对称加密

(9)  A. 服务器不能执行加解密 B. 服务器不能执行签名

C. 客户端无法再信任服务器 D. 客户端无法发送加密信息给服务器

以下关于入侵防御系统功能的描述中,不正确的是 (10) 。

(10) A. 监测并分析用户和系统的网络活动

B. 匹配特征库识别已知的网络攻击行为

C. 联动入侵检测系统使其阻断网络攻击行为

D. 检测僵尸网络,木马控制等僵尸主机行为

Web应用防火墙无法有效保护 (11) 。

(11) A. 登录口令暴力破解 B. 恶意注册

C. 抢票机器人 D. 流氓软件

著作权中 (12) ,的保护期不受限制。

(12) A. 发表权 B. 发行权 C. 展览权 D. 署名权

国际上为保护计算机软件知识产权不受侵犯所采用的主要方式是实施 (13) 。

(13) A. 合同法 B. 物权法 C. 版权法 D. 刑法

以下关于计算机软件著作权的叙述中,不正确的是 (14) 。

(14) A. 软件著作权人可以许可他人行使其软件著作权,并有权获得报酬

B. 软件著作权人可以全部或者部分转让其软件著作权,并有权获得报酬

C. 软件著作权属于自然人的,该自然人死亡后,在软件著作权的保护期内,继承人

能继承软件著作权的所有权利

D. 为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软

件等使用软件的,可以不经软件著作权人许可,不向其支付报酬

以下关于数据流图基本加工的叙述中,不正确的是 (15) 。

(15) A. 对每一个基本加工,必须有一个加工规格说明

B. 加工规格说明必须描述把输入数据流变换为输出数据流的加工规则

C. 加工规格说明需要给出实现加工的细节

D. 决策树、决策表可以用来表示加工规格说明

以下关于好的软件设计原则的叙述中,不正确的是 (16) 。

(16) A. 模块化 B. 提高模块独立性

C. 集中化 D. 提高抽象层次

下图是一个软件项目的活动图,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,则里程碑 (17) 在关键路径上,关键路径长度为 (18) 。

编辑

(17) A. B B. E C. G D. I

(18) A. 15 B. 17 C. 19 D. 23

由8位成员组成的开发团队中,一共有 (19) 条沟通路径。

(19) A. 64 B. 56 C. 32 D. 28

对布尔表达式“a or ((b < c) and d)”求值时,当 (20) 时可进行短路计算。

(20) A. a为true B. b为true C. c为true D. d为true

设有正规式s = (0 | 10)*,则其所描述正规集中字符体的特点是 (21) 。

(21) A. 长度必须是偶数 B. 长度必须是奇数

C. 0不能连续出现 D. 1不能连续出现

设函数foo和hoo的定义如下图所示,在函数foo中调用函数hoo,hoo的第一个参数采用传引用方式(call by reerence),第二个参数传值方式(call by value),那么函数foo中的print(a, b)将输出 (22) 。

(22) A. 8, 5 B. 39, 5 C. 8, 40 D. 39, 40

某文件管理系统采用位示图(bitmap)来记录磁盘的使用情况,若计算机系统的字长为64位,磁盘容量为512GB,物理块的大小为4MB,那么位示图的大小为 (23) 个字。

(23) A. 1024 B. 2048 C. 4096 D. 9600

磁盘调度分为移臂调度和旋转调度两类,在移臂调度的算法中, (24) 算法可能会随时改变移动臂的运行方向。

(24) A. 单向扫描和先来先服务 B. 电梯调度和最短寻道时间优先

C. 电梯调度和最短寻道时间优先 D. 先来先服务和最短寻道时间优先

在支持多线程的操作系统中,假设进程P创建了T1、T2、T3线程,那么 (25) 。

(25) A. 该进程的代码段不能被T1、T2、T3共享

B. 该进程的全局变量只能被T1共享

C. 该进程中T1、T2、T3的栈指针不能被共享

D. 该进程中T1的栈指针可以被T2、T3共享

进程P1、P2、P3、P4、P5和P6的前趋图如下所示。

若用PV操作控制进程P1、P2、P3、P4、P5和P6并发执行的过程,需要设置信号量S1、S2、S3、S4、S5、S6、S7和S8,且信号量S1S8的初值都等于零。下面P1P6的进程执行过程中,空①和空②处应分别为 (26) ,空③和空④应分别为 (27) ,空⑤和空⑥应分别为 (28) 。

编辑

(26) A. P(S1)P(S2)和V(S3)V(S4) B. P(S1)P(S2)和V(S1)V(S2)

C. V(S3)V(S4)和P(S1)P(S2) D. V(S3)V(S4)和P(S2)P(S3)

(27) A. V(S5)和P(S4)P(S5) B. V(S3)和P(S4)V(S5)

C. P(S5)和V(S4)V(S5) D. P(S3)和P(S4)P(S5)

(28) A. V(S6)和V(S8) B. P(S6)和P(S7)

C. P(S6)和V(S8) D. P(S8)和P(S8)

以下关于增量模型优点的叙述中,不正确的是 (29) 。

(29) A. 能够在较短的时间提交一个可用的产品系统

B. 可以尽早让用户熟悉系统

C. 优先级高的功能首先交付,这些功能将接受更多的测试

D. 系统的设计更加容易

以下敏捷开发方法中, (30) 使用迭代的方法,把一段短的时间(如30天)的迭代称为一个冲刺,并按照需求优先级来实现产品。

(30) A. 极限编程(XP) B. 水晶法(Crystal)

C. 并列争求法(Scrum) D. 自适应软件开发(ASD)

若模块A通过控制参数来传递信息给模块B,从而确定执行模块B中的那部分语句。则这两个模块的耦合类型是 (31) 耦合。

(31) A. 数据 B. 标记 C. 控制 D. 公共

在设计中实现可移植性设计的规则不包括 (32) 。

(32) A. 将设备相关程序和设备无关程序分开设计

B. 可使用特定环境的专用功能

C. 采用平台无关的程序设计语言

D. 不使用依赖于某一平台的类库

以下关于管道—过滤器软件体系结构风格优点的叙述中,不正确的是 (33) 。

(33) A. 构件具有良好的高内聚、低耦合的特点

B. 支持软件复用

C. 支持并行执行

D. 适合交互处理应用

以下流程图中,至少需要 (34) 个测试用例才能覆盖所有路径。采用McCabe方法计算程序复杂度为 (35) 。

编辑

(34) A. 3 B. 4 C. 5 D. 6

(35) A. 2 B. 3 C. 4 D. 5

在软件系统交付给用户使用后,为了使用户界面更友好,对系统的图形输出进行改进,该行为属于 (36) 耦维护。

(36) A. 改正性 B. 适应性 C. 改善性 D. 预防性

采用面向对象方法开发学生成绩管理系统,学生的姓名、性别、出生日期、期末考试成绩、查看成绩操作均被 (37) 在学生对象中。系统中定义不同类,不同类的对象之间通过 (38) 进行通信。

(37) A. 封装 B. 继承 C. 多态 D. 信息

(38) A. 继承 B. 多态 C. 消息 D. 重载

对采用面向对象方法开发的系统进行测试时,通常从不同层次进行测试。测试类中定义的每个方法属于 (39) 层。

(39) A. 算法 B. 类 C. 模板 D. 系统

在面向对象系统设计中,如果重用了一个包中的某个类,那么就要重用该包中的所有类,这属于 (40) 原则。

(40) A. 共同封闭 B. 共同重用 C. 开放—封闭 D. 接口分离

以下关于UML序列图的描述是 (41) ,下图所示UML图中消息可能执行的顺序是 (42) 。

(41) A. 系统在它的周边环境的语境中所提供的外部可见服务

B. 某一时刻一组对象以及它们之间的关系

C. 系统内从一个活动到另一个活动的流程

D. 以时间顺序组织的对象之间的交互活动

(42) A. a→b→c→a→b B. c

C. a→b→a→b→c D. a→b→c→a→b→c

UML包图展现由模型本身分解而成的组织单元及其依赖关系,以下关于包图的叙述中,不正确的是 (43) 。

(43) A. 可以拥有类、接口构件、节点 B. 一个元素可以被多个包拥有

C. 一个包可以嵌套其他包 D. 一个包内元素不能重名

在某招聘系统中,要求实现求职简历自动生成功能。简历的基本内容包括求职者的姓名、性别、年龄及工作经历等。希望每份简历中的工作经历有所不同,并尽量减少程序中的重复代码。针对此需求,设计如下所示的类图。该设计采用了 (44) 模式,由xx示例指定创建对象的种类,声明一个复制自身的接口,并且通过复制这些Resume xx WorkExperience 的对象来创建新的对象。该模式属于 (45) 模式。

编辑

(44) A. 单例(Singleton) B. 抽象工厂(Abstract Factory)

C. 生成器(Builder) D. 原型(Prototype)

(45) A. 混合型 B. 行为型

C. 结构型 D. 创建型

某旅游公司欲开发一套软件系统,要求能根据季节,节假日等推出不同的旅行定价包,如淡季打折、一口价等。实现该要求适合采用 (46) 模式,该模式的主要意图是 (47) 。

(46) A. 策略模式(Strategy) B. 状态(State)

C. 观察者(Observer) D. 命令(Command)

(47) A. 将一个请求封装为对象,从而可以用不同的请求对客户进行参数化

B. 当一个对象的状态发生改变时,依赖于它的对象都得到通知并被自动更新

C. 允许一个对象在其内部状态改变时改变它的行为

D. 定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换

Python中采用于 (48) 原方法来获取一个对象的类型。

(48) A. str() B. type() C. id() D. object()

在Python语言中,语句x =  (49) 不能定义一个元组。

(49) A. (1, 2, 1, 2) B. 1, 2, 1, 2

C. tuple() D. (1)

关于Python语言的叙述中,不正确的是 (50) 。

(50) A. for语句可以用在序列(如列表、元组和字符串)上进行迭代访问

B. 循环结构如for和while后可以加else语句

C. 可以用if...else和switch...case语句表示选择结构

D. 支持嵌套循环

在数据库应用系统的开发过程中,开发人员需要通过视图层、逻辑层次上的抽象来对用户屏蔽系统的复杂性,简化用户与系统的交互过程。错误的是 (51) 。

(51) A. 视图层是最高层次的抽象

B. 逻辑层是比视图层更低一层的抽象

C. 物理层是最低层次的抽象

D. 物理层是比逻辑层更高一层的抽象

给定关系模式R(U, F),其中U为属性集,F是U上的一组函数,属于自反律的是 (52) 。

(52) A. 若Y∈X∈U,则X→Y为F所蕴含

B. 若X→Y,Y→Z,则X→Y为F所蕴含

C. 若X→Y,Z∈Y,则X→Z为F所蕴含

D. 若X→Y,X→Z,则X→YZ为F所蕴含

给定关系模式R(U, F),U = { A, B, C, D },函数依赖集F = { AB→C, CD→B }。关系模式R (53) ,主属性和非主属性个数分别为 (54) 。

(53) A. 只有1个候选关键字ACB B. 只有一个候选关键字BCD

C. 有2两个候选关键字ABD和ACD D. 有2两个候选关键字ACB和BCD

(54) A. 4 和 0 B. 3 和 1 C. 2 和 2 D. 1 和 3

如果将Students表的插入权限赋予用户User1,并允许其将该权限授予他人,那么正确的SQL语句如下:GRANT (55) TABLE Students TO User1 (56) 。

(55) A. INSERT B. INSERT ON C. UPDATE D. UPDATE ON

(56) A. FOR ALL B. PUBLIC

C. WITH GRANT OPTION D. WITH CHECK OPTION

利用栈对算术表达式10 * (40 – 30 / 5) + 20求值时,存放操作数的栈(初始为空)的容量至少为 (57) ,才能满足暂存该表达式中的运算数或运算结果的要求。

(57) A. 2 B. 3 C. 4 D. 5

设有5个字符,根据其使用频率为其构造哈夫曼编码。以下编码方案中 (58) 是不可能的。

(58) A. { 111, 110, 101, 100, 0 } B. { 0000, 0001, 001, 01, 1 }

C. { 11, 10, 01, 001, 000 } D. { 11, 10, 011, 010, 000 }

设有向图G具有n个顶点、e条弧,采用邻接表存储,则完成广度优先遍历的时间复杂度为 (59) 。

(59) A. O(n + e) B. O(n^2) C. O(e^2) D. O(n * e)

对某有序顺序表进行折半查找(二分查找)时,进行比较的关键字序列不可能是 (60) 。

(60) A. 42, 61, 90, 85, 77 B. 42, 90, 85, 61, 77

C. 90, 85, 61, 77, 42 D. 90, 85, 77, 61, 42

设由三棵树构成的森林中,第一棵树、第二棵树和第三棵树的结点总数分别为n1、n2和n3。将该森林转换为一颗二叉树,那么该二叉树的右子树包含 (61) 个结点。

(61) A. n1 B. n1 + n2 C. n3 D. n2 + n3

对一组数据进行排序,要求排序算法的时间复杂度为O(nlgn),且要求排序是稳定的,则可采用(62) 。算法。若要求排序算法的时间复杂度为O(nlgn),且在原数据上进行,即空间复杂度为O(1),则可以采用(63) 。算法。

(62) A. 直接插入排序 B. 堆排序

C. 快速排序 D. 归并排序

(63) A. 直接插入排序 B. 堆排序

C. 快速排序 D. 归并排序

采用Kruskal算法求解下图的最小生成树,采用的算法设计策略是 (64) 。该最小生成树的权值是 (65) 。

(64) A. 分治法 B. 动态规划 C. 贪心法 D. 回溯法

(65) A. 14 B. 16 C. 20 D. 32

www的控制协议是 (66) 。

(66) A. FTP B. HTTP C. SSL D. DNS

在Linux操作系统中通常使用 (67) 。作为Web服务器,其默认的Web目录为 (68) 。

(67) A. IIS B. Apache C. NFS D. MYSQL

(68) A. /etc/httpd B. /var/log/httpd C. /etc/home D. /home/httpd

SNMP的传输层协议是 (69) 。

(69) A. UDP B. TCP C. IP D. ICM

某电脑无法打开任意网页,但是互联网即时聊天软件使用正常。造成该故障的原因可能是 (70) 。

(70) A. IP地址配置错误 B. DNS配置错误 C. 网卡故障 D. 链路故障

Low-code and no code software development solutions have emerged as viable and convenient alternatives to the traditional development process.

Low-code is a rapid application development (RAD) approach that enables automated code generation through (71) building blocks like drag-and-drop and pull-down menu interfaces. This (72) allows low-code users to focus on the differentiator rather than the common denominator of programming. Low-code is a balanced middle ground between manual coding and no-code as its users can still add code over auto-generated code.

No-code is also a RAD approach and is often treated as a subset of the modular plug-and-play, low-code development approach. While in low-code there is some handholding done by developers in the form of scripting or manual coding, no-code has a completely (73) approach, with 100% dependence on visual tools.

A low-code application platform (LCAP) — also called a low-code development platform (LCDP) — contains an integrated development environment (IDE) with (74) features like APIs, code templates, reusable plug-in modules and graphical connectors to automate a significant percentage of the application development process. LCAPs are typically available as cloud-based Platform-as-a-Service (PaaS) solutions.

A low-code platform works on the principle of lowering complexity by using visual tools and techniques like process modeling, where users employ visual tools to define workflows, business rules, user interfaces and the like. Behind the scenes, the complete workflow is automatically converted into code. LCAPs are used predominantly by professional developers to automate the generic aspects of coding to redirect effort on the last mile of (75).

(71) A. visual B. component-based C. object-oriented D. structural

(72) A. block B. automation C. function D. method

(73) A. medern B. hands-off C. generic D. labor-free

(74) A. reusable B. built-in C. existed D. well-konwn

(75) A. delivery B. automation C. development D. success

全国计算机技术与软件专业技术资格(水平)考试

20 23 年上半年 软件设计师 下午试卷

(考试时间14:00~16:30共150分钟)

请按下述要求正确填写答题卡

1. 在答题纸的指定位置填写你所在的省、自治区、直辖市、计划单列市的名称。

2. 在答题纸的指定位置填写准考证号、出生年月日和姓名。

3. 答题纸上除填写上述内容外只能写解答。

4. 本试卷共6道题,试题一至试题四是必答题,试题五至试题六选答1道。每题15分,满分75分。

5. 解答时字迹务必清楚,字迹不清时,将不评分。

6. 仿照下面的例题,将解答写在答题纸的对应栏内。

(例题)

2023年上半年全国计算机技术与软件专业技术资格(水平)考试日期是(1)月(2)日。

因为正确的解答是“5月27日”,故在答题纸的对应栏内写上“5”和“27”(参看下表)。

例题解答栏
(1)5
(2)27

试题一(共1 5 分)

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

【说明】

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

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

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

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

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

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

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

【问题1】(4分)

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

【问题2】(4分)

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

【问题3】(4分)

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

【问题4】(3分)

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

试题二(共15分)

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

【说明】

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

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

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

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

(4)记录零件采购信息,某个车型的某种零件可以从多家供应商采购,某种零件也可以被多个车型采用,某家供应商也可以供应多种零件,还包括采购数量和采购日期。

【逻辑结构设计】

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

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

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

车型(编号.各称,规格)

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

【问题1】(5分)

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

【问题2】(3分)

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

【问题3】(7分)

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

对原有设计进行以下修改以实现该需求:

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

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

试题三(共15分)

某高校图书馆购买了若干学术资源的镜像数据库(MinorDBMino)资源,现要求开发一套数字图书馆(Digitallibrary)系统,面向校内用户(User)提供学术资源(Resoure)浏览,检索和下载服务系统的主要要求描述如下:

(1)系统中存储了每个镜像数据库的基本信息,包括:数据库名称,访问地址,数据库属性以及数据库简介等信息,用户进入某个镜像数据降后,可以浏览检索以及下载其中的学术资源。

(2)学术资源包括会议论文(ConferencePaper)、期刑论文(JounalArticle)以及学位(Thesis)等:系统中存储了每个学术资源的题名、作者、发表时间、来源(哪个镜像数据库)、被引次数、下载次数等信息。对于会议论文,还需记录会议名称,召开时间以及召开地点;同一次会议的论文被收录在会议集(Proceeding)中。对于期刊论文,还需记录期刊名称,出版月份,期号以及主办单位;同一期号的论文被收录在一本期刊(Edition)中。对于学位论文,记录了学位类别(博士/硕士):毕业学校,专业及指导教师。会议集包含发表在该会议(在某个特定时间段,特定地点召开)上的所有文章。期刊的每一期在特定时间发行,其中包含若干篇文章。

(3)系统用户(User)包括在校学生(Student),教师(Teacher)以及其他在职人员(Staff)。用户使用学校的统一身份认证登录系统后,使用系统提供的各项服务。

(4)系统提供多种资源检索的方式,主要包括:按照资源的题名检索(SearchbyTite),按照作者名称检票(SearchByAathor),按照来源检索(SearchBySource)等。

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

【问题1】(8分)

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

【问题2】(4分)

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

【问题3】(3分)

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

试题五(共1 5 分)

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

【说明】

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

图5-1略

【Java代码】

import Java.util.enum

TYPE{COMMA, Dots, LINE}

interface PrintStrategy{

public (1);

(1):void doPrint(interval val)

}

class Intervals{

//两个类成员变量=上下边界值

public void Intervals(double lower, double upper){

//初始化上下边界值

}

public double getLower {return lower...}

public double getUpper {return upper...}

public void printInterval (PrintStrategy pr){

(2);

}

}

class PrintIntervalsComma implements PrintStrategy{

public void doPrint (interval Val){

system.out.printin("["+val.getLower()+","+val.getUpper()+"]"}

}

class PrintIntervalsDots implements PrintStrategy{

public void do print (interval val){

system.out.printin("["+val(.getLower()+"..."+val.getUpper()+"]";}

}

class PrintIntervalsLine implements PrintStrategy{

public void do print (interval val){

system.out.print("["+val.getLower()+"-"+val.getUpper()+"]";}

}

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){

Intervals a = new Intervals(1.7, 2.1);

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

a.printInterval (getStrategy(TYPE.Dots));

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

}

下午题答案​: