第
2題: 閱讀下列說明,回答問題1至問題3,將解答填入答題紙的對應(yīng)欄內(nèi)。
【說明】
某快遞公司為了方便管理公司物品運送的各項業(yè)務(wù)活動,需要構(gòu)建一個物品運送信息管理系統(tǒng)。
【需求分析結(jié)果】
(1)快遞公司有多個分公司,分公司信息包括分公司編號、名稱、經(jīng)理、辦公電話和地址。每個分公司可以有多名員工處理分公司的日常業(yè)務(wù),每位員工只能在一個分公司工作。每個分公司由一名經(jīng)理負責管理分公司的業(yè)務(wù)和員工,系統(tǒng)需要記錄每個經(jīng)理的任職時間。
(2)員工信息包括員工號、姓名、崗位、薪資、手機號和家庭地址。其中,員工號唯一標識員工信息的每一個元組。崗位包括經(jīng)理、調(diào)度員、業(yè)務(wù)員等。業(yè)務(wù)員根據(jù)客戶提交的快件申請單進行快件受理事宜,一個業(yè)務(wù)員可以受理多個客戶的快件申請,一個快件申請只能由一個業(yè)務(wù)員受理。調(diào)度員根據(jù)已受理的申請單安排快件的承運事宜,例如:執(zhí)行承運的業(yè)務(wù)員、運達時間等。一個業(yè)務(wù)員可以執(zhí)行調(diào)度員安排的多個快件的承運業(yè)務(wù)。
(3)客戶信息包括客戶號、單位名稱、通信地址、所屬省份、聯(lián)系人、聯(lián)系電話、銀行賬號。其中,客戶號唯一標識客戶信息的每一個元組。當客戶要寄快件時,先要提交快件申請單,申請?zhí)栍上到y(tǒng)自動生成??旒暾埿畔ㄉ暾?zhí)枴⒖蛻籼枴l(fā)件人、發(fā)件人電話、快件名稱、運費、發(fā)出地、收件人、收件人電話、收件地址。其中,一個申請?zhí)枌?yīng)唯一的一個快件申請,一個客戶可以提交多個快件申請,但一個快件申請由唯一的一個客戶提交。
【概念模型設(shè)計】
根據(jù)需求階段收集的信息,設(shè)計的實體聯(lián)系圖(圖2-1)和關(guān)系模型(不完整)如下:
【關(guān)系模型設(shè)計】
分公司(分公司編號,名稱,經(jīng)理,辦公電話,地址)
員工(員工號,姓名, (a) ,崗位,薪資,手機號,家庭地址)
客戶(客戶號,單位名稱,通信地址,所屬省份,聯(lián)系人,聯(lián)系電話,銀行賬號)
申請單( (b) ,發(fā)件人,發(fā)件人電話,發(fā)件人地址,快件名稱,運費,收件人,收件人電話,收件地址,受理標志,業(yè)務(wù)員)
安排承運( (c) ,實際完成時間,調(diào)度員)
【問題1】
根據(jù)問題描述,補充五個聯(lián)系,完善圖2-1的實體聯(lián)系圖。聯(lián)系名可用聯(lián)系1、聯(lián)系2、聯(lián)系3、聯(lián)系4和聯(lián)系5代替,聯(lián)系的類型分為1:1、1:n和m:n(或1:1、1:*和*:*)。
【問題2】
(1)根據(jù)實體聯(lián)系圖,將關(guān)系模式中的空(a)~(c)補充完整;
(2)給出員工、申請單和安排承運關(guān)系模式的主鍵和外鍵。
【問題3】
(1)客戶關(guān)系的通信地址可以進一步分為郵編、省、市、街道,那么該屬性是否屬于簡單屬性,為什么?請用100字以內(nèi)的文字說明。
(2)假設(shè)分公司需要增設(shè)一位經(jīng)理的職位,那么分公司與經(jīng)理之間的聯(lián)系類型應(yīng)修改為(d),分公司的主鍵應(yīng)修改為(e)。
答案解析與討論:
m.xiexiliangjiufa.com/st/38134841.html第
3題: 閱讀下列說明和圖,回答問題1至問題3,將解答填入答題紙的對應(yīng)欄內(nèi)。
【說明】
某航空公司會員積分系統(tǒng)(CFrequentFlyer)的主要功能描述如下:
乘客只要辦理該航空公司的會員卡,即可成為普卡會員(CBasic)。隨著飛行里程數(shù)的積累,可以從普卡會員升級到銀卡會員(CSilver)或金卡會員(CGold)。非會員(CNonMember)不能積累里程數(shù)。
每年年末,系統(tǒng)根據(jù)會員在本年度累積的里程數(shù)對下一年會員等級進行調(diào)整。
普卡會員在一年內(nèi)累積的里程數(shù)若滿25000英里但不足50000英里,則自動升級為銀卡會員;若累積的里程數(shù)在50000英里以上,則自動升級為金卡會員。銀卡會員在一年內(nèi)累積的里程數(shù)若在50000英里以上,則自動升級為金卡會員。
若一年內(nèi)沒有達到對應(yīng)級別要求的里程數(shù),則自動降低會員等級。金卡會員一年內(nèi)累積的里程數(shù)若不足25000英里,則自動降級為普卡會員;若累積的里程數(shù)達到25000英里,但是不足50000英里,則自動降級為銀卡會員。銀卡會員一年內(nèi)累積的里程數(shù)若不足25000英里,則自動降級為普卡會員。
采用面向?qū)ο蠓椒▽T積分系統(tǒng)進行分析與設(shè)計,得到如圖3-1所示的狀態(tài)圖和圖3-2所示的類圖。
圖3-1 狀態(tài)圖

圖3-2 的類圖
【問題1】(6分)
根據(jù)說明中的描述,給出圖3-1中S1~S3處所對應(yīng)的狀態(tài)以及T1~T3處所對應(yīng)的遷移的名稱。
【問題2】(4分)
根據(jù)說明中的描述,給出圖3-2中C1~C4所對應(yīng)的類名(類名使用說明中給出的英文詞匯)。
【問題3】(5分)
圖3-2所示的類圖中使用了哪種設(shè)計模式?在這種設(shè)計模式下,類CFrequentFlyer必須具有的屬性是什么?C1~C4中的travel方法應(yīng)具有什么功能?
答案解析與討論:
m.xiexiliangjiufa.com/st/3813521296.html第
4題: 閱讀下列說明和C代碼,回答問題1至問題3,將解答填入答題紙的對應(yīng)欄內(nèi)。
【說明】
某工程計算中要完成多個矩陣相乘(鏈乘)的計算任務(wù)。
兩個矩陣相乘要求第一個矩陣的列數(shù)等于第二個矩陣的行數(shù),計算量主要由進行乘法運算的次數(shù)決定。采用標準的矩陣相乘算法,計算A
m×n*B
n×p,需要m*n*p次乘法運算。
矩陣相乘滿足結(jié)合律,多個矩陣相乘,不同的計算順序會產(chǎn)生不同的計算量。以矩陣A1
10×100,A2
100×5,A3
5×50三個矩陣相乘為例,若按(A1*A2)*A3計算,則需要進行10*100*5+10*5*50=7500次乘法運算;若按A1*(A2*A3)計算,則需要進行100*5*50+10*100*50=75000次乘法運算??梢姴煌挠嬎沩樞?qū)τ嬎懔坑泻艽蟮挠绊憽?br />矩陣鏈乘問題可描述為:給定n個矩陣
,矩陣Ai的維數(shù)為pi-1×pi,其中i = 1,2,….n。確定一種乘法順序,使得這n個矩陣相乘時進行乘法的運算次數(shù)最少。
由于可能的計算順序數(shù)量非常龐大,對較大的n,用蠻力法確定計算順序是不實際的。經(jīng)過對問題進行分析,發(fā)現(xiàn)矩陣鏈乘問題具有最優(yōu)子結(jié)構(gòu),即若A1*A2*…*An的一個最優(yōu)計算順序從第k個矩陣處斷開,即分為A1*A2*….Ak和Ak+1*Ak+2*…*An兩個子問題,則該最優(yōu)解應(yīng)該包含A1*A2*…*Ak的一個最優(yōu)計算順序和Ak+1*Ak+2*…An的一個最優(yōu)計算順序。據(jù)此構(gòu)造遞歸式,

其中,cost[i][j]表示Ai+1*Ai+2*...Aj+1的最優(yōu)計算的計算代價。最終需要求解cost[0][n-1]。
【C代碼】
算法實現(xiàn)采用自底向上的計算過程。首先計算兩個矩陣相乘的計算量,然后依次計算3個矩陣、4個矩陣、…、n個矩陣相乘的最小計算量及最優(yōu)計算順序。下面是算法的C語言實現(xiàn)。
(1)主要變量說明
n:矩陣數(shù)
seq[]:矩陣維數(shù)序列
cost[][]:二維數(shù)組,長度為n*n,其中元素cost[i][j]表示Ai+1*Ai+2*…Aj+1的最優(yōu)計算的計算代價
trace[][]:二維數(shù)組,長度為n*n,其中元素trace[i][j]表示Ai+1*Ai+2*Aj+1的最優(yōu)計算對應(yīng)的劃分位置,即k
(2)函數(shù)cmm
#define N 100
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 for(p=1;p for(i=0; (1) ;i++){
(2) ;
tempCost = -1;
for(k = i;k temp= (3) ;
if(tempCost==-1||tempCost>temp){
tempCost = temp;
(4) ;
}
}
cost[i][j] = tempCost;
trace[i][j] = tempTrace;
}
}
return cost[0][n-1];
}
【問題1】(8分)
根據(jù)以上說明和C代碼,填充C代碼中的空(1)~(4)。
【問題2】(4分)
根據(jù)以上說明和C代碼,該問題采用了 (5) 算法設(shè)計策略,時間復雜度 (6) 。(用O符號表示)
【問題3】(3分)
考慮實例n=6,各個矩陣的維數(shù):A1為5*10,A2為10*3,A3為3*12,A4為12*5,A5為5*50,A6為50*6,即維數(shù)序列為5,10,3,12,5,50,6。則根據(jù)上述C代碼得到的一個最優(yōu)計算順序為 (7) (用加括號方式表示計算順序),所需要的乘法運算次數(shù)為 (8) 。
答案解析與討論:
m.xiexiliangjiufa.com/st/3813627375.html