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

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

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

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

面向对象程序设计 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

i++)

news[i]=cp[i]。

k=i。

for(intj=0。

j

i++,j++)

news[i]=pt[j]。

cursor=i。

for(j=k。

j

j++,i++)

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

j++,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

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