阅读以下说明和C++程序,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 本程序用于评选优秀教师和学生。当输入一系列教师或学生的记录后,将优秀学生及教师的姓名列出来。其类结构如下图所示: 【程序】 #include

admin2010-01-15  25

问题 阅读以下说明和C++程序,将应填入(n)处的字句写在答题纸的对应栏内。
   【说明】
   本程序用于评选优秀教师和学生。当输入一系列教师或学生的记录后,将优秀学生及教师的姓名列出来。其类结构如下图所示:
   
   【程序】
   #include <iostream.h>
   #include <stdio. h>

   class base
   {
   protected:
       char name[8];
   public:
     void getname(){cout<<"name:"; cin>>name;}
     void printname(){cout<<"name:"<<name<<endl;}
       (1)  
   };
   class student:  (2)  
   {
       int num;
   public:  
       void getnum()
       {cout<<"score:"; cin>>num;}
       bool isgood()
       {return  (3)  }
   };
   class teacher:  (2)  
   {
       int num;
   public:
       void getnum()
       {cout<<"paper:"; cin>>num;}
       bool isgood()
       {return (num>3)?true:false;}
   void main()
   {
       base *p[50];
       student *pstud;
       teacher *ptech;
       char ch;
       int count=0;
       do{
            cout<<"input teacher(t) or student(s):";
            cin>>ch;
            if(ch==’s’)
            {
                  pstud=new student;
                  pstud->getname();
                  pstud->getnum();
                  p[count++]=pstud;
            }
            else if(ch==’t’)
            {
                   (4)  
                  ptech->getname();
                  ptech->getnum();
                  p[count++]=ptech;
            }
           else
               cout<<"input is wrong"<<endl;
           cout<<"continue to iput(y/n)?";
           cin>>ch;
       }while(ch==’y’);

       for(int i=0;i<count;i++)
           if((5))
               p->printname();
   }

选项

答案(1)virtual bool isgood()=0; (2)public base (3)(num>90)?true:false; (4)ptech=new teacher; (5)p[i]->isgood()==true

解析 本题考查C++中类的继承、虚函数和其他一些语法结构。
   题目要求本题的程序用于评选优秀教师和学生,在输入一系列教师或学生的记录后,能将优秀学生及教师的姓名列出来。根据题目中的图,对于学生来说,只要拿其考试成绩与90比较大小就可;对于老师来说,只要一年内发表的论文超过3篇就可以。
   下面我们来分析代码。代码给出了三个类的定义和一个主函数,类base是类student和类teacher的基类。
   第(1)空处在基类base的定义里面,结合题目中的要求,我们知道类base中需要定义一个isgood()虚函数,但在类base的代码中并没有看到对虚函数isgood()的定义,因此,第(1)空应该是定义虚函数isgood()。在C++中定义虚函数的方法是在函数的定义前加一个关键字virtual,所以,此空应填virtual bool isgood()=0。
   第(2)空处的作用很明显,是用在继承类的定义时,表明其对父类的继承方式,由继承类中继承父类的成员方法getname()仍然是公有的可以知道,子类对父类的继承方式是公有继承。所以,此空答案为public base。
   第(3)空处的作用是在类student中重新定义虚函数isgood(),其要完成的任务在上面分析中已经知道,拿学生的考试成绩与90比大小,如果大于90返回true,否则返回 false。因此,此空答案为(num>90)?true:false。
   在做第(4)空时,我们如果结合前面那个订语句下面的代码就很容易明白了,此空要完成的任务是动态创建一个teacher对象,因此,答案为ptech=new teacher。
   第(5)空所在的位置是一个条件选择语句的条件,再结合全程序来看,不难发现此时程序还没有实现对优秀学生及教师的姓名的列出,而第(5)空下面的语句刚好用来列出姓名,那么第(5)空的功能是判断是否为优秀学生或老师,调用函数isgood()可以实现。因此,此空答案为p->isgood()==true。
转载请注明原文地址:https://jikaoti.com/ti/WXW7FFFM
0

最新回复(0)