第
1題: 閱讀下列說(shuō)明和圖,回答問(wèn)題1至問(wèn)題4,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
某巴士維修連鎖公司欲開(kāi)發(fā)巴士維修系統(tǒng),以維護(hù)與維修相關(guān)的信息。該系統(tǒng)的 主要功能如下:
1)記錄巴士ID和維修問(wèn)題。巴士到車庫(kù)進(jìn)行維修,系統(tǒng)將巴士基本信息和ID記錄在巴士列表文件中,將待維修機(jī)械問(wèn)題記錄在維修記錄文件中,并生成維修訂單。
2)確定所需部件。根據(jù)維修訂單確定維修所需部件,并在部件清單中進(jìn)行標(biāo)記。
3)完成維修。機(jī)械師根據(jù)維修記錄文件中的待維修機(jī)械問(wèn)題,完成對(duì)巴士的維修,登記維修情況;將機(jī)械問(wèn)題維修情況記錄在維修記錄文件中,將所用部件記錄在部件 清單中,并將所用部件清單發(fā)送給庫(kù)存管理系統(tǒng)以對(duì)部件使用情況進(jìn)行監(jiān)控。巴士司機(jī)可查看已維修機(jī)械問(wèn)題。
4)記錄維修工時(shí)。將機(jī)械師提供的維修工時(shí)記錄在人事檔案中,將維修總結(jié)發(fā)送 給主管進(jìn)行績(jī)效考核。
5)計(jì)算維修總成本。計(jì)算部件清單中實(shí)際所用部件、人事檔案中所用維修工時(shí)的 總成本;將維修工時(shí)和所用部件成本詳細(xì)信息給會(huì)計(jì)進(jìn)行計(jì)費(fèi)。
現(xiàn)采用結(jié)構(gòu)化方法對(duì)巴士維修系統(tǒng)進(jìn)行分析與設(shè)計(jì),獲得如圖1-1所示的上下文 數(shù)據(jù)流圖和圖1-2所示的0層數(shù)據(jù)流圖。
【問(wèn)題1】(5分)
使用說(shuō)明中的詞語(yǔ),給出圖1-1中的實(shí)體E1~E5的名稱。
【問(wèn)題2】(4分)
使用說(shuō)明中的詞語(yǔ),給出圖1-2中的數(shù)據(jù)存儲(chǔ)D1~D4的名稱。
【問(wèn)題3】(3分)
說(shuō)明圖1-2中所存在的問(wèn)題。
【問(wèn)題4】(3分)
根據(jù)說(shuō)明和圖中術(shù)語(yǔ),釆用補(bǔ)充數(shù)據(jù)流的方式,改正圖1-2中的問(wèn)題。要求給出 所補(bǔ)充數(shù)據(jù)流的名稱、起點(diǎn)和終點(diǎn)。
答案解析與討論:
m.xiexiliangjiufa.com/st/3813924619.html第
2題: 閱讀下列說(shuō)明和圖,回答問(wèn)題1至問(wèn)題3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
某家電銷售電子商務(wù)公司擬開(kāi)發(fā)一套信息管理系統(tǒng),以方便對(duì)公司的員工、家電銷售、家電廠商和客戶等進(jìn)行管理。
【需求分析】
(1)系統(tǒng)需要維護(hù)電子商務(wù)公司的員工信息、客戶信息、家電信息和家電廠商信息等。員工信息主要包括:工號(hào)、姓名、性別、崗位、身份證號(hào)、電話、住址,其中崗位包括部門經(jīng)理和客服等??蛻粜畔⒅饕ǎ嚎蛻鬒D、姓名、身份證號(hào)、電話、住址、賬戶余額。家電信息主要包括:家電條碼、家電名稱、價(jià)格、出廠日期、所屬?gòu)S商。家電廠商信息包括:廠商ID、廠商名稱、電話、法人代表信息、廠址。
(2)電子商務(wù)公司根據(jù)銷售情況,由部門經(jīng)理向家電廠商訂購(gòu)各類家電。每個(gè)家電廠商只能由一名部門經(jīng)理負(fù)責(zé)。
(3)客戶通過(guò)瀏覽電子商務(wù)公司網(wǎng)站查詢家電信息,與客服溝通獲得優(yōu)惠后,在線購(gòu)買。
【概念模型設(shè)計(jì)】
根據(jù)需求階段收集的信息,設(shè)計(jì)的實(shí)體聯(lián)系圖(不完整)如圖1-1所示。
【邏輯結(jié)構(gòu)設(shè)計(jì)】
根據(jù)概念模型設(shè)計(jì)階段完成的實(shí)體聯(lián)系圖,得出如下關(guān)系模式〔不完整):
客戶(客戶ID、姓名、身份證號(hào)、電話、住址、賬戶余額)
員工(工號(hào)、姓名、性別、崗位、身份證號(hào)、電話、住址)
家電(家電條碼、家電名稱、價(jià)格、出廠日期、 (1) )
家電廠商(廠商ID、廠商名稱、電話、法人代表信息、廠址、 (2) )
購(gòu)買(訂購(gòu)單號(hào)、 (3) 、金額)
【問(wèn)題1】(6分)
補(bǔ)充圖1-1中的聯(lián)系和聯(lián)系的類型。
【問(wèn)題2】(6分) 根據(jù)圖1-1,將邏輯結(jié)構(gòu)設(shè)計(jì)階段生成的關(guān)系模式中的空(1)~(3)補(bǔ)充完整。 用下劃線指出“家電”、“家電廠商”和“購(gòu)買”關(guān)系模式的主鍵。
【問(wèn)題3】(3分)
電子商務(wù)公司的主營(yíng)業(yè)務(wù)是銷售各類家電,對(duì)賬戶有余額的客戶,還可以聯(lián)合第二方基金公司提供理財(cái)服務(wù),為此設(shè)立客戶經(jīng)理崗位??蛻敉ㄟ^(guò)電子商務(wù)公司的客戶經(jīng)理和基金公司的基金經(jīng)理進(jìn)行理財(cái)。每名客戶只有一名客戶經(jīng)理和一名基金經(jīng)理負(fù)責(zé),客戶經(jīng)理和基金經(jīng)理均可負(fù)責(zé)多名客戶。請(qǐng)根據(jù)該要求,對(duì)圖1-1進(jìn)行修改,畫出修改后的實(shí)體間聯(lián)系和聯(lián)系的類型。
答案解析與討論:
m.xiexiliangjiufa.com/st/3814025745.html第
3題: 閱讀下列說(shuō)明和圖,回答問(wèn)題1至問(wèn)題3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
某高校圖書館欲建設(shè)一個(gè)圖書館管理系統(tǒng),目前已經(jīng)完成了需求分析階段的工作。功能需求均使用用例進(jìn)行描述,其中用例“借書(Check Out Books)”的詳細(xì)描述如下。
參與者:讀者(Patron)。
典型事件流:
1.輸入讀者ID;
2.確認(rèn)該讀者能夠借閱圖書,并記錄讀者ID;
3.輸入所要借閱的圖書ID;
4.根據(jù)圖書目錄中的圖書ID確認(rèn)該書可以借閱,計(jì)算歸還時(shí)間,生成借閱記錄;
5.通知讀者圖書歸還時(shí)間。
重復(fù)步驟3~5,直到讀者結(jié)束借閱圖書。
備選事件流:
2a.若讀者不能借閱圖書,說(shuō)明讀者違反了圖書館的借書制度(例如,沒(méi)有支付借書費(fèi)用等)
①告知讀者不能借閱,并說(shuō)明拒絕借閱的原因;
②本用例結(jié)束。
4a.讀者要借閱的書無(wú)法外借
①告知讀者本書無(wú)法借閱;
②回到步驟3。
說(shuō)明:圖書的歸還時(shí)間與讀者的身份有關(guān)。如果讀者是教師,圖書可以借閱一年; 如果是學(xué)生,則只能借閱3個(gè)月。讀者ID中包含讀者身份信息。
現(xiàn)采用面向?qū)ο蠓椒ㄩ_(kāi)發(fā)該系統(tǒng),得到如圖3-1所示的系統(tǒng)類模型(部分);以及如圖3-2所示的系統(tǒng)操作“checkOut(bookID)(借書)”通信圖(或協(xié)作圖)。

【問(wèn)題1】(8分)
根據(jù)說(shuō)明中的描述,以及圖3-1和圖3-2,給出圖3-1中C1-C4處所對(duì)應(yīng)的類名(類 名使用圖3-1和圖3-2中給出的英文詞匯)。
【問(wèn)題2】(4分)
根據(jù)說(shuō)明中的描述,以及圖3-1和圖3-2,給出圖3-2中M1-M4處所對(duì)應(yīng)的方法名(方法名使用圖3-1和圖3-2中給出的英文詞匯)。
【問(wèn)題3】(3分)
用例“借書”的備選事件流4a中,根據(jù)借書制度來(lái)判定讀者能否借閱圖書。若圖書館的借書制度會(huì)不斷地?cái)U(kuò)充,并需要根據(jù)圖書館的實(shí)際運(yùn)行情況來(lái)調(diào)整具體使用哪些制度。為滿足這一要求,在原有類設(shè)計(jì)的基礎(chǔ)上,可以釆用何種設(shè)計(jì)模式?簡(jiǎn)要說(shuō)明原因。
答案解析與討論:
m.xiexiliangjiufa.com/st/381417404.html第
5題: 閱讀下列說(shuō)明和C++代碼,將應(yīng)填入 (n)處的字句寫在答題紙的對(duì)應(yīng)欄內(nèi).
【說(shuō)明】
某實(shí)驗(yàn)室欲建立一個(gè)實(shí)驗(yàn)室環(huán)境監(jiān)測(cè)系統(tǒng),能夠顯示實(shí)驗(yàn)室的溫度、濕度以及潔凈度等環(huán)境數(shù)據(jù)。當(dāng)獲取到最新的環(huán)境測(cè)量數(shù)據(jù)時(shí),顯示的環(huán)境數(shù)據(jù)能夠更新。
現(xiàn)在采用觀察者(Observer)模式來(lái)開(kāi)發(fā)該系統(tǒng)。觀察者模式的類圖如圖5-1所示。
【C++代碼】
#include
#include
using namespace std;
class Observer {
public:
virtual void update(float temp, float humidity, float cleanness)=0;
};
class Subject {
public:
virtual void registerObserver(Observer* o) = 0; //注冊(cè)對(duì)主題感興趣的觀察者
virtual void removeObserver(Observer* o) = 0; //刪除觀察者
virtual void notifyObservers() = 0;//當(dāng)主題發(fā)生變化時(shí)通知觀察者
};
class EnvironmentData : public (1) {
private:
vector
observers;
float temperature, humidity, cleanness;
public:
void registerObserver(Observer* o) { observers.push_back(o); }
void removeObserver(Observer* o) { /* 代碼省略 */ }
void notifyObservers() {
for(vector::const_iterator it = observers.begin(); it != observers.end(); it++)
{ (2) ; }
}
Void measurementsChanged() { (3) ; }
void setMeasurements(float temperature, float humidity, float cleanness) {
this->temperature = temperature;
this->humidity = humidity;
this->cleanness = cleanness;
(4) ;
}
};
class CurrentConditionsDisplay : public (5) {
private:
float temperature, humidity, cleanness;
Subject* envData;
public:
CurrentConditionsDisplay(Subject* envData) {
this->envData = envData;
(6) ;
}
void update(float temperature, float humidity, float cleanness) {this->temperature = temperature;
this->humidity = humidity;
this->cleanness = cleanness;
display();
}
void display() { /* 代碼省略 */ }
};
int main() {
EnvironmentData* envData = new EnvironmentData();
CurrentConditionsDisplay* currentDisplay = new CurrentConditionsDisplay(envData);
envData->setMeasurements(80, 65, 30.4f);
return 0;
}
答案解析與討論:
m.xiexiliangjiufa.com/st/3814319684.html第
6題: 閱讀下列說(shuō)明和Java代碼,將應(yīng)填入 (n)處的字句卸載答題紙的對(duì)應(yīng)欄內(nèi).
【說(shuō)明】
某實(shí)驗(yàn)室欲建立一個(gè)實(shí)驗(yàn)室環(huán)境監(jiān)測(cè)系統(tǒng),能夠顯示實(shí)驗(yàn)室的溫度、濕度以及潔凈度等環(huán)境數(shù)據(jù)。當(dāng)獲取到最新的環(huán)境測(cè)量數(shù)據(jù)時(shí),顯示的環(huán)境數(shù)據(jù)能夠更新。
現(xiàn)在采用觀察者(Observer)模式來(lái)開(kāi)發(fā)該系統(tǒng)。觀察者模式的類圖如圖6-1所示。
【Java代碼】
import java.util.*;
interface Observer {
public void update(float temp, float humidity, float cleanness);
}
interface Subject {
public void registerObserver(Observer o); //注冊(cè)對(duì)主題感興趣的觀察者
public void removeObserver(Observer o); //刪除觀察者
public void notifyObservers(); //當(dāng)主題發(fā)生變化時(shí)通知觀察者
}
class EnvironmentData implements (1) {
private ArrayList observers;
private float temperature, humidity, cleanness;
public EnvironmentData() { observers = new ArrayList(); }
public void registerObserver(Observer o) { observers.add(o); }
public void removeObserver(Observer o) { /* 代碼省略 */ }
public void notifyObservers() {
for (int i = 0; i < observers.size(); i++) {
Observer observer = (Observer)observers.get(i);
(2) ;
}
}
public void measurementsChanged() { (3) ; }
public void setMeasurements(float temperature, float humidity, float cleanness) {
this.temperature = temperature;
this.humidity = humidity;
this.cleanness = cleanness;
(4) ;
}
}
class CurrentConditionsDisplay implements (5) {
private float temperature;
private float humidity;
private float cleanness;
private Subject envData;
public CurrentConditionsDisplay(Subject envData) {
this.envData = envData;
(6) ;
}
public void update(float temperature, float humidity, float cleanness) {
this.temperature = temperature;
this.humidity = humidity;
this.cleanness = cleanness;
display();
}
public void display() {/* 代碼省略 */ }
}
class EnvironmentMonitor{
public static void main(String[] args) {
EnvironmentData envData = new EnvironmentData();
CurrentConditionsDisplay currentDisplay = new CnrrentConditionsDisplay(envData);
envData.setMeasurements(80, 65, 30.4f);
}
}
答案解析與討論:
m.xiexiliangjiufa.com/st/3814411148.html