女人久久久www免费人成看片,国内自拍偷拍网,国产一区二区三区免费在线观看,欧美精品三区四区,91久久国产综合久久91,欧美成人精品第一区二区三区 ,美女成人在线观看

專業(yè)軟件設計師網站|培訓機構|服務商(加客服微信:cnitpm或QQ:800184589進軟件設計師學霸群)

軟題庫 培訓課程
當前位置:信管網 >> 軟件設計師 >> 案例分析 >> 文章內容
2008年上半年軟件設計師下午案例分析真題文字版
來源:信管網 2021年05月17日 【所有評論 分享到微信

免費下載軟件設計師歷年真題:http://m.xiexiliangjiufa.com/zhenti/rs.html
該套題在線考試:http://m.xiexiliangjiufa.com/exam/examam.aspx?t1=2&sid=535725
1、 試題一

閱讀以下說明和圖,回答問題1至問題4,將解答填入對應欄內。
【說明】
某音像制品出租商店欲開發(fā)一個音像管理信息系統(tǒng),管理音像制品的租借業(yè)務。需求如下:
1.系統(tǒng)中的客戶信息文件保存了該商店的所有客戶的用戶名、密碼等信息。對于首次來租借的客戶,系統(tǒng)會為其生成用戶名和初始密碼。
2.系統(tǒng)中音像制品信息文件記錄了商店中所有音像制品的詳細信息及其庫存數量。
3.根據客戶所租借的音像制品的品種,會按天收取相應的費用。音像制品的最長租借周期為1周,每位客戶每次最多只能租借6件音像制品。
4.客戶租借某種音像制品的具體流程如下。
1根據客戶提供的用戶名和密碼,驗證客戶身份。
2若該客戶是合法客戶,查詢音像制品信息文件,查看商店中是否還有這種音像制品。
3若還有該音像制品,且客戶所要租借的音像制品數小于等于6個,就可以將該音像制品租借給客戶。這時,系統(tǒng)給出相應的租借確認信息,生成一條新的租借記錄并將其保存在租借記錄文件中。
4系統(tǒng)計算租借費用,將費用信息保存在租借記錄文件中并告知客戶。
5客戶付清租借費用之后,系統(tǒng)接收客戶付款信息,將音像制品租借給該客戶。
5.當庫存中某音像制品數量不能滿足客戶的租借請求數量時,系統(tǒng)可以接受客戶網上預約租借某種音像制品。系統(tǒng)接收到預約請求后,檢查庫存信息,驗證用戶身份,創(chuàng)建相應的預約記錄,生成預約流水號給該客戶,并將信息保存在預約記錄文件中。
6.客戶歸還到期的音像制品,系統(tǒng)修改租借記錄文件,并查詢預約記錄文件和客戶信息文件,判定是否有客戶預約了這些音像制品。若有,則生成預約提示信息,通知系統(tǒng)履行預約服務,系統(tǒng)查詢客戶信息文件和預約記錄文件,通知相關客戶前來租借音像制品。

【問題1】
圖(a)中只有一個外部實體e1。使用【說明】中的詞語,給出e1的名稱。
【問題2】
使用【說明】中的詞語,給出圖(b)中的數據存儲d1~d4的名稱。
【問題3】
數據流圖(b)缺少了3條數據流,根據說明及數據流圖(a)提供的信息,分別指出這3條數據流的起點和終點。

【問題4】
在進行系統(tǒng)分析與設計時,面向數據結構的設計方法(如jackson方法)也被廣泛應用。簡要說明面向數據結構設計方法的基本思想及其適用場合。
信管網參考答案:
查看解析:m.xiexiliangjiufa.com/st/2456413269.html


2、 試題二

閱讀下列說明,回答問題1至問題3,將解答填入對應欄內。
【說明】
某地區(qū)舉行籃球比賽,需要開發(fā)一個比賽信息管理系統(tǒng)來記錄比賽的相關信息。
【需求分析結果】
1.登記參賽。球隊的信息。記錄球隊的名稱、代表地區(qū)、成立時間等信息。系統(tǒng)記錄球隊每個隊員的姓名、年齡、身高、體重等信息。每個球隊有一個教練負責管理球隊,一個教練僅負責一個球隊。系統(tǒng)記錄教練的姓名、年齡等信息。
2.安排球隊的訓練信息。比賽組織者為球隊提供了若干塊場地,供球隊進行適應性訓練。系統(tǒng)記錄現有的場地信息,包括:場地名稱、場地規(guī)模、位置等信息。系統(tǒng)可為每個球隊安排不同的訓練場地,如下表所示。系統(tǒng)記錄訓練場地安排的信息。

3.安排比賽。該賽事聘請專職裁判,每場比賽只安排一個裁判。系統(tǒng)記錄裁判的姓名、年齡、級別等信息。系統(tǒng)按照一定的規(guī)則,首先分組,然后根據球隊、場地和裁判情況,安排比賽(每場比賽的對陣雙方分別稱為甲隊和乙隊)。記錄參賽球隊名稱、比賽時間、比分、比賽場地等信息,如下表所示。

4.所有球員、教練和裁判可能出現重名情況。
【概念模型設計】
根據需求階段收集的信息,設計的實體聯系圖和關系模式(不完整)如下:
1.實體聯系圖(圖2-1)

2.關系模式
教練(教練編號,姓名,年齡)
隊員(隊員編號,姓名,年齡,身高,體重,  (a)  )
球隊(球隊名稱,代表地區(qū),成立時間,  (b)  )
場地(場地名稱,場地規(guī)模,位置)
訓練記錄(  (c)  )
裁判(裁判編號,姓名,年齡,級別)
比賽記錄(  (d)  )
【問題1】
根據問題描述,補充聯系及其類型,完善實體聯系圖2-1。(聯系及其類型的書寫格式參照教練與球隊之間的聯系描述,聯系名稱也可使用聯系1、聯系2、……)
【問題2】
根據實體聯系圖,填充關系模式中的a.、b.、c.和d.,并給出訓練記錄和比賽記錄關系模式的主鍵和外鍵。
【問題3】
如果考慮記錄一些特別資深的熱心球迷的情況,每個熱心球迷可能支持多個球隊。熱心球迷包括:姓名、住址和喜歡的俱樂部等基本信息。根據這一要求修改上圖的實體聯系圖,給出修改后的關系模式(僅給出增加的關系模式描述)。
信管網參考答案:
查看解析:m.xiexiliangjiufa.com/st/2456514952.html


3、 試題三

閱讀下列說明和圖,回答問題1至問題4,將解答填入對應欄內。
【說明】
某汽車停車場欲建立一個信息系統(tǒng),已經調查到的需求如下:
1.在停車場的入口和出口分別安裝一個自動欄桿、一臺停車卡打印機、一臺讀卡器和一個車輛通過傳感器,示意圖如下:

2.當汽車到達入口時,駕駛員按下停車卡打印機的按鈕獲取停車卡。當駕駛員拿走停車卡后,系統(tǒng)命令欄桿自動抬起;汽車通過入口后,入口處的傳感器通知系統(tǒng)發(fā)出命令,欄桿自動放下。
3.在停車場內分布著若干個付款機器。駕駛員將在入口處獲取的停車卡插入付款機器,并繳納停車費。付清停車費之后,將獲得一張出場卡,用于離開停車場。
4.當汽車到達出口時,駕駛員將出場卡插入出口處的讀卡器。如果這張卡是有效的,系統(tǒng)命令欄桿自動抬起;汽車通過出口后,出口傳感器通知系統(tǒng)發(fā)出命令,欄桿自動放下。若這張卡是無效的,系統(tǒng)不發(fā)出欄桿抬起命令而發(fā)出告警信號。
5.系統(tǒng)自動記錄停車場內空閑的停車位的數量。若停車場當前沒有車位,系統(tǒng)將在入口處顯示“車位已滿”信息。這時,停車卡打印機將不再出卡,只允許場內汽車出場。
根據上述描述,采用面向對象方法對其進行分析與設計,得到了如下表所示的類/用例/狀態(tài)列表、下圖(a)所示的用例圖、圖(b)所示的初始類圖以及圖(c)所示的描述入口自動欄桿行為的uml狀態(tài)圖。


【問題1】
根據說明中的描述,使用上頁表給出的用例名稱,給出圖(a)中u1、u2和u3所對應的用例。
【問題2】
根據說明中的描述,使用上頁表給出的類的名稱,給出圖(b)中的,a~d所對應的類。
【問題3】
根據說明中的描述,使用上頁表給出的狀態(tài)名稱,給出圖(c)中s1~s4所對應的狀態(tài)。
【問題4】
簡要解釋圖(a)中用例u1和u3之間的extend關系的內涵。
信管網參考答案:
查看解析:m.xiexiliangjiufa.com/st/2456616964.html


4、 試題四

閱讀下列說明,回答問題1至問題3,將解答填入對應欄內。
【說明】
快速排序是一種典型的分治算法。采用快速排序對數組a[p..r]排序的3個步驟如下。
1.分解:選擇一個樞軸(pivot)元素劃分數組。將數組a[p..r]劃分為兩個子數組 (可能為空)a[p..q-1]和a[q+1..r],使得a[q]大于等于a[p..q-1)中的每個元素,小于 a[q+1..r]中的每個元素。q的值在劃分過程中計算。
2.遞歸求解:通過遞歸的調用快速排序,對子數組a[p..q-1]和a[q+1..r]分別排序。
3.合并:快速排序在原地排序,故不需合并操作。
【問題1】
下面是快速排序的偽代碼,請?zhí)钛a其中的空缺;偽代碼中的主要變量說明如下。
a:待排序數組
p,r: 數組元素下標,從p到r
q: 劃分的位置
x:樞軸元素
i:整型變量,用于描述數組下標。下標小于或等于i的元素的值小于或等于樞軸元素的值
j:循環(huán)控制變量,表示數組元素下標
quicksort (a,p,r){
if  (p <r){
q=partition(a,p,r) ;
quicksort(a,p,q-1);
quicksort(a,q+1,r);
}
}
partition(a,p,r){
x=a[r];i=p-1;
for(j=p;j≤r-1;j++){
if  (a[j]≤x){
i=i+1;
交換a[i]和a[j]
}
}
交  (1)  和  (2)  //注:空(1)和空(2)答案可互換,但兩空全部答對方可得分 return   (3)
}
【問題2】
(1)假設要排序包含n個元素的數組,請給出在各種不同的劃分情況下,快速排序的時間復雜度,用o記號。最佳情況為  (4)  ,平均情況為  (5)  ,最壞情況為  (6)  。
(2)假設要排序的n個元素都具有相同值時,快速排序的運行時間復雜度屬于哪種情況?  (7)  。(最佳,平均、最壞)
【問題3】
(1)待排序數組是否能被較均勻地劃分對快速排序的性能有重要影響,因此樞軸元素的選取非常重要。有人提出從待排序的數組元素中隨機地取出一個元素作為樞軸元素,下面是隨機化快速排序劃分的偽代碼——利用原有的快速排序的劃分操作,請?zhí)畛淦渲械目杖碧?。其中,random(i,j)表示隨機取i到j之間的一個數,包括i和j。
randomized- partition(a,p,r){
i=random(p,rl);
交換  (8)  和  (9)  ;//注:空(8)和空(9)答案可互換,但兩空全部答對方可得分
return partition (a,p,r);
}
(2)隨機化快速排序是否能夠消除最壞情況的發(fā)生?  (10)  。(是或否)
信管網參考答案:
查看解析:m.xiexiliangjiufa.com/st/2456720911.html


5、 試題五

閱讀下列說明和c代碼,將應填入    處的字句寫在對應欄內。
【說明】
棧(stack)結構是計算機語言實現中的一種重要數據結構。對于任意棧,進行插入和刪除操作的一端稱為棧頂(stock top),而另一端稱為棧底(stock bottom)。棧的基本操作包括:創(chuàng)建棧(newstack)、判斷棧是否為空(isempty)、判斷棧是否已滿(isfull)、獲取棧頂數據(top)、壓棧/入棧(push)、彈棧/出棧(pop)。
當設計棧的存儲結構時,可以采取多種方式。其中,采用鏈式存儲結構實現的棧中各數據項不必連續(xù)存儲(如下圖所示)。

以下c代碼采用鏈式存儲結構實現一個整數棧操作。
【c代碼】
typedef struct list {
int data;                  //棧數據
struct list* next;         //上次入棧的數據地址
}list;
typedef struct stack{
list* ptop;                //當前棧頂指針
}stack;
stack* newstack()  {return (stack*) calloc(1/sizeof(stack));}
int isempty(stack* s){//判斷棧s是否為空棧
if(  (1)  )return 1;
return 0;
}
int top(stack* s){//獲取棧頂數據。若棧為空,則返回機器可表示的最小整數
if(isempty(s))return int_ min;
return  (2)  ;
}
void push(stack* s,int thedata) {//將數據thedata壓棧
list* newnode;
newnode=(list*)calloc(1/sizeof (list));
newnode->data=thedata;
newnode->next=s->ptop;
s->ptop=  (3)  ;
}
void pop(stack* s)  {//彈棧
list* lasttop;
if(isempty(s)  )  return;
lasttop=s->ptop;
s->ptop=  (4)  ;
free(lasttop);
}
#define md(a)  a<<2
int main(){
int i;
stack* mystack;
mystack= newstack();
push(mystack,md(1));
push(mystack,md(2));
pop(mystack);
push(mystack,md(3)+1);
while( !isempty(mystack)  ){
printf("%d",top(mystack));
pop(mystack);
}
return 0;
}
以上程序運行時的輸出結果為:  (5)
信管網參考答案:
查看解析:m.xiexiliangjiufa.com/st/245685491.html


6、 試題六

閱讀下列說明和c++代碼,將應填入  (n)  處的字句寫在對應欄內。
【說明】
已知某企業(yè)欲開發(fā)一家用電器遙控系統(tǒng),即用戶使用一個遙控器即可控制某些家用電器的開與關。遙控器如左下所示。該遙控器共有4個按鈕,編號分別是0至3,按鈕0和2能夠遙控打開電器1和電器2,按鈕1和3則能遙控關閉電器1和電器2。由于遙控系統(tǒng)需要支持形式多樣的電器,因此,該系統(tǒng)的設計要求具有較高的擴展性?,F假設需要控制客廳電視和臥室電燈,對該遙控系統(tǒng)進行設計所得類圖如右下所示。

右上圖中,類romotecontroller的方法onpressbutton(int button)表示當遙控器按鍵按下時調用的方法,參數為按鍵的編號;command接口中on和off方法分別用于控制電器的開與關;light中turnlight(int degree)方法用于調整電燈燈光的強弱,參數 degree值為0時表示關燈,值為100時表示開燈并且將燈光亮度調整到最大;tv中 setchannel(int channel)方法表示設置電視播放的頻道,參數channel值為0時表示關閉電視,為1時表示開機并將頻道切換為第1頻道。
【c++代碼】
class light{  //電燈類
public:
void trunlight(int degree){//調整燈光亮度,0表示關燈,100表示亮度最大);
};
class tv{//電視機類
public:
vold setchannel(int channel]{//調整電視頻道,0表示關機,1表示開機并切換到1頻道};
};
class command{//抽象命令類
public:
virtual void on()=0;
virtual void off()=0;
};
class remotecontroller{  //遙控器類
protected:
command* commands [4];//遙控器有4個按鈕,按照編號分別對應4個command對象
public:
void onpressbutton(int button){  //按鈕被按下時執(zhí)行命令對象中的命令
if(button % 2==0)commands[button]->on();
else commands[button]->off();
}
void setcommand(int button,command* command){
(1)  =command;//設置每個按鈕對應的命令對象
}
};
class lightcommand:public command{  //電燈命令類
protected:    light* light;  //指向要控制的電燈對象
public:
void on(){light->trunlight(100););
void off()[light->  (2)  ;);
lightcommand(light * light){this->light=light;);
};
class tvcommand:public command{//電視機命令類
protected:    tv*tv;  //指向要控制的電視機對象
public:
void on(){tv->  (3)  ;};
void off(){tv->setchannel(0););
tvcommand(tv *tv){this->tv=tv;);
};
void main(){
light light;    tv tv;//創(chuàng)建電燈和電視對象
lightcommand lightcommand (&light);
tvcommand tvcommand(&tv);
remotecontroller remotecontroller;
remotecontroller. setcommand(0,  (4)  );  //設置按鈕0的命令對象
…//此處省略設置按鈕1、按鈕2和按鈕3的命令對象代碼
}
本題中,應用命令模式能夠有效讓類  (5)  和類  (6)  、類  (7)  之間的耦合性降至最小。
信管網參考答案:
查看解析:m.xiexiliangjiufa.com/st/2456924893.html


7、 試題七

閱讀下列說明和java代碼,將應填入  (n)  處的字句寫在對應欄內。
【說明】
已知某企業(yè)欲開發(fā)一家用電器遙控系統(tǒng),即用戶使用一個遙控器即可控制某些家用電器的開與關。遙控器如下圖(a)所示。該遙控器共有4今按鈕,編號分別是0至3,按鈕0和2能夠遙控打開電器1和電器2,按鈕1和3則能遙控關閉電器1和電器2。由于遙控系統(tǒng)需要支持形式多樣的電器,因此,該系統(tǒng)的設計要求具有較高的擴展性?,F假設需要控制客廳電視和臥室電燈,對該遙控系統(tǒng)進行設計所得類圖如下圖(b)所示

圖(b)中,類romotecontroller的方法onprcssbutton(int button)表示當遙控器按鍵按下時調用的方法,參數為按鍵的編號;command接口中on和off方法分別用于控制電器的開與關;light中turnlight(int degree)方法用于調整電燈燈光的強弱,參數 degree值為0時表示關燈,值為100時表示開燈并且將燈光亮度調整到最大;tv中 sctchannel(int channel)方法表示設置電視播放的頻道,參數channel值為0時表示關閉電視,為1時表示開機并將頻道切換為第1頻道。
【java代碼】
class light{  //電燈類
public void trunlight(int degree){//調整燈光亮度,0表示關燈,100表示亮度最大}
};
class tv{//電視機類
public void setchannel(int channel){//0表示關機,1表示開機并切換到1頻道}
};
interface command{//抽象命令類
void on();
void off();
};
class remotecontroller{  //遙控器類
protected command  []commands=new command[4];
//遙控器有4個按鈕,按照編號分別對應4個command對象
public void onpressbutton(int button){
//按鈕被按下時執(zhí)行命令對象中的命令
if(button  %  2 == 0)commands[button]. on();
else commands[button]. off();
}
public void setcommand(int button,  command command){
(1)  =command;//設置每個按鈕對應的命令對象
}
};
class lightcommand implements command{  //電燈命令類
protected light light;  //指向要控制的電燈對象
public void on(){light. trunlight(100););
public void off(){light.   (2)  ;);
public lightcommand(light light){this. light= light;);
};
class tvcommand implements command{//電視機命令類
protected tv tv;  //指向要控制的電視機對象
public void on(){tv.   (3)  ;};
public void off(){tv. setchanne1(0);};
public tvcommand(tv  tv){this. tv= tv;};
};
public class rs {
public static void main(string [] args){
light light= new light();  tv tv=new tv();//創(chuàng)建電燈和電視對象
lightcommand lightcommand= new lightcommand(light);
tvcommand tvcommand=new tvcommand(tv);
remotecontroller remotecontroller=new remotecontroller();
//設置按鈕和命令對象
remotecontroller. setcommand(0,  (4)  );
... //此處省略設置按鈕1、按鈕2和按鈕3的命令對象代碼
}
}
本題中,應用命令模式能夠有效讓類  (5)  和類  (6)  、類  (7)  之間的耦合性降至最小。
信管網參考答案:
查看解析:m.xiexiliangjiufa.com/st/2457017139.html
掃碼關注公眾號

溫馨提示:因考試政策、內容不斷變化與調整,信管網網站提供的以上信息僅供參考,如有異議,請以權威部門公布的內容為準!

信管網致力于為廣大信管從業(yè)人員、愛好者、大學生提供專業(yè)、高質量的課程和服務,解決其考試證書、技能提升和就業(yè)的需求。

信管網軟考課程由信管網依托10年專業(yè)軟考教研傾力打造,官方教材參編作者和資深講師坐鎮(zhèn),通過深研歷年考試出題規(guī)律與考試大綱,深挖核心知識與高頻考點,為學員考試保駕護航。面授、直播&錄播,多種班型靈活學習,滿足不同學員考證需求,降低課程學習難度,使學習效果事半功倍。

相關內容

發(fā)表評論  查看完整評論  

推薦文章