使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成列操作,将类的定义补充完整,实现以下功能: (1)完成CBook类构造函数,对整型变量ID和作者Author进行赋值,请在注释∥********1******

admin2017-09-20  13

问题 使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成列操作,将类的定义补充完整,实现以下功能:
    (1)完成CBook类构造函数,对整型变量ID和作者Author进行赋值,请在注释∥********1********后添加适当的语句。
    (2)完成类CBooks的析构函数,释放申请的内存,请在注释∥********2********后添加适当的语句。
  (3)完成类CBooks的AddBookMember函数,请在注释∥********3********后添加适当的语句。
    (4)完成CBooks类,用于由书的ID检索到作者的函数char*GetBookAuthor(int nlD),请在注释∥********4********后添加适当的语句。
    (5)程序的输出结果为:
    Tom
    Harry
    注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
#include
#include
Class CBook
{
public:
    int ID;
    char Author[32];
public:
    CBook(int  ID Number,char*Author Name)
    {
    thiS一>ID=ID Number;
∥********1********
    }
};
C1ass CBooks
{
private:
    Class NOde
    {
    public:
    Node*next;
    CBook*book;
    }*m pBook;
    public:
    CBooks()
    {
    m pBook=NULL:
    }
    ~CBooks()
    {
    ∥********2********
    while()
    {
    Node*P  =m
pBook一>next;
    delete m pBook
一>book;
    delete m pBook;
    m—pBook=P;
    }
    }
int  AddBoo kMenber(int
nID,char*Author)
    {
    Node*p=m—pBook;
    Node*q=NULL;
     ∥********3********
    while()
    {
    if f nID==P一>
book一>ID)
    {
    return 0;
    }
    q=p;
    P=p一>next;
    }
    if(P==NULL)
    {
    P=new Node;
    P一>next=NULL;
    P—>book=  new
CBook(nID,Author);
    }
    if(q=NULL)
    {
    m pBook=P;
    }
    else
    {
    q一>next=p;
    }
    return 1;
    }
    char*GetBookAuthor(int nID)
    {
    Node*p=m pBook;
     ∥********4********
    while()
    {
    if(P一>book一>ID==nID)
    {
    return P一>
book一>AUthor;
    }
    P=P一>next;
    }
    return 0;
    }
    };
    int main()
    {
    CBooks booksl;
    booksl.AddBookMenber  (1,“Tom”);
    books 1.AddBookMenber  (3,“Lee”);
    books 1.AddBookMenber (4,“Lily”);
    bookS 1.AddBookMenber(5,“Harry”);
    cout<    cout<    return 0;
}

选项

答案(1) 添加语句: strcpy(Author,Author—Name); (2)将“while()”补充完整为:while(m—pBook!=NULL) (3)将“while()”补充完整为:while(P!:NULL) (4)将“while()”补充完整为:while(p!=NULL)

解析 程序当中定义了CBook类和CBooks类,CBook类描述书的基本信息,包含ID和Author数组两个成员变量,CBooks类描述由Node对象组成的链表,每个Node对象包含指向CBook对象的指针和下一个Node对象的指针。第一个Node对象的next指针指向第二个Node对象,同样第二个Node对象的next指针指向第三个Node对象,如此形成一个链表结构。成员函数AddBookMenber(int nlD,char*Author)实现向链表中添加一个Node节点,成员函数GetBookAuthor(int nID)返回某个Node节点的CBook对象的ID为nlD的CBook对象的Author数组名。
转载请注明原文地址:https://kaotiyun.com/show/ZTAp777K
0

最新回复(0)