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

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

添加老師微信

備考咨詢(xún)

加我微信

摘要:成功不是天生才有的,而是決定去做的那一刻起,持續(xù)累積而成。距離2017年軟件設(shè)計(jì)師考試還有103天,這時(shí)候多做題對(duì)考試有好處。下面是關(guān)于2013上半年軟件設(shè)計(jì)師下午真題匯總內(nèi)容。

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

成功不是天生才有的,而是決定去做的那一刻起,持續(xù)累積而成。距離2017年軟件設(shè)計(jì)師考試還有103天,這時(shí)候多做題對(duì)考試有好處。下面是關(guān)于2013上半年軟件設(shè)計(jì)師下午真題匯總內(nèi)容。

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

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

【說(shuō)明】

    某慈善機(jī)構(gòu)欲開(kāi)發(fā)一個(gè)募捐系統(tǒng),已跟蹤記錄為事業(yè)或項(xiàng)目向目標(biāo)群體進(jìn)行募捐而組織的集體性活動(dòng)。該系統(tǒng)的主要功能如下所述。 

    (1)管理志愿者。根據(jù)募捐任務(wù)給志愿者發(fā)送加入邀請(qǐng)、邀請(qǐng)跟進(jìn)、工作任務(wù);管理志愿者提供的邀請(qǐng)響應(yīng)、志愿者信息、工作時(shí)長(zhǎng)、工作結(jié)果等。

    (2)確定募捐需求和收集所募捐贈(zèng)(資金及物品)。根據(jù)需求提出募捐任務(wù)、將活動(dòng)請(qǐng)求和捐贈(zèng)請(qǐng)求,獲取所募集的資金和物品。

    (3)組織募捐活動(dòng)。根據(jù)活動(dòng)請(qǐng)求,確定活動(dòng)時(shí)間范圍。根據(jù)活動(dòng)時(shí)間,搜索場(chǎng)館,即:向場(chǎng)館發(fā)送場(chǎng)館可用性請(qǐng)求,獲得場(chǎng)館可用性。然后根據(jù)活動(dòng)時(shí)間和地點(diǎn)推廣募捐活動(dòng),根據(jù)相應(yīng)的活動(dòng)信息舉辦活動(dòng),從募捐機(jī)構(gòu)獲取資金并向其發(fā)放贈(zèng)品。獲取和處理捐贈(zèng),根據(jù)捐贈(zèng)請(qǐng)求,提供所募集的捐贈(zèng);處理與捐贈(zèng)人之間的交互,即:

    錄入捐贈(zèng)人西悉尼,處理后存入捐贈(zèng)人信息表;從捐贈(zèng)人信息表中查詢(xún)捐贈(zèng)人信息,向捐贈(zèng)人發(fā)送捐贈(zèng)請(qǐng)求,并將已聯(lián)系的捐贈(zèng)人存入已聯(lián)系的捐贈(zèng)人表。根據(jù)捐贈(zèng)請(qǐng)求進(jìn)行募集,募得捐贈(zèng)后,將捐贈(zèng)記錄存入捐贈(zèng)表;對(duì)捐贈(zèng)記錄進(jìn)行記錄后,存入已處理捐贈(zèng)表,向捐贈(zèng)人發(fā)送致謝函,根據(jù)已聯(lián)系的捐贈(zèng)人和捐贈(zèng)記錄進(jìn)行跟蹤,并將捐贈(zèng)跟進(jìn)情況發(fā)送給捐贈(zèng)人。      

    先采用結(jié)構(gòu)化方法對(duì)募捐系統(tǒng)進(jìn)行分析和設(shè)計(jì),獲得如圖1-1、圖1-2和圖1-3所示分層數(shù)據(jù)流圖。

 

圖片1.png

圖片2.png

圖片3.png


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

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

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

    在建模DFD時(shí),需要對(duì)有些復(fù)雜加工(處理)進(jìn)行進(jìn)一步精化,圖1-2為圖1-1中處理3的進(jìn)一步細(xì)化的1層數(shù)據(jù)流圖,圖1-3為圖1-2中3.1進(jìn)一步細(xì)化的2層數(shù)據(jù)流圖。補(bǔ)全1-2中加工P1、P2和P3的名稱(chēng)和圖1-2與圖1-3中缺少的數(shù)據(jù)流。

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

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

 

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

【說(shuō)明】

    某電視臺(tái)擬開(kāi)發(fā)一套信息管理系統(tǒng),以方便對(duì)全臺(tái)的員工、欄目、廣告和演播室等進(jìn)行管理。

【需求分析】

    (1)系統(tǒng)需要維護(hù)全臺(tái)員工的詳細(xì)信息、欄目信息、廣告信息和演播廳信息等。員工的信息主要包括:工號(hào)、姓名、性別、出生日期、電話(huà)、住址等。欄目信息主要包括:欄目名稱(chēng)、播出時(shí)間、時(shí)長(zhǎng)等。廣告信息主要包括:廣告編號(hào)、價(jià)格等。演播廳信息包括:房間號(hào)、房間面積等。

    (2)電視臺(tái)分局調(diào)度單來(lái)協(xié)調(diào)各檔欄目、演播廳和場(chǎng)務(wù)。一銷(xiāo)售檔欄目只會(huì)占用一個(gè)演播廳,但會(huì)使用多么場(chǎng)務(wù)來(lái)進(jìn)行演出協(xié)調(diào)。演播廳和場(chǎng)務(wù)可以被多個(gè)欄目循環(huán)使用。

    (3)電視臺(tái)根據(jù)欄目來(lái)插播廣告。每檔欄目可以插播多條廣告,每條廣告也可以在多的欄目插播。

    (4)一檔欄目可以有多個(gè)主持人,但一名主持人只能支持一檔節(jié)目。

    (5)一名編輯人員可以編輯多條廣告,一條廣告只能由一名編輯人員編輯。

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

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

圖片4.png

【邏輯結(jié)構(gòu)設(shè)計(jì)】
    根據(jù)概念模式設(shè)計(jì)階段完成的實(shí)體聯(lián)系圖,得出如下關(guān)系模型(不完整):
    演播廳(房間號(hào),房間面積)
    欄目(欄目名稱(chēng),播出時(shí)間,時(shí)長(zhǎng))
    廣告(廣告編號(hào),銷(xiāo)售價(jià)格,  (1)  
    員工(工號(hào),姓名,性別,出生日期,電話(huà),住址)
    主持人(主持人工號(hào),(2)  
    演播單(  (3),播出時(shí)間)
    調(diào)度單(  (4)  
【問(wèn)題1】(7分)

    補(bǔ)充圖2-1中的聯(lián)系和聯(lián)系類(lèi)型。

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

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

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

    現(xiàn)需要記錄廣告商信息,增加廣告商實(shí)體。一個(gè)廣告商可以提供多條廣告,一條廣告只由一個(gè)廣告商提供。請(qǐng)根據(jù)該要求,對(duì)圖2-1進(jìn)行修改,畫(huà)出修改后的實(shí)體間聯(lián)系和聯(lián)系的類(lèi)型。

 

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

【說(shuō)明】

    某城市擬開(kāi)發(fā)一個(gè)基于Web城市黃頁(yè),公開(kāi)發(fā)布該城市重要的組織或機(jī)構(gòu)(以下統(tǒng)稱(chēng)為客戶(hù))的基本信息,方便城市生活。該系統(tǒng)的主要功能描述如下:

    (1)搜索信息:任何使用Internert的網(wǎng)絡(luò)用戶(hù)都可以搜索發(fā)布在城市黃頁(yè)中的信息,例如客戶(hù)的名稱(chēng)、地址、聯(lián)系電話(huà)等。

    (2)認(rèn)證:客戶(hù)若想在城市黃頁(yè)上發(fā)布信息,需通過(guò)系統(tǒng)的認(rèn)證。認(rèn)證成功后,該客戶(hù)成為系統(tǒng)授權(quán)用戶(hù)。

    (3)更新信息:授權(quán)用戶(hù)登錄系統(tǒng)后,可以更改自己在城市黃頁(yè)中的相關(guān)信息,例如變更聯(lián)系電話(huà)等。

    (4)刪除客戶(hù):對(duì)于拒絕繼續(xù)在城市黃頁(yè)上發(fā)布信息的客戶(hù),有系統(tǒng)管理員刪除該客戶(hù)的相關(guān)信息。

    系統(tǒng)采用面向?qū)ο蠓椒ㄟM(jìn)行開(kāi)發(fā),在開(kāi)發(fā)過(guò)程中認(rèn)定出如表3-1所示的類(lèi)。系統(tǒng)的用例圖和類(lèi)圖分別如圖3-1和圖3-2所示。

  圖片5.png

圖片6.png

圖片7.png 
   
【問(wèn)題1】(5分)

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

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

    根據(jù)說(shuō)明中的描述,給出圖3-2中C1~C5所對(duì)應(yīng)的類(lèi)名(表3-1中給出的類(lèi)名)和(2)~(5)處所對(duì)應(yīng)的多重度。

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

    認(rèn)定類(lèi)是面向?qū)ο蠓治鲋蟹浅jP(guān)鍵的一個(gè)步驟。一般首先從問(wèn)題域中得到候選類(lèi)集合,在根據(jù)相應(yīng)的原則從該集合中刪除不作為類(lèi)的,剩余的就是從問(wèn)題域中認(rèn)定出來(lái)的類(lèi)。簡(jiǎn)要說(shuō)明選擇候選類(lèi)的原則,以及對(duì)候選類(lèi)集合進(jìn)行刪除的原則。

 

● 設(shè)有m臺(tái)完全相同的機(jī)器運(yùn)行n個(gè)獨(dú)立的任務(wù),運(yùn)行任務(wù)i所需的時(shí)間為ti,要求確定一個(gè)調(diào)度方案,使得完成所有任務(wù)所需要的時(shí)間最短。
假設(shè)任務(wù)已經(jīng)按照其運(yùn)行時(shí)間從大到小排序,算法基于最長(zhǎng)運(yùn)行時(shí)間作業(yè)優(yōu)先的策略,按順序先把每個(gè)任務(wù)分配到一臺(tái)機(jī)器上,然后將剩余的任務(wù)一次放入最先空閑的機(jī)器。
C代碼】
下面是算法的C語(yǔ)言實(shí)現(xiàn)。
1.常量和變量說(shuō)明
m:機(jī)器數(shù)
n:任務(wù)數(shù)
t[]:輸入數(shù)組,長(zhǎng)度為n,下標(biāo)從0開(kāi)始,其中每個(gè)元素表示任務(wù)的運(yùn)行時(shí)間,下標(biāo)從0開(kāi)始。
s[][]:二位數(shù)組,長(zhǎng)度為m*n,下標(biāo)從0開(kāi)始,其中元素s[i][j]表示機(jī)器i運(yùn)行的任務(wù)j的編號(hào)。
d[]:數(shù)組,長(zhǎng)度為m其中元素d[i]表示機(jī)器i的運(yùn)行時(shí)間,下標(biāo)從0開(kāi)始。
count[]:數(shù)組,長(zhǎng)度為m,下標(biāo)從0開(kāi)始,其中元素count[i]表示機(jī)器i運(yùn)行的任務(wù)數(shù)。
i:循環(huán)變量。
j:循環(huán)變量。
k:臨時(shí)變量。
max:完成所有任務(wù)的時(shí)間。
min:臨時(shí)變量。 2.函數(shù)schedule
void  schedule__(8)__{
int i,j,k,max=0;
 for( i=0;i<m;i++){
d[i]=0;
  for(j=0;j<n;j++){
s[i][j]=0;
  }
  }
  for(i=0;i<m;i++){ //分配前m個(gè)任務(wù)
s[i][0]=i;
  (1)   ;
  count[i]=1;
}
for(  (2)  ;i<n;i++){ //分配后n~m個(gè)任務(wù)
int min = d[0];
k=0;
for(j=1;j<m;j++){ //確定空閑時(shí)間
  if(min>d[j]){
  min = d[j];
k=j;  //機(jī)器k空閑
  }
  }
(3) ;
count[k] = count[k]+1;
d[k] = d[k]+t[i];
}
for(i =0;i<m;i++){ //確定完成所有任務(wù)所需要的時(shí)間
  if(  (4)  ){
max=d[i];
  }
}
}
【問(wèn)題1】(8分)

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

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

根據(jù)說(shuō)明和C代碼,該問(wèn)題采用了 (5)   算法設(shè)計(jì)策略,時(shí)間復(fù)雜度 (6)  (用O符號(hào)表示)

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

考慮實(shí)例m=3(編號(hào)0~2),n=7(編號(hào)0~6),各任務(wù)的運(yùn)行時(shí)間為{16,14,6,5,4,3,2}。則在機(jī)器0、1和2上運(yùn)行的任務(wù)分別為(7)、(8)和(9)(給出任務(wù)編號(hào))。從任務(wù)開(kāi)始運(yùn)行到完成所需的時(shí)間為(10)。

 

● 現(xiàn)要求實(shí)現(xiàn)一個(gè)能夠自動(dòng)生成求職簡(jiǎn)歷的程序,簡(jiǎn)歷的基本內(nèi)容包括求職者的姓名、性別、年齡及工作經(jīng)歷。希望每份簡(jiǎn)歷中的工作經(jīng)歷有所不同,盡量減少程序中的重復(fù)代碼。現(xiàn)采用原型模式(Prototype)來(lái)實(shí)現(xiàn)上述要求,得到如圖5-1所示的類(lèi)圖。


圖片1.png
C++代碼】
#include<string>
using namespace std;
class  Cloneable{
public:
(1)  ;
};
class  workExperience:public  Cloneable{ //工作經(jīng)歷
private:
  string  workData;
  string  company;
public:
Cloneable * clone__(11)__{
  (2)  ;
Obj->workDate= this->workDate;
Obj->company = this->company;
return Obj;
}
 //其余代碼省略
}; class  Resume:public  Cloneable{  //簡(jiǎn)歷
private:
  string name;
  string sex;
  string age;
  WorkExperience * work;
  Resume(WorkExperience * work){
  this->work =  (3)  ;
  }
public:
  Resume(string name){/*實(shí)現(xiàn)省略*/}
  void SetPersonInfo(string sex,string age){/*實(shí)現(xiàn)省略*/}
  void SetWorkExperience(string workDate,string company){/*實(shí)現(xiàn)省略*/}
  Cloneable * Clone__(12)__{
(4) ;
  Obj->name = this->name;
Obj->sex = this->sex;
Obj->age = this->age;
return Obj;
}
}; int  main__(13)__{
  Resume * a  = new Resume(“張三”);
  a->SetPersonInfo(“男”,“29”);
  a-> SetWorkExperience(“1998-2000”,“XXX公司”);
  Resume * b =  (5) ;
  b-> SetWorkExperience(“2001-2006”,“YYY公司”);
  return 0;
}

 

● 現(xiàn)要求實(shí)現(xiàn)一個(gè)能夠自動(dòng)生成求職簡(jiǎn)歷的程序,簡(jiǎn)歷的基本內(nèi)容包括求職者的姓名、性別、年齡及工作經(jīng)歷。希望每份簡(jiǎn)歷中的工作經(jīng)歷有所不同,并盡量減少程序中的重復(fù)代碼。
現(xiàn)采用原型模式(Prototype)來(lái)實(shí)現(xiàn)上述要求,得到如圖6-1所示的類(lèi)圖。
圖片2.png

Java代碼】
public  class  workExperience (1)   Cloneable{ //工作經(jīng)歷
private  String  workDate;
private  String  company;
public  Object  clone__(16)__{
  (2)  ;
  Obj.workDate= this.workDate;
  Obj.company = this.company;
return Obj;
}
  //其余代碼省略
} public  class  Resume  (3)  Cloneable{  //簡(jiǎn)歷
private  String  name;
private  String  sex;
private  String  age;
private  WorkExperience  work; public  Resume(string name){
  this.name = name;
        work = new WorkExperience__(17)__;
}
private  Resume(WorkExperience  work){
  this.work = (4) ;
}
public  void  SetPersonInfo(string sex,string age){/*實(shí)現(xiàn)省略*/}
public  void  SetWorkExperience(string workDate,string company){/*實(shí)現(xiàn)省略*/}
public  Object  clone__(18)__{
Resume Obj =  (5) ;
return Obj;
}
}

Class WorkResume{
public  static  void  main__(19)__{
  Resume   a  = new Resume(“張三”);
  a.SetPersonInfo(“男”,“29”);
  a.SetWorkExperience(“1998-2000”,“XXX公司”);
  Resume  b =  (6) ;
  b. SetWorkExperience(“2001-2006”,“YYY公司”);
}
}

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

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

去領(lǐng)取

!
咨詢(xún)?cè)诰€(xiàn)老師!