第
2題: 閱讀下列說明,回答問題1至問題3,將解答填入答題紙的對應欄內。
【說明】
某集團公司在全國不同城市擁有多個大型超市,為了有效管理各個超市的業(yè)務工作,需要構建一個超市信息管理系統(tǒng)。
【需求分析結果】
(1)超市信息包括:超市名稱、地址、經(jīng)理和電話,其中超市名稱唯一確定超市關系的每一個元組。每個超市只有一名經(jīng)理。
(2)超市設有計劃部、財務部、銷售部等多個部門,每個部門只有一名部門經(jīng)理,有多名員工,每個員工只屬于一個部門。部門信息包括:超市名稱、部門名稱、部門經(jīng)理和聯(lián)系電話。超市名稱、部門名稱唯一確定部門關系的每一個元組。
(3)員工信息包括:員工號、姓名、超市名稱、部門名稱、職位、聯(lián)系方式和工資。其中,職位信息包括:經(jīng)理、部門經(jīng)理、業(yè)務員等。員工號唯一確定員工關系的每一個元組。
(4)商品信息包括:商品號、商品名稱、型號、單價和數(shù)量。商品號唯一確定商品關系的每一個元組。一名業(yè)務員可以負責超市內多種商品的配給,一種商品可以由多名業(yè)務員配給。
【概念模型設計】
根據(jù)需求分析階段收集的信息,設計的實體聯(lián)系圖和關系模式(不完整)如下:
【關系模式設計】
超市(超市名稱,經(jīng)理,地址,電話)
部門( (a) ,部門經(jīng)理,聯(lián)系電話)
員工( (b) ,姓名,聯(lián)系方式,職位,工資)
商品(商品號,商品名稱,型號,單價,數(shù)量)
配給( (c) ,配給時間,配給數(shù)量,業(yè)務員)
【問題1】(4分)
根據(jù)問題描述,補充四個聯(lián)系,完善圖1-1的實體聯(lián)系圖。聯(lián)系名可用聯(lián)系1、聯(lián)系2、聯(lián)系3和聯(lián)系4代替,聯(lián)系的類型分為1:1、1:n和m:n(或1:1、1:*和*:*)。
【問題2】(7分)
(1)根據(jù)實體聯(lián)系圖,將關系模式中的空(a)~(c)補充完整;
(2)給出部門和配給關系模式的主鍵和外鍵。
【問題3】(4分)
(1)超市關系的地址可以進一步分為郵編、省、市、街道,那么該屬性是屬于簡單屬性還是復合屬性?請用100字以內文字說明。
(2)假設超市需要增設一個經(jīng)理的職位,那么超市與經(jīng)理之間的聯(lián)系類型應修改為 (d) ,超市關系應修改為 (e) 。
答案解析與討論:
www.ichunya.com/st/381463849.html第
3題: 閱讀下列說明和圖,回答問題1至問題3,將解答填入答題紙的對應欄內。
【說明】
某公司欲開發(fā)一個管理選民信息的軟件系統(tǒng)。系統(tǒng)的基本需求描述如下:
(1)每個人(Person)可以是一個合法選民(Eligible)或者無效的選民(Ineligible)。
(2)每個合法選民必須通過該系統(tǒng)對其投票所在區(qū)域(即選區(qū),Riding)進行注冊( Registration)。每個合法選民僅能注冊一個選區(qū)。
(3)選民所屬選區(qū)由其居住地址(Address)決定。假設每個人只有一個地址,地址可以是鎮(zhèn)(Town)或者城市(City)。
(4)某些選區(qū)可能包含多個鎮(zhèn);而某些較大的城市也可能包含多個選區(qū)。
現(xiàn)采用面向對象方法對該系統(tǒng)進行分析與設計,得到如圖1-1所示的初始類圖。

【問題1】 (8分)
根據(jù)說明中的描述,給出圖1-1中C1~C4所對應的類名(類名使用說明中給出的英文詞匯)。
【問題2】(3分)
根據(jù)說明中的描述,給出圖1-1中M1~M6處的多重度。
【問題3】(4分)
現(xiàn)對該系統(tǒng)提出了以下新需求:
(1)某些人擁有在多個選區(qū)投票的權利,因此需要注冊多個選區(qū);
(2)對手滿足(1)的選民,需要劃定其“主要居住地”,以確定他們應該在哪個選區(qū)進行投票。
為了滿足上述需求,需要對圖1-1所示的類圖進行哪些修改?請用100字以內文字說明。
答案解析與討論:
www.ichunya.com/st/3814720120.html第
4題: 閱讀下列說明和C代碼,回答問題1至問題3,將解答寫在答題紙的對應欄內。
【說明】
計算一個整數(shù)數(shù)組a的最長遞增子序列長度的方法描述如下:
假設數(shù)組a的長度為n,用數(shù)組b的元素b[i]記錄以a[i](0≤i
;其中b[i]滿足最優(yōu)子結構,可遞歸定義為:

【C代碼】
下面是算法的C語言實現(xiàn)。
(1)常量和變量說明
a:長度為n的整數(shù)數(shù)組,待求其最長遞增子序列
b:長度為n的數(shù)組,b[i]記錄以a[i](0≤i
度,其中0≤i
len:最長遞增子序列的長度
i,j:循環(huán)變量
temp:臨時變量
(2)C程序
#include
int maxL(int*b, int n) {
int i, temp=0;
for(i=0; i if(b[i]>temp)
temp=b[i];
}
return temp;
}
int main() {
int n, a[100], b[100], i, j, len;
scanf("%d", &n);
for(i=0; i scanf("%d", &a[i]);
}
(1) ;
for(i=1; i for(j=0, len=0; (2) ; j++) {
if( (3) && len len=b[j];
}
(4) ;
}
Printf("len:%d\n", maxL(b,n));
printf("\n");
}
【問題1】(8分)
根據(jù)說明和C代碼,填充C代碼中的空(1)~(4)。
【問題2】(4分)
根據(jù)說明和C代碼,算法采用了 (5) 設計策略,時間復雜度為 (6) (用O符號表示)。
【問題3】(3分)
已知數(shù)組a={3,10,5,15,6,8},根據(jù)說明和C代碼,給出數(shù)組b的元素值。
答案解析與討論:
www.ichunya.com/st/3814829334.html第
6題: 閱讀下列說明和Java代碼,將應填入 (n) 處的字句寫在答題紙的對應欄內。
【說明】
某燈具廠商欲生產一個燈具遙控器,該遙控器具有7個可編程的插槽,每個插槽都有開關燈具的開關,現(xiàn)采用Command(命令)模式實現(xiàn)該遙控器的軟件部分。Command模式的類圖如圖1-1所示。

【Java代碼】
class Light {
public Light() {}
public Light(String name) { /* 代碼省略 */ }
public void on() { /* 代碼省略 */ } // 開燈
public void off() { /* 代碼省略 */ } // 關燈
// 其余代碼省略
}
(1) {
public void execute();
}
class LightOnCommand implements Command { // 開燈命令
Light light;
public LightOnCommand(Light light) { this.light=light; }
public void execute() { (2) ; }
}
class LightOffCommand implements Command { // 關燈命令
Light light;
public LightOffCommand(Light light) { this.light=light; }
public void execute(){ (3) ; }
}
class RemoteControl { // 遙控器
Command[] onCommands=new Command[7];
Command[] offCommands=new Command[7];
public RemoteControl() { /* 代碼省略 */ }
public void setCommand(int slot, Command onCommand, Command offCommand) {
(4) =onCommand;
(5) =offCommand;
}
public void onButtonWasPushed(int slot) {
(6) ;
}
public void offlButtonWasPushed(int slot){
(7) ;
}
}
class RemoteLoader {
public static void main(String[] args) {
RemoteControl remoteControl=new RemoteControl();
Light livingRoomLight=new Light("Living Room");
Light kitchenLight=new Light("kitchen");
LightOnCommand livingRoomLightOn=new LightOnCommand(livingRoomLight);
LightOffCommand livingRoomLightOff=new LightOffCommand(livingRoomLight);
LightOnCommand kitchenLightOn=new LightOnCommand(kitchenLight);
LightOffCommand kitchenLightOff=new LightOffCommand(kitchenLight);
remoteControl.setCommand(0, livingRoomLightOn, livingRoomLightOff);
remoteControl.setCommand(1, kitchenLightOn, kitchenLightOff);
remoteControl.onButtonWasPushed(0);
remoteControl.offButtonWasPushed(0);
remoteControl.onButtonWasPushed(1);
remoteControl.offButtonWasPushed(1);
}
}
答案解析與討論:
www.ichunya.com/st/3815027966.html