第
1題:
閱讀下列說(shuō)明和圖,回答問(wèn)題1至問(wèn)題4,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。【說(shuō)明】 某慕課教育平臺(tái)欲添加在線作業(yè)批改系統(tǒng),以實(shí)現(xiàn)高效的作業(yè)提交與批改,并進(jìn)行統(tǒng)計(jì)。學(xué)生和講師的基本信息已經(jīng)初始化為數(shù)據(jù)庫(kù)中的學(xué)生表和講師表。系統(tǒng)的主要功能如下: (1)提交作業(yè)。驗(yàn)證學(xué)生標(biāo)識(shí)后,學(xué)生將電子作業(yè)通過(guò)在線的方式提交,并進(jìn)行存儲(chǔ)。系統(tǒng)給學(xué)生發(fā)送通知表明提交成功,通知中包含唯一編號(hào);并通知講師有作業(yè)提交。 (2)下載未批改作業(yè)。驗(yàn)證講師標(biāo)識(shí)后,講師從系統(tǒng)中下載學(xué)生提交的作業(yè)。下載的作業(yè)將顯示在屏幕上。 (3)批改作業(yè)。講師按格式為每個(gè)題目進(jìn)行批改打分,并進(jìn)行整體評(píng)價(jià)。 (4)上傳批改后的作業(yè)。將批改后的作業(yè)(包括分?jǐn)?shù)和評(píng)價(jià))返回給系統(tǒng),進(jìn)行存儲(chǔ)。 (5)記錄分?jǐn)?shù)和評(píng)價(jià)。將批改后的作業(yè)的分?jǐn)?shù)和評(píng)價(jià)記錄在學(xué)生信息中,并通知學(xué)生作業(yè)已批改。 (6)獲取已批改作業(yè)。根據(jù)學(xué)生標(biāo)識(shí),給學(xué)生查看批改后的作業(yè),包括提交的作業(yè)、分?jǐn)?shù)和評(píng)價(jià)。 (7)作業(yè)抽檢。根據(jù)教務(wù)人員標(biāo)識(shí)抽取批改后的作業(yè)樣本,給出抽檢意見(jiàn),然后形成抽檢報(bào)告給講師。 現(xiàn)采用結(jié)構(gòu)化方法對(duì)在線作業(yè)批改系統(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】(3分) 使用說(shuō)明中的詞語(yǔ),給出圖1-1中的實(shí)體E1~E3的名稱(chēng)。【問(wèn)題2】(4分) 使用說(shuō)明中的詞語(yǔ),給出圖1-2中的數(shù)據(jù)存儲(chǔ)D1~D4的名稱(chēng)。【問(wèn)題3】(6分) 根據(jù)說(shuō)明和圖中術(shù)語(yǔ),補(bǔ)充圖1-2中缺失的數(shù)據(jù)流及其起點(diǎn)和終點(diǎn)。【問(wèn)題4】(2分) 若發(fā)送給學(xué)生和講師的通知是通過(guò)第三方Email系統(tǒng)進(jìn)行的,則需要對(duì)圖1-1和圖1-2進(jìn)行哪些修改?用100字以?xún)?nèi)文字加以說(shuō)明。答案解析與討論:
www.xomuzic.com/st/3815712516.html第
2題: 閱讀下列說(shuō)明,回答問(wèn)題1至問(wèn)題3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
某企業(yè)擬構(gòu)建一個(gè)高效、低成本、符合企業(yè)實(shí)際發(fā)展需要的辦公自動(dòng)化系統(tǒng)。工程師小李主要承擔(dān)該系統(tǒng)的公告管理和消息管理模塊的研發(fā)工作。公告管理模塊的主要功能包括添加、修改、刪除和查看公告。消息管理模塊的主要功能是消息群發(fā)。
小李根據(jù)前期調(diào)研和需求分析進(jìn)行了概念模型設(shè)計(jì),具體情況分述如下:
【需求分析結(jié)果】
(1)該企業(yè)設(shè)有研發(fā)部、財(cái)務(wù)部、銷(xiāo)售部等多個(gè)部門(mén),每個(gè)部門(mén)只有一名部門(mén)經(jīng)理,有多名員工,每名員工只屬于一個(gè)部門(mén),部門(mén)信息包括:部門(mén)號(hào)、名稱(chēng)、部門(mén)經(jīng)理和電話,其中部門(mén)號(hào)唯一確定部門(mén)關(guān)系的每一個(gè)元組。
(2)員工信息包括:?jiǎn)T工號(hào)、姓名、崗位、電話和密碼。員工號(hào)唯一確定員工關(guān)系的每一個(gè)元組;崗位主要有經(jīng)理、部門(mén)經(jīng)理、管理員等,不同崗位具有不同的權(quán)限。一名員工只對(duì)應(yīng)一個(gè)崗位,但一個(gè)崗位可對(duì)應(yīng)多名員工。
(3)消息信息包括:編號(hào)、內(nèi)容、消息類(lèi)型、接收人、接收時(shí)間、發(fā)送時(shí)間和發(fā)送人。其中(編號(hào),接收入)唯一標(biāo)識(shí)消息關(guān)系中的每一個(gè)元組。一條消息可以發(fā)送給多個(gè)接收人,一個(gè)接收人可以接收多條消息。
(4)公告信息包括:編號(hào)、標(biāo)題、名稱(chēng)、內(nèi)容、發(fā)布部門(mén)、發(fā)布時(shí)間。其中編號(hào)唯一確定公告關(guān)系的每二個(gè)元組。一份公告對(duì)應(yīng)一個(gè)發(fā)布部門(mén),但一個(gè)部門(mén)可以發(fā)布多份公告;一份公告可以被多名員工閱讀,一名員工可以閱讀多份公告。
【概念模型設(shè)計(jì)】
根據(jù)需求分析階段收集的信息,設(shè)計(jì)的實(shí)體聯(lián)系圖(不完整)如圖2-1所示:
圖2-1 實(shí)體聯(lián)系圖
【邏輯結(jié)構(gòu)設(shè)計(jì)】
根據(jù)概念模型設(shè)計(jì)階段完成的實(shí)體聯(lián)系圖,得出如下關(guān)系模式(不完整):
部門(mén)( (a) ,部門(mén)經(jīng)理,電話)
員工(員工號(hào),姓名,崗位號(hào),部門(mén)號(hào),電話,密碼)
崗位(崗位號(hào),名稱(chēng),權(quán)限)
消息( (b) ,消息類(lèi)型,接收時(shí)間,發(fā)送時(shí)間,發(fā)送人)
公告( (c) ,名稱(chēng),內(nèi)容,發(fā)布部門(mén),發(fā)布時(shí)間)
閱讀公告( (d) ,閱讀時(shí)間)
【問(wèn)題1】(5分)
根據(jù)問(wèn)題描述,補(bǔ)充四個(gè)聯(lián)系,完善圖2-1所示的實(shí)體聯(lián)系圖。聯(lián)系名可用聯(lián)系1、聯(lián)系2、聯(lián)系3和聯(lián)系4代替,聯(lián)系的類(lèi)型分為 1:1、1:n和m:n(或1:1、1:*和*:*)。
【問(wèn)題2】(8分)
(1)根據(jù)實(shí)體聯(lián)系圖,將關(guān)系模式中的空(a)~(d)補(bǔ)充完整。
(2)給出“消息”和“閱讀公告”關(guān)系模式的主鍵與外鍵。
【問(wèn)題3】(2分)
消息和公告關(guān)系中都有“編號(hào)”屬性,請(qǐng)問(wèn)它是屬于命名沖突嗎?用100字以?xún)?nèi)文字說(shuō)明原因。
答案解析與討論:
www.xomuzic.com/st/3815816637.html第
4題: 閱讀下列說(shuō)明和C代碼,回答問(wèn)題1至問(wèn)題3,將解答寫(xiě)在答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
計(jì)算兩個(gè)字符串x和y的最長(zhǎng)公共子串(Longest Common Substring)。
假設(shè)字符串x和字符串y的長(zhǎng)度分別為m和n,用數(shù)組c的元素c[i][j]記錄x中前i個(gè)字符和y中前j個(gè)字符的最長(zhǎng)公共子串的長(zhǎng)度。
c[i][j]滿足最優(yōu)子結(jié)構(gòu),其遞歸定義為:
計(jì)算所有c[i][j](0 ≤i ≤ m,0 ≤j ≤ n)的值,值最大的c[i][j]即為字符串x和y的最長(zhǎng)公共子串的長(zhǎng)度。根據(jù)該長(zhǎng)度即i和j,確定一個(gè)最長(zhǎng)公共子串。
【C代碼】
(1)常量和變量說(shuō)明
x,y:長(zhǎng)度分別為m和n的字符串
c[i][j]:記錄x中前i個(gè)字符和y中前j個(gè)字符的最長(zhǎng)公共子串的長(zhǎng)度
max:x和y的最長(zhǎng)公共子串的長(zhǎng)度
maxi, maXj:分別表示x和y的某個(gè)最長(zhǎng)公共子串的最后一個(gè)字符在x和y中的位置(序號(hào))
(2)C程序
#include
#include
int c[50][50];
int maxi;
int maxj;
int lcs(char *x, int m, char *y, int n) {
int i, j;
int max= 0;
maxi= 0;
maxj = 0;
for ( i=0; i<=m ; i++) c[i][0] = 0;
for (i =1; i<= n; i++) c[0][i]=0;
for (i =1; i<= m; i++) {
for (j=1; j<= n; j++) {
if ( (1) ) {
c[i][j] = c[i -1][j -1] + 1;
if(max (2) ;
maxi = i;
maxj =j;
}
}
else (3) ;
}
}
return max;
}
void printLCS(int max, char *x) {
int i= 0;
if (max == 0) return;
for ( (4) ; i < maxi; i++)
printf("%c",x[i]);
}
void main(){
char* x= "ABCADAB";
char*y= "BDCABA";
int max= 0;
int m = strlen(x);
int n = strlen(y);
max=lcs(x,m,y,n);
printLCS(max , x);
}
【問(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分)
根據(jù)題干說(shuō)明和以上C代碼,輸入字符串x= "ABCADAB’,'y="BDCABA",則輸出為 (7) 。
答案解析與討論:
www.xomuzic.com/st/381603746.html第
5題: 閱讀下列說(shuō)明和C++代碼,將應(yīng)填入 (n) 處的字句寫(xiě)在答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
某大型購(gòu)物中心欲開(kāi)發(fā)一套收銀軟件,要求其能夠支持購(gòu)物中心在不同時(shí)期推出的各種促銷(xiāo)活動(dòng),如打折、返利(例如,滿300返100)等等?,F(xiàn)采用策略(Strategy)模式實(shí)現(xiàn)該要求,得到如圖5-1所示的類(lèi)圖。
圖5-1 策略模式類(lèi)圖
【C++代碼】
#include
using namespace std;
enum TYPE{NORMAL, CASH_DISCOUNT, CASH_RETURN};
class CashSuper{
public:
(1);
};
class CashNormal : public CashSuper { //正常收費(fèi)子類(lèi)
public:
double acceptCash(double money) { retum money; }
};
class CashDiscount : public CashSuper {
private:
double moneyDiscount; // 折扣率
public:
CashDiscount(double discount) { moneyDiscount= discount; }
double acceptCash(double money) { retum money * moneyDiscount; }
};
class CashRetum : public CashSuper { // 滿額返利
private:
double moneyCondition; // 滿額數(shù)額
double moneyReturn; // 返利數(shù)額
public:
CashRetnm(double motieyCondition, double moneyReturn) {
this->moneyCondition=moneyCondition;
this->moneyReturn=moneyReturn;
}
double acceptCash(double money) {
double result = money;
if(money>=moneyCondition)
result=money-(int)(money/moneyCondition ) * moneyReturn;
return result ;
}
};
class CashContext {
private:
CashSuper *cs;
public:
CashContext(int type) {
switch(type) {
case NORMAL: //正常收費(fèi)
(2) ;
break;
case CASH_RETURN: //滿300返100
(3) ;
break;
case CASH_DISCOUNT: //打八折
(4) ;
break;
}
}
double GetResult(double money) {
(5) ;
}
};
//此處略去main()函數(shù)
答案解析與討論:
www.xomuzic.com/st/3816115424.html第
6題: 閱讀下列說(shuō)明和Java代碼,將應(yīng)填入 (n) 處的字句寫(xiě)在答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
某大型購(gòu)物中心欲開(kāi)發(fā)一套收銀軟件,要求其能夠支持購(gòu)物中心在不同時(shí)期推出的各種促銷(xiāo)活動(dòng),如打折、返利(例如,滿300返100)等等?,F(xiàn)采用策略(Strategy)模式實(shí)現(xiàn)該要求,得到如圖6-1所示的類(lèi)圖。
圖6-1 策略模式類(lèi)圖
【Java代碼】
import java.util.*;
enum TYPE { NORMAL, CASH_DISCOUNT, CASH_RETURN};
interface CashSuper {
public (1) ;
}
class CashNormal implements CashSuper{ // 正常收費(fèi)子類(lèi)
public double accptCash(double money){
return money;
}
}
class CashDiscount implements CashSuper {
private double moneyDiscount; // 折扣率
public CashDiscount(double moneyDiscount) {
this moneyDiscount = moneyDiscount;
}
public double acceptCash(double money) {
return money* moneyDiscount;
}
}
class CashReturn implements CashSuper { // 滿額返利
private double moneyCondition;
private double moneyReturn;
public CashReturn(double moneyCondition, double moneyReturn) {
this.moneyCondition =moneyCondition; // 滿額數(shù)額
this.moneyReturn =moneyReturn; // 返利數(shù)額
}
public double acceptCash(double money) {
double result = money;
if(money >= moneyCondition )
result=money-Math.floor(money/moneyCondition ) * moneyReturn;
return result;
}
}
class CashContext_{
private CashSuper cs;
private TYPE t;
public CashContext(TYPE t) {
switch(t){
case NORMAL: // 正常收費(fèi)
(2) ;
break;
case CASH_DISCOUNT: // 打8折
(3) ;
break;
case CASH_RETURN: // 滿300返100
(4) ;
break;
}
}
public double GetResult(double money) {
(5) ;
}
//此處略去main()函數(shù)
}
答案解析與討論:
www.xomuzic.com/st/3816226871.html