2020年下半年软件设计师下午试题

 可以看看我的总结篇:软考-软件设计师总结_软考软件设计_Catherinemin的博客-CSDN博客

【试题一】工厂智能缺陷检测系统的数据流图

某工厂制造企业为了开发软件智能检测以有效提升检测效率,节约人力资源,该系统的主要功能是:

(1 )基础信息管理。管理员对检测标准和检测规则等基础信息设置。

(2)检测模型部署。 管理员对常用机器学习方法建立的检测模型分布。

(3 )图像采集。实时将检测多样的产品待检测建分存储,包括产品结构,生产时间,图像信号和产品图像。

( 4 )缺陷检测。根据检测模型和检测质量标准对图像采集所收到的产品检测信息中所有图像进行检测或所有图像检测合格。若一个产品出现一张图像检测不合格,就表示该产品不合格,对不合格产品,其检测结果包括,产品型号和不合格类型。

(5)质量检测。根据监控规则对产品质量进行监控将检测情况展示给检测业务员,若满足条件。向检测业务员发送质量检测,检测是质量发起远程控制部分,检测设备发送控制指令进行处理。

(6)模型监控。在系统中部署的模型、产品的检测信息结合基础信息进行监测分析,将模型运行情况发给监控人员

现采用结构化方法对智能检测系统,进行分析与设计,获得如图1-1的上下文数据流图和图1-2的数据流图。

 

[问题1]使用说明中的语句对图1-1中的实体E1~ E4的名称。

[问题2]使用说明中的语句对图1-2中的数据存储D1~D3的名称。

[问题3]根据注明和图中术语,补齐图1-2中缺失的数据及起点和终点。

[问题4]根据说明,采用结构化语言对缺陷检测的加工逻辑进行描述。

参考答案:
问题1
E1:检测设备;E2:管理员;E3:检测业务员;E4:监控人员 

问题2
D1:检测模型表;D2:检测信息表;D3:基础信息表

问题3
待测信息 P2——>P3
远程控制命令 E3——>P5
监控规则 D3——>P5
检测信息 D2——>P5
基础信息 D3——>P6

问题4

DO{
    检测所收到的所有图像;
    IF(出现一张图像检测不合格)
    THEN{
        返回产品不合格;
        不合格产品检测结果=产品型号+不合格类型;
    }ELSE{
        设置检测结果信息为合格
    }
    ENDIF
    给检测设备发送检测结果;
    检测设备剔除不合格产品; 
    }
ENDDO

【试题二】M集团业务管理需求的数据库设计

M集团拥有多个分公司,为了方便集团公司对各个分公司职员进行有效管理,集团公司决定构建一个信息平台以满足公司各项业务管理需求。

[需求分析]

1、分公司关系模式需要记录的信息包括公司编号、名称、经理号、可联系地址和电话分公司编号标记分公司关系模式中的每一个元组,每个分公司各有一名经理,负责分公司的管理工作,每个分公司设立仅为本分公司服务的多个业务部,业务部包括:研发部、财务部、采购部、交易部等。

2、业务部关系模式需要记录的信息包括业务部的编号、名称、地址、电话和分公司编号业务编号标记分公司关系模式中的每一个元素,每个业务部各有一名主管负责业务部的管理工作每个业务部有多名职员,每个职员只能来源于一个业务部。

3、职员关系模式需要记录的信息包括职员号、姓名、所属业务部编号、岗位、电话、家庭成员姓名和成员关系。其中职员、职员关系、岗位包括:经理、主管、研发员、业务员等。

[关系模式]

分公司(分公司编号、名称、(a)、 联系地址 )

业务部(业务部编号、名称、(b)、 电话)

职员(职员号、姓名、岗位、(c)、 电话、家庭成员姓名、关系)

[概念模拟设计]

[问题1]根据问题描述,补充4个联系,完善图2-1的实体联系图,联系名可用联系1、2、3和4代替 ,联系的类型为1 : 1、1 : n和m: n(或1 : 1、1: *和*:*)

[问题2]根据题意将以上关系模式中的空(a) ~ (c)的属性补充完整,并填入对应位置。

[问题3]

(1)分析分公司关系模式的主建和外键

(2)分析业务部关系模式的主建和外键

[问题4]在职员关系模式中,假设每个职员有多名家属成员,那么主要关系模式存在什么问题?应如何解决?

参考答案

问题1

 问题2
(a)经理号,电话
(b)地址,分公司编号,主管号
(c)所属业务部编号

问题3
分公司主键:分公司编号,外键:经理号
业务部主键:业务部编号,外键:分公司编号,主管号

问题4
在职员关系中,如果每个职员有多名家庭成员,会重复记录多条职员信息及对应家庭成员,为了区分各条记录,职员关系的主键需要设定为(职员号,家庭成员姓名),会产生数据冗余、插入异常、更新异常、删除异常等问题。
对职员关系模式进行拆分,职员1(职员号、姓名、岗位、所属业务部编号,电话);职员2(职员号,家庭成员姓名,关系)。

 【试题三】房产信息管理系统的用例图

【说明】某房产公司,欲开发一个房产信息管理系统,其主要功能描述如下:

1.公司销售的房产,分为住宅和公寓两类。针对房产,系统存储房产证明,地址,建造年份,建造面积,销售报价,房产照片以及销售状态(在售,售出,停售)等信息。对于公寓,还需存储是否有等信息。

2. 公司雇佣了多名房产经纪,负责销售房产,系统中需要存储房产经纪的基本信息,包括:姓名,家庭住址,联系电话,发起的起止时间等等。一套房产同一时间仅由一名房产经纪负责销售,系统中经济住房负责房产的起始时间和终止时间。

3.系统用户包括房产经纪和系统管理员,用户需经过系统身份验证之后,才能登录系统。房产经纪登录系统之后,可以录入负责销售的房产信息。但需要经过系统管理员的审批授权

4.系统管理员可以从系统中导出所有房产的信息列表,系统管理员定期将信息和销售的房产,进行归,若公司确定不再销售某套房产,系统管理员将房产信息从系统中删除。现采用面向对象方法开发该系统得到如图3-1所示的图例和3- 2所示的图。

 

[问题1]

(1)根据证明中描述,分别给图3-1中A1到A2所对应的名称以及U1到U3所对应的用例名称。

(2)根据证明中描述,分别给图3-1中(a)和(b)用例之间的关系。

[问题2]根据证明中描述,分别给图3-2中C1~C6所对应的用例名称。

[问题3]图3-2中AgentList是一个英文名称 ,用来进一步阐述C1和C6之间的关系 ,根据注明中的描述,绘出AgentList的主要属性。

参考答案:
问题1
(1)
A1:房产经纪;A2:系统管理员
U1:审批授权;U2:销售房产信息;U3:删除房产信息

(2)
(a)包含关系<<include>> 
(b): 泛化关系<<extend>>

问题2
C1: Property; C2: House; C3: Cando; C4:User; C5:Manager; C6:Agent

问题3
AgentList的主要属性有:房产经纪负责该房产的起始时间和结束时间

【试题四】希尔排序

【说明】

希尔排序算法又称最小增量排序算法,其基本思想是:

步骤1 :构造一个步长序列delta、deltak、 deltak ,其中delta1=n/2 ,后面的每个delta是前一个的1/2 , deltak=1;

步骤2 :根据步长序列、进行k趟排序;

步骤3 :对第i趟排序,根据对应的步长delta,将等步长位置元素分组,对同一组内元素在原位置上进行直接插入排序。

【C代码】

下面是算法的C语言实现。

(1)常量和变量说明

data:待排序数组data,长度为n,待排序数据记录在data[0]、data[1]、...、data[n-1]中。

n:数组a中的元素个数。

delta:步长数组。

(2)C程序

#include <stdio.h>
#include<stdlib.h>
/*
data:待排序数组data,长度为n,待排序数据记录在data[0]、data[1]、...、data[n-1]中。
n:数组a中的元素个数。
delta:步长数组。
*/

void shellsort1(int data[ ], int n){
    int *delta,k,i,t,dk,j;
    k=n;
    delta=(int *)malloc(sizeof(int)*(n/2));
    if(i=0)
        do{
            k=k/2 ; //填空1 
            delta[i++]=k;
        }while(k>1) ; //填空2
    i=0;
    while((dk=delta[i])>0){
        for(k=delta[i];k<n;++k)
        if( data[k]<data[k-dk] ) { //填空3
            t=data[k];
            for(j=k-dk;j>=0&&t<data[j];j-=dk){
                data[j+dk]=data[j];
            }/*for*/
        	data[j+dk]=t ; //填空4   
        }/*if*/
        ++i;
    }/*while*/
}


int main(){
	int data[10]={84,83,88,87,61,50,70,60,80,99};
	shellsort1(data,10);
	for(int i=0;i<10;i++)
		printf("%d ",data[i]);
	return 0;
}

[问题1]根据说明和c代码,填充c代码中的空(1) ~ (4)。

[问题2]根据说明和c代码,该算法的时间复杂度(5)0(n2) (小于、等于或大于)。该算法是否稳定(6)(是或否)。

[问题3]对数组(15、9、7、8、20、-1、 4)用希尔排序方法进行排序,经过第一趟排后得到的数组为(7)。

【参考答案】

(1)k=k/2 
(2)k>1 
(3)data[k]<data[k-dk] 
(4)data[j+dk]=k
(5)小于 
(6)否
(7)(4,9,-1,8,20,7,15)

【试题六】在线支付

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

[说明]在线支付是电子商务的一个重要环节,不同的电子商务平台提供不同的支付接口,现在需要给不同的商务平台的支付接口,使得客户在不同平台购物时, 不需要关系具体的支付接口。拟采用中介在( Mediator )设计模式来实现该需求,所设计的类图如图6-1所示

package test_2020_2;


interface WebServiceMediator{
    public void buy(double money,WebService service);//填空1
    public void SetAmazon(WebService amazon);
    public void SetEbay(WebService ebay);
}

abstract class WebService{
    protected WebServiceMediator mediator;//填空2
    public abstract void SetMediator(WebServiceMediator mediator);
    public abstract void buyService(double money);//填空3
    public abstract void search(double money);
}

class ConcreteMediator implements WebServiceMediator{

    private WebService amazon;
    private WebService ebay;

    public ConcreteMediator() {
        amazon = null;
        ebay = null;
    }


    @Override
    public void SetAmazon(WebService amazon) {
        this.amazon=amazon;
    }

    @Override
    public void SetEbay(WebService ebay) {
        this.ebay=ebay;
    }

    public void buy(double money,WebService service){
        if (service == amazon)
            amazon.search(money);
        else
            ebay.search(money);
    }
}

class Amazon extends WebService{

    @Override
    public void SetMediator(WebServiceMediator mediator) {
        this.mediator=mediator;
    }

    @Override
    public void buyService(double money) {
        mediator.buy(money,this);//填空4
    }

    @Override
    public void search(double money) {
        System.out.println("Amazon receive: "+money);
    }
}

class Ebay extends WebService{

    @Override
    public void SetMediator(WebServiceMediator mediator) {
        this.mediator=mediator;
    }

    @Override
    public void buyService(double money) {
        
    }

    @Override
    public void search(double money) {
        mediator.buy(money,this);//填空5
    }
}


public class WebServiceTest {
    public static void main(String[] args) {
        
    }
}

【参考答案】

(1) void buy(double money, WebService service)
(2) WebServiceMediator
(3) abstract void buyService(double money)
(4) mediator.buy(money, this)
(5) mediator.buy(money, this)
 

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 2020下半年软件设计师下午试题csdn是一套涵盖多个领域的考试题目。软件设计师是一项高级职业,职责包括独立或团队开发软件,设计技术方案,优化系统性能等。考试的目的是考察考生在工作中所需要的各种技能和能力。下面将从不同的领域来介绍试题内容: 一、计算机组成原理方面,试题涉及到计算机原理、算法、编程语言等高深技术,要求考生具有扎实的理论知识和实践经验。 二、操作系统方面,试题涉及到操作系统的原理、结构、进程管理、调度算法等,考察考生对操作系统的理解和应用能力。 三、数据库方面,试题要求掌握数据库的基本原理,熟练使用SQL语言操作数据库,能够设计关系型数据库。 四、软件工程方面,试题要求考生掌握软件开发的流程、方法和工具,有一定的项目管理经验。 五、网络通信方面,试题涉及到TCP/IP协议、路由技术、网络安全等知识,考核考生网络通信方面的能力。 总之,2020下半年软件设计师下午试题csdn要求考生具备深厚的计算机基础和实践经验,能够通过理论知识和实践应用展现综合能力,具有独立思考和解决问的能力,并能够在职业生涯中不断学习和进步。 ### 回答2: 2020下半年软件设计师下午试题csdn是一项重要的考试,其覆盖了软件设计涉及的多个领域,如软件工程、数据库等。 该考试旨在评估考生的专业知识、技能和应用能力,以确保其能够开发出稳定、高效和安全的软件解决方案。 考试包含两部分,分别为单项选择和主观。单项选择主要测试考生对基础理论的掌握程度,如编程语言、数据库知识等。主观则要求考生应用所学知识,完成具体的软件设计和开发任务。考试难度适中,具有一定的挑战性,需要考生具备扎实的基础知识和实践经验。 考生应该积极备考,在考试前充分了解型和考试重点,以提高自己的答能力和效率。同时,平常尽量积累实操经验,不断深入学习软件设计领域,提高自己的专业素养。 总之,2020下半年软件设计师下午试题csdn是一个具有重要意义的考试,通过认真备考和深入学习,考生可以积极应对挑战,取得理想的成绩。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Catherinemin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值