試題1
閱讀下列說(shuō)明和數(shù)據(jù)流圖,回答問(wèn)題1至問(wèn)題3。
說(shuō)明
某圖書(shū)管理系統(tǒng)的主要功能是圖書(shū)管理和信息查詢。對(duì)于初次借書(shū)的讀者,系統(tǒng)自動(dòng)生成讀者號(hào),并與讀者基本信息(姓名、單位、地址等)一起寫(xiě)入讀者文件。
系統(tǒng)的圖書(shū)管理功能分為四個(gè)方面:購(gòu)入新書(shū)、讀者借書(shū)、讀者還書(shū)以及圖書(shū)注銷。
1.購(gòu)入新書(shū)時(shí)需要為該書(shū)編制入庫(kù)單。入庫(kù)單內(nèi)容包括圖書(shū)分類目錄號(hào)、書(shū)名、作者、價(jià)格、數(shù)量和購(gòu)書(shū)日期,將這些信息寫(xiě)入圖書(shū)目錄文件并修改文件中的庫(kù)存總量(表示到目前為止,購(gòu)入此種圖書(shū)的數(shù)量)。
2.讀者借書(shū)時(shí)需填寫(xiě)借書(shū)單。借書(shū)單內(nèi)容包括讀者號(hào)和所借圖書(shū)分類目錄號(hào)。系統(tǒng)首先檢查該讀者號(hào)是否有效,若無(wú)效,則拒絕借書(shū);若有效,則進(jìn)一步檢查該讀者已借圖書(shū)是否超過(guò)最大限制數(shù)(假設(shè)每位讀者能同時(shí)借閱的書(shū)不超過(guò)5本),若已達(dá)到最大限制數(shù),則拒絕借書(shū);否則允許借書(shū),同時(shí)將圖書(shū)分類目錄號(hào)、讀者號(hào)和借閱日期等信息寫(xiě)入借書(shū)文件中。
3.讀者還書(shū)時(shí)需填寫(xiě)還書(shū)單。系統(tǒng)根據(jù)讀者號(hào)和圖書(shū)分類目錄號(hào),從借書(shū)文件中讀出與該圖書(shū)相關(guān)的借閱記錄,標(biāo)明還書(shū)日期,再寫(xiě)回到借書(shū)文件中,若圖書(shū)逾期,則處以相應(yīng)的罰款。
4.注銷圖書(shū)時(shí),需填寫(xiě)注銷單并修改圖書(shū)目錄文件中的庫(kù)存總量。
系統(tǒng)的信息查詢功能主要包括讀者信息查詢和圖書(shū)信息查詢。其中讀者信息查詢可得到讀者的基本信息以及讀者借閱圖書(shū)的情況;圖書(shū)信息查詢可得到圖書(shū)基本信息和圖書(shū)的借出情況。
圖書(shū)管理系統(tǒng)的頂層圖如圖1-1所示;圖書(shū)管理系統(tǒng)的第0層DFD圖如圖1-2所示,其中,加工2的細(xì)化圖如圖1-3所示。
數(shù)據(jù)流圖1.1
圖1-3 加工2的細(xì)化圖
【問(wèn)題1】
數(shù)據(jù)流圖1-2中有兩條數(shù)據(jù)流是錯(cuò)誤的,請(qǐng)指出這兩條數(shù)據(jù)流的起點(diǎn)和終點(diǎn)。
【問(wèn)題2】
數(shù)據(jù)流圖1-3中缺少三條數(shù)據(jù)流,請(qǐng)指出這三條數(shù)據(jù)流的起點(diǎn)和終點(diǎn)。
【問(wèn)題3】
根據(jù)系統(tǒng)功能和數(shù)據(jù)流圖填充下列數(shù)據(jù)字典條目中的(1)和(2):
查詢請(qǐng)求信息=【查詢讀者請(qǐng)求信息|查詢圖書(shū)請(qǐng)求信息】
讀者情況;讀者號(hào)+姓名+所在單位+{借書(shū)情況}
管理工作請(qǐng)求單= (1)
入庫(kù)單= (2)
試題2
閱讀下列說(shuō)明和E-R圖,回答問(wèn)題1至問(wèn)題3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
說(shuō)明
某網(wǎng)上訂書(shū)系統(tǒng)的E-R圖(已消除了不必要的冗余)如圖2-1所示(圖中沒(méi)有標(biāo)出主碼)。圖中實(shí)體的說(shuō)明如表2-1所示,相關(guān)屬性說(shuō)明如表2-2所示。
一個(gè)顧客可以在同一天填寫(xiě)多張購(gòu)書(shū)單,每張購(gòu)書(shū)單上可填寫(xiě)多種圖書(shū),每種圖書(shū)可以訂購(gòu)多本,bid相同的圖書(shū)在同一張購(gòu)書(shū)單上不能出現(xiàn)多次。
注:為簡(jiǎn)化起見(jiàn),不考慮信用卡號(hào)碼泄漏所帶來(lái)的安全性等問(wèn)題。
【問(wèn)題1】
根據(jù)E-R圖中給出的詞匯,按照“關(guān)系模式名(屬性,屬性,…)”的格式,將此 E-R圖轉(zhuǎn)換為4個(gè)關(guān)系模式,并指出每個(gè)關(guān)系模式中的主碼和外碼,其中模式名根據(jù)需要取實(shí)體名或聯(lián)系名。
【問(wèn)題2】
創(chuàng)建Customers表時(shí),cid使用INTEGER數(shù)據(jù)類型,cnarne使用CHAR(80)數(shù)據(jù)類型,address使用CHAR(200)數(shù)據(jù)類型,cardnum使用CHAR(16)數(shù)據(jù)類型并且要求此列值惟一。請(qǐng)?jiān)谙铝杏糜趧?chuàng)建表Customers的SQL語(yǔ)句空缺處填入正確的內(nèi)容。
CREATE TABLE Customers(cid INTEGER NOT NULL,
cname CHAR(80)NOT NULL,
address CHAR(200),
cardnum CHAR(16)NOT NULL,
(1) ,
(2) )
【問(wèn)題3】
如下的SQL語(yǔ)句是書(shū)店用于查詢“所有訂購(gòu)了bid為‘123-456’圖書(shū)的用戶訂購(gòu)其他圖書(shū)的情況”的不完整語(yǔ)句,請(qǐng)?jiān)诳杖碧幪钊胝_的內(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))
試題3
閱讀下列說(shuō)明和圖,回答問(wèn)題1至問(wèn)題3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
某指紋門(mén)禁系統(tǒng)的體系結(jié)構(gòu)如圖3-1所示,其主要部件有:主機(jī)(MainFrame)、鎖控器(LockController)、指紋采集器(FingerReader)和電控鎖(Lock)。
(1)系統(tǒng)中的每個(gè)電控鎖都有一個(gè)惟一的編號(hào)。鎖的狀態(tài)有兩種:“已鎖住”和“未
鎖住”。
(2)在主機(jī)上可以設(shè)置每把鎖的安全級(jí)別以及用戶的開(kāi)鎖權(quán)限。只有當(dāng)用戶的開(kāi)鎖權(quán)限大于或等于鎖的安全級(jí)別并且鎖處于“已鎖住”狀態(tài)時(shí),才能將鎖打開(kāi)。
(3)用戶的指紋信息、開(kāi)鎖權(quán)限以及鎖的安全級(jí)別都保存在主機(jī)上的數(shù)據(jù)庫(kù)中。
(4)用戶開(kāi)鎖時(shí),只需按一下指紋采集器。指紋采集器將發(fā)送一個(gè)中斷事件給鎖控器,鎖控器從指紋采集器讀取用戶的指紋并將指紋信息發(fā)送到主機(jī),主機(jī)根據(jù)數(shù)據(jù)庫(kù)中存儲(chǔ)的信息來(lái)判斷用戶是否具有開(kāi)鎖權(quán)限,若有且鎖當(dāng)前處于“已鎖住”狀態(tài),則將鎖打開(kāi);否則系統(tǒng)報(bào)警。
該系統(tǒng)采用面向?qū)ο蠓椒ㄩ_(kāi)發(fā),系統(tǒng)中的類以及類之間的關(guān)系用UML類圖表示,圖3-2是該系統(tǒng)類圖的一部分;系統(tǒng)的動(dòng)態(tài)行為采用UML序列圖表示,圖3-3是用戶成功開(kāi)鎖的序列圖。
【問(wèn)題1】
圖3-2是該系統(tǒng)類圖的一部分,依據(jù)上述說(shuō)明中給出的術(shù)語(yǔ),給出類Lock的主要屬性。
【問(wèn)題2】
依據(jù)上述說(shuō)明中給出的詞語(yǔ),將圖3-3中的(1)~(5)處補(bǔ)充完整。
【問(wèn)題3】
組裝(composition)和聚集(aggregation)是UML中兩種非常重要的關(guān)系。請(qǐng)說(shuō)明組裝和聚集分別表示什么含義?兩者的區(qū)別是什么?
試題4
閱讀下列說(shuō)明和圖,回答問(wèn)題1至問(wèn)題3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
在并發(fā)系統(tǒng)設(shè)計(jì)中,通過(guò)對(duì)信號(hào)量S的P、V操作實(shí)現(xiàn)進(jìn)程的同步與互斥控制。
P(S):S:=S-1,若S≥0,則執(zhí)行P操作的進(jìn)程繼續(xù)執(zhí)行:若S<0,則置該進(jìn)程為阻塞狀態(tài),并將其插入阻塞隊(duì)列。
V(S):S:=S+1,若S>0,則執(zhí)行V操作的進(jìn)程繼續(xù)執(zhí)行;若S≤0,則從阻塞隊(duì)列喚醒一個(gè)進(jìn)程,并將其插入就緒隊(duì)列,然后執(zhí)行V操作的進(jìn)程繼續(xù)執(zhí)行。
【問(wèn)題1】
在某并發(fā)系統(tǒng)中,有一個(gè)發(fā)送進(jìn)程A、一個(gè)接收進(jìn)程B、一個(gè)環(huán)形緩沖區(qū)BUFFER、信號(hào)量S1和S2。發(fā)送進(jìn)程不斷地產(chǎn)生消息并寫(xiě)入緩沖區(qū)BUFFER,接收進(jìn)程不斷地從緩沖區(qū)BUFFER取消息。假設(shè)發(fā)送進(jìn)程和接收進(jìn)程可以并發(fā)地執(zhí)行,那么,當(dāng)緩沖區(qū)的容量為N時(shí),如何使用P、V操作才能保證系統(tǒng)的正常工作。發(fā)送進(jìn)程A和接收進(jìn)程B的工作流程如圖4-1所示。請(qǐng)?jiān)趫D4-1中的空(1)~(4)處填入正確的內(nèi)容。
【問(wèn)題2】
若系統(tǒng)中有多個(gè)發(fā)送進(jìn)程和接收進(jìn)程,進(jìn)程間的工作流程如圖4-2所示,其中空 (1)~(4)的內(nèi)容與圖4-1相同。發(fā)送進(jìn)程產(chǎn)生消息并順序地寫(xiě)入環(huán)形緩沖區(qū)BUFFER,接收者進(jìn)程順序地從BUFFER中取消息,且每條消息只能讀取一次。為了保證進(jìn)程間的正常通信,增加了信號(hào)量SA和SB。
①請(qǐng)說(shuō)明信號(hào)量SA和SB的物理意義,并在圖4-2中的空(5)和空(6)處填入正確的內(nèi)容。
②請(qǐng)從圖4-2的(a)~(1)中選擇四個(gè)位置正確地插入P(SA)、V(SA)、P(SB)、V(SB)。
【問(wèn)題3】
設(shè)系統(tǒng)中只有進(jìn)程A和進(jìn)程B,除了互斥地使用CPU和打印機(jī)R外,進(jìn)程A和B不使用其他資源。另外,進(jìn)程B的優(yōu)先級(jí)比A高,而進(jìn)程A先于B準(zhǔn)備好。進(jìn)程A和 B的執(zhí)行情況如圖4-3所示,其中粗實(shí)線表示進(jìn)程在執(zhí)行中,細(xì)實(shí)線表示打印機(jī)R在使用中(每個(gè)進(jìn)程具有三種狀態(tài):運(yùn)行、就緒和阻塞)。
請(qǐng)分別說(shuō)明進(jìn)程A和B在圖4-3所示的t1、t2、t3、t4時(shí)刻所處的狀態(tài);若是阻塞狀態(tài),請(qǐng)說(shuō)明阻塞原因。