試題一(15分)
某房産中介連鎖企業欲開發一個基于Web的房屋中介資訊系統,以有效管理房源和客戶,提高成交率。該系統的主要功能是:
1.房源采集與管理。系統自動采集外部網站的潛在房源資訊,儲存為潛在房源。由經紀人聯系确認的潛在房源變為房源,并添加出售/出租房源的客戶。由經紀人或客戶登記的出售/出租房源,系統将其儲存為房源。房源資訊包括基本情況、配套設施、交易類型、委托方式、業主等。經紀人可以對房源進行更新等管理操作。
2.客戶管理。求租/求購客戶進行注冊、更新,推送客戶需求給經紀人,或由經紀人對求租/求購客戶進行登記、更新。客戶資訊包括身份證号、姓名、手機号、需求情況、委托方式等。
3.房源推薦。根據客戶的需求情況(求購/求租需求情況以及出售/出租房源資訊),向已登入的客戶推薦房源。小任老師Q2105639303,免費擷取資料,問題解答,考試最新資訊
4.交易管理。經紀人對租售客戶雙方進行交易資訊管理,包括訂單送出和取消,設定收取中介費比例。财務人員收取中介費之後,表示該訂單已完成,系統更新訂單狀态和房源狀态,向客戶和經紀人發送交易回報。
5.資訊查詢。客戶根據自身查詢需求查詢房屋供需資訊。
現采用結構化方法對房屋中介資訊系統進行分析與設計,獲得如圖1-1 所示的上下文資料流圖和圖1-2所示的0層資料流圖。
問題1 (4分)
使用說明中的詞語,給出圖1-1中的實體E1--E4的名稱。
問題2 (4分)
使用說明中的詞語,給出圖1-2中的資料存儲D1--D4的名稱。
問題 3 (3分)
根據說明和圖中術語,補充圖1-2中缺失的資料流及其起點和終點。
問題4 (4分)
根據說明中術語,給出圖1-1中資料流"客戶資訊"、"房源資訊"的組成。
試題二(15分)
某集團公司擁有多個分公司,為了友善集團公司對分公司各項業務活動進行有效管理,集團公司決定建構一個資訊系統以滿足公司的業務管理需求。
【需求分析】
1.分公司關系需要記錄的資訊包括分公司編号、名稱、經理、聯系位址和電話。分公司編号唯一辨別分公司資訊中的每一個元組。每個分公司隻有一名經理,負責該分公司的管理工作。每個分公司設立僅為本分公司服務的多個業務部門,如研發部、财務部、采購部、銷售部等。
2.部門關系需要記錄的資訊包括部門号、部門名稱、主管号、電話和分公司編号。部門号唯一辨別部門資訊中的每一個元組。每個部門隻有一名主管,負責部門的管理工作。每個部門有多名員工,每名員工隻能隸屬于一個部門。
3.員工關系需要記錄的資訊包括員工号、姓名、隸屬部門、崗位、電話和基本工資。其中,員工号唯一辨別員工資訊中的每一個元組。崗位包括:經理、主管、研發員、業務員等。小任老師Q2105639303,免費擷取資料,問題解答,考試最新資訊
【概念模型設計】
根據需求階段收集的資訊,設計的實體聯系圖和關系模式(不完整)如圖2-1 所示:
【關系模式設計】
分公司(分公司編号,名稱,( a ),聯系位址,電話)
部門(部門号,部門名稱,( b ),電話)
員工(員工号,姓名( c ),電話,基本工資)
問題1 (4分)
根據問題描述,補充4個聯系,完善圖 2-1的實體聯系圖。聯系名可用聯系1、聯系2、
聯系3和聯系4代替,聯系的類型為 1:1、1:n 和 m:n (或 1:1、1:*和*:*)。
問題2 (5分)
根據題意,将關系模式中的空 (a)-(c) 補充完整。
問題3 (4分)
給出"部門"和"員工"關系模式的主鍵和外鍵。
問題4 (2分)
假設集團公司要求系統能記錄部門曆任主管的任職時間和任職年限,那麼是否需要在資料庫設計時增設一個實體?為什麼?
試題三(15分)
社交網絡平台 (SNS) 的主要功能之一是建立線上群組,群組中的成員之間可以互相分享或挖掘興趣和活動。每個群組包含标題、管理者以及成員清單等資訊。
社交網絡平台的使用者可以自行選擇加入某個群組。每個群組擁有一個首頁,群組内的所有成員都可以檢視首頁上的内容。如果在群組的首頁上釋出或更新了資訊,群組中的成員會自動接收到釋出或更新後的資訊。
使用者可以加入一個群組也可以退出這個群組。使用者退出群組後,不會再接收到該群組釋出或更新的任何資訊。
現采用面向對象方法對上述需求進行分析與設計,得到如表3-1所示的類清單和如圖3-1所示的類圖。小任老師Q2105639303,免費擷取資料,問題解答,考試最新資訊
問題1 (6分)
根據說明中的描述,給出圖 3-1 中 C1-- C3 所對應的類名。
問題2 (6分)
圖 3-1 中采用了哪一種設計模式?說明該模式的意圖及其适用場合。
問題3 (3分)
現在對上述社交網絡平台提出了新的需求:一個群體可以作為另外一個群體中的成員,例如群體A加入群體B。那麼群體A中的所有成員就自動成為群體B中的成員。若要實作這個新需求,需要對圖3-1進行哪些修改? (以文字方式描述) 小任老師Q2105639303,免費擷取資料,問題解答,考試最新資訊
試題四(15分)
給定一個字元序列B=b1b2….bn,其中bi∈{A,C,G,U}。B上的二級結構是一組字元對集合S={(bi,bj)},其中i,j∈{1,2,….,n},并滿足以下四個條件:
(1)S中的每對字元是(A,U),(U,A),(C,G)和(G,C)四種組合之一;
(2)S中的每對字元之間至少有四個字元将其隔開,即i<j-4;
(3)S中每一個字元(記為bk)的配對存在兩種情況:bk不參與任何配對;bk和字元bt配對,其中t<k-4;
(4)(不交叉原則)若(bi,bj)和(bk,bl)是S中的兩個字元對,且i<k,則i<k<j<l不成立。
B的具有最大可能字元對數的二級結構S被稱為最優配對方案,求解最優配對方案中的字元對數的方法如下:小任老師Q2105639303,免費擷取資料,問題解答,考試最新資訊
假設用C(i,j)表示字元序列bibi+1....bj的最優配對方案(即二級結構S)中的字元對數,則,C(i,j)可以遞歸定義為:
下面代碼是算法的C語言實作,其中
n:字元序列長度
B[]:字元序列
C[][]:最優配對數量數組
【C代碼】
#include<stdio.h>
#include<stdlib.h>
#define LEN 100
/*判斷兩個字元是否配對*/
int isMatch(char a,char b){
if ((a=='A'&&b=='U')||( a=='U'&&b=='A'))
return 1;
if ((a=='C'&&b=='G')||( a=='G'&&b=='C'))
return 0;
}
/*求最大配對數*/
int RNA_2(charB[LEN],int n){
int i,j,k,t;
int max;
int C[LEN][LEN]={0};
for(k=5;k<=n-1;k++){
for(i=1;i<=n-k;i++){
j=i+k;
( 1 )
for(( 2 );t<=j-4;t++){
if( ( 3
)&&max<C[i][t-1]+1+C[t+1][j-1])
max=C[i][t-1]+1+C[t+1][j-1];
}
C[i][j]=max;
printf("C[%d][%d]=%d--",i,j,C[i][j]);
}
}
return( 4 );
問題1 (8分)
根據題幹說明,填充 C 代碼中的空(1)-(4)。
根據題幹說明和 C 代碼,算法采用的設計政策為( 5 )。
算法的時間複雜度為( 6 ),(用O表示)。
給定字元序列 ACCGGUAGU ,根據上述算法求得最大字元對數為( 7 )。
試題五(15分)
某航空公司的會員積分系統将其會員劃分為:普卡(Basic)、銀卡(Silver)和金卡(Gold)三個等級。非會員(NonMember)可以申請成為普卡會員。會員的等級根據其一年内累積的裡程數進行調整。描述會員等級調整的狀态圖如圖 5-1 所示。現采用狀态(State)模式實作上述場景,得到如圖 5-2 所示的類圖。小任老師Q2105639303,免費擷取資料,問題解答,考試最新資訊
【C++代碼】
#include<iostream>
using namespace std;
class FrequentFlyer; class CBasic; classCSilver; class CGold; class CNoCustomer;
//
提前引用
class CState {
private: int flyMiles; //裡程數
public:
( 1 );
根據累積裡程數調整會員等級
class FrequentFlyer{
friend class CBasic; friend classCSilver; friend class CGold;
private:
CState *state; CState
*nocustomer; CState *basic; CState *silver; CState *gold;
double flyMiles;
}
class CSilver:public CState{ //銀卡會員
double travel(int miles,FrequentFlyer * context){
if(context->flyMiles<25000)
context->setState(context->basic);
if(context->flyMiles>=50000)
context->setState(context->gold);
return (miles+0.25*miles);
}
試題六(15分)
某航空公司的會員積分系統将其會員劃分為:普卡 (Basic) 、銀卡(Silver)和金卡 (Gold)
三個等級。非會員 (NonMember)可以申請成為普卡會員。會員的等級根據其一年内累積的裡程數進行調整。描述會員等級調整的狀态圖如圖 6-1 所示。現采用狀态 (State) 模式
實作上述場景,得到如圖 6-2 所示的類圖。小任老師Q2105639303,免費擷取資料,問題解答,考試最新資訊
【Java代碼】
importjava.util.*;
abstractclass CState{
public int flyMiles; // 裡程數
public ( 1 ); //
classCNoCustomer extends CState{ //
非會員
public double travel(int miles,FrequentFlyercontext) {
System.out.println("Your travelwill not account for points");
return miles; //不累積裡程數
classCBasic extends CState{ //
普卡會員
public double travel(intmiles,FrequentFlyer context){
if (context.flyMiles>=25000&&context.flyMiles<50000)
( 2 );
if (context.flyMiles>=50000)
( 3 );
return miles;
classCGold extends CState{ //
金卡會員
( 4 );
if (context.flyMiles<=25000)
( 5 );
return miles+0.5*miles; //累積裡程數
classCSilver extends CState{ //
銀卡會員
context.setState(new CBasic());
if (context.flyMiles>50000)
context.setState(new CGold());
return (miles+0.25*miles); //累積裡程數
classFrequentFlyer{
CState state;
double flyMiles;
public FrequentFlyer(){
state=new CNoCustomer();
flyMiles=0;
setState(state);
public void setState(CState state){ this.state=state; }
public void travel(int miles) {
doublebonusMiles=state.travel(miles,this);
fiyMiles=flyMiles+bonusMiles;
2018年下半年軟體設計師下午真題及答案解析
試題一(15分)
問題1 (4分) 單擊此連結檢視真題解析視訊 http://edu.51cto.com/course/4406.html
E1:客戶 E2:經紀人 E3:财務人員 E4:外部網站
D1:客戶資訊表 D2:潛在房源資訊表 D3:房源資訊表 D4:訂單表
缺失資料流:
問題4 (4分)
客戶資訊:身份證号,姓名,手機号,需求情況,委托方式。
房源資訊:基本情況,配套設施,交易類型,委托方式,業主等。
小任老師Q2105639303,免費擷取資料,問題解答,考試最新資訊
(a)經理工号
(b)主管号,分公司編号
(c)隸屬部門号,崗位
部門的主鍵:部門号; 部門的外鍵:分公司編号,主管号
員工的主鍵:員工号; 員工的外鍵:隸屬部門号
問題4 (2分)
不需要增加新的實體,對于任職情況,可以将部門與主管的聯系單獨形成關系模式,聯系(部門号,主管工号,任職時間,任職年限),同一個員工可能在不同的時間擔任同一部門主管,是以,可以将(部門号,主管工号,任職時間)作為該關系模式的組合主鍵。小任老師Q2105639303,免費擷取資料,問題解答,考試最新資訊
C1:SNSGroup C2:SNSUser C3:SNSAdmin (其中C2、C3可以互換)
問題2 (6分) 單擊此連結檢視真題解析視訊 http://edu.51cto.com/course/4406.html
采用的觀察者模式。
l 意圖:當被觀察者(群組首頁)發生改變時,可以通知所有的觀察者(群組内的所有成員)。
l 使用場合:觀察者模式多用于實作訂閱功能的場景,例如微網誌的訂閱。當一個對象的狀态發生改變時,所有依賴于它的對象都得到通知并自動更新。
解析:
新增一個被觀察者對象群組B的首頁,對于觀察者,新增一個“加入群組B”的方法,加入之後,就可以接收被觀察者群組B的首頁變動所發送的通知。小任老師Q2105639303,免費擷取資料,問題解答,考試最新資訊
(1)max=C[i][j-1];
(2)t=i
(3)isMatch(b[t],b[j]) 或
isMatch(b[t],b[j])==1
(4)C[i-1][j] 或 max
(5)采用的算法政策:動态規劃 (6)時間複雜度:O(n3)
問題3(3分)
(7)最大字元對數:3
(1)virtual double travel(int miles,FrequentFlyer context)=0
(2)context->setState(context->silver)
(3)context->setState(context->gold)
(4)context->setState(context->silver)
(5)context->setState(context->basic)
(1)abstract double travel(int miles,FrequentFlyer context)
(2)context.setState(new CSilver())
(3)context.setState(new CGold ())
(4)context.setState(new CSilver())
(5)context.setState(new CBasic())
一、小任老師軟體設計師視訊
1、軟體設計師基礎知識視訊精講http://edu.51cto.com/course/4033.html
2、軟體設計師上午曆年真題解析視訊http://edu.51cto.com/course/5827.html
3、軟體設計師下午曆年真題解析視訊http://edu.51cto.com/course/4406.html
二、小任老師進階系統分析師視訊課程
1、系統分析師綜合知識視訊課程http://edu.51cto.com/course/course_id-2422.html
2、系統分析師下午案例視訊課程http://edu.51cto.com/course/course_id-2968.html
3、系統分析師論文寫作視訊課程http://edu.51cto.com/course/course_id-3069.html
三、小任老師進階系統架構設計師視訊課程
1、架構設計師綜合知識視訊課程http://edu.51cto.com/course/14581.html
2、架構設計師上午曆年真題解析視訊課程http://edu.51cto.com/course/14919.html
3、系統架構設計師下午曆年真題視訊課程https://edu.51cto.com/sd/c6670
4、系統架構設計師下午曆年真題視訊課程https://edu.51cto.com/sd/e112d