2022年上半年軟件設(shè)計師下午試卷_第1頁
2022年上半年軟件設(shè)計師下午試卷_第2頁
2022年上半年軟件設(shè)計師下午試卷_第3頁
2022年上半年軟件設(shè)計師下午試卷_第4頁
2022年上半年軟件設(shè)計師下午試卷_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

精品文檔-下載后可編輯年上半年軟件設(shè)計師下午試卷2022年上半年軟件設(shè)計師下午試卷

1.試題一閱讀下列說明,回答問題1和問題2,將解答填入答題紙的對應(yīng)欄內(nèi)?!菊f明】假設(shè)某大型商業(yè)企業(yè)由商品配送中心和連鎖超市組成,其中商品配送中心包括采購、財務(wù)、配送等部門。為實現(xiàn)高效管理,設(shè)計了商品配送中心信息管理系統(tǒng),其主要功能描述如下:1.系統(tǒng)接收由連鎖超市提出的供貨請求,并將其記錄到供貨請求記錄文件。2.在接到供貨請求后,從商品庫存記錄文件中進行商品庫存信息查詢。如果庫存滿足供貨請求,則給配送處理發(fā)送配送通知;否則,向采購部門發(fā)出缺貨通知。3.配送處理接到配送通知后,查詢供貨請求記錄文件,更新商品庫存記錄文件,并向配送部門發(fā)送配送單,在配送貨品的同時記錄配送信息至商品配送記錄文件。4.采購部門接到缺貨通知后,與供貨商洽談,進行商品采購處理,合格商品入庫,并記錄采購清單至采購清單記錄文件、向配送處理發(fā)出配送通知,同時通知財務(wù)部門給供貨商支付貨款。該系統(tǒng)采用結(jié)構(gòu)化方法進行開發(fā),得到待修改的數(shù)據(jù)流圖(如圖1-1所示)。【問題1】(8分)使用【說明】中的詞語,給出圖1-1中外部實體E1至E4的名稱和數(shù)據(jù)存儲D1至D4的名稱?!締栴}2】(7分)圖1-1中存在四處錯誤數(shù)據(jù)流,請指出各自的起點和終點;若將上述四條錯誤數(shù)據(jù)流刪除,為保證數(shù)據(jù)流圖的正確性,應(yīng)補充三條數(shù)據(jù)流,請給出所補充數(shù)據(jù)流的起點和終點。(起點和終點請采用數(shù)據(jù)流圖1-1中的符號或名稱)[15分]

2.試題二(15分)閱讀下列說明,回答問題1至問題3,將解答填入答題紙的對應(yīng)欄內(nèi)?!菊f明】某集團公司擁有多個大型連鎖商場,公司需要構(gòu)建一個數(shù)據(jù)庫系統(tǒng)以方便管理其業(yè)務(wù)運作活動?!拘枨蠓治鼋Y(jié)果】1.商場需要記錄的信息包括商場編號(編號唯一),商場名稱,地址和聯(lián)系電話。某商場信息如表2-1所示。2.每個商場包含有不同的部門,部門需要記錄的信息包括部門編號(集團公司分配),部門名稱,位置分布和聯(lián)系電話。某商場的部門信息如表2-2所示。3.每個部門雇用多名員工處理日常事務(wù),每名員工只能隸屬于一個部門(新進員工在培訓(xùn)期不隸屬于任何部門)。員工需要記錄的信息包括員工編號(集團公司分配),姓名,崗位,電話號碼和工資。員工信息如表2-3所示。4.每個部門的員工中有一名是經(jīng)理,每個經(jīng)理只能管理一個部門,系統(tǒng)需要記錄每個經(jīng)理的任職時間。【概念模型設(shè)計】根據(jù)需求階段收集的信息,設(shè)計的實體聯(lián)系圖和關(guān)系模式(不完整)如下:【關(guān)系模式設(shè)計】商場(商場編號,商場名稱,地址,聯(lián)系電話)部門(部門編號,部門名稱,位置分布,聯(lián)系電話,(a))員工(員工編號,員工姓名,崗位,電話號碼,工資,(b))經(jīng)理((c),任職時間)【問題1】(6分)根據(jù)問題描述,補充四個聯(lián)系,完善圖2-1的實體聯(lián)系圖。聯(lián)系名可用聯(lián)系1、聯(lián)系2、聯(lián)系3和聯(lián)系4代替,聯(lián)系的類型分為1:1、1:n和m:n?!締栴}2】(6分)根據(jù)實體聯(lián)系圖,將關(guān)系模式中的空(a)~(c)補充完整,并分別給出部門、員工和經(jīng)理關(guān)系模式的主鍵和外鍵?!締栴}3】(3分)為了使商場有緊急事務(wù)時能聯(lián)系到輪休的員工,要求每位員工必須且只能登記一位緊急聯(lián)系人的姓名和聯(lián)系電話,不同的員工可以登記相同的緊急聯(lián)系人。則在圖2-1中還需添加的實體是(1),該實體和圖2-1中的員工存在(2)聯(lián)系(填寫聯(lián)系類型)。給出該實體的關(guān)系模式。[15分]

3.試題三(共15分)閱讀下列說明和圖,回答問題1至問題3,將解答填入答題紙的對應(yīng)欄內(nèi)?!菊f明】某銀行計劃開發(fā)一個自動存提款機模擬系統(tǒng)(ATMSystem)。系統(tǒng)通過讀卡器(CardReader)讀取ATM卡;系統(tǒng)與客戶(Customer)的交互由客戶控制臺(CustomerConsole)實現(xiàn);銀行操作員(Operator)可控制系統(tǒng)的啟動(SystemStartup)和停止(SystemShutdown);系統(tǒng)通過網(wǎng)絡(luò)和銀行系統(tǒng)(Bank)實現(xiàn)通信。當讀卡器判斷用戶已將ATM卡插入后,創(chuàng)建會話(Session)。會話開始后,讀卡器進行讀卡,并要求客戶輸入個人驗證碼(PIN)。系統(tǒng)將卡號和個人驗證碼信息送到銀行系統(tǒng)進行驗證。驗證通過后,客戶可從菜單選擇如下事務(wù)(Transaction):1.從ATM卡賬戶取款(Withdraw);2.向ATM卡賬戶存款(Deposit);3.進行轉(zhuǎn)賬(Transfer);4.查詢(Inquire)ATM卡賬戶信息。一次會話可以包含多個事務(wù),每個事務(wù)處理也會將卡號和個人驗證碼信息送到銀行系統(tǒng)進行驗證。若個人驗證碼錯誤,則轉(zhuǎn)個人驗證碼錯誤處理(InvalidPINProcess)。每個事務(wù)完成后,客戶可選擇繼續(xù)上述事務(wù)或退卡。選擇退卡時,系統(tǒng)彈出ATM卡,會話結(jié)束。系統(tǒng)采用面向?qū)ο蠓椒ㄩ_發(fā),使用UML進行建模。系統(tǒng)的頂層用例圖如圖3-1所示,一次會話的序列圖(不考慮驗證)如圖3-2所示。消息名稱參見表3-1?!締栴}1】(7分)根據(jù)【說明】中的描述,給出圖3-1中A1和A2所對應(yīng)的參與者,U1至U3所對應(yīng)的用例,以及該圖中空(1)所對應(yīng)的關(guān)系。(U1至U3的可選用例包括:Session、Transaction、InsertCard、InvalidPINProcess和Transfer)【問題2】(6分)根據(jù)【說明】中的描述,使用表3-1中的英文名稱,給出圖3-2中6~9對應(yīng)的消息?!締栴}3】(2分)解釋圖3-1中用例U3和用例Withdraw、Deposit等四個用例之間的關(guān)系及其內(nèi)涵。[15分]

4.試題四(共15分)閱讀下列說明,回答問題1和問題2,將解答填入答題紙的對應(yīng)欄內(nèi)?!菊f明】現(xiàn)需在某城市中選擇一個社區(qū)建一個大型超市,使該城市的其它社區(qū)到該超市的距離總和最小。用圖模型表示該城市的地圖,其中頂點表示社區(qū),邊表示社區(qū)間的路線,邊上的權(quán)重表示該路線的長度。現(xiàn)設(shè)計一個算法來找到該大型超市的最佳位置:即在給定圖中選擇一個頂點,使該頂點到其它各頂點的最短路徑之和最小。算法首先需要求出每個頂點到其它任一頂點的最短路徑,即需要計算任意兩個頂點之間的最短路徑;然后對每個頂點,計算其它各頂點到該頂點的最短路徑之和;最后,選擇最短路徑之和最小的頂點作為建大型超市的最佳位置。【問題1】(12分)下面是求解該問題的偽代碼,請?zhí)畛淦渲锌杖钡?1)至(6)處。偽代碼中的主要變量說明如下:W:權(quán)重矩陣n:圖的頂點個數(shù)SP:最短路徑權(quán)重之和數(shù)組,SP[i]表示頂點i到其它各頂點的最短路徑權(quán)重之和,i從1到nmin_SP:最小的最短路徑權(quán)重之和min_v:具有最小的最短路徑權(quán)重之和的頂點i:循環(huán)控制變量j:循環(huán)控制變量k:循環(huán)控制變量LOCATE-SHOPPINGMALL(W,n)1D(0)=W2for(1)3fori=1ton4forj=1ton5ifd(k-1)ij≤≤d(k-1)ik+d(k-1)kj6(2)7else8(3)9fori=1ton10SP[i]=011forj=1ton12(4)13min_SP=SP[1]14(5)15fori=2ton16ifmin_SPSP[i]17min_SP=SP[i]18min_v=i19return(6)【問題2】(3分)【問題】中偽代碼的時間復(fù)雜度為(7)(用Ο符號表示)。[15分]

5.試題五(共15分)閱讀下列說明和C函數(shù)代碼,將應(yīng)填入(n)處的字句寫在答題紙的對應(yīng)欄內(nèi)?!菊f明】對二叉樹進行遍歷是二叉樹的一個基本運算。遍歷是指按某種策略訪問二叉樹的每個結(jié)點,且每個結(jié)點僅訪問一次的過程。函數(shù)InOrder()借助棧實現(xiàn)二叉樹的非遞歸中序遍歷運算。設(shè)二叉樹采用二叉鏈表存儲,結(jié)點類型定義如下:typedefstructBtNode{ElemTypedata;/*結(jié)點的數(shù)據(jù)域,ElemType的具體定義省略*/structBtNode*lchild,*rchild;/*結(jié)點的左、右孩子指針域*/}BtNode,*BTree;在函數(shù)InOrder()中,用棧暫存二叉樹中各個結(jié)點的指針,并將棧表示為不含頭結(jié)點的單向鏈表(簡稱鏈棧),其結(jié)點類型定義如下:typedefstructStNode{/*鏈棧的結(jié)點類型*/BTreeelem;/*棧中的元素是指向二叉鏈表結(jié)點的指針*/structStNode*link;}StNode;假設(shè)從棧頂?shù)綏5椎脑貫閑n、en-1、…、e1,則不含頭結(jié)點的鏈棧示意圖如圖5-1所示?!綜函數(shù)】intInOrder(BTreeroot)/*實現(xiàn)二叉樹的非遞歸中序遍歷*/{BTreeptr;/*ptr用于指向二叉樹中的結(jié)點*/StNode*q;/*q暫存鏈棧中新創(chuàng)建或待刪除的結(jié)點指針*/StNode*stacktop=NULL;/*初始化空棧的棧頂指針stacktop*/ptr=root;/*ptr指向二叉樹的根結(jié)點*/while((1)||stacktop!=NULL){while(ptr!=NULL){q=(StNode*)malloc(sizeof(StNode));if(q==NULL)return-1;q-elem=ptr;(2);stacktop=q;/*stacktop指向新的棧頂*/ptr=(3);/*進入左子樹*/}q=stacktop;(4);/*棧頂元素出棧*/visit(q);/*visit是訪問結(jié)點的函數(shù),其具體定義省略*/ptr=(5);/*進入右子樹*/free(q);/*釋放原棧頂元素的結(jié)點空間*/}return0;}/*InOrder*/[15分]

6.試題六(共15分)閱讀下列說明和C++代碼,將應(yīng)填入(n)處的字句寫在答題紙的對應(yīng)欄內(nèi)?!菊f明】現(xiàn)欲實現(xiàn)一個圖像瀏覽系統(tǒng),要求該系統(tǒng)能夠顯示BMP、JPEG和GIF三種格式的文件,并且能夠在Windows和Linux兩種操作系統(tǒng)上運行。系統(tǒng)首先將BMP、JPEG和GIF三種格式的文件解析為像素矩陣,然后將像素矩陣顯示在屏幕上。系統(tǒng)需具有較好的擴展性以支持新的文件格式和操作系統(tǒng)。為滿足上述需求并減少所需生成的子類數(shù)目,采用橋接(Bridge)設(shè)計模式進行設(shè)計所得類圖如圖6-1所示。采用該設(shè)計模式的原因在于:系統(tǒng)解析BMP、GIF與JPEG文件的代碼僅與文件格式相關(guān),而在屏幕上顯示像素矩陣的代碼則僅與操作系統(tǒng)相關(guān)?!綜++代碼】classMatrix{//各種格式的文件最終都被轉(zhuǎn)化為像素矩陣//此處代碼省略};classImageImp{public:virtualvoiddoPaint(Matrixm)=0;//顯示像素矩陣m};classWinImp:publicImageImp{public:voiddoPaint(Matrixm){/*調(diào)用windows系統(tǒng)的繪制函數(shù)繪制像素矩陣*/}};classLinuxImp:publicImageImp{public:voiddoPaint(Matrixm){/*調(diào)用Linux系統(tǒng)的繪制函數(shù)繪制像素矩陣*/}};classImage{public:voidsetImp(ImageImp*imp){(1)=imp;}virtualvoidparseFile(stringfileName)=0;protected:(2)*imp;};classBMP:publicImage{public:voidparseFile(stringfileName){//此處解析BMP文件并獲得一個像素矩陣對象m(3);//顯示像素矩陣m}};classGIF:publicImage{//此處代碼省略};classJPEG:publicImage{//此處代碼省略};voidmain(){//在windows操作系統(tǒng)上查看demo.bmp圖像文件Image*image1=(4);ImageImp*imageImp1=(5);(6);image1-parseFile("demo.bmp");}現(xiàn)假設(shè)該系統(tǒng)需要支持10種格式的圖像文件和5種操作系統(tǒng),不考慮類Matrix,若采用橋接設(shè)計模式則至少需要設(shè)計(7)個類。[15分]

7.試題七(共15分)閱讀下列說明和Java代碼,將應(yīng)填入(n)處的字句寫在答題紙的對應(yīng)欄內(nèi)?!菊f明】現(xiàn)欲實現(xiàn)一個圖像瀏覽系統(tǒng),要求該系統(tǒng)能夠顯示BMP、JPEG和GIF三種格式的文件,并且能夠在Windows和Linux兩種操作系統(tǒng)上運行。系統(tǒng)首先將BMP、JPEG和GIF三種格式的文件解析為像素矩陣,然后將像素矩陣顯示在屏幕上。系統(tǒng)需具有較好的擴展性以支持新的文件格式和操作系統(tǒng)。為滿足上述需求并減少所需生成的子類數(shù)目,采用橋接(Bridge)設(shè)計模式進行設(shè)計所得類圖如圖7-1所示。采用該設(shè)計模式的原因在于:系統(tǒng)解析BMP、GIF與JPEG文件的代碼僅與文件格式相關(guān),而在屏幕上顯示像素矩陣的代碼則僅與操作系統(tǒng)相關(guān)?!綣ava代碼】classMatrix{//各種格式的文件最終都被轉(zhuǎn)化為像素矩陣//此處代碼省略};abstractclassImageImp{publicabstractvoiddoPaint(Matrixm);//顯示像素矩陣m};classWinImpextendsImageImp{publicvoiddoPaint(Matrixm){/*調(diào)用windows系統(tǒng)的繪制函數(shù)繪制像素矩陣*/}};

溫馨提示

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

評論

0/150

提交評論