第
3題: 閱讀下列說明和圖,回答問題1至問題3,將解答填入答題紙的對應欄內(nèi)。
【說明】
某城市擬開發(fā)一個基于Web城市黃頁,公開發(fā)布該城市重要的組織或機構(以下統(tǒng)稱為客戶)的基本信息,方便城市生活。該系統(tǒng)的主要功能描述如下:
(1)搜索信息:任何使用Internert的網(wǎng)絡用戶都可以搜索發(fā)布在城市黃頁中的信息,例如客戶的名稱、地址、聯(lián)系電話等。
(2)認證:客戶若想在城市黃頁上發(fā)布信息,需通過系統(tǒng)的認證。認證成功后,該客戶成為系統(tǒng)授權用戶。
(3)更新信息:授權用戶登錄系統(tǒng)后,可以更改自己在城市黃頁中的相關信息,例如變更聯(lián)系電話等。
(4)刪除客戶:對于拒絕繼續(xù)在城市黃頁上發(fā)布信息的客戶,有系統(tǒng)管理員刪除該客戶的相關信息。
系統(tǒng)采用面向對象方法進行開發(fā),在開發(fā)過程中認定出如表3-1所示的類。系統(tǒng)的用例圖和類圖分別如圖3-1和圖3-2所示。


?【問題1】(5分)
根據(jù)說明中的描述,給出圖3-1中A1和A2處所對應的參與者,UC1和UC2所對應的用例以及(1)處的關系。
?【問題2】(7分)
根據(jù)說明中的描述,給出圖3-2中C1~C5所對應的類名(表3-1中給出的類名)和(2)~(5)處所對應的多重度。
?【問題3】(3分)
認定類是面向對象分析中非常關鍵的一個步驟。一般首先從問題域中得到候選類集合,在根據(jù)相應的原則從該集合中刪除不作為類的,剩余的就是從問題域中認定出來的類。簡要說明選擇候選類的原則,以及對候選類集合進行刪除的原則。
答案解析與討論:
m.xiexiliangjiufa.com/st/3812929056.html第
4題:
閱讀下列說明和C代碼,回答問題1至問題3,將解答寫在答題紙的對應欄內(nèi)。
【說明】
設有m臺完全相同的機器運行n個獨立的任務,運行任務i所需的時間為t
i,要求確定一個調(diào)度方案,使得完成所有任務所需要的時間最短。
假設任務已經(jīng)按照其運行時間從大到小排序,算法基于最長運行時間作業(yè)優(yōu)先的策略,按順序先把每個任務分配到一臺機器上,然后將剩余的任務一次放入最先空閑的機器。
【C代碼】
下面是算法的C語言實現(xiàn)。
1.常量和變量說明
m:機器數(shù)
n:任務數(shù)
t[]:輸入數(shù)組,長度為n,下標從0開始,其中每個元素表示任務的運行時間,下標從0開始。
s[][]:二位數(shù)組,長度為m*n,下標從0開始,其中元素s[i][j]表示機器i運行的任務j的編號。
d[]:數(shù)組,長度為m其中元素d[i]表示機器i的運行時間,下標從0開始。
count[]:數(shù)組,長度為m,下標從0開始,其中元素count[i]表示機器i運行的任務數(shù)。
i:循環(huán)變量。
j:循環(huán)變量。
k:臨時變量。
max:完成所有任務的時間。
min:臨時變量。
2.函數(shù)schedule
void schedule(){
int i,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]=i;
(1) ;
count[i]=1;
}
for( (2) ;i int min = 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】(8分)
根據(jù)說明和C代碼,填充C代碼中的空(1)~(4)。
?【問題2】(2分)
根據(jù)說明和C代碼,該問題采用了 (5) 算法設計策略,時間復雜度 (6) (用O符號表示)
?【問題3】(5分)
考慮實例m=3(編號0~2),n=7(編號0~6),各任務的運行時間為{16,14,6,5,4,3,2}。則在機器0、1和2上運行的任務分別為(7)、(8)和(9)(給出任務編號)。從任務開始運行到完成所需的時間為(10)。
答案解析與討論:
m.xiexiliangjiufa.com/st/3813019827.html第
5題: 閱讀下列說明和C++代碼,將應填入(n)處的字句寫在答題紙的對應欄內(nèi)。
【說明】
現(xiàn)要求實現(xiàn)一個能夠自動生成求職簡歷的程序,簡歷的基本內(nèi)容包括求職者的姓名、性別、年齡及工作經(jīng)歷。希望每份簡歷中的工作經(jīng)歷有所不同,并盡量減少程序中的重復代碼。
現(xiàn)采用原型模式(Prototype)來實現(xiàn)上述要求,得到如圖5-1所示的類圖。

【C++代碼】
#include
using namespace std;
class Cloneable{
public:
(1) ;
};
class workExperience:public Cloneable{ //工作經(jīng)歷
private:
string workData;
string company;
public:
Cloneable * clone(){
(2) ;
Obj->workDate= this->workDate;
Obj->company = this->company;
return Obj;
}
//其余代碼省略
};
class Resume:public Cloneable{ //簡歷
private:
string name;
string sex;
string age;
WorkExperience * work;
Resume(WorkExperience * work){
this->work = (3) ;
}
public:
Resume(string name){/*實現(xiàn)省略*/}
void SetPersonInfo(string sex,string age){/*實現(xiàn)省略*/}
void SetWorkExperience(string workDate,string company){/*實現(xiàn)省略*/}
Cloneable * Clone(){
(4) ;
Obj->name = this->name;
Obj->sex = this->sex;
Obj->age = this->age;
return Obj;
}
};
int main(){
Resume * a = new Resume(“張三”);
a->SetPersonInfo(“男”,“29”);
a-> SetWorkExperience(“1998-2000”,“XXX公司”);
Resume * b = (5) ;
b-> SetWorkExperience(“2001-2006”,“YYY公司”);
return 0;
}
答案解析與討論:
m.xiexiliangjiufa.com/st/3813114118.html