阅读下列说明和C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。【说明】 某大型购物中心欲开发一套收银软件,要求其能够支持购物中心在不同时期推出的各种促销活动,如打折、返利(例如,满300返100)等等。现采用策略(Strategy)模式实现该要求,得到如图5-1所示的类图。 图5-1 策略模式类图 【C++代码】#include using namespace std;enum TYPE{NORMAL, CASH_DISCOUNT, CASH_RETURN};class CashSuper{public: (1);};class CashNormal : public CashSuper { //正常收费子类public: double acceptCash(double money) { retum money; }}; class CashDiscount : public CashSuper {private: double moneyDiscount; // 折扣率public: CashDiscount(double discount) { moneyDiscount=discount; } double acceptCash(double money) { retum money *moneyDiscount; }};class CashRetum : public CashSuper { // 满额返利private: double moneyCondition; // 满额数额 double moneyReturn; // 返利数额public: CashRetnm(doublemotieyCondition, double moneyReturn) { this->moneyCondition=moneyCondition; this->moneyReturn=moneyRetum; } double acceptCash(doublemoney) { double result =money; if(money>=moneyCondition) result=money-(int)(money/moneyCondition ) * moneyRetum; return result ; }};class CashContext {private: CashSuper *cs;public: CashContext(int type) { switch(type) { caseNORMAL: //正常收费 (2) ; break; case CASH_RETURN: //满300返100 (3) ; break; case CASH_DISCOUNT: //打八折 (4) ; break; }}double GetResult(double money) { (5) ; }};//此处略去main( )函数
阅读下列说明和C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
【说明】
某大型购物中心欲开发一套收银软件,要求其能够支持购物中心在不同时期推出的各
种促销活动,如打折、返利(例如,满300返100)等等。现采用策略(Strategy)模式实现该要求,得到如图5-1所示的类图。
图5-1 策略模式类图
【C++代码】
#include
using namespace std;
enum TYPE{NORMAL, CASH_DISCOUNT, CASH_RETURN};
class CashSuper{
public:
(1);
};
class CashNormal : public CashSuper { //正常收费子类
public:
double acceptCash(double money) {
retum money; }
};
class CashDiscount : public CashSuper {
private:
double moneyDiscount; // 折扣率
public:
CashDiscount(double discount) { moneyDiscount=
discount; }
double acceptCash(double money) { retum money *
moneyDiscount; }
};
class CashRetum : public CashSuper { // 满额返利
private:
double moneyCondition; // 满额数额
double moneyReturn; // 返利数额
public:
CashRetnm(double
motieyCondition, double moneyReturn) {
this->moneyCondition=moneyCondition;
this->moneyReturn=moneyRetum;
}
double acceptCash(double
money) {
double result =
money;
if(money>=moneyCondition)
result=money-(int)(money/moneyCondition ) * moneyRetum;
return
result ;
}
};
class CashContext {
private:
CashSuper *cs;
public:
CashContext(int type) {
switch(type) {
case
NORMAL: //正常收费
(2)
;
break;
case CASH_RETURN: //满300返100
(3)
;
break;
case CASH_DISCOUNT: //打八折
(4)
;
break;
}
}
double GetResult(double money) {
(5) ;
}
};
//此处略去main( )函数
【说明】
某大型购物中心欲开发一套收银软件,要求其能够支持购物中心在不同时期推出的各
种促销活动,如打折、返利(例如,满300返100)等等。现采用策略(Strategy)模式实现该要求,得到如图5-1所示的类图。
图5-1 策略模式类图
【C++代码】
#include
using namespace std;
enum TYPE{NORMAL, CASH_DISCOUNT, CASH_RETURN};
class CashSuper{
public:
(1);
};
class CashNormal : public CashSuper { //正常收费子类
public:
double acceptCash(double money) {
retum money; }
};
class CashDiscount : public CashSuper {
private:
double moneyDiscount; // 折扣率
public:
CashDiscount(double discount) { moneyDiscount=
discount; }
double acceptCash(double money) { retum money *
moneyDiscount; }
};
class CashRetum : public CashSuper { // 满额返利
private:
double moneyCondition; // 满额数额
double moneyReturn; // 返利数额
public:
CashRetnm(double
motieyCondition, double moneyReturn) {
this->moneyCondition=moneyCondition;
this->moneyReturn=moneyRetum;
}
double acceptCash(double
money) {
double result =
money;
if(money>=moneyCondition)
result=money-(int)(money/moneyCondition ) * moneyRetum;
return
result ;
}
};
class CashContext {
private:
CashSuper *cs;
public:
CashContext(int type) {
switch(type) {
case
NORMAL: //正常收费
(2)
;
break;
case CASH_RETURN: //满300返100
(3)
;
break;
case CASH_DISCOUNT: //打八折
(4)
;
break;
}
}
double GetResult(double money) {
(5) ;
}
};
//此处略去main( )函数
参考解析
解析:(1)virtual double acceptCash(double money) = 0
(2)cs = new CashNormal()
(3)cs = new CashReturn(300,100)
(4)cs = new CashDiscount(0.8)
(5)return cs->acceptCash(money)
试题分析:
策模式的结构图如下:
(2)cs = new CashNormal()
(3)cs = new CashReturn(300,100)
(4)cs = new CashDiscount(0.8)
(5)return cs->acceptCash(money)
试题分析:
策模式的结构图如下:
相关考题:
●试题四阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】函数QuickSort是在一维数组A[n]上进行快速排序的递归算法。【函数】void QuickSort(int A[],int s,int t){int i=s,j=t+1,temp;int x=A[s];do{do i++;while (1) ;do j--;while(A[j]x);if(ij){temp=A[i]; (2) ; (3) ;}}while(ij);A[a]=A[j];A[j]=x;if(si-1) (4) ;if(j+1t) (5) ;}
阅读以下说明和流程图,将应填入(n)处的字句写在对应栏内。【说明】已知头指针分别为La和lb的有序单链表,其数据元素都是按值非递减排列。现要归并La和Lb得到单链表Lc,使得Lc中的元素按值非递减排列。程序流程图如下所示:
阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。【说明】函数QuickSort是在一维数组A[n]上进行快速排序的递归算法。【函数】void QuickSort( int A[ ],int s,int t){ int i=s,j=t+1,temp;int x=A[s];do{do i ++ ;while (1);do j -- ;while(A[j]>x);if(i<j){temp=A[i];(2);(3);}}while(i<j);A[a] =A[j];A[j] =x;if(s<i-1) (4);if(j+1<t) (5);}
阅读以下说明和流程图,将应填入(n)处的字句写在对应栏内。[说明]设学生某次考试的成绩按学号顺序逐行存放于某文件中,文件以单行句点“.”为结束符。下面的流程图读取该文件,统计出全部成绩中的最高分max和最低分min。
阅读以下说明和c++码,将应填入(n)处的字名写在的对应栏内。[说明] 以下函数完成求表达式的值,请填空使之完成此功能。float sum ( float x ){ float s=0.0;int sign = 1;(1);for(inti=1;(2); i+ +){t=t*x;s=s+(3);sign = - sign;(4);}
阅读以下说明,以及用C++在开发过程中所编写的程序代码,将应填入(n)处的字句写在对应栏内。【说明】在下面函数横线处填上适当的字句,使其输出结果为:构造函数.构造函数.1,25,6析构函数析构函数.【C++代码】include "iostream.h"class AA{ public;AA(int i,int j){A=i; B=j;cout<<"构造函数.\n";}~AA(){(1);}void print();private:int A, B;};void AA∷print(){cout<<A<<","<<B<<endl;}void main(){AA *a1, *a2;(2)=new AA(1, 2);a2=new AA(5, 6);(3);a2->print();(4) a1;(5) a2;}
阅读下面的说明,回答问题1~问题4,将解答填入答题纸对应的解答栏内。[说明]阅读以下说明,回答问题1~问题4,将解答填入答题纸对应的解答栏内。windows Server 2003是一个多任务多用户的操作系统,能够以集中或分布的方式实现各种应用服务器角色,是目前应用比较广的操作系统之一。Windows内置许多应用服务功能,将下表中(1)~(5)处空缺的服务器名称填写在答题纸对应的解答栏内。(1)
阅读下列程序说明和C++程序,把应填入其中(n)处的字句,写在对应栏内。【说明】阅读下面几段C++程序回答相应问题。比较下面两段程序的优缺点。①for (i=0; i<N; i++ ){if (condition)//DoSomething…else//DoOtherthing…}②if (condition) {for (i =0; i<N; i++ )//DoSomething}else {for (i=0; i <N; i++ )//DoOtherthing…}
阅读下列说明和c++代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】某灯具厂商欲生产一个灯具遥控器,该遥控器具有7个可编程的插槽,每个插槽都有开关按钮,对应着一个不同的灯。利用该遥控器能够统一控制房间中该厂商所有品牌灯具的开关,现采用Command(命令)模式实现该遥控器的软件部分。Command模式的类图如图5-1所示。【c++代码】}
阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】某灯具厂商欲生产一个灯具遥控器,该遥控器具有7个可编程的插槽,每个插槽都有开关按钮,对应着一个不同的灯。利用该遥控器能够统一控制房间中该厂商所有品牌灯具的开关,现采用Command(命令)模式实现该遥控器的软件部分。command模式的类图如图6-1所示。【Java代码】}
●试题二阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】该程序运行后,输出下面的数字金字塔【程序】includestdio.hmain (){char max,next;int i;for(max=′1′;max=′9′;max++){for(i=1;i=20- (1) ;++i)printf(" ");for(next= (2) ;next= (3) ;next++)printf("%c",next);for(next= (4) ;next= (5) ;next--)printf("%c",next);printf("\n");}}
●试题一阅读下列说明和流程图,将应填入(n)的字句写在答题纸的对应栏内。【说明】下列流程图(如图4所示)用泰勒(Taylor)展开式sinx=x-x3/3!+x5/5!-x7/7!+…+(-1)n×x 2n+1/(2n+1)!+…【流程图】图4计算并打印sinx的近似值。其中用ε(0)表示误差要求。
(1)请写出CDMA系统中干扰裕量与小区负载的关系式。(2)表6-2为GSM系统的网络关键性能指标(KPI)的名称和要求,请将表6-2补充完整,将应填入(n)处的字句写在答题纸的对应栏内。(3分,每空1分)
下图是基于软交换的网络分层模型简图,其中(1)、(2) 为网络层次,(3)、(4)、(5)为软交换系统中的设备。请根据简图将应填入( )处的字句 写在答题纸对应的解答栏内,括号内数字相同处代表同一字句,( n )相同者只计2分)基于软件交换的网络分层模型简图
阅读下列说明和 C ++代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】某软件公司欲开发一款汽车竞速类游戏,需要模拟长轮胎和短轮胎急刹车时在路面上留 下的不同痕迹,并考虑后续能模拟更多种轮胎急刹车时的痕迹。现采用策略(Strategy)设计模式来实现该需求,所设计的类图如图 6-1 所示。【C++ 代码】#includeusing namespace std;class BrakeBehavior{public:(1) ; /*其余代码省略*/};class LongWheelBrake : public BrakeBehavior{public:void stop(){cout
阅读下列说明和C++-代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某发票(lnvoice)由抬头(Head)部分、正文部分和脚注(Foot)部分构成。现采用装饰(Decorator)模式实现打印发票的功能,得到如图5-1所示的类图。【C++代码】 #include using namespace std; class invoice{ public: (1){ cout
阅读下列说明和C++代码,回答问题,将解答填入答题纸的对应栏内。【说明】某航空公司的会员积分系统将其会员划分为:普卡 (Basic)、银卡(Silver)和金卡 (Gold) 三个等级。非会员 (NonMember) 可以申请成为普卡会员。会员的等级根据其一年内累积 的里程数进行调整。描述会员等级调整的状态图如图 5-1 所示。现采用状态 (State) 模式实现上述场景,得到如图 5-2 所示的类图。【问题1】(15分)阅读上述说明和C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
阅读下列说明和 Java 代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某软件公司欲开发一款汽车竞速类游戏,需要模拟长轮胎和短轮胎急刹车时在路面上 留 下的不同痕迹,并考虑后续能模拟更多种轮胎急刹车时的痕迹。现采用策略(Strategy) 设 计模式来实现该需求,所设计的类图如图 5-1 所示。
阅读下列说明和 Java代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】某航空公司的会员积分系统将其会员划分为:普卡 (Basic) 、银卡(Silver)和金卡 (Gold)三个等级。非会员 (NonMember)可以申请成为普卡会员。会员的等级根据其 一年内累积的里程数进行调整。描述会员等级调整的状态图如图 6-1 所示 。现采用状态 (State) 模式实现上述场景,得到如图 6-2 所示的类图。
阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】 某文件管理系统中定义了类OfficeDoc和DocExplorer,当类OfficeDoc发生变化时,类DocExplorer的所有对象都要更新其自身的状态,现采用观察者(Observer)设计模式来实现该需求,所设计的类图如图6-1所示。
阅读下列说明和?C++代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】阅读下列说明和?Java代码,将应填入?(n)?处的字句写在答题纸的对应栏内。【说明】某快餐厅主要制作并出售儿童套餐,一般包括主餐(各类比萨)、饮料和玩具,其餐品种类可能不同,但其制作过程相同。前台服务员?(Waiter)?调度厨师制作套餐。现采用生成器?(Builder)?模式实现制作过程,得到如图?6-1?所示的类图。