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

题目

[主观题]

(12 ) “ 图形 ” 类 Shape 中定义了纯虚函数 CalArea() ,“ 三角形 ” 类 Triangle 继承了类Shape

(12 ) “ 图形 ” 类 Shape 中定义了纯虚函数 CalArea() ,“ 三角形 ” 类 Triangle 继承了类Shape ,请 将

Triangle 类中的 CalArea 函数补充完整。

class Shape{

public:

virtual int CalArea()=0;

}

class Triangle: public Shape{

public:

Triangle{int s, int h}: side(s),height(h) {}

【 12 】 { return side*height/2 ; }

private:

int side;

int height;

};

查看参考答案
更多“(12 ) “ 图形 ” 类 Shape 中定义了纯虚函数 CalArea() ,“ 三角形 ” 类 Triangle 继承了类Shape”相关的问题

第1题

下列shape 类是一个表示形状的抽象类, area( ) 为求图形面积的函数, total( )则是一个通用
下列shape 类是一个表示形状的抽象类, area() 为求图形面积的函数, total()则是一个通用

下列shape 类是一个表示形状的抽象类, area() 为求图形面积的函数, total()则是一个通用的用以求不同形状的图形面积总和的函数。请从shape 类派生三角形类(triangle) 、矩形类(rectangle ),并给出具体的求面积函数。

点击查看答案

第2题

设计一个几何图形的面积计算器,希望这个计算器可以计算圆、三角形和矩形等图形的面积,主要包括了抽象类Shape与其2个子类、面积计算器类Calculator、以及主类Main的设计。
点击查看答案

第3题

定义基类Shape,由它派生出3个派生类:Circle(圆形)、Rectangle(矩形)、Triangle(三角形),用一个虚函数printArea分别输出以上三者的面积,三个图形的数据在定义对象时给定。
点击查看答案

第4题

构建一个模拟的绘图系统 必须有基类Shape,建立纯虚函数Draw,用于模拟的绘图 建立Shape的派生类,例如直线、矩形、椭圆等等 每一个派生类都必须实现Draw函数。绘图函数可以进行Windows绘图,可以只是在命令行模式输出一些象征性的符号,答题者可以在网上搜索GotoXY函数的编写,进行命令行定位输出。 构建画布类Canvas,其中利用链表或者数组,存储所有的Shape,可以添加、删除Shape,每一个Shape都利用Shape类型的指针指向图形对象的实例。 主函数中随机向Canvas画布对象随机加入不同的图形,调用Canvas的Draw函数,遍历所有Shape指针指向具体实例的Draw函数,实现模拟的绘图。
点击查看答案

第5题

如下程序声明了一个二维图形类TwoDShape,从其派生出矩形类Rec。 include<iostream> include<strin

如下程序声明了一个二维图形类TwoDShape,从其派生出矩形类Rec。

include<iostream>

include<string>

using namespaee std,

class TwoDShape{// 二维图形类

char name[20];

public:

TwoDShape (char * n="unknown") {

strcpy(name, n);

}

Char * getName(){return name;}

【 】=0;

};

class Rec: public TwoDShape{

double width, height

public:

Rec(double w-=0. 0,double h=0. 0):TwoDShape("rectangle")

{ width=w; height=h; }

double getWidth() {return width;}

double getHeight() {return height;}

double area() {return width * height;}

};

int main() {

TwoDShape * shape;

Shape=new Rec(2.1,3.0);

cout<<"object is"<<shape->getName()<<"\n";

cout<<"Area is"<<shape->area()<<"\n";

return 0

}

请将程序补充完整,使程序在运行时输出:

abject is triangle

Area is 6.3

点击查看答案

第6题

试题六(共15分) 阅读以下说明、图和Java代码,填补Java代码中的空缺(1)~(6),将解答写在答题纸的对

试题六(共15分)

阅读以下说明、图和Java代码,填补Java代码中的空缺(1)~(6),将解答写在答题纸的

对应栏内。

【说明】

已知对某几何图形绘制工具进行类建模的结果如图6.1所示,其中Shape为抽象(abstract)类,表示通用图形,Box(矩形)、Ellipse(椭圆)和Line(线条)继承(extends)了Shape类,其中,Circle表示圆(即特殊的椭圆)。

试题六(共15分) 阅读以下说明、图和Java代码,填补Java代码中的空缺(1)~(6),将解答写

下面的Java代码用于实现图 6-1所给出的设计思路,将其空缺处填充完整并编译运行,输出结果为:

Ellipse

Circle

Ellipse

C

E

【Java代码】

(1) class Shape{

public Shape(String name){

this.name= name;

}

(2) void paint();

String getName(){

retum this.name;

}

final String name;

};

//Box 和Line类似下面 Ellipse,其代码略

class Ellipse (3) {

public Ellipse(String name){

super(name);

System.out.println("Ellipse");

}

Void paintO{∥绘制现状示意代码

System.out.println(getName0);

}

};

class Circle (4) {

public Circle(String name){

super(name);

System.out.println("Circle");

}

};

class Diagram{

private Shape shapes[]= new Shape[2];

public void drawAShape(Shape shape){

shape.paint();

}

void erase A Shape(Shape shape){

∥删除形状,代码略

}

void drawShapes(){

shapes*0+= new Circle("C”);

shapes[l]= new Ellipse("E");

for (int i=O; i<2;++i) {

drawAShap(shapes[i]);//绘制形状

}

}

void close(){

for (int i=0;i<2; ++1) { []关闭图,删除所绘制图形

(5) ;

}

}

public static void main(String[] args){

Diagram diagram= (6) ;

diagram.drawShapes();

diagram.close();

}

}

点击查看答案

第7题

阅读以下说明和C++代码,将应填入(n)处的字句写上。 [说明] 现有一个显示系统,要显示的图形有线L

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

[说明]

现有一个显示系统,要显示的图形有线Line、矩形Square,抽象出一个Shape类(接口),有方法显不display()。

需要新增图形Circle,又已知有类XXCircle实现了所需要实现的功能:显示displayIt()。为了继承自shape以提供统一接口,又不希望从头开发代码,希望使用XXCircle。这样将XXcircle作为Circle的一个属性,即Circle的对象包含一个XXCircle对象。当一个Circle对象被实例化时,它必须实例化一个相应的XXCircle对象: Circle对象收到的做任何事的请求都将转发给这个XXCircle对象。通过这种称为Adapter模式,Circle对象就可以通过“让XXCircle做实际工作”来表现自己的行为了。图6-1显示了各个类间的关系。以下是C++语言实现,能够正确编译通过。

[图6-1]

阅读以下说明和C++代码,将应填入(n)处的字句写上。 [说明] 现有一个显示系统,要显示的图形有线

[C++代码]

class Shape{

public:

(1) void display()=0;

};

class Line:public Shape{//省略具体实现

};

class Square:public Shape{//省略具体实现

};

class XXCircle{

public:

void displayIt(){

//省略具体实现

}

//省略其余方法和属性

};

class Circle:public Shape{

private:

XXCircle *pxc;

public:

Circle();

void display();

};

Circle::Circle(){

pxc=(2);

}

void Circle::display()

{

pxc->(3);

}

class Factory{

public:

(4) getshapeInstance(int type){//生成特定类实例

switch(type){

case 1:return new Square;

case 2:return new Line;

case 3 :return new Circle;

default:return NULL;

}

}

};

void main(int argc,char*argv[]){

if(argc !=2){

cout<<"error parameters!"<<endl;

return;

}

int type=atoi(argv[1]);

Factory factory;

Shape*s=factory. (5);

if(s==NULL){

cout<<"Error get the instance!"<<endl;

return;

}

s->display();

delete s;

return;

}

(1)

点击查看答案

第8题

从下列2道试题(试题五至试题六)中任选 1道解答。如果解答的试题数超过1道,则题号小的1道解答有效。

试题五(共15分)

阅读以下说明、图和C++代码,填补C++代码中的空缺(1)~(5),将解答写在答题纸的对应栏内。

【说明】

已知对某几何图形绘制工具进行类建模的结果如图5.1所示,其中Shape为抽象类(应至少包含一个纯虚拟(virtual)函数),表示通用图形,Box表示矩形,Ellipse表示椭圆,Circle表示圆(即特殊的椭圆),Line表示线条。

从下列2道试题(试题五至试题六)中任选 1道解答。如果解答的试题数超过1道,则题号小的1道解答有效。

下面的C++代码用于实现图5-1所给出的设计思路,将其空缺处填充完整并编译运行,输

出结果为:

Ellipse

Circle

Ellipse

C

E

【C++代码】

include <string>

include <iostream>

using namespace std;

class Shape{

public:

Shape(const string& name){

m_name= name;

}

~Shape(){}

(1) void paint() = 0;

stringgetName()const {

retumm name;

}

Private:

string m_name;

};

//Box和 Line类的定义与 Ellipse类似,其代码略

classEllipse (2) {

public:

Ellipse(const string& name) : Shape(name){ cout<<"Ellipse" <<endl; }

Voidpaint() { cout<<getName()<<endl;}

};

classCircle (3) {

public:

Circle(const string& name) : Ellipse(name){ cout<<"Circl"<<endl; }

};

class Diagram {

public:

void drawAShap(Shape* shape){ shape->paint(); }

void drawShapes() {

shapes[0] = new Circle("C");

shapes[l] = new Ellipse("E");

for (int i=O;i<2; ++1) {

drawAShap(shapes[i]);

}

}

void close (){ /*删除形状,代码略 */ }

private:

Shape* shapes[2];

};

int main()

{

Diagram* diagram = (4)

diagram->drawShapes();

diagram->close ();

(5) diagram;

}

点击查看答案

第9题

阅读以下说明和C代码,将应填入(n)处的字句写在的对应栏内。 【说明】 在一个简化的绘图程序中,支持

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

【说明】

在一个简化的绘图程序中,支持的图形种类有点(point)和圆(circle),在设计过程中采用面向对象思想,认为所有的点和圆都是一种图形(shape),并定义了类型shape t、 point t和circle t分别表示基本图形、点和圆,并且点和圆具有基本图形的所有特征。

【C代码】

typedef enum { point,circle } shape type; /* 程序中的两种图形:点和圆 */

typedef struct { /* 基本的图形类型 */

shape_type type; /* 图形中类标识:点或者圆*/

void (*destroy) (); /* 销毁图形操作的函数指针*/

void (*draw) (); /* 绘制图形操作的函数指针*/

} shape_t;

typedef struct { shape_t common; int x; iht y; } point_t; /* 定义点类

型, x, y为点坐标*/

void destroyPoint (point_t* this) { free (this); printf ("Point destoryed!

\n"); } ) /* 销毁点对象*/

void drawPoint(point_t* this) { printf("P(%d,%d)", this->x, this->y); }

/* 绘制点对象*/

shape_t* createPoint (va_list* ap) (/* 创建点对象,并设置其属性*/

point_t* p_point;

if ((p_point= (point_t*)malloc (sizeof (point_t)) ) ==NULL) returnNULL;

p_point->common, type = point; p_point->common, destroy = destroyPoint;

p_point->common.draw = drawPoint;

p_point->x = va_arg(*ap, int); /* 设置点的横坐标*/

p_point->y = va_arg(*ap, int); /* 设置点的纵坐标*/

return (shape_t*)p_ooint; /*返回点对象指针*/

}

typedef struct { /*定义圆类型*/

shape_t common;

point_t 4center; /*圆心点*/

int radius; /*圆半径*/

} circle_t;

void destroyCircle(circle_t* this){

free((1)); free(this); printf("Circle destoryed!\n");

}

void drawCircle(circle_t* this) {

print f ("C (");

(2).draw(this->center); /*绘制圆心*/

printf(",%d) ", this->radius);

}

shape_t* createCircle(va_list4 ap) { /*创建一个圆,并设置其属性*/

circle_t4 p circle;

if ((p_circle = (circle_t4)malloc (sizeof (circle_t)) ) ==NULL ) return NULL;

p_circle->common.type = circle; p_circle->common.destroy = destroy

Circle;

p_circle->common.draw = drawCircle;

(3) = createPoint(ap); /* 设置圆心*/

p_circle->radius = va_arg(*ap, int); /* 设置圆半径*/

return p_circle;

}

shape_t* createShape(shape_type st, "') { /* 创建某一种具体的图形*/

va_list ap; /*可变参数列表*/

&nbs

点击查看答案

第10题

通过设置Shape控件的()属性来确定是何种封闭图形

A.Shape

B.Borderstyle

C.FillStyle

D.Style

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

1. 搜题次数扣减规则:

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

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

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

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

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

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

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