2018年下半年软件设计师下午真题和答案

所需积分/C币:41 2018-12-07 09:48:28 1.68MB PDF
收藏 收藏 2
举报

2018年下半年软件设计师下午真题和答案,答案正确率超过95%,评分专用,复习专用。
软考专家-小冮老师(十年高校计算机专业课教学经验) QQ:2105639303加QQ获取免费资料、历年真题,问题解答、经验交流。 软考软件设计师视频精讲 新增譜在房源 滑在厉信息 PI 房源信息 Et 房源采集与管 新增房 理 推信息 房器信息 D 房器确认信息 检索房 房源信思 El 查询高求一信息查询 查询结果 房源荐 交易反馈 新增客户 http://edu.sato.comkourse 客户需末情况茏 DI D 新增更新酬除 订单 客户佔息 P2 s63 客户管理 检素订单 P4 已提交订单 交易管理 新增消 订单信息 客户信息 收信息 客户需求 F 中介费比例 图1-20层数据流图 问题1(4分 使用说明中的词语,给出图1-1中的实体E1-E4的名称 间题24分) 使用说明中的词语,给出图12中的数据存情D1D4的名称。 问题3(3分) 根据说明和中术诰,补充图12中缺失的数据流攴其起点和终点。 问题4(4分) PoTs npa/ 根据说明中术语,给出图1-1中数捱流"客户信息"、"房源信息"的组成 软考专家-小冮老师(十年高校计算机专业课教学经验) QQ:2105639303加QQ获取免费资料、历年真题,问题解答、经验交流。 软考软件设计师视频精讲 试题二(15分 某集团公司拥有多 可,汋了方便集匠公司对分公司各项业努活动进行有效管理,集团 司决定构建一个信息系统以满足公司的务管理需求 【需求分析】 1分公司关系需要记灵的信息包括分公司编号、名称、经理、联系地址和电话。分公司编号 唯一标识分公司信息中的每一个元组年个分公司只有一名经理,负责该分公司的管理工作 每个分公司设立仅为本分公司服务的多个业务部]如研发部、财务部、购部、销售部等 2部门关系需要记录的信息包括部号、部门名称、主管号电话和分公司编号。部门号唯 标识部门信息中的每一个元组。每个部只有一名主管,负责部门的管理工作。每个部门 有多名员工,每名员工只能隶属二一个部门。9 3员工关系需要记录的信息包员工号、姓名隶属部门、岗位、电话和基本工资。其中 员工号唯一标识员工信息的每一个元组。岗位包括经理、主管、研发员、业务员等 【概念模型设计】 根据需求阶段收集的信息,设计的实体联系图和关系模式不完整如图21所示 分公 部门 员工 经理 研发员 业务员 主管 图21实体联系图 【关系模式设计】 司(分公司编号,名称,(a),联系地址,电话 部门(部门号,部门名称,(b),电话 员工(员工号,姓名(c),电话,基本工资 题1(4 根据间懸描,补充4个联系,完善医21的实体联系图。联系 根据短意,将关系模式中的宝G补东0m(系1联系2 联系3和联系4代替,联系的类型为1.、1a和mn 和*) 间轰(5分 问题34分) 给岀"部门"和员二"系模式的主链和外键 问题4(2分 假设集团公司要系统能记录部门历任主管的任职时间和任职年限,那么是否需要在数据库 设计时增设一个实体?为什么? 软考专家-小冮老师(十年高校计算机专业课教学经验) QQ:2105639303加QQ获取免费资料、历年真题,问题解答、经验交流。 软考软件设计师视频精讲 试题三(15 社交网络平台(SNS)的主要功能之一是建立在线群组:群组牛的成员之间可以互相分享或 挖兴趣和活动ε每个群组包含标题、管理员以及成员列表等信息。 社交岡络平台的用户可以彐行选择加入某个君组。每个矿祖拥有个主页,群组为的所有成 员都可以查看主页上的内空。如果在群组的主页上发布或更新了信息,群组中的成员会自动 接收到发布或更新后的信息 用户可以加入一个群组也可以退出这个群组。用户退出群组后,不会再接收到该群组发布 更新的任何信息。 现采用面向对象方法对上述需求进行分析与说计,得到如表31所示的类列表和如图31所 示的类图。 01表31类列表 类名 描述 SNSSubject 组主页的内容 SNSGroup 社交网络平台中的群组(在主页上发布信息 SNSobserver「群组主页内容的关注者 SNSUser 社交网络平台用户/群组成员 SYSAdmin群组的管理员 SNsSubject SNSObserver +Adduser +RemoveUser0 +Updated +Notify( C1 gEstated UPdate( +UpdateD +Setstate 根据说明中的描述,给图31中C1所对应的燃 course/4406ht 图3-1类图 问题116分 回题2(6 图3-1中采用了哪一种设计模式?说明该模式的意图及其适用场合 同题3(3分 现仁对上述社交网络平台担出了亲的需求:一个群体可以伫为另外一个群体中的成员,例如 群体A加入群体B。那么群体A中的所成员就自动成为群体B中的成员。壮要实现这个新 需求,需要对图3-1诖行哪些修改?(以文字方式描述) 软考专家-小冮老师(十年高校计算机专业课教学经验) QQ:2105639303加QQ获取免费资料、历年真题,问题解答、经验交流。 软考软件设计师视频精讲 试题四(1 给定一个字符序列B=bb2.bn,共中bi∈[A,C,Ub上的二級结构是一组字符对集合 s=(bibj]}其中∈1,2…,m},并满足以下四个条件 (1)S中的母对字符是AU,UA,CG)和,C四种组会 (2)S中的每对字符之间至少有四个字符将其隔开,即j49 (3)5中每一个字符(记为bk)的配对存在两种情况:bk不参与任们配对,bk和字符bt配 对,其中t<k4; (4)(不交叉原则)桔(bb)和(bkb)是s中的两个字符对,且k则Kkk入成立 B的貝有最大可能字符对数的二级结构S被称为最优配对方案,求解最优配对方案口的字符 对数的方法如下 偶设用C(】表示字符序列bibi+1!的最优配对方案(即二级结构S)中的字符对数,则 C1J)可以递日定义为: c=mnca-1)mr(c(t-1)+1+c(+1-1)勘配B1<-4 否胃 下面代码是算法的C语言实现,其中 n:子符序列长度 字符序列 CIn:最优配对数量数组 【C代码】 include<stdio.h> #include<stdlib.h> Adeline len 100 判断兩个字符是否配对* int is Match(char a, char b f(==A&&b=U)(a==U&&b==A") return 1. (-c&&==G)l(a=G&&b==C") rcturn 1. return o: /求最大配对数* 90vb/asino/uo3'oppIs'npa//:d44 14+ 240gir/ int rNa_ 2 char B[LEN],int n) link, 1; int max. int C[LEN [LEN]=Ol for(k=5水k<=n-1:k+ for(l=1; k<=n-k;1++1 H for(2)<=4t+) 软考专家-小冮老师(十年高校计算机专业课教学经验) QQ:2105639303加QQ获取免费资料、历年真题,问题解答、经验交流。 软考软件设计师视频精讲 H3)8&max<C[][t1]+1+[+1]1 max=C[lt-1+1+C[t+1[-1: max printf(cl%d%d]=ood--i,j,Clil turn 4: 回题1(8分) 专家一小任老师QQ:21 根据题干说明,填充C代码中的空(1(4) 回题2(4分) 根据题干说明和c代码,算法采用的设计策略为(5) 算法的时间复杂度为(6),(用O表示) 间题3(3分) 给定字符序列 ACCGGUAGU根据上述算法求得最大字符对数为(7) 试题五(15分) 某航空公可的会员积分系统将其会员划分为普卡(Basi)、银卡( Silver)和金卡(God)三个等数 非会员 Non member可以申请成为普卡会员。会员的等级根据其一年内累积的里程数进行调 整。描述会员箐级调整的状态图如图5-1所示。现采用状态 :State}模式实现上述场景,得到 如图52所示的类图 NonMem be Basic NOnmEmber COld 25000-fMie中500 flyMvile<2500 fNe>=50000 FRequent Flyer sher cstate flyMile<2500] 光 flyMile>=500c0 25000<tMe<5000 CHasin Sliver 图5-1会员等级整状态图 图5-2状态模式类图 【++代码】 Hincludesiostream> using namespace std: class Frecuent Flyer; class cbasic; class silver; class gold; class CNocustomer;/提前引用 class CState 1 软考专家-小冮老师(十年高校计算机专业课教学经验) QQ:2105639303加QQ获取免费资料、历年真题,问题解答、经验交流。 软考软件设计师视频精讲 private; int fly Miles;〃!里程数 public 1) 根据累积里程数词整会员等级 class Frequent Flyer friend class CBasic: friend class (Silver: friend class GOld; 6 pr CState *state; CState *nocustomer CState *basic; CState %silver; CState*gald; double fly miles; public Frequent Flyer(i fly Miles=0; setState( nocustomer); void setState(CState *statelthis->state-state, void travel(int miles double bonusMiles=state->travel(miles, this) flyMiles=flyMiles+ Mil class cnocustomer: public Cstate[/会员 double travel(int miles, Frequent Flyer* context){∥不累积里程数 cout < Your travel will not acco int for points\n ", return miles, } class cbasic: public CState{普卡会员 publ double travel(int miles, FrequentFlyer context) if(context->flyMiles>=25000 & context->flyMiles<50000) 2) if(context->flyMiles>50000) return miles+05°mles;/累积里程数 class GOld: public CStatel /金卡会员 public double travel(int miles, Frequent Flyer contextl f(context->flyMiles=25000&& context->fly Miles<50000) (4); if(context- HlyMiles< 25000) http://edu.51ct return miles+0.5*mles;∥/男积里程数 软考专家-小冮老师(十年高校计算机专业课教学经验) QQ:2105639303加QQ获取免费资料、历年真题,问题解答、经验交流。 软考软件设计师视频精讲 class SIlver: public CStatel /银卡会员 double travel(int miles, Frequent Flyer *context) if(context->fly Miles<25000) context->set State(context->basic) 试题六(15分真题视频解析htpi/edu.51coc contcxt >sctStatc( contcxt >gold): s return(miles+0. 25"miles) 某航空公司的会员积分系统将其会员划分为:普卡(Basc)、银卡( Silver)和金卡(Gold 个等级。非会员( NonMember可以申请成为普卡会员。会员的等级艰据其一年内累积的 里程数进行调。描述会员等级调燮的状态图如图61所示。现采月状态(ste模式 实现上述坜景,得到如图62所示的类图 Non Member Basic CNon Member COld 25000fvle5000 fly Miles 25000 flyMile>=5C000 sliver Elye CState flyMile<25000 25000<= flyMiles0000 http://edu.51cto.com/course/ flyMilex=50000 CBasic SLiver Gold 图6-1会员等级调整状途图 图62状态模式类囱 Java代码】 import java. util. BAR)o abstract class CStatel public int fly Mile:;//里程 public( 1 ∥/根据累积里浧数罔墊会员等级 dass cnocustomer extends Cstate{∥/非会员 public coublc travel(int miles, Frcqucnt Flycr contcxt)[ System. out printIn( Your travel will not account for points"); rcturn miles: ∥家积程数 软考专家-小冮老师(十年高校计算机专业课教学经验) QQ:2105639303加QQ获取免费资料、历年真题,问题解答、经验交流。 软考软件设计师视频精讲 class cBasic extends cstate{/卡会员 public double travel(int miles, Frequent Flyer context)l if (context flyMiles>=25000&& context. fly Miles<50000) if (context. flyMiles>=50000) (3) return miles class cold extends cstate{∥卡会员 public double travel(int miles, FrequentFlyer context urse/4406. if (context. flyMiles>=25000&&context. fly Miles<sU000) if (context flyMiles<=25000) return miles+0.5* miles:w/累积里程数 class Silver extends CState∥银卡会员 public double travel(int miles, FrequentFlyer context) if ( LonlexL. nlyMiles<=25000) context set State(new CBasic() if (context.flyMiles>50000) context setState(new CGoldo) return( miles+0,25*mils;/累积里浧 class Frequent Flyer CState state coublc tlyMilcs ublic FrequentFlyer( state=new CNo Customer( fly Miles=n tState(state); public void setstate CState state this state=state; H public void travel(int miles) i double bon sMiles=state travel(miles, this fiy Miles-flyMiles+bonusMiles

...展开详情
试读 15P 2018年下半年软件设计师下午真题和答案
立即下载 低至0.43元/次 身份认证VIP会员低至7折
    抢沙发
    一个资源只可评论一次,评论内容不能少于5个字
    关注 私信 TA的资源
    上传资源赚积分,得勋章
    最新推荐
    2018年下半年软件设计师下午真题和答案 41积分/C币 立即下载
    1/15
    2018年下半年软件设计师下午真题和答案第1页
    2018年下半年软件设计师下午真题和答案第2页
    2018年下半年软件设计师下午真题和答案第3页
    2018年下半年软件设计师下午真题和答案第4页
    2018年下半年软件设计师下午真题和答案第5页

    试读已结束,剩余10页未读...

    41积分/C币 立即下载 >