女人久久久www免费人成看片,国内自拍偷拍网,国产一区二区三区免费在线观看,欧美精品三区四区,91久久国产综合久久91,欧美成人精品第一区二区三区 ,美女成人在线观看

軟題庫 學(xué)習(xí)課程
試卷年份2008年下半年
試題題型【分析簡答題】
試題內(nèi)容

試題六
閱讀下列說明和C++代碼,將應(yīng)填入  (n)  處的字句寫在對應(yīng)欄內(nèi)。
【說明】
已知某類庫開發(fā)商提供了一套類庫,類庫中定義了Application類和Document類,它們之間的關(guān)系如下圖所示。其中,Application類表示應(yīng)用程序自身,而Document類則表示應(yīng)用程序打開的文檔。Application類負(fù)責(zé)打開一個已有的以外部形式存儲的文檔,如一個文件,一旦從該文件中讀出信息后,它就由一個Document對象表示。
當(dāng)開發(fā)一個具體的應(yīng)用程序時,開發(fā)者需要分別創(chuàng)建自己的Application和Document子類,例如上圖中的類MyApplication和類MyDocument,并分別實現(xiàn)Application和 Document類中的某些方法。
已知Application類中的openDocument方法采用了模板方法(Template Method)設(shè)計模式,該方法定義了打開文檔的每一個主要步驟,如下所示:

1.首先檢查文檔是否能夠被打開,若不能打開,則給出出錯信息并返回;
2.創(chuàng)建文檔對象;
3.通過文檔對象打開文檔;
4.通過文檔對象讀取文檔信息;
5.將文檔對象加入到Application的文檔對象集合中。
【C++代碼】
#include<iostream>
#include<vector>
using namespace std;
class Document{
public:
void save(){/*存儲文檔數(shù)據(jù),此處代碼省略*/)
void open(string docName){ /*打開文檔,此處代碼省略*/)
void close(){  /*關(guān)閉文檔,此處代碼省略*/)
virtual void read(string docName) =0;
};
class Appplication{
private:
vector<  (1)  >  docs;  /*文檔對象集合*/
public:
bool canOpenDocument(string docName){
/*判斷是否可以打開指定文檔,返回真值時表示可以打開,
返回假值表示不可打開,此處代碼省略*/
}
void addDocument(Document * aDocument){
/*將文檔對象添加到文檔對象集合中*/
docs.push_back(  (2)  );
}
virtual Document * doCreateDocument()=0;/*創(chuàng)建一個文檔對象*/
void openDocument(string docName){/*打開文檔*/
if  (  (3)  ){
cout<<“文檔無法打開!”<<endl;
return;
}
(4)   adoc=   (5)  ;
(6)  ;
(7)  ;
(8)  ;
}
};



查看答案

相關(guān)試題

3題:

試題三
閱讀下列說明和圖,回答問題1至問題4,將解答填入對應(yīng)欄內(nèi)。
【說明】
在線會議審稿系統(tǒng)(Online Reviewing System,ORS)主要處理會議前期的投稿和審稿事務(wù),其功能描述如下:
1.用戶在初始使用系統(tǒng)時,必須在系統(tǒng)中注冊(register)成為作者或?qū)徃迦恕?br />2.作者登錄(login)后提交稿件和瀏覽稿件審閱結(jié)果。提交稿件必須在規(guī)定提交時間范圍內(nèi),其過程為先輸入標(biāo)題和摘要、選擇稿件所屬主題類型、選擇稿件所在位置 (存儲位置)。上述幾步若未完成,則重復(fù);若完成,則上傳稿件至數(shù)據(jù)庫中,系統(tǒng)發(fā)送通知。
3.審稿人登錄后可設(shè)置興趣領(lǐng)域、審閱稿件給出意見以及羅列錄用和(或)拒絕的稿件。
4.會議委員會主席是一個特殊審稿人,可以瀏覽提交的稿件、給審稿人分配稿件、羅列錄用和(或)拒絕的稿件以及關(guān)閉審稿過程。其中,關(guān)閉審稿過程須包括羅列錄用和(或)拒絕的稿件。
系統(tǒng)采用面向?qū)ο蠓椒ㄩ_發(fā),使用UMi進(jìn)行建模。在建模用例圖時,常用的方式是先識別參與者,然后確定參與者如何使用系統(tǒng)來確定用例,每個用例可以構(gòu)造一個活動圖。參與者名稱、用例和活動名稱分別參見以下各表。參與者列表


【問題1】
根據(jù)[說明]中的描述,使用參與者列表的英文名稱,給出ORS用例圖中A1~A4所對應(yīng)的參與者。
【問題2】
根據(jù)[說明]中的描述,使用用例名稱列表中的英文名稱,給出ORS用例圖中U1一 U3所對應(yīng)的用例。
【問題3】
根據(jù)[說明]中的描述,給出ORS用例圖中  (1)  和  (2)  所對應(yīng)的關(guān)系。
【問題4】
根據(jù)[說明]中的描述,使用用例名稱列表和活動名稱列表中的英文名稱,給出提交稿件過程的活動圖中Actionl~Action4對應(yīng)的活動。



答案解析與討論:m.xiexiliangjiufa.com/st/245733042.html

4題:

試題四
閱讀下列說明,回答問題1至問題3,將解答填入對應(yīng)欄內(nèi)。
【說明】
某餐廳供應(yīng)各種標(biāo)準(zhǔn)的營養(yǎng)套餐。假設(shè)菜單上共有n項食物m1,m2,…,mn,每項食物mi的營養(yǎng)價值為vi,價格為pi其中i=1,2,…,n,套餐中每項食物至多出現(xiàn)一次??腿顺P枰粋€算法來求解總價格不超過M的營養(yǎng)價值最大的套餐。
【問題1】
下面是用動態(tài)規(guī)劃策略求解該問題的偽代碼,請?zhí)畛淦渲械目杖?1)、(2)和(3)處。
偽代碼中的主要變量說明如下。
n:總的食物項數(shù);
v:營養(yǎng)價值數(shù)組,下標(biāo)從1到n,對應(yīng)第1到第n項食物的營養(yǎng)價值;
p:價格數(shù)組,下標(biāo)從1到n,對應(yīng)第1到第n項食物的價格;
M:總價格標(biāo)準(zhǔn),即套餐的價格不超過M;
x:解向量(數(shù)組),下標(biāo)從1到n,其元素值為0或1,其中元素值為0表示對應(yīng)的食物不出現(xiàn)在套餐中,元素值為1表示對應(yīng)的食物出現(xiàn)在套餐中;
nv:n+1行M+1列的二維數(shù)組,其中行和列的下標(biāo)均從0開始,nv[i][j]表示由前i項食物組合且價格不超過j的套餐的最大營養(yǎng)價值。問題最終要求的套餐的最大營養(yǎng)價值為nv[n][M]。
偽代碼如下:
MaxNutrientValue(n,v,p,M,x)
1  for i=0  to n
2  nv[i][0] = 0
3  for j=1 to M
4  nv[0][j]=0
5  for i=1 to n
6  for j=1 to M
7  if j<p[i]  //若食物mi不能加入到套餐中
8  nv[i][j] =  nv[i-1][j]
9  else if   (1)
10  nv[i][j]=  nv[i-1][j]
11  else
12  nv[i][j]=  nv[i-1][j-p[i]]  +  v[i]
13  j = M
14  for i=n downto 1
15  if   (2)
16  x[i] = 0
17  else
18  x[i] = 1
19    (3)
20  return x and nv[n][M]
【問題2】
現(xiàn)有5項食物,每項食物的營養(yǎng)價值和價格如下表所示。

食物營養(yǎng)價值及價格表
若要求總價格不超過100的營養(yǎng)價值最大的套餐,則套餐應(yīng)包含的食物有  (4)  (用食物項的編碼表示),對應(yīng)的最大營養(yǎng)價值為  (5)  。
【問題3】
問題1中偽代碼的時間復(fù)雜度為  (6)  (用O符號表示)。



答案解析與討論:m.xiexiliangjiufa.com/st/2457421374.html

5題:

試題五
閱讀下列說明和C函數(shù),將應(yīng)填入  (n)  處的字句寫在對應(yīng)欄內(nèi)。
【說明】
已知集合A和B的元素分別用不含頭結(jié)點的單鏈表存儲,函數(shù)Difference()用于求解集合A與B的差集,并將結(jié)果保存在集合A的單鏈表中。例如,若集合A={5,10, 20,15,25,30},集合B={5,15,35,25},如圖(a)所示,運算完成后的結(jié)果如圖(b)所示。

鏈表結(jié)點的結(jié)構(gòu)類型定義如下:
typedef struct Node{
ElemType elem;
struct Node *next;
}NodeType;
【C函數(shù)】
void Difference(NodeType **LA,NodeType *LB.
{
NodeType  *pa,  *pb,  *pre,  *q;


pre=NULL;
(1)  ;
while  (pa)  {
pb=LB;
while(  (2)  )
pb=pb->next;
if(  (3)  )  {
if(!pre)
*LA=  (4)  ;
else
(5)  =pa->next;
q = pa;
pa=pa->next;
free(q);
}
else  {
(6)  ;
pa=pa->next;
}
}
}



答案解析與討論:m.xiexiliangjiufa.com/st/2457526064.html

7題:

試題七
閱讀下列說明和Java代碼,將應(yīng)填入  (n)  處的字句寫在對應(yīng)欄內(nèi)。
【說明】
已知某類庫開發(fā)商捉供了一套類庫,類庫中定義了Application類和Document類,它們之間的關(guān)系如下圖所示,其中,Application類表示應(yīng)用程序自身,而Document類則表示應(yīng)用程序打開的文檔。Application類負(fù)責(zé)打開一個已有的以外部形式存儲的文檔,如一個文件,一旦從該文件中讀出信息后,它就由一個Document對象表示。

當(dāng)開發(fā)一個具體的應(yīng)用程序時,開發(fā)者需要分別創(chuàng)建自己的Application和Document子類,例如上圖中的類MyApplication和類MyDocument,并分別實現(xiàn)Application和 Document類中的某些方法。
已知Application類中的openDocument方法采用了模板方法(Template Method)設(shè)計模式,該方法定義了打開文檔的每一個主要步驟,如下所示:
1.首先檢查文檔是否能夠被打開,若不能打開,則給出出錯信息并返回;
2.創(chuàng)建文檔對象;
3.通過文檔對象打開文檔;
4.通過文檔對象讀取文檔信息;
5.將文檔對象加入到Application的文檔對象集合中。
【Java代碼】
abstract class Document{
public void save(){/*存儲文檔數(shù)據(jù),此處代碼省略*/  )
public void open(String docName){  /*打開文檔,此處代碼省略*/)
public void close(){    /*關(guān)閉文檔,此處代碼省略*/)
public abstract void read(String docName);
};
abstract class Appplication{
private Vector<  (1)  >  docs;  /*文檔對象集合*/


public  boolean canOpenDocument(String docName){
/*判斷是否可以打開指定文檔,返回真值時表示可以打開,
返回假值表示不可打開,此處代碼省略*/
}
public void addDocument(Document aDocument){
/*將文檔對象添加到文檔對象集合中*/
docs.a(chǎn)dd(  (2)  );
}
public abstract Document doCreateDocument();/*創(chuàng)建一個文檔對象*/
public void openDocument(String docName){/*打開文檔*/
if (  (3)  )  {
System.out.println(“文檔無法打開!”);
return;
}
(4)  adoc=  (5)  ;
(6)  ;
(7)  ;
(8)  ;
}
};



答案解析與討論:m.xiexiliangjiufa.com/st/2457710715.html