




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
PAGE"pagenumber"pagenumber/SECTIONPAGES"numberofpages"numberofpages軟件水平考試_(中級)軟件設計師_案例_真題及答案近年合集1.2014軟件水平考試(中級)軟件設計師真題及答案案例2.2014軟件水平考試(中級)軟件設計師真題及答案案例第02套3.2016軟件水平考試(中級)軟件設計師真題及答案案例4.2017軟件水平考試(中級)軟件設計師真題及答案案例5.2017軟件水平考試(中級)軟件設計師真題及答案案例第02套6.2018軟件水平考試(中級)軟件設計師真題及答案案例7.2018軟件水平考試(中級)軟件設計師真題及答案案例第02套8.2019軟件水平考試(中級)軟件設計師真題及答案案例9.2019軟件水平考試(中級)軟件設計師真題及答案案例第02套2014軟件水平考試(中級)軟件設計師真題及答案案例[問答題]1.閱讀下列說明和圖,回答問題,將解答填入答題紙的對應欄內。【說明】某大型披薩加工和銷售商為了有效管理生產和銷售情況,欲開發一披薩信息系統,其主要功能扣下:1銷售。處理客戶的訂單信息,生成銷售訂單,并將其記錄在銷售訂單表中。銷售訂單記錄了訂購者、所訂購的披薩、期望的交付日期等信息。2生產控制。根據銷售訂單以及庫存的披薩數量,制定披薩生產計劃(包括生產哪些披薩、生產順序和生產量等),并將其保存在生產計劃表中。3生產。根據生產計劃和配方表中的披薩配方,向庫存發出原材料申領單,將制作好的披薩的信息存入庫存表中,以便及時進行交付。4采購。根據所需原材料及庫存量,確定采購數量,向供應商發送采購訂單,并將其記錄在采購訂單表中;得到供應商的供應量,將原材料數量記錄在庫存表中,在采購訂單表中標記已完成采購的訂單。5運送。根據銷售訂單將披薩交付給客戶,并記錄在交付記錄表中。6財務管理。在披薩交付后,為客戶開具費用清單,收款并出具收據:依據完成的采購訂單給供應商支付原材料費用并出具支付細節;將收款和支付記錄存入收支記錄表中。7存儲。檢查庫存的原材料、披薩和未完成訂單,確定所需原材料。現采用結構化方法對披薩信息系統進行分析與設計,獲得如圖1所示的上下文數據流圖和圖2所示的0層數據流圖。圖2?0層數據流圖【問題1】(5分)根據說明中的詞語,給出圖1中的實體E1~E2的名稱。【問題2】(5分)根據說明中的詞語,給出圖2中的數據存儲D1~D5的名稱。【問題3】(5分)根據說明中的詞語,補充圖2中缺失的數據流及其起點和終點。答案:【問題1】(5分)E1:客戶;E2:供應商【問題2】(5分)D1:銷售訂單表;D2:庫存表;D3:生產計劃表;D4:配方表;D5:采購訂單表【問題3】(5分)數據流名稱:支付細節;起點:財務管理;終點:E2數據流名稱:銷售訂單:起點:銷售訂單表;終點:5運送數據流名稱:生產計劃:起點:D3;終點:3生產數據流名稱:庫存量;起點:D2;終點:4采購數據流名稱:原材料數量:起點:4采購;終點:D2數據流名稱:未完成訂單:起點:銷售訂單表;終點:7存儲。解析:[問答題]2.閱讀下列說明和圖,回答問題,將解答填入答題紙的對應欄內。【說明】某公司欲開發一個管理選民信息的軟件系統。系統的基本需求描述如下:每個人(Person)可以是一個合法選民(Eligible)或者無效的選民(Ineligible)。每個合法選民必須通過該系統對其投票所在區域(即選區,Riding)進行注冊(Registration)。每個合法選民僅能注冊一個選區。選民所屬選區由其居住地址(Address)決定。假設每個人只有一個地址,地址可以是鎮(Town)或者城市(City)。某些選區可能包含多個鎮;而某些較大的城市也可能包含多個選區。現采用面向對象方法對該系統進行分析與設計,得到如下圖所示的初始類圖。類圖【問題1】(5分)根據說明中的描述,給出上圖中C1~C4所對應的類名(類名使用說明中給出的英文詞匯)【問題2】(5分)根據說明中的描述,給出上圖中M1~M6處的多重度。【問題3】(5分)現對該系統提出了以下新需求:(1)某些人擁有在多個選區投票的權利,因此需要注冊多個選區;(2)對手滿足(1)的選民,需要劃定其?主要居住地?,以確定他們應該在哪個選區進行投票。為了滿足上述需求,需要對上圖所示的類圖進行哪些修改?請用100字以內文字說明。答案:【問題1】(5分)C1:AddressC2:RidingC3:IneligibleC4:Eligible【問題2】(5分)M1:1,M2:*,M3:*,M4:1,M5:*,M6:1【問題3】(5分)(1)將M1修改為1..*,在Registration類中增加address屬性,指明注冊時使用的是哪個地址。(2)增加一個類?主要居住地?,作為類Address的子類;類Person與類"主要居住地"是關系聯系,且每個人只有一個主要居住地。解析:[問答題]3.閱讀下列說明和圖,回答問題,將解答填入答題紙的對應欄內。【說明】某集團公司在全國不同城市擁有多個大型超市,為了有效管理各個超市的業務工作,需要構建一個超市信息管理系統。[需求分析結果]超市信息包括:超市名稱、地址、經理和電話,其中超市名稱唯一確定超市關系的每一個元組。每個超市只有一名經理。超市設有計劃部、財務部、銷售部等多個部門,每個部門只有一名部門經理,有多名員工,每個員工只屬于一個部門。部門信息包括:超市名稱、部門名稱、部門經理和聯系電話。超市名稱、部門名稱唯一確定部門關系的每一個元組。員工信息包括:員工號、姓名、超市名稱、部門名稱、職位、聯系方式和工資。其中,職位信息包括:經理、部門經理、業務員等。員工號唯一確定員工關系的每一個元組。商品信息包括:商品號、商品名稱、型號、單價和數量。商品號唯一確定商品關系的每一個元組。一名業務員可以負責超市內多種商品的配給,一種商品可以由多名業務員配給。[概念模型設計]根據需求分析階段收集的信息,設計的實體聯系圖和關系模式(不完整)如下圖:[關系模式設計]超市(超市名稱、經理、地址、電話)部門((a),部門經理、聯系電話)員工((b),姓名、聯系方式、職位、工資)商品(商品號、商品名稱、型號、單價、數量)配給((c),配給時間、配給數量、業務員)【問題1】(5分)根據問題描述,補充四個聯系,完善圖上圖的實體聯系圖。聯系名可用聯系1、聯系2、聯系3和聯系4代替,聯系的類型分為1:1、1:n和m:n(或1:1、1:*和*:*)。【問題2】(5分)1、根據實體聯系圖,將關系模式中的空(a)~(c)補充完整;2、給出部門和配給關系模式的主鍵和外鍵。【問題3】(5分)1、超市關系的地址可以進一步分為郵編、省、市、街道,那么該屬性是屬于簡單屬性還是復合屬性?請用100字以內文字說明。2、假設超市需要增設一個經理的職位,那么超市與經理之間的聯系類型應修改為(d),超市關系應修改為(e)。答案:【問題1】(5分)【問題2】(5分)1、(a)超市名稱、部門名稱(b)員工號、超市名稱、部門名稱(c)商品號2、部門關系主鍵:(超市名稱、部門名稱)外鍵:超市名稱、部門經理配給關系主鍵:(商品號、業務員、配給時間)外鍵:業務員、商品號【問題3】(5分)1、超市關系中的地址屬于復合屬性。所謂復合屬性就是指屬性中含有多種信息,可以進一步拆分的屬性,地址可以拆分成多個簡單屬性,符合這一特征。2、d是1:ne超市名稱、地址、電話解析:[問答題]4.閱讀下列說明和C++代碼,回答問題,將解答填入答題紙的對應欄內。【說明】某燈具廠商欲生產一個燈具遙控器,該遙控器具有7個可編程的插槽,每個插槽都有開關按鈕,對應著一個不同的燈。利用該遙控器能夠統一控制房間中該廠商所有品牌燈具的開關,現采用Command(命令)模式實現該遙控器的軟件部分。Command模式的類圖如下圖所示。Command?模式類圖答案:(1)interfaceCommand(2)light.on()(3)light.off()(4)onCommands[slot](5)offCommands[slot](6)onCommands[slot].execute()(7)offCommands[slot].execute()解析:[問答題]5.閱讀下列說明和C代碼,回答下列問題。[說明]計算一個整數數組a的最長遞增子序列長度的方法描述如下:假設數組a的長度為n,用數組b的元素b[i]記錄以a[i](0≤i<n?)為結尾元素的最長遞增子序列的長度為其中b[i]滿足最優子結構,可遞歸定義為:[C代碼]下面是算法的C語言實現。10常量和變量說明a:長度為n的整數數組,待求其最長遞增子序列b:長度為n的數組,b[i]記錄以a[i](0≤i<n?)為結尾元素的最長遞增子序列的長度,其中0≤i<nlen:最長遞增子序列的長度i,j:循環變量temp:臨時變量11C程序#jnclude<stdio,h>mtmaxL(int*b,mtn){mtI,temp=0for(i=0;i<n;i++){(b[i]>temp)temp=b[i]returntemp;intmain12{intn,a[100],b[100],i,j,len;scanf("%d",&n);for(i=0;i<n;i++){scanf("%d",&a[i]);___1___:for(i=1;i<n;i++){for(j=0,len=0;___2___;j++){if(___3___&&len<b[j])Ien=b[j]___4___;}Printf("len:%d\n",maxL(b,n))Primtf("\n")}1~4、根據說明和C代碼,填充C代碼中的空______~______。5、根據說明和C代碼,算法采用了______設計策略,時間復雜度為______(用O符號表示)6、已知數組a={3,10,5,15,6,8},據說明和C代碼,給出數組b的元素值。答案:本題考查最長遞增序列問題,是一種動態規劃法,也考查時間復雜度的計算。1~4、b[0]=1j<=ia[j]<=a[i]b[i]=len+15、動態規劃法O(n2)6、B={1,2,2,3,3,4}解析:2014軟件水平考試(中級)軟件設計師真題及答案案例第02套[問答題]1.閱讀下列說明和圖,回答問題,將解答填入答題紙的對應欄內。【說明】?某巴士維修連鎖公司欲開發巴士維修系統,以維護與維修相關的信息,該系統的主要能如下:(1)記錄巴士ID和維修問題。巴士到車庫進行維修,系統將巴士基本信息和ID記錄在巴士列表文件中,將待維修機械問題記錄在維修記錄文件中,并生成維修訂單。(2)確定所需部件,根據維修訂單確定維修所需部件,并在部件清單中進行標記。(3)完成維修,機械師根據維修記錄文件中的待維修機械問題,完成對巴士的維修,登記維修情況;將機械問題維修情況記錄在維修記錄文件中,將所用部件記錄在部件清單中,并將所用部件清單發送繪庫存管理系統以對部件使用情況進行監控,巴士司機可查看已維修機械問題。(4)記錄維修工時,將機械師提供的維修工時記錄在人事檔案中,將維修總結發送給主管進行績效考核。(5)計算維修總成本。計算部件清單中實際所用部件、人事檔案中所用維修工時的總成本;將維修工時和所用部件成本詳細信息給會計進行計費。現采用結構化方法對巴士維修系統進行分析與設計,獲得如圖1所示的上下文數據流圖1和圖2所示的0層數據流圖。【問題1】(5分)使用說明中的詞語,給出圖1中的實體E1~E5的名稱。【問題2】(4分)使用說明中的詞語,給出圖2中的數據存儲D1~D4的名稱【問題3】(4分)說明圖2中所存在的問題。【問題4】根據說明和圖中術語,采用補充數據流的方式,改正圖2中的問題。要求給出所補充數據流的名稱、起點和終點。答案:【問題1】(5分)E1:巴士司機E2:機械師E3:會計E4:主管E5:庫存管理系統【問題2】(4分)D1:巴士列表文件D2:維修記錄文件D3:部件清單D4:人事檔案【問題3】(4分)缺失以下數據流:(1)名稱:待維修機械問題;起點:D2;終點:3完成維修。(2)名稱:實際所用部件;起點:D3;終點:5計算總成本。【問題4】(2分)補充以下數據流:(1)名稱:待維修機械問題;起點:D2;終點:3完成維修。(2)名稱:實際所用部件;起點:D3;終點:5計算總成本解析:[問答題]2.閱讀下列說明和圖,回答問題,將解答填入答題紙的對應欄內。【說明】某家電銷售電子商務公司擬開發一套信息管理系統,以方便對公司的員工、家電銷售、家電廠商和客戶等進行管理。[需求分析](1)系統需要維護電子商務公司的員工信息、客戶信息、家電信息和家電廠商信息等,員工信息主要包括:工號、姓名、性別、崗位、身份證號、電話、住址,其中崗位包括部門經理和客服等,客戶信息主要包括:客戶ID、姓名、身份證號、電話、住址、賬戶余額。家電信息主要包括:家電條碼、家電名稱、價格、出廠日期、所屬商,家電廠商信息包括:廠商ID、廠商名稱、電話、法人代表信息、廠址。(2)電子商務公司根據銷售情況,由部門經理向家電廠商訂購各類家電,每個家電廠商只能由一名部門經理負責。(3)客戶通過瀏覽電子商務公司網站查詢家電信息,與客服溝通獲得優惠后,在線購買。[概念模型設計]根據需求階段收集的信息,設計的實體聯系圖(不完整)如下圖所示。[邏輯結構設計]根據概念模型設計階段完成的實體聯系圖,得出如下關系模式[不完整]客戶(客戶ID、姓名、身份證號、電話、住址、賬戶余額)員工(工號、姓名、性別、崗位、身份證號、電話、住址)家電(家電條碼、家電名稱、價格、出廠日期、(1))家電廠商(廠商ID、廠商名稱、電話、法人代表信息、廠址、(2))購買(訂購單號、(3)、金額)【問題1】(5分)補充圖中的聯系和聯系的類型。【問題2】(5分)根據題干中的圖,將邏輯結構設計階段生成的關系模式中的空(1)-(3)補充完整,用下劃線指出?家電?、?家電廠商?和?購買?關系模式的主鍵。【問題3】(5分)電子商務公司的主營業務是銷售各類家電,對賬戶有余額的客戶,還可以聯合第二方基金公司提供理財服務,為此設立客戶經理崗位。客戶通過電子商務公司的客戶經理和基金公司的基金經理進行理財,每名客戶只有一名客戶經理和一名基金經理負責,客戶經理和基金經理均可負責多名客戶。請根據該要求,對題干圖進行修改,畫出修改后的實體間聯系和聯系的類型。答案:解析:[問答題]3.閱讀下列說明和C++代碼,回答問題,將答案填入相應橫線處。【說明】某實驗室欲建立一個實驗室環境監測系統,能夠顯示實驗室的溫度、濕度以及潔凈度等環境數據。當獲取到最新的環境測量數據時,顯示的環境數據能夠更新現在采用觀察者(observer)模式來開發該系統,觀察者模式的類圖如下圖所示。?【C++代碼】#include<iostream>#include<vector>usingnamespacestd;classObserver{public:?virtualvoidupdate(floattemp,floathumidity,floatcleanness)=0;};classSubject{public:?virtualvoidregisterObserver(Observer*o)=0;//注冊對主題感興趣的觀察者?virtualvoidremoveObserver(Observer*o)=0;//刪除觀察者?virtualvoidnotifyObservers()=0;//當主題發生變化時通知觀察者};classEnvironmentData:public(1)?{private:vector<Observer*>observers;floattemperature,humidity,cleanness;public:?voidregisterObserver(Observer*o){observers.push_back(o);}?voidremoveObserver(Observer*o){代碼省略*/}?voidnotifyObservers(){for(vector<Observer*>::const_iteratorit=observers.begin();it!=observers.end();it++){?(2);}}VoidmeasurementsChanged(){(3);}voidsetMeasurements(floattemperature,floathumidity,floatcleanness){?this->temperature=temperature;?this->humidity=humidity;?this->cleanness=cleanness;(4);?}};classCurrentConditionsDisplay:public(5){private:floattemperature,humidity,cleanness;?Subject*envData;public:?CurrentConditionsDisplay(Subject*envData){this->envData=envData;(6);}voidupdate(floattemperature,floathumidity,floatcleanness)?{this->temperature=temperature;?this->humidity=humidity;?this->cleanness=cleanness;?display();}voiddisplay(){代碼省略*/}};intmain(){?EnvironmentData*envData=newEnvironmentData();?CurrentConditionsDisplay*currentDisplay=newCurrentConditionsDisplay(envData);?envData->setMeasurements(80,65,30.4f);?return0;}答案:1、Subject[解析]當主題中的環境發生變化,也就是調用measure-mentsChanged(),會通知觀察者,即調用notifyObservers(),在notifyObservers()方法中,觀查者會調用自身的up-date(floattemperature,floathumidity,floatcleanness)。在主題的registerObserver(Observe*o)中會注冊對主題感興趣的觀察者。2、(*it)->update(temperature,humidity,clean-ness)3、notifyObservers()4、measurementsChanged()5、Observer()6、this->envData->registerObserver(this)解析:[問答題]4.閱讀下列說明和圖,回答問題,將解答填入答題紙的對應欄內。【說明】某高校圖書館欲建設一個圖書館管理系統,目前已經完成了需求分析階段的工作,功能需求均使用用例進行描述,其中用例?借書(CheckOut800ks)?的詳細描述如下。?參與者:讀者<Patron>?典型事件流:?1.輸入讀者ID:?2.確認該讀者能夠借閱圖書,并記錄讀者ID;?3.輸入所要借閱的圖書ID;?4.根據圖書目錄中的圖書ID確認該書可以借閱,計算歸還時間,生成借閱記錄;?5.通知讀者圖書歸還時間;?重復步驟3~5,直到讀者結束借閱圖書。?備選事件流:?2a.若讀者不能借閱圖書,說明讀者違反了圖書館的借書制度(例如,沒有支付借書費用等)。?①告知讀者不能借閱,并說明拒絕借閱的原因;?②本用例結束。?4a.讀者要借閱的書無法外借。?①告知讀者本書無法借閱;?②回到步驟3。說明:圖書的歸還時間與讀者身份有關。如果讀者是教師,圖書可以借閱一年:如果是學生,則只能借閱3個月,讀者ID中包含讀者身份信息,現采用面向對象方法開發該系統,得到如圖1所示的系統類模型(部分);以及如圖2所示的系統操作。?CheckOut(bookID)(借書)?通信圖?(或協作圖)。【問題1】(5分)根據說明中的描述,以及圖1和圖2,給出圖1中C1-C4處所對應的類名(類名使用圖1和圖2中給出的英文詞匯)。【問題2】(5分)根據說明中的描述,以及圖1和圖2,給出圖2中M1-M4處所對應的方法名(方法名使用圖1和圖2中給出的英文詞匯)。【問題3】(5分)用例?借書?的備選事件流4a中,根據借書制度來判定讀者能否借閱圖書,隨著圖書館的借書制度會不斷地擴充,并需要根據圖書館的實際運行情況來調整具體使用哪些制度,為滿足這一要求,在原有類設計的基礎上,可以采用何種設計模式?簡要說明原因。答案:8、C1:PatronC2:BookC3:CatalogC4:CheckoutSes-sioncontro1Ier[解析]根據系統類模型,我們可以各個類之間的關聯關系。首先從類Accouts中的canCheckOut(patronID:string)方法,可以看出Accouts關聯Patron,因此圖中C1為Pa-tron。C1為Patron,則C1必會與書關聯,從C1中的record-BookLoad(b,C2),可以看出C1關聯C2。因此C2為Book。C2為Book,根據系統操作checkOut的通信圖,可以看出與Book關聯的是Catalog,因此C3為Catalog。結合兩圖,則可以得出C4為chec-koutSessioncon-troller。9、M1():getforcheck(bookID)M2():isFacultyoM3():circulatesoM4():recordBookLoan[解析]結合典型事件流:1.輸入讀者ID;2.確認該讀者能夠借閱圖書,并記錄讀者ID;以上兩步實際上就是判斷讀者是不是老師,也就是is-Faculty(),因此M2為isFaculty();3.輸入所要借閱的圖書ID;對應的操作就是M1:get-{forcheck(bookID);4.根據圖書目錄中的圖書ID確認該書可以借閱,計算歸還時間,生成借閱記錄;對應的操作就是M3:circulates();5.通知者圖書歸還時間,對應的操作就是M4:record-BookLoan()。10、應采用策略模式,策略模式的優勢在于可以靈活的添加對同一問題的不同處理方案,這與題目要求非常吻合。解析:[問答題]5.閱讀下列說明和C代碼,回答下列問題。[說明]?采用歸并排序對n個元素進行遞增排序時,首先將n個元素的數組分成各含n/2個元素的兩個子數組,然后用歸并排序對兩個子數組進行遞歸排序,最后合并兩個已經排序的子數組得到排序結果。?下面的C代碼是對上述歸并算法的實現,其中的常量和變量說明如下:?arr:待排序數組?P,q,r:一個子數組的位置從P到q,另一個子數組的位置從q+1到r?begin,end:待排序數組的起止位量?left,right:臨時存放待合并的兩個子數組?n1,n2:兩個子數組的長度?i,j,k:循環變量?mid:臨耐變量?[C代碼]?#inciude<stdio,h>?#include<stdlib,h>?DefineMAX65536?voidmerge(intarr[],intp,intq,intr){?int*left,*right;?intn1,n2,I,j,k;?n1=q-p+1;?n2=r-q;?If(left=(int*)malloc((n1+1)*sizeof(int)))=NULL){?Perror("mallocerror");?exit11?}?If((right=(int*)malloc((n2+1)*sizeof(int)))=NULL)?Perror("mallocerror");?exit11;?}?for(i=0;i<n1;i++){?left[i]=arr[p+i];?}?left[i]=MAX;?for(i=0;i<n2;i++){?right[i]=arr[q+i+1]?}?right[i]=MAX;?i=0;j=0;?For(k=p;______;k++){?If(left[i]>right[j]{?______?j++;?}else{?arr[k1]=left[i];?i++;?}?}?}?VoidmergeSort(intarr[],intbegin,intend){?intmid;?if(______){?mid=(begin+end)/2;?mergeSort(arr,begin,mid);?______;?Merge(arr,begin,mid,end);?}?}答案:11、k<=rarr[k]=right[j]begin<endmergeSort(arr,mid+1,end)[解析]首先,函數voidmerge(intarr[],intP,intq,intr)的意思是:對子數組arr[P…q]和子數組arr[q+L..r]進行合并。因此第一空為k<=q;由于是采用歸并排序對n個元素進行遞增排序,所以第二空是將left[i]和right[j]的小者存放到arr[k]中去,即arr[k]=right[j]:當數組長度為1時,停止遞歸,因為此時該數組有序,則第三空為begin<end,即數組至少有兩個元素才進行遞歸。合并了begin到mid之間的元素,繼續合并mid+1到end之間的元素,則第四空為mergeSort(arr,mid+1,end)。12、分治T(n)=2T(n/2)+O(n)O(nlogn)O(n)[解析]歸并算法實際上就是將數組一直往下分割,直到分割到由一個元素組成的n個子數組,再往上兩兩歸并。將數組進行分割需要logN步,因為每次都是講數組分割成兩半(2x=N,x=logN)。合并N個元素,需要進行N步,也就是O(N),則總的時間復雜度為O(NlogN)。合并過程中,使用了?個中間變量存儲,left=(int*)malloc((n1+1)*sizeof(int))。所以空間復雜度為O(n)。推導遞歸式:假設n個元素進行歸并排序需要T(n),可以將其分割成兩個分別有n/2個元素的數組分別進行歸并,也就是2T(n/2),在將這兩個合并,需要O(n)的時間復雜度,則推導公式為T(n)=2T(n/2)+O(n)。13、n1+n2解析:2016軟件水平考試(中級)軟件設計師真題及答案案例[問答題]1.閱讀下列說明和圖,回答問題1至問題3,將解答填入答題紙的對應欄內。【說明】?某軟件公司欲設計實現一個虛擬世界仿真系統。系統中的虛擬世界用于模擬現實世界中的不同環境(由用戶設置并創建),用戶通過操作仿真系統中的1~2個機器人來探索虛擬世界。機器人維護著兩個變量b1和b2,用來保存從虛擬世界中讀取的字符。?該系統的主要功能描述如下:?(1)機器人探索虛擬世界(RunRobots)。用戶使用編輯器(Editor)編寫文件以設置想要模擬的環境,將文件導入系統(LoadFile)從而在仿真系統中建立虛擬世界(SetupWorld)。機器人在虛擬世界中的行為也在文件中進行定義,建立機器人的探索行為程序(SetupProgram)。機器人在虛擬世界中探索時(RunProgram),有2種運行模式:?①自動控制(Run):事先編排好機器人的動作序列(指令(Instruction)),執行指令,使機器人可以連續動作。若干條指令構成機器人的指令集(InstructionSet)。?②單步控制(Step):自動控制方式的一種特殊形式,只執行指定指令中的一個動作。?(2)手動控制機器人(ManipulateRobots)。選定1個機器人后(SelectRobot),可以采用手動方式控制它。手動控制有4種方式:?①Move:機器人朝著正前方移動一個交叉點。?②Left:機器人原地沿逆時針方向旋轉90度。?③Read:機器人讀取其所在位置的字符,并將這個字符的值賦給b1;如果這個位置上沒有字符,則不改變b1的當前值。?④Write:將b1中的字符寫入機器人當前所在的位置,如果這個位置上已經有字符,該字符的值將會被b1的值替代。如果這時b1沒有值,即在執行Write動作之前沒有執行過任何Read動作,那么需要提示用戶相應的錯誤信息(ShowErrors)。?手動控制與單步控制的區別在于,單步控制時執行的是指令中的動作,只有一種控制方式,即執行下個動作;而手動控制時有4種動作。?現采用面向對象方法設計并實現該仿真系統,得到如圖3-1所示的用例圖和圖3-2所示的初始類圖。圖3-2中的類?Interpreter?和?Parser?用于解析描述虛擬世界的文件以及機器人行為文件中的指令集。【問題1】(6分)?根據說明中的描述,給出圖3-1中U1~U6所對應的用例名。【問題2】(4分)?圖3-1中用例U1~U6分別與哪個(哪些)用例之間有關系,是何種關系?【問題3】(5分)?根據說明中的描述,給出圖3-2中C1~C5所對應的類名。答案:【問題1】(6分)U1、U2、U3、U4、U5、U6:Run、Step、Write、Move、Left、Read【問題2】(4分)U1和U2和RunProgram有泛化關系;U3,U4,U5,U6和SelectRobot有擴展關系;【問題3】(5分)C1:文件C2:機器人在虛擬世界的行為C3:InstructionC4:InstructionSetC5:仿真系統解析:[問答題]2.答案:(1)Address*address;(2)address->street();(3)address->zip();(4)address->city();(5)DutchAddress*addr=newDutchAddressAdaptor(addr);解析:[問答題]3.閱讀下列說明,回答問題1至問題3;將解答填入答題紙的對應欄內。【說明】?某銷售公司當前的銷售業務為商城實體店銷售。現該公司擬開展網絡銷售業務,需要開發一個信息化管理系統。請根據公司現有業務及需求完成該系統的數據庫設計。【需求描述】?(1)記錄公司所有員工的信息。員工信息包括工號、身份證號、姓名、性別、出生日期和電話,并只登記一部電話。?(2)記錄所有商品的信息。商品信息包括商品名稱、生產廠家、銷售價格和商品介紹。系統內部用商品條碼唯一區別每種商品。?(3)記錄所有顧客的信息。顧客信息包括顧客姓名、身份證號、登錄名、登錄密碼、和電話號碼。一位顧客只能提供一個電話號碼。系統自動生成唯一的顧客編號。?(4)顧客登錄系統之后,在網上商城購買商品。顧客可將選購的商品置入虛擬的購物車內,購物車可長期存放顧客選購的所有商品。顧客可在購物車內選擇商品、修改商品數量后生成網購訂單。訂單生成后,由顧客選擇系統提供的備選第三方支付平臺進行電子支付,支付成功后系統需要記錄唯一的支付憑證編號,然后由商城根據訂單進行線下配送。?(5)所有的配送商品均由倉庫統一出庫。為方便顧客,允許每位顧客在系統中提供多組收貨地址、收貨人及聯系電話。一份訂單所含的多個商品可能由多名分檢員根據商品所在倉庫信息從倉庫中進行分揀操作,分揀后的商品交由配送員根據配送單上的收貨地址進行配送。?(6)新設計的系統要求記錄實體店的每筆銷售信息,包括營業員、顧客、所售商品及其數量。【概念模型設計】根據需求階段收集的信息,設計的實體聯系圖(不完整)如圖所示。【邏輯結構設計】?根據概念模型設計階段完成的實體聯系圖,得出如下關系模式(不完整):?員工(工號,身份證號,姓名,性別,出生日期,電話)?商品(商品條碼,商品名稱,生產廠家,銷售價格,商品介紹,(a)?)?顧客(顧客編號,姓名,身份證號,登錄名,登錄密碼,電話)?收貨地點(收貨ID,顧客編號,收貨地址,收貨人,聯系電話)?購物車(顧客編號,商品條碼,商品數量)?訂單(訂單ID,顧客編號,商品條碼,商品數量,?(b)?)?分檢(分揀ID,分揀員工號,?(c)?,分揀時間)配送(配送ID,分揀ID,配送員工號,收貨ID,配送時間,簽收時間,簽收快照)?銷售(銷售ID,營業員工號,顧客編號,商品條碼,商品數量)【問題1】(4分)?補充圖中的?配送?聯系所關聯的對象及聯系類型。【問題2】(6分)?補充邏輯結構設計中的(a)、(b)和(c)三處空缺。【問題3】(5分)?對于實體店銷售,若要增加送貨上門服務,由營業員在系統中下訂單,與網購的訂單進行后續的統一管理。請根據該需求,對圖進行補充,并修改訂單關系模式。答案:【問題1】(4分)配送員--配送--地點,多對多聯系【問題2】(6分)(a)商品數量,倉庫信息(b)支付憑證編號(c)商品條碼,訂單ID【問題3】(5分)在營業員與訂單之間增加聯系?送貨上門?,并將聯系記錄于訂單關系中,即在訂單關系中增加屬性?營業員ID?屬性作為外鍵。解析:[問答題]4.閱讀下列說明和圖,回答問題1至問題4,將解答填入答題紙的對應欄內。【說明】某會議中心提供舉辦會議的場地設施和各種設備,供公司與各類組織機構租用。場地包括一個大型報告廳、一個小型報告廳以及諸多會議室。這些報告廳和會議室可提供的設備有投影儀、白板、視頻播放/回放設備、計算機等。為了加強管理,該中心欲開發一會議預訂系統,系統的主要功能如下。(1)檢查可用性。客戶提交預訂請求后,檢查預訂表,判定所申請的場地是否在申請日期內可用;如果不可用,返回不可用信息。(2)臨時預訂。會議中心管理員收到客戶預定請求的通知之后,提交確認。系統生成新臨時預訂存入預訂表,并對新客戶創建一條客戶信息記錄加以保存。根據客戶記錄給客戶發送臨時預訂確認信息和支付定金要求。(3)分配設施與設備。根據臨時預訂或變更預定的設備和設施需求,分配所需設備(均能滿足用戶要求)和設施,更新相應的表和預訂表。(4)確認預訂。管理員收到客戶支付定金的通知后,檢查確認,更新預訂表,根據客戶記錄給客戶發送預訂確認信息。(5)變更預訂。客戶還可以在支付余款前提交變更預訂請求,對變更的預訂請求檢查可用性,如果可用,分配設施和設各;如果不可用,返回不可用信息。管理員確認變更后,根據客戶記錄給客戶發送確認信息。(6)要求付款。管理員從預訂表中查詢距預訂的會議時間兩周內的預定,根據客戶記錄給滿足條件的客戶發送支付余款要求。(7)支付余款。管理員收到客戶余款支付的通知后,檢查確認,更新預訂表中的已支付余款信息。現采用結構化方法對會議預定系統進行分析與設計,獲得如圖1-1所示的上下文數據流圖和圖1-2所示的0層數據流圖(不完整)。【問題1】?使用說明中的詞語,給出圖1-1中的實體E1~E2的名稱。【問題2】(4分)?使用說明中的詞語,給出圖1-2中的數據存儲D1~D4的名稱。【問題3】(6分)?根據說明和圖中術語,補充圖1-2之中缺失的數據流及其起點和終點。【問題4】(3分)如果發送給客戶的確認信息是通過Email系統向客戶信息中的電子郵件地址進行發送的,那么需要對圖1-1和1-2進行哪些修改?用150字以內文字加以說明。答案:【問題1】(2分)E1:客戶E2:管理員【問題2】(4分)D1:預定表D2:客戶信息記錄表D3:設施表D4:設備表【問題3】(6分)預訂確認信息起點:4確認預定終點:E1客戶信息起點:E1終點:2臨時預定客戶記錄起點:D2終點:4確認預定客戶記錄起點:D2終點:5變更預定預定信息起點:D1終點:6要求付款客戶記錄起點:D2終點:6要求付款【問題4】(3分)圖1-1中:增加外部實體?第三方Email系統?,將臨時預訂/預訂/變更確認信息終點均修改至?第三方Email系統?。圖1-2中:增加外部實體?第三方Email系統?,增加加工?發送郵件?,將臨時預訂/預訂/變更確認信息終點均修改至?發送郵件?加工,并增加從D2到?發送郵件?加工的數據流?電子郵件地址?,再從發送郵件加工引出數據流,臨時預訂/預訂/變更確認信息,終點為第三方Email系統。解析:[問答題]5.閱讀下列說明和C代碼,回答問題1至問題3,將解答寫在答題紙的對應欄內。【說明】?在一塊電路板的上下兩端分別有n個接線柱。根據電路設計,用(i,π(i))表示將上端接線柱i與下端接線柱π(i)相連,稱其為該電路板上的第i條連線。如圖4-1所示的π(i)排列為{8,7,4,2,5,1,9,3,10,6}。對于任何1≤i<j≤n,第i條連線和第j條連線相交的充要條件是π(i)>π(j)。【問題1】(6分)根據以上說明和C代碼,填充C代碼中的空(1)~(3)。【問題2】(6分)?據題干說明和以上C代碼,算法采用了(4)?算法設計策略。函數maxNum和constructSet的時間復雜度分別為(5)和(6)?(用O表示)。?【問題3】(3分)?若連接排列為{8,7,4,2,5,1,9,3,10,6},即如圖4-1所示,則最大不相交連接數為(7),包含的連線為(8)(用(i,π(i))的形式給出)。答案:【問題1】(6分)(1)size[i][j]=1;(2)size[i][j]=size[i-1][j];(3)net[m++]=i;【問題2】(6分)(4)動態規劃算法;(5)O(n2);(6)O(n)【問題3】(3分)若連接排列為{8,7,4,2,5,1,9,3,10,6},即如圖4-1所示,則最大不相交連接數為(7),包含的連線為(8)(用(i,π(i))的形式給出)。(7)4(8)(9,π(9),(7,π(7)),(5,π(5)),(3,π(3))解析:2017軟件水平考試(中級)軟件設計師真題及答案案例[問答題]1.答案:解析:[問答題]2.閱讀下列說明和圖,回答問題1至問題4,將解答填入答題紙的對應欄內。【說明】某公司擬開發一個共享單車系統,采用北斗定位系統進行單車定位,提供針對用戶的APP以及微信小程序、基于Web的管理與監控系統。該共享單車系統的主要功能如下。1)用戶注冊登錄。用戶在APP端輸入手機號并獲取驗證碼后進行注冊,將用戶信息進行存儲。用戶登錄后顯示用戶所在位置周圍的單車。2)使用單車。①掃碼/手動開鎖。通過掃描二維碼或手動輸入編碼獲取開鎖密碼,系統發送開鎖指令進行開鎖,系統修改單車狀態,新建單車行程。②騎行單車。單車定時上傳位置,更新行程。③鎖車結賬。用戶停止使用或手動鎖車并結束行程后,系統根據己設置好的計費規則及使用時間自動結算,更新本次騎行的費用并顯示給用戶,用戶確認支付后,記錄行程的支付狀態。系統還將重置單車的開鎖密碼和單車狀態。3)輔助管理。①查詢。用戶可以查看行程列表和行程詳細信息。②報修。用戶上報所在位置或單車位置以及單車故障信息并進行記錄。4)管理與監控。①單車管理及計費規則設置。商家對單車基礎信息、狀態等進行管理,對計費規則進行設置并存儲。②單車監控。對單車、故障、行程等進行查詢統計。③用戶管理。管理用戶信用與狀態信息,對用戶進行查詢統計。現采用結構化方法對共享單車系統進行分析與設計,獲得如圖1-1所示的上下文數據流圖和圖1-2所示的0層數據流圖。【問題1】(3分)使用說明中的詞語,給出圖1-1中的實體El~E3的名稱。【問題2】(5分)使用說明中的詞語,給出圖1-2中的數據存儲Dl~D5的名稱。【問題3】(5分)根據說明和圖中術語及符號,補充圖1-2中缺失的數據流及其起點和終點。【問題4】(2分)根據說明中術語,說明"使用單車"可以分解為哪些子加工?答案:【問題1】(3分)E1:用戶、E2:商家、E3:單車。【問題2】(5分)D1:存儲用戶信息/用戶信息表D2:記錄單車位置及狀態信息/單車信息表D3:記錄單車行程信息/行程信息表D4:存儲計費規則/計費規則信息表D5:記錄單車故障信息/單車故障信息表【問題3】(5分)起點:p3終點:E1數據流名稱:開鎖密碼起點:p3終點:E1數據流名稱:鎖車結帳起點:p3終點:D2數據流名稱:單車狀態起點:D4終點:P3數據流名稱:計費規則起點:D3終點:p7數據流名稱:行程查詢統計【問題4】(2分)掃碼/手動開鎖,騎行單車,鎖車結帳。解析:[問答題]3.閱讀下列說明,回答問題?1?問題?3,將解答填入答題紙的對應欄內。【說明】某大學擬開發一個用于管理學術出版物(Publication)的數字圖書館系統,用戶可以從該系統查詢或下載己發表的學術出版物。系統的主要功能如下:1.登錄系統。系統的用戶(User)僅限于該大學的學生(Student)、教師(Faculty)和其他工作人員(Staff)。在訪問系統之前,用戶必須使用其校園賬戶和密碼登錄系統。2.?查詢某位作者(Author)的所有出版物。系統中保存了會議文章(ConfPaper)、期刊文章?(JurnalArticle)和校內技術報告(TechReport?)等學術出版物的信息,如題目、作者以及出版年份等。除此之外,系統還存儲了不同類型出版物的一些特有信息;(1)對于會議文章,系統還記錄了會議名稱、召開時間以及召開地點;(2)對于期刊文章,系統還記錄了期刊名稱、出版月份、期號以及主辦單位;(3)對于校內技術報告,系統記錄了由學校分配的唯一?ID。3.?查詢指定會議集(Proceedings)或某個期刊特定期(Edition)的所有文章。會議集包含了發表在該會議(在某個特定時間段、特定地點召開)上的所有文章。期刊的每一期在特定時間發行,其中包含若干篇文章。4.下載出版物。系統記錄每個出版物被下載的次數。5.查詢引用了某篇出版物的所有出版物。在學術出版物中引用他人或早期的文獻作為相關工作或背景資料是很常見的現象。用戶也可以在系統中為某篇出版物注冊引用通知,若有新的出版物引用了該出版物,系統將發送電子郵件通知該用戶。現在采用面向對象方法對該系統進行開發,得到系統的初始設計類圖如圖?3-1?所示。【問題?1】(9?分)根據說明中的描述,給出圖?3-1?中?C1~C9?所對應的類名。【問題?2】(4?分)根據說明中的描述,給出圖?3-1?中類?C6~C9?的屬性。【問題?3】(2?分)圖?3-1?中包含了哪種設計模式?實現的是該系統的哪個功能?答案:【問題1】(9分)C1:systemC2:UserC3:StudentC4:FacultyC5:StaffC6:PublicationC7:ConfPaperC8:JournalArticleC9:TechReport【問題2】(4分)C6:題目,作者,出版年份C7:會議名稱,召開時間,召開地點C8:期刊名稱,出版月份,期號,主辦單位C9:ID【問題3】(2分)觀察者模式。實現:引用他人學術出版物發送電子郵件通知該用戶。策略模式。實現:查詢作者出版的不同類型出版物--會議文章、期刊文章、校內技術報告。解析:[問答題]4.閱讀下列說明,回答問題?1?至問題,將解答填入答題紙的對應欄內。【說明】M?公司為了便于開展和管理各項業務活動,提高公司的知名度和影響力,擬構建一個基于網絡的會議策劃系統。【需求分析結果】該系統的部分功能及初步需求分析的結果如下?:(1)M?公司旗下有業務部、策劃部和其他部門。部門信息包括部門號、部門名、主管、聯系電話和郵箱號;每個部門只有一名主管,只負責管理本部門的工作,且主管參照員工關系的員工號;一個部門有多名員工,每名員工屬于且僅屬于一個部門。(2)員工信息包括員工號、姓名、職位、聯系方式和薪資。職位包括主管、業務員、策劃員等。業務員負責受理用戶申請,設置受理標志。一名業務員可以受理多個用戶申請,但一個用戶申請只能由一名業務員受理。(3?用戶信息包括用戶號、用戶名、銀行賬號、電話、聯系地址。用戶號唯一標識用戶信息中的每一個元組。(4)用戶申請信息包括申請號、用戶號、會議日期、天數、參會人數、地點、預算和受理標志。申請號唯一標識用戶申請信息中的每一個元組,且一個用戶可以提交多個申請,但一個用戶申請只對應一個用戶號。(5)策劃部主管為己受理的用戶申請制定會議策劃任務。策劃任務包括申請號、任務明細和要求完成時間。申請號唯一標識策劃任務的每一個元組。一個策劃任務只對應一個己受理的用戶申請,但一個策劃任務可由多名策劃員參與執行,且一名策劃員可以參與執行,且在項策劃任務。【概念模型設計】根據需求階段收集的信息,設計的實體聯系圖(不完整)如圖?2-1?所示。【關系模型設計】部門(部門和,部門名,部門主管,聯系電話,郵箱號)員工(員工號,姓名,(?),聯系方式,薪資)用戶(用戶名,(?),電話,聯系地址)用戶申請(申請號,用戶號,會議日期,天數,參會人數,地點,受理標志,(?))執行(申請號,任務明細,(?))【問題?1】(5?分)根據問題描述,補充五個聯系,完善圖?2-1?的實體聯系圖。聯系名可用聯系?1、聯系?2、聯系?3、聯系?4?和聯系?5,聯系的類型為?1:1、1:n?和?m:n(或?1:1、1:*和*:*)。【問題?2】(4?分)根據題意,將關系模型中的空(a)~(d)補充完整,并填入答題紙對應的位置上。【問題?3】(4?分)給出?用戶申請?和?策劃任務?關系模式的主鍵和外鍵。【問題?4】(2?分)請問?執行?關系模式的主鍵為全碼的說法正確嗎?為什么?答案:【問題1】(5分)聯系1:部門和員工,1:n聯系2:業務員和用戶申請,1:n聯系3:用戶和用戶申請,1:n聯系4:策劃員和策劃任務,m:n聯系5:策劃任務和用戶申請,1:1【問題2】(4分)1、職位,部門號2、用戶名,銀行帳號3、預算費用,業務員/員工號4、要求完成時間【問題3】(4分)用戶申請:主鍵:申請號外鍵:用戶號,業務員策劃任務:主鍵:申請號外鍵:申請號【問題4】(2分)不正確,All-key關系模型的所有屬性組組成該關系模式的候選碼,稱為全碼。即所有屬性當作一個碼。若關系中只有一個候選碼,且這個候選碼中包含全部屬性,則該候選碼為全碼。策劃任務中的任務明細和要求完成時間不包括全部屬性,因此不是全碼。解析:[問答題]5.閱讀下列說明和?C?代碼,回答問題?1?至問題?2,將解答寫在答題紙的對應欄內。【說明】一個無向連通圖?G?點上的哈密爾頓(Hamiltion)回路是指從圖?G?上的某個頂點出發,經過圖上所有其他頂點一次且僅一次,最后回到該頂點的路勁。一種求解無向圖上哈密爾頓回路算法的基礎私下如下:假設圖?G?存在一個從頂點?V0?出發的哈密爾頓回路?V1--V2--V3--...--Vn-1--V0。算法從頂點?V0?出發,訪問該頂點的一個未被訪問的鄰接頂點?V1,接著從頂點?V1?出發,訪問?V1?一個未被訪問的鄰接頂點?V2,..。;對頂點?Vi,重復進行以下操作:訪問?Vi?的一個未被訪問的鄰接接點?Vi+1;若?Vi?的所有鄰接頂點均已被訪問,則返回到頂點?Vi-1,考慮Vi-1?的下一個未被訪問的鄰接頂點,仍記為?Vi;知道找到一條哈密爾頓回路或者找不到哈密爾頓回路,算法結束。【C?代碼】下面是算法的?C?語言實現。(1)常量和變量說明n:圖?G?中的頂點數c[][]:圖?G?的鄰接矩陣K:統計變量,當期已經訪問的定點數為?k+1x[k]:第?k?個訪問的頂點編號,從?0?開始Visited[x[k]]:第?k?個頂點的訪問標志,0?表示未訪問,1?表示已訪問⑵C?程序【問題?1】(10?分)根據題干說明。填充?C?代碼中的空(1)~(5)。【問題?2】(5?分)根據題干說明和?C?代碼,算法采用的設計策略為(),該方法在遍歷圖的頂點時,采用的是(?)方法(深度優先或廣度優先)。答案:【問題1】(10分)【問題2】(5分)回溯法、深度優先。解析:2017軟件水平考試(中級)軟件設計師真題及答案案例第02套[問答題]1.閱讀下列系統設計說明,回答問題1至問題3,將解答填入答題紙的對應欄內。【說明】某玩具公司正在開發一套電動玩具在線銷售系統,用于向注冊會員提供端對端的玩具定制和銷售服務。在系統設計階段,"創建新訂單?(NewOrder)"?的設計用例詳細描述如表3-1所示,候選設計類分類如表3-2所示,并根據該用例設計出部分類圖如圖3-1所示。在訂單處理的過程中,會員可以點擊?取消訂單"取消該訂單。如果支付失敗,該訂單將被標記為掛起狀態,可后續重新支付,如果掛起超時30分鐘未支付,系統將自動取消該訂單。訂單支付成功后,系統判斷訂單類型:(1)對于常規訂單,標記為備貨狀態,訂單信息發送到貨運部,完成打包后交付快遞發貨;(2)對于定制訂單,會自動進入定制狀態,定制完成后交付快遞發貨。會員在系統中點擊?收貨"按鈕變為收貨狀態,結束整個訂單的處理流程。根據訂單處理過程所設計的狀態圖如圖3-2所示。圖3-2訂單狀態圖?【問題1】(6分)根據表3-1中所標記的候選設計類,請按照其類別將編號C1~C12分別填入表3-2?中的(a)、(b)和(c)處。【問題2】(4分)根據創建新訂單的用例描述,請給出圖3-1中X1~X4處對應類的名稱。【問題3】(5分)根據訂單處理過程的描述,在圖3-2中S1~S5處分別填入對應的狀態名稱。答案:【問題1】(6分)(a):C4、C5、C7、C10、C11(b):C3、C8(c):C1、C2、C6、C9、C12【問題2】(4分)X1:收貨地址X2:支付方式X3:郵箱地址X4:定制屬性【問題3】(5分)S1:訂單掛起S2:訂單備貨S3:訂單定制S4:訂單發貨S5:訂單收貨解析:[問答題]2.閱讀下列說明和圖,回答問題1至問題4,將解答填入答題紙的對應欄內。【說明】某醫療器械公司作為復雜醫療產品的集成商,必須保持高質量部件的及時供應。為了實現這一目標,該公司欲開發一采購系統。系統的主要功能如下:1.檢查庫存水平。采購部門每天檢查部件庫存量,當特定部件的庫存量降至其訂貨點時,返回低存量部件及庫存量。2.下達采購訂單。采購部門針對低存量部件及庫存量提交采購請求,向其供應商(通過供應商文件訪問供應商數據)下達采購訂單,并存儲于采購訂單文件中。3.?交運部件。當供應商提交提單并交運部件時,運輸和接收(S/R)部門通過執行以下三步過程接收貨物:(1)驗證裝運部件。通過訪問采購訂單并將其與提單進行比較來驗證裝運的部件,并將提單信息發給?S/R?職員。如果收貨部件項目出現在采購訂單和提單上,則已驗證的提單和收貨部件項目將被送去檢驗。否則,將S/R職員提交的裝運錯誤信息生成裝運錯誤通知發送給供應商。(2)?檢驗部件質量。通過訪問質量標準來檢查裝運部件的質量,并將己驗證的提單發給檢驗員。如果部件滿足所有質量標準,則將其添加到接受的部件列表用于更新部件庫存。如果部件未通過檢查,則將檢驗員創建的缺陷裝運信息生成缺陷裝運通知發送給供應商。(3)更新部件庫存。庫管員根據收到的接受的部件列表添加本次采購數量,與原有庫存量累加來更新庫存部件中的庫存量。標記訂單采購完成。現采用結構化方法對該采購系統進行分析與設計,獲得如圖1-1?所示的上下文數據流圖和圖?1-2?所示的?0?層數據流圖。圖1-1上下文數據流圖圖1-20層數據流圖【問題1】(5分)使用說明中的詞語,給出圖1-1中的實體E1~E5【問題2】?(4分)?使用說明中的詞語,給出圖1-2中的數據存儲D1~D4的名稱。【問題3】(4分)?根據說明和圖中術語,補充圖1-2中缺失的數據流及其起點和終點。【問題4】用?200?字以內文字,說明建模圖?1-1?和圖?1-2?時如何保持數據流圖平衡。答案:【問題1】【問題1】(5分)E1:供應商E2:采購部門E3:檢驗員E4:庫管員E5:S/R職員【問題2】(4分)D1:庫存表D2:采購訂單表D3:質量標準表D4:供應商表【問題3】(4分)檢查庫存信息:P1(檢查庫存水平)D1(部件庫存表)產品送檢:P3(驗證裝運部件)P4(校驗部件質量)裝運錯誤通知:P3(驗證裝運部件)E1(供應商)缺陷裝運通知:P4(校驗部件質量)E1(供應商)【問題4】(2分)父圖中某個加工的輸入輸出數據流必須與其子圖的輸入輸出數據流在數量上和內容上保持一致。父圖的一個輸入(或輸出)數據流對應子圖中幾個輸入(或輸出)數據流,而子圖中組成的這些數據流的數據項全體正好是父圖中的這一個數據流。解析:[問答題]3.閱讀下列說明和?C++代碼,將應填入(n)處的字句寫在答題紙的對應欄內。【說明】閱讀下列說明和?Java代碼,將應填入?(n)?處的字句寫在答題紙的對應欄內。【說明】某快餐廳主要制作并出售兒童套餐,一般包括主餐(各類比薩)、飲料和玩具,其餐品種類可能不同,但其制作過程相同。前臺服務員?(Waiter)?調度廚師制作套餐。現采用生成器?(Builder)?模式實現制作過程,得到如圖?6-1?所示的類圖。答案:解析:[問答題]4.閱讀下列說明,回答問題1至問題3,將解答填入答題紙的對應欄內。【說明】某房屋租賃公司擬開發一個管理系統用于管理其持有的房屋、租客及員工信息。請根據下述需求描述完成系統的數據庫設計。【需求描述】1.公司擁有多幢公寓樓,每幢公寓樓有唯一的樓編號和地址。每幢公寓樓中有多套公寓,每套公寓在樓內有唯一的編號(不同公寓樓內的公寓號可相同〉。系統需記錄每套公寓的臥室數和衛生間數。2.員工和租客在系統中有唯一的編號(員工編號和租客編號)。3.對于每個租客,系統需記錄姓名、多個聯系電話、一個銀行賬號(方便自動扣房租)、一個緊急聯系人的姓名及聯系電話。4.系統需記錄每個員工的姓名、一個聯系電話和月工資。員工類別可以是經理或維修工,也可兼任。每個經理可以管理多幢公寓樓。每幢公寓樓必須由一個經理管理。系統需記錄每個維修工的業務技能,如:水暖維修、電工、木工等。5.?租客租賃公寓必須和公司簽訂租賃合同。一份租賃合同通常由一個或多個租客(合租)與該公寓樓的經理簽訂,一個租客也可租賃多套公寓。合同內容應包含簽訂日期、開始時間、租期、押金和月租金。【概念模型設計】根據需求階段收集的信息,設計的實體聯系圖(不完整)如圖2-1所示。圖2-1?實體聯系圖【邏輯結構設計】根據概念摸型設計階段完成的實體聯系圖,得出如下關系模式(不完整):聯系電話(電話號碼,租客編號)租客(租客編號,姓名,銀行賬號,聯系人姓名,聯系人電話)員工(員工編號,姓名,聯系電話,類別,月工資,(a)?)公寓樓((b)?,地址,經理編號)公寓(樓編號,公寓號,臥室數,衛生間數〉合同(合同編號,租客編號,樓編號,公寓號,經理編號,簽訂日期,起始日期,租期,?(c),押金)【問題1】(4.5分)補充圖2-1中的?簽約?聯系所關聯的實體及聯系類型。【問題2】(4.5分)補充邏輯結構設計中的(a)、(b)、(c)三處空缺。【問題3】(6分)在租期內,公寓內設施如出現問題,租客可在系統中進行故障登記,填寫故障描述,每項故障由系統自動生成唯一的故障編號,由公司派維修工進行故障維修,系統需記錄每次維修的維修日期和維修內容。請根據此需求,對圖2-1進行補充,并將所補充的ER圖內容轉換為一個關系模式,請給出該關系模式。答案:【問題1】(4.5分)【問題2】(4.5分)(a)業務技能(b)樓編號(c)月租金【問題3】(6分)新增維修關系,維修工維修公寓,關系模式為維修情況維修情況(故障編號,員工編號,樓編號,公寓號,維修日期,維修內容)解析:[問答題]5.閱讀下列說明和C代碼,回答問題?1?至問題?3,將解答寫在答題紙的對應欄內。【說明】假幣問題:有n枚硬幣,其中有一枚是假幣,己知假幣的重量較輕。現只有一個天平,要求用盡量少的比較次數找出這枚假幣。【分析問題】將n枚硬幣分成相等的兩部分:(1)當n為偶數時,將前后兩部分,即?1...n/2和n/2+1...0,放在天平的兩端,較輕的一端里有假幣,繼續在較輕的這部分硬幣中用同樣的方法找出假幣:(2)當n為奇數時,將前后兩部分,即1..(n-1)/2和(n+1)/2+1...0,放在天平的兩端,較輕的一端里有假幣,繼續在較輕的這部分硬幣中用同樣的方法找出假幣;若兩端重量相等,則中間的硬幣,即第?(n+1)/2枚硬幣是假幣。【問題一】(6分)根據題干說明,填充C代碼中的空(1)-(3)【問題二】(4分)根據題干說明和C代碼,算法采用了()設計策略。【問題三】(4分)若輸入的硬幣數為30,則最少的比較次數為(?),最多的比較次數為()。答案:【問題一】(6分)(1)first+(last-first)/2或(first+last)/2(2)firstSum<lastSum(3)first+(last-first)/2或(first+last)/2【問題二】(4分)分治法、O(nlogn)【問題三】(4分)2、4解析:2018軟件水平考試(中級)軟件設計師真題及答案案例[問答題]1.閱讀下列說明,回答問題1至問題4,將解答填入答題紙的對應欄內。【說明】某集團公司擁有多個分公司,為了方便集團公司對分公司各項業務活動進行有效管理,集團公司決定構建一個信息系統以滿足公司的業務管理需求。【需求分析】1.分公司關系需要記錄的信息包括分公司編號、名稱、經理、聯系地址和電話。分公司編號唯一標識分公司信息中的每一個元組。每個分公司只有一名經理,負責該分公司的管理工作。每個分公司設立僅為本分公司服務的多個業務部門,如研發部、財務部、采購部、銷售部等。2.部門關系需要記錄的信息包括部門號、部門名稱、主管號、電話和分公司編號。部門號唯一標識部門信息中的每一個元組。每個部門只有一名主管,負責部門的管理工作。每個部門有多名員工,每名員工只能隸屬于一個部門。3.員工關系需要記錄的信息包括員工號、姓名、隸屬部門、崗位、電話和基本工資。其中,員工號唯一標識員工信息中的每一個元組。崗位包括:經理、主管、研發員、業務員等。【概念模型設計】根據需求階段收集的信息,設計的實體聯系圖和關系模式(不完整)如圖2-1所示:【關系模式設計】分公司(分公司編號,名稱,(a),聯系地址,電話)部門(部門號,部門名稱,(b),電話)員工(員工號,姓名(c),電話,基本工資)【問題1】(4分)根據問題描述,補充4個聯系,完善圖2-1的實體聯系圖。聯系名可用聯系1、聯系2、聯系3和聯系4代替,聯系的類型為1:1、1:n和m:n(或1:1、1:*和*:*)。【問題2】(5分)根據題意,將關系模式中的空(a)-(c)補充完整。【問題3】(4分)給出"部門"和"員工"關系模式的主鍵和外鍵。【問題4】(2分)假設集團公司要求系統能記錄部門歷任主管的任職時間和任職年限,那么是否需要在數據庫設計時增設一個實體?為什么?答案:【問題1】(4分)答:【問題2】(5分)答:(a)經理(b)主管號,分公司編號(c)隸屬部門,崗位【問題3】(4分)答:部門主鍵:部門號外鍵:分公司編號,主管號員工主鍵:員工號外鍵:隸屬部門【問題4】(2分)答:不需要增加實體。因為它可以直接歸屬到聯系當中,他的聯系可以直接寫成關系模式,所以不需要增加實體。解析:[問答題]2.閱讀下列說明和Java代碼,將應填入(n)處的字句寫在答題紙的對應欄內。【說明】某航空公司的會員積分系統將其會員劃分為:普卡(Basic)、銀卡(Silver)和金卡(Gold)三個等級。非會員(NonMember)可以申請成為普卡會員。會員的等級根據其一年內累積的里程數進行調整。描述會員等級調整的狀態圖如圖6-1所示。現采用狀態(State)模式實現上述場景,得到如圖6-2所示的類圖。答案:(1)abstractdoubletravel(intmiles,FrequentFlyercontext)(2)context.setState(newCSilver())(3)context.setState(newCGold())(4)context.setState(newCSilver())(5)context.setState(newCBasic())解析:[問答題]3.閱讀下列說明和C++代碼,回答問題,將解答填入答題紙的對應欄內。【說明】某航空公司的會員積分系統將其會員劃分為:普卡(Basic)、銀卡(Silver)和金卡(Gold)三個等級。非會員(NonMember)可以申請成為普卡會員。會員的等級根據其一年內累積的里程數進行調整。描述會員等級調整的狀態圖如圖5-1所示。現采用狀態(State)模式實現上述場景,得到如圖5-2所示的類圖。【問題1】(15分)閱讀上述說明和C++代碼,將應填入(n)處的字句寫在答題紙的對應欄內。答案:注意:原版的題目應該是Cbasic、CSilve。(1)virtualdoubletravel(intmiles,FrequentFlyer*context)=0(2)context->setState(context->Cbasic)(3)context->setState(context->CSilve)(4)context->setState(context->Cbasic)(5)context->setState(context->CSilve)解析:[問答題]4.閱讀下列說明和圖,回答問題1至問題4,將解答填入答題紙的對應欄內。【說明】某房產中介連鎖企業欲開發一個基于Web的房屋中介信息系統,以有效管理房源和客戶,提高成交率。該系統的主要功能是:1.房源采集與管理。系統自動采集外部網站的潛在房源信息,保存為潛在房源。由經紀人聯系確認的潛在房源變為房源,并添加出售/出租房源的客戶。由經紀人或客戶登記的出售/出租房源,系統將其保存為房源。房源信息包括基本情況、配套設施、交易類型、委托方式、業主等。經紀人可以對房源進行更新等管理操作。2.客戶管理。求租/求購客戶進行注冊、更新,推送客戶需求給經紀人,或由經紀人對求租/求購客戶進行登記、更新。客戶信息包括身份證號、姓名、手機號、需求情況、委托方式等。3.房源推薦。根據客戶的需求情況(求購/求租需求情況以及出售/出租房源信息),向已登錄的客戶推薦房源。4.交易管理。經紀人對租售客戶雙方進行交易信息管理,包括訂單提交和取消,設置收取中介費比例。財務人員收取中介費之后,表示該訂單已完成,系統更新訂單狀態和房源狀態,向客戶和經紀人發送交易反饋。5.信息查詢。客戶根據自身查詢需求查詢房屋供需信息。現采用結構化方法對房屋中介信息系統進行分析與設計,獲得如圖1-1所示的上下文數據流圖和圖1-2所示的0層數據流圖。【問題1】(4分)使用說明中的詞語,給出圖1-1中的實體E1-E4的名稱。【問題2】(4分)使用說明中的詞語,給出圖1-2中的數據存儲Dl-D4的名稱。【問題3】(3分)根據說明和圖中術語,補充圖1-2中缺失的數據流及其起點和終點。【問題4】(4分)根據說明中術語,給出圖1-1中數據流"客戶信息"、"房源信息"的組成。答案:【問題1】(4分)答:E1客戶E2經紀人E3財務人員E4外部網站【問題2】(4分)答:D1客戶信息表/客戶記錄表D2潛在房源表mmm/mnD3房源表D4訂單記錄表【問題3】(3分)【問題4】(4分)答:房源信息包括基本情況、配套設施、交易類型、委托方式、主業等。客戶信息包括身份證號、姓名、手機號、需求情況、委托方式等解析:[問答題]5.閱讀下列說明和圖,回答問題,將解答填入答題紙的對應欄內。【說明】社交網絡平臺(SNS)的主要功能之一是建立在線群組,群組中的成員之間可以互相分享或挖掘興趣和活動。每個群組包含標題、管理員以及成員列表等信息。社交網絡平臺的用戶可以自行選擇加入某個群組。每個群組擁有
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 石油開采業的資源儲量與利用現狀考核試卷
- 竹材在復合材料領域的應用考核試卷
- 電子電路的智能城市基礎設施建設考核試卷
- 童車制造企業市場拓展與渠道建設考核試卷
- 電視機制造業的可持續發展目標與實現路徑考核試卷
- 那一段什么的時光初三語文作文
- 理想初二語文作文
- 工藝美術創新與實踐考核試卷
- 移動通信技術在智慧金融的應用考核試卷
- 紙張與紙板生產中的質量檢測與控制考核試卷
- 醫院工作中常見的法律風險和對策專家講座
- 大學生創業計劃書-校園跑腿PPT
- 2023年湖南省中學生生物學奧林匹克競賽選拔賽試題及答案
- 升壓站建筑工程施工作業指導書
- GB/T 27548-2011移動式升降工作平臺安全規則、檢查、維護和操作
- GB/T 24825-2009LED模塊用直流或交流電子控制裝置性能要求
- 2023年湖南公務員面試真題及解析匯總
- 部編人教版語文九年級下冊《18天下第一樓》課件
- 2023年東莞市網格員招聘筆試題庫及答案解析
- 老舊小區改造要素設計課件
- 社交網絡分析
評論
0/150
提交評論