上半年 软件设计师 案例分析.docx

上传人:b****5 文档编号:7557666 上传时间:2023-01-25 格式:DOCX 页数:14 大小:328.58KB
下载 相关 举报
上半年 软件设计师 案例分析.docx_第1页
第1页 / 共14页
上半年 软件设计师 案例分析.docx_第2页
第2页 / 共14页
上半年 软件设计师 案例分析.docx_第3页
第3页 / 共14页
上半年 软件设计师 案例分析.docx_第4页
第4页 / 共14页
上半年 软件设计师 案例分析.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

上半年 软件设计师 案例分析.docx

《上半年 软件设计师 案例分析.docx》由会员分享,可在线阅读,更多相关《上半年 软件设计师 案例分析.docx(14页珍藏版)》请在冰豆网上搜索。

上半年 软件设计师 案例分析.docx

上半年软件设计师案例分析

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

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

(考试时间14:

00~16:

30共150分钟)

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

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

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

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

4.本试卷共7道题,试题一至试题四是必答题,试题五至试题六选答1道。

题15分,满分75分。

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

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

例题

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

(1)

(2)日。

因为正确的解答是“5月20日”,故在答题纸的对应栏内写上“5”和“20”

(参看下表)。

例题

解答栏

(1)

5

(2)

20

试题一至试题四是必答题

试题一

某慈善机构欲开发一个募捐系统,以跟踪记录为事业或项目向目标群体进行募捐而组织的集体性活动,该系统的主要功能如下所述。

(1)管理志愿者。

根据募捐任务给志愿者发送加入邀请、邀请跟进、工作任务;管理志愿者提供的邀请响应、支援站信息、工作时长、工作结果等。

(2)确定募捐需求和收集所募捐赠(资金及物品)。

根据需求提出的募捐任务、活动请求和募捐请求,获取所募集的资金和物品。

(3)组织募捐活动。

根据活动请求,确定活动时间范围。

根据活动时间,搜索场馆,即向场馆发送场馆可用性请求,获得场馆可用性。

然后根据活动时间和地点推广募捐活动,根据相应的活动信息举办活动,从募款机构获取资金并向其发放赠品。

获取和处理捐赠,根据捐赠要求,提供所募集的捐赠;处理与处理人之间的交互。

即:

录入捐赠人信息,处理后存入捐赠人信息表;从捐赠人信息表中查询捐赠人信息,向捐赠人发送捐赠请求,并将已联系的捐赠人存入已联系的捐赠人表。

根据捐赠请求进行募集,募得捐赠后,将捐赠记录存入捐赠表;对捐赠记录进行处理后,存入已处理捐赠表,向捐赠人发送致谢函。

根据已联系的捐赠人和捐赠记录进行跟进,将捐赠跟进情况发送给捐赠人。

现采用机构化方法对募捐系统进行分析与设计,获得如图1-1、1-2和1-3所示分层数据流图。

【问题1】

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

【问题2】

在建模DFD时,需要对有些复杂加工(处理)进行进一步精化,图1-2为图1-1中处理3的进一步细化的1层数据图,图1-3为图1-2中3.1进一步细化的2层数据流图。

补全图1-2中加工P1、P2和P3的名称和图1-2与图1-3中缺少的数据流。

【问题3】

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

 

试题二

【说明】

某电视台拟开发一套信息管理系统,以方便对全台的员工、栏目、广告和演播厅等进行管理。

【需求分析】

(1)系统需要维护全台员工的详细信息、栏目信息、广告信息和演播厅信息等。

员工的信息包括:

工号、姓名、性别、出生日期、电话、住址等。

栏目信息主要包括:

栏目名称、播出时间、时长等。

广告信息主要包括:

广告编号、价格等。

演播厅信息包括:

房间号、房间面积等。

(2)电视台根据调度单来协调各个栏目、演播厅和场务。

一销售档栏目只会占用一个演播厅,但会使用多名场务来进行演出协调。

演播厅和场务可以被多个栏目循环使用。

(3)电视台根据栏目来插播广告。

每档栏目可以插播多条广告,每条广告也可以在多档栏目插播。

(4)一档栏目可以有多个主持人,但一名主持人只能主持一档栏目。

(5)一名编辑人员可以编辑多条广告,一条广告只能由一名编辑人员编辑。

【概念模型设计】

根据需求阶段收集的信息设计的实体联系图(不完整)如图2-1所示。

【逻辑结构设计】

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

演播厅(房间号,房间面积)

栏目(栏目名称,播出时间,时长)

广告(广告编号,销售价格,

(1))

员工(工号,姓名,性别,出生日期,电话,住址)

主持人(主持人工号,

(2))

插播单((3),播出时间)

调度单((4))

【问题1】

补充图2-1中的联系和联系的类型。

【问题2】

根据图2-1,将逻辑结构设计阶段生成的关系模式中的空

(1)~(4)补充完整,并用下划线指出空

(1)~(4)所在关系模式的主键。

【问题3】

现需要记录广告商信息,增加广告商实体。

一个广告商可以提供多条广告,一条广告只由一个广告商提供。

请根据该要求,对图2-1进行修改,画出修改后的实体间联系和联系的类型。

 

试题三

【说明】

某城市拟开发一个基于Web的城市黄页,公开发布该城市重要的组织或机构(以下统称为客户)的基本信息,方便城市生活。

该系统的主要功能描述如下:

(1)搜索信息:

任何使用Internet的网络用户都可以搜索发布在城市黄页中的信息,例如客户的名称、地址、联系电话等。

(2)认证:

客户若想在城市黄页上发布信息,需要通过系统的认证。

认证成功后,该客户成为系统授权用户。

(3)更新信息:

授权用户登录系统之后,可以更改自己的在城市黄页中的相关信息,例如变更联系电话等。

(4)删除客户:

对于拒绝继续在城市黄页上发布信息的客户,由系统管理员删除该客户的相关信息。

系统采用面向对象方法进行开发,在开发过程中认定出如表3-1所示的类。

系统的用例图和类图分别如图3-1和3-2所示。

【问题1】

根据说明中的描述,给出图3-1中的A1和A2处所对应的参与者、UC1和UC2处所对应的用例以及

(1)处的关系。

【问题2】

根据说明中的描述,给出图3-2中的C1~C5所对应的类名(表3-1中给出的类名)和

(2)~(5)处所对应的多重度。

【问题3】

认定类是面向对象分析中非常关键的一个步骤。

一般首先从问题域中得到候选类集合,再根据相应的原则从该集合中删除不作为类的,剩余的就是从问题域中认定出来的类。

简要说明选择题选类的原则,以及对候选类集合进行删除的原则。

 

试题四

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

【说明】

设有m台完全相同的机器运行n个独立的任务,运行任务i所需要的时间为ti,要求确定一个调度方案,使得完成所有任务所需要的时间最短。

假设任务已经按照其运行时间从大到小顺序。

算法基于最长运行时间作业优先的策略;按顺序先把每个任务分配到一台机器上,然后将剩余的任务依次放入空闲的机器。

【C代码】

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

(1)常量和变量说明

m:

机器数

n:

任务数

t[]:

输入数组,长度为n,其中每个元素表示任务的运行时间,下标从0开始

s[][]:

二维数组,长度为m*n,下标从0开始,其中元素s[i][j]表示机器i运行的任务j的编号

d[]:

数组,长度为m,其中元素d[i]表示机器i的运行时间,下标从0开始

count[]:

数组,长度为m,下标从0开始,其中元素count[i]表示机器i的运行任务数

i:

循环变量

j:

循环变量

k:

临时变量

max:

完成所有任务的时间

min:

临时变量

(2)函数schedule

voidschedule(){

inti,j,k,max=0

for(i=0;i

d[i]=0;

for(j=0;j

s[i][j]=0;

}

}

for(i=0;i

s[i][0]=j;

(1);

count[i]=1;

}

for(

(2)、i

intmin=d[0];

k=0;

for(j=1;j

if(min>d[j]){

min=d[j];

k=j;//机器K空闲

}

}

(3);

count[k]=count[k]+1;

d[k]=d[k]+t[i];

}

for(i=0;i

if((4)){

max=d[i];

}

}

}

【问题1】

根据说明和c代码,填充C代码中的空

(1)~(4)。

【问题2】

根据说明和C代码,该问题采用了(5)算法设计策略,时间复杂度为(6)(用O符号表示)。

【问题3】

考虑实例m=3(编号0~2),n=7(编号0~6),各任务的运行时间为{16,14,6,5,4,3,2}。

则在机器0、1和2上运行的任务分别为(7)、(8)和(9)(给出任务编号)。

从任务开始运行到完成所需要的时间为(10)。

 

从下列的2道试题(试题五至试题六)中任选1道解答。

如果解答的试题数超过1道,则题号小的1道解答有效。

试题五

【说明】

现要求实现一个能够自动生成求职简历的程序。

简历的基本内容包括求职者的姓名、性别、年龄及工作经历等。

希望每份简历中的工作经历有所不同,并尽量减少程序中的重复代码。

现采用原型(Prototype)模式来实现上述要求,得到如图5-1所示的类图。

【C++代码】

#include

usingnamespacestd;

classCloneable{

public;

(1);

};

classWorkExperience:

publicCloneable{//工作经历

private;

stringworkDate;

stringcompany;

public;

Cloneable*Clone(){

(2);

obj->workDate=this->workDate;

obj->company=this->company;

returnobj;

}

//其余代码省略

};

classResume:

publicCloneable{//简历

private;

stringname;stringsex;stringage;

WorkExperience*work;

Resume(WorkExperience*work){

this->work=(3);

}

public;

Resume(stringname){/*实现略*/}

voidSetPersonallnfo(stringsex,stringage;){/*实现略*/}

voidSetWorkExperience(stringworkDate,stringcompany){/*实现略*/}

Cloneable*Clone(){

(4);

obj->name=this->name;

obj->sex=this->sex;

obj->age=this->age;

returnobj;

}

};

intmain(){

Resume*a=newResume(“张三”);

a->SetPersonallnfo(“男”,“29”);

a->SetWorkExperience(“1998~2000”,“XXX公司”);

Resume*b=(5);

b->SetWorkExperience(“2001~2006”,“YYY公司”);

return0;

}

【问题1】

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

 

试题六

【说明】

现要求实现一个能够自动生成求职简历的程序。

简历的基本内容包括求职者的姓名、性别、年龄及工作经历等。

希望每份简历中的工作经历有所不同,并尽量减少程序中的重复代码。

现采用原型(Prototype)模式来实现上述要求,得到如图6-1所示的类图。

【Java代码】

classWorkExperience

(1)Closeable{//工作经历

privatestringworkDate;

privatestringcompany;

publicObjectClone(){

(2);

obj.workDate=this.workDate;

pany=pany;

returnobj;

}

}

classResume(3)Closeable{//简历

privatestringname;

privatestringsex;

privatestringage;

privateWorkExperiencework;

publicResume(stringname){

thisname=name;work=newSetWorkExperience();

}

privateResume(WorkExperiencework){

thiswork=(4);

}

publicvoidSetPersonallnfo(stringsex,stringage;){/*代码略*/}

publicvoidSetWorkExperience(stringworkDate,stringcompany){/*代码略*/}

publicObjectClone(){

Resumeobj=(5);

//其余代码省略

returnobj;

}

}

classWorkResume{

publicstaticvoidmain(string[]arg){

Resumea=newResume(“张三”);

a.SetPersonallnfo(“男”,“29”);

a.SetWorkExperience(“1998~2000”,“XXX公司”);

Resumeb=(6);

b.SetWorkExperience(“2001~2006”,“YYY公司”);

}

}

【问题1】

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 判决书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1