天天操天天射天天舔,午夜精品一码二码三码,欧美粗暴jizz性欧美20,日本视频中文字幕,国语对白新婚少妇在线观看,操大逼网站,国产精品麻豆三级一区视频

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

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

免費下載軟件設(shè)計師歷年真題:http://www.richmond-chase.com/zhenti/rs.html
該套題在線考試:http://www.richmond-chase.com/exam/examam.aspx?t1=2&sid=535573
1、 試題1

閱讀下列說明和數(shù)據(jù)流圖,回答問題1至問題3。
說明
某圖書管理系統(tǒng)的主要功能是圖書管理和信息查詢。對于初次借書的讀者,系統(tǒng)自動生成讀者號,并與讀者基本信息(姓名、單位、地址等)一起寫入讀者文件。
系統(tǒng)的圖書管理功能分為四個方面:購入新書、讀者借書、讀者還書以及圖書注銷。
1.購入新書時需要為該書編制入庫單。入庫單內(nèi)容包括圖書分類目錄號、書名、作者、價格、數(shù)量和購書日期,將這些信息寫入圖書目錄文件并修改文件中的庫存總量(表示到目前為止,購入此種圖書的數(shù)量)。
2.讀者借書時需填寫借書單。借書單內(nèi)容包括讀者號和所借圖書分類目錄號。系統(tǒng)首先檢查該讀者號是否有效,若無效,則拒絕借書;若有效,則進一步檢查該讀者已借圖書是否超過最大限制數(shù)(假設(shè)每位讀者能同時借閱的書不超過5本),若已達到最大限制數(shù),則拒絕借書;否則允許借書,同時將圖書分類目錄號、讀者號和借閱日期等信息寫入借書文件中。
3.讀者還書時需填寫還書單。系統(tǒng)根據(jù)讀者號和圖書分類目錄號,從借書文件中讀出與該圖書相關(guān)的借閱記錄,標明還書日期,再寫回到借書文件中,若圖書逾期,則處以相應的罰款。
4.注銷圖書時,需填寫注銷單并修改圖書目錄文件中的庫存總量。
系統(tǒng)的信息查詢功能主要包括讀者信息查詢和圖書信息查詢。其中讀者信息查詢可得到讀者的基本信息以及讀者借閱圖書的情況;圖書信息查詢可得到圖書基本信息和圖書的借出情況。
圖書管理系統(tǒng)的頂層圖如圖1-1所示;圖書管理系統(tǒng)的第0層dfd圖如圖1-2所示,其中,加工2的細化圖如圖1-3所示。
數(shù)據(jù)流圖1.1


圖1-3  加工2的細化圖
【問題1】
數(shù)據(jù)流圖1-2中有兩條數(shù)據(jù)流是錯誤的,請指出這兩條數(shù)據(jù)流的起點和終點。
【問題2】
數(shù)據(jù)流圖1-3中缺少三條數(shù)據(jù)流,請指出這三條數(shù)據(jù)流的起點和終點。
【問題3】
根據(jù)系統(tǒng)功能和數(shù)據(jù)流圖填充下列數(shù)據(jù)字典條目中的(1)和(2):
查詢請求信息=【查詢讀者請求信息|查詢圖書請求信息】
讀者情況;讀者號+姓名+所在單位+{借書情況}
管理工作請求單=  (1)
入庫單=  (2)
信管網(wǎng)參考答案:
查看解析:www.richmond-chase.com/st/2451515446.html


2、 試題2

閱讀下列說明和e-r圖,回答問題1至問題3,將解答填入答題紙的對應欄內(nèi)。
說明
某網(wǎng)上訂書系統(tǒng)的e-r圖(已消除了不必要的冗余)如圖2-1所示(圖中沒有標出主碼)。圖中實體的說明如表2-1所示,相關(guān)屬性說明如表2-2所示。

一個顧客可以在同一天填寫多張購書單,每張購書單上可填寫多種圖書,每種圖書可以訂購多本,bid相同的圖書在同一張購書單上不能出現(xiàn)多次。
注:為簡化起見,不考慮信用卡號碼泄漏所帶來的安全性等問題。



【問題1】
根據(jù)e-r圖中給出的詞匯,按照“關(guān)系模式名(屬性,屬性,…)”的格式,將此 e-r圖轉(zhuǎn)換為4個關(guān)系模式,并指出每個關(guān)系模式中的主碼和外碼,其中模式名根據(jù)需要取實體名或聯(lián)系名。
【問題2】
創(chuàng)建customers表時,cid使用integer數(shù)據(jù)類型,cnarne使用char(80)數(shù)據(jù)類型,address使用char(200)數(shù)據(jù)類型,cardnum使用char(16)數(shù)據(jù)類型并且要求此列值惟一。請在下列用于創(chuàng)建表customers的sql語句空缺處填入正確的內(nèi)容。
create table customers(cid  integer not null,
cname  char(80)not null,
address char(200),
cardnum char(16)not null,
(1)  ,
(2)  )
【問題3】
如下的sql語句是書店用于查詢“所有訂購了bid為‘123-456’圖書的用戶訂購其他圖書的情況”的不完整語句,請在空缺處填入正確的內(nèi)容。
select bid
from orderlist a
where not exists(select*from orders b
where a.ordemum=b.ordemum and b.cid  (3)
(select cid from ordcrlist c,orders d
where  (4)  .bid='123-456'
and  (5)  =d.ordemum))
信管網(wǎng)參考答案:
查看解析:www.richmond-chase.com/st/2451626533.html


3、 試題3

閱讀下列說明和圖,回答問題1至問題3,將解答填入答題紙的對應欄內(nèi)。
【說明】
某指紋門禁系統(tǒng)的體系結(jié)構(gòu)如圖3-1所示,其主要部件有:主機(mainframe)、鎖控器(lockcontroller)、指紋采集器(fingerreader)和電控鎖(lock)。
(1)系統(tǒng)中的每個電控鎖都有一個惟一的編號。鎖的狀態(tài)有兩種:“已鎖住”和“未
鎖住”。
(2)在主機上可以設(shè)置每把鎖的安全級別以及用戶的開鎖權(quán)限。只有當用戶的開鎖權(quán)限大于或等于鎖的安全級別并且鎖處于“已鎖住”狀態(tài)時,才能將鎖打開。
(3)用戶的指紋信息、開鎖權(quán)限以及鎖的安全級別都保存在主機上的數(shù)據(jù)庫中。
(4)用戶開鎖時,只需按一下指紋采集器。指紋采集器將發(fā)送一個中斷事件給鎖控器,鎖控器從指紋采集器讀取用戶的指紋并將指紋信息發(fā)送到主機,主機根據(jù)數(shù)據(jù)庫中存儲的信息來判斷用戶是否具有開鎖權(quán)限,若有且鎖當前處于“已鎖住”狀態(tài),則將鎖打開;否則系統(tǒng)報警。
該系統(tǒng)采用面向?qū)ο蠓椒ㄩ_發(fā),系統(tǒng)中的類以及類之間的關(guān)系用uml類圖表示,圖3-2是該系統(tǒng)類圖的一部分;系統(tǒng)的動態(tài)行為采用uml序列圖表示,圖3-3是用戶成功開鎖的序列圖。


【問題1】
圖3-2是該系統(tǒng)類圖的一部分,依據(jù)上述說明中給出的術(shù)語,給出類lock的主要屬性。
【問題2】
依據(jù)上述說明中給出的詞語,將圖3-3中的(1)~(5)處補充完整。
【問題3】
組裝(composition)和聚集(aggregation)是uml中兩種非常重要的關(guān)系。請說明組裝和聚集分別表示什么含義?兩者的區(qū)別是什么?
信管網(wǎng)參考答案:
查看解析:www.richmond-chase.com/st/2451724247.html


4、 試題4

閱讀下列說明和圖,回答問題1至問題3,將解答填入答題紙的對應欄內(nèi)。
【說明】
在并發(fā)系統(tǒng)設(shè)計中,通過對信號量s的p、v操作實現(xiàn)進程的同步與互斥控制。
p(s):s:=s-1,若s≥0,則執(zhí)行p操作的進程繼續(xù)執(zhí)行:若s<0,則置該進程為阻塞狀態(tài),并將其插入阻塞隊列。
v(s):s:=s+1,若s>0,則執(zhí)行v操作的進程繼續(xù)執(zhí)行;若s≤0,則從阻塞隊列喚醒一個進程,并將其插入就緒隊列,然后執(zhí)行v操作的進程繼續(xù)執(zhí)行。
【問題1】
在某并發(fā)系統(tǒng)中,有一個發(fā)送進程a、一個接收進程b、一個環(huán)形緩沖區(qū)buffer、信號量s1和s2。發(fā)送進程不斷地產(chǎn)生消息并寫入緩沖區(qū)buffer,接收進程不斷地從緩沖區(qū)buffer取消息。假設(shè)發(fā)送進程和接收進程可以并發(fā)地執(zhí)行,那么,當緩沖區(qū)的容量為n時,如何使用p、v操作才能保證系統(tǒng)的正常工作。發(fā)送進程a和接收進程b的工作流程如圖4-1所示。請在圖4-1中的空(1)~(4)處填入正確的內(nèi)容。
【問題2】
若系統(tǒng)中有多個發(fā)送進程和接收進程,進程間的工作流程如圖4-2所示,其中空 (1)~(4)的內(nèi)容與圖4-1相同。發(fā)送進程產(chǎn)生消息并順序地寫入環(huán)形緩沖區(qū)buffer,接收者進程順序地從buffer中取消息,且每條消息只能讀取一次。為了保證進程間的正常通信,增加了信號量sa和sb。
①請說明信號量sa和sb的物理意義,并在圖4-2中的空(5)和空(6)處填入正確的內(nèi)容。
②請從圖4-2的(a)~(1)中選擇四個位置正確地插入p(sa)、v(sa)、p(sb)、v(sb)。
【問題3】
設(shè)系統(tǒng)中只有進程a和進程b,除了互斥地使用cpu和打印機r外,進程a和b不使用其他資源。另外,進程b的優(yōu)先級比a高,而進程a先于b準備好。進程a和 b的執(zhí)行情況如圖4-3所示,其中粗實線表示進程在執(zhí)行中,細實線表示打印機r在使用中(每個進程具有三種狀態(tài):運行、就緒和阻塞)。


請分別說明進程a和b在圖4-3所示的t1、t2、t3、t4時刻所處的狀態(tài);若是阻塞狀態(tài),請說明阻塞原因。
信管網(wǎng)參考答案:
查看解析:www.richmond-chase.com/st/2451810881.html


5、 13、閱讀下列函數(shù)說明和c代碼,將應填入  (n)  處的字句寫在答題紙的對應欄內(nèi)。

【說明】
函數(shù)int toplogical(linded wdipaph  g.的功能是對圖g中的頂點進行拓撲排序,并返回關(guān)鍵路徑的長度。其中圖g表示一個具有n個頂點的aoe-網(wǎng),圖中頂點從1~n依次編號,圖g的存儲結(jié)構(gòu)采用鄰接表表示,其數(shù)據(jù)類型定義如下:
typedefstruct gnode{               /* 鄰接表的表結(jié)點類型*/
iht adjvex;                  /* 鄰接頂點編號*/
iht weight;                 /* 弧上的權(quán)值*/
street gnode *nextarc;          /* 指示下一個弧的結(jié)點*/
}gnode;
typedef struct adjlist{           /* 鄰接表的頭結(jié)點類型*/
char vdata;                  /*頂點的數(shù)據(jù)信息*/
struct gnode *firstadj;        /* 指向鄰接表的第一個表結(jié)點*/
}adjlist;
typedef street linkedwdigraph{      /* 圖的類型*/
int n, e;                  /* 圖中頂點個數(shù)和邊數(shù)*/
struct adjlist *head;         /*指向圖中第一個頂點的鄰接表的頭結(jié)點 */
} linkedwdigraph;
例如,某aoe-網(wǎng)如圖5-1所示,其鄰接表存儲結(jié)構(gòu)如圖5-2所示。

【函數(shù)】
iht toplogical(linkedwdigraph g.
{ gnode *p;
intj, w, top = 0;
iht *stack, *ye, *indegree;
ye = (int *)malloe((g.n+1) * sizeof(int));
indegree = (int *)malloc((g.n+1)*sizeof(int));   /* 存儲網(wǎng)中各頂點的入度*/
stack = (int *)malloe((g.n+1)*sizeof(int));     /* 存儲入度為0的頂點的編號*/
if(!ve||!indegree || !stack)      exit(0);
for (j = 1;j <= g.n;j++) {
ve[j] = 0;    indegree[j]= 0;
}/*for*/
for(j= 1;j<=g.n;j++) { /* 求網(wǎng)中各頂點的入度*/
p = g.head[j].firstadj;
while (p) {
(1)  ;  p = p→nextarc;
}/*while*/
}/*for*/
for (j = 1; j <= g.n; j++)                  /*求網(wǎng)中入度為0的頂點并保存其編號*/
if (!indegree[j])     stack[++top] =j;
while (top > 0) {
w=   (2)  ;
printf("%e  ", g.head[w].vdata);
p = g.head[w].firstadj;
while (p) {
(3)   ;
if ( !indegree [p→adjvex])
staek[++top] = p→adjvex;
if(   (4)  )
ve[p→adjvex] = ve[w] + p→weight;
p = p→nextarc;
}/* while */
}/* while */ return   (5)   ; }/*toplogieal*/
信管網(wǎng)參考答案:
查看解析:www.richmond-chase.com/st/2451929526.html


6、 閱讀以下說明和c++代碼,將應填入  (n)  處的字句寫在答題紙的對應欄內(nèi)。

說明
通常情況下,用戶可以對應用系統(tǒng)進行配置,并將配置信息保存在配置文件中。應用系統(tǒng)在啟動時首先將配置文件加載到內(nèi)存中,這些內(nèi)存配置信息應該有且僅有一份。下面的代碼應用了單身模式(singleton)以保證configure類只能有一個實例。這樣, configure類的使用者無法定義該類的多個實例,否則會產(chǎn)生編譯錯誤。
c++代碼
#include<iostream.h>
class configure{
(1)  :
configure(){}    //構(gòu)造函數(shù)
public:
static configure*instance();
public:
int getconf~uredata(){return data;}    //獲取配置信息
int setconfiguredate(int m_data)
{data=m_data;  return data;}    //設(shè)置配置信息
private:
static configure*_instance;
int data;    //配置信息
};
(2)  =null;
configure*configure∷instance(){
if(_instance=null){
_instance=  (3)  ;
//加載配置文件并設(shè)置內(nèi)存配置信息,此處省略
}
return  (4)  ;
}
void main()(
configure*t=null;
t=  (5)  ;
int d=t→getconfiguredata();
//獲取配置信息后進行其他工作,此處省略
}
信管網(wǎng)參考答案:
查看解析:www.richmond-chase.com/st/245204478.html


7、 閱讀以下說明和java代碼,將應填入  (n)  處的字句寫在答題紙的對應欄內(nèi)。

說明
類queue表示隊列,類中的方法如下表所示。

類node表示隊列中的元素;類emptyqueueexception 給出了隊列操作中的異常處理操作。
java 代碼
public class testmain{                            // 主類
public static void main(string args[]) {
queue q = new queue();
q.enqueue("first!");
q.enqueue("second!");
q.enqueue("third!");
(1)  {
while(true)
system.out.println(q. dequeue());
}
catch(   (2)  )  ( }
}
}
public class queue {                              // 隊列
node m_firstnode;
public queue() { m_firstnode = null; }
public boolean isempty() {
if(m_firstnode == null)  return true;
else  return false;
}
public void enqueue(object newnode) {// 入隊操作
node next = m_firstnode;
if(next==null)  m_firstnode = new node(newnode);
else {
while(next.getnext() != null)  next = next.getnext();
next.setnext(new node(newnode));
}
}
public object dequeue()     (3)   {// 出隊操作
object node;
if (isempty())
(4)   ;      // 隊列為空,拋出異常
else {
node = m_firstnode.getobject();
m_firstnode = m_firstnode.getnext();
return node;
}
}
}
public class node {                              // 隊列中的元素
object m_data;
node m_next;
public node(object data)          { m_data = data;   m_next = null; }
public node(object data, node next)  { m_data = data;   m_next = next; }
public void setobject(object data)   { m_data = data; }
public object getobject0          { return m_data; }
public void setnext(node next)      { m_next = next; }
public node getnext()             { return m_next; }
}
public class emptyqueueexception extends     (5)   {  // 異常處理類
public emptyqueueexception0  {
system.out.println("隊列已空 ! ");
}
}
信管網(wǎng)參考答案:
查看解析:www.richmond-chase.com/st/2452113389.html
掃碼關(guān)注公眾號

溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,信管網(wǎng)網(wǎng)站提供的以上信息僅供參考,如有異議,請以權(quán)威部門公布的內(nèi)容為準!

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

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

相關(guān)內(nèi)容

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

推薦文章