面向对象程序设计 C++山师 第七章习题答案.docx

上传人:b****6 文档编号:7840474 上传时间:2023-01-26 格式:DOCX 页数:15 大小:31.08KB
下载 相关 举报
面向对象程序设计 C++山师 第七章习题答案.docx_第1页
第1页 / 共15页
面向对象程序设计 C++山师 第七章习题答案.docx_第2页
第2页 / 共15页
面向对象程序设计 C++山师 第七章习题答案.docx_第3页
第3页 / 共15页
面向对象程序设计 C++山师 第七章习题答案.docx_第4页
第4页 / 共15页
面向对象程序设计 C++山师 第七章习题答案.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

面向对象程序设计 C++山师 第七章习题答案.docx

《面向对象程序设计 C++山师 第七章习题答案.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计 C++山师 第七章习题答案.docx(15页珍藏版)》请在冰豆网上搜索。

面向对象程序设计 C++山师 第七章习题答案.docx

面向对象程序设计C++山师第七章习题答案

第七章习题答案

一、选择填空

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

二、判断下列描述的正确性,对者划√,错者划×。

1、√2、×3、×4、×5、√6、×7、√8、√9、√10、×

11、√12、√13、×14、√15、√16、×17、√18、√

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

1、

(1)上述结构的DAG图如下所示。

(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()

pri1=4,pri2=5

pri4=6

pri12=7

D2:

:

display()

pri1=12,pri2=9

pri4=7

pri12=8

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

D2:

display()

pri1=1,pri2=4

pri4=6

pri12=7

D2:

:

display()

pri1=9,pri2=8

pri4=7

pri12=8

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

baseclass

baseclass

baseclass

derive1class

derive2class

五、按下列要求编写程序。

1、程序内容如下所示。

#include

#include

classperson

{

intno;

charname[10];

public:

voidinput()

{

cout<<"编号:

";cin>>no;

cout<<"姓名:

";cin>>name;

}

voiddisp()

{

cout<<"编号:

"<

cout<<"姓名:

"<

}

};

classstudent:

publicperson

{

private:

chardepart[6];

intdegree;

public:

voidinput()

{

person:

:

input();

cout<<"班号:

";cin>>depart;

cout<<"成绩:

";cin>>degree;

}

voiddisp()

{

person:

:

disp();

cout<<"班号:

"<

cout<<"成绩:

"<

}

};

classteacher:

publicperson

{

private:

charprof[10];

chardepart[10];

public:

voidinput()

{

person:

:

input();

cout<<"职称:

";cin>>prof;

cout<<"部门:

";cin>>depart;

}

voiddisp()

{

person:

:

disp();

cout<<"职称:

"<

cout<<"部门:

"<

}

};

voidmain()

{

students1;

teachert1;

cout<<"输入一个学生数据:

\n";s1.input();

cout<<"输入一个教师数据:

\n";t1.input();

cout<<"显示一个学生数据:

\n";s1.disp();

cout<<"显示一个教师数据:

\n";t1.disp();

}

2、程序内容如下所示。

#include

#include

classstring

{

intlength;

char*contents;

public:

intget_length(){returnlength;}

char*get_contents(){returncontents;}

~string(){deletecontents;}

intset_contents(intin_length,char*in_contents);

intset_contents(char*in_contents);

voidprint(){cout<

};

classedit_string:

publicstring

{

intcursor;

public:

intget_cursor_pos(){returncursor;}

voidmove_cursor(inthow_much){cursor=how_much;}

intadd_at_cursor(string*new_text);

intrepl_at_cursor(string*new_text);

voiddele_at_cursor(inthow_much);

};

intstring:

:

set_contents(intin_length,char*in_contents)

{

length=in_length;

if(!

contents)deletecontents;

contents=newchar[length+1];

strcpy(contents,in_contents);

returnlength;

}

intstring:

:

set_contents(char*in_contents)

{

length=strlen(in_contents);

if(!

contents)deletecontents;

contents=newchar[length+1];

strcpy(contents,in_contents);

returnlength;

}

intedit_string:

:

add_at_cursor(string*new_text)

{

intn,k,m;

char*cp,*pt;

n=new_text->get_length();

pt=new_text->get_contents();

cp=this->get_contents();

m=this->get_length();

char*news=newchar[m+n+1];

for(inti=0;i

news[i]=cp[i];

k=i;

for(intj=0;j

news[i]=pt[j];

cursor=i;

for(j=k;j

news[i]=cp[j];

news[i]='\0';

set_contents(news);

deletenews;

returncursor;

}

intedit_string:

:

repl_at_cursor(string*new_text)

{

intn,m;

char*pt,*news;

n=new_text->get_length();

pt=new_text->get_contents();

m=this->get_length();

news=newchar[m>n+cursor?

m+1:

n+cursor+1];

news=this->get_contents();

for(inti=cursor,j=0;i

news[i]=pt[j];

if(m

cursor=i;

set_contents(news);

deletenews;

returncursor;

}

voidedit_string:

:

dele_at_cursor(inthow_much)

{

intm;

char*cp,*news;

cp=this->get_contents();

m=this->get_length();

for(inti=cursor;i

cp[i]=cp[i+how_much];

cp[i]='\0';

}

voidmain()

{

strings1;

edit_strings2;

char*cp;

s1.set_contents("Object_OrientedProgramming");

cp=s1.get_contents();

s2.set_contents(cp);

s2.print();

s2.move_cursor(15);

s1.set_contents("Windwos");

s2.add_at_cursor(&s1);

s2.print();

s2.move_cursor(6);

s2.dele_at_cursor(9);

s2.print();

s1.set_contents("TTT");

s2.repl_at_cursor(&s1);

s2.print();

}

3、程序内容如下所示。

#include

classvehicle

{

protected:

intwheels;

floatweight;

public:

vehicle(intwheels,floatweight);

intget_wheels();

floatget_weight();

floatwheel_load();

voidprint();

};

classcar:

vehicle

{

intpassenger_load;

public:

car(intwheels,floatweight,intpassengers=4);

intget_passengers();

voidprint();

};

classtruck:

vehicle

{

intpassenger_load;

floatpayload;

public:

truck(intwheels,floatweight,intpassengers=2,floatmax_load=240000.00);

intget_passengers();

floatefficiency();

voidprint();

};

vehicle:

:

vehicle(intwheels,floatweight)

{

vehicle:

:

wheels=wheels;

vehicle:

:

weight=weight;

}

intvehicle:

:

get_wheels()

{

returnwheels;

}

floatvehicle:

:

get_weight()

{

returnweight/wheels;

}

voidvehicle:

:

print()

{

cout<<"车轮:

"<

"<

cout<<"重量:

"<

"<

}

car:

:

car(intwheels,floatweight,intpassengers):

vehicle(wheels,weight)

{

passenger_load=passengers;

}

intcar:

:

get_passengers()

{

returnpassenger_load;

}

voidcar:

:

print()

{

cout<<"小车:

"<

vehicle:

:

print();

cout<<"载人:

"<

"<

cout<

}

truck:

:

truck(intwheels,floatweight,intpassengers,floatmax_load):

vehicle(wheels,weight)

{

passenger_load=passengers;

payload=max_load;

}

inttruck:

:

get_passengers()

{

returnpassenger_load;

}

floattruck:

:

efficiency()

{

returnpayload/(payload+weight);

}

voidtruck:

:

print()

{

cout<<"卡车"<

vehicle:

:

print();

cout<<"载人:

"<

"<

cout<<"效率:

"<

cout<

}

voidmain()

{

carcar1(4,1000,5);

trucktru1(10,5000,3,340000);

car1.print();

tru1.print();

}

4、程序内容如下所示。

#include

#include

classemployee

{

protected:

intno;

charname[10];

floatsalary;

public:

employee()

{

cout<<"职工编号:

";

cin>>no;

cout<<"职工姓名:

";

cin>>name;

salary=0;

}

voidpay(){}

voiddisplay(){}

};

classtechnician:

publicemployee

{

private:

floathourlyrate;

intworkhours;

public:

technician(){hourlyrate=100;}

voidpay()

{

cout<

";

cin>>workhours;

salary=hourlyrate*workhours;

}

voiddisplay()

{

cout<<"兼职技术人员:

"<

"<

<<")"<<"本月工资:

"<

}

};

classsalesman:

virtualpublicemployee

{

protected:

floatcommrate;

floatsales;

public:

salesman(){commrate=0.04;}

voidpay()

{

cout<

";

cin>>sales;

salary=sales*commrate;

}

voiddisplay()

{

cout<<"销售员:

"<

"<

"<

}

};

classmanager:

virtualpublicemployee

{

protected:

floatmonthlypay;

public:

manager(){monthlypay=8000;}

voidpay(){salary=monthlypay;}

voiddisplay()

{

cout<<"经理:

"<

"<

"<

}

};

classsalesmanager:

publicmanager,publicsalesman

{

public:

salesmanager()

{

monthlypay=5000;

commrate=0.005;

}

voidpay()

{

cout<

";

cin>>sales;

salary=monthlypay+commrate*sales;

}

voiddisplay()

{

cout<<"销售经理:

"<

"<

"<

}

};

voidmain()

{

managerm1;

techniciant1;

salesmans1;

salesmanagersm1;

m1.pay();

m1.display();

t1.pay();

t1.display();

s1.pay();

s1.display();

sm1.pay();

sm1.display();

}

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1