天天看点

软件设计师-202年下-下午大题-题解

======================================================================================================

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

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

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

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

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

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

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

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

软件设计师-202年下-下午大题-题解
软件设计师-202年下-下午大题-题解

问题:1.1 (4分)

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

E1:待检测文件
E2:管理员
E3:检测业务员
E4:监控人员
           

问题:1.2 (3分)

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

参考的答案
D1:模型文件
D2:产品检测信息文件
D3:基础信息文件
           

问题:1.3 (5分)

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

起点  		   终点   			 数据流
  E3			p5				远程控制命令
  p2 			p3				产品检测信息
  D3            p4				基础信息
           

问题:1.4 (3分)

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

缺陷检测{
	while (接收的图像){
		do{
			检测所收到的所有图像;
			if(有一张图像检测不合格){
				Then{
						返回 产品不合格
						不合格产品检测结果=产品型号+不合格类型
				}
			}
		}
	}		
}
           

======================================================================================================

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

【需求分析】

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

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

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

【关系模式】

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

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

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

【概念模式设计】

软件设计师-202年下-下午大题-题解

问题:2.1 (4分)

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

//联系要用菱形表示,这里为方便用文字形式表述

 1. 分公司 ******** 1 ******  联系1  *******  1  *******经理
 2. 分公司 ******** 1 ******  联系2  *******  n  ******* 业务部   
 3. 业务部 ******** 1 ******  联系3  *******  1  ******* 主管   
 4. 业务部 ******** 1 ******  联系4  *******  n  ******* 职员
           

问题:2.2 (3分)

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

(a)  经理号、电话
(b)  地址、分公司编号
(c)  所属业务部编号
           

问题:2.3 (4分)

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

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

(1)
分公司主键:分公司编号
分公司外键:经理号
(2)
业务部主键:业务部编号
业务部外键:分公司编号
           

问题:2.4 (4分)

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

每个职员有多名家庭成员,会重复记录职员信息,(例如有张三有妻(张妻)儿(张儿)两个家庭成员)
职员关系模式存储如下:
01 张三 研发员 分公司1 tel1  张妻 夫妻
02 张三 研发员 分公司1 tel2  张儿 父子

职员号、职员姓名、岗位、公司编号、电话 这几个属性要多次存储,加入一个职员有20个家庭成员,则需要重复存储19次,造成数据冗余

**解决办法:**
对职员关系表拆分成两个表
职员表1(职员号、职员姓名、岗位、公司编号、电话)
职员表2(职员号、家庭成员姓名、关系)
这样便解决了数据冗余问题,职员表只需要存储一次职员信息
           

========================================================================================================================================

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

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

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

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

4.系统管理员可以从系统中导出所有房产的信息列表,系统管理员定期将信息和销售的房产,进行归纳,若公司确定不再销售某套房产,系统管理员将房产信息从系统中删除。

现采用面向对象方法开发该系统得到如图3-1所示的图例和3- 2所示的图。

软件设计师-202年下-下午大题-题解

问题:3.1 (7分)

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

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

第一次做这种软件系统设计题

A1:房产经纪
A2:系统管理员
U1:审批授权
U2:录入已经售出的房产信息  //这个空看答案是填写的:**缺失**  (意思就是不用写呗)
U3:删除已售出的房产信息
           

问题:3.2 (6分)

根据证明中描述,分别给图3-2中C1~C6所对应的类名称。

没图我做啥??
           

问题:3.3 (2分)

图3-2中AgentList是一个英文名称 ,用来进一步阐述C1和C6之间的关系 ,根据(2分)

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

没图我做啥??
           

========================================================================================================================================

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

步骤1 :构造一个步长序列delta1、delta2…、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 <sdivio.h>
void shellsort(int data[ ], int n){
    int *delta,k,i,t,dk,j;
    k=n;
    delta=(int *)malloc(sizeof(int)*(n/2));   		//开辟空间delta,用来存放每次的步长
    if(i=0)											//if中的循环就是为了把每一趟排序的步长求出来
        do{
            ( 1 ) ; 
            delta[i++]=k;
        }while ( 2 ) ; 								//结束条件
    i=0;
    while((dk=delta[i])>0){							//dk表示步长
        for(k=delta[i];k<n;++k)						//每一趟
        if( ( 3 ) ) { 								// data[k]<data[k-dk]
            t=data[k];
            for(j=k-dk;j>=0&&t<data[j];j-=dk){
                data[j+dk]=data[j];
            }/*for*/
        ( 4 ) ; //data[j+dk]=t;
        }/*if*/
        ++i;
    }/*while*/
}
           

问题:4.1 (8分)

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

填充代码题也太难了
(1) k=k/2    //这里k是每一步的步长
(2) k!=1      //步长为1的时候就是排序的最后一趟  答案给的是   k>1  和答案没区别
(3) data[k]<data[k-dt]    //每隔dt个元素比较大小 ,升序排序
(4) data[j+dk]=t           //这是看的注释 难道看注释也是一个考点???
           

问题:4.2 (4分)

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

由于希尔排序时间复杂度o(nlogn) < o(n^2) 
希尔排序是一个不稳定的排序算法
           

问题:4.3 (3分)

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

继续阅读