首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C++代码,将应填入(1)~(5)处的字句写在答题纸的对应栏内。 【说明】 某航空公司的会员积分系统将其会员划分为普卡(Basic)、银卡(Silver)和金卡(Gold)三个等级。非会员(NonMember)可以申请成为普卡
阅读下列说明和C++代码,将应填入(1)~(5)处的字句写在答题纸的对应栏内。 【说明】 某航空公司的会员积分系统将其会员划分为普卡(Basic)、银卡(Silver)和金卡(Gold)三个等级。非会员(NonMember)可以申请成为普卡
admin
2019-10-08
30
问题
阅读下列说明和C++代码,将应填入(1)~(5)处的字句写在答题纸的对应栏内。
【说明】
某航空公司的会员积分系统将其会员划分为普卡(Basic)、银卡(Silver)和金卡(Gold)三个等级。非会员(NonMember)可以申请成为普卡会员。会员的等级根据其一年内累积的里程数进行调整。描述会员等级调整的状态图如图5所示。现采用状态(State)模式实现上述场景,得到如图6所示的类图。
【C++代码】代码修改点做了备注
#include<iostream>,
using namespace std:
class FrequentFlyey;class CBasic;class Csilver;class CGold;class CNoCustomer;//提前引用
class CState
{
private:
int flyMiles; ∥里程数
publie:
_____(1);
//根据累积里程数调整会员等级
};
class FrequentFlyer
{
friend class CBasic;
friend CSilver; //此处在CSilver前面少了class
friend class CGold;
private: //此处应该改为public题目有误
CState*state;CState*nocustomer;CState*basic;CState*silver;CState*gold;
double flyMiles;
public:
FrequentFlyer()
{
flyMiles=0;
setState(nocustomer);
}
void setState(CState*state)
{
this->state=state;
}
void travel(int miles)
{
double bonusMiles=state->travel(miles,this);
flyMiles=flyMiles+bonusMiles;
}
};
class CNoCustomer:public CState //非会员
{
public:
double travel(int miles,FrequentFlyer*context)
{
tout<<’’Your travel will not account for points\n’’; //不累积里程数
return miles;
}
};
class CBasil:public CState //普卡会员
{
public:
double travel(int miles,FrequentFlyer*context)
{
if(context->flyMiles>=25000&&context->flyMiles<50000)
_____(2);
if(context->flyMiles<25000)
_____(3);
returnmiles+0.5*miles; //累积里程数
}
};
class CGOld:public CState //金卡会员
{
public:
double travel(int miles,FrequentFlyer*context)
{
if(context->flyMiles>=25000&&context->flyMiles<50000)
_____(4);
if(eontext->flyMiles<25000)
_____(5);
return miles+0.5*miles; //累积里程数
)}
};
class Csilver:public CState //银卡会员
{
double travel(int miles,FrequentFlyer*context)
{
if(context->tlyMiles<25000)
context->setState(context->basic);
if(context->flyMiles>=50000)
context->setState(context->gold);
return (miles+0.25*miles); //累积里程数
}
};
选项
答案
(1)virtual double travel(int miles,FrequentFlyer*context)=0 (2)context->setState(context->Cbasic) (3)context->setState(context->CSilve) (4)context->setState(context->Cbasic) (5)context->setState(context->CSilve)
解析
转载请注明原文地址:https://kaotiyun.com/show/3sxZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
阅读以下说明,回答问题1、问题2、问题3和问题4,将解答填入对应栏内。[说明]RIP(RoutingInformationProtocols,路由信息协议)是使用最广泛的距离向量协议,它是由施乐(Xerox)在70年代开发的。当时,RI
阅读以下说明,回答问题1和问题2。【说明】在一幢11层的大楼内组建一个局域网,该局域网的连接示意图如图5-4所示。
通常,在该图书馆架构无线局域网(WLAN)的设计流程需要经过以下6个阶段:A.设备软硬件安装、调试B.确定无线局域网物理结构C.确定无线局域网逻辑结构D.进行需求分析和现场调研E.验收测试和维护F.进行设备产
NAT英文全称是"NetworkAddressTranslation",中文意思是“网络地址转换”,它是一个IETF(InternetEngineeringTaskForce,Internet工程任务组)标准,允许一个整体机构以一个公用IP(I
阅读以下关于网络应用系统模块测试的技术说明,根据要求回答问题1至问题4。【说明】某公司的枝术开发小组经过一年的努力,编码完成了本公司嵌入式产品——宽带路由器的NanOs程序,该程序规模约为31200行。公司经理指定郭工程师(以下简称为郭工)安排其
设计布线时,需要考虑哪些主要因素?结构化布线应遵循的国际标准有哪些?
设计布线时,需要考虑哪些主要因素?布线实施后,需要经过系统测试,测试线路的主要指标有哪些?
阅读以下说明和Java程序代码,将应填入(n)处的字句写在对应栏内。SMTP是发送E-mail的协议,常用以下5条命令发送E-mail:HELO,与SMTP服务器握手,传送本机域名;MAILFROM:,传送发信者的信箱名称;RCP
阅读以下有关传统局域网络运行和维护的叙述,将应填入(n)处的字句写在对应栏内。在对网络运行及维护前首先要了解网络,包括识别网络对象的硬件情况、判别局域网的拓扑结构和信道访问方式、确定网络互联以及用户负载等。常见的3种拓扑结构是星形、(1)与(2)拓扑结
随机试题
初产妇,28岁,妊娠38周。规律宫缩4小时入院,产科检查:宫口扩张3cm,胎心率140次/分,胎头已衔接。突发抽搐,继之意识消失,血压170/120mmHg,尿蛋白(+++)。该患者应考虑为
教师职业倦怠的主要特征有哪些?
采用结构钢焊条焊接不锈复合钢板基层时,焊缝金属熔化了部分覆层不锈钢板,所以焊缝金属()。
临床判断法洛四联症病情轻重及预后的依据是
儿童最常见的肝脏肿瘤是
朱某进超市购物,将装有手饰、现金的挎包存放于超市存包处,后领包时发现包已遗失,索赔时该超市以“存包处《存包须知》明示:无论存包者是否申明物件的价值,若遗失,每件酌情补偿5至10元”为由,只愿意赔10元。另悉,该《存包须知》贴在存包窗口上,十分醒目,则:(
对于参与风险管理的公司而言,风险价值的定义是
甲公司2014年1月1日一2016年1月13日发生下列与长期股权投资有关的经济业务:(1)2014年1月1日购入乙公司40%的股份进行长期投资,对乙公司能够施加重大影响,购入时支付银行存款550万元,其中包括已宣告但尚未发放的现金股利20万元,同时支
下列著作中不属于语录体散文集的是()。
请从下面的四个图形中选出与其他三个不同的一个图形。
最新回复
(
0
)