请打开考生文件夹下的解决方案文件proj1,该工程中包含程序文件main.cpp,其中有关TVSet(“电视机”)和主函数main的定义。程序中位于每个“//ERROR*******found*******”之后的一行语句有错误,请加以改正。改正后程序的输出结果应该是:规格:29英寸,电源:开,频道:5,音量:18规格:29英寸,电源:关,频道:-1,音量:-1注意:只修改每个“//ERROR*******found*******”下的那一行,不要改动程序中的其他内容。#includeusing namespace std;class TVSet{//“电视机”类const int size;int channel;//频道int volume;//音量bool on;//电源开关:true表示开,false表示关public://ERROR*******found*******TVSet(int size){this->Size(size);channel=0;volume=15;on=false;}int getsize( )const{returnsize;}//返回电视机规格bool isOn( )const{returnon;}//返回电源开关状态//返回当前音量,关机情况下返回-1int getVolume( )const{returnisOn( )?volume:-1;}//返回当前频道,关机情况下返回-1int getChannel( )const{return isOn( )?channel:-1;}//ERROR*******found*******void turnOnOff( )const//将电源在“开”和“关”之间转换{on=!on;}void setChannelTo(int chan){//设置频道(关机情况下无效)if(isOn( )chan>=0chanchannel=chan;}void setVolumeTo(int vol){//设置音量(关机情况下无效)if(isOn( )vol>=volvolume=vol;}void show_state( ){//ERROR*******found*******cout}},int main( ){TVSet tv(29);tv.turnOnOff( );tv.setChannelTo(5);tv.setVolumeTo(18);tv.showState( );tv.turnOnOff( );tv.showState( );return0;}
“::”符号的功能是( )。
请打开考生文件夹下的解决方案文件proj2,该工程中包含一个程序文件main.cpp,其中有“书”类Book及其派生出的“教材”类TeachingMaterial的定义,还有主函数main的定义。请在程序中“//********found********”下的横线处填写适当的代码,然后删除横线,以实现上述类定义和函数定义。此程序的正确输出结果应为: 教材名:C++语言程序设计 页 数:299 作 者:张三 相关课程:面向对象的程序设计 注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//********found********”。#includeiostreamusing 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 titie)+1]; strcpy(title,the title); //********found******** strcpy(writer,the writer); } //********found******** ~Book(){__________} int numOfPages()const { return num pages;} //返回书的页数 const char*theTitle()const { return title;} //返回书名 const char * theWriter()const{return writer;} //返回作者名};class TeachingMaterial:publicBook{//“教材”类 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()endl "页 数:"a book.Num of.Pages()endl "作 者:"a book.the.Writer()endl//********found********"相关课程:"_____________; coutendl; return 0 ;}
请打开考生文件夹下的解决方案文件proj3,其中包含主程序文件main.cpp和用户定义的头文件Array.h,整个程序包含有类Array的定义和主函数main的定义。请把主程序文件中的Array类的成员函数Contrary( )的定义补充完整,经补充后运行程序,得到的输出结果应该是:5 85,4,3,2,10,0,8.4,5.6,4.5,3.4,2.3,1.2注意:只允许在“//********333********”和“//********666********”之间填写内容,不允许修改其他任何地方的内容。//Array.h#includeusing namespace std;templateclass Array{//数组类public:Array(Typeb[ ],int mm){//构造函数for(int i=0;iif(ielsea[i]=0;}void Contrary( );//交换数组a中前后位置对称的元素的值int Length( )const{return m;}//返回数组长度Type operator[ ](int i)const{//下标运算符重载为成员函数if(i=m){coutreturn a[i];}private:Type a[m];};void writeToFile(const char*);//不用考虑此语句的作用//main.cpp#include"Array.h"//交换数组a中前后位置对称的元素的值templatevoid Array::Contrary( ){//补充函数体//********333********//********666********}int main( ){int s1[5]={1,2,3,4,5};double s2[6]={1.2,2.3,3.4,4.5,5.6,8.4};Arrayd1(s1,5);Arrayd2(s2,6);int i;d1.Contrary( );d2.Contrary( );coutfor(i=0;icoutcoutfor(i=0;icoutcoutwriteToFile(" ");//不用考虑此语句的作用return0;}
下面关于析构函数的叙述错误的是( )。
请打开考生文件夹下的解决方案文件proj3,其中声明的DataList类,是一个用于表示数据表的类。DataList的重载运算符函数operator+,其功能是求当前数据表与另一个相同长度的数据表之和;即它返回一个数据表,其每个元素等于相应两个数据表对应元素之和。请编写这个operator+函数。程序的正确输出应该是: 两个数据表: 1,2,3,4,5,6 3,4,5,6,7,8 两个数据表之和: 4,6,8,10,12,14 要求: 补充编制的内容写在“//********333********”与“//********666********”之间,不得修改程序的其他部分。 注意:程序最后将结果输出到文件out.dat中。输出函数writeToFile已经编译为obj文件,并且在本程序中调用。//DataList.h#includeiostreamusing namespace std;class DataList {//数据表类 int len; double*d;public:DataList(int len,double data[]=NULL); DataList(DataListdata); int length()const{returnlen;} double getElement (int i)const{return d[i];} DataList operator+(constDataListlist)const;//两个数据表求和 void show()const;//显示数据表};void writeToFile(char *, constDataList);//main.cpp#include “DataList.h”DataList::DataList(int len,double data[]):len(len){ d=new double[len]; for(int i=0;ilen;i++) d[i]=(data==NULL?0.0:data[i]);}DataList::DataList(DataListdata):len(data.fen){ d=new double[len]; for(int i=0;ilen;i++) d[i]=data.d[i];}DataList DataList::operator+(const DataListlist)const{//两个数据表求和 double *dd = new double[list.length()]; //**********333********** //**********666********** return DataList(list.length(),dd);}void DataList::show()const{//显示数据表 for(int i=0 ; ilen-1;i++) coutd[i]","; coutd[len-1]endl;}int main(){ double s1[]={1,2,3,4,5,6); double s2[]={3,4,5,6,7,8); DataList list1(6,S1),list2(6,s2);//定义两个数据表对象 cout"两个数据表:"endl; list1.show(); list2.Show(); coutendl"两个数据表之和:"endl; (list1+list2).show(); writeToFile(" ",list1+list2); return 0;}
使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,补充空出的代码。函数DecToBin(char*des,int n)的功能是将十进制数据n转换成二进制数据,并将转换结果存放在des中。 如:120的二进制数据为1111000 例: DecToBin(char*des,120); cout 输出为:1111000 注意:不能修改程序的其他部分,只能补充DecToBin(char*des,int n)函数。1 #include2 #define MAXLEN 10243 void DecToBin(char*des,int n)4 {56 }7 void main()8 {9 char des[MAXLEN];10 int n=120;11 DecToBin(des,n);12 cout13 return;14 }