免費下載軟件設計師歷年真題:http://m.xiexiliangjiufa.com/zhenti/rs.html
該套題在線考試:http://m.xiexiliangjiufa.com/exam/examam.aspx?t1=2&sid=811030
1、閱讀下列說明和圖,回答問題1至問題4,將解答填入答題紙的對應欄內。
【說明】
某慕課教育平臺欲添加在線作業(yè)批改系統(tǒng),以實現(xiàn)高效的作業(yè)提交與批改,并進行統(tǒng)計。學生和講師的基本信息已經(jīng)初始化為數(shù)據(jù)庫中的學生表和講師表。系統(tǒng)的主要功能如下:
(1)提交作業(yè)。驗證學生標識后,學生將電子作業(yè)通過在線的方式提交,并進行存儲。系統(tǒng)給學生發(fā)送通知表明提交成功,通知中包含唯一編號;并通知講師有作業(yè)提交。
(2)下載未批改作業(yè)。驗證講師標識后,講師從系統(tǒng)中下載學生提交的作業(yè)。下載的作業(yè)將顯示在屏幕上。
(3)批改作業(yè)。講師按格式為每個題目進行批改打分,并進行整體評價。
(4)上傳批改后的作業(yè)。將批改后的作業(yè)(包括分數(shù)和評價)返回給系統(tǒng),進行存儲。
(5)記錄分數(shù)和評價。將批改后的作業(yè)的分數(shù)和評價記錄在學生信息中,并通知學生作業(yè)已批改。
(6)獲取已批改作業(yè)。根據(jù)學生標識,給學生查看批改后的作業(yè),包括提交的作業(yè)、分數(shù)和評價。
(7)作業(yè)抽檢。根據(jù)教務人員標識抽取批改后的作業(yè)樣本,給出抽檢意見,然后形成抽檢報告給講師。
現(xiàn)采用結構化方法對在線作業(yè)批改系統(tǒng)進行分析與設計,獲得如圖1-1所示的上下文數(shù)據(jù)流圖和圖1-2所示的0層數(shù)據(jù)流圖。
圖1-1 上下文數(shù)據(jù)流圖
圖1-2 0層數(shù)據(jù)流圖
【問題1】(3分)
使用說明中的詞語,給出圖1-1中的實體e1~e3的名稱。
【問題2】(4分)
使用說明中的詞語,給出圖1-2中的數(shù)據(jù)存儲d1~d4的名稱。
【問題3】(6分)
根據(jù)說明和圖中術語,補充圖1-2中缺失的數(shù)據(jù)流及其起點和終點。
【問題4】(2分)
若發(fā)送給學生和講師的通知是通過第三方email系統(tǒng)進行的,則需要對圖1-1和圖1-2進行哪些修改?用100字以內文字加以說明。信管網(wǎng)參考答案:
查看解析:
m.xiexiliangjiufa.com/st/3815712516.html
2、閱讀下列說明,回答問題1至問題3,將解答填入答題紙的對應欄內。
【說明】
某企業(yè)擬構建一個高效、低成本、符合企業(yè)實際發(fā)展需要的辦公自動化系統(tǒng)。工程師小李主要承擔該系統(tǒng)的公告管理和消息管理模塊的研發(fā)工作。公告管理模塊的主要功能包括添加、修改、刪除和查看公告。消息管理模塊的主要功能是消息群發(fā)。
小李根據(jù)前期調研和需求分析進行了概念模型設計,具體情況分述如下:
【需求分析結果】
(1)該企業(yè)設有研發(fā)部、財務部、銷售部等多個部門,每個部門只有一名部門經(jīng)理,有多名員工,每名員工只屬于一個部門,部門信息包括:部門號、名稱、部門經(jīng)理和電話,其中部門號唯一確定部門關系的每一個元組。
(2)員工信息包括:員工號、姓名、崗位、電話和密碼。員工號唯一確定員工關系的每一個元組;崗位主要有經(jīng)理、部門經(jīng)理、管理員等,不同崗位具有不同的權限。一名員工只對應一個崗位,但一個崗位可對應多名員工。
(3)消息信息包括:編號、內容、消息類型、接收人、接收時間、發(fā)送時間和發(fā)送人。其中(編號,接收入)唯一標識消息關系中的每一個元組。一條消息可以發(fā)送給多個接收人,一個接收人可以接收多條消息。
(4)公告信息包括:編號、標題、名稱、內容、發(fā)布部門、發(fā)布時間。其中編號唯一確定公告關系的每二個元組。一份公告對應一個發(fā)布部門,但一個部門可以發(fā)布多份公告;一份公告可以被多名員工閱讀,一名員工可以閱讀多份公告。
【概念模型設計】
根據(jù)需求分析階段收集的信息,設計的實體聯(lián)系圖(不完整)如圖2-1所示:
圖2-1 實體聯(lián)系圖
【邏輯結構設計】
根據(jù)概念模型設計階段完成的實體聯(lián)系圖,得出如下關系模式(不完整):
部門( (a) ,部門經(jīng)理,電話)
員工(員工號,姓名,崗位號,部門號,電話,密碼)
崗位(崗位號,名稱,權限)
消息( (b) ,消息類型,接收時間,發(fā)送時間,發(fā)送人)
公告( (c) ,名稱,內容,發(fā)布部門,發(fā)布時間)
閱讀公告( (d) ,閱讀時間)
【問題1】(5分)
根據(jù)問題描述,補充四個聯(lián)系,完善圖2-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】(8分)
(1)根據(jù)實體聯(lián)系圖,將關系模式中的空(a)~(d)補充完整。
(2)給出“消息”和“閱讀公告”關系模式的主鍵與外鍵。
【問題3】(2分)
消息和公告關系中都有“編號”屬性,請問它是屬于命名沖突嗎?用100字以內文字說明原因。
信管網(wǎng)參考答案:
查看解析:
m.xiexiliangjiufa.com/st/3815816637.html
3、閱讀下列說明和圖,回答問題1至問題3,將解答填入答題紙的對應欄內。
【說明】
某出版社擬開發(fā)一個在線銷售各種學術出版物的網(wǎng)上商店(acshop),其主要的功能需求描述如下:
(1)acshop在線銷售的學術出版物包括論文、學術報告或講座資料等。
(2)acshop的客戶分為兩種:未注冊客戶和注冊客戶。
(3)未注冊客戶可以瀏覽或檢索出版物,將出版物添加到購物車中。未注冊客戶進行注冊操作之后,成為acshop注冊客戶。
(4)注冊客戶登錄之后,可將待購買的出版物添加到購物車中,并進行結賬操作。結賬操作的具體流程描述如下:
①從預先填寫的地址列表中選擇一個作為本次交易的收貨地址。如果沒有地址信息,則可以添加新地址。
②選擇付款方式。acshop支持信用卡付款和銀行轉賬兩種方式。注冊客戶可以從預先填寫的信用卡或銀行賬號中選擇一個付款。若沒有付款方式信息,則可以添加新付款方式。
③確認提交購物車中待購買的出版物后,acshop會自動生成與之相對應的訂單。
(5)管理員負責維護在線銷售的出版物目錄,包括添加新出版物或者更新在售出版物信息等操作。
現(xiàn)采用面向對象方法分析并設計該網(wǎng)上商店acshop,得到如圖3-1所示的用例圖和圖3-2所示的類圖。
【問題1】(4分)
根據(jù)說明中的描述,給出圖3-1中(1)~(4)所對應的用例名。
【問題2】(4分)
根據(jù)說明中的描述,分別說明用例“添加新地址”和“添加新付款方式”會在何種情況下由圖3-1中的用例(3)和(4)擴展而來?
【問題3】(7分)
根據(jù)說明中的描述,給出圖3-2中(1)~(7)所對應的類名。
信管網(wǎng)參考答案:
查看解析:
m.xiexiliangjiufa.com/st/3815917485.html
4、閱讀下列說明和c代碼,回答問題1至問題3,將解答寫在答題紙的對應欄內。
【說明】
計算兩個字符串x和y的最長公共子串(longest common substring)。
假設字符串x和字符串y的長度分別為m和n,用數(shù)組c的元素c[i][j]記錄x中前i個字符和y中前j個字符的最長公共子串的長度。
c[i][j]滿足最優(yōu)子結構,其遞歸定義為:
計算所有c[i][j](0 ≤i ≤ m,0 ≤j ≤ n)的值,值最大的c[i][j]即為字符串x和y的最長公共子串的長度。根據(jù)該長度即i和j,確定一個最長公共子串。
【c代碼】
(1)常量和變量說明
x,y:長度分別為m和n的字符串
c[i][j]:記錄x中前i個字符和y中前j個字符的最長公共子串的長度
max:x和y的最長公共子串的長度
maxi, maxj:分別表示x和y的某個最長公共子串的最后一個字符在x和y中的位置(序號)
(2)c程序
#include <stdio.h>
#include <string.h>
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<c[i][j]) {
(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);
}
【問題1】(8分)
根據(jù)以上說明和c代碼,填充c代碼中的空(1)~(4)。
【問題2】(4分)
根據(jù)題干說明和以上c代碼,算法采用了 (5) 設計策略。
分析時間復雜度為 (6) (用o符號表示)。
【問題3】(3分)
根據(jù)題干說明和以上c代碼,輸入字符串x= "abcadab’,'y="bdcaba",則輸出為 (7) 。
信管網(wǎng)參考答案:
查看解析:
m.xiexiliangjiufa.com/st/381603746.html
5、閱讀下列說明和c++代碼,將應填入 (n) 處的字句寫在答題紙的對應欄內。
【說明】
某大型購物中心欲開發(fā)一套收銀軟件,要求其能夠支持購物中心在不同時期推出的各種促銷活動,如打折、返利(例如,滿300返100)等等?,F(xiàn)采用策略(strategy)模式實現(xiàn)該要求,得到如圖5-1所示的類圖。
圖5-1 策略模式類圖
【c++代碼】
#include <iostream>
using namespace std;
enum type{normal, cash_discount, cash_return};
class cashsuper{
public:
(1);
};
class cashnormal : public cashsuper { //正常收費子類
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: //正常收費
(2) ;
break;
case cash_return: //滿300返100
(3) ;
break;
case cash_discount: //打八折
(4) ;
break;
}
}
double getresult(double money) {
(5) ;
}
};
//此處略去main()函數(shù)
信管網(wǎng)參考答案:
查看解析:
m.xiexiliangjiufa.com/st/3816115424.html
6、閱讀下列說明和java代碼,將應填入 (n) 處的字句寫在答題紙的對應欄內。
【說明】
某大型購物中心欲開發(fā)一套收銀軟件,要求其能夠支持購物中心在不同時期推出的各種促銷活動,如打折、返利(例如,滿300返100)等等?,F(xiàn)采用策略(strategy)模式實現(xiàn)該要求,得到如圖6-1所示的類圖。
圖6-1 策略模式類圖
【java代碼】
import java.util.*;
enum type { normal, cash_discount, cash_return};
interface cashsuper {
public (1) ;
}
class cashnormal implements cashsuper{ // 正常收費子類
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: // 正常收費
(2) ;
break;
case cash_discount: // 打8折
(3) ;
break;
case cash_return: // 滿300返100
(4) ;
break;
}
}
public double getresult(double money) {
(5) ;
}
//此處略去main()函數(shù)
}
信管網(wǎng)參考答案:
查看解析:
m.xiexiliangjiufa.com/st/3816226871.html