一起答
主观

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

  [说明]

 以下C++代码使用虚函数实现了同一基类shape派生出来的Class rectangle、Class triangle、Class circle实现了计算矩形、圆形面积的计算。仔细阅读以下代码,将(n)处语句补充完整。

 [代码5-1]

#include<iostream.h>

 #define PI 3.14159

 class shape {//基类

 protected:

   (1);

 public:

  (2);

  (3);

 };

 [代码5-2]

  class rectangle: public shape {

  public:

    rectangle (int x2,int y2,int r2): (4) {};

    double area ( )  {return x*y; };

  };

  class circle: public shape {

  public:

    circle (int x3,int y3,int r3):(5){};

    double area ( )  {return r*r*PI; };

  };

 [代码5-3]

 void main ( )

  {

    rectangle r (10,20,0);

    circle c (0,0,30);

    shape (6);

    cout<<"长方形面积="<<s1->area ( ) <<endl;

    cout<<"圆形面积="<<s2->area ( ) <<endl;

  }

 [运行结果]

 长方形面积=200

 圆形面积=2827.43

参考答案
查看试卷详情
相关试题
  1. 阅读以下说明和Visual Basic代码,填入(n)处。

     [说明]

     以下Visual Basic代码实现了系统登录时对用户进行合法性检查。界面如图9-6所示。阅读下面代码,将(n)处代码补充完整。

    [代码7-1]

     Begin VB.Form. form1

      BackColor  = &H00808080&

      Caption   = "系统登录"

      //...窗体描述(略)

        Begin VB.Labe1 Labe12

        Backstyle  = 0 'Transparent

        Caption   = "密 码: "

      //…窗体描述(略)

      End

      Begin VB.Labe1 Labe11

        Backstyle  = 0 'Transparent

        Caption   = "操作员: "

      //...窗体描述(略)

      End

      //...窗体描述(略)

     End

     [代码7-2]

     Dim TIM As Integer

     Dim mydb As Database

     Dim myrs As Recordset

     Dim sq1 As String

     Private Sub Form. ACdvate ( )

      Set mydb=Workspaces (0).OpenDatabase (App.Path&"\CIUID.mdb") '打开数据库

      sq1="select操作员from qxsz"

      Set myrs=mydb.OpenRecordset (sq1)

      If (1) Then myrs.MoveLast

      If (2) Then myrs.MoveFirst

      For i=0 TO myrs.RecordCount-1

         (3) 

         (4) 

      Next i

      If (5) Then master.Listlndex=0

      myrs.Close

      mydb.Close

      master.SetFocus

     End Sub

     [代码7-3]

     Private Sub Cmdok_Click ( )  '确认操作员和密码

      Dim MESSAGE As String

      If master.Text<>'''Then

        Set mydb=Workspaces (0) .OpenDatabase (App.Path&"\CIUID.mdb")

        Set myrs=mydb.OpenRecordset ("qxsz", dbOpenDynaset)

        myrs.Findfirst"操作员="+Chr(34) +master.Text+Chr(34) +""  '查找操作员

        If (6) Then

          MsgBox ("无此操作员!")

         Else

         If password.Text=myrs.Fields("密码") Then  '确认密码

           MsgBox"系统登录成功!"  '系统登录成功

          Else

           If TIM=3 Then

             MESSAGE=MsgBox ("密码输入错误,请向系统管理员查询!",0,"")

             If MESSAGE=vbOK Then End

           End If

           MsgBox ("密码错误,请重新输入密码!")

           TIM=TIM+1              '密码输入错误次数

           password.SetFocus

         End If

        End If

       End If

     End Sub

  2. 阅读以下说明和C++代码,填入(n)处。

      [说明]

     以下C++代码使用虚函数实现了同一基类shape派生出来的Class rectangle、Class triangle、Class circle实现了计算矩形、圆形面积的计算。仔细阅读以下代码,将(n)处语句补充完整。

     [代码5-1]

    #include<iostream.h>

     #define PI 3.14159

     class shape {//基类

     protected:

       (1);

     public:

      (2);

      (3);

     };

     [代码5-2]

      class rectangle: public shape {

      public:

        rectangle (int x2,int y2,int r2): (4) {};

        double area ( )  {return x*y; };

      };

      class circle: public shape {

      public:

        circle (int x3,int y3,int r3):(5){};

        double area ( )  {return r*r*PI; };

      };

     [代码5-3]

     void main ( )

      {

        rectangle r (10,20,0);

        circle c (0,0,30);

        shape (6);

        cout<<"长方形面积="<<s1->area ( ) <<endl;

        cout<<"圆形面积="<<s2->area ( ) <<endl;

      }

     [运行结果]

     长方形面积=200

     圆形面积=2827.43

  3. 阅读以下说明和JAVA 2代码,填入(n)处的。

     [说明]

     以下JAVA程序实现了在接口interface iShape2D的定义和应用,仔细阅读代码和相关注释,将程序补充完整。

     [代码6-1]

     interface iShape2D //定义接口

     {

        (1) 

        (2) 

     }

     (3)//实现CRectangle类

     {

       int width, height;

        (4) CRectangle (int w,int h) {

        width=w;

        height=h;

       }

       public void area ( ){ //定义area( )的处理方式

        System. out.println ("area="+width*height);

       }

     }

      (5)//实现CCircle类

     {

       double radius;

      (6) CCircle (double r) {

         radius=r;

       }

       public void area ( ) {  //定义area( )的处理方式

         System.out.println ("area="+pi*radius*radius);

       }

     }

     [代码6-2]

     public class app10_4

     {

       public static void main(String args[])

       {

        CRectangle rect=new CRectangle (5,10);

        rect.area ( );  //调用CRectangle类里的area ( ) method

        CCircle cir=new CCircle (2.0);

        cir.area ( );  //调用CCircl类里的area ( ) method

       }

     }

  4. UML设计中交互图通常可以分为哪两类图?绘制交互图对系统的设计有什么作用?

  5. 阅读下列函数说明和C代码,应填入(n)处。

      [说明]

     假设设A和B均为顺序表,A'和B'分别为A和B中除去最大共同前缀后的子表(例如,A=(x,y,y,z,x,z),B=(x,y,y,z,y,x,x,z),则两者中最大的共同前缀为(x,y,y,z),在两表中除去最大共同前缀后的子表分别为A'=(x,z)和B'=(y,x,x,z)。若A'=B'=空表,则A=B;若A'=空表,而 B'!=空表,或者两者均不为空表,且A'的首先小于B'的首元,则A<B;否则A>B。

     下面程序实现了比较A、B大小的算法。

     [C程序]

     #include<stdio.h>

     #include<stdlib.h>

     typedef struct linknode

     {

     int data;

     struct linknode *next;

       }node:

       node *creatlist ( )    /*建立单链表*/

    {

     node*head, *r, *s;

     int x;

     head= (node *) malloc (sizeof (node));  /建立单链表的头结点head*/

     r=head;

     printf ("输入系列整数,以O标志结束\n");

     scanf ("%d", &x);

     while (x!=O)    /*x==O则退出while循环*/

     {

       s=(node*) malloc (sizeof (node));

       s->data=x;

       r->next=s;

       s->next=NULL;

       r=s;

       scanf ("%d", &x);

     }

     r->next=NULL;

     s=head;

         (1);

     Free (s);

     return head;

    }

    void subs ( )

    {

     node*p, *p1, *p2, *q, *heada, *headb;

     heada=creatlist ( ) ;

     headb=creatlist ( ) ;

     p=heada;

     p1=p;   /*p1指向p所指结点的前一个结点,开始时均缀向头结点*/

     while (p!=NULL )

     {

       q=headb;

       while (q!=NULL&&q->data!=p->data)

         q=q->next;

       if ((2))    {

         if (p==heada)

         {

              (3);

          p1=heada;

         }

        else if (p->next==NULL) p1->next=NULL; /*该结点为最后一结点,删除*/

         else p1->next=p->next;

           p2=p->next;

            (4);

         free (p);

            (5);

      }

     else   /*p所指结点的元素不在B中,则直接下移p*/

      {

       p1=p;

        (6);

      }

    }

    p=heada;    /*显示删除后的结果*/

    if (p==NULL)

     printf ("两集合机减的结果为空\n");

    else

     printf ("两集合相减的结果\n");

    while (p!=NULL)

    {

     printf ("%d", p->data);

     p=p->next;

    }

    }

    void main ( )

    {

     subs ( ) ;

    }

  6. 图10-8为选课注册顺序图,请根据系统设计说明及图中信息,采用说明中的术语将选课注册顺序图补充完整。

  7. 阅读下列说明以及图10-7和图10-8,回答问题1、问题2和问题3。

     [说明]

     某高等院校的教学管理具有选课管理和成绩管理两大功能。选课管理主要完成以下工作:(1)录入与生成新学期课程表;(2)学生选课注册;(3)查询,学生、教师、教学管理员可以查询课程表,获得课程信息、学生选课信息和学生、教师信息;(4)选课注册信息的统计与报表生成。成绩管理主要的功能为: (1)成绩录入:教学管理员录入学生考试成绩;(2)成绩查询:教师、教学管理员可以查询学生考试成绩。。学生只允许查询自己的考试成绩,不允许查询他人的成绩;(3)成绩统计与报表生成:教学管理员进行成绩统计,打印统计报表。把学生选课注册信息传送给财务系统,以便计算学生应交纳的费用。

     根据需要,系统设计的用例有“选课管理”、“成绩管理”、“查询课程信息”、“选课注册”、“管理开设课程”等用例。其中部分用例说明如下:

     “查询课程信息”:学生、教师或教学管理员启动查询课程信息时,该用例开始运行。根据输入的查询要求(查询主题或关键字),显示有关的课程信息;

     “选课注册”。当学生登录进行选课注册时,该用例开始运行,它提供了选择课程、注册、修改注册、删除注册等功能。学生登录需要用户标识(ID)和口令;

     “管理开设课程”。 当教学管理员登录系统进行产生选课信息操作时, 该用例开始运行。 它首先检查用户标识(ID)和口令,然后从数据库中取出学生的选课注册数据,按照要求进行分类统计,生成选课注册报表。

     活动者“学生”与用例“选课注册”的交互关系如下:当“学生”登录系统进入选课注册活动时,首先要输入用户标识(ID)和口令,经系统的“注册表单”接口对象验证,如果正确无误,则“学生”可以进行查询活动或选课活动,否则拒绝进入。若“学生”发出“查询”请求,系统的“选课注册表单”接口对象响应信息给“学生”,及发送增加或删除学生选课数据的消息。 “开设课程”对象响应该消息,找出数据库中的相关数据,增加或删除学生的姓名和所选的课程名,或做相应的修改,并把增加或删除学生课操作成功或失败的信息反馈给“选课注册表单”接口对象,“选课注册表单”接口对象再反馈给“学生”。如果“学生”按下“确认”键,则选课操作得到确认,发出提交请求。“选课注册表单”接口对象响应该请求,并发出“存储”消息。“开设课程”对象响应“存储”消息,进行数据库存储操作,选课数据存入数据库。若“学生”结束选课,发出“退出”系统请求,“注册表单”接口对象响应请求,关闭系统。

     图10-7为系统的顶层UML用例图。图10-8为选课注册顺序图。

    用例图解释了活动者与用例之间的交互关系。根据系统设计说明,将系统的顶层用例图补充完整。

  8. 数据依赖对关系模式有哪些影响?请简述这些影响。

  9. 阅读以下说明和图,回答问题1至问题3。

    [说明]

     图书馆藏书管理系统,完成用户信息管理,借阅归还信息管理,馆藏书目的信息管理,违规处罚管理

     和各种查询等功能。系统的用户可分为超级用户和普通用户两类,超级用户负责系统维护,包括对藏书信息,用户信息,借阅和归还信息,违规处罚信息的录入,修改,查询,删除等。普通用户即借阅者则只是具有查询书目信息,查询本人的借阅情况,违规处罚信息和预定书目的权限。

     用户通过身份验证后进入主界面。主界面为超级用户提供6项选择:图书信息管理,用户信息管理,图书的借阅和归还信息管理,违规处罚信息管理,口令修改。普通用户有4项功能选择:书目查询,借阅归还信息,违规处罚信息,口令修改。

     图书信息管理:超级用户可以增加,修改,删除图书信息,也可以查看书目信息。

     用户信息管理:超级用户可以增加,修改,删除用户信息,也可以查找用户信息。

     借阅归还信息:超级用户可以加入,修改,删除借阅纪录,查看某本书的借阅情况,查询指定的书目借阅和归还信息。

     违规处罚管理:超级用户可以给普通用户增加,修改,删除违规处罚信息,普通用户如果逾期不还图书,系统将暂时终止普通用户的借阅权利,直到用户接受违规处罚后,方可以恢复正常的借阅权利。

     口令修改:用户需要输入原口令,并且两次输入新口令一致后,系统即用新口令代替旧口令。

     图书馆藏书借阅系统信息流如图10-5所示,图书馆藏书管理系统的E-R模型图如图10-6所示。

    请写出图书馆藏书管理系统的E-R模型图,该系统涉及的实体集及属性。

  10. 根据E-R图中给出的词汇,按照“关系模式名(属性,属性,…)”的格式,将此E-R图转换为7个关系模式,其中模式名根据需要取实体名或联系名。