2025年面向对象程序设计C 山师习题答案_第1页
2025年面向对象程序设计C 山师习题答案_第2页
2025年面向对象程序设计C 山师习题答案_第3页
2025年面向对象程序设计C 山师习题答案_第4页
2025年面向对象程序设计C 山师习题答案_第5页
已阅读5页,还剩5页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第七章习题答案

一、选择填空

1、D2、A3、B4、C5、A6、C7、B8、D9、

二、判断下列描述的对的性,对者划错者划X。

1、J2、X3、X4、X5、J6、X7、8、J9、J10、X

11、J12、V13、X14、J15、J16、X17、V18、J

三、分析下列程序的输出成果。

(I)上述构造的DAG图如下所示。

虚基类I旨针

(2)无二义性

(3)无二义性

2、(1)无(2无(3)有(4)无(5)有

四、分析下列程序的输出成果

1、运行该程序输出如下成果。

(1,2)

5,6

(6,9)

2、该程序的输出成果如下所示

(1,2)

(6,9)

5,6

(6,9)

3、该程序的输出成果如下:

(13,22,30,40)

4、运行该程序输出成果加卜.所示。

D2::display()

pril=4.pri2=5

pri4=6

pril2=7

D2::display()

pri1=12,pri2=9

pri4=7

pril2=8

5、该程序输出成果如下所示:

D2::displayO

pril=l,pri2=4

pri4=6

pril2=7

D2::display()

pril=9,pri2=8

pri4=7

pril2=8

6、该程序输出成果如下所示:

baseclass

baseclass

baseclass

derive!class

dcrivc2class

五、按下列规定编写程序。

1、程序内容如下所示。

#include<iostrcam.h>

#include<iomanip.h>

classperson

{

inino;

charname[10]:

public:

voidinput()

(

cout«"编号:";cin»no;

cout«"姓名:";cin»name;

}

voiddisp()

{

cout«"编号:"«no«endl;

cout«"姓名:"«namc«cndk

)

};

classstudcncpublicperson

(

private:

chardepart16);

intdegree;

public:

voidinput()

]

person::input();

cout«"班号:cin»depart;

cout«"成绩:cin»degree;

)

voiddispO

(

pcrson::disp();

cout«"班号:"«depart«endl;

cout«"hJctvi:"«degree«endl;

}

);

classteacher:publicperson

(

private:

charprof110];

chardepart(10);

public:

voidinput()

(

person::input();

cout«"职称:cin»prof;

cou(«"部门:cin»depart;

)

voiddisp()

{

person::disp();

cout«"职称:"«prof«endl;

cout«',部门:depart<<endI;

)

};

voidmain()

(

students1;

teacher11;

couivv"输入一种学生数据:\n";sl.input();

输入•种教师数据:\n";tl.input();

cout<<"显示一种学生数据:\n":si.dispO:

coutvv"显示一种教师数据:\n";tl.disp();

}

2、程序内容如下所示。

#include<iostream.h>

#include<string.h>

classstring

{

intlength;

char*contents;

public:

intgct_lcng(h(){returnlength;}

char*get_contents(){returncontents;}

-string(){deletecontents;}

intsct_contcnts(intinjcngth.char*in_con(ents);

intset_contents(char*in_contenls);

voidprint(){cout«contents«endl;}

);

classedit_string:publicstring

{

intcursor;

public:

intget_cursor_pos(){returncursor;}

voidmovc_cursor(inthow_much){cursor=how_much;}

intadd_at_cursor(string*new_text);

intrcpl_at_cursor(string*ncw_tcxt);

voiddclc_at_cursor(inthow_much);

);

intstring::set_contents(intin_length,char*in_contents)

{

length=in_length;

if(Icontents)deletecontents;

contcn(s=ncwchar[lcngth+1];

slrcpy(contents,in_contents);

returnlength;

I

intstring::set_contents(char*in_contents)

(

length=sirlcn(in_contents);

if(!contents)deletecontents;

contents=newchar[length+l];

strcpy(contcnts,in_contcn(s);

returnlength;

}

intcdit_string::add_at_cursor(string*new_tcxt)

(

intn.k.m;

char*cp,*pt;

n=new_text->get_!ength();

pt=new_text->get_contents();

cp=this->get_contents();

m=this->get_length();

char*ncws=ncwchar[rn+n+l];

for(inti=0;i<cursor;i++)

newsli]=cp|i];

k=i;

for(intj=O;j<n;i++,j++)

news[ij=pt|j];

cursor=i;

for(i=k;j<m;i++,i++)

news[ij=cp|jj;

ncws[i]='\0':

set_contents(news);

deletenews;

returncursor;

)

intedit_string::repl_at_cursor(suing*new_text)

(

intn,m;

char*pt,*ncws;

n=ncw_tcx(->gct_lcngth();

pt=new_text->get_contents();

m=this->get_length();

ncws=ncwchar[m>n+cursor?m+1:n+cursor+1];

news=this->get_contents();

for(inti=cursor,j=0;i<n+cursGi;j++,i+4-)

ncws[i]=pt[j];

if(m<n+cursor)news[i]-\0';

cursoi-i;

sct_contents(ncws);

deletenews;

returncursor;

)

voidedit_string::dele_at_ciirsor<inthow_much)

{

intm:

char*cp,*news;

cp=this->get_contents();

m=this->get_length():

for(inti=cursor;i<ni;i++)

cp[i]=cp[i+how_much]:

cp[i]='\O';

voidmain()

stringsi;

cdit_sirings2;

char*cp;

sI.set_contents("Object_OrientedProgramming");

cp=sl.gct_contcnts();

s2.set_contents(cp);

s2.print();

s2.movc_cursor(15);

sl.set_contents("Windwos");

s2.add_at_cursor(&s1);

s2.print();

s2.move_cursor(6);

s2.dele_at_cursor(9);

s2.print();

sl.set_contents("TTT");

s2.repl_at_cursor(&s1);

s2.print();

3、程序内容如下所示。

#includc<ios(rcam.h>

classvehicle

(

protected:

intwheels;

floatweight;

public:

vehicle(intwheels,floatweight);

intget_wheels();

floatget_wcigh(();

floatwheeUoad。;

voidprint();

);

classcar:vehicle

(

intpassengcr_load;

public:

car(intwheels,floatpassengers=4);

intgct_passengcrs():

voidprint();

);

classtruck:vehiclc

intpassenger_load;

floatpayload;

public:

(ruck(intwheels.floatpassengcrs=2,floatmax_Ioad=240000.00);

intget_passengers();

floatetTiciencyO;

voidprint();

);

vehicle::vehicle(intwheels.floatweight)

(

vehicle::wheels=\vheels;

vehicle::weight=weight;

)

intvehicle::get_wheels()

(

returnwheels;

)

floatvehicle::get_weight()

(

returnweight/wheels;

)

voidvehicle::print()

(

cout«"车轮:"〈〈wheels。"个。"«endk

cout«"重量:"<<wheels<<"公斤。"«cndl;

)

car::car(intwheelsjloatpassengers):vehicle(wheels,weight)

(

passenger_load=passengers;

I

intcar::gct_passengers()

(

returnpassenger_load;

}

voidcar::pnnt()

(

cout«"小车:"《endl;

vehicle::print();

cout«"载人:"<<pas$enger」oad<<"人。"<<endl;

cout«cndl;

)

truck::truck(intwheels.floatweight,intpassengers,floatmax_lcad):vehicle(wheels,weigh()

(

passenger_load=passengers;

payload=max_load:

inttruck::get_passengers()

(

returnpassenger_load:

1

floattruck:efficiency()

(

returnpayload/(payload+weight);

)

voidtruck::print()

(

8111<<咔车”<<8(11;

vehicle::print();

cout«"载人:"«passengerJoad«"Ao"«endl;

cout«"效率:"«cfficicncy()«cndl;

cout«endl;

)

voidmain()

(

carcarI(4,1000,5);

trucktrul(10,5000.3,34C000);

carI.print。;

trul.printO;

)

4、程序内容如下所示。

#include<iostream.h>

ttinclude<string.h>

classemployee

{

protected:

intno;

charname[10];

floatsalary;

public:

employee()

{

coutvv”职工编号:”;

cin»no;

cout«"职工姓名:

cin»name;

salary=O;

)

voidpay(){)

voiddisplay(){}

);

classtechnician:publicemployee

private:

floathourlyrate;

in(workhours;

public:

technician(){hourlyrate=I(X);}

voidpay()

(

coui〈<name«"本月T.作时数:

cin»workhours;

salary=hourlyrate*workhours;

}

voiddisplayO

(

coutvv"兼职技术人员:"vvnamevv"(编号为:"vvno\

«")"v<"本月工资:"«salaiy«cndl;

)

};

classsalcsman:virtualpublicemployee

(

protected:

floatcoinmratc:

floatsales;

public:

salesman(){cominratc=0.04;}

voidpay()

{

cou〔《namc<<"本月销售额:

cin»saies;

salary=sales*commrate;

)

voiddisplayO

{

cout«"销售员:"《name<x"(编号为:"VV"本月工资:"«salarj,«cndl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论