重要提示: 请勿将账号共享给其他人使用,违者账号将被封禁!
查看《购买须知》>>>
当前位置: 首页 > 计算机类考试 > 软考中级
网友您好, 请在下方输入框内输入要搜索的题目:
搜题

题目

[主观题]

阅读下列说明和C++代码,应填入(n)处。【说明】 某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主

阅读下列说明和C++代码,应填入(n)处。

【说明】

某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子种类及其特征如表10-6所示:

阅读下列说明和C++代码,应填入(n)处。【说明】 某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏

为支持将来能够模拟更多种类鸭子的特征,采用策略设计模式(Strategy)设计的类图如图10-11所示:

阅读下列说明和C++代码,应填入(n)处。【说明】 某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏

其中,Duck为抽象类,描述了抽象的鸭子,而类RubberDuck、MallardDuck、 CottonDuck和RedHeadDuck分别描述具体的鸭子种类,方法fly()、quack()和display()分别表示不同种类的鸭子都具有飞行特征、发声特征和外观特征;类FlyBehavior与 QuackBehavior为抽象类,分别用于表示抽象的飞行行为与发声行为:类FlyNoWay与 FlyWithWings分别描述不能飞行的行为和用翅膀飞行的行为;类Quack、Squeak与 QuackNoWay分别描述发出“嘎嘎”声的行为、发出橡皮与空气摩擦声的行为与不发声的行为。请填补以下代码中的空缺。

【C++代码】

include<iostream>

using namespace (1); class FlyBehavior{

public: (2) fly()=0;

};

class QuackBehavior{

public:(3) quack() = 0;

};

class FlyWithWings:public FlyBehavior{

public:void fly(){ cout<< “使用翅膀飞行 ! ” <<endl; }

};

class FlyNoWay:public FlyBehavior{

public:void fly(){ cout<< “不能飞行!”<<endl;}

};

class Quack:public QuackBehavior{

public:void quack(){ cout<<“发出\‘嘎嘎\’声 !”<<endl; }

};

class Squeak:public QuackBehavior{

public:void quack(){cout<<“发出空气与橡皮摩擦声!”<<endl; }

};

class QuackNoWay:public QuackBehavior{

public:void quack (){ cout<<“不能发声 !”<<endl; }

};

class Duck{

protected:

FlyBehavior*(4);

QuackBehavior*(5);

public:

void fly(){(6); }

void quack(){(7););

virtual void display()=0;

};

class RubberDuck:public Duck{

public:

RubberDuck(){

flyBehavior=new (8);

quackBehavior=new (9);

}

~RubberDuck(){

if(!flyBehavior)delete flyBehavior;

if(!quackBehavior) delete quackBehavior;

}

void display(){/*此处省略显示橡皮鸭的代码*/ }

};

//其他代码省略

查看参考答案
更多“阅读下列说明和C++代码,应填入(n)处。【说明】 某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主”相关的问题

第1题

() 阅读下列说明和C++代码,将应填入空(n)处的字句写在答题纸的对应栏内。【说明】 某中学开展中外

() 阅读下列说明和C++代码,将应填入空(n)处的字句写在答题纸的对应栏内。【说明】 某中学开展中外中学生野外生存夏令营活动,由于中外学生的语言障碍,随队为外籍学员配置一名翻译。以下代码采用适配器(Adapter)模式模拟翻译适配器。其类图如下:() 阅读下列说明和C++代码,将应填入空(n)处的字句写在答题纸的对应栏内。【说明】 某中学开展中

点击查看答案

第2题

阅读下列说明和c++代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】某灯具厂商欲生产一个灯

阅读下列说明和c++代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

某灯具厂商欲生产一个灯具遥控器,该遥控器具有7个可编程的插槽,每个插槽都

有开关按钮,对应着一个不同的灯。利用该遥控器能够统一控制房间中该厂商所有品牌

灯具的开关,现采用Command(命令)模式实现该遥控器的软件部分。Command模式

的类图如图5-1所示。

阅读下列说明和c++代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】某灯具厂商欲生产一个灯

【c++代码】

阅读下列说明和c++代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】某灯具厂商欲生产一个灯

阅读下列说明和c++代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】某灯具厂商欲生产一个灯

}

点击查看答案

第3题

试题五(共15分)阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】现欲开发

试题五(共15分)

阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

现欲开发一个软件系统,要求能够同时支持多种不同的数据库,为此采用抽象工厂模式设计该系统。以SQL Server和Access两种数据库以及系统中的数据库表Department为例,其类图如图5-1所示。

试题五(共15分)阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】现欲

【C++代码】

include <iostream>

using namespace std;

class Department{/*代码省略*/};

class IDepartment{

public:

(1) =0;

(2) =0;

};

class SqlserverDepartment:(3){

public:

void Insert(Department* department){

cout <<"Insert a record into Department in SQL Server!\n";

∥其余代码省略

}

Department GetDepartment(int id){

/*代码省略*/

}

};

class AccessDepartment: (4) {

public:

void Insert(Department* department){

cout <<"Insert a record into Department in ACCESS!\n";

∥其余代码省略

}

Department GetDepartment(int id){

/*代码省略*/

}

};

(5){

public:

(6)=0;

};

class SqlServerFactory:public IFactory{

public:

IDepartment*CreateDepartment(){ return new SqlserverDepartment(); }

∥其余代码省略

};

class AccessFactory:public IFactory{

public:

IDepartment* CreateDepartment(){ return new AccessDepartment();}

∥其余代码省略

};

点击查看答案

第4题

●试题一 阅读下列函数说明和C代码,把应填入其中n处的字句写在答卷的对应栏内。 【函数1.1说明】

●试题一

阅读下列函数说明和C代码,把应填入其中n处的字句写在答卷的对应栏内。

【函数1.1说明】

函数strcpy(char*to,char*from)将字符串from复制到字符串to。

【函数1.1】

void strcpy(char*to,char*from)

{while((1 ) );}

【函数1.2说明】

函数merge(int a[ ],int n,int b[ ],int m,int *c)是将两个从小到大有序数组a和b复制合并出一个有序整数序列c,其中形参n和m分别是数组a和b的元素个数。

【函数1.2】

void merge(int a[ ],int n,int b[ ],int m,int *c)

{ int i,j;

for(i=j=0;i<n && j<m;)

*c++=a[i]<b[j]? a[i++]:b[j++];

while((2) )*c++=a[i++];

while((3) )*c++=b[j++];

}

【函数1.3说明】

递归函数sum(int a[ ],int n)的返回值是数组a[ ]的前n个元素之和。

【函数1.3】

int sum(int a[ ],int n)

{ if(n>0)return (4) ;

else (5) ;

}

点击查看答案

第5题

阅读下列函数说明和C++代码,将应填入(n)处的字句写在对应栏内。 [说明] 在销售系统中常常需要打

阅读下列函数说明和C++代码,将应填入(n)处的字句写在对应栏内。

[说明]

在销售系统中常常需要打印销售票据,有时需要在一般的票据基础上打印脚注。这样就需要动态地添加一些额外的职责。如下展示了Decorator(修饰)模式。SalesOrder对象使用一个SalesTicket对象打印销售票据,先打印销售票据内容,然后再打印脚注。图5-1显示了各个类间的关系。以下是C++语言实现,能够正确编译通过。

[图5-1]

阅读下列函数说明和C++代码,将应填入(n)处的字句写在对应栏内。 [说明] 在销售系统中常常需要打

[C++代码]

class Component{

public:

(1) void prtTicket()=0;

};

class SalesTicket:public Component{

public:

void prtTicket(){

cout<<"Sales Ticket!"<<endl;

}

};

class Decorator:public Component{

public:

virtual void prtTicket();

Decorator(Component *myC);

private:

(2) myComp;

};

Decorator::Decorator(Component *myC)

{

myComp=myC;

}

void Decorator::prtTicket()

{

myComp->prtTicket();

}

class Footer:public Decorator{

public:

Footer(Component *myC);

void prtTicket();

void prtFooter();

};

Footer::Footer(Component *myC): (3) {}

void Footer::prtFooter()

{

cout<<"Footer"<<endl;

}

void Footer::prtTicket()

{

(4) ;

prtFooter();

}

class SalesOrder{

public:

void prtTicket();

};

void SalesOrder::prtTicket()

{

Component *myST;

myST=new Footer((5) );

myST->prtTicket();

}

(1)

点击查看答案

第6题

阅读下列说明和c++代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】某软件公司现欲开发一款

阅读下列说明和c++代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

某软件公司现欲开发一款飞机飞行模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征。需要模拟的飞机种类及其特征如表5-l所示。

阅读下列说明和c++代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】某软件公司现欲开发一款

为支持将来模拟更多种类的飞机,采用策略设计模式(Strategy)设计的类图如图5—1所示。

图5-l中,AirCraft为抽象类,描述了抽象的飞机,而类Helicopter、AirPlane、Fighter和Harrier分别描述具体的飞机种类,方法fly()和takeOff()分别表示不同飞机都具有飞行特征和起飞特征;类FlyBehavior与TakeOffBehavior为抽象类,分别用于表示抽象的飞行行为与起飞行为;类SubSonicFly与SuperSonicFly分别捕述亚音速飞行和超音速飞行的行为;类Verti calTakeOff与LongDistanceTakeoff分别描述垂直起飞与长距离起飞的行为。

阅读下列说明和c++代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】某软件公司现欲开发一款

【C++代码】

include

using namespace std;

class FlyBehavior{

public:virtual void fly()=0;

};

class SubSonicFly:public FlyBehavior{

public: void fly(){cout<<"亚音速飞行! "<

点击查看答案

第7题

阅读下列说明和c++代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】现欲构造一文件/目录树,

阅读下列说明和c++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。

【说明】

现欲构造一文件/目录树,采用组合(Composite)设计模式来设计,得到的类图如6—7所示:

阅读下列说明和c++代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】现欲构造一文件/目录树

【c++代码】

include<1ist>

include

include

using namespace std;

class AbstractFile{

protected:

string name;//文件或目录名称

public:

void printName(){cout<*getChildren()=0; //获得一个目录的子目录或文件

};

class File:public AbstractFile{

public:

File(string name){ (1) =name;)

void addChild(AbstractFile*file){return ;)

void removeChiid(AbstractFile*file){return;}(2) getChildren(){return (3 ) ;}

};

class Folder:public AbstractFile{

private:

listchildList; //存储子目录或文件

public:

Folder(string name){ (4) =name;}

void addChild(AbstractFile*file){childList.push back(file);}

void removeChiid(AbstractFile*file)(chiidList.remove(file);}

list*getChildren(){return (5) ;)

};

voidmain(){

//构造一个树形的文件/目录结构

AbstractFile*rootFolder=new Folder(“C:\\”);

AbstractFile*compositeFolder=flew Folder(”composite”);

AbstractFile*windowsFolder=new Folder(”windows”);

AbstractFile*file=new File(”TestComposite.java”);

rootFolder->addChild(compositeFolder);

rootFolder->addChild (windowsFolder);

compositeFolder->addChiid(file);

)

点击查看答案

第8题

阅读以下说明,以及用C++在开发过程中所编写的程序代码,将应填入(n)处的字句写在对应栏内。【说明】

阅读以下说明,以及用C++在开发过程中所编写的程序代码,将应填入(n)处的字句写在对应栏内。

【说明】

在下面函数横线处填上适当的字句,使其输出结果为:

构造函数.

构造函数.

1,2

5,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;

}

点击查看答案

第9题

阅读以下说明和C++代码,将应填入(n)处的字句写在对应栏内。 【说明】 C++标准模板库中提供了vector

阅读以下说明和C++代码,将应填入(n)处的字句写在对应栏内。

【说明】

C++标准模板库中提供了vector模板类,可作为动态数组使用,并可容纳任意数据类型,其所属的命名空间为std。vector模板类的部分方法说明如下表所示:

阅读以下说明和C++代码,将应填入(n)处的字句写在对应栏内。 【说明】 C++标准模板库中提供了v

【C++代码】

include <iostream>

include <vector>

using namespace (1);

typedef vector< (2) > INTVECTOR;

const int ARRAY_SIZE = 6;

void ShowVector (INTVECTOR &theVector);

int main() {

INTVECTOR theVector;

// 初始化 theVector, 将theVector的元素依次设置为0至5

for (int cEachItem = 0; cEachItem < ARRAY_SIZE; cEachItem++}

theVector.push_back((3));

ShowVector(theVector); // 依次输出theVector中的元素

theVector.erase (theVector.begin () + 3};

ShowVector(theVector);

}

void ShowVector (INTVECTOR &theVector) {

if (theVector.empty ()) {

cout << "theVector is empty." << endl; return;

}

INTVECTOR::iterator (4);

for (theIterator=theVector.begin(); theIterator !=theVector.end(); theIterator++) {

cout << *theIterator;

if (theIterator != theVector.end()-1) cout << ", ";

}

cout << end1;

}

该程序运行后的输出结果为:

0,1,2,3,4,5

(5)

点击查看答案

第10题

阅读下列程序说明和C++程序,把应填入其中(n)处的字句,写在对应栏内。【说明】阅读下面几段C++程序回

阅读下列程序说明和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

}

点击查看答案

第11题

阅读下列说明和 C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某快餐厅主要制作

阅读下列说明和 C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某快餐厅主要制作井出售儿童套餐,一般包括主餐(各类比萨)、饮料和玩具,其餐品种类可能不同,但其制作过程相同。前台服务员(Waiter)调度厨师制作套餐。现采用生成器(Builder) 模式实现制作过程,得到如图 5-1 所示的类图。阅读下列说明和 C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某快餐厅主要制作图5-1 类图 【C++代码】 include<iostream> include <string> using namespace std; class Pizza { private: string parts; public: void setParts(string parts) { this->parts=parts; } string getParts() { return parts; } }; class PizzaBuilder { protected:Pizza* pizza; public: Pizza* getPizza() { retum pizza; } void createNewPizza() { pizza = new Pizza(); } (1 ); } class HawaiianPizzaBuilder :public PizzaBuilder { public: void buildParts() { pizza->setParts("cross +mild + ham&pineapple"); } }; class SpicyPizzaBuider: public PizzaBuilder { public: void buildParts() { pizza->setParts("pan baked +hot + ham&pineapple"); } } Class Waiter{ Private: PizzaBuilder* pizzaBuilder; public: void setPizzaBuilder(PizzaBuilder* pizzaBuilder) { /*设置构建器*/ (2 ) } Pizza* getPizza() { return pizzaBuilder->getPizza(); } void construct() { /*构建*/ pizzaBuilder->createNewPizza(); (3 ) } }; int main(){ Waiter*waiter=new Waiter(); PizzaBuilder*hawaiian pizzabuilder=new HawaiianPizzaBuilder() (4 ); (5 ); cout<< "pizza: "<< waiter->getPizza()->getParts()<< endl; } 程序的输出结果为: pizza: cross + mild + ham&pineapple

点击查看答案
赏学吧APP
TOP
重置密码
账号:
旧密码:
新密码:
确认密码:
确认修改
购买搜题卡查看答案
购买前请仔细阅读《购买须知》
请选择支付方式
微信支付
支付宝支付
点击支付即表示你同意并接受《服务协议》《购买须知》
立即支付
搜题卡使用说明

1. 搜题次数扣减规则:

功能 扣减规则
基础费
(查看答案)
加收费
(AI功能)
文字搜题、查看答案 1/每题 0/每次
语音搜题、查看答案 1/每题 2/每次
单题拍照识别、查看答案 1/每题 2/每次
整页拍照识别、查看答案 1/每题 5/每次

备注:网站、APP、小程序均支持文字搜题、查看答案;语音搜题、单题拍照识别、整页拍照识别仅APP、小程序支持。

2. 使用语音搜索、拍照搜索等AI功能需安装APP(或打开微信小程序)。

3. 搜题卡过期将作废,不支持退款,请在有效期内使用完毕。

请使用微信扫码支付(元)
订单号:
遇到问题请联系在线客服
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系在线客服
恭喜您,购买搜题卡成功 系统为您生成的账号密码如下:
重要提示: 请勿将账号共享给其他人使用,违者账号将被封禁。
发送账号到微信 保存账号查看答案
怕账号密码记不住?建议关注微信公众号绑定微信,开通微信扫码登录功能
警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“赏学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

- 微信扫码关注赏学吧 -
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反赏学吧购买须知被冻结。您可在“赏学吧”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
- 微信扫码关注赏学吧 -
请用微信扫码测试
温馨提示
每个试题只能免费做一次,如需多次做题,请购买搜题卡
立即购买
稍后再说
赏学吧