2016年計(jì)算機(jī)軟件水平考試軟件設(shè)計(jì)師練習(xí)試題
時(shí)間:2016-03-21 15:45:00 來(lái)源:無(wú)憂考網(wǎng) [字體:小 中 大]閱讀下列說(shuō)明和數(shù)據(jù)流圖,回答問題1 至問題3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
某圖書管理系統(tǒng)的主要功能是圖書管理和信息查詢。對(duì)于初次借書的讀者,系統(tǒng)自動(dòng)生成讀者號(hào),并與讀者基本信息(姓名、單位、地址等)一起寫入讀者文件。系統(tǒng)的圖書管理功能分為四個(gè)方面:購(gòu)入新書、讀者借書、讀者還書以及圖書注銷。1.購(gòu)入新書時(shí)需要為該書編制入庫(kù)單。入庫(kù)單內(nèi)容包括圖書分類目錄號(hào)、書名、作者、價(jià)格、數(shù)量和購(gòu)書日期,將這些信息寫入圖書目錄文件并修改文件中的庫(kù)存總量(表示到目前為止,購(gòu)入此種圖書的數(shù)量)。
2.讀者借書時(shí)需填寫借書單。借書單內(nèi)容包括讀者號(hào)和所借圖書分類目錄號(hào)。系統(tǒng)首先檢查該讀者號(hào)是否有效,若無(wú)效,則拒絕借書;若有效,則進(jìn)一步檢查該讀者已借圖書是否超過(guò)限制數(shù)(假設(shè)每位讀者能同時(shí)借閱的書不超過(guò)5 本),若已達(dá)到限制數(shù),則拒絕借書;否則允許借書,同時(shí)將圖書分類目錄號(hào)、讀者號(hào)和借閱日期等信息寫入借書文件中。
3.讀者還書時(shí)需填寫還書單。系統(tǒng)根據(jù)讀者號(hào)和圖書分類目錄號(hào),從借書文件中讀出與該圖書相關(guān)的借閱記錄,標(biāo)明還書日期,再寫回到借書文件中,若圖書逾期,則處以相應(yīng)的罰款。
4.注銷圖書時(shí),需填寫注銷單并修改圖書目錄文件中的庫(kù)存總量。系統(tǒng)的信息查詢功能主要包括讀者信息查詢和圖書信息查詢。其中讀者信息查詢可得到讀者的基本信息以及讀者借閱圖書的情況;圖書信息查詢可得到圖書基本信息和圖書的借出情況。圖書管理系統(tǒng)的頂層圖如圖1-1 所示;圖書管理系統(tǒng)的第0 層DFD 圖如圖]-2 所示其中,加工2 的細(xì)化圖如圖1-3 所示。
[數(shù)據(jù)流圖1-1]
圖1-1 圖書管理系統(tǒng)頂層圖
[數(shù)據(jù)流圖1-2]
圖1-2 圖書管理系統(tǒng)第0 層DFD 圖
[數(shù)據(jù)流圖1-3]
[問題1](2 分)
數(shù)據(jù)流圖1-2 中有兩條數(shù)據(jù)流是錯(cuò)誤的,請(qǐng)指出這兩條數(shù)據(jù)流的起點(diǎn)和終點(diǎn)。
[問題2](6 分)
數(shù)據(jù)流圖1-3 中缺少三條數(shù)據(jù)流,請(qǐng)指出這三條數(shù)據(jù)流的起點(diǎn)和終點(diǎn)。
[問題3](7 分)
根據(jù)系統(tǒng)功能和數(shù)據(jù)流圖填充下列數(shù)據(jù)字典條目中的(1)和(2):
查洵請(qǐng)求信息=[查詢讀者請(qǐng)求信息|查詢圖書請(qǐng)求信息]
讀者情況=讀者號(hào)+姓名+所在單位+{借書情況}
管理工作請(qǐng)求單= (1)
入庫(kù)單= (2)
試題二
閱讀下列說(shuō)明和算法,回答問題 1 和問題2,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
[說(shuō)明]
算法2-1 是用來(lái)檢查文本文件中的圓括號(hào)是否匹配。若文件中存在圓括號(hào)沒有對(duì)應(yīng)的左括號(hào)或者右括號(hào),則給出相應(yīng)的提示信息,如下所示:文件 提示信息
(1+2)
abc) 缺少對(duì)應(yīng)左括號(hào):第2 行,第4 列
((def)gx)) 缺少對(duì)應(yīng)左括號(hào):第3 行,第10 列
(((h)
ij)(k
(1ml)
缺少對(duì)應(yīng)右括號(hào):第5 行,第4 列; 第4
行,第1 列
在算法2-1 中,stack 為一整數(shù)棧。算法中各函數(shù)的說(shuō)明如下表所示:
函數(shù)名 函數(shù)功能
push(int i) 將整數(shù)i 壓入棧stack 中。
pop() stack 的棧頂元素出棧。
empty() 判斷stack 棧是否為空.若為空,函數(shù)返回1,否則函數(shù)返回0。
nextch()
讀取文本文件中的下一個(gè)字符,并返回該字符的ASCII 值,將字符所在的行號(hào)以及字 符在行中的位置分別存儲(chǔ)到變量row 和col中,若遇到文件結(jié)束符,則將變量EOF 置為true;kind(charch)判斷字符ch 是左括號(hào)還是右括號(hào),若是左括號(hào),函數(shù)返回1,若是右括號(hào),函數(shù)返回2, 若兩者都不是,函數(shù)返回0。
[算法2-1]
將棧stack 置空,置EOF 為false
ch←nextch();
while(not EOF)
k←kind(ch);
if (k ==__(1)__)
push(__(2)__); push(__(3)__);
elseif( k ==__(4)__)
if(not empty())
pop();pop():
else
顯示錯(cuò)誤信息(缺少對(duì)應(yīng)左括號(hào)或右括號(hào));顯示行號(hào)row;顯示列號(hào)col;
endif
endif
ch←nextch();
endwhile
if(not empty())
顯示錯(cuò)誤信息(缺少對(duì)應(yīng)左括號(hào)或右括號(hào));
while(not empty())
row←pop(); col←pop();
顯示行號(hào)row;顯示列號(hào)col;
endwhile
endif
為了識(shí)別更多種類的括號(hào),對(duì)算法2-1 加以改進(jìn)后得到算法2-2。算法2-2 能夠識(shí)別圓括號(hào),方括號(hào)和花括號(hào)(不同類型的括號(hào)不能互相匹配)。改進(jìn)后,函數(shù)kind(charch)的參數(shù)及其對(duì)應(yīng)的返回值如下表所示:
ch ( ) { } [ ] 其它
返回值 1 2 3 4 5 6 0
[算法2-2]
將棧stack 置空,置EOF 為false
ch←nextch();
while(not EOF)
k←kind(ch);
if(k > 0)
if(判斷條件1)
push(__(5)__):push(__(6)__);push(__(7)__):
elseif( 判斷條件2 and 判斷條件3 )
pop(); pop(); pop();
else
顯示錯(cuò)誤信息(缺少對(duì)應(yīng)左括號(hào)或右括號(hào));顯示行號(hào)row;顯示列號(hào)col;
endif
endif
ch←nextch();
endwhile
if(not empty())
顯示錯(cuò)誤信息(缺少對(duì)應(yīng)左括號(hào)或右括號(hào));
while(not empty())
pop();row←pop();col←pop();
顯示行號(hào)row;顯示列號(hào)col;
endwhile
endif
[問題1]
請(qǐng)將[算法2-1]和[算法2-2]中(1)至(7)處補(bǔ)充完整。
[問題2]
請(qǐng)從下面的選項(xiàng)中選擇相應(yīng)的判斷邏輯填補(bǔ)[算法2-2]中的“判斷條件廣至“判斷條件3”。注意,若“判斷條件2”的邏輯判斷結(jié)果為假,就無(wú)需對(duì)“判斷條件3”進(jìn)行判斷。
(a)字符是括號(hào) (b)字符是左括號(hào) (c)字符是右括號(hào) (d)棧空 (e)棧不空
(f)棧頂元素表示的是與當(dāng)前字符匹配的左括號(hào)
(g)棧頂元素表示的是與當(dāng)前字符匹配的右括號(hào)
試題三
閱讀下列說(shuō)明和 E—R 圖,回答問題 1~3,把解答寫在答卷的對(duì)應(yīng)欄內(nèi)。
試用 SQL 語(yǔ)言定義教師( TEACHER )模式;卮饡r(shí)字段的數(shù)據(jù)類型以及題中未指明的名字由考生自己定義。
[說(shuō)明]
設(shè)有下列關(guān)于教務(wù)管理系統(tǒng)的 E—R 圖。圖中矩形表示實(shí)體,圓表示屬性,雙圓表示關(guān)鍵字屬性,菱形表示實(shí)體間的聯(lián)系。為了答題的方便,圖中的實(shí)體和屬性同時(shí)給出了中英文兩種名字,回答問題時(shí)只須寫出英文名即可。
[E-R]圖
[問題1]
寫出與上述 E—R 圖對(duì)應(yīng)的關(guān)系模式,并用下劃線標(biāo)明相應(yīng)的關(guān)鍵字。
[問題2]
問題 1 中的關(guān)系模式屬于第幾范式? 如果屬于第三范式,則說(shuō)明理由;如果不屬于第
三范式,則將它化為第三范式( 回答時(shí)只須寫出修改的部分 )。
[問題3]
試用 SQL 語(yǔ)言定義教師( TEACHER )模式;卮饡r(shí)字段的數(shù)據(jù)類型以及題中未指明的名字由考生自己定義。
試題四
在 UML 中,一個(gè)用例是用戶與計(jì)算機(jī)之間為達(dá)到某個(gè)目的的一次交互佂是對(duì)一個(gè)系統(tǒng)提供的功能的一種描述。它描述了用戶提出的一些可見需求佂。需求分析首先應(yīng)定義用例。
電梯系統(tǒng)中的用例如下:
(1) 電梯呼叫:電梯接受乘客的呼叫,電梯呼叫按鈕的亮滅!系統(tǒng)控制部分電梯呼叫按鈕信息的更新等;
(2) 樓層請(qǐng)求:電梯接受乘客的樓層選擇!樓層按鈕的亮滅和系統(tǒng)控制部分樓層按鈕信息的更新等;
(3) 運(yùn)行方向標(biāo)識(shí):電梯應(yīng)該有這種機(jī)制,即讓乘客知道電梯目前的運(yùn)動(dòng)方向,決定是否進(jìn)電梯;
(4) 電梯位置標(biāo)識(shí):電梯應(yīng)該讓乘客知道其的目的層是否到達(dá),決定是否離開電梯;
(5) 電梯就緒:電梯處于靜止?fàn)顟B(tài),隨時(shí)等候正常的運(yùn)行調(diào);
(6) 電梯超載:電梯載重超過(guò)規(guī)定的重量,予以報(bào)警,停止運(yùn)行,否則運(yùn)行;
根據(jù)提示,回答下面問題:
問題【1】
電梯系統(tǒng)的角色是乘客和電梯控制系統(tǒng),乘客和系統(tǒng)交互完成任務(wù),乘客通過(guò)呼叫電梯和樓層與電梯系統(tǒng)交互。用例圖表明角色和用例的處理關(guān)系。請(qǐng)將下面的電梯系統(tǒng)用例圖補(bǔ)充完整。__(1)___、___(2)___、___(3)___、___(4)___、___(5)___、___(6)___、___(7)___。
問題【2】
狀態(tài)圖能描述一個(gè)特定對(duì)象的所有可能的狀態(tài)以及由于各種事件的發(fā)生而引起的狀態(tài)轉(zhuǎn)移。大多數(shù)面向?qū)ο蠹夹g(shù)都使用狀態(tài)圖來(lái)描述一個(gè)對(duì)象在其生命周期中的行為。電梯系統(tǒng)的狀態(tài)由上升、下降、停止、第一層和向第一層下降狀態(tài)組成。請(qǐng)將下面的電梯系統(tǒng)狀態(tài)圖補(bǔ)充完整。__(1)___、___(2)___、___(3)___、___(4)___。
問題【3】根據(jù)3 個(gè)層次的觀點(diǎn), 類圖分為哪3 個(gè)層次?它們各有什么特點(diǎn)?請(qǐng)簡(jiǎn)要說(shuō)用。
試題五
閱讀下列程序說(shuō)明和 C 程序,把應(yīng)填入其中__n__ 處的字句,寫在答卷的對(duì)應(yīng)欄內(nèi)。
[程序說(shuō)明]
(1)本程序利用輾轉(zhuǎn)相除法求兩個(gè)均不超過(guò)100 次的多項(xiàng)式A,B 的公因式。
例: A(x)=x3 一x2+x 一1=(x2+1)(x 一1)
B(x)=x5 一7x4 十7x3-3x2+6x+4=(x2+1) (x3-7x2 十6x+4)
公因式為x2+1。
(2)輾轉(zhuǎn)相除法的算法如下:
用其中的一個(gè)多項(xiàng)式去除另一個(gè)多項(xiàng)式;然后,將所得余式變成除式,原除式變成被除式。如此反復(fù)相除,當(dāng)余式為。時(shí),當(dāng)前除式即為公因式。
[程序]
#include
#include
#define DECISE.0005
#define MAX_POWER 100
main( )
{ int i,a,b;
float Ca[MAX_POWER+1],Cb[MAX _POWER+1];
void Remainder();
scanf("%d",&a);
for ( i=0;i<=a;i++ )
scanf( "%f",&Ca[i] );
scanf( "%d",&b) ;
for ( i=0;i<=b;i++ )
scanf( "%d",&Cb[i] );
Remainder(Ca,Cb,a,b);
}
void Remainder(Pointer A,Pointer B,a,b)
float *Pointer A,*Pointer B;
int a,b;
{ float x,y,*Temp;
int i,j,F(xiàn)1ag=1;
while ( Flag )
{ i=0;
while ( PointerB[i]==0 )
{ i ++;b 一-;
__①__ ;
}
x=Pointer[i];
while ( i<=b )
PointerB[i++]/=x;
for ( i=0;i<=a-b;i++ )
{ __②__ ;
for(j=0;j
{ y = PointerA[i+l+j]一x * PointerB[j+1];
PointerA[ __③__ ]=
( y
}
}
Temp=Pointer A;
PointerA=PointerB; ·
PointerB = __④__ ;
a=b--;
for ( Flag=0,i=0;i
if ( PointerB[i] !=0.0 ) Flag=1;
}
printf( "The Greatest Common Factor is:\n");
for ( i=0;i
if ( PointerA[i]!= 0.0)
printf( "%5.3f *x ∧%d%s",
PointerA[I],a-i,( PointerA[i+1]<0.0 ) ?"":"+" );
printf( "%5.3f\n",PointerA[a] );
}
下午試題答案
試題一
[問題1]
起點(diǎn):讀者文件 終點(diǎn),登記讀者信息或3
起點(diǎn):處理查詢請(qǐng)求 或2 終點(diǎn):讀者文件
[問題2]
起點(diǎn):圖書目錄文件 終點(diǎn):圖書信息查詢或2.2
起點(diǎn):借書文件 終點(diǎn):讀者信息查詢或2.1
起點(diǎn):借書文件 終點(diǎn):圖書信息查詢或2.2
[問題3]
(1)[入庫(kù)單|借書單|還書單|注銷單]
(2)分類目錄號(hào)+書名+作者+價(jià)格+數(shù)量+購(gòu)書日期
解析:本題為系統(tǒng)分析題,重點(diǎn)考察了考生對(duì)系統(tǒng)分析中結(jié)構(gòu)化分析方法的理解與掌握程度,以及考生使用結(jié)構(gòu)化分析方法進(jìn)行系統(tǒng)分析解決實(shí)際應(yīng)用問題的能力。[問題1] 圖書管理系統(tǒng)的主要功能是圖書管理和信息查詢。對(duì)于初次借書的讀者,系統(tǒng)自動(dòng)生成讀者號(hào),并與讀者基本信息(姓名、單位、地址等)一起寫入讀者文件。因此,“登錄讀者信息或3”將會(huì)產(chǎn)生一個(gè)文件用以存儲(chǔ)讀者基本信息;同時(shí),系統(tǒng)的信息查詢功能主要包括讀者信息查詢和圖書信息查詢,其中讀者信息查詢可得到讀者的基本信息以及讀者借閱圖書的情況,因此,“處理查詢請(qǐng)求或2”還會(huì)用到讀者基本信息文件。因此,數(shù)據(jù)流圖1-2 中起點(diǎn):讀者文件 ——>終點(diǎn),登記讀者信息或3;起點(diǎn):處理查詢請(qǐng)求 或2——〉終點(diǎn):讀者文件是錯(cuò)誤的。正確的應(yīng)為:登記讀者信息或3 ——>讀者文件 終點(diǎn);起點(diǎn): 讀者文件 或2——〉終點(diǎn):處理查詢請(qǐng)求。
[問題2]系統(tǒng)的信息查詢功能主要包括讀者信息查詢和圖書信息查詢。其中讀者信息查詢可得到讀者的基本信息以及讀者借閱圖書的情況;圖書信息查詢可得到圖書基本信息和圖書的借出情況。因此,“圖書信息查詢或2.2”會(huì)用到圖書目錄文件和借書文件;“讀者信息查詢或2.1”需要借書文件。所以數(shù)據(jù)流圖1-3 中缺少三條數(shù)據(jù)流,分別為:起點(diǎn):圖書目錄文件——〉終點(diǎn):圖書信息查詢或2.2;起點(diǎn):借書文件——〉終點(diǎn):讀者信息查詢或2.1;起點(diǎn):借書文件——〉終點(diǎn):圖書信息查詢或2.2。
[問題3] 本題要求考生根據(jù)系統(tǒng)功能和數(shù)據(jù)流圖填充數(shù)據(jù)字典條目。首先分析一下“管理工作請(qǐng)求單”包含那些條目。管理工作請(qǐng)求單是由圖書館管理員向圖書管理系統(tǒng)提供的,購(gòu)入新書時(shí)需要為該書編制入庫(kù)單,因此管理工作請(qǐng)求單應(yīng)該包含“入庫(kù)單”;讀者借書時(shí)需填寫借書單,則管理工作請(qǐng)求單應(yīng)該包含“借書單”;讀者還書時(shí)需填寫還書單,則管理工作請(qǐng)求單應(yīng)該包含“還書單”;注銷圖書時(shí),需填寫注銷單并修改圖書目錄文件中的庫(kù)存總量,則管理工作請(qǐng)求單應(yīng)該包含“注銷單”。故,管理工作請(qǐng)求單=[入庫(kù)單|借書單|還書單|注銷單]。其次。在分析“入庫(kù)單”的條目。入庫(kù)單內(nèi)容包括圖書分類目錄號(hào)、書名、作者、價(jià)格、數(shù)量和購(gòu)書日期,因此“入庫(kù)單=分類目錄號(hào)+書名+作者+價(jià)格+數(shù)量+購(gòu)書日期”。
試題二
[問題1]
(1)l (2)col (3)row (4)2 (5)col (6)row (7)k
[問題2]
判斷條件1:b
判斷條件2:e
判斷條件3:f
試題三
[問題 1]
DEPT(DNAME,DHEAD,PHONE)
TEACHER(TNO,TNAME,SEX,AGE,TITLE)
STUDENT(SNO,SNAME,SEX,CLASS,MONITOR)
COURSE(CNO,CNAME,HOUR,ROOM)
D-T(DNAME,TNO)
D-S(DNAME,SNO)
TEACH(TNO,CNO,EVAL)
STUDY(SNO,CNO,GRADE)
其中有下劃線的項(xiàng)為關(guān)鍵項(xiàng)。
[問題2]
將STUDENT 分解為
STUDENT(SNO,SNAME.SEX,CLASS)
SCLASS(CLASS,MONITOR)
[問題3]
CREATE TABLE TEACHER(TNO(CHAR(8),NONULL),
TNAME(CHAR(20)),SEX(CHAR(1)),AGE(1NTEGER),TITLE(CHAR(20)))
試題四
問題【1】
問題【2】
問題【3】
答:根據(jù)3 個(gè)層次的觀點(diǎn),類圖分為3 個(gè)層次:概念層、說(shuō)明層和實(shí)現(xiàn)層。概念層的概念模型與實(shí)現(xiàn)它的軟件無(wú)關(guān),說(shuō)明層考察的是軟件的接口部分,實(shí)現(xiàn)層才真正有嚴(yán)格意義上的類的概念,揭示出軟件實(shí)現(xiàn)體的構(gòu)成情況。
試題五
(1) PointerB += i--
(2) x=PointerA[j]
(3) i+1-j
(4) (a>=b)? Temp+a—b-l:Temp
- 環(huán)球網(wǎng)校:2024年計(jì)算機(jī)軟考高級(jí)旗艦班系規(guī)旗艦班課程
- 2025年計(jì)算機(jī)技術(shù)與軟件專業(yè)技術(shù)資格(水平)考試時(shí)間:5月24日-27日、11月8日-11日
- 2024下半年計(jì)算機(jī)技術(shù)與軟件專業(yè)技術(shù)資格(水平)考試成績(jī)查詢通知
- 2024年上半年計(jì)算機(jī)軟件資格考試單獨(dú)劃線地區(qū)合格標(biāo)準(zhǔn)
- 2023上半年計(jì)算機(jī)軟件資格考試單獨(dú)劃線地區(qū)合格標(biāo)準(zhǔn)通告
- 2023下半年計(jì)算機(jī)技術(shù)與軟件專業(yè)技術(shù)資格(水平)考試模擬練習(xí)平臺(tái)上線公告
- 查看計(jì)算機(jī)軟件水平考試全部文檔 >>