深夜成人在线,chinese国产一区二区,欧美精品乱码,日韩欧美在线视频免费观看,国产午夜不卡,日韩av影院在线,五月天婷婷国产精品

軟題庫 學習課程
試卷年份2014年下半年
試題題型【分析簡答題】
試題內容

閱讀下列說明,回答問題1至問題3,將解答填入答題紙的對應欄內。
【說明】
某集團公司在全國不同城市擁有多個大型超市,為了有效管理各個超市的業(yè)務工作,需要構建一個超市信息管理系統(tǒng)。
【需求分析結果】
(1)超市信息包括:超市名稱、地址、經理和電話,其中超市名稱唯一確定超市關系的每一個元組。每個超市只有一名經理。
(2)超市設有計劃部、財務部、銷售部等多個部門,每個部門只有一名部門經理,有多名員工,每個員工只屬于一個部門。部門信息包括:超市名稱、部門名稱、部門經理和聯系電話。超市名稱、部門名稱唯一確定部門關系的每一個元組。
(3)員工信息包括:員工號、姓名、超市名稱、部門名稱、職位、聯系方式和工資。其中,職位信息包括:經理、部門經理、業(yè)務員等。員工號唯一確定員工關系的每一個元組。
(4)商品信息包括:商品號、商品名稱、型號、單價和數量。商品號唯一確定商品關系的每一個元組。一名業(yè)務員可以負責超市內多種商品的配給,一種商品可以由多名業(yè)務員配給。
【概念模型設計】
根據需求分析階段收集的信息,設計的實體聯系圖和關系模式(不完整)如下:

【關系模式設計】
超市(超市名稱,經理,地址,電話)
部門(  (a)  ,部門經理,聯系電話)
員工(  (b)  ,姓名,聯系方式,職位,工資)
商品(商品號,商品名稱,型號,單價,數量)
配給(  (c)  ,配給時間,配給數量,業(yè)務員)
【問題1】(4分)
根據問題描述,補充四個聯系,完善圖1-1的實體聯系圖。聯系名可用聯系1、聯系2、聯系3和聯系4代替,聯系的類型分為1:1、1:n和m:n(或1:1、1:*和*:*)。
【問題2】(7分)
(1)根據實體聯系圖,將關系模式中的空(a)~(c)補充完整;
(2)給出部門和配給關系模式的主鍵和外鍵。
【問題3】(4分)
(1)超市關系的地址可以進一步分為郵編、省、市、街道,那么該屬性是屬于簡單屬性還是復合屬性?請用100字以內文字說明。
(2)假設超市需要增設一個經理的職位,那么超市與經理之間的聯系類型應修改為  (d)  ,超市關系應修改為  (e)  。

查看答案

相關試題

1題: 閱讀下列說明和圖,回答問題1至問題3,將解答填入答題紙的對應欄內。
【說明】
某大型披薩加工和銷售商為了有效管理生產和銷售情況,欲開發(fā)一披薩信息系統(tǒng), 其主要功能如下:
(1)銷售。處理客戶的訂單信息,生成銷售訂單,并將其記錄在銷售訂單表中。銷售訂單記錄了訂購者、所訂購的披薩、期望的交付日期等信息。
(2)生產控制。根據銷售訂單以及庫存的披薩數量,制定披薩生產計劃(包括生產哪些披薩、生產順序和生產量等),并將其保存在生產計劃表中。
(3)生產。根據生產計劃和配方表中的披薩配方,向庫存發(fā)出原材料申領單,將制作好的披薩的信息存入庫存表中,以便及時進行交付。
(4)采購。根據所需原材料及庫存量,確定采購數量,向供應商發(fā)送采購訂單,并將其記錄在采購訂單表中;得到供應商的供應量,將原材料數量記錄在庫存表中,在采購訂單表中標記已完成采購的訂單。
(5)運送。根據銷售訂單將披薩交付給客戶,并記錄在交付記錄表中。
(6)財務管理。在披薩交付后,為客戶開具費用清單,收款并出具收據;依據完成的采購訂單給供應商支付原材料費用并出具支付細節(jié);將收款和支付記錄存入收支記錄表中。
(7)存儲。檢查庫存的原材料、拔薩和未完成訂單,確定所需原材料。
現采用結構化方法對披薩信息系統(tǒng)進行分析與設計,獲得如圖1-1所示的上下文數據流圖和圖1-2所示的0層數據流圖。


【問題1】(4分)
根據說明中的詞語,給出圖1-1中的實體E1~E2的名稱。
【問題2】(5分)
根據說明中的詞語,給出圖1-2中的數據存儲D1~D5的名稱。
【問題3】(6分)
根據說明和圖中詞語,補充圖1-2中缺失的數據流及其起點和終點。
答案解析與討論:www.ichunya.com/st/381459990.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ū)。
現采用面向對象方法對該系統(tǒng)進行分析與設計,得到如圖1-1所示的初始類圖。

【問題1】 (8分)
根據說明中的描述,給出圖1-1中C1~C4所對應的類名(類名使用說明中給出的英文詞匯)。
【問題2】(3分)
根據說明中的描述,給出圖1-1中M1~M6處的多重度。
【問題3】(4分)
現對該系統(tǒng)提出了以下新需求:
(1)某些人擁有在多個選區(qū)投票的權利,因此需要注冊多個選區(qū);
(2)對手滿足(1)的選民,需要劃定其“主要居住地”,以確定他們應該在哪個選區(qū)進行投票。
為了滿足上述需求,需要對圖1-1所示的類圖進行哪些修改?請用100字以內文字說明。
答案解析與討論:www.ichunya.com/st/3814720120.html

4題: 閱讀下列說明和C代碼,回答問題1至問題3,將解答寫在答題紙的對應欄內。
【說明】
計算一個整數數組a的最長遞增子序列長度的方法描述如下:
假設數組a的長度為n,用數組b的元素b[i]記錄以a[i](0≤i;其中b[i]滿足最優(yōu)子結構,可遞歸定義為:

【C代碼】
下面是算法的C語言實現。
(1)常量和變量說明
a:長度為n的整數數組,待求其最長遞增子序列
b:長度為n的數組,b[i]記錄以a[i](0≤i度,其中0≤ilen:最長遞增子序列的長度
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分)
根據說明和C代碼,填充C代碼中的空(1)~(4)。
【問題2】(4分)
根據說明和C代碼,算法采用了 (5) 設計策略,時間復雜度為 (6) (用O符號表示)。
【問題3】(3分)
已知數組a={3,10,5,15,6,8},根據說明和C代碼,給出數組b的元素值。
答案解析與討論:www.ichunya.com/st/3814829334.html

5題: 閱讀下列說明和C++代碼,將應填入 (n) 處的字句寫在答題紙的對應欄內。
【說明】
某燈具廠商欲生產一個燈具遙控器,該遙控器具有7個可編程的插槽,每個插槽都有開關按鈕,對應著一個不同的燈。利用該遙控器能夠統(tǒng)一控制房間中該廠商所有品牌燈具的開關,現采用Command(命令)模式實現該遙控器的軟件部分。Command模式的類圖如圖1-1所示。

【C++代碼】
class Light {
public:
Light(string name) { /* 代碼省略 */ }
void on() { /* 代碼省略 */ }    // 開燈
void off() { /* 代碼省略 */ }  // 關燈
};
class Command {
public:
(1)    ;
};
class LightOnCommand:public Command { // 開燈命令
private:
Light* light;
public:
LightOnCommand(Light* light) { this->light=light; }
void execute() {     (2)    ; }
};
class LightOffCommand:public Command { // 關燈命令
private:
Light *light;
public:
LightOffCommand(Light* light) { this->light=light; }
void execute() {     (3)    ; }
};
class RemoteControl{ // 遙控器
private:
Command* onCommands[7];
Command* offCommands[7];
public:
RemoteControl() { /* 代碼省略 */ }
void setCommand(int slot, Command* onCommand, Command* offCommand) {
(4)    =onCommand;
(5)    =offCommand;
}
void onButtonWasPushed(int slot) {     (6)    ; }
void offButtonWasPushed(int slot) {     (7)    ; }
};
int main() {
RemoteControl* remoteControl=new RemoteControl();
Light* livingRoomLight=new Light("Living Room");
Light* kitchenLight=new Light("kitchen");
LightOnCommand* livingRoomLightOn=new LightOnCommand(livingRoomLight);
LightOffCommand* livingRoomLightOff=newLightOffCommand(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);
/* 其余代碼省略 */
return 0;
}
答案解析與討論:www.ichunya.com/st/3814921042.html