久久久久久做,国产69精品久久久久999天美,一级毛片生活片,国产在线欧美在线,日本黄色一级片免费看,欧美黄色1级视频,少妇高潮av久久久久久

軟題庫 學(xué)習(xí)課程
當(dāng)前位置:信管網(wǎng) >> 在線考試中心 >> 軟件設(shè)計(jì)師題庫 >> 試題查看
試卷年份2022年上半年
試題題型【分析簡(jiǎn)答題】
試題內(nèi)容

閱讀下列說明和C++代碼。將應(yīng)填入(n)處的字句寫在答題紙的對(duì)應(yīng)欄內(nèi)。
【說明】
在軟件系統(tǒng)中,通常不會(huì)給用戶提供取消、不確定或者錯(cuò)誤操作的選擇,允許將系統(tǒng)恢復(fù)到原先的狀態(tài)?,F(xiàn)使用備忘錄(Memento)模式實(shí)現(xiàn)該要求,得到如圖5-1所示的類圖。Memento 包含了要被恢復(fù)的狀態(tài)。Originator創(chuàng)建并在Memento中存儲(chǔ)狀態(tài)。Caretaker負(fù)責(zé)從Memento中恢復(fù)狀態(tài)。





圖5-1 類圖
【C++代碼】
#include
#include
#include
using namespace std;
class Memento{
private:
string state;
public:
Memento(string state){
       this->state=state;
}
string getState(){
       return state;
}
}
class Originator{
private:
string state;
public:
void setState(string state){
       this>sate=state;
}
string getState(){
       return state;
}
Memento saveStateToMemento(){
          return (1)
}
void getStateFromMemento(Memento Memento){
       state (2)
}
class CareTaker{
private:
vector mementoList;
pubilc:
void(3){
   mementoList.push back(state)
   (4);return mementoList(index);
}
int mian(){
Originator*originator=new Originator();
CareTaker*careTaker=new CareTaker();
originator->setState("State #1");
originator->setState("State #2");
careTaker->add(_(5)_);
originator->setState("State #3");
careTaker->add((6));
originator->setState("State #4");
cout <<"Current State:"<<"+" <<originator->getState( )<<endl;
originator->getStateFromMemento(careTaker->get(0);
cout<<"First saved State:"<<originator->getStatee( )<<endl;
originator->getStateFromMemento(careTaker->get(1);
cout<<"second save State"<<"+" <<originator>getState( )<<endl;
return 0;
}

查看答案

相關(guān)試題

2題: 試題二
按照下列圖表,填寫答題紙的對(duì)應(yīng)欄內(nèi)。
[說明]
為了提高接種工作,提高效率,并未了抗擊疫情提供疫苗接種數(shù)據(jù)支撐,需要開發(fā)一個(gè)信息系統(tǒng),下述需求完成該系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì)。
(1)記錄疫苗供應(yīng)商的信息,包括供應(yīng)商名稱,地址和一個(gè)電話。
(2)記錄接種醫(yī)院的信息,包括醫(yī)院名稱、地址和一個(gè)電話。
(3)記錄接種者個(gè)人信息,包括姓名、身份證號(hào)和一個(gè)電話。
(4)記錄接種者疫苗接種信息,包括接種醫(yī)院信息,被接種者信息,疫苗供應(yīng)商名稱和接種日期,為了提高免疫力,接種者可能需要進(jìn)行多次疫苗接種,(每天最多接種一次,每次都可以在全市任意一家醫(yī)院進(jìn)行疫苗接種)。
【概念模型設(shè)計(jì)】
根據(jù)概念模型設(shè)計(jì)階段完成的實(shí)體聯(lián)系圖,得出如下關(guān)系模式(不完整):

圖2-1 E-R圖
【邏輯結(jié)構(gòu)設(shè)計(jì)】
根據(jù)概念模型設(shè)計(jì)階段完成的實(shí)體聯(lián)系圖,得出如下關(guān)系模式(不完整):
供應(yīng)商(供應(yīng)商名稱、地址、電話)
醫(yī)院(醫(yī)院名稱、地址、電話)
供貨(供應(yīng)商名稱,(a),供貨內(nèi)容)
被接種者(姓名、身份證號(hào)、電話)
接種(接種者身份證號(hào),(b),醫(yī)院名稱、供應(yīng)商名稱)
[問題1](4分)
根據(jù)問題描述,補(bǔ)充圖2-1的實(shí)體聯(lián)系圖(不增加新的實(shí)體)。
[問題2](4分)
補(bǔ)充邏輯結(jié)構(gòu)設(shè)計(jì)結(jié)果中的(a)(b)兩處空缺,并標(biāo)注主鍵和外健完整性約束。
[問題3](7分)
若醫(yī)院還兼有核酸檢測(cè)的業(yè)務(wù),檢測(cè)時(shí)可能需要進(jìn)行多次植酸檢測(cè)(每天最多檢測(cè)一次),但每次都可以在全市任意一家醫(yī)院進(jìn)行檢測(cè)。
請(qǐng)?jiān)趫D2-1中增加“被檢測(cè)者”、實(shí)體及相應(yīng)的屬性。醫(yī)院與被檢測(cè)者之間的“檢測(cè)”聯(lián)系及必要的屬性,并給出新增加的關(guān)系模式。
“被檢測(cè)者”實(shí)體包括姓名、身份證號(hào)、地址和一個(gè)電話?!皺z測(cè)”聯(lián)系需要包括檢測(cè)日期和檢測(cè)結(jié)果等。答案解析與討論:www.zwdsj.com/st/522171226.html

3題: 試題三
閱讀下列說明和圖,回答問題1至問題3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
[說明]
某公司的人事能門擁有一個(gè)地址博(AddressBookSystem),管理系統(tǒng)(ddressBookSystem),用于管理公司所有員工的地址記錄(PersonAddress)。員工的地址記錄包括:姓名、住址、城市、省份、郵政編碼以及聯(lián)系電話等等信息。
管理員可以完成對(duì)地址簿中地址記錄的管理操作,包括:
(1)維護(hù)地址記錄。根據(jù)司的人員變動(dòng)情況,對(duì)地址記錄進(jìn)行添加、修改、刪除等操作;
(2)排序。按照員工姓氏的字典順序或郵政編碼對(duì)址領(lǐng)中的所有記錄。
(3)打印地址記錄。以郵件標(biāo)簽的格式打印一個(gè)地址單獨(dú)的地址簿。系統(tǒng)會(huì)記錄管理為便于管理,管理員在系統(tǒng)中為公可的不同部門建立員對(duì)每個(gè)地址簿的修改操作,包括:
(1)創(chuàng)建地址簿。新建個(gè)地址簿并保存。
(2)打開地址簿。打開一一個(gè)已有的地址簿。
(3)修改地址簿。對(duì)打開的地址簿進(jìn)行修改并保存
系統(tǒng)將提供一個(gè)GUI(圖形用戶界面)實(shí)現(xiàn)對(duì)地址簿的各種操作。
現(xiàn)采用面向?qū)ο蠓椒ǚ治霾⒃O(shè)計(jì)該地址簿管理系統(tǒng),得到如圖3-1所示的用例圖和圖3-2所示的類圖。



[問題1](6分)
根據(jù)說明中的描述,給出圖3-1中U1~U6所對(duì)應(yīng)的用例名。
[問題2](5分)
根據(jù)說明中的描述,給出圖3-2中類Adresk的主要屬性和方法以及類Pernoddress的主要屬性(可以使用說明中的文字)。
[問題3](4分)
根據(jù)說明中的描述以及圖31所示的用例圖,請(qǐng)閱enedecx系cxe關(guān)的含義是什么?
答案解析與討論:www.zwdsj.com/st/5221828861.html

4題:

 某工程計(jì)算中經(jīng)常要完成多個(gè)矩陣相乘(鏈乘)的計(jì)算任務(wù),對(duì)矩陣相乘進(jìn)行以下說明。
(1)兩個(gè)矩陣相乘要求第一個(gè)矩陣的列數(shù)等于第二個(gè)矩陣的行數(shù),計(jì)算量主要由進(jìn)行乘法運(yùn)算的次數(shù)決定,假設(shè)采用標(biāo)準(zhǔn)的矩陣相乘算法,計(jì)算Amxn*Bnxp需要m*n*p次行乘法運(yùn)算的次數(shù)決定、乘法運(yùn)算,即時(shí)間復(fù)雜度為O(m*n*p)。
(2)矩陣相乘滿足結(jié)合律,多個(gè)矩陣相乘時(shí)不同的計(jì)算順序會(huì)產(chǎn)生不同的計(jì)算量。以矩陣A15×100,A2100*8,A38x50三個(gè)矩陣相乘為例,若按(A1*A2)*A3計(jì)算,則需要進(jìn)行5*100*8+5*8*50=6000次乘法運(yùn)算,若按A1*(A2*A3)計(jì)算,則需要進(jìn)行100*8*50+5*100*50=65000次乘法運(yùn)算。
矩陣鏈乘問題可描述為:給定n個(gè)矩陣,對(duì)較大的n,可能的計(jì)算順序數(shù)量非常龐大,用蠻力法確定計(jì)算順序是不實(shí)際的。經(jīng)過對(duì)問題進(jìn)行分析,發(fā)現(xiàn)矩陣鏈乘問題具有最優(yōu)子結(jié)構(gòu),即若A1*A2**An的一個(gè)最優(yōu)計(jì)算順序從第k個(gè)矩陣處斷開,即分為A1*A2*…*Ak和Ak+1*Ak+2*...*An兩個(gè)子問題,則該最優(yōu)解應(yīng)該包含 A1*A2*…*Ak的一個(gè)最優(yōu)計(jì)算順序和 Ak+1*Ak+2*...*An  的一個(gè)最優(yōu)計(jì)算順序。據(jù)此構(gòu)造遞歸式:

其中,cost[i][j]表示Ai+1*Ai+2*...Aj+1的最優(yōu)計(jì)算的計(jì)算代價(jià)。最終需要求解cost[0][n-1]。
【C代碼】
算法實(shí)現(xiàn)采用自底向上的計(jì)算過程。首先計(jì)算兩個(gè)矩陣相乘的計(jì)算量,然后依次計(jì)算3個(gè)矩陣、4個(gè)矩陣、…、n個(gè)矩陣相乘的最小計(jì)算量及最優(yōu)計(jì)算順序。下面是該算法的語言實(shí)現(xiàn)。
(1) 主要變量說明
n:矩陣數(shù)
seq[]:矩陣維數(shù)序列
cost[i][j]:二維數(shù)組,長(zhǎng)度為n*n,其中元素cost[i][j]表示Ai+1*Ai+2**Aj+1的最優(yōu)的計(jì)算代價(jià)。
trace[][]:二維數(shù)組,長(zhǎng)度為n*n,其中元素trace[i][j]表示Ai+1*Ai+2**Aj+1的最優(yōu)計(jì)算順序?qū)?yīng)的劃分位置,即k。

(2)函數(shù)cmm
#define N100
int cost[N[N];
int trace[N][N]; 
int cmm(int n,int seq[]){ 
    int tempCost; 
    int tempTrace; 
    int i,j,k,p; 
    int temp; 
     for( i=0;i<n;i++){ cost[i][i] = 0;} 
     for(p=1;p<n;p++){ 
        for(i=0; i<n-p;i++){
            (1)  ; 
            tempCost = -1; 
            for(k = i;  (2) ;k++){    
                temp=  (3)  ; 
                if(tempCost==-1 || tempCost>temp){                
                    tempCost = temp;
                    tempTrace=k; 
                } 
            } 
            cost[i][j] = tempCost; 
            (4)  ;
        } 
    } 
    return cost[0][n-1]; 

【問題1】(8分)
根據(jù)以上說明和C代碼,填充C代碼中的空(1)~(4)。
【問題2】(4分)
根據(jù)以上說明和C代碼,該問題采用了(5)算法設(shè)計(jì)策略,時(shí)間復(fù)雜度為(6)(用O符號(hào)表示)。
【問題3】(3分)
考慮實(shí)例n=4,各個(gè)矩陣的維數(shù)為A1為15*5,A2為5*10,A3為10*20,A4為20*25,即維度序列為15,5,10,20和25。則根據(jù)上述C代碼得到的一個(gè)最優(yōu)計(jì)算順序?yàn)椋?)(用加括號(hào)方式表示計(jì)算順序),所需要的乘法運(yùn)算次數(shù)為 (8)。 



答案解析與討論:www.zwdsj.com/st/5221926532.html

6題: 試題六(共15分)
閱讀下列說明和Java代碼,將應(yīng)填入(n)處的字句寫在答題紙的對(duì)應(yīng)欄內(nèi)。
【說明】
在軟件系統(tǒng)中,通常都會(huì)給用戶提供取消、不確定或者錯(cuò)誤操作的選擇,允許將系統(tǒng)恢復(fù)到原先的狀態(tài)?,F(xiàn)使用備忘錄(Memento)模式實(shí)現(xiàn)該要求,得到如圖6-1所示的類圖。Memento包含了要被恢復(fù)的狀態(tài)。Originator創(chuàng)建并在Memento中存儲(chǔ)狀態(tài)。Caretaker負(fù)責(zé)從Memento中恢復(fù)狀態(tài)。

【Uava代碼】
import java.util.*;
class Memento {
private String state;
public Memento(String state){this.state=state;}
public String getState(){return  state;}
}
class Originator{
private String state;
public void setState(String state){this.state=state;}
public String  getState(){ retum state;}
public Memento saveStateToMemento(){
Return (1)
}
public void getStateFromMemento(Memento Memento){
state =(2)
}
class CareTaker
Public(3)
mementoLstadd如aney
}
public (4)
return memensoLint get (imdat
}
}

class MementoPaneDems{
pubic static voiid main(Stringf]
Ohgiator aniginutor-te Origmrfy
CareThker careTukeznwCmiie)
aniginuntorseStte(State1#)
orginxtorsCSuat(State2#);
careThiket  add_(5)
oiginatoseSated"(State 3")
careTaker add (6)_
originutor_setState(State#4)

(1) new Memento(state)
(2) Memento.getState()
(3) void add(Memento state)
(4) Memento get(int index)
(5) care Taker.add(originator.saveState ToMemento()
(6) care Taker.add(originator.saveState ToMemento()

答案解析與討論:www.zwdsj.com/st/5222116487.html