第
1題: 閱讀下列說明和圖,回答問題1至問題4,將解答填入答題紙的對應欄內(nèi)。
【說明】
某公司欲開發(fā)招聘系統(tǒng)以提高招聘效率,其主要功能如下:
(1)接受申請
驗證應聘者所提供的自身信息是否完整,是否說明了應聘職位,受理驗證合格的申請,給應聘者發(fā)送致謝信息。
(2)評估應聘者
根據(jù)部門經(jīng)理設置的職位要求,審查已經(jīng)受理的申請;對未被錄用的應聘者進行謝絕處理,將未被錄用的應聘者信息存入未錄用的應聘者表,并給其發(fā)送謝絕決策;對錄用的應聘者進行職位安排評價,將評價結果存入評價結果表,并給其發(fā)送錄用決策,發(fā)送錄用職位和錄用者信息給工資系統(tǒng)。
現(xiàn)采用結構化方法對招聘系統(tǒng)進行分析與設計,獲得如圖1-1所示的頂層數(shù)據(jù)流圖、圖1-2所示0層數(shù)據(jù)流圖和圖1-3所示1層數(shù)據(jù)流圖。


圖1-2 0層數(shù)據(jù)流圖

圖1-3 1層數(shù)據(jù)流圖
?【問題1】(3分)
使用說明中的術語,給出圖中E1~E3所對應的實體名稱。
?【問題2】(2分)
使用說明中的術語,給出圖中D1~D2所對應的數(shù)據(jù)存儲名稱。
?【問題3】(6分)
使用說明和圖中的術語,給出圖1-3中加工P1~P3的名稱。
?【問題4】(4分)
解釋說明圖1-2和圖1-3是否保持平衡,若不平衡請補充圖1-3中數(shù)據(jù)流的名稱以及數(shù)據(jù)流的起點或終點,使其平衡(使用說明中的術語或圖中符號)。
答案解析與討論:
www.shc2b.com/st/3810917434.html第
2題: 閱讀下列說明和圖,回答問題1至問題3,將解答填入答題紙的對應欄內(nèi)。
【說明】
某物流公司為了整合上游供應商與下游客戶,縮短物流過程,降低產(chǎn)品庫存,需要構建一個信息系統(tǒng)以方便管理其業(yè)務運作活動。
【需求分析結果】
(1)物流公司包含若干部門,部門信息包括部門號、部門名稱、經(jīng)理、電話和郵箱。一個部門可以有多名員工處理部門的日常事務,每名員工只能在一個部門工作。每個部門有一名經(jīng)理,只需負責管理本部門的事務和人員。
(2)員工信息包括員工號、姓名、職位、電話號碼和工資;其中,職位包括:經(jīng)理、業(yè)務員等。業(yè)務員根據(jù)托運申請負責安排承運貨物事宜,例如:裝貨時間、到達時間等。一個業(yè)務員可以安排多個托運申請,但一個托運申請只由一個業(yè)務員處理。
(3)客戶信息包括客戶號、單位名稱、通信地址、所屬省份、聯(lián)系人、聯(lián)系電話、銀行賬號,其中,客戶號唯一標識客戶信息的每一個元組。每當客戶要進行貨物托運時,先要提出貨物托運申請。托運申請信息包括申請?zhí)?、客戶號、貨物名稱、數(shù)量、運費、出發(fā)地、目的地。其中,一個申請?zhí)枌ㄒ坏囊粋€托運申請;一個客戶可以有多個貨物托運申請,但一個托運申請對應唯一的一個客戶號。
【概念模型設計】
根據(jù)需求階段收集的信息,設計的實體聯(lián)系圖和關系模式(不完整)如圖2-1所示。
【關系模式設計】
部門(部門號,部門名稱,經(jīng)理,電話,郵箱)
員工(員工號,姓名,職位,電話號碼,工資, (a) )
客戶( (b) ,單位名稱,通信地址,所屬省份,聯(lián)系人,聯(lián)系電話,銀行賬號)
托運申請( (c) ,貨物名稱,數(shù)量,運費,出發(fā)地,目的地)
安排承運( (d) ,裝貨時間,到達時間,業(yè)務員)
?【問題1】(5分)
根據(jù)問題描述,補充四個聯(lián)系、聯(lián)系的類型,以及實體與子實體的聯(lián)系,完善圖2-1所示的實體聯(lián)系圖。
?【問題2】(8分)
根據(jù)實體聯(lián)系圖,將關系模式中的空(a)~(d)補充完整。分別指出部門、員工和安排承運關系模式的主鍵和外鍵。
?【問題3】(2分)
若系統(tǒng)新增需求描述如下:
為了數(shù)據(jù)庫信息的安全性,公司要求對數(shù)據(jù)庫操作設置權限管理功能,當員工登錄系統(tǒng)時,系統(tǒng)需要檢查員工的權限。權限的設置人是部門經(jīng)理。為滿足上述需要,應如何修改(或補充)圖2-1所示的實體聯(lián)系圖,請給出修改后的實體聯(lián)系圖和關系模式。
答案解析與討論:
www.shc2b.com/st/3811014534.html第
3題: 閱讀下列說明和圖,回答問題1至問題3,將解答填入答題紙的對應欄內(nèi)。
【說明】
Pay&Drive系統(tǒng)(開多少付多少)能夠根據(jù)駕駛里程自動計算應付的費用。
系統(tǒng)中存儲了特定區(qū)域的道路交通網(wǎng)的信息。道路交通網(wǎng)由若干個路段(Road Segment)構成,每個路段由兩個地理坐標點(Node)標定,其里程數(shù)(Distance)是已知的。在某些地理坐標點上安裝了訪問控制(Access Control)設備,可以自動掃描行駛卡(Card)。行程(Trajectory)由一組連續(xù)的路段構成。行程的起點(Entry)和終點(Exit)都裝有訪問控制設備。
系統(tǒng)提供了3種行駛卡。常規(guī)卡(Regular Card)有效期(Valid Period)為一年,可以在整個道路交通網(wǎng)內(nèi)使用。季卡(Season Card)有效期為三個月,可以在整個道路交通網(wǎng)內(nèi)使用。單次卡(Minitrip Card)在指定的行程內(nèi)使用,且只能使用一次。其中,季卡和單次卡都是預付卡(Prepaid Card),需要客戶(Customer)預存一定的費用。
系統(tǒng)的主要功能有:客戶注冊、申請行駛卡、使用行駛卡行駛等。
使用常規(guī)卡行駛,在進入行程起點時,系統(tǒng)記錄行程起點、進入時間(Date Of Entry)等信息。在到達行程終點時,系統(tǒng)根據(jù)行駛的里程數(shù)和所持卡的里程單價(Unit Price)計算應付費用,并打印費用單(Invoice)。
季卡的使用流程與常規(guī)卡類似,但是不需要打印費用單,系統(tǒng)自動從卡中扣除應付費用。
單次卡的使用流程與季卡類似,但還需要在行程的起點和終點上檢查行駛路線是否符合該卡所規(guī)定的行駛路線。
現(xiàn)采用面向?qū)ο蠓椒ㄩ_發(fā)該系統(tǒng),使用UML進行建模。構建出的用例圖和類圖分別如圖3-1和圖3-2所示。


?【問題1】(4分)
根據(jù)說明中的描述,給出圖3-1中U1和U2所對應的用例,以及(1)所對應的關系。
?【問題2】(8分)
根據(jù)說明中的描述,給出圖3-2中缺少的C1~C6所對應的類名以及(2)~(3)處所對應的多重度(類名使用說明中給出的英文詞匯)。
?【問題3】(3分)
根據(jù)說明中的描述,給出Road Segment、Trajectory和Card所對應的類的關鍵屬性(屬性名使用說明中給出的英文詞匯)。
答案解析與討論:
www.shc2b.com/st/381112738.html第
5題: 閱讀下列說明和C++代碼,將應填入
(n)處的字句寫在答題紙的對應欄內(nèi)。
【說明】
某大型商場內(nèi)安裝了多個簡易的紙巾售賣機,自動出售2元錢一包的紙巾,且每次僅售出一包紙巾。紙巾售賣機的狀態(tài)圖如圖5-1所示。

采用狀態(tài)(State)模式來實現(xiàn)該紙巾售賣機,得到如圖5-2所示的類圖。其中類State為抽象類,定義了投幣、退幣、出紙巾等方法接口。類SoldState、SoldOutState、NoQuarterState和HasQuarterState分別對應圖5-1中紙巾售賣機的4種狀態(tài):售出紙巾、紙巾售完、沒有投幣、有2元錢。

【C++代碼】
#include
using namespace std;
// 以下為類的定義部分
class TissueMachine; // 類的提前引用
class State {
public:
virtual void insertQuarter() = 0; //投幣
virtual void ejectQuarter() = 0; //退幣
virtual void turnCrank()= 0; //按下“出紙巾”按鈕
virtual void dispense() = 0; //出紙巾
};
/* 類SoldOutState、NoQuarterState、HasQuarterState、SoldState的定義省略,每個類中均
定義了私有數(shù)據(jù)成員TissueMachine* tissueMachine; */
class TissueMachine {
private:
(1) *soldOutState, *noQuarterState, *hasQuarterState,*soldState, *state ;
int count; //紙巾數(shù)
public:
TissueMachine(int numbers);
void setState(State* state);
State* getHasQuarterState();
State* getNoQuarterState();
State* getSoldState();
State* getSoldOutState();
int getCount();
// 其余代碼省略
};
// 以下為類的實現(xiàn)部分
void NoQuarterState ::insertQuarter() {
tissueMachine->setState( (2) );
}
void HasQuarterState ::ejectQuarter() {
tissueMachine->setState( (3) );
}
void SoldState ::dispense() {
if(tissueMachine->getCount() > 0) {
tissueMachine->setState( (4) );
}
else {
tissueMachine->setState( (5) );
}
} // 其余代碼省略
答案解析與討論:
www.shc2b.com/st/3811321878.html第
6題: 閱讀下列說明和JAVA代碼,將應填入(n)處的字句寫在答題紙的對應欄內(nèi)。
【說明】
某大型商場內(nèi)安裝了多個簡易的紙巾售賣機,自動出售2元錢一包的紙巾,且每次僅售出一包紙巾。紙巾售賣機的狀態(tài)圖如圖6-1所示。

采用狀態(tài)(State)模式來實現(xiàn)該紙巾售賣機,得到如圖6-2所示的類圖。其中類State為抽象類,定義了投幣、退幣、出紙巾等方法接口。類SoldState、SoldOutState、NoQuarterState和HasQuarterState分別對應圖6-1中紙巾售賣機的4種狀態(tài):售出紙巾、紙巾售完、沒有投幣、有2元錢。

【Java代碼】
import javA.util.*;
interface State {
public void insertQuarter(); //投幣
public void ejectQuarter(); //退幣
public void turnCrank(); //按下“出紙巾”按鈕
public void dispense(); //出紙巾
}
class TissueMachine {
(1) soldOutState, noQuarterState, hasQuarterState, soldState, state;
state = soldOutState;
int count = 0; //紙巾數(shù)
public TissueMachine(int numbers) { /* 實現(xiàn)代碼省略 */ }
public State getHasQuarterState() { return hasQuarterState; }
public State getNoQuarterState() { return noQuarterState; }
public State getSoldState() { return soldState; }
public State getSoldOutState() { return soldOutState; }
public int getCount() { return count; }
// 其余代碼省略
}
class NoQuarterState implements State {
TissueMachine tissueMachine;
public void insertQuarter() {
tissueMachine.setState( (2) );
}
//構造方法以及其余代碼省略
}
class HasQuarterState implements State {
TissueMachine tissueMachine;
public void ejectQuarter() {
tissueMachine.setState( (3) );
}
//構造方法以及其余代碼省略
}
class SoldState implements State {
TissueMachine tissueMachine;
public void dispense() {
if(tissueMachine.getCount() > 0) {
tissueMachine.setState( (4) );
} else {
tissueMachine.setState( (5) ); }
}
}
答案解析與討論:
www.shc2b.com/st/3811419264.html