软考考试汇总.docx

上传人:b****5 文档编号:30213152 上传时间:2023-08-07 格式:DOCX 页数:38 大小:559.07KB
下载 相关 举报
软考考试汇总.docx_第1页
第1页 / 共38页
软考考试汇总.docx_第2页
第2页 / 共38页
软考考试汇总.docx_第3页
第3页 / 共38页
软考考试汇总.docx_第4页
第4页 / 共38页
软考考试汇总.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

软考考试汇总.docx

《软考考试汇总.docx》由会员分享,可在线阅读,更多相关《软考考试汇总.docx(38页珍藏版)》请在冰豆网上搜索。

软考考试汇总.docx

软考考试汇总

软考考试汇总

 本文对2006年5月至2013年5月【8年,15次】的软件设计师级别下午试题进行一个简单的汇总统计,希望对准备参加软考的朋友能有所帮助。

      从2006年5月开始(尤其是从2010年5月开始),软件设计师级别的试题题型基本固定:

      

(1) 第一题为结构化分析与设计,主要考查数据流图DFD的绘制,考查形式为顶层数据流图和0层数据流图填空(外部实体/数据源、数据存储/文件、加工处理/数据变换填空)、找出遗漏的数据流或者错误的数据流,偶尔考查数据流图的一些绘制要点,如分层数据流绘制需要注意的问题等;【该题整体难度不大,需认真完成4-6道往年真题】

      

(2) 第二题为数据库分析与设计,主要考查ER图的绘制以及ER图与关系模式的映射,考查形式为补充完成ER图(增加实体、联系、属性以及联系类型)、将关系模式补充完整(属性/字段填空)、找出关系模式的主外键,偶尔考查关系模式的规范化,如将某个关系模式转换为第三范式等;【该题整体难度不大,需认真完成4-6道往年真题,但偶尔有个别小问题需要仔细分析才能回答准确】

      (3) 第三题为面向对象分析与设计,主要考查对常用UML图形的掌握情况,比较常见的图形包括用例图、类图、顺序图、活动图和状态图,考查形式为图形填空,附带考查UML的一些基础知识,例如类图中的几种关系及其区别、用例图中用例之间关系的内涵等;【需要熟练掌握常用的UML图形,尤其是用例图和类图,偶尔还包含一道与设计模式有关的小问题】

      (4) 第四题为数据结构与算法,主要考查对常用数据结构和算法的掌握情况,通常考查一些中等难度的算法,例如最短装配时间算法、B树、贪心算法、动态规划、回溯法、背包问题、最短路径、拓扑排序、堆排序等,考查形式为C语言代码填空、复杂度分析(时空复杂度)、算法稳定性分析等;【该题为下午试题中难度较大的一题,需要熟悉一些常用的算法和C语言的语法】

      (5) 第五、六题为C++和Java(设计模式题,二选一),从2006年开始该题主要考查对常见设计模式的掌握情况,该试题通常会结合一个设计模式实例,给出实例描述和类图,然后进行程序代码填空,有C++和Java两个语言版本,二选一,只要有相关的设计模式基础,解答该题难度不大,没有设计模式基础也不用担心,只要认真理解其设计和实现意图,还是可以正确解答本题;【该题难度不大,有一定的设计模式基础将有助于理解和解答本题】

      (6) 从2010年开始,软件设计师考试中取消了单独的C语言试题(融合在数据结构与算法题中)。

      具体统计情况如下表所示【因篇幅限制,原题并未一一列出】:

试题统计

 

第一题

第二题

第三题

第四题

第五题

第六题

第七题

2006年上

数据流图/网上作业提交与管理系统

UML/客户信息管理系统/类图

ER图与关系模式/图书管理系统

WebService

数据结构与算法/C语言/B树/多叉平衡查找树

C++/订单管理系统/涉及到迭代器模式

Java/订单管理系统/涉及到迭代器模式

2006年下

数据流图/建账软件

ER图与关系模式/住房管理系统

UML/电子商务网站/类图、序列图(顺序图)

数据结构与算法/最短装配时间算法/程序流程图填空

数据结构与算法/C语言/二叉链表

C++/传输门/状态模式

Java/传输门/状态模式

2007年上

数据流图/房屋租赁服务系统

ER图与关系模式/医院门诊管理系统

UML/图书管理系统/类图

数据结构与算法/贪心算法/程序流程图填空

数据结构与算法/C语言/树型分布网络

C++/鸭子模拟游戏/策略模式

Java/鸭子模拟游戏/策略模式

2007年下

数据流图/成绩管理系统

ER图与关系模式/小型汽车维修管理系统

UML/唱片播放器/类图、状态图

数据结构与算法/贪心算法/程序流程图填空等

C语言/简化绘图程序/基于结构体的面向对象编程

C++/采购审批/职责链模式

Java/采购审批/职责链模式

2008年上

数据流图/音像管理信息系统

ER图与关系模式/篮球比赛信息管理系统

UML/汽车停车场信息系统/用例图、类图、状态图

数据结构与算法/快速排序/伪代码填空、时间复杂度分析等

数据结构与算法/C语言/栈

C++/家用电器遥控系统/命令模式

Java/家用电器遥控系统/命令模式

2008年下

数据流图/销售管理系统

ER图与关系模式/宾馆客房预订子系统

UML/在线会议审稿系统/用例图、活动图

数据结构与算法/动态规划算法/伪代码填空、时间复杂度分析等

数据结构与算法/C语言/单链表

C++/文档操作类库/模板方法模式

Java/文档操作类库/模板方法模式

2009年上

数据流图/商品配送中心信息管理系统

ER图与关系模式/大型连锁商场数据库系统

UML/自动存提款机模拟系统(ATM)/用例图、序列图(顺序图)

数据结构与算法/最短路径Floyd-Warshall算法/伪代码填空、时间复杂度分析等

数据结构与算法/C语言/二叉树遍历

C++/图像浏览系统/桥接模式

Java/图像浏览系统/桥接模式

2009年下

数据流图/信用卡管理系统

ER图与关系模式/多用户电子邮件客户端系统

UML/订餐系统/用例图、活动图

数据结构与算法/回溯法求解0-1背包问题/伪代码填空、穷举法等

C++/文件目录树/组合模式

Java/文件目录树/组合模式

数据结构与算法/C语言/栈

2010年上

数据流图/数据管理中间件

ER图与关系模式/实验管理系统

UML/售票机/用例图、类图、中介者模式

数据结构与算法/C语言/有向图拓扑排序/代码填空、拓扑序列求解、时间复杂度分析等

C++/飞机飞行模拟系统/策略模式

Java/飞机飞行模拟系统/策略模式

 

2010年下

数据流图/订单处理系统

ER图与关系模式/小区物业收费管理系统

UML/网上药店/类图、状态图、组合关系和聚合关系

数据结构与算法/C语言/堆排序/代码填空、时间复杂度分析等

C++/公司组织结构/组合模式

Java/公司组织结构/组合模式

 

2011年上

数据流图/病人监控系统

ER图与关系模式/服装采购管理系统

UML/图形编辑器/用例图、类图、桥接模式

数据结构与算法/C语言/排序算法/代码填空、时空复杂度分析等

C++/饭店菜单/组合模式

Java/饭店菜单/组合模式

 

2011年下

数据流图/招聘系统

ER图与关系模式/物流公司信息系统

UML/Pay&Drive系统(开多少付多少)/用例图、类图

数据结构与算法/C语言/回溯法(类似背包问题)/代码填空

C++/纸巾售卖机/状态模式

Java/纸巾售卖机/状态模式

 

2012年上

数据流图/图书管理系统

ER图与关系模式/住院病人信息管理系统

UML/网上购物平台/用例图、类图

数据结构与算法/C语言/作业最优调度算法/代码填空等

C++/咖啡店计算费用/状态模式

Java/咖啡店计算费用/状态模式

 

2012年下

数据流图/电子商务系统之购物车

ER图与关系模式/会议预定系统

UML/小木屋和营地的预定及管理系统/用例图、类图

数据结构与算法/C语言/装箱问题(一维装箱问题)/代码填空等

C++/多数据库支持/抽象工厂模式

Java/多数据库支持/抽象工厂模式

 

 

2013年上

数据流图/募捐系统

ER图与关系模式/电视台信息管理系统

UML/基于Web的城市黄页/用例图、类图

数据结构与算法/C语言/任务调度问题/代码填空,时间复杂度分析等

C++/自动生成求职简历/原型模式

Java/自动生成求职简历/原型模式

 

 

设计模式试题单独统计

2006年上半年

迭代器模式

2006年下半年

状态模式

2007年上半年

策略模式

2007年下半年

职责链模式

2008年上半年

命令模式

2008年下半年

模板方法模式

2009年上半年

桥接模式

2009年下半年

组合模式

2010年上半年

策略模式

2010年下半年

组合模式

2011年上半年

组合模式

2011年下半年

状态模式

2012年上半年

装饰模式

2012年下半年

抽象工厂模式

2013年上半年

原型模式

 

 

12年上半年软件设计师之设计模式相关试题及解答

设计模式已成为软件设计师考试试题的一个重要组成部分,每次考试中都会有将近20分左右的设计模式试题,下面我分析一下最近一次软考(2012年5月)的设计模式试题,希望能够给备考软件设计师的童鞋们提供一点帮助,

      以下试题都来源于2012年5月软件设计师考试真题。

上午试题:

      ●面向对象分析与设计中的(37)是指一个模块在扩展性方面应该是开放的,而在更改性方面应该是封闭的;而(38)是指子类应当可以替换父类并出现在父类能够出现的任何地方。

      (37)A.开闭原则   B.替换原则   C.依赖原则   D.单一职责原则

      (38)A.开闭原则   B.替换原则   C.依赖原则   D.单一职责原则

 

      ●(40)限制了创建类的实例数量,而(41)将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

      (40)A.命令模式(Command)   B.适配器模式(Adapter)   C.策略模式(Strategy)   D.单例模式(Singleton)

      (41)A.命令模式(Command)   B.适配器模式(Adapter)   C.策略模式(Strategy)   D.单例模式(Singleton)

 

      ●(43)设计模式允许一个对象在其内部状态改变时改变它的行为。

下图为这种设计模式的类图,已知类State为抽象类,则类(44)的实例代表了Context对象的状态。

           

                  

      (43)A.单件(Singleton)   B.桥接(Bridge)   C.组合(Composite)   D.状态(State)

      (44)A.Context    B.ConcreteStateA   C.Handle   D.State

 

      试题分析与解答:

       总的来说,这几道题都非常简单,(37)、(38)考查面向对象设计原则,(40)、(41)、(43)、(44)考查设计模式,答案如下:

     (37)A,这是开闭原则的定义。

    (38)B,这是里氏代换原则(替换原则)的定义。

    (40)D,单例模式用于限制类的实例数量。

     (41)B,适配器模式用于将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

    (43)D,状态模式允许一个对象在其内部状态改变时改变它的行为。

    (44)B,具体状态类(例如ConcreteStateA)的实例代表了环境类(Context)对象的状态。

 

      以上几道题在《设计模式实训教程》(刘伟,清华大学出版社,2012年1月)一书中都有原题,第(37)和(38)题参见“第2章面向对象设计原则实训”选择题第(6)题(第31页),第(40)题参见“第3章创建型模式实训”选择题第(26)题(第68页),第(41)题参见“第4章结构型模式实训”选择题第(6)题(第112页),第(43)题和第(44)题参见“第5章行为型模式实训”选择题第(18)题(第190页)。

 

      下午试题:

          近年来,下午试题的最后一题通常会考查设计模式,由于C++与Java题基本相同,下面以Java版试题为例:

 

      试题六(共15分)

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

      【说明】

      某咖啡店当卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。

咖啡店所供应的咖啡及配料的种类和价格如下表所示:

咖啡

价格/杯(¥)

配料

价格/份(¥)

蒸馏咖啡(Espresso)

25

摩卡(Mocha)

10

深度烘焙咖啡(DarkRoast)

20

奶泡(Whip)

8

      现采用装饰器(Decorator)模式来实现计算费用的功能,得到如下图所示的类图。

【Java代码】

importjava.util.*;

(1)classBeverage{//饮料

   Stringdescription="UnknownBeverage";

   public

(2)(){returndescription;}

   public(3);

}

abstractclassCondimentDecoratorextendsBeverage{//配料

   (4);

}

classEspressoextendsBeverage{//蒸馏咖啡

    privatefinalintESPRESSO_PRICE=25;

   publicEspresso(){description="Espresso";}

   publicintcost(){returnESPRESSO_PRICE;}

}

classDarkRoastextendsBeverage{//深度烘焙咖啡

   privatefinalintDARKROAST_PRICE=20;

   publicDarkRoast(){description="DarkRoast";}

   publicintcost(){returnDARKROASTPRICE;}

}

classMochaextendsCondimentDecorator{//摩卡

   privatefinalintMOCHA_PRICE=10;

   publicMocha(Beveragebeverage){

       this.beverage=beverage;

   }

   publicStringgetDescription(){

       returnbeverage.getDescription()+",Mocha";

   }

   publicintcost(){

       returnMOCHA_PRICE+beverage.cost();

   }

}

classWhipextendsCondimentDecorator{//奶泡

      privatefinalintWHIP_PRICE=8;

      publicWhip(Beveragebeverage){

           this.beverage=beverage;

     }

      publicStringgetDescription(){

          returnbeverage.getDescription()+",Whip";

      }

     publicintcost(){returnWHIP_PRICE+beverage.cost();}

}

publicclassCoffee{

   publicstaticvoidmain(Stringargs[]) {

       Beveragebeverage=newDarkRoast();

       beverage=newMocha(5);

       beverage=newWhip(6);

       System.out.println(beverage.getDescription()+"¥"+beverage.cost());

   }

}

      编译运行上述程序,其输出结果为:

       DarkRoast,Mocha,Whip¥38

 

      本题答案如下:

      

(1)abstract

      

(2)StringgetDescription

      (3)abstractintcost()

      (4)Beveragebeverage或protectedBeveragebeverage

      (5)beverage

      (6)beverage

 

     本题在《设计模式实训教程》(刘伟,清华大学出版社,2012年1月)一书中对应题(参见“第6章模式联用与综合实例实训”之实训练习第15题)如下:

15.ThereisacoffeeshoptoserverHouseBlendandEspressocoffee.Eachcoffeecanbeservedwiththefollowingcondiments:

Milk,Mocha.UsingDecoratorpatterntoconstructthecoffeeshopprogramtocomputeeverybeverage’scostwithitsdescription.

abstractclassBeverage

{

      public abstractStringgetDescription();

      public abstractdoublegetCost();

}

        Drawthepatternclassdiagram,andfullcode(classCondimentDecorator,HouseBlend,Espresso,Milk,Mocha,StarBuzzCoffeeandotherclassesrequired)toconstructtheprogramincludingatestdrive(StarBuzzCoffeeclass).

【译:

有一家咖啡店提供HouseBlend咖啡和Espresso咖啡。

每一种咖啡需要用到如下配料:

牛奶,摩卡。

使用装饰模式构建咖啡店程序,输出其描述并计算每种饮料的花费。

abstractclassBeverage

{

      public abstractStringgetDescription();

      public abstractdoublegetCost();

}

       画出模式类图,实现完整的代码(包括类CondimentDecorator,HouseBlend,Espresso,Milk,Mocha,StarBuzzCoffee以及其他所需的类)构建程序,包括一个测试驱动类(StarBuzzCoffee类)。

 

       试题分析及解答如下:

本题使用装饰模式设计的类图如下所

   在该类图中,Beverage充当抽象组件,HouseBlend和Espresso充当具体组件,CondimentDecorator充当抽象装饰器,Milk和Mocha充当具体装饰器,StarBuzzCoffee充当客户端。

本题完整代码示例如下所示:

[java]viewplaincopyprint?

1.abstract class Beverage    //抽象组件  

2.{  

3.    public abstract String getDescription();  

4.    public abstract double getCost();  

5.}  

6.  

7.class HouseBlend extends Beverage    //具体组件  

8.{  

9.    public String getDescription()   

10.    {   

11.        return "HouseBlend咖啡";   

12.    }  

13.    public double getCost()   

14.    {  

15.        return 10.00;   

16.    }  

17.}  

18.  

19.class Espresso extends Beverage    //具体组件  

20.{  

21.    public String getDescription()   

22.    {   

23.        return "Espresso咖啡";   

24.    }  

25.    public double getCost()   

26.    {  

27.        return 20.00;   

28.    }  

29.}  

30.  

31.class CondimentDecorator extends Beverage    //抽象装饰器  

32.{  

33.    private Beverage beverage;  

34.    public CondimentDecorator(Beverage beverage)  

35.    {  

36.        this.beverage = beverage;  

37.    }  

38.    public String getDescription()   

39.    {   

40.        return beverage.getDescription();   

41.    }  

42.    public double getCost()   

43.    {  

44.        return beverage.getCost();   

45.    }  

46.}  

47.  

48.class Milk extends CondimentDecorator    //具体装饰器  

49.{  

50.    public Milk(Beverage beverage)  

51.    {  

52.        super

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

当前位置:首页 > 工程科技 > 交通运输

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

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