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

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

【C代碼】
下面是算法的C語(yǔ)言實(shí)現(xiàn)。
(1)常量和變量說(shuō)明
a:長(zhǎng)度為n的整數(shù)數(shù)組,待求其最長(zhǎng)遞增子序列
b:長(zhǎng)度為n的數(shù)組,b[i]記錄以a[i](0≤i
度,其中0≤i
len:最長(zhǎng)遞增子序列的長(zhǎng)度
i,j:循環(huán)變量
temp:臨時(shí)變量
(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");
}
【問(wèn)題1】(8分)
根據(jù)說(shuō)明和C代碼,填充C代碼中的空(1)~(4)。
【問(wèn)題2】(4分)
根據(jù)說(shuō)明和C代碼,算法采用了 (5) 設(shè)計(jì)策略,時(shí)間復(fù)雜度為 (6) (用O符號(hào)表示)。
【問(wèn)題3】(3分)
已知數(shù)組a={3,10,5,15,6,8},根據(jù)說(shuō)明和C代碼,給出數(shù)組b的元素值。
答案解析與討論:
m.xiexiliangjiufa.com/st/3814829334.html第
6題: 閱讀下列說(shuō)明和Java代碼,將應(yīng)填入 (n) 處的字句寫在答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
某燈具廠商欲生產(chǎn)一個(gè)燈具遙控器,該遙控器具有7個(gè)可編程的插槽,每個(gè)插槽都有開(kāi)關(guān)燈具的開(kāi)關(guān),現(xiàn)采用Command(命令)模式實(shí)現(xiàn)該遙控器的軟件部分。Command模式的類圖如圖1-1所示。

【Java代碼】
class Light {
public Light() {}
public Light(String name) { /* 代碼省略 */ }
public void on() { /* 代碼省略 */ } // 開(kāi)燈
public void off() { /* 代碼省略 */ } // 關(guān)燈
// 其余代碼省略
}
(1) {
public void execute();
}
class LightOnCommand implements Command { // 開(kāi)燈命令
Light light;
public LightOnCommand(Light light) { this.light=light; }
public void execute() { (2) ; }
}
class LightOffCommand implements Command { // 關(guān)燈命令
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);
}
}
答案解析與討論:
m.xiexiliangjiufa.com/st/3815027966.html