省考軟件設計師考試模擬題及答案從業(yè)資格考試測試題卷_第1頁
省考軟件設計師考試模擬題及答案從業(yè)資格考試測試題卷_第2頁
省考軟件設計師考試模擬題及答案從業(yè)資格考試測試題卷_第3頁
省考軟件設計師考試模擬題及答案從業(yè)資格考試測試題卷_第4頁
省考軟件設計師考試模擬題及答案從業(yè)資格考試測試題卷_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 軟件設計師考試模擬題及答案-試題一 閱讀以下說明和數(shù)據(jù)流圖,回答問題1問題3?!菊f明】 學生住宿服務系統(tǒng)幫助學生在就學的緘市內(nèi)找到所需的住房,系統(tǒng)對出租的房屋信息、房主信息、需要租房的學生信息以及學生和房主的會面信息進行管理和維護。 房主信息包括姓名、地址、電話號碼以及系統(tǒng)分配的唯一身份標識D.和密碼;房屋信息包括房屋地址、類型(單間/套間)、適合住宿的人數(shù)、房租、房主的ID以及現(xiàn)在是否可以出租(例如由于裝修原因,需等到裝修后才可出租或者房屋已被租出)。每當房屋信息發(fā)生變化時,房主必須通知系統(tǒng),系統(tǒng)將更新房屋文件以便學生能夠獲得準確的可租用房屋信息。房主向系統(tǒng)中加入可租用的房屋信息時,須交納

2、一定的費用,由系統(tǒng)自動給出費用信息。房主可隨時更新房屋的各種屬性。 學生可通過系統(tǒng)查詢現(xiàn)有的可租用的房屋,但必須先在系統(tǒng)中注冊。學生信息包括姓名、現(xiàn)住址、電話號碼、出生日期、性別以及系統(tǒng)分配的唯一身份標識(1D.和密碼。若學生希望租用某房屋,則需要發(fā)出租房請求,請求中包含房屋的詳細信息,系統(tǒng)將安排學生與房主會面的時間和地點,并將會面信息通知學生和房主,會面信息包括會面時間、地點以及會面雙方的基本信息,系統(tǒng)將記錄會面信息。 學生住宿服務系統(tǒng)的頂層圖如圖1-1所示;學生住宿服務系統(tǒng)的第0層DFD圖如圖 1-2所示,其中,加工3的細化圖如圖1-3所示?!緮?shù)據(jù)流圖1-1】 【數(shù)據(jù)流圖1-2】【數(shù)據(jù)流圖

3、1-3】 1、【問題1】 (1)數(shù)據(jù)流圖1-1缺少了一條數(shù)據(jù)流(在圖1-2中也未給出該數(shù)據(jù)流),請給出此數(shù)據(jù)流的起點和終點,并采用說明中的詞匯給出此數(shù)據(jù)流名。 (2)數(shù)據(jù)流圖1-2中缺少了與“查詢房屋”加工相關(guān)的數(shù)據(jù)流,請指出此數(shù)據(jù)流的起點和終點。2、【問題2】 “安排會面”加工除需要寫入會面文件外,還需要訪問哪些文件?3、【問題3】 請補齊下列數(shù)據(jù)字典條目: 登錄信息=學生ID+密碼 注冊信息=_試題二 閱讀以下說明和表,回答問題1問題4?!菊f明】 某公司信息管理系統(tǒng)的需求分析和部分關(guān)系模式設計的結(jié)果描述如下。 1公司有多個部門,每個部門有一名負責人、一間辦公室、一部電話、多名職員,每個職員

4、最多屬于一個部門,負責人也是一名公司職員。 2公司職員的月工資大于等于1000元且小于等于8000元。 3數(shù)據(jù)庫的部分關(guān)系模式設計如下: 職員(職員號,職員姓名,月工資,部門號,辦公室,電話) 部門(部門號,部門名,負責人代碼,任職時間) 4“職員”和“部門”的關(guān)系示例分別如表2-1和表2-2所示?!颈?-1】“職員”關(guān)系 職員號職員姓名月工資部門號辦公室電話60801汪俊華10001A座201688312260802楊曉軍32001A座201688312260803王曉華43002B座202688312360804邢彥軍28002B座202688312360805呂靖原53003A座3016

5、88312460806蘆文峰32003A座301688312460807牟雪松28003A座301688312460808高亞南12004B座302688312560810周 黎 32004B座302688312560820姚應磊12004B座302688312560821程文馳32005B座303688312660836許俊坤0Null 【表2-2】 “部門”關(guān)系 部門號部門名負責人代碼任職時間1財務部608022001-8-52市場部608032002-6-33研發(fā)部608052002-6-34生產(chǎn)部1608102003-8-15生產(chǎn)部260821-6-34、【問題1】 根據(jù)上述說明,請給

6、出 (1)“職員”關(guān)系模式的主鍵和外鍵。 (2)“部門”關(guān)系模式的主鍵和外鍵。5、【問題2】 (1)用SQL定義“職員”關(guān)系模式,請在空缺處填入正確的內(nèi)容。 Create Table 職員 ( 職員號CHAR(5) (a) , 職員姓名CHAR(8), 月工資 NUMBER(4), 部門號 CHAR(1), 辦公室 CHAR(20), 電話 CHAR(8), (b) (部門號), CHECK (月工資=1000 AND月工資=8000); (2)針對人數(shù)大于等于2的部門創(chuàng)建視圖D_View(Dept,D_num,D_Totals, D_AvgPay),其中,Dept為部門號,D_num為部門人

7、數(shù),D_Totals為工資總數(shù),D_AvgPay為平均工資,請在空缺處填入正確的內(nèi)容。 Create View D_View (Dept,D_num,D_Totfls,D_AvgPay)As (Select部門號, (c) from 職員 (d) count(*)=2 WHERE 部門號 IS NOT NULL);6、【問題3】 對于表2-1、表2-2所示的“職員”和“部門”關(guān)系,請指出下列各行是否可以插入“職員”關(guān)系,為什么? 7、【問題4】 原來的“職員”關(guān)系模式存在什么問題?在不增加新關(guān)系模式的前提下,請給出修改后的“職員”和“部門”關(guān)系模式。試題三 閱讀以下說明和流程圖,從供選擇的答案

8、中選出應填入流程圖 (n) 處的字句寫在答題紙的對應欄內(nèi)?!菊f明】 一個印刷電路板的布線區(qū)域可分成nm個方格,如圖3-1(a)所示,現(xiàn)在需要確定電路板中給定的兩個方格的中心點之間的最短布線方案。電路只能沿水平或垂直方向布線,如圖3-1(b)中虛線所示。為了避免線路相交,應將已布過線的方格做封鎖標記,其他線路不允許穿過被封鎖的方格。【圖3-1】 設給定印刷電路板的起始方格x與目的方格y尚未布線,求這兩個方格間最短布線方案的基本思路是:從起始方格x開始,先考查距離起始方格距離為1的可達方格并用一個路徑長度值標記,然后依次考查距離為2,3,的可達方格,直到距離為k的某一個可達方格就是目標方格y時為止

9、,或者由于不存在從x到y(tǒng)的布線方案而終止。布線區(qū)域中的每一個方格與其相鄰的上、下、左、右四個方格之間的距離為1,依次沿下、右、上、左這四個方向考查,并用一個隊列記錄可達方格的位置。表3-1給出了沿這四個方向前進1步時相對于當前方格的相對偏移量。【表3-1】 搜索順序i方向行偏移量列偏移量0下101右012上-103左0-1 例如,設印刷電路板的布線區(qū)域可劃分為一個68的方格陣列,如圖3-2(a)所示,其中陰影表示已封鎖方格。從起始方格x(位置3,2,標記為0)出發(fā),按照下、右、上、左的方向依次考查,所標記的可達方格如圖3-2(a)所示,目標方格為y(位置4,7,標記為10),相應的最短布線路徑

10、如圖3-2(b)虛線所示。 【圖3-2】 圖3-3和圖3-4所示的流程圖即利用上述思路,在電路板方格陣列中進行標記,圖 【圖3-3】 【圖3-4】 中使用的主要符號如表3-2所示。在圖3-4中,設置電路板初始格局即將可布線方格置為數(shù)值-1、已布線方格(即封鎖方格)置為-9。設置方格陣列“圍墻”的目的是省略方格位置的邊界條件判定,方法是在四周附加方格,并將其標記為-9(與封鎖標記相同)。 【表3-2】 符號含義Grid 全局二維數(shù)組GridN+2,M+2,表示電咱板方格陣列,初始時數(shù)組元素Gridi,j的值為-1表示當前方格可布線,為-9表示當前方格不可布線。offset一維數(shù)組offset4:

11、offseti(0i3)的分量為r(行偏移量)和c(列偏移量),按照表4-3的內(nèi)容設置其值。StartPos、EndPos、CurPos、T分別表示起始方格、目標方格、當前方格和臨時方格,其位置用分量row和col確定。Q.insert將方格s的位置信息加入隊列。Q.delete刪除非空隊列的隊頭元素,并返回該元素。Q.empty若隊列Q為空,則返回true;否則返回false。8、供選擇的答案 AFoundtrue BFound=true CT=EndPos DQinsert(T) ETQ.delete() FCurPos=EndPos Gi4 HCurPosQdelete() IGridT

12、.row,T.col=-1 JGridT.row,T.col-1試題四 閱讀以下說明和C程序,將應填入 (n) 處的字句寫在答題紙的對應欄內(nèi)?!菊f明】 假設需要將N個任務分配給N個工人同時去完成,每個人都能承擔這N個任務, 但費用不同。下面的程序用回溯法計算總費用最小的一種工作分配方案,在該方案中,為每個人分配1個不同的任務。 程序中,N個任務從0開始依次編號,N個工人也從0開始依次編號,主要的變量說明如下: cij:將任務i分配給工人j的費用; taski:值為0表示任務i未分配,值為j表示任務i分配給工人j; workerk:值為0表示工人k未分配任務,值為1表示工人k已分配任務; min

13、cost:最小總費用。9、【C程序】 #includestdio.h #define N 8 /*N表示任務數(shù)和工人數(shù)*/ int cNN; unsigned int mincost=65535; /*設置min的初始值,大于可能的總費用*/ int taskN,tempN,workerIN; void Plan(int k,unsigned Int cost) int i; if ( (1) &costmincost) mincost=cost; for (i=0;iN;i+) tempi:taski; else for(i=0;iN;i+) /*分配任務k*/ if (workeri0&

14、(2) ) workeri=1; taskk= (3) ; Plan( (4) ,cost+cki); (5) ; taskk=0; /*if*/ /*Plan*/ void main() int i,j; for (i=0;iN;i+) /*設置每個任務由不同工人承擔時的費用及全局數(shù)組的初值*/ workeri=0;taski=0; tempi=0; for(j=0;jN;j+) scanf (%d,&cij); Plan (0,0); /*從任務0開始分配*/ printf(n最小費用=%dn,mincost); for(i二0;iN;i+) pnntf(Task%d iB assigne

15、d toWorker%dn,i,tempi); /*main*/試題五 閱讀以下說明和C+代碼,將應填入 (n) 處的字句寫在答題紙的對應欄內(nèi)?!菊f明】 某繪圖系統(tǒng)存在Point、Line、Square三種圖元,它們具有Shape接口,圖元的類圖關(guān)系如圖5-1所示?,F(xiàn)要將Circle圖元加入此繪圖系統(tǒng)以實現(xiàn)功能擴充。已知某第三方庫已經(jīng)提供了XCircle類,且完全滿足系統(tǒng)新增的Circle圖元所需的功能,但XCircle不是由Shape派生而來,它提供的接口不能被系統(tǒng)直接使用。代碼5-1既使用了XCircle又遵循了Shape規(guī)定的接口,既避免了從頭,開發(fā)一個新的Circle類,又可以不修改繪

16、圖系統(tǒng)中已經(jīng)定義的接口。代碼5-2根據(jù)用戶指定的參數(shù)生成特定的圖元實例,并對之進行顯示操作。 繪圖系統(tǒng)定義的接口與XCircle提供的顯示接口及其功能如下表所示: ShapeXCircle功能display()displayIt()顯示圖元【圖5-1】 10、【代碼5-1】 class Circle:public (1) pfivme: (2) m_circle; public: void display() m_circle (3) ; ;【代碼5-2】 class Factory public: (4) getShapeInstance (int type) /生成特定類實例 switch

17、 (type) case 0:rcturn new Point; Case l:return new Rectangle; case 2: return new Line; case 3: return new Circle; default: return NULL; void main (int argo, char *argv) if (argc!=2) cout error parameters ! endl; return; inttype=atoi (argv1) ; Factory factory; Shape *s; s = factory. (5) : if (s=NULL)

18、 cout Error get the instance ! endl; return; s-display () ; (6) ; return;試題六 閱讀以下說明和Java代碼,將應填入 (n) 處的字句寫在答題紙的對應欄內(nèi)?!菊f明】 某繪圖系統(tǒng)存在Point、Line、Square三種圖元,它們具有Shape接口,圖元的類圖關(guān)系如圖6-1所示。現(xiàn)要將Circle圖元加入此繪圖系統(tǒng)以實現(xiàn)功能擴充。已知某第三方庫已經(jīng)提供了XCircle類,且完全滿足系統(tǒng)新增的Circle圖元所需的功能,但XCircle不是由Shape派生而來,它提供的接口不能被系統(tǒng)直接使用。代碼6-1既使用了XCircle

19、又遵循了Shape規(guī)定的接口,既避免了從頭開發(fā)一個新的Circle類,又可以不修改繪圖系統(tǒng)中已經(jīng)定義的接口。代碼6-2根據(jù)用戶指定的參數(shù)生成特定的圖元實例,并對之進行顯示操作。 繪圖系統(tǒng)定義的接口與XCircle提供的顯示接口及其功能如下表所示: ShapeXCircle功能display()displayIt()顯示圖元【圖6-1】11、【代碼6-1】 class Circle (1) private (2) pxc; public Circle()pxc=new (3) ; public void display() pxc (4) ; 【代碼6-2】 public class Facto

20、ry public (5) getShapeInstance(int type) /生成特定類實例 switch(type) case 0: return new Point ( ); case 1: return new Rectangle ( ) ; case 2: return new Line ( ) ; case 3: return new Circle ( ) ; default: return null; public class App public static void main (String argv ) if (argv. length != l) System. o

21、ut.println (error parameters !); return; inttype= (new Integer (argv0) .intValue ( Factory factory = new Factory ( ) ; Shape s; s=factory, (6) if (s=null) System.out.println ( Error get instance ! ) return; s.display () ; return; 試題七 閱讀以下說明和Visual Basic代碼,將應填入 (n) 處的字句寫在答題紙的對應欄內(nèi)。【說明】 某繪圖系統(tǒng)定義了一個抽象類IS

22、hape,現(xiàn)有三個類CPoint、CLine和CCircle,它們都具有IShape界面。相應的類圖關(guān)系如圖7-1所示。 已知某第三方庫已經(jīng)提供了XCircle類,且完全滿足CCircle圖元顯示時所需的功能。代碼7-1是抽象類IShape的類模塊內(nèi)容,代碼7-2實現(xiàn)了類CCircle的IShape界面,并使用了XCircle提供的顯示功能。 XCimle提供的顯示功能方法接口為displayIt?!緢D7-1】12、【代碼7-1】 Public Color As Long Sub draw() 方法體不包括可執(zhí)行語句 End Sub Sub move(stepx As Single,stepy

23、 As Smgle) 方法體不包括可執(zhí)行語句 End Sub 【代碼7-2】 (1) Private color As Long 其他定義省略 Private bridged As (2) Private Sub Class_Initialize ( ) Set bridged= (3) End Sub Private Property (4) ( )As Long IShape_Color = color End Property Private Property (5) (ByVal newColor As Long) color=newColor End Property Private

24、 Sub IShape_draw ( ) 使用XCirele提供的顯示功能 (6) End Sub Private Sub IShape_move (stepx As Single, stepy As Single) 省略描述 End Sub答案: 試題一 閱讀以下說明和數(shù)據(jù)流圖,回答問題1問題3?!菊f明】 學生住宿服務系統(tǒng)幫助學生在就學的緘市內(nèi)找到所需的住房,系統(tǒng)對出租的房屋信息、房主信息、需要租房的學生信息以及學生和房主的會面信息進行管理和維護。 房主信息包括姓名、地址、電話號碼以及系統(tǒng)分配的唯一身份標識(D)和密碼;房屋信息包括房屋地址、類型(單間/套間)、適合住宿的人數(shù)、房租、房主的I

25、D以及現(xiàn)在是否可以出租(例如由于裝修原因,需等到裝修后才可出租或者房屋已被租出)。每當房屋信息發(fā)生變化時,房主必須通知系統(tǒng),系統(tǒng)將更新房屋文件以便學生能夠獲得準確的可租用房屋信息。房主向系統(tǒng)中加入可租用的房屋信息時,須交納一定的費用,由系統(tǒng)自動給出費用信息。房主可隨時更新房屋的各種屬性。 學生可通過系統(tǒng)查詢現(xiàn)有的可租用的房屋,但必須先在系統(tǒng)中注冊。學生信息包括姓名、現(xiàn)住址、電話號碼、出生日期、性別以及系統(tǒng)分配的唯一身份標識(1D)和密碼。若學生希望租用某房屋,則需要發(fā)出租房請求,請求中包含房屋的詳細信息,系統(tǒng)將安排學生與房主會面的時間和地點,并將會面信息通知學生和房主,會面信息包括會面時間、地

26、點以及會面雙方的基本信息,系統(tǒng)將記錄會面信息。 學生住宿服務系統(tǒng)的頂層圖如圖1-1所示;學生住宿服務系統(tǒng)的第0層DFD圖如圖 1-2所示,其中,加工3的細化圖如圖1-3所示。【數(shù)據(jù)流圖1-1】 【數(shù)據(jù)流圖1-2】 【數(shù)據(jù)流圖1-3】 1、(1)起點:學生住宿服務系統(tǒng) 終點:房主 數(shù)據(jù)流名:費用信息 或 交納的費用 或費用 (2)起點:房屋文件 終點:查詢房屋 或4解析 問題1:(1)題目中明確地說明了“房主向系統(tǒng)中加入可租用的房屋信息時,需交納一定的費用,由系統(tǒng)自動給出費用信息”,但是在數(shù)據(jù)流圖中卻沒有相關(guān)的數(shù)據(jù)流。所以,需要補齊的數(shù)據(jù)流為: 起點:學生住宿服務系統(tǒng) 終點:房主 數(shù)據(jù)流名:費用

27、信息 或 交納的費用 或費用 (2)查詢房屋需要讀取房屋文件,所以數(shù)據(jù)流的起點和終點為; 起點:房屋文件 終點:查詢房屋 或42、房主文件 學生文件解析 問題2:題目中說明了“將會面信息通知學生和房主,會面信息包括會面時間、地點以及會面雙方的基本信息,系統(tǒng)將記錄會面信息”。此處要注意會面雙方的基本信息也被包含在會面信息中了。所以,安排會面需要查詢學生文件和房主文件以獲得雙方的基本信息3、姓名+現(xiàn)住址+電話號碼+出生日期+性別解析 問題3:根據(jù)數(shù)據(jù)流圖4-2中的加工3以及數(shù)據(jù)流圖4-3加工3的細化圖可以看出,學生信息包含了登錄信息和注冊信息,登錄信息為學生ID和密碼,所以學生信息中除去登錄信息就

28、是注冊信息了,因此,注冊信息為:姓名+現(xiàn)住址+電話號碼+出生日期+性別試題二 閱讀以下說明和表,回答問題1問題4?!菊f明】 某公司信息管理系統(tǒng)的需求分析和部分關(guān)系模式設計的結(jié)果描述如下。 1公司有多個部門,每個部門有一名負責人、一間辦公室、一部電話、多名職員,每個職員最多屬于一個部門,負責人也是一名公司職員。 2公司職員的月工資大于等于1000元且小于等于8000元。 3數(shù)據(jù)庫的部分關(guān)系模式設計如下: 職員(職員號,職員姓名,月工資,部門號,辦公室,電話) 部門(部門號,部門名,負責人代碼,任職時間) 4“職員”和“部門”的關(guān)系示例分別如表2-1和表2-2所示?!颈?-1】“職員”關(guān)系 職員號

29、職員姓名月工資部門號辦公室電話60801汪俊華10001A座201688312260802楊曉軍32001A座201688312260803王曉華43002B座202688312360804邢彥軍28002B座202688312360805呂靖原53003A座301688312460806蘆文峰32003A座301688312460807牟雪松28003A座301688312460808高亞南12004B座302688312560810周 黎 32004B座302688312560820姚應磊12004B座302688312560821程文馳32005B座303688312660836許俊坤0

30、Null 【表2-2】 “部門”關(guān)系 部門號部門名負責人代碼任職時間1財務部608022001-8-52市場部608032002-6-33研發(fā)部608052002-6-34生產(chǎn)部1608102003-8-15生產(chǎn)部260821-6-34、(1)主鍵:職員號 外鍵:部門號 (2)主鍵:部門號,或部門名 外鍵:負責人代碼解析 問題1:本試題中,“部門”關(guān)系的主鍵為部門號,“職員”關(guān)系的主鍵為職員號。在“部門”關(guān)系中,部門由于負責人也是來自職員關(guān)系,所以負責人代碼是外鍵。在“職員”關(guān)系中,部門號是“部門”關(guān)系的主鍵,因此部門號是外鍵。根據(jù)題意,“職員”和“部門”的關(guān)系模式可表示如下: 職員(職員號,

31、職員姓名,月工資,部門號,辦公室,電話) 部門(部門號,部門名,任職時間)5、(a)PRIMARY KEY (b)FOREIGNKEY (部門號) REFERENCES部門 (c)count(*),Sum (月工資),Avg(月工資) (d)GROUP by部門號HAVING 注:以上答案中的單詞可以小寫。解析 問題2:用SQL定義關(guān)系模式的一個非常重要的問題是完整性控制。完整性控制應具有三方面的功能:定義功能、檢測功能、處理功能(一旦發(fā)現(xiàn)違背了完整性約束條件,采取相關(guān)的動作來保證數(shù)據(jù)的完整性)。數(shù)據(jù)庫中最重要的約束是聲明一個或一組屬性形成關(guān)系的鍵。鍵的約束在SQL的CREATE TABLE命

32、令中聲明。在關(guān)系系統(tǒng)中,最重要的完整性約束條件是實體完整性和參照完整性。 1實體完整性定義 在關(guān)系中只能有一個主鍵。聲明主鍵有兩種方法: 將PRIMARY KEY保留字加在屬性類型之后; 在屬性列表中引入一個新元素,該元素包含保留字PRIMARY KEY和用圓括號括起的形成該鍵的屬性或?qū)傩越M列表。 2參照完整性 參照完整性定義格式如下: FOREIGN KEY (屬性名) REFERENCES 表名(屬性名) ON DELETECASCADEt|SET NULL 參照完整性通過使用保留字FOREIGN KEY定義哪些列為外碼;REFERENCES指明外鍵對應于哪個表的主鍵;ON DELETE

33、CASCADE指明刪除被參照關(guān)系的元組時,同時刪除參照關(guān)系中的元組;SETNULL表示置為空值方式。 本試題中,職員關(guān)系的主鍵為職員號,部門關(guān)系的主鍵為部門號,這樣,職員關(guān)系中的部門號是外鍵。其中,職員關(guān)系的主鍵職員號可采用如下兩種方式定義: 職員號CHAR(5)PRIMARY KEY或者是PRIMARY KEY (職員號) 根據(jù)分析問題2(1)職員關(guān)系的SQL定義如下: Create Table職員 ( 職員號CHAR (5) PRIMARY KEY, 職員姓名CHAR(8), 月工資 NUMBER(4), 部門號 CHAR(1), 辦公室 CHAR(20), 電話 CHAR(8), FOR

34、EIGN KEY (部門號) REFERENCES 部門(部門號), 問題2(2)的關(guān)鍵在于要對職員關(guān)系采用分組語句按部門分類,并統(tǒng)計。如果統(tǒng)計的元組個數(shù)大于等于2,則在結(jié)果集中。根據(jù)分析,針對人數(shù)大于等于2的部門創(chuàng)建視圖DView(Dept,D_num,D_Tomis,D_AvgPay)如下: Create View D View(Dept,D num,D Totals,D AvgPay)As (Select 部門號,count (*),Sum(月工資),Avg(月工資) from 職員 GROUP by部門號 HAVING count(*)=2 WHERE 部門號 IS NOT NULL)

35、;6、(1)該行不能插入“職員”關(guān)系,它違反了用戶定義完整性中月工資的取值范圍必須大于等于1000元,小于等于8000元。(1分) (2)該行不能插入“職員”關(guān)系,因為職員號“60802”在表2-1中已存在,違反了實體完整性中主鍵必須唯一區(qū)分關(guān)系中的每一個屬性。 (3)該行可以插入“職員”關(guān)系,盡管部門號、電話和辦公室為空,但是它表示該職員沒有分配到某個部門。解析 問題3:本題主要考查完整性定義的約束性。下表是待將插入的記錄組。 (1)由于在職員表中的定義中,職員的月工資的取值范圍必須大于等于1000元,小于等于8000元。該行不能插入“職員”關(guān)系,它違反了用戶定義完整性,該條記錄不能插入。

36、(2)該元組不能插入“職員”關(guān)系,因為職員號“60802”在職員表中已存在,違反了實體完整性中主鍵必須唯一區(qū)分關(guān)系中的每一個屬性。 (3)該行可以插入“職員”關(guān)系,盡管部門號、電話和辦公室為空,但是它表示該職員沒有分配到某個部門7、“職員”關(guān)系模式主要的問題是: 數(shù)據(jù)冗余問題。因為某部門的職員人數(shù)有多少,其辦公室和電話將要重復存入多少。 數(shù)據(jù)修改不一致問題。因為某部門的辦公室變了可能會導致某些職員的辦公室屬性修改了,某些職員的未修改。 將關(guān)系模式修改為: 職員(職員號,職員姓名,月工資,部門號) 部門(部門號,部門名,負責人代碼,任職時間,辦公室,電話)解析 問題4:此題考察的是查詢效率的問題

37、。在涉及相關(guān)查詢的某些情形中,構(gòu)造臨時關(guān)系可以提高查詢效率。 原來的“職員”關(guān)系模式主要的問題是數(shù)據(jù)冗余和數(shù)據(jù)修改不一致問題。例如,某部門的職員人數(shù)有100個,其辦公室和電話的屬性值將要重復存入100次。如果某部門的辦公室變了,可能會導致有些職員的辦公室屬性值修改了,另一些職員的辦公室屬性值未修改。根據(jù)題意,每個部門有一名負責人、一間辦公室、一部電話,因此,為了解決冗余和數(shù)據(jù)修改不一致的問題,應該將職員關(guān)系模式中的屬性“辦公室”和“電話”放到部門關(guān)系模式中,這樣修改后的關(guān)系模式為: 職員(職員號,職員姓名,月工資,部門號) 部門(部門號,部門名,負責人代碼,任職時間,辦公室,電話)試題三 閱讀

38、以下說明和流程圖,從供選擇的答案中選出應填入流程圖 (n) 處的字句寫在答題紙的對應欄內(nèi)?!菊f明】 一個印刷電路板的布線區(qū)域可分成nm個方格,如圖3-1(a)所示,現(xiàn)在需要確定電路板中給定的兩個方格的中心點之間的最短布線方案。電路只能沿水平或垂直方向布線,如圖3-1(b)中虛線所示。為了避免線路相交,應將已布過線的方格做封鎖標記,其他線路不允許穿過被封鎖的方格?!緢D3-1】 設給定印刷電路板的起始方格x與目的方格y尚未布線,求這兩個方格間最短布線方案的基本思路是:從起始方格x開始,先考查距離起始方格距離為1的可達方格并用一個路徑長度值標記,然后依次考查距離為2,3,的可達方格,直到距離為k的某

39、一個可達方格就是目標方格y時為止,或者由于不存在從x到y(tǒng)的布線方案而終止。布線區(qū)域中的每一個方格與其相鄰的上、下、左、右四個方格之間的距離為1,依次沿下、右、上、左這四個方向考查,并用一個隊列記錄可達方格的位置。表3-1給出了沿這四個方向前進1步時相對于當前方格的相對偏移量。【表3-1】 搜索順序i方向行偏移量列偏移量0下101右012上-103左0-1 例如,設印刷電路板的布線區(qū)域可劃分為一個68的方格陣列,如圖3-2(a)所示,其中陰影表示已封鎖方格。從起始方格x(位置3,2,標記為0)出發(fā),按照下、右、上、左的方向依次考查,所標記的可達方格如圖3-2(a)所示,目標方格為y(位置4,7,

40、標記為10),相應的最短布線路徑如圖3-2(b)虛線所示。 【圖3-2】 圖3-3和圖3-4所示的流程圖即利用上述思路,在電路板方格陣列中進行標記,圖 【圖3-3】 【圖3-4】 中使用的主要符號如表3-2所示。在圖3-4中,設置電路板初始格局即將可布線方格置為數(shù)值-1、已布線方格(即封鎖方格)置為-9。設置方格陣列“圍墻”的目的是省略方格位置的邊界條件判定,方法是在四周附加方格,并將其標記為-9(與封鎖標記相同)。 【表3-2】 符號含義Grid 全局二維數(shù)組GridN+2,M+2,表示電咱板方格陣列,初始時數(shù)組元素Gridi,j的值為-1表示當前方格可布線,為-9表示當前方格不可布線。of

41、fset一維數(shù)組offset4:offseti(0i3)的分量為r(行偏移量)和c(列偏移量),按照表4-3的內(nèi)容設置其值。StartPos、EndPos、CurPos、T分別表示起始方格、目標方格、當前方格和臨時方格,其位置用分量row和col確定。Q.insert將方格s的位置信息加入隊列。Q.delete刪除非空隊列的隊頭元素,并返回該元素。Q.empty若隊列Q為空,則返回true;否則返回false。8、GridT.row,T.col=-1 (2)T=EndPos (3)Q.insert(T) (4)Foundtrue (5)CurPosQ.delete()解析 根據(jù)題目中的說明,設

42、給定印刷電路板的起始方格x與目的方格y尚未布線,求這兩個方格間最短布線方案的基本思路是:從起始方格x開始,先考查距離起始方格距離為1的可達方格并用一個路徑長度值標記,然后依次考查距離為2、3、的可達方格,直到距離為k的某一個可達方格就是目標方格y時為止,或者由于不存在從x到y(tǒng)的布線方案而終止。布線區(qū)域中的每一個方格與其相鄰的上、下、左、右四個方格之間的距離為1,依次沿下、右、上、左這四個方向考查,并用一個隊列記錄可達方格的位置。該方法體現(xiàn)了廣度優(yōu)先搜索策略,以題中的圖4-5為例,根結(jié)點表示起始方格的位置 (3,2),孩子結(jié)點表示一步可達的位置,其過程可用下圖所示的樹結(jié)構(gòu)表示。 按照廣度優(yōu)先的策

43、略,先將起始位置結(jié)點加入隊列,此后在隊列不為空的情況下,每次從隊列中取出一個結(jié)點(元素出隊列),按照下、右、上、左的方向依次擴展并將擴展所得的結(jié)點加入隊列,重復這個過程,直到目標位置結(jié)點出現(xiàn),或隊列為空還沒有出現(xiàn)目標位置時為止。對于上例,根結(jié)點3,2出隊列后,擴展出結(jié)點4,2、3,3、2, 2、3,1)并依次加入隊列,然后由14,2擴展出5,2、4,3、4,1),3,3擴展出 3,4),2,2擴展出2,1)、1,2,依次類推,當擴展出目標結(jié)點4,7時,路徑長度為10。 在流程圖3-4描述的上述處理過程中,滿足條件i4且Found=False時處理沿4個方向進行考查并擴展結(jié)點的操作,即 T.ro

44、w=CurPos.row+offseti.r T.col=CurPos.col+offseti.c) 但是方格位置T.row,T.col有可能已經(jīng)封鎖(標記為-9),所以在對可擴展結(jié)點(標記為 -1)進行路徑長度標記時應判斷是否可以標記,因此空(1)處應對GridT.row,T.col的標志進行判斷,根據(jù)流程中的處理邏輯,顯然應填入“GridT.row,T.col=-1。當?shù)玫揭粋€擴展結(jié)點時(GridT.row,T.colGridCurPos.row,CurPos.col+1),應判斷目標結(jié)點是否出現(xiàn),即擴展出的結(jié)點T是否等于目標結(jié)點EndPos,若是,則可結(jié)束擴展操作 (Found=True

45、),否則,將結(jié)點T加入隊列,因此空(2)處填入“T=EndPos、空(3)處填入“QinsertT)”。顯然空(4)處表示找到目標方格時的結(jié)束條件,根據(jù)流程中的處理邏輯應填入“Foundtrue”。當尚未找到目標位置結(jié)點而隊列又不為空時,應從隊列中取出一個新的結(jié)點作為當前結(jié)點進行考查和擴展,因此空(5)處填入“CurPosO.delete()”。試題四 閱讀以下說明和C程序,將應填入 (n) 處的字句寫在答題紙的對應欄內(nèi)?!菊f明】 假設需要將N個任務分配給N個工人同時去完成,每個人都能承擔這N個任務, 但費用不同。下面的程序用回溯法計算總費用最小的一種工作分配方案,在該方案中,為每個人分配1個

46、不同的任務。 程序中,N個任務從0開始依次編號,N個工人也從0開始依次編號,主要的變量說明如下: cij:將任務i分配給工人j的費用; taski:值為0表示任務i未分配,值為j表示任務i分配給工人j; workerk:值為0表示工人k未分配任務,值為1表示工人k已分配任務; mincost:最小總費用。9、k=N,或k=N,或其等價形式 (2)cost+ekimincost,或其等價形式 (3)i (4)k+1 (5)workeri=0,或其等價形式解析 首先為函數(shù)Plan()代碼加上行號,以便說明。 1:void Plan(ihtk,unsigned int cost) 2:int i;

47、3: if( (1) &costmincost) 4: mincost=cost; 5: for(i=0;iN;i+) tempi=taski; 6: 7: else 8: for(i=0;iN;i+) /*分配任務k*/ 9: if (workeri0& (2) ) 10: workeri=1; taskk= (3) ; 11: Plan( (4) ,cost+cki); 12: (5) ; taskk=0; 13: /*if*/ 14: /*else*/ 15:/*Plan*/ 由注釋可知,在Plan(k,cost)中,以k表示任務編號、cost表示費用。根據(jù)題目中的說明,程序用回溯法計算

48、總費用最小的一種工作分配方案,因此在得到每一個分配方案時需要和先前已經(jīng)得到的分配方案中的最小費用進行比較。由于需要將N個任務分配給N個工人,以任務為序時,最后一個任務(第N-1個任務)分配之后便得到一種方案,因此第3行代碼的空(1)處填入“k=N或k=N”。 顯然,在分配任務k時,需要考查所有的工人(第8行代碼),此時若工人i尚未接收任務(workeri=0),并且將任務k分配給工人i不會超出前面某個方案的費用,則可將任務k分配給他(taskk=i,然后開始分配第k+1個任務?;厮輹r則需要將分配工人i的任務撤銷,以便考查其他的分配方案。試題五 閱讀以下說明和C+代碼,將應填入 (n) 處的字句

49、寫在答題紙的對應欄內(nèi)。【說明】 某繪圖系統(tǒng)存在Point、Line、Square三種圖元,它們具有Shape接口,圖元的類圖關(guān)系如圖5-1所示。現(xiàn)要將Circle圖元加入此繪圖系統(tǒng)以實現(xiàn)功能擴充。已知某第三方庫已經(jīng)提供了XCircle類,且完全滿足系統(tǒng)新增的Circle圖元所需的功能,但XCircle不是由Shape派生而來,它提供的接口不能被系統(tǒng)直接使用。代碼5-1既使用了XCircle又遵循了Shape規(guī)定的接口,既避免了從頭,開發(fā)一個新的Circle類,又可以不修改繪圖系統(tǒng)中已經(jīng)定義的接口。代碼5-2根據(jù)用戶指定的參數(shù)生成特定的圖元實例,并對之進行顯示操作。 繪圖系統(tǒng)定義的接口與XCir

50、cle提供的顯示接口及其功能如下表所示: ShapeXCircle功能display()displayIt()顯示圖元【圖5-1】 10、(1)Shape (2)XCircle (3)displayIt() (4)Shape* (5)getShapeInstance(type) (6)delete s解析 題目中明確要求Circle具有Shape接口,所以,第1空應填上Shape。因為要重用 XCircle類而不用從頭開發(fā)一個新的Circle類,所以,凡是Circle類實現(xiàn)Shape的接口時都應調(diào)用相應的XCircle類提供的方法。因此第2空應填上Xcircle,第3空應填上 displayI

51、t()。閱讀主程序,第5空調(diào)用factory對象的方法,而類Factory類只有一個方法為getShapeInstanee,所以第5空應填入getShapeInstance,參數(shù)為用戶運行程序時指定的參數(shù),程序中為type參數(shù),表明需要生成哪一種類型的對象。同樣,因為s是Shape*類型,所以,getShapeInstance(type)的返回值類型為shape*,因此第4空應填入Shape*;程序退出前需要釋放指針s所占用的內(nèi)存空間,所以第6空應填寫delete s。試題六 閱讀以下說明和Java代碼,將應填入 (n) 處的字句寫在答題紙的對應欄內(nèi)?!菊f明】 某繪圖系統(tǒng)存在Point、Line、Square三種圖元,它們具有Shape

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論