2011上半年軟件設(shè)計(jì)師下午真題匯總

軟件設(shè)計(jì)師 責(zé)任編輯:pengying 2017-08-01

添加老師微信

備考咨詢

加我微信

摘要:學(xué)習(xí)時(shí)的痛苦是暫時(shí)的,未學(xué)到的痛苦是終生的。所以請(qǐng)大家堅(jiān)信:在備考軟件設(shè)計(jì)師的道路上你收獲的都將是你日后的寶藏。下面是關(guān)于2011上半年軟件設(shè)計(jì)師下午真題匯總。

>>>2017年軟件設(shè)計(jì)師網(wǎng)絡(luò)課堂課
  >>>軟件設(shè)計(jì)師歷年真題題庫(kù)
  >>>2017年軟件設(shè)計(jì)師考試指南

學(xué)習(xí)時(shí)的痛苦是暫時(shí)的,未學(xué)到的痛苦是終生的。所以請(qǐng)大家堅(jiān)信:在備考軟件設(shè)計(jì)師的道路上你收獲的都將是你日后的寶藏。下面是關(guān)于2011上半年軟件設(shè)計(jì)師下午真題匯總

【1】● 閱讀下列說(shuō)明和圖,回答問(wèn)題1至問(wèn)題4,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。

【說(shuō)明】

某醫(yī)院欲開發(fā)病人監(jiān)控系統(tǒng)。該系統(tǒng)通過(guò)各種設(shè)備監(jiān)控病人的生命體征,并在生命體征異常時(shí)向醫(yī)生和護(hù)理人員報(bào)警。該系統(tǒng)的主要功能如下:

(1)本地監(jiān)控:定期獲取病人的生命體征,如體溫、血壓、心率等數(shù)據(jù)。

(2)格式化生命體征:對(duì)病人的各項(xiàng)重要生命體征數(shù)據(jù)進(jìn)行格式化,然后存入日志文件并檢查生命體征。

(3)檢查生命體征:將格式化后的生命體征與生命體征范圍文件中預(yù)設(shè)的正常范圍進(jìn)行比較。如果超出了預(yù)設(shè)范圍,系統(tǒng)就發(fā)送一條警告信息給醫(yī)生和護(hù)理人員。

(4)維護(hù)生命體征范圍:醫(yī)生在必要時(shí)(如,新的研究結(jié)果出現(xiàn)時(shí))添加或更新生命體征值的正常范圍。

(5)提取報(bào)告:在醫(yī)生或護(hù)理人員請(qǐng)求病人生命體征報(bào)告時(shí),從日志文件中獲取病人生命體征生成體征報(bào)告,并返回給請(qǐng)求者。

(6)生成病歷:根據(jù)日志文件中的生命體征,醫(yī)生對(duì)病人的病情進(jìn)行描述,形成病歷存入病歷文件。

(7)查詢病歷:根據(jù)醫(yī)生的病歷查詢請(qǐng)求,查詢病歷文件,給醫(yī)生返回病歷報(bào)告。

(8)生成治療意見:根據(jù)日志文件中的生命體征和病歷,醫(yī)生給出治療意見,如處方等,并存入治療意見文件。

(9)查詢治療意見:醫(yī)生和護(hù)理人員查詢治療意見,據(jù)此對(duì)病人進(jìn)行治療。

現(xiàn)采用結(jié)構(gòu)化方法對(duì)病人監(jiān)控系統(tǒng)進(jìn)行分析與設(shè)計(jì),獲得如圖1-1所示的頂層數(shù)據(jù)流圖和圖1-2所示的0層數(shù)據(jù)流圖。

1.png

2.png

【】

【問(wèn)題1】(3分)

使用說(shuō)明中的詞語(yǔ),給出圖1-1中的實(shí)體E1~E3的名稱。

【問(wèn)題2】(4分)

使用說(shuō)明中的詞語(yǔ),給出圖1.2中的數(shù)據(jù)存儲(chǔ)D1~D4的名稱。

【問(wèn)題3】 (6分)

圖1-2中缺失了4條數(shù)據(jù)流,使用說(shuō)明、圖1-1和圖1-2中的術(shù)語(yǔ),給出數(shù)據(jù)流的名稱及其起點(diǎn)和終點(diǎn)。

【問(wèn)題4】(2分)

說(shuō)明實(shí)體El和E3之間可否有數(shù)據(jù)流,并解釋其原因。


【2】● 閱讀下列說(shuō)明,回答問(wèn)題l至問(wèn)題3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。

【說(shuō)明】

某服裝銷售公司擬開發(fā)一套服裝采購(gòu)管理系統(tǒng),以便對(duì)服裝采購(gòu)和庫(kù)存進(jìn)行管理。

【需求分析】

(1)采購(gòu)系統(tǒng)需要維護(hù)服裝信息及服裝在倉(cāng)庫(kù)中的存放情況。服裝信息主要包括:服裝編碼、服裝描述、服裝類型、銷售價(jià)格、尺碼和面料,其中,服裝類型為銷售分類,服裝按銷售分類編碼。倉(cāng)庫(kù)信息包括:倉(cāng)庫(kù)編碼、倉(cāng)庫(kù)位置、倉(cāng)庫(kù)容量和庫(kù)管員。系統(tǒng)記錄庫(kù)管員的庫(kù)管員編碼、姓名和級(jí)別。一個(gè)庫(kù)管員可以管理多個(gè)倉(cāng)庫(kù),每個(gè)倉(cāng)庫(kù)有一名庫(kù)管員。一個(gè)倉(cāng)庫(kù)中可以存放多類服裝,一類服裝可能存放在多個(gè)倉(cāng)庫(kù)中。

(2)當(dāng)庫(kù)管員發(fā)現(xiàn)有一類或者多類服裝缺貨時(shí),需要生成采購(gòu)訂單。一個(gè)采購(gòu)訂單可以包含多類服裝。每類服裝可由多個(gè)不同的供應(yīng)商供應(yīng),但具有相同的服裝編碼。采購(gòu)訂單主要記錄訂單編碼、訂貨日期和應(yīng)到貨日期,并詳細(xì)記錄所采購(gòu)的每類服裝的數(shù)量、采購(gòu)價(jià)格和對(duì)應(yīng)的多個(gè)供應(yīng)商。

(3)系統(tǒng)需記錄每類服裝的各個(gè)供應(yīng)商信息和供應(yīng)情況。供應(yīng)商信息包括:供應(yīng)商編碼、供應(yīng)商名稱、地址、企業(yè)法人和聯(lián)系電話。供應(yīng)情況記錄供應(yīng)商所供應(yīng)服裝的服裝類型和服裝質(zhì)量等級(jí)。一個(gè)供應(yīng)商可以供應(yīng)多類服裝,一類服裝可由多個(gè)供應(yīng)商供應(yīng)。庫(kù)管員根據(jù)入庫(kù)時(shí)的服裝質(zhì)量情況,設(shè)定或修改每個(gè)供應(yīng)商所供應(yīng)的每類服裝的服裝質(zhì)量等級(jí),作為后續(xù)采購(gòu)服裝時(shí),選擇供應(yīng)商的參考標(biāo)準(zhǔn)。

【概念模型設(shè)計(jì)】

根據(jù)需求階段收集的信息,設(shè)計(jì)的實(shí)體聯(lián)系圖(不完整)如圖2-1所示。

3.png

【邏輯結(jié)構(gòu)設(shè)計(jì)】

根據(jù)概念模型設(shè)計(jì)階段完成的實(shí)體聯(lián)系圖,得出如下關(guān)系模式(不完整):

庫(kù)管員(庫(kù)管員編碼,姓名,級(jí)別)

倉(cāng)庫(kù)信息( (1) ,倉(cāng)庫(kù)位置,倉(cāng)庫(kù)容量)

服裝(服裝編碼,服裝描述,服裝類型,尺碼,面料,銷售價(jià)格)

供應(yīng)商(供應(yīng)商編碼,供應(yīng)商名稱,地址,聯(lián)系電話,企業(yè)法人)

供應(yīng)情況( (2) ,服裝質(zhì)量等級(jí))

采購(gòu)訂單( (3) )

采購(gòu)訂單明細(xì)(____(4) )

【問(wèn)題1】(6分)

根據(jù)需求分析的描述,補(bǔ)充圖2.1中的聯(lián)系和聯(lián)系的類型。

【問(wèn)題2】(6分)

根據(jù)補(bǔ)充完整的圖2-1,將邏輯結(jié)構(gòu)設(shè)計(jì)階段生成的關(guān)系模式中的空(1)~(4)補(bǔ)充完整,并給出其主鍵(用下劃線指出)。

【問(wèn)題3】(3分)

如果庫(kù)管員定期需要輪流對(duì)所有倉(cāng)庫(kù)中的服裝質(zhì)量進(jìn)行抽查,對(duì)每個(gè)倉(cāng)庫(kù)中的每一類被抽查服裝需要記錄一條抽查結(jié)果,并且需要記錄抽查的時(shí)間和負(fù)責(zé)抽查的庫(kù)管員。請(qǐng)根據(jù)該要求,對(duì)圖2-1進(jìn)行修改,畫出修改后的實(shí)體間聯(lián)系和聯(lián)系的類型。


【3】● 閱讀下列說(shuō)明和圖,回答問(wèn)題l至問(wèn)題3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。

【說(shuō)明】

一個(gè)簡(jiǎn)單的圖形編輯器提供給用戶的基本操作包括:創(chuàng)建圖形、創(chuàng)建元素、選擇元素以及刪除圖形。圖形編輯器的組成及其基本功能描述如下:

(1)圖形由文本元素和圖元元素構(gòu)成,圖元元素包括線條、矩形和橢圓。

(2)顯示在工作空間中,一次只能顯示一張圖形(即當(dāng)前圖形,current)。

(3)提供了兩種操作圖形的工具:選擇工具和創(chuàng)建工具。對(duì)圖形進(jìn)行操作時(shí),一次只能使用一種工具(即當(dāng)前活動(dòng)工具,active)

① 創(chuàng)建工具用于創(chuàng)建文本元素和圖元元素。

② 于顯示在工作空間中的圖形,使用選擇工具能夠選定其中所包含的元素,可以選擇一個(gè)元素,也可以同時(shí)選擇多個(gè)元素。被選擇的元素稱為當(dāng)前選中元素( selected)。

③ 種元素都具有對(duì)應(yīng)的控制點(diǎn)。拖拽選定元素的控制點(diǎn),可以移動(dòng)元素或者調(diào)整元素的大小。

現(xiàn)采用面向?qū)ο蠓椒ㄩ_發(fā)該圖形編輯器,使用UML進(jìn)行建模。構(gòu)建出的用例圖和類圖分別如圖3-1和3-2所示。

1.png

2.png

【問(wèn)題1】 (4分)

根據(jù)說(shuō)明中的描述,給出圖3-1中U1和U2所對(duì)應(yīng)的用例,以及(1)和(2)處所對(duì)應(yīng)的關(guān)系。

【問(wèn)題2】(8分)

根據(jù)說(shuō)明中的描述,給出圖3.2中缺少的C1~C8所對(duì)應(yīng)的類名以及(3)~(6)處所對(duì)應(yīng)的多重度。

【問(wèn)題3】(3分)

圖3-2中的類圖設(shè)計(jì)采用了橋接(Bridge)設(shè)計(jì)模式,請(qǐng)說(shuō)明該模式的內(nèi)涵。


【4】● 閱讀下列說(shuō)明和C代碼,回答問(wèn)題1至問(wèn)題3,將解答寫在答題紙的對(duì)應(yīng)欄內(nèi)。

【說(shuō)明】

某應(yīng)用中需要對(duì)100000個(gè)整數(shù)元素進(jìn)行排序,每個(gè)元素的取值在0~5之間。排序算法的基本思想是:對(duì)每一個(gè)元素x,確定小于等于x的元素個(gè)數(shù)(記為m),將x放在輸出元素序列的第m個(gè)位置。對(duì)于元素值重復(fù)的情況,依次放入第m-l、m-2、…個(gè)位置。例如,如果元素值小于等于4的元素個(gè)數(shù)有10個(gè),其中元素值等于4的元素個(gè)數(shù)有3個(gè),則4應(yīng)該在輸出元素序列的第10個(gè)位置、第9個(gè)位置和第8個(gè)位置上。算法具體的步驟為:

步驟1:統(tǒng)計(jì)每個(gè)元素值的個(gè)數(shù)。

步驟2:統(tǒng)計(jì)小于等于每個(gè)元素值的個(gè)數(shù)。

步驟3:將輸入元素序列中的每個(gè)元素放入有序的輸出元素序列。

【C代碼】

下面是該排序算法的C語(yǔ)言實(shí)現(xiàn)。

(1)常量和變量說(shuō)明

R: 常量,定義元素取值范圍中的取值個(gè)數(shù),如上述應(yīng)用中R值應(yīng)取6

i:循環(huán)變量

n:待排序元素個(gè)數(shù)

a:輸入數(shù)組,長(zhǎng)度為n

b:輸出數(shù)組,長(zhǎng)度為n

c:輔助數(shù)組,長(zhǎng)度為R,其中每個(gè)元素表示小于等于下標(biāo)所對(duì)應(yīng)的元素值的個(gè)數(shù)。

(2)函數(shù)sort

1 void sort(int n,int a[],int b[]){

2 int c[R],i;

3 for (i=0;i< (1) :i++){

4 c[i]=0;

5 }

6 for(i=0;i

7 c[a[i]] = (2) ;

8 }

9 for(i=1;i

10 c[i]= (3)

11 }

12 for(i=0;i

13 b[c[a[i]]-1]= (4) ;

14 c[a[i]]=c[a[i]]-1;

15 }

16 }

【問(wèn)題1】(8分)

根據(jù)說(shuō)明和C代碼,填充C代碼中的空缺(1)~(4)。

【問(wèn)題2】(4分)

根據(jù)C代碼,函數(shù)的時(shí)間復(fù)雜度和空間復(fù)雜度分別為 (5) 和 (6) (用O符號(hào)表示)。

【問(wèn)題3】(3分)

根據(jù)以上C代碼,分析該排序算法是否穩(wěn)定。若穩(wěn)定,請(qǐng)簡(jiǎn)要說(shuō)明(不超過(guò)100字);若不穩(wěn)定,請(qǐng)修改其中代碼使其穩(wěn)定(給出要修改的行號(hào)和修改后的代碼)。


【5】● 閱讀下列說(shuō)明和C++代碼,將應(yīng)填入空(n)處的字句寫在答題紙的對(duì)應(yīng)欄內(nèi)。

【說(shuō)明】

某飯店在不同的時(shí)段提供多種不同的餐飲,其菜單的結(jié)構(gòu)圖如下圖所示。

1.png

現(xiàn)在采用組合(Composition)模式來(lái)構(gòu)造該飯店的菜單,使得飯店可以方便地在其中增加新的餐飲形式,得到如下圖所示的類圖。其中MenuComponent為抽象類,定義了添加(add)新菜單和打印飯店所有菜單信息(print)的方法接口。類Menu表示飯店提供的每種餐飲形式的菜單,如煎餅屋菜單、咖啡屋菜單等。每種菜單中都可以添加子菜單,例如圖中的甜點(diǎn)菜單。類MenuItem表示菜單中的菜式。

2.png

()

【C++代碼】

#include

#include

#include

using namespace std;

class MenuComponent{

protected: string name;

public:

MenuComponent(string name){ this->name= name;)

string getName(){ return name;)

(1) ; //添加新菜單

virtual void print()=0;//打印菜單信息

};

class Menultem: public MenuComponent{

private:double price;

public:

Menultem(string name, double price):MenuComponent(name){ this->price= price;

double getPrice(){ return price;)

void add(MenuComponent* menuComponent){ retum;}//添加新菜單

void print(){ cout<<" " <

};

class Menu:public MenuComponent{

private: list< (2) > menuComponents;

public:

Menu(string name): MenuComponent(name){}

void add(MenuComponent* menuComponent) //添加新菜單

{ (3) ; }

void print(){

cout<<"\n"<

std::list::iterator iter,

for(iter= menuComponents.begin0; iter!=menuComponents.end0; iter++)

(4) ->print();

}

};

void main0{

MenuComponent* alIMenus= new Menu("ALL MENUS");

MenuComponent* dinerMenu= new Menu("DINER MENU");

……//創(chuàng)建更多的Menu對(duì)象,此處代碼省略

alIMenus->add(dinerMenu); //將dinerMenu添加到餐廳菜單中

……//為餐廳增加更多的菜單,此處代碼省略

(5) ->printO; //打印飯店所有菜單的信息


【6】● 閱讀下列說(shuō)明和Java代碼,將應(yīng)填入(n)處的字句寫在答題紙的對(duì)應(yīng)欄內(nèi)

【說(shuō)明】

某飯店在不同的時(shí)段提供多種不同的餐飲,其菜單的結(jié)構(gòu)圖如下圖所示。

1.png

現(xiàn)在采用組合( Composition)模式來(lái)構(gòu)造該飯店的菜單,使得飯店可以方便地在其中增加新的餐飲形式,得到如下圖所示的類圖。其中MenuComponent為抽象類,定義了添加(add)新菜單和打印飯店所有菜單信息(print)的方法接口。類Menu表示飯店提供的每種餐飲形式的菜單,如煎餅屋菜單、咖啡屋菜單等。每種菜單中都可以添加子菜單,例如圖中的甜點(diǎn)菜單。類Menultem表示菜單中的菜式。

2.png

【Java代碼】

import jav

(6)A.util.*;

(1) MenuComponent{

protected String name;

(2) ;//添加新菜單

public abstract void print(); //打印菜單信息

public String getName(){ return name;}

}

class Menultem extends MenuComponent{

private double price;

public MenuItem(String name, double price){

this.name= name; this.price= price;

}

public double getPrice(){return price;)

public void add(MenuComponent menuComponent){ return;)//添加新菜單

public void print(){

System.out.print(" "+ getName());

System.out.println(","+ getPrice());

}

}

class Menu extends MenuComponent{

private List menuComponents= new ArrayList();

public Menu(String name){ this.name= name;)

public void add(MenuComponent menuComponent){//添加新菜單

menuComponents. (3);

}

public void print(){

System.out.print("\n"+ getName());

System.out.println(","+"---------------");

Iterator iterator = menuComponents.iterator();

while(iterator.hasNext()){

MenuComponent menuComponent= (MenuComponent)iterator.next();

(4) ;

}

}

}

class MenuTestDrive{

public static void main(String args[]){

MenuComponent aIIMenus= new Menu("ALL MENUS");

MenuComponent dinerMenu = new Menu("DINER MENU”);

……//創(chuàng)建更多的Menu對(duì)象,此處代碼省略

allMenus.add(dinerMenu); //將dinerMenu添加到餐廳菜單中

……//為餐廳增加更多的菜單,此處代碼省略

(5); //打印飯店所有菜單的信息

}

}

更多資料
更多課程
更多真題
溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,本網(wǎng)站提供的以上信息僅供參考,如有異議,請(qǐng)考生以權(quán)威部門公布的內(nèi)容為準(zhǔn)!

軟考備考資料免費(fèi)領(lǐng)取

去領(lǐng)取

!
咨詢?cè)诰€老師!