2018年上半年(下午)《軟件設(shè)計(jì)師》真題
《2018年上半年(下午)《軟件設(shè)計(jì)師》真題》由會(huì)員分享,可在線閱讀,更多相關(guān)《2018年上半年(下午)《軟件設(shè)計(jì)師》真題(9頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、2018年上半年(下午)《軟件設(shè)計(jì)師》真題 注意:圖片可根據(jù)實(shí)際需要調(diào)整大小 卷面總分:6分 答題時(shí)間:240分鐘 試卷題量:6題 練習(xí)次數(shù):0次 問答題 (共6題,共6分) 1.某ETC(ElectronicTollCollection,不停車收費(fèi))系統(tǒng)在高速公路沿線的特定位置上設(shè)置一個(gè)橫跨道路上空的龍門架(Tollgantry),龍門架下包括6條車道(Trafficlanes),每條車道上安裝有雷達(dá)傳感器(Radarsensor)、無線傳輸器(Radiotransceiver)和數(shù)碼相機(jī)(Digita
2、lCamera)等用于不停車收費(fèi)的設(shè)備,以完成正常行駛速度下的收費(fèi)工作。該系統(tǒng)的基本工作過程如下: (1)每輛汽車上安裝有車載器,駕駛員(Driver)將一張具有唯一識(shí)別碼的磁卡插入車載器中。磁卡中還包含有駕駛員賬戶的當(dāng)前信用記錄。 (2)當(dāng)汽車通過某條車道時(shí),不停車收費(fèi)設(shè)備識(shí)別車載器內(nèi)的特有編碼,判斷車型,將收集到的相關(guān)信息發(fā)送到該路段所屬的區(qū)域系統(tǒng)(Regionalcenter)中,計(jì)算通行費(fèi)用,創(chuàng)建收費(fèi)交易(Transaction),從駕駛員的專用賬戶中扣除通行費(fèi)用。如果駕駛員賬戶透支,則記錄透支賬戶交易信息。區(qū)域系統(tǒng)再將交易后的賬戶信息發(fā)送到維護(hù)駕駛員賬戶信息的中心系統(tǒng)(Centr
3、alsystem)。 (3)車載器中的磁卡可以使用郵局的付款機(jī)進(jìn)行充值。充值信息會(huì)傳送至中心系統(tǒng),以更新駕駛員賬戶的余額。 (4)當(dāng)沒有安裝車載器或者車載器發(fā)生故障的車輛通過車道時(shí),車道上的數(shù)碼相機(jī)將對車輛進(jìn)行拍照,并將車輛照片及拍攝時(shí)間發(fā)送到區(qū)域系統(tǒng),記錄失敗的交易信息;并將該交易信息發(fā)送到中心系統(tǒng)。 (5)區(qū)域系統(tǒng)會(huì)獲取不停車收費(fèi)設(shè)備所記錄的交通事件(Trafficevents);交通廣播電臺(tái)(Trafficadvicecenter)根據(jù)這些交通事件進(jìn)行路況分析并播報(bào)路況。 現(xiàn)采用面向?qū)ο蠓椒▽ι鲜鱿到y(tǒng)進(jìn)行分析與設(shè)計(jì),得到如表3-1所示的用例列表以及如圖3-1所示的用例圖和圖3-2
4、所示的分析類圖。 【問題1】(4分) 根據(jù)說明中的描述,給出圖3-1中A1~A4所對應(yīng)的參與者名稱。 【問題2】(5分) 根據(jù)說明中的描述及表3-1,給出圖3-1中U1~U5所對應(yīng)的用例名稱。 【問題3】(6分) 根據(jù)說明中的描述,給出圖3-2中C1~C6所對應(yīng)的類名。 正確答案: 本題解析: 【問題1】 A1:Central system或中心系統(tǒng) A2:Driver或駕駛員 A3:Regional center或區(qū)域系統(tǒng) A4:Traffic advice cen
5、ter或交通廣播電臺(tái) 其中A1、A2或以互換;A3、A4可以互換。 【問題2】 U1:Underpaid transaction U2:Record Illegal use U3:Create transaction U4:Record traffic event U5:Charge card 其中U1、U2可以互換,用例名稱必須為英文,因?yàn)楸碇械臐h字是對用例的說明。 【問題3】 C1:Central system C2:Toll gantry C3:Traffic lanes C4:Radar sensor C5:Radio transceiver C6:Dig
6、ital Camera 其中C4、C5、C6可以互換。 本題是對UML用例圖和類圖的結(jié)合考查。 根據(jù)題目給出的用例表格,用例名一定要用英文進(jìn)行填寫,一般圖示中建議統(tǒng)一用中文后者英文,用例名用英文填寫,那么參與者建議也用英文表示。類圖中已出現(xiàn)的類名已經(jīng)用英文,填空時(shí)也盡量用英文填空。 在本題中由于用例圖的缺失,【問題1】和【問題2】需要結(jié)合思考。 首先根據(jù)提示可以看到,A1、A2使用都是用例U3、U5;A3、A4使用的都是用例U4,因此A1、A2可互換,A3、A4可互換,并且參與者要根據(jù)用例才能確定。 首先分析給出的用例表格,其中與交易相關(guān)的有用例Create transaction
7、記錄交易信息(寫作創(chuàng)建交易信息更明確一些)、Underpaid transaction記錄透支賬戶交易信息、Record Illegal use記錄失敗交易信息,另外兩個(gè)用例,Charge card磁卡充值與交易有一定的關(guān)聯(lián),而Record traffic event記錄交通事件是完全獨(dú)立的用例。 從記錄交通事件進(jìn)行分析,根據(jù)提干描述“區(qū)域系統(tǒng)會(huì)獲取不停車收費(fèi)設(shè)備所記錄的交通事件(Traffic events);交通廣播電臺(tái)(Traffic advice center)根據(jù)這些交通事件進(jìn)行路況分析并播報(bào)路況?!迸c獨(dú)立用例記錄交通事件相關(guān)的,有來年改革相關(guān)參與者,分別是區(qū)域系統(tǒng)和交通廣播電臺(tái),
8、根據(jù)用例圖圖示,U4是完全獨(dú)立的用例,即為U4,與之相關(guān)的參與者A3、A4即為Regional center區(qū)域系統(tǒng)與Traffic advice center交通廣播電臺(tái),A3和A4位置可互換。 U1、U2、U3是一組相關(guān)用例,其中U3有兩個(gè)擴(kuò)展用例,分別是U1、U2,根據(jù)題目查找擴(kuò)展關(guān)系。擴(kuò)展關(guān)系:在基礎(chǔ)用例中,出現(xiàn)某些特殊條件才執(zhí)行的,屬于擴(kuò)展用例,一般有“若”“如果”等類似描述。根據(jù)表格給定的用例名和題干說明“當(dāng)汽車通過某條車道時(shí),…,計(jì)算通行費(fèi)用,創(chuàng)建收費(fèi)交易(Transaction),…。如果駕駛員賬戶透支,則記錄透支賬戶交易信息。區(qū)域系統(tǒng)再將交易后的賬戶信息發(fā)送到維護(hù)駕駛員賬戶
9、信息的中心系統(tǒng)(Central system)”、“當(dāng)沒有安裝車載器或者車載器發(fā)生故障的車輛通過車道時(shí),車道上的數(shù)碼相機(jī)將對車輛進(jìn)行拍照,并將車輛照片及拍攝時(shí)間發(fā)送到區(qū)域系統(tǒng),記錄失敗的交易信息;并將該交易信息發(fā)送到中心系統(tǒng)?!?,只有記錄透支賬戶交易信息和記錄失敗交易信息是某種情況下的描述,即二者是記錄收費(fèi)交易的擴(kuò)展,因此U3是Create transaction記錄收費(fèi)交易(創(chuàng)建收費(fèi)交易作為說明更恰當(dāng)),U1和U2分別是Underpaid transaction記錄透支賬戶交易信息、Record Illegal use記錄失敗交易信息,U1和U2可互換。剩下U5即為Charge card磁卡
10、充值。 根據(jù)提干描述“車載器中的磁卡可以使用郵局的付款機(jī)進(jìn)行充值。充值信息會(huì)傳送至中心系統(tǒng),以更新駕駛員賬戶的余額”與充值相關(guān)的信息最終會(huì)傳送至Central system中心系統(tǒng),另外這里雖然沒有明確給出,但磁卡的擁有者是駕駛員,使用充值功能的一定是駕駛員進(jìn)行充值,因此A1和A2分別是Central system中心系統(tǒng)和Driver駕駛員,二者位置可互換。 【問題3】 類名填空需要結(jié)合類圖中的關(guān)系進(jìn)行分析。 先從C4、C5、C6與C3的一個(gè)多組合關(guān)系。題干中只有龍門架由三個(gè)部分組成。 C1與Regional Center對應(yīng)關(guān)系是1個(gè)對象對應(yīng)多個(gè)對象,C1只可能為中心系統(tǒng)。 然
11、后題干(5)中獲取龍門架的所有記錄叫交通事件。且一個(gè)Regional Center有多個(gè)C2對象與之對應(yīng)。 2.生成器(Builder)模式的意圖是將一個(gè)復(fù)雜對象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。圖5-1所示為其類圖。 【C++代碼】 #include<iostream> #include<string> using namespace std; class Product{ private: string partA,partB; public: Product( ?。﹞} void setPartA(cons
12、t string&s){PartA=s;} void setPartB(const string&s){PartB=s;} //其余代碼省略 }; class Builder{ public: (1); virtual void buildPartB( )=0; (2); }; class ConcreteBuilder1:public Builder{ private: Product*product; public: ConcreteBuilder1( ?。﹞product=new Product( ?。?} void buildPartA( ?。﹞(3)(
13、"Component A");} void buildPartB( ){(4)("Component B");} Product*getResult( ?。﹞return product;} //其余代碼省略 }; class ConcreteBuilder2:public Builder{ /*代碼省略*/ }; class Director{ private: Builder*builder; public: Director(Builder*pBuilder){builder=pBuilder;} void construct( ){ (5); //其余
14、代碼省略 } //其余代碼省略 }; int main( ){ Director*director1=new Director(new ConcreteBuilder1( ?。?; director1->construct( ?。? delete director1; return 0; } 正確答案: 本題解析: (1)virtual void buildPartA()=0 (2)virtual Product*getResult()=0 (3)product->setPart
15、A (4)product->setPartB (5)builder->buildPartA(); 或builder->buildPartB(); 本題考查的是面向?qū)ο蟪绦蛟O(shè)計(jì),是JAVA語言與設(shè)計(jì)模式的結(jié)合考查。本題涉及的設(shè)計(jì)模式是構(gòu)建器模式,將復(fù)雜類的構(gòu)造過程推遲到子類實(shí)現(xiàn)。 對于第一空、第二空,根據(jù)實(shí)現(xiàn)接口的類,補(bǔ)充其接口缺失的方法,因此,空(1)和空(2)分別填寫:virtual void buildPartA()=0和virtual Product*getResult()=0,二者可以互換; 對于第三空、第四空,是根據(jù)product類方法進(jìn)行的補(bǔ)充,與具體產(chǎn)品的實(shí)現(xiàn)保持一致
16、,因此,分別填寫:product->setPartA,product->setPartB; 對于第五空,由于在填空后面跟隨的是代碼省略,因此題目并不嚴(yán)謹(jǐn),缺失的語句可以有builder->buildPartA();builder->buildPartB()。 3.某醫(yī)療護(hù)理機(jī)構(gòu)為老年人或有護(hù)理需求者提供專業(yè)護(hù)理,現(xiàn)欲開發(fā)一基于Web的醫(yī)療管理系統(tǒng),以改善醫(yī)療護(hù)理效率。該系統(tǒng)的主要功能如下: (1)通用信息查詢??蛻籼峤煌ㄓ眯畔⒉樵冋埱?,查詢通用信息表,返回查詢結(jié)果。 (2)醫(yī)生聘用。醫(yī)生提出應(yīng)聘/辭職申請,交由主管進(jìn)行聘用/解聘審批,更新醫(yī)生表,并給醫(yī)生反
17、饋聘用/解聘結(jié)果;刪除解聘醫(yī)生的出診安排。 (3)預(yù)約處理。醫(yī)生安排出診時(shí)間,存入醫(yī)生出診時(shí)間表;根據(jù)客戶提交的預(yù)約查詢請求,查詢在職醫(yī)生及其出診時(shí)間等預(yù)約所需數(shù)據(jù)并返回;創(chuàng)建預(yù)約,提交預(yù)約請求,在預(yù)約表中新增預(yù)約記錄,更新所約醫(yī)生出診時(shí)間并給醫(yī)生發(fā)送預(yù)約通知;給客戶反饋預(yù)約結(jié)果。 (4)藥品管理。醫(yī)生提交處方,根據(jù)藥品名稱從藥品數(shù)據(jù)中查詢相關(guān)藥品庫存信息,開出藥品,更新對應(yīng)藥品的庫存以及預(yù)約表中的治療信息;給醫(yī)生發(fā)送“藥品已開出”反饋。 (5)報(bào)表創(chuàng)建。根據(jù)主管提交的報(bào)表查詢請求(報(bào)表類型和時(shí)間段),從預(yù)約數(shù)據(jù)、通用信息、藥品庫存數(shù)據(jù)、醫(yī)生以及醫(yī)生出診時(shí)間中進(jìn)行查詢,生成報(bào)表返回給主管
18、。 現(xiàn)采用結(jié)構(gòu)化方法對醫(yī)療管理系統(tǒng)進(jìn)行分析與設(shè)計(jì),獲得如圖1-1所示的上下文數(shù)據(jù)流圖和圖1-2所示的0層數(shù)據(jù)流圖。 【問題1】(3分) 使用說明中的詞語,給出圖1-1中的實(shí)體E1~E3的名稱。 【問題2】(5分) 使用說明中的詞語,給出圖1-2中的數(shù)據(jù)存儲(chǔ)D1~D5的名稱。 【問題3)(4分) 使用說明和圖中術(shù)語,補(bǔ)充圖1-2中缺失的數(shù)據(jù)流及其起點(diǎn)和終點(diǎn)。 【問題4】(3分) 使用說明中的詞語,說明“預(yù)約處理”可以分解為哪些子加工,并說明建模圖1-1和圖1-2是如何保持?jǐn)?shù)據(jù)流圖平衡。 正確答案:
19、 本題解析: 【問題1】 E1:客戶E2:醫(yī)生E3:主管 【問題2】 D1:通用信息表 D2:預(yù)約表 D3:醫(yī)生表 D4:出診時(shí)間表 D5:藥品庫存表 【問題3】 數(shù)據(jù)流:更新的出診時(shí)間起點(diǎn):P3終點(diǎn):D4 數(shù)據(jù)流:刪除的醫(yī)生出診安排起點(diǎn):P2終點(diǎn):D4 數(shù)據(jù)流:藥品庫存信息起點(diǎn):D5終點(diǎn):P4 數(shù)據(jù)流:治療信息起點(diǎn):P4終點(diǎn):D2 【問題4】 預(yù)約處理分解為:安排出診、預(yù)約查詢、創(chuàng)建預(yù)約、預(yù)約反饋。 即保持父圖與子圖之間的平衡:父圖中某個(gè)加工的輸入輸出數(shù)據(jù)流必須與其子圖的輸入輸出數(shù)據(jù)流在數(shù)量上和名字上相同。父圖的一個(gè)輸入(或輸出)數(shù)據(jù)流對應(yīng)于子
20、圖中幾個(gè)輸入(或輸出)數(shù)據(jù)流,而子圖中組成的這些數(shù)據(jù)流的數(shù)據(jù)項(xiàng)全體正好是父圖中的這一個(gè)數(shù)據(jù)流。 本題是對數(shù)據(jù)流圖的考查,題型是傳統(tǒng)的考題,主要參考題干說明找到答案。 【問題1】 本題要求找到對應(yīng)的實(shí)體名稱。 根據(jù)題干敘述,“客戶提交通用信息查詢請求,查詢通用信息表,返回查詢結(jié)果”,綜合圖示,提交通用信息查詢請求的是實(shí)體E1,即客戶。 根據(jù)題干敘述,“醫(yī)生提出應(yīng)聘/辭職申請,交由主管進(jìn)行聘用/解聘審批”,綜合圖示,提出辭職/應(yīng)聘申請的是E2,即醫(yī)生,進(jìn)行審批的是E3,即主管。 【問題2】 本題要求找到對應(yīng)的存儲(chǔ)名稱。 根據(jù)題干描述,“客戶提交通用信息查詢請求,查詢通用信息表,返回
21、查詢結(jié)果”,綜合圖示,接收查詢請求,返還查詢結(jié)果的是通用信息表,即D1; 根據(jù)題干描述,“醫(yī)生提出應(yīng)聘/辭職申請,交由主管進(jìn)行聘用/解聘審批,更新醫(yī)生表”,綜合圖示,醫(yī)生聘用加工,會(huì)更新醫(yī)生表,即D3為醫(yī)生表; 根據(jù)題干描述,“安排出診時(shí)間,存入醫(yī)生出診時(shí)間表;根據(jù)客戶提交的預(yù)約查詢請求,查詢在職醫(yī)生及其出診時(shí)間等預(yù)約所需數(shù)據(jù)并返回;創(chuàng)建預(yù)約,提交預(yù)約請求,在預(yù)約表中新增預(yù)約記錄”,綜合圖示,與出診時(shí)間相關(guān)的是D4,即出診時(shí)間表,與新預(yù)約相關(guān)的是D2,即預(yù)約表; 根據(jù)題干描述,“醫(yī)生提交處方,根據(jù)藥品名稱從藥品數(shù)據(jù)中查詢相關(guān)藥品庫存信息”,綜合圖示,與藥品管理相關(guān)的是D5即藥品庫存表。
22、 【問題3】 本題考查補(bǔ)充數(shù)據(jù)流,可以根據(jù)父圖和子圖的平衡,再根據(jù)題干說明,查找缺失數(shù)據(jù)流。 本題檢查父圖數(shù)據(jù)流,都已出現(xiàn)在子圖中,詳細(xì)查看說明: “醫(yī)生聘用。醫(yī)生提出應(yīng)聘/辭職申請,交由主管進(jìn)行聘用/解聘審批,更新醫(yī)生表,并給醫(yī)生反饋聘用/解聘結(jié)果;刪除解聘醫(yī)生的出診安排?!贝颂幦鄙贁?shù)據(jù)流刪除解聘醫(yī)生的出診安排,數(shù)據(jù)名稱更新出診安排,起點(diǎn)P2,終點(diǎn)是D4。 “創(chuàng)建預(yù)約,提交預(yù)約請求,在預(yù)約表中新增預(yù)約記錄,更新所約醫(yī)生出診時(shí)間并給醫(yī)生發(fā)送預(yù)約通知;”,此處缺少數(shù)據(jù)流更新出診時(shí)間,起點(diǎn)是P3,終點(diǎn)是D4。 “醫(yī)生提交處方,根據(jù)藥品名稱從藥品數(shù)據(jù)中查詢相關(guān)藥品庫存信息”,此處缺少查詢相
23、關(guān)藥品庫存信息數(shù)據(jù)流,起點(diǎn)是D5,終點(diǎn)是P4; “開出藥品,更新對應(yīng)藥品的庫存以及預(yù)約表中的治療信息”,缺少更新預(yù)約表中的治療信息,數(shù)據(jù)名稱更新治療信息,起點(diǎn)P4,終點(diǎn)是預(yù)約表D2。 【問題4】 預(yù)約處理。醫(yī)生安排出診時(shí)間,存入醫(yī)生出診時(shí)間表;根據(jù)客戶提交的預(yù)約查詢請求,查詢在職醫(yī)生及其出診時(shí)間等預(yù)約所需數(shù)據(jù)并返回;創(chuàng)建預(yù)約,提交預(yù)約請求,在預(yù)約表中新增預(yù)約記錄,更新所約醫(yī)生出診時(shí)間并給醫(yī)生發(fā)送預(yù)約通知;給客戶反饋預(yù)約結(jié)果。 預(yù)約處理分解為:安排出診、預(yù)約查詢、創(chuàng)建預(yù)約、預(yù)約反饋(更新出診時(shí)間、發(fā)送預(yù)約通知)。 即保持父圖與子圖之間的平衡:父圖中某個(gè)加工的輸入輸出數(shù)據(jù)流必須與其子圖的
24、輸入輸出數(shù)據(jù)流在數(shù)量上和名字上相同。父圖的一個(gè)輸入(或輸出)數(shù)據(jù)流對應(yīng)于子圖中幾個(gè)輸入(或輸出)數(shù)據(jù)流,而子圖中組成的這些數(shù)據(jù)流的數(shù)據(jù)項(xiàng)全體正好是父圖中的這一個(gè)數(shù)據(jù)流。 4.某海外代購公司為擴(kuò)展公司業(yè)務(wù),需要開發(fā)一個(gè)信息化管理系統(tǒng)。請根據(jù)公司現(xiàn)有業(yè)務(wù)及需求完成該系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì)。 【需求描述】 (1)記錄公司員工信息。員工信息包括工號(hào)、身份證號(hào)、姓名、性別和一個(gè)手機(jī)號(hào),工號(hào)唯一標(biāo)識(shí)每位員工,員工分為代購員和配送員。 (2)記錄采購的商品信息。商品信息包括商品名稱、所在超市名稱、采購價(jià)格、銷售價(jià)格和商品介紹,系統(tǒng)內(nèi)部用商品條碼唯一標(biāo)識(shí)每種商品。一種商品只在一
25、家超市代購。 (3)記錄顧客信息。顧客信息包括顧客真實(shí)姓名、身份證號(hào)(清關(guān)繳稅用)、一個(gè)手機(jī)號(hào)和一個(gè)收貨地址,系統(tǒng)自動(dòng)生成唯一的顧客編號(hào)。 (4)記錄托運(yùn)公司信息。托運(yùn)公司信息包括托運(yùn)公司名稱、電話和地址,系統(tǒng)自動(dòng)生成唯一的托運(yùn)公司編號(hào)。 (5)顧客登錄系統(tǒng)之后,可以下訂單購買商品。訂單支付成功后,系統(tǒng)記錄唯一的支付憑證編號(hào),顧客需要在訂單里指定運(yùn)送方式:空運(yùn)或海運(yùn)。 (6)代購員根據(jù)顧客的訂單在超市采購對應(yīng)商品,一份訂單所含的多個(gè)商品可能由多名代購員從不同超市采購。 (7)采購?fù)甑纳唐方挥膳渌蛦T根據(jù)顧客訂單組合裝箱,然后交給托運(yùn)公司運(yùn)送。托運(yùn)公司按顧客訂單核對商品名稱和數(shù)量,然后按
26、顧客的地址進(jìn)行運(yùn)送。 【概念模型設(shè)計(jì)】 根據(jù)需求階段收集的信息,設(shè)計(jì)的實(shí)體聯(lián)系圖(不完整)如圖2-1所示。 【邏輯結(jié)構(gòu)設(shè)計(jì)】 根據(jù)概念模型設(shè)計(jì)階段完成的實(shí)體聯(lián)系圖,得出如下關(guān)系模式(不完整): 員工(工號(hào),身份證號(hào),姓名,性別,手機(jī)號(hào)) 商品(條碼,商品名稱,所在超市名稱,采購價(jià)格,銷售價(jià)格,商品介紹) 顧客(編號(hào),姓名,身份證號(hào),手機(jī)號(hào),收貨地址) 托運(yùn)公司(托運(yùn)公司編號(hào),托運(yùn)公司名稱,電話,地址) 訂單(訂單ID,(a),商品數(shù)量,運(yùn)送方式,支付憑證編號(hào)) 代購(代購ID,代購員工號(hào),(b)) 運(yùn)送(運(yùn)送ID,配送員工號(hào),托運(yùn)公司編號(hào),訂單ID,發(fā)運(yùn)時(shí)間) 【問
27、題1】(3分) 根據(jù)問題描述,補(bǔ)充圖2-1的實(shí)體聯(lián)系圖。 【問題2】(6分) 補(bǔ)充邏輯結(jié)構(gòu)設(shè)計(jì)結(jié)果中的(a)、(b)兩處空缺。 【問題3】(6分) 為方便顧客,允許顧客在系統(tǒng)中保存多組收貨地址。請根據(jù)此需求,增加“顧客地址”弱實(shí)體,對圖2-1進(jìn)行補(bǔ)充,并修改“運(yùn)送”關(guān)系模式。 正確答案: 本題解析: 【問題1】 【問題2】 (a)商品條碼,顧客編號(hào) (b)訂單ID,商品條碼 【問題3】 新增一個(gè)弱實(shí)體顧客地址,新增一個(gè)聯(lián)系客戶收貨地址,聯(lián)連接顧客實(shí)體和顧客地址類型為1:*;弱
28、實(shí)體用雙矩型 運(yùn)送關(guān)系模式增加屬性:顧客地址 運(yùn)送(運(yùn)送ID,配送員工號(hào),托運(yùn)公司編號(hào),訂單ID,顧客地址,發(fā)運(yùn)時(shí)間) 【問題1】 根據(jù)題干描述,“采購?fù)甑纳唐方挥膳渌蛦T根據(jù)顧客訂單組合裝箱,然后交給托運(yùn)公司運(yùn)送?!逼渲信渌蛦T,托運(yùn)公司,和代購訂單商品,存在多對多的三元聯(lián)系。 【問題2】 訂單是商品與客戶之間多對多的聯(lián)系轉(zhuǎn)換而來,因此a空需要補(bǔ)充二者的主鍵,商品條碼和客戶編號(hào)。代購是代購員與代購訂單之間多對多的聯(lián)系轉(zhuǎn)換而來,因此,b空應(yīng)補(bǔ)充訂單的主鍵訂單ID,又因?yàn)椤耙环萦唵嗡亩鄠€(gè)商品可能由多名代購員從不同超市采購”,所以還需要補(bǔ)充商品條碼。 【問題3】 新增一個(gè)弱實(shí)體顧客
29、地址,新增一個(gè)聯(lián)系客戶收貨地址,聯(lián)連接顧客實(shí)體和顧客地址類型為1:*;弱實(shí)體用雙矩型。 運(yùn)送關(guān)系模式增加屬性:顧客地址 運(yùn)送(運(yùn)送ID,配送員工號(hào),托運(yùn)公司編號(hào),訂單ID,顧客地址,發(fā)運(yùn)時(shí)間) 5.生成器(Builder)模式的意圖是將一個(gè)復(fù)雜對象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。圖6-1所示為其類圖。 【Java代碼】 import java.util.*; class Product{ private String partA; private String partB; public Product( ?。﹞}
30、 public void setPartA(String s){partA=s;} public void setPartB(String s){partB=s;} } interface Builder{ public(1); public void buildPartB( ?。? public(2); } class ConcreteBuilder1 implements Builder{ private Product product; public ConcreteBuilder1( ?。﹞product=new Product( );} public voi
31、d buildPartA( ?。﹞(3)("Component A");} public void buildPartB( ){(4)("Component B");} public Product getResult( ?。﹞return product;} } class ConcreteBuilder2 implements Builder{ //代碼省略 } class Director{ private Builder builder; public Director(Builder builder){this.builder=builder;} public
32、void construct( ?。﹞ (5); //代碼省略 } } class Test{ public static void main(String[]args){ Director director1=new Director(new ConcreteBuilder1( ?。?; director1.construct( ); } } 正確答案: 本題解析: (1)void buildPartA() (2)Product getResult() (3)product.
33、setPartA (4)product.setPartB (5)builder.buildPartA(); 或builder.buildPartB() 本題考查的是面向?qū)ο蟪绦蛟O(shè)計(jì),是JAVA語言與設(shè)計(jì)模式的結(jié)合考查。本題涉及的設(shè)計(jì)模式是構(gòu)建器模式,將復(fù)雜類的構(gòu)造過程推遲到子類實(shí)現(xiàn)。 對于第一空、第二空,根據(jù)實(shí)現(xiàn)接口的類,補(bǔ)充其接口缺失的方法,因此,空(1)和空(2)分別填寫void buildPartA()和Product getResult(),二者可以互換; 對于第三空、第四空,是根據(jù)product類方法進(jìn)行的補(bǔ)充,與具體產(chǎn)品的實(shí)現(xiàn)保持一致,因此,分別填寫,product.s
34、etPartA,product.setPartB; 對于第五空,由于在填空后面跟隨的是代碼省略,因此題目并不嚴(yán)謹(jǐn),缺失的語句可以有builder.buildPartA();builder.buildPartB()。 6.某公司購買長鋼條,將其切割后進(jìn)行出售。切割鋼條的成本可以忽略不計(jì),鋼條的長度為整英寸。已知價(jià)格表p,其中pi(i=1,2,…,m)表示長度為i英寸的鋼條的價(jià)格?,F(xiàn)要求解使銷售收益最大的切割方案。 求解此切割方案的算法基本思想如下: 假設(shè)長鋼條的長度為n英寸,最佳切割方案的最左邊切割段長度為i英寸,則繼續(xù)求解剩余長度為n-i英寸鋼條的最佳切割
35、方案。考慮所有可能的i,得到的最大收益rn對應(yīng)的切割方案即為最佳切割方案。rn的遞歸定義如下: rn=max1≤i≤n(pi+rn-i) 對此遞歸式,給出自頂向下和自底向上兩種實(shí)現(xiàn)方式。 【C代碼】 /*常量和變量說明 n:長鋼條的長度 p[]:價(jià)格數(shù)組 */ #define LEN 100 int Top_Down_Cut_Rod(int p[],int n){/*自頂向下*/ int r=0; int i; if(n==0){ return 0; } for(i=1;(1);i++){ int tmp=p[i]+Top_Down_Cut_Rod(p,n-i)
36、; r=(r>=tmp)r:tmp; } return r; } int Bottom_Up_Cut_Rod(int p[],int n){/*自底向上*/ int r[LEN]={0}; int temp=0; int i,j; for(j=1;j<=n;j++){ temp=0; for(i=1;(2);i++){ temp=(3); } (4); } return r[n]; } 【問題1】(8分) 根據(jù)說明,填充C代碼中的空(1)~(4)。 【問題2】(7分) 根據(jù)說明和C代碼,算法采用的設(shè)計(jì)策略為(5)。 求解rn時(shí),自頂向下方法的時(shí)間復(fù)雜
37、度為(6);自底向上方法的時(shí)間復(fù)雜度為(7)(用O表示)。 正確答案: 本題解析: 【問題1】 (1):i<=n (2):i<=j (3):(temp>=p[i]+r[j-i])?temp:(p[i]+r[j-i]) (4):r[j]=temp 或 (3):(temp>=r[i]+r[j-i])?temp:(r[i]+r[j-i]) (4):r[j]=(temp>p[j])?temp:p[j]; 【問題2】 (5)動(dòng)態(tài)規(guī)劃法 (6)O(2n) (7)O(n2) 【問題1】 在自
38、頂向下實(shí)現(xiàn)過程中,n-i表示規(guī)模從大到小即n-1~0,即對應(yīng)i的初始值為1,結(jié)束值為n,第一空填寫i<=n,遞歸式也有范圍提示可以參照。 在自底向上實(shí)現(xiàn)過程中,采用雙重嵌套循環(huán),內(nèi)層循環(huán)從1~j,第二空填寫i<=j。 第三空和第四空比較復(fù)雜,是具體的實(shí)現(xiàn)過程,是本題的難點(diǎn)。 根據(jù)題干內(nèi)容,本題考查的是鋼條切割問題最優(yōu)化問題,求解的思路即先考慮最左側(cè)的切割考慮,再依次向右擴(kuò)展,中間的最優(yōu)解結(jié)果記錄在數(shù)組r[]中,并用temp中間變量傳遞最大值。 根據(jù)遞歸式rn=max1≤i≤n(pi+rn-i),即r[]最終結(jié)果是該過程的最大值,(3)空給temp賦值,那么(4)空應(yīng)該是將這個(gè)中間值傳給
39、最終的rn,也就是代碼中的r[j],即第四空填寫r[j]=temp,那么此時(shí)第三空對應(yīng)最大值的求取,也就是本算法的核心,這里的最大值是在1~j的規(guī)模范圍循環(huán)比較,用temp放置本輪結(jié)果,再與下一輪結(jié)果進(jìn)行比較,第三空temp=(temp>=p[i]+r[j-i])?(temp:(p[i]+r[j-i])。 【問題2】 題干中提到說考慮所有可能的i,得到最大收益的方式,而自底向上算法實(shí)現(xiàn)時(shí),使用到數(shù)組把其中最優(yōu)的解記錄,并用r[]記錄中間解,因此本題算法策略是動(dòng)態(tài)規(guī)劃法。 動(dòng)態(tài)規(guī)劃法自頂向下時(shí)需要對規(guī)模n進(jìn)行求取,此時(shí)需要遞歸至規(guī)模1并最終返回結(jié)果規(guī)模n的解并記錄,規(guī)模n-1同樣如此,時(shí)間復(fù)雜度較大,可以達(dá)到O(2n); 動(dòng)態(tài)規(guī)劃法自底向上時(shí)先求取規(guī)模1的解并記錄,然后查詢規(guī)模1的解從而求解規(guī)模2的解,以此類推,直至求取至規(guī)模n,有查詢和循環(huán)求解2層嵌套循環(huán),時(shí)間復(fù)雜度為O(n2)。
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 24香港璀璨的明珠
- 第02講 第一章 綜合布線基礎(chǔ)知識(shí)
- 預(yù)防傳染病課件
- 【創(chuàng)新設(shè)計(jì)】2011屆高考生物一輪復(fù)習(xí) 第5章單元綜合提升 細(xì)胞增殖、分化、衰老和凋亡課件 蘇教版必修1
- 512防震減災(zāi)安全教育班會(huì)課件
- 2022年浙教初中數(shù)學(xué)八下《反證法》課件10
- 1山中訪友課后作業(yè)(A組-基礎(chǔ)篇)
- 產(chǎn)后出血完整版
- 質(zhì)量培訓(xùn)教材(2)
- 部編版一年級(jí)下冊語文課件第三單元語文園地三(完美版)
- 我最好老師課件
- 面向?qū)ο蟾呒?jí)應(yīng)用及C-sharp-語法新特性課件
- 堿金屬元素課件
- 部編人教版六年級(jí)語文下冊14《文言文二則-》學(xué)-弈課件
- 部編版六年級(jí)上冊語文課件--宇宙生命之謎