niusouti.com

编写一个圆类Circle,该类拥有()

题目

编写一个圆类Circle,该类拥有()


相似考题

2.使用VC6打开考生文件夹下的工程test7_3,此工程包含一个源程序文件test7_3.cpp,其中含有一个类Circle的定义,但该类的定义并不完整。请按要求完成下列操作,将类Circle的定义补充完整。(1)为类Circle增加一个构造函数,该函数有一个参数,并在构造时将该参数值赋给成员radius。将该函数实现为一个非内联函数,并且使用参数列表的方式将类成员赋值。请在注释“//**1**”之后添加适当的语句。(2)为类Circle增加一个成员函数print(),使得可以输出有关圆的信息,比如下列程序Circle c;c.SetRadius(5);c.Print();将输出:The circle has radius of 5!请在注释“//**2**”之后添加适当的语句。(3)完成友元函数void CompareR(Circle *cl,Circle*c2)的定义,在屏幕中输出c1与c2比较radius大小结果,要求使用 if-else结构完成。请在注释“//**3**”之后添加适当的语句。输出结果如下;The circle has radus of 5!The circle has radius of 10!c1<c2注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件test7_3.cpp清单如下:include<iostream.h>class Circle{public:Circle():radius(5){}//**1**void SetRadius(int r) {radius=r; }int GetRadius() {return radius; }//**2**friend void CompareR(Circle *c1,Circle*C2);private:int radius;};void CompareR(Circle *c1,Circle *C2){//**3**cout<<"c1>c2"<<endl;elseif((c1->GetRadius())==(c2->GetRadius()))cout<<"c1=c2"<<endl;elseif((c1->GetRadius())<(c2->GetRadius()))cout<<"c1<c2"<<endl;}void main(){Circle c1;c1.SetRadius(5);C1.Print();Circle c2(10);c2.Print();CompareR(&c1,&c2);}

更多“编写一个圆类Circle,该类拥有()”相关问题
  • 第1题:

    请编写一个完整的Java Application程序,能够计算圆的周长和面积。

    要求:

    (1)定义点类CPoint;

    (2)定义圆类CCircle继承自类CPoint,类中属性包括:圆心,半径,类中方法包括:求周长perimeter()、求面积area();

    (3) 定义主类CCircleDemo,利用类CCircle输出一个圆的圆心,半径,周长和面积


    答案:如下

    解析:

    public class CPoint{

     private float radius;

     public CCircle(){

      this.radius=5.0f;

     }

     public CCircleDemo(float radius){

      this.radius=radius;

     }

     public void Area(){

      System.out.println("半径为"+this.radius+"面积是:"+(3.14*radius*radius));

     }

     public void perimeter(){

      System.out.println("半径为"+this.radius+"周长是:"+(3.14*2*radius));

    }


    public static void main(String arg[]){

     CCircle c1=new CCircle();

     c1.Area();

     c1.perimeter();

      CCircle c2=new CCirclet(9.0f);

     c2.Area();

     c2.perimeter();

    }

    }


  • 第2题:

    CIRCLE命令中的“T”选项指的画圆方式是()。

    A.相切,相切,相切

    B.相切,相切,半径

    C.三点决定一个圆

    D.两点决定一个圆


    正确答案:B

  • 第3题:

    下列程序中,先声明一个圆类circle和一个桌子类table,另外声明一个圆桌类roundtable,它是由 circle和table两个类派生的,要求声明一个圆桌类对象,并输出圆桌的高度,面积和颜色。请填空完成程序

    include<iostream.h>

    include<string.h>

    class circle{

    double radius;

    public:

    circle(double r){radius=r;}

    double get_area(){return 3.416*radius*radius;}

    };

    class table{

    double height;

    public:

    table(double h)<height=h;}

    double get_height(){return height;}

    };

    class roundtable:public table,public circle{

    char *color;

    public:

    roundtable(double h,double r,char c[]): 【 】 {

    color=new char[strlen(c) +1];

    【 】;

    };

    char*get_color(){return color;}

    }:

    void main(){

    roundtable rt(0.8,1.0,“白色”);

    cout<<"圆桌的高:"<<rt. get_height()<<end1;

    cout<<"圆桌面积:"<<rt.get_area()<<end1;

    cout<<"圆桌颜色:"<<n.get color()<<end1;

    }


    正确答案:circle(r) table(h) strcpy(color c)
    circle(r), table(h) strcpy(color, c)

  • 第4题:

    如果一个派生类只有一个直接基类,则该类的继承方式称为【 】继承;如果一个派生类同时有多个直接基类,则该类的继承方式称为【 】继承。


    正确答案:单 多
    单 多 解析:从派生类的角度,根据它所拥有的基类数目不同,可以分为单继承和多继承。一个类只有一个直接基类时,称为单继承;而一个类同时有多个直接基类时,则称为多继承。

  • 第5题:

    关于抽象类和具体类,下列说法不正确的是()

    • A、如果一个类有父类,该类就是具体类
    • B、如果一个类继承了父类的抽象操作方法,而该类未提供实现,那么该类是抽象类
    • C、抽象类没有任何直接的实例,而具体类则有直接实例
    • D、在UML中,通过把一个类的名称写为斜体来指明该类是抽象类

    正确答案:A

  • 第6题:

    在java中一个类被声明为final类型,表示的意思是() 

    • A、该类可以被其子类继承
    • B、该类一定是一个子类
    • C、该类不能被继承
    • D、该类是一个顶级类

    正确答案:C,D

  • 第7题:

    定义一个类名为“MyClass.java”的类,并且该类可被一个工程中的所有类访问,那么该类的正确声明应为()

    • A、privateclassMyClassextendsObject
    • B、classMyClassextendsObject
    • C、publicclassMyClass
    • D、privateclassMyClassextendsObj

    正确答案:C

  • 第8题:

    画一个圆与三个对象相切,应使用Circle中哪一个选项()

    • A、相切、相切、半径
    • B、相切、相切、相切
    • C、3点
    • D、圆心、直径

    正确答案:B

  • 第9题:

    关于圆和椭圆的绘制说法正确的是()

    • A、都是用Circle方法,参数选择也是一样的
    • B、Circle(60,50),10表示在(60,50)处绘制一个半径为10的椭圆
    • C、Circle(60,50),10....0.6在窗体上绘制垂直方向上的椭圆
    • D、Circle(60,50),10....1.5在窗体上绘制垂直方向上的椭圆

    正确答案:D

  • 第10题:

    用CIRCLE命令画圆时,圆的半径输入0,则会绘制出一个点


    正确答案:错误

  • 第11题:

    判断题
    用CIRCLE命令画圆时,圆的半径输入0,则会绘制出一个点
    A

    B


    正确答案:
    解析: 暂无解析

  • 第12题:

    单选题
    关于this指针的说法正确的是()
    A

    this指针必须显式说明

    B

    定义一个类后,this指针就指向该类

    C

    成员函数拥有this指针

    D

    静态成员函数拥有this指针


    正确答案: C
    解析: 暂无解析

  • 第13题:

    您正在创建一个执行复杂财务计算的类。该类包含一个用于检索当前利率的方法(名为GetCurrentRate),以及一个用于存储当前利率的变量(名为currRate)。您编写该类的序列化表现形式。您需要编写一个代码段,当对类的实例进行反序列化时,该代码段使用当前利率更新currRate变量。您应该使用哪个代码段?()

    A.A

    B.B

    C.C

    D.D


    参考答案:D

  • 第14题:

    阅读以下说明和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


    正确答案:(1)this->center (2)this->center->common (3)p_circle->center (4)va start (5)C(P(2040)10)
    (1)this->center (2)this->center->common (3)p_circle->center (4)va start (5)C(P(20,40),10) 解析:本题考查C语言中指针机制、可变数目参数机制及结构体存储映像。本题中涉及的三个数据结构shape_t、circle_t和point_t的关系如下图所示。

    通过阅读给出的程序代码可以看出,point_t和circle_t两种结构通过其成员shape_t common表示了上图中的继承关系:circle t中的数据成员point_t*center表示了与 pornt_t之间的引用关系。
    函数destroyCircle(circle_t*this)完成一个circle t对象的内存释放工作。在结构circle t定义中,由于数据成员center是一个指针,所以必须释放对应内存,即free(this->center)。
    函数drawCircle(circle t* this)完成圆形的显示工作。其中需要显示其圆心的信息,而此信息由circle_t. common. draw()函数完成,即this->center->common.draw(this.center)。 point_t类型的显示工作由函数draw Point完成,其在屏幕上显示的信息格式为P(x,y),其中x表示点的横坐标,y表示点的纵坐标。圆形的显示函数drawCirele在屏幕卜显示的信息格式为C(P(x,y),r),其中x表示圆心的横坐标,y表示圆心的纵坐标,r表示半径。
    函数ereateCircle(va_list*叩)完成创建一个圆形工作,其中需要创建其圆心对象,a圆心对象的地址保存在circle t.center数据成员中。该函数的参数采用了C语言提供的标准类型va list,以处理可变数目的函数实参。对于可变数目的参数列表的一般处理方式如下:
    #includestdarg.h>
    void foo(char*fmt,…)/*表示fmt后面的参数个数可变*/
    {
    va listap;/*保存可变数目的参数列表*/
    va start(ap,fmt);/*初始化ap,保存参数fmt后面的实参列表*/
    //…
    va arg(ap,TYPE);/*获取下一个实参,其中TYPE指明该参数的类型*/
    //…
    va end(ap);/*释放ap占用的资源*/
    }

  • 第15题:

    运行以下程序后,输出的图形是( )。 Forr=O To 150 Circle(320,240),r Fori=1 To 1000 Nexti Nextr

    A.一个固定的空心圆

    B.一个半径逐渐变大的空心圆

    C.一个固定的实心圆

    D.一个半径逐渐变大的实心圆


    正确答案:D

  • 第16题:

    Java中同一个类的多个对象将独立拥有该类定义的静态成员变量的一个拷贝 。()

    此题为判断题(对,错)。


    答案:错

  • 第17题:

    CIRCLE命令中的“T”选项指的画圆方式是()。

    • A、相切,相切,相切
    • B、相切,相切,半径
    • C、三点决定一个圆
    • D、两点决定一个圆

    正确答案:B

  • 第18题:

    定义一个类名为MyClass的类,并且该类可被所有类访问,那么该类的正确声明应为()

    • A、privateclassMyClassextendsObject
    • B、classMyClassextendsObject
    • C、publicclassMyClass
    • D、protectedclassMyClassextendsObject

    正确答案:C

  • 第19题:

    无序列表的属性值circle表示()。

    • A、方块
    • B、空心圆
    • C、实心圆
    • D、以上都不对

    正确答案:B

  • 第20题:

    关于this指针的说法正确的是()

    • A、this指针必须显式说明
    • B、定义一个类后,this指针就指向该类
    • C、成员函数拥有this指针
    • D、静态成员函数拥有this指针

    正确答案:C

  • 第21题:

    CIRCLE是什么绘制命令()。

    • A、构造线
    • B、圆
    • C、点
    • D、射线

    正确答案:B

  • 第22题:

    单选题
    关于图3.19的叙述()是不正确的。
    A

    Rectangle类和Circle类都有名为area的属性,这两个属性一定是相同的属性

    B

    Rectangle类和Circle类都有名为getArea的操作,这两个操作一定是相同的操作

    C

    Rectangle中名为length的属性和Circle类中名为radius的属性,这两个属性一定是不同的属性

    D

    Shape类有一个属性,Circle类有两个属性,Rectangle类有三个属性


    正确答案: C
    解析: 在父类与子类的继承关系中,多态这种方法使得在多个子类中可以定义同一个操作或属性名,并在每个子类中可以有不同的实现。Rectangle和Circle都继承于父类Shape,对于Shape而言,会有getArea()的操作。但是子类Rectangle和Circle的getArea方法的实现可以完全不一样的,这就体现了多态的特征。至于选项D://Circle类和Rectangle类都要从Shape类继承一个属性,因此分别有"1+1=2"个属性和"2+1=3"个属性。

  • 第23题:

    单选题
    CIRCLE命令中的“T”选项指的画圆方式是()。
    A

    相切,相切,相切

    B

    相切,相切,半径

    C

    三点决定一个圆

    D

    两点决定一个圆


    正确答案: C
    解析: 暂无解析