![[语言类考试复习资料大全]中级软件设计师下午试题分类模拟17_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-5/22/b18c8b1b-10c9-4b30-9216-0bc6caa9765b/b18c8b1b-10c9-4b30-9216-0bc6caa9765b1.gif)
![[语言类考试复习资料大全]中级软件设计师下午试题分类模拟17_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-5/22/b18c8b1b-10c9-4b30-9216-0bc6caa9765b/b18c8b1b-10c9-4b30-9216-0bc6caa9765b2.gif)
![[语言类考试复习资料大全]中级软件设计师下午试题分类模拟17_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-5/22/b18c8b1b-10c9-4b30-9216-0bc6caa9765b/b18c8b1b-10c9-4b30-9216-0bc6caa9765b3.gif)
![[语言类考试复习资料大全]中级软件设计师下午试题分类模拟17_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-5/22/b18c8b1b-10c9-4b30-9216-0bc6caa9765b/b18c8b1b-10c9-4b30-9216-0bc6caa9765b4.gif)
![[语言类考试复习资料大全]中级软件设计师下午试题分类模拟17_第5页](http://file2.renrendoc.com/fileroot_temp3/2021-5/22/b18c8b1b-10c9-4b30-9216-0bc6caa9765b/b18c8b1b-10c9-4b30-9216-0bc6caa9765b5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、书山有路勤为径,学海无涯苦作舟。祝愿天下莘莘学子:学业有成,金榜题名!语言类考试复习资料大全中级软件设计师下午试题分类模拟17中级软件设计师下午试题分类模拟17试题一阅读下列说明和C+代码,填入横线处的字句。问题:1. 说明 已知某企业的采购审批是分级进行的,即根据采购金额的不同由不同层次的主管人员来审批,主任可以审批5万元以下(不包括5万元)的采购单,副董事长可以审批5万10万元(不包括10万元)的采购单,董事长可以审批10万50万元(不包括50万元)的采购单,50万元及以上的采购单就需要开会讨论决定。 采用责任链设计模式(Chain of Responsibility)对上述过程进行设计后
2、得到的类图如下图所示。 C+程序 #include string #include iostream using namespace std; class PurchaseRequest public: double Amount; /一个采购的金额 int Number; /采购单编号 string Purpose; /采购目的 ; class Approver /审批者类 public: Approver() successor = NULL; virtual void ProcessRequest (PurchaseRequest aRequest) if (successor != N
3、ULL) successor_; void SetSuccessor (Approver *aSuccessor) successor = aSuccessor; private: _successor; ; class Congress : public Approver public: void ProcessRequest (PurchaseRequest aRequest) if (aRequest. Amount = 500000) /*决定是否审批的代码省略 */ else _ ProcessRequest (aRequest); ; class Director : public
4、 Approver public: void ProcessRequest (PurchaseRequest aRequest) /*此处代码省略*/ ; class President : public Approver public: void ProcessRequest (PurchaseRequest aRequest) /*此处代码省略*/ ; class VicePresident : public Approver public: void ProcessRequest (PurchaseRequest aRequest) /*此处代码省略*/ ; void main() Co
5、ngress Meeting; VicePresident Sam; Director Larry; President Tammy; /构造责任链 Meeting. SetSuccessor(NULL); Sam. SetSuccessor (_); Tammy. SetSuccessor (_); Larry. SetSuccessor (_); PurchaseRequest aRequest; /构造一采购审批请求 cin aRequest. Amount; /输入采购请求的金额 _. ProcessRequest (aRequest); /开始审批 return; 答案:Proces
6、sRequest(aRequest) Approver* Approver: class FlyBehavior public:_fly( )=0; ; class QuackBehavior public:_quack( )=0; ; class FlyWithWings : public FlyBehavior public: void fly( ) cout使用翅膀飞行! end1; ; class FlyNoWay : public FlyBehavior public: void fly( ) cout不能飞行! end1; ; class Quack :public QuackBe
7、havior public: void quack( ) cout发出嘎嘎声! end1; ; class Squeak :public QuackBehavior public: void quack( ) cout发出空气与橡皮摩擦声! end1; ; class QuackNoWay :public QuackBehavior public: void quack( ) cout不能发声! end1; ; Class Duck protected: FlyBehavior *_; QuackBehavior *_; public: void fly( ) _; void quack( )
8、 _; virtual void display( )=0; ; class RubberDuck: public Duck public: RubberDuck( ) flyBehavior=new _; quackBehavior=new _; RubberDuck( ) if (!flyBehaVior) delete flyBehavior; if (!quackBehavior) delete quackBehaVior; Void display( ) /*此处省略显示橡皮鸭的代码*/ ; /其他代码省略 答案:std virtual void virtual void flyBe
9、havior quackBehavior flyBehaviorfly( ) quackBehaviorquack( ) FlyNoWay( ) Squeak( ) 试题三阅读以下说明和C+代码,填入横线处的字句。问题:1. 说明 传输门是传输系统中的重要装置。传输门具有Open(打开)、Closed(关闭)、Opening(正在打开)、StayOpen(保持打开)、Closing(正在关闭)5种状态。触发传输门状态转换的事件有click、complete和timeout 3种。事件与其相应的状态转换如下图所示。 下面的C+程序1与C+程序2分别用两种不同的设计思路对传输门进行状态模拟,请填补
10、代码中的空缺。 C+程序1 const int CLOSED = 1; const int OPENING = 2; const int OPEN = 3; const int CLOSING = 4; const int STAYOPEN = 5; /定义状态变量,用不同整数表示不同状态 class Door private: int state; /传输门当前状态 void setState(int state) thisstate = state; /设置当前状态 public: Door( ):state(CLOSED); void getState( ) /根据当前状态输出相应的宁符
11、串 switch (stare) case OPENING: cout OPENING end1; break; case CLOSED: cout CLOSED end1; break; case OPEN: cout OPEN end1; break; case CLOSING: cout CLOSING end1; break; case STAYOPEN: cout STAYOPEN end1; break; void click( ) /发生click事件时进行状态转换 if (_) setState (OPENING); else if (_) setState (CLOSING)
12、; else if (_) setState (STAYOPEN); void timeout( ) /发生timeout事件时进行状态转换 if (state = OPEN) setState (CLOSING); void complete( ) /发生complete事件时进行状态转换 if (state = OPENING) aetState (OPEN); else if (state = CLOSZNG) setState (CLOSED); ; int main( ) Door aDoor; aDoor. getState( ); aDoor. click( ); aDoor.
13、getState( ); aDoor. complete( ); aDoor. getState( ); aDoor. click( ); aDoor. getState( ); aDoor. click( ); aDoor. getState( ); return 0; C+程序2 class Door public: DoorState *CLOSED, *OPENING, *OPEN, *CLOSING, *STAYOPEN, *state; Door( ); virtual Door( ) /释放申请的内存,此处代码省略; void setState (DoorState *state
14、) thisstate = state; void getState( ) /此处代码省略,本方法输出状态字符串, /例如,当前状态为CLOSED时,输出字符串为CLOSED ; void click( ); void timeout( ); void complete( ); ; Door:Door( ) CLOSED = new DoorClosed (this); OPENING = new DoorOpening (this); OPEN = new DoorOpen (this); CLOSING = new DoorClosing (this); STAYOPEN = new Do
15、orStayOpen (this); state = CLOSED; /设置当前传输门的状态为CLOSED void Door:click( ) _; void Door:timeout( ) _; void Door:complete( ) _; class DoorState /定义一个抽象的状态,它是所有状态类的基类 protected: Door *door; public: DoorState (Door *door) thisdoor = door; virtual DoorState (void); virtual void click( ) virtual void compl
16、ete( ) virtual void timeout( ) ; class DoorClosed :public DoorState /定义一个基本的Closed状态 public: DoorClosed (Door *door) :DoorState (door) virtual DoorClosed ( ) void click( ); ; void DoorClosed:click( ) _; /其他状态类的定义与实现代码省略 int main( ) Door aDoor; aDoor. getState( ); aDoor. click( ); aDoor. getState( );
17、 aDoor. complete( ); aDoor. getState( ); aDoor. timeout( ); aDoor. getState( ); return 0; 答案:state=CLOSED|state=CLOSING state=OPENING|state=STAYOPEN state=OPEN stateclick( ) statetimeout( ) statecomplete( ) doorsetState(doorOPENING) 试题四阅读下列说明、图和C+代码,填入横线处的字句。问题:1. 说明 某订单管理系统的部分UML类图如下图所示。 在图中,Produc
18、t表示产品,ProductList表示产品目录,Order表示产品订单,OrderItem表示产品订单中的一个条目,OrderList表示订单列表,SalesSystem提供订单管理系统的操作接口。 请完善类Order的成员函数getOrderedAmount( )类SalesSystem的statistic( )方法,各个类的属性及部分方法定义参见下面的C+代码。 C+程序 class Product /产品类 private: string pid; /产品识别码 string description; /产品描述 double price; /产品单价 public: void setP
19、roductPrice (double price); /设置产品单价 string getProductId( ); /获取产品以别码 string getProductDescription ( ); /获取产品描述 double getProductPrice( ); /获取产品单价 /其他成员省略 ; class ProductList /产品列表类 private: vector Product products; public: ProductList( ); Product getProductByIndex (int i); /获得产品列表中的第i件产品 void addPro
20、duct (Product t); /在产品列表中加入一件产品 Product * getProductByID (string pid); /获得识别码为pid的产品指针 unsigned int getProductAmount( ); /获得产品列表中的产品数量 ; class OrderItem /订单条目类 private: Product *productPtr; /指向被订购产品的指针 int quantity; /订购数量 public: OrderItem (Product *, int); Product *getProductptr( ); /获取指向被订购产品的指针 i
21、nt getQuantity( ); /获取被订购产品的数量 ; class Order /订单类 private: unsigned int orderid; /订单识别号 vectorOrderItem items; /订单内容(订单项) public: Order (unsigned int orderid); /获得识别码为tid的产品在当前订单中被订购的数量 int getOrderedAmount (string tid); void additem (Product *productPtr, unsigned int n); /在订单中增加一个订单项 /其他成员省略 ; clas
22、s OrderList /订单列表类 private: vectorOrder orders; public: OrderList( ); /Begin( )返回指向订单列表第一个元素的迭代器(指针) virtual vectorOrder:iterator OrderList:Begin( ); /End()返回指向订单列表最后一个元素之后的迭代器(指向一个不存在的元素) virtual vectorOrder:iterator OrderList:End( ); void addOrder (Order t); /在订单列表中加入一份订单 /其他成员省略 ; class SalesSystem private: ProductList catalog; /产品目录 OrderList sales; /订单列表 public: SalesSystem( ); void statistic( ); /统计所有产品的订购情况 /其他成员省略 ; /在订单中查找识别码为tid的产品的订购数量,若该产品没有被订购,则返回0 int Order:getOrderedAmount (s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人教版数学七年级下册知识点
- 粤教版地理八年级下册第六章第4节《西部地区》听课评课记录4
- 湘教版数学八年级下册1.2《直角三角形的性质和判定(II)》听评课记录
- 小学二年级数学100道口算题
- 湘教版数学七年级下册2.2.2《完全平方公式》听评课记录1
- 人教版数学七年级下册听评课记录9.1.1《 不等式及其解集》
- 2025年水利管理及技术咨询服务项目合作计划书
- 合伙开餐饮餐馆项目协议书范本
- 融资咨询代理协议书范本
- 网络设备租赁合同范本
- 2022年上海市初中毕业数学课程终结性评价指南
- DB15T 2058-2021 分梳绵羊毛标准
- 高考作文备考-议论文对比论证 课件14张
- (高职)银行基本技能ppt课件(完整版)
- 新华师大版七年级下册初中数学 7.4 实践与探索课时练(课后作业设计)
- 山东省莱阳市望岚口矿区页岩矿
- 《普通生物学教案》word版
- 机动车维修经营备案告知承诺书
- 安全生产应知应会培训课件
- 猴车司机试题
- 剪力墙、楼板开洞专项施工方案
评论
0/150
提交评论