阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。【说明】以下程序的功能是计算正方体、球体和圆柱体的表面积和体积并输出。程序由4个类组成:类cube、sphere和cylinder分别表示正方体、球体和圆柱体;抽象类 container为抽象类,提供了两个纯虚拟函数surface_area()和volum(),作为通用接口。【C++程序】include<iostream.h>define pi 3.1416class container{protected:double radius;publ

题目

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

【说明】

以下程序的功能是计算正方体、球体和圆柱体的表面积和体积并输出。

程序由4个类组成:类cube、sphere和cylinder分别表示正方体、球体和圆柱体;抽象类 container为抽象类,提供了两个纯虚拟函数surface_area()和volum(),作为通用接口。

【C++程序】

include<iostream.h>

define pi 3.1416

class container{

protected:

double radius;

public:

container(double radius) {container::radius=radius;}

virtual double surface_area()=0;

virtual double velum()=0;

};

class cube:(1){ //定义正方体类

public:

cube(double radius):container(radius){};

double surface_area () {return 6 * radius * radius;}

double volum() {return radius * radius * radius;}

};

class sphere:(2){ //定义球体类

public:

sphere(double radius): container(radius){};

double surface_area() { return (3);}

double volum() {return pi * radius * radius * radius * 4/3;}

};

class cylinder:(4){ //定义圆柱体类

double height;

public:

cylinder(double radius,double height):container(radius)

{

container::height=height;

}

double surface_are a () { return 2 * pi * radius * (height+radius); }

double volum () {return (5);}

};

void main()

{

container * p;

cube obj1 (5);

sphere obj2(5);

cylinder obj3(5,5);

p=&obj1;

cout<<“正方体表面积”(<<p->surface_area()<<end1;

cont<<“正方体体积”<<p->volume()<<end1;

p=&obj2;

cout<<“球体表面积”<<p->surface_area()<<end1;

cout<<“球体体积”<<p->volume()<<end1;

p=&obj3;

cout<<“球体表面积”<<p->surface_area()<<end1;

cout<<“球体体积”<<p->volume()<<end1;

}


相似考题
更多“阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。【说明】 以下程序的功能是计算正方体、球 ”相关问题
  • 第1题:

    阅读以下说明,以及用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;

    }


    正确答案:(1)cout"析构函数.\n" (2)a1 (3)a1—>print() (4)delete (5)delete
    (1)cout"析构函数.\n" (2)a1 (3)a1—>print() (4)delete (5)delete 解析:本题考查用C++语言对输出的实现。
    题目中没有什么条件,只给出了输出结构,要求程序能实现这个输出。下面来具体分析代码。
    第(1)空很明显是类AA的析构函数的函数体,类的析构函数一般在撤销一个对象时调用,根据题目的要求,要输出析构函数这样的结果,而在程序中没有与此相关的操作,那么此空应该是用来实现这个功能的,借鉴构造函数中的内容,我们很容易就得出此空答案为cout"析构函数.\n"。
    第(2)空在主函数中,很明显此空所在的语句是创建一个AA类的对象,并让一个AA型的指针变量指向这个对象。在函数开始的时候声明了两个AA型的指针变量a1和a2,而a2在下面已经有了值,那么这里只有用变量a1,因此此空答案为a1。
    第(3)空是在创建了两个对象后执行的语句,根据程序不难推断出,这里应该要实现对象a1的数据输出,那么就要调用函数print(),因此此空答案为a1->print()。
    第(4)空所在的语句是在实现了构造函数与数据输出后执行的语句,从题目要求来分析,这里应该要调用对象的析构函数来输出“析构函数”这样一个结果,上面我们已经分析到了对象的析构函数一般在撤销对象时调用。从对象的执行过程来分析,在对象的所有处理完成后也应该撤销对象来释放所占的资源,那么此空的任务应该是用来撤销a1对象,在C++中一般用关键字delete,因此此空答案为delete。
    第(5)空和第(4)空的情况一样,因此此空答案为delete。

  • 第2题:

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

    [说明]

    下面的流程图用于计算一个英文句子中最长单词的长度(即单词中字母个数)MAX。假设该英文句子中只含字母、空格和句点“.”,其中句点表示结尾,空格之间连续的字母串称为单词。

    [流程图]


    正确答案:(1)MAX←0 (2)←L+1 (3)MAX←L (4)≠ (5)L←0
    (1)MAX←0 (2)←L+1 (3)MAX←L (4)≠ (5)L←0 解析:本题用到的三个变量及其作用分别为:A,存放输入的一个字符;MAX,存放当前为止最长单词的长度;L,存放当前单同的长度。
    (1)使用变量MAX应先赋予初值,由上下文知其初值为0;
    (2)读取当前单词时,每读人一个字母,单词长度值L应增1;
    (3)当前单词长度L比MAX时,应更新MAX的值;
    (4)若当前字符不是句点,应当继续读取字符;
    (5)读取下一个单词前,应当重置L的值。

  • 第3题:

    阅读下列说明和C++-代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某发票(lnvoice)由抬头(Head)部分、正文部分和脚注(Foot)部分构成。现采用装饰(Decorator)模式实现打印发票的功能,得到如图5-1所示的类图。

    【C++代码】 #include using namespace std; class invoice{ public: (1){ cout<<"This is the content of the invoice!"<

    答案:
    解析:
    (1) virtual void printInvoice() (2) ticket->printInvoice() (3) Decorator::printInvoice() (4) Decorator::printInvoice() (5) &a
    【解析】

    试题分析
    1.Invoice类下,义虛函数,按类图,函数名是printInvoice
    2.前面定义对象名是ticket,那么在ticket不为空的时候调用函数printInvoice
    3.这部分填写发票的抬头,看类图应该实现函数printInvoice ,Decorator装饰模式使用该方法
    4.这部分是发票的脚注,看类图应该实现函数printlnvoice,Decorator装饰模式使用该方法
    5.FootDecorator a(NULL) ;脚步的装饰参数是a,调用a参数,

  • 第4题:

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

    }


    正确答案:程序1优点:程序简洁;缺点:多执行了N-1次逻辑判断并且程序无法循环“流水”作业使得编译器无法对循环进行优化处理降低了效率。 程序2优点:循环的效率高;缺点:程序不简洁。
    程序1优点:程序简洁;缺点:多执行了N-1次逻辑判断,并且程序无法循环“流水”作业,使得编译器无法对循环进行优化处理,降低了效率。 程序2优点:循环的效率高;缺点:程序不简洁。

  • 第5题:

    试题三(共 15 分)

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


    正确答案:

  • 第6题:

    阅读下列说明和?C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
    【说明】
    阅读下列说明和?Java代码,将应填入?(n)?处的字句写在答题纸的对应栏内。
    【说明】
    某快餐厅主要制作并出售儿童套餐,一般包括主餐(各类比萨)、饮料和玩具,其餐品种
    类可能不同,但其制作过程相同。前台服务员?(Waiter)?调度厨师制作套餐。现采用生成器?(Builder)?模式实现制作过程,得到如图?6-1?所示的类图。






    答案:
    解析: