第
1題: 閱讀下列說(shuō)明和圖,回答問(wèn)題1至問(wèn)題4,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
某醫(yī)療器械公司作為復(fù)雜醫(yī)療產(chǎn)品的集成商,必須保持高質(zhì)量部件的及時(shí)供應(yīng)。為了實(shí)現(xiàn)這一目標(biāo),該公司欲開(kāi)發(fā)一采購(gòu)系統(tǒng)。系統(tǒng)的主要功能如下:
1.檢查庫(kù)存水平。采購(gòu)部門每天檢查部件庫(kù)存量,當(dāng)特定部件的庫(kù)存量降至其訂貨點(diǎn)時(shí),返回低存量部件及庫(kù)存量。
2.下達(dá)采購(gòu)訂單。采購(gòu)部門針對(duì)低存量部件及庫(kù)存量提交采購(gòu)請(qǐng)求,向其供應(yīng)商(通過(guò)供應(yīng)商文件訪問(wèn)供應(yīng)商數(shù)據(jù))下達(dá)采購(gòu)訂單,并存儲(chǔ)于采購(gòu)訂單文件中。
3. 交運(yùn)部件。當(dāng)供應(yīng)商提交提單并交運(yùn)部件時(shí),運(yùn)輸和接收(S/R)部門通過(guò)執(zhí)行以下三步過(guò)程接收貨物:
(1)驗(yàn)證裝運(yùn)部件。通過(guò)訪問(wèn)采購(gòu)訂單并將其與提單進(jìn)行比較來(lái)驗(yàn)證裝運(yùn)的部件,并將提單信息發(fā)給 S/R 職員。 如果收貨部件項(xiàng)目出現(xiàn)在采購(gòu)訂單和提單上,則已驗(yàn)證的提單和收貨部件項(xiàng)目將被送去檢驗(yàn)。否則,將S/R職員提交的裝運(yùn)錯(cuò)誤信息生成裝運(yùn)錯(cuò)誤通知發(fā)送給供應(yīng)商。
(2) 檢驗(yàn)部件質(zhì)量。通過(guò)訪問(wèn)質(zhì)量標(biāo)準(zhǔn)來(lái)檢查裝運(yùn)部件的質(zhì)量,并將己驗(yàn)證的提單發(fā)給檢驗(yàn)員。如果部件滿足所有質(zhì)量標(biāo)準(zhǔn),則將其添加到接受的部件列表用于更新部件庫(kù)存。如果部件未通過(guò)檢查,則將檢驗(yàn)員創(chuàng)建的缺陷裝運(yùn)信息生成缺陷裝運(yùn)通知發(fā)送給供應(yīng)商。
(3)更新部件庫(kù)存。庫(kù)管員根據(jù)收到的接受的部件列表添加本次采購(gòu)數(shù)量,與原有庫(kù)存量累加來(lái)更新庫(kù)存部件中的庫(kù)存量。標(biāo)記訂單采購(gòu)?fù)瓿伞?br />現(xiàn)采用結(jié)構(gòu)化方法對(duì)該采購(gòu)系統(tǒng)進(jìn)行分析與設(shè)計(jì),獲得如圖1-1 所示的上下文數(shù)據(jù)流圖和圖 1-2 所示的 0 層數(shù)據(jù)流圖。
圖1-1上下文數(shù)據(jù)流圖
圖1-2 0層數(shù)據(jù)流圖
【問(wèn)題1】(5分)
使用說(shuō)明中的詞語(yǔ),給出圖1-1中的實(shí)體E1 ~E5
【問(wèn)題2】(4分)
使用說(shuō)明中的詞語(yǔ),給出圖1-2中的數(shù)據(jù)存儲(chǔ)D1~D4的名稱。
【問(wèn)題3】(4分)
根據(jù)說(shuō)明和圖中術(shù)語(yǔ),補(bǔ)充圖1-2中缺失的數(shù)據(jù)流及其起點(diǎn)和終點(diǎn)。
【問(wèn)題 4】(2分)
用 200 字以內(nèi)文字,說(shuō)明建模圖 1-1 和圖 1-2 時(shí)如何保持?jǐn)?shù)據(jù)流圖平衡。
答案解析與討論:
m.xiexiliangjiufa.com/st/384197499.html第
2題: 閱讀下列說(shuō)明,回答問(wèn)題1至問(wèn)題3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
某房屋租賃公司擬開(kāi)發(fā)一個(gè)管理系統(tǒng)用于管理其持有的房屋、租客及員工信息。請(qǐng)根據(jù)下述需求描述完成系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)。
【需求描述】
1.公司擁有多幢公寓樓,每幢公寓樓有唯一的樓編號(hào)和地址。每幢公寓樓中有多套公寓,每套公寓在樓內(nèi)有唯一的編號(hào)(不同公寓樓內(nèi)的公寓號(hào)可相同〉。系統(tǒng)需記錄每套公寓的臥室數(shù)和衛(wèi)生間數(shù)。
2.員工和租客在系統(tǒng)中有唯一的編號(hào)(員工編號(hào)和租客編號(hào))。
3.對(duì)于每個(gè)租客,系統(tǒng)需記錄姓名、多個(gè)聯(lián)系電話、一個(gè)銀行賬號(hào)(方便自動(dòng)扣房租)、一個(gè)緊急聯(lián)系人的姓名及聯(lián)系電話。
4.系統(tǒng)需記錄每個(gè)員工的姓名、一個(gè)聯(lián)系電話和月工資。員工類別可以是經(jīng)理或維修工,也可兼任。每個(gè)經(jīng)理可以管理多幢公寓樓。每幢公寓樓必須由一個(gè)經(jīng)理管理。系統(tǒng)需記錄每個(gè)維修工的業(yè)務(wù)技能,如:水暖維修、電工、木工等。
5. 租客租賃公寓必須和公司簽訂租賃合同。一份租賃合同通常由一個(gè)或多個(gè)租客(合租)與該公寓樓的經(jīng)理簽訂,一個(gè)租客也可租賃多套公寓。合同內(nèi)容應(yīng)包含簽訂日期、開(kāi)始時(shí)間、租期、押金和月租金。
【概念模型設(shè)計(jì)】
根據(jù)需求階段收集的信息,設(shè)計(jì)的實(shí)體聯(lián)系圖(不完整)如圖2-1所示。
【邏輯結(jié)構(gòu)設(shè)計(jì)】
根據(jù)概念摸型設(shè)計(jì)階段完成的實(shí)體聯(lián)系圖,得出如下關(guān)系模式(不完整):
聯(lián)系電話(電話號(hào)碼,租客編號(hào))
租客(租客編號(hào),姓名,銀行賬號(hào),聯(lián)系人姓名,聯(lián)系人電話)
員工(員工編號(hào),姓名,聯(lián)系電話,類別,月工資, (a) )
公寓樓( (b) ,地址,經(jīng)理編號(hào))
公寓(樓編號(hào),公寓號(hào),臥室數(shù),衛(wèi)生間數(shù)〉
合同(合同編號(hào),租客編號(hào),樓編號(hào),公寓號(hào),經(jīng)理編號(hào),簽訂日期,起始日期,租期, (c) ,押金)
【問(wèn)題1】(4.5分)
補(bǔ)充圖2-1中的“簽約”聯(lián)系所關(guān)聯(lián)的實(shí)體及聯(lián)系類型。
【問(wèn)題2】(4.5分)
補(bǔ)充邏輯結(jié)構(gòu)設(shè)計(jì)中的(a)、(b)、(c)三處空缺。
【問(wèn)題3】(6分)
在租期內(nèi),公寓內(nèi)設(shè)施如出現(xiàn)問(wèn)題,租客可在系統(tǒng)中進(jìn)行故障登記,填寫故障描述,每項(xiàng)故障由系統(tǒng)自動(dòng)生成唯一的故障編號(hào),由公司派維修工進(jìn)行故障維修,系統(tǒng)需記錄每次維修的維修日期和維修內(nèi)容。請(qǐng)根據(jù)此需求,對(duì)圖2-1進(jìn)行補(bǔ)充,并將所補(bǔ)充的ER圖內(nèi)容轉(zhuǎn)換為一個(gè)關(guān)系模式,請(qǐng)給出該關(guān)系模式。
答案解析與討論:
m.xiexiliangjiufa.com/st/3842022576.html第
4題: 閱讀下列說(shuō)明和C代碼,回答問(wèn)題 1 至問(wèn)題 3,將解答寫在答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
假幣問(wèn)題:有n枚硬幣,其中有一枚是假幣,己知假幣的重量較輕?,F(xiàn)只有一個(gè)天平,要求用盡量少的比較次數(shù)找出這枚假幣。
【分析問(wèn)題】
將n枚硬幣分成相等的兩部分:
(1)當(dāng)n為偶數(shù)時(shí),將前后兩部分,即 1...n/2和n/2+1...0,放在天平的兩端,較輕的一端里有假幣,繼續(xù)在較輕的這部分硬幣中用同樣的方法找出假幣:
(2)當(dāng)n為奇數(shù)時(shí),將前后兩部分,即1..(n -1)/2和(n+1)/2+1...0,放在天平的兩端,較輕的一端里有假幣,繼續(xù)在較輕的這部分硬幣中用同樣的方法找出假幣;若兩端重量相等,則中間的硬幣,即第 (n+1)/2枚硬幣是假幣。
【C代碼】
下面是算法的C語(yǔ)言實(shí)現(xiàn),其中:
coins[]: 硬幣數(shù)組
first,last:當(dāng)前考慮的硬幣數(shù)組中的第一個(gè)和最后一個(gè)下標(biāo)
#include
int getCounterfeitCoin(int coins[], int first,int last)
{
int firstSum = 0,lastSum = 0;
int ì;
If(first==last-1){ /*只剩兩枚硬幣*/
if(coins[first]< coins[last])
return first;
return last;
}
if((last - first + 1) % 2 ==0){ /*偶數(shù)枚硬幣*/
for(i = first;i<( 1 );i++){
firstSum+= coins[i];
}
for(i=first + (last-first) / 2 + 1;i< last +1;i++){
lastSum += coins[i];
}
if( 2 ){
Return getCounterfeitCoin(coins,first,first+(last-first)/2;)
}else{
Return getCounterfeitCoin(coins,first+(last-first)/2+1,last;)
}
}
else{ /*奇數(shù)枚硬幣*/
For(i=first;i<="" p="">
firstSum+=coins[i];
}
For(i=first+(last-first)/2+1;i
lastSum+=coins[i];
}
If(firstSum
return getCounterfeitCoin(coins,first,first+(last-first)/2-1);
}else if(firstSum>lastSum){
return getCounterfeitCoin(coins,first+(last-first)/2-1,last);
}else{
Return( 3 )
}
}
}
【問(wèn)題一】
根據(jù)題干說(shuō)明,填充C代碼中的空(1)-(3)
【問(wèn)題二】
根據(jù)題干說(shuō)明和C代碼,算法采用了( )設(shè)計(jì)策略。
函數(shù)getCounterfeitCoin的時(shí)間復(fù)雜度為( )(用O表示)。
【問(wèn)題三】
若輸入的硬幣數(shù)為30,則最少的比較次數(shù)為( ),最多的比較次數(shù)為( )。
答案解析與討論:
m.xiexiliangjiufa.com/st/3842215171.html第
5題: 閱讀下列說(shuō)明和 C++代碼,將應(yīng)填入(n)處的字句寫在答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
某快餐廳主要制作井出售兒童套餐,一般包括主餐(各類比薩)、飲料和玩具,其餐品種類可能不同,但其制作過(guò)程相同。前臺(tái)服務(wù)員(Waiter)調(diào)度廚師制作套餐。現(xiàn)采用生成器(Builder) 模式實(shí)現(xiàn)制作過(guò)程,得到如圖 5-1 所示的類圖。
圖5-1 類圖
【C++代碼】
#include
#include
using namespace std;
class Pizza {
private: string parts;
public:
void setParts(string parts) { this->parts=parts; }
string getParts() { return parts; }
};
class PizzaBuilder {
protected:Pizza* pizza;
public:
Pizza* getPizza() { retum pizza; }
void createNewPizza() { pizza = new Pizza(); }
( 1 );
}
class HawaiianPizzaBuilder :public PizzaBuilder {
public:
void buildParts() { pizza->setParts("cross +mild + ham&pineapple"); }
};
class SpicyPizzaBuider: public PizzaBuilder {
public:
void buildParts() { pizza->setParts("pan baked +hot + ham&pineapple"); }
}
Class Waiter{
Private:
PizzaBuilder* pizzaBuilder;
public:
void setPizzaBuilder(PizzaBuilder* pizzaBuilder) { /*設(shè)置構(gòu)建器*/
( 2 )
}
Pizza* getPizza() { return pizzaBuilder->getPizza(); }
void construct() { /*構(gòu)建*/
pizzaBuilder->createNewPizza();
( 3 )
}
};
int main(){
Waiter*waiter=new Waiter();
PizzaBuilder*hawaiian pizzabuilder=new HawaiianPizzaBuilder()
( 4 );
( 5 );
cout<< "pizza: "<< waiter->getPizza()->getParts()<< endl;
}
程序的輸出結(jié)果為:
pizza: cross + mild + ham&pineapple
答案解析與討論:
m.xiexiliangjiufa.com/st/384239657.html第
6題: 閱讀下列說(shuō)明和 Java代碼,將應(yīng)填入 (n) 處的字句寫在答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
某快餐廳主要制作并出售兒童套餐,一般包括主餐(各類比薩)、飲料和玩具,其餐品種類可能不同,但其制作過(guò)程相同。前臺(tái)服務(wù)員 (Waiter) 調(diào)度廚師制作套餐?,F(xiàn)采用生成器 (Builder) 模式實(shí)現(xiàn)制作過(guò)程,得到如圖 6-1 所示的類圖。
【Java代碼】
class Pizza {
private String parts;
public void setParts(String parts) { this.parts = parts; }
public String toString() { return this.parts; }
}
abstract class PizzaBuilder {
protected Pizza pizza;
public Pizza getPizza() { return pizza; }
public void createNewPizza() { pizza = new Pizza(); }
public (1) ;
}
class HawaiianPizzaBuilder extends PizzaBuilder {
public void buildParts() { pizza.setParts("cross + mild + ham&pineapp1e”};
}
class SpicyPizzaBuilder extends PizzaBuilder {
public void buildParts() { pizza.setParts("pan baked + hot + pepperoni&salami"); }
}
class Waiter {
private PizzaBuilder pizzaBuilder;
public void setPizzaBuilder(PizzaBuilder pizzaBuilder) { /*設(shè)置構(gòu)建器*/
( 2 ) ;
}
public Pizza getPizza(){ return pizzaBuilder.getPizza(); }
public void construct() { /*構(gòu)建*/
pizzaBuilder.createNewPizza();
( 3 ) ;
}
}
Class FastFoodOrdering {
public static viod mainSting[]args) {
Waiter waiter = new Waiter();
PizzaBuilder hawaiian_pizzabuilder = new HawaiianPizzaBuilder();
( 4 ) ;
( 5 ) ;
System.out.println("pizza: " + waiter.getPizza());
}
}
程序的輸出結(jié)果為:
Pizza:cross + mild + ham&pineapple
答案解析與討論:
m.xiexiliangjiufa.com/st/3842420151.html