第
1題: 閱讀下列說(shuō)明和圖,回答問(wèn)題1至問(wèn)題4,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
某大型企業(yè)的數(shù)據(jù)中心為了集中管理、控制用戶對(duì)數(shù)據(jù)的訪問(wèn)并支持大量的連接需求,欲構(gòu)建數(shù)據(jù)管理中間件,其主要功能如下:
(1)數(shù)據(jù)管理員可通過(guò)中間件進(jìn)行用戶管理、操作管理和權(quán)限管理。用戶管理維護(hù)用戶信息,用戶信息(用戶名、密碼)存儲(chǔ)在用戶表中;操作管理維護(hù)數(shù)據(jù)實(shí)體的標(biāo)準(zhǔn)操作及其所屬的后端數(shù)據(jù)庫(kù)信息,標(biāo)準(zhǔn)操作和后端數(shù)據(jù)庫(kù)信息存放在操作表中;權(quán)限管理維護(hù)權(quán)限表,該表存儲(chǔ)用戶可執(zhí)行的操作信息。
(2)中間件驗(yàn)證前端應(yīng)用提供的用戶信息。若驗(yàn)證不通過(guò),返回非法用戶信息;若驗(yàn)證通過(guò),中間件將等待前端應(yīng)用提交操作請(qǐng)求。
(3)前端應(yīng)用提交操作請(qǐng)求后,中間件先對(duì)請(qǐng)求進(jìn)行格式檢查。如果格式不正確,返回格式錯(cuò)誤信息;如果格式正確,則進(jìn)行權(quán)限驗(yàn)證(驗(yàn)證用戶是否有權(quán)執(zhí)行請(qǐng)求的操作), 若用戶無(wú)權(quán)執(zhí)行該操作,則返回權(quán)限不足信息,否則進(jìn)行連接管理。
(4)連接管理連接相應(yīng)的后臺(tái)數(shù)據(jù)庫(kù)并提交操作。連接管理先檢查是否存在空閑的數(shù)據(jù)庫(kù)連接,如果不存在,新建連接;如果存在,則重用連接。
(5)后端數(shù)據(jù)庫(kù)執(zhí)行操作并將結(jié)果傳給中間件,中間件對(duì)收到的操作結(jié)果進(jìn)行處理后,將其返回給前端應(yīng)用。
現(xiàn)采用結(jié)構(gòu)化方法對(duì)系統(tǒng)進(jìn)行分析與設(shè)計(jì),獲得如圖1-1所示的頂層數(shù)據(jù)流圖和圖1-2所示的0層數(shù)據(jù)流圖。
【問(wèn)題 1】(3分)
使用說(shuō)明中的詞語(yǔ),給出圖1-1中的實(shí)體E1~E3的名稱(chēng)。
?【問(wèn)題 2】(3分)
使用說(shuō)明中的詞語(yǔ),給出圖1-2中的數(shù)據(jù)存儲(chǔ)D1~D3的名稱(chēng)。

?【問(wèn)題3】(6分)
給出圖1-2中加工P的名稱(chēng)及其輸入、輸出流。

除加工P的輸入與輸出流外,圖1-2還缺失了兩條數(shù)據(jù)流,請(qǐng)給出這兩條數(shù)據(jù)流的起點(diǎn)和終點(diǎn)。

注:名稱(chēng)使用說(shuō)明中的詞匯,起點(diǎn)和終點(diǎn)均使用圖1-2中的符號(hào)或詞匯。
?【問(wèn)題4】(3分)
在繪制數(shù)據(jù)流圖時(shí),需要注意加工的繪制。請(qǐng)給出三種在繪制加工的輸入、輸出時(shí)可能出現(xiàn)的錯(cuò)誤。
答案解析與討論:
www.xomuzic.com/st/380915668.html第
2題: 閱讀下列說(shuō)明和圖,回答問(wèn)題1至問(wèn)題3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
某學(xué)校擬開(kāi)發(fā)一套實(shí)驗(yàn)管理系統(tǒng),對(duì)各課程的實(shí)驗(yàn)安排情況進(jìn)行管理。
【需求分析】
一個(gè)實(shí)驗(yàn)室可進(jìn)行多種類(lèi)型不同的實(shí)驗(yàn)。由于實(shí)驗(yàn)室和實(shí)驗(yàn)員資源有限,需根據(jù)學(xué)生人數(shù)分批次安排實(shí)驗(yàn)室和實(shí)驗(yàn)員。一門(mén)課程可以為多個(gè)班級(jí)開(kāi)設(shè),每個(gè)班級(jí)每學(xué)期可以開(kāi)設(shè)多門(mén)課程。一門(mén)課程的一種實(shí)驗(yàn)可以根據(jù)人數(shù)、實(shí)驗(yàn)室的可容納人數(shù)和實(shí)驗(yàn)類(lèi)型,分批次開(kāi)設(shè)在多個(gè)實(shí)驗(yàn)室的不同時(shí)間段。一個(gè)實(shí)驗(yàn)室的一次實(shí)驗(yàn)可以分配多個(gè)實(shí)驗(yàn)員負(fù)責(zé)輔導(dǎo)實(shí)驗(yàn),實(shí)驗(yàn)員給出學(xué)生的每次實(shí)驗(yàn)成績(jī)。
(1)課程信息包括:課程編號(hào)、課程名稱(chēng)、實(shí)驗(yàn)學(xué)時(shí)、授課學(xué)期和開(kāi)課的班級(jí)等信息;實(shí)驗(yàn)信息記錄該課程的實(shí)驗(yàn)進(jìn)度信息,包括:實(shí)驗(yàn)名、實(shí)驗(yàn)類(lèi)型、學(xué)時(shí)、安排周次等信息,如表2-1所示。

(2)以課程為單位制定實(shí)驗(yàn)安排計(jì)劃信息,包括:實(shí)驗(yàn)地點(diǎn),實(shí)驗(yàn)時(shí)間、實(shí)驗(yàn)員等信息,實(shí)驗(yàn)計(jì)劃如表2-2所示。

(3)由實(shí)驗(yàn)員給出每個(gè)學(xué)生每次實(shí)驗(yàn)的成績(jī),包括:實(shí)驗(yàn)名、學(xué)號(hào)、姓名、班級(jí)、實(shí)驗(yàn)成績(jī)等信息,實(shí)驗(yàn)成績(jī)?nèi)绫?-3所示。

(4)學(xué)生的實(shí)驗(yàn)課程總成績(jī)根據(jù)每次實(shí)驗(yàn)的成績(jī)以及每次實(shí)驗(yàn)的難度來(lái)計(jì)算。
【概念模型設(shè)計(jì)】
根據(jù)需求階段收集的信息,設(shè)計(jì)的實(shí)體聯(lián)系圖(不完整)如圖2-1所示。

【邏輯結(jié)構(gòu)設(shè)計(jì)】
根據(jù)概念模型設(shè)計(jì)階段完成的實(shí)體聯(lián)系圖,得出如下關(guān)系模式(不完整):
課程(課程編號(hào),課程名稱(chēng),授課院系,實(shí)驗(yàn)學(xué)時(shí))
班級(jí)(班級(jí)號(hào),專(zhuān)業(yè),所屬系)
開(kāi)課情況( (1) ,授課學(xué)期)
實(shí)驗(yàn)( (2) ,實(shí)驗(yàn)類(lèi)型,難度,學(xué)時(shí),安排周次)
實(shí)驗(yàn)計(jì)劃( (3) ,實(shí)驗(yàn)時(shí)間,人數(shù))
實(shí)驗(yàn)員( (4) ,級(jí)別)
實(shí)驗(yàn)室(實(shí)驗(yàn)室編號(hào),地點(diǎn),開(kāi)放時(shí)間,可容納人數(shù),實(shí)驗(yàn)類(lèi)型)
學(xué)生( (5) ,姓名,年齡,性別)
實(shí)驗(yàn)成績(jī)( (6) ,實(shí)驗(yàn)成績(jī),評(píng)分實(shí)驗(yàn)員)
?【問(wèn)題1】(6分)
補(bǔ)充圖2-1中的聯(lián)系和聯(lián)系的類(lèi)型。
?【問(wèn)題2】(6分)
根據(jù)圖2-1,將邏輯結(jié)構(gòu)設(shè)計(jì)階段生成的關(guān)系模式中的空(1)~(6)補(bǔ)充完整并用下劃線指出這六個(gè)關(guān)系模式的主鍵。
?【問(wèn)題3】(3分)
如果需要記錄課程的授課教師,新增加“授課教師”實(shí)體。請(qǐng)對(duì)圖2-1進(jìn)行修改,畫(huà)出修改后的實(shí)體間聯(lián)系和聯(lián)系的類(lèi)型。
答案解析與討論:
www.xomuzic.com/st/380925985.html第
3題: 閱讀下列說(shuō)明和圖,回答問(wèn)題1至問(wèn)題3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
某運(yùn)輸公司決定為新的售票機(jī)開(kāi)發(fā)車(chē)票銷(xiāo)售的控制軟件。圖3-1給出了售票機(jī)的面板示意圖以及相關(guān)的控制部件。

售票機(jī)相關(guān)部件的作用如下所述:
(1)目的地鍵盤(pán)用來(lái)輸入行程目的地的代碼(例如,200表示總站)。
(2)乘客可以通過(guò)車(chē)票鍵盤(pán)選擇車(chē)票種類(lèi)(單程票、多次往返票和座席種類(lèi))。
(3)繼續(xù)/取消鍵盤(pán)上的取消按鈕用于取消購(gòu)票過(guò)程,繼續(xù)按鈕允許乘客連續(xù)購(gòu)買(mǎi)多張票。
(4)顯示屏顯示所有的系統(tǒng)輸出和用戶提示信息。
(5)插卡口接受MCard(現(xiàn)金卡),硬幣口和紙幣槽接受現(xiàn)金。
(6)打印機(jī)用于輸出車(chē)票。
假設(shè)乘客總是支付恰好需要的金額而無(wú)需找零,售票機(jī)的維護(hù)工作(取回現(xiàn)金、放入空白車(chē)票等)由服務(wù)技術(shù)人員完成。
系統(tǒng)采用面向?qū)ο蠓椒ㄩ_(kāi)發(fā),使用UML進(jìn)行建模。系統(tǒng)的頂層用例圖和類(lèi)圖分別如圖3-2和圖3-3所示。


?【問(wèn)題1】(5分)
根據(jù)說(shuō)明中的描述,給出圖3-2中A1和A2所對(duì)應(yīng)的參與者,U1所對(duì)應(yīng)的用例,以及(1)、(2)處所對(duì)應(yīng)的關(guān)系。
?【問(wèn)題2】(7分)
根據(jù)說(shuō)明中的描述,給出圖3-3中缺少的C1~C4所對(duì)應(yīng)的類(lèi)名以及(3)~(6)處所對(duì)應(yīng)的多重度。
?【問(wèn)題3】(3分)
圖3-3中的類(lèi)圖設(shè)計(jì)采用了中介者(Mediator)設(shè)計(jì)模式,請(qǐng)說(shuō)明該模式的內(nèi)涵。
答案解析與討論:
www.xomuzic.com/st/380935084.html第
5題: 閱讀下列說(shuō)明和C++代碼,將應(yīng)填入 (n) 處的字句寫(xiě)在答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
某軟件公司現(xiàn)欲開(kāi)發(fā)一款飛機(jī)飛行模擬系統(tǒng),該系統(tǒng)主要模擬不同種類(lèi)飛機(jī)的飛行特征與起飛特征。需要模擬的飛機(jī)種類(lèi)及其特征如表5-1所示。
表5-1
飛機(jī)種類(lèi) | 起飛特征 | 飛行特征 |
直升機(jī)(Helicopter) | 垂直起飛(VerticalTakeOff) | 亞音速飛行 (SubSonicFly) |
客機(jī)(AirPlane) | 長(zhǎng)距離起飛 (LongDistanceTakeOff) | 亞音速飛行 (SubSonicFly) |
殲擊機(jī)(Fighter) | 長(zhǎng)距離起飛 (LongDistanceTakeOff) | 超音速飛行 (SuperSonicFly) |
鷂式戰(zhàn)斗機(jī)(Harrier) | 垂直起飛(VerticalTakeOff) | 超音速飛行 (SuperSonicFly) |
為支持將來(lái)模擬更多種類(lèi)的飛機(jī),采用策略設(shè)計(jì)模式(Strategy)設(shè)計(jì)的類(lèi)圖如圖5-1所示。

圖5-1中,AirCraft為抽象類(lèi),描述了抽象的飛機(jī),而類(lèi)Helicopter、AirPlane、Fighter和Harrier分別描述具體的飛機(jī)種類(lèi),方法fly()和takeOff()分別表示不同飛機(jī)都具有飛行特征和起飛特征;類(lèi)FlyBehavior與TakeOffBehavior為抽象類(lèi),分別用于表示抽象的飛行為與起飛行為;類(lèi)SubSonicFly與SuperSonicFly分別描述亞音速飛行和超音速飛行的行為;類(lèi)VerticalTakeOff與LongDistanceTakeOff分別描述垂直起飛與長(zhǎng)距離起飛的行為。
【C++ 代碼】
#include
using namespace std;
class FlyBehavior {
public : virtual void fly() = 0;
};
class SubSonicFly:public FlyBehavior{
public: void fly(){ cout << "亞音速飛行!" << endl; }
};
class SuperSonicFly:public FlyBehavior{
public: void fly(){ cout << "超音速飛行!" << endl; }
};
class TakeOffBehavior {
public: virtual void takeOff() = 0;
};
class VerticalTakeOff:public TakeOffBehavior{
public: void takeOff(){ cout << "垂直起飛!" << endl; }
};
class LongDistanceTakeOff:public TakeOffBehavior {
public: void takeOff (){ cout << "長(zhǎng)距離起飛!" << endl; }
};
class AirCraft{
protected:
(1) ;
(2) ;
public:
void fly(){(3); }
void takeOff() {(4); };
};
class Helicopter: public AirCraft {
public:
Helicopter (){
flyBehavior = new(5);
takeOffBehavior = new(6);
}
(7){
if(!flyBehavior) delete flyBehavior;
if(!takeOffBehavior) delete takeOffBehavior;
}
};
//其它代碼省略
答案解析與討論:
www.xomuzic.com/st/3809511481.html第
6題: 閱讀下列說(shuō)明和Java代碼,將應(yīng)填入 (n) 處的字句寫(xiě)在答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
某軟件公司現(xiàn)欲開(kāi)發(fā)一款飛機(jī)飛行模擬系統(tǒng),該系統(tǒng)主要模擬不同種類(lèi)飛機(jī)的飛行特征與起飛特征。需要模擬的飛機(jī)種類(lèi)及其特征如表6-1所示。

為支持將來(lái)模擬更多種類(lèi)的飛機(jī),采用策略設(shè)計(jì)模式(Strategy)設(shè)計(jì)的類(lèi)圖如圖6-1所示。

圖6-1中,AirCraft為抽象類(lèi),描述了抽象的飛機(jī),而類(lèi)Helicopter、AirPlane、Fighter和Harrier分別描述具體的飛機(jī)種類(lèi),方法fly()和takeOff()分別表示不同飛機(jī)都具有飛行特征和起飛特征類(lèi)FlyBehavior與TakeOffBehavior為抽象類(lèi),分別用于表示抽象的飛行為與起飛行為;類(lèi)SubSonicFly與SuperSonicFly分別描述亞音速飛行和超音速飛行的行為;類(lèi)VerticalTakeOff與LongDistanceTakeOff分別描述垂直起飛與長(zhǎng)距離起飛的行為。
【Java 代碼】
interface FlyBehavior {
public void fly();
};
class SubSonicFly implements FlyBehavior{
public void fly(){ System.out.println("亞音速飛行!"); }
};
class SuperSonicFly implements FlyBehavior{
public void fly(){ System.out.println("超音速飛行!" ); }
};
interface TakeOffBehavior {
public void takeOff();
};
class VerticalTakeOff implements TakeOffBehavior {
public void takeOff (){ System.out.println("垂直起飛!" ); }
};
class LongDistanceTakeOff implements TakeOffBehavior {
public void takeOff(){ System.out.println("長(zhǎng)距離起飛!"); }
};
abstract class AirCraft {
protected (1) ;
protected (2) ;
public void fly(){ (3) ; }
public void takeOff() { (4) ; };
};
class Helicopter(5)AirCraft{
public Helicopter (){
flyBehavior = new (6) ;
takeOffBehavior = new (7) ;
}
};
//其它代碼省略
答案解析與討論:
www.xomuzic.com/st/3809612356.html