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