首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2。该工程中包含一个程序文件main.cpp,其中有“书”类Book及其派生出的“教材”类TeachingMaterial的定义,还有主函数main的定义。请在程序中“//*******
请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2。该工程中包含一个程序文件main.cpp,其中有“书”类Book及其派生出的“教材”类TeachingMaterial的定义,还有主函数main的定义。请在程序中“//*******
admin
2017-02-21
43
问题
请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2。该工程中包含一个程序文件main.cpp,其中有“书”类Book及其派生出的“教材”类TeachingMaterial的定义,还有主函数main的定义。请在程序中“//********found********”下的横线处填写适当的代码,然后删除横线,以实现上述类定义和函数定义。此程序的正确输出结果应为:
教材名:C++语言程序设计
页数:299
作者:张三
相关课程:面向对象的程序设计
注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。
#include<iostream>
usinq namespace std;
class Book //“书”类
char *title; //书名
int num_pages;//页数
char *writer;//作者姓名
public:
Book(const char *the title,
int pages,const char *the_writer):num_pages(pages){
title=new char [strlen(the_title)+1];
strcpy(title,thetitle);
//*********found*********
strcpy(writer,the_writer);
}
//**********found**********
~Book(){________}
int numOfPages()const{returnnum_pages;}//返回书的页数
const char *theTitle()const
{return title;) //返回书名
const char *theWriter()
const{return writer;) //返回作者名
};
class TeachingMaterial:public
Book{
//“教材”类
char*course;
public:
TeachingMaterial(const char*the_title,int pages,const
char *the_writer,const char*the_course)
//**********found**********
:________{
course=new char[strlen(the_course)+1];
strcpy(course,the_course);
}
~TeachingMaterial(){delete[]
course;)
const char *theCourse()
const{return course;) //返回相关课程的名称
};
int main(){
TeachingMaterial a_book("C++语言程序设计",299,"张三","面向对象的程序设计");
cout<<"教材名:"<<a_book.theTitle()<<end1
<<"页数:"<<a book.numOf.Pages()<<end1
<<"作者:"<<a book.theWriter()<<end1
//**********found**********<<"相关课程:"<<________;
cout<<end1;
return 0,
}
选项
答案
(1)writer=new char[strlen(the_writer)+1]; (2)delete[]title,writer; (3)Book(the_title,pages,the_writer) (4)a_book.theCourse()<<end1
解析
(1)主要考查考生对动态分配空间的掌握,在填空前可以参考title的初始化,即先分配空间,再使用strcpy函数复制字符串,因此这里使用writer=new char[strlen(the_writer)+1]语句给writer分配空间,注意分配空间的大小应为字符串长度加1。
(2)主要考查考生对析构函数的掌握,要填写的内容是析构函数的函数体,因为有两个动态数组title和writer,所以要释放两个动态数组空间,使用语句~Book(){delete[]title,writer;}来完成。
(3)主要考查考生对派生类的构造函数的掌握,派生类必须使用成员初始化列表法来先给基类进行初始化。
(4)主要考查成员函数调用,题目要求输出“相关课程:面向对象的程序设计”。可以知道这里要显示的是course,但course是私有成员不能直接调用,要使用成员函数调用,即theCourse()。
转载请注明原文地址:https://www.kaotiyun.com/show/CBAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
包容类Contain和内嵌类Embed定义如下:#include<iostream.h>classContain{private:intX;protected:intz;public:
有如下程序:#include<iostream.h>longfib(intn){if(n>2)return(fib(n-1)+fib(n-2));elsereturn(2);}
C++语言是以哪种语言为基础逐渐发展演变而成的一种程序设计语言
在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有
下面程序的运行结果是【】和【】。#include<iostream.h>#defineN10#defines(x)x*x#definef(x)(x*x)
下面程序错误的语句是#include“iostream.h”①voidmain()②{③intA=0;④int&B;⑤B=A;⑥cout<<B;
下面是复数类complex的定义,其中作为友元函数重载的运算符“--”的功能是将参数对象的实部减1,然后返回对该对象的引用;请补充完整。classcomplex{private:intreal;iht
下面的语句中错误的是
在有理数类Rational中重载插入运算符
写出执行完下列代码段之后指定变量的值:boolx=true,y=false,z=false;x=x&&y||z;y=x||y&&z;z=!(x!=y)||(y==z);则x=false,y=false,Z=
随机试题
患者男性,学生,20岁,患Ⅰ型糖尿病2年,因感冒,体温39.2℃、食欲减退、恶心呕吐及腹痛入院护理查体时发现该患者呈嗜睡状态,呼吸加深加快,皮肤干燥。首先考虑患者可能是
使感光效应减小的因素是
患者女性,80岁。肺心病,近半个月来咳嗽、咳痰,今晨呼吸困难加重,烦躁不安,神志恍惚。查体:体温36.4℃,脉搏120次/分,呼吸38次/分,口唇发绀,两肺底闻及湿哕音,血压正常。患者最可能出现的并发症是
多年来,通信网主要采用铜线(缆)用户线向用户提供传送电话的业务,用户铜线(缆)网分布广泛且普及,为了进一步提高铜线传输速率,开发了()技术,以解决高速率数字信号在铜缆用户线上的传输问题。
下列说法中不正确的是()。
贷款重组的条件有()。
社会保险法调整的对象为()。
某公司拟进行股票投资,计划购买A、B、C三种股票,并分别设计了甲、乙两种投资组合。已知三种股票的β系数分别为1.5、1.0和0.5,它们在甲种投资组合下的投资比重分别为50%、30%和20%;乙种投资组合的风险收益率为3.4%。同期市场上所有股票的平均收益
实在判断:判断的最简单的形式,这里是肯定地或是否定地表明某一单个的事物的某种一般的性质(肯定判断:玫瑰花是红的;否定判断:玫瑰花不是蓝的;无限判断:玫瑰花不是骆驼)。根据以上定义,下面哪种不是实在判断?
六大行业中,私营单位与非私营单位收入差距最小的行业,人均收入差距为()元。
最新回复
(
0
)