FXTGbackup 01141434 增加了昨天期末考试最后一道题解答Word下载.docx

上传人:b****6 文档编号:16934124 上传时间:2022-11-27 格式:DOCX 页数:16 大小:41.68KB
下载 相关 举报
FXTGbackup 01141434 增加了昨天期末考试最后一道题解答Word下载.docx_第1页
第1页 / 共16页
FXTGbackup 01141434 增加了昨天期末考试最后一道题解答Word下载.docx_第2页
第2页 / 共16页
FXTGbackup 01141434 增加了昨天期末考试最后一道题解答Word下载.docx_第3页
第3页 / 共16页
FXTGbackup 01141434 增加了昨天期末考试最后一道题解答Word下载.docx_第4页
第4页 / 共16页
FXTGbackup 01141434 增加了昨天期末考试最后一道题解答Word下载.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

FXTGbackup 01141434 增加了昨天期末考试最后一道题解答Word下载.docx

《FXTGbackup 01141434 增加了昨天期末考试最后一道题解答Word下载.docx》由会员分享,可在线阅读,更多相关《FXTGbackup 01141434 增加了昨天期末考试最后一道题解答Word下载.docx(16页珍藏版)》请在冰豆网上搜索。

FXTGbackup 01141434 增加了昨天期末考试最后一道题解答Word下载.docx

(√)

③在面向对象技术系统分析中不使用数据流图。

④一个对象的方法只能改变本对象的属性值。

⑤一个对象内存在另一个对象的关系称为包容关系。

)(原因:

有可能是派生)

⑥含有定性的属性的类就是抽象类。

⑦当使用一个类方法时,消息是传向一个类的。

⑧一个对象所呈现的不同状态称为多态。

⑨静态链接是在面向对象技术语言编译时建立的对象关系。

⑩RUP的开发周期由三个阶段所构成。

)(六个阶段)

⑩+1RUP中的系统行为是对其全部的外来激励进行作用和反作用。

⑩+2RUP中的系统行为可以从对象模型中获得。

⒊单项选择题

1.面向对象技术是(A)。

(A)指导构建软件的系列法则

(B)一种探索可被认同的新理论

(C)由GradyBooch提出的一种动态的新语言

(D)基于抽象与模块化原理的新技术

2.一个模型(C)。

(A)对于十分理解其工作内容的团队成员可以不使用。

(B)必须是有结构的和动作的体系。

(C)是一个实例的简化。

(D)一个建构精确计划的原由。

3.建模的根本目的是(D)。

(A)有助与于一个系统的可视化。

(B)获得一个准备构建系统的模板。

(C)见证设计成果。

(D)上述三条的总合。

4.最好的模型将与(B)联系在一起。

(A)Java-Script代码(B)实体

(C)C++(D)与面向对象开发者联系在一起的命题

5.(B)项目对建模的要求度最小。

(A)立交桥(B)沙发(C)列车(D)光盘

6.以下RUP中的(D)视聚焦在结构问题上。

(A)用例(B)处理(C)实现(D)逻辑

7.使用UML建模时(C)的处理不是其最基本特征。

(A)迭代与增量(B)用例驱动(C)弹性设计(D)以架构为核心

8.一个对象的状态(C)。

(A)是一个被称为“状态”的属性或属性集

(B)始终不发生常规的变化

(C)被描述成对象的属性和关系

(D)仅是一个对象可能存在的条件

⒋分析题

1指出下列对象之间的关系

地球与太阳(关联关系)

家庭影院与音箱(包容关系)

信息与印刷品(继承关系)

钥匙与锁(关联关系)

灯泡与灯丝(包容关系)

计算机与打印机(关联关系)

公司与雇员(包容关系)

建筑体与墙(包容/继承关系)

②试在下图给定的括号内写出已知关联关系的作用名(RoleName):

张三(通知人)(被通知人)李四

人(老板)

(雇员)

③根据给定的C++程序绘制对象模型图

阅读下述C++程序后试在其右侧对应的对象图中填充描述其关系的对象模型符号。

#include<

iostream>

usingnamespacestd;

classA

{

protected:

inti;

public:

A(intx):

i(x){}

intvirtualoperator!

()=0;

};

classB:

publicA

A*p;

B(intx,A*y=NULL):

A(x){p=y;

}

intoperator!

()

{

if(p)return!

*p;

elsereturn1;

}

voidmain()

A*p1=newB

(1);

A*p2=newB(2,(A*)p1);

cout<

<

!

*p2<

endl;

④已知下图所示的某系统中关于A和B的顺序图,图中给出了关于classA的3个不同状态,试绘制与该类对应的状态图,设没有明示的状态迁移视为可通达。

解:

经过对图中已知的消息逻辑,绘制出如下图所示的状态图:

⒌C++语言综合题

①设下述C++程序运行于字长为32位的硬件环境中,请在以下C++程序的右侧写出将该源程序变为类模板的对应程序代码。

intorder;

A(){cout<

"

Thecurrentorderis"

;

cin>

>

order;

order(x){}

(){returnorder;

classB

B(intx){p=newA[x];

intGetOrder(intx){return!

p[x];

~B(){if(p)delete[]p;

Bb

(2);

for(inti=0;

i<

2;

i++){cout<

b.GetOrder(i)<

cin.get();

改写后成为:

template<

classT1>

T1order;

A(){cout<

Thecurrentorder’svalueis"

A(T1x):

T1operator!

classT2,classT3>

classB

T2*p;

B(intx){p=newT2[x];

T3GetOrder(intx){return!

B<

A<

int>

int>

b(3);

for(inti=0;

3;

cin.get();

另一种改法(不保证老师喜欢):

template<

typenameT>

Torder;

A(Tx):

Toperator!

A<

T>

*p;

B(intx){p=newA<

[x];

TGetOrder(intx){return!

b

(2);

②下述C++程序存在若干处错误,以不改变程序结构为前提,请在出错的行首做一标记(如*),并将改动最少的正确语句写在所在行或出错部位的右侧。

例1:

virtualintoperator!

virtualintoperator~()=0;

//补充定义虚基函数,使基类能访问派生类同名成员函数

B(intx,inty):

i(x),A(y){}

(){returni;

intoperator~(){returnA:

:

i;

A*p=newB(2,1);

I="

(*p)<

//Display:

I=1

cout<

~(*p)<

//Display:

//由newB(2,1)知,只有B的基类A中i为1,因此需要调用成员函数operator~()访问基类A中i。

原代码中调用operator!

(),返回值是2,不合要求。

此处~(*p)等价于(*p).operator~()

例2:

virtualintoperator~()=0;

virtualintoperator!

//补充定义虚基函数,使基类能访问派生类同名成员函数

A*p;

i(x),A(y){p=(A*)this;

intoperator~(){returnp->

}//标准规则限制必须用基类强制

intoperator~(){returnA:

}//强制使用基类中i

A*p=newB(1,2);

*p<

1

~*p;

//Displaay:

2

③下述C++程序尚未完成,试根据已知条件补上类A中欠缺的成员函数。

A():

p(NULL){}

i(x){p=newA[x];

A&

operator[](intx){returnp[x];

}//补充定义operator[](int)

voidoperator=(intx){i=x;

}//补充定义operator=(int)

}//补充定义operator!

~A(){if(p)delete[]p;

}//因有动态内存分配,补充定义析构函数,释放内存

Aa(5);

5;

i++)

a[i]=i;

//此处等价于a.operator[](i).operator=(i);

cout<

a[i];

//displayresult:

01234

//此处等价于a.operator[](i).operator!

();

Pleaseinputthevalue:

booloperator==(constA&

rhs)const{returni==rhs.i;

//补充定义相等运算符,比较两个A对象

Aa,b;

if(a==b)cout<

Thecomparedresultistrue."

elsecout<

Thecomparedresultisfalse."

补充:

2011.01.13考试题

下面的程序中有一些错误,请对程序进行修改,使其能最好地完成预期功能。

#include<

A(intx=0):

intget(){returni;

B(intx=1):

A(x){}

voidoperator!

(){cout<

i="

get()<

classC:

publicB

C(intx=2,inty):

B(x),i(y){}

intoperator+=(A&

x){returni+=x.get();

p1=*(A*)newB();

p2=*(A*)newC(10);

!

*p1;

//结果:

i=1

p2{i}="

p2+=p1<

p2{i}=11

p2.get()<

改过之后:

//main.cpp

//intget(){returni;

virtualintget(){returni;

virtualvoidoperator!

virtualintoperator+=(A&

x){return0;

virtual~A(){}

//voidoperator!

A:

//C(intx=2,inty):

C(inty,intx=2):

//intoperator+=(A&

x){returni+=x.A:

get();

//!

p1;

//cout<

(p2+=p1)<

//insert

delete&

p2;

 

四.考试时间与考场安排

考试时间:

2011年1月13日(星期四)晚18:

00-20:

00

考场学号分配表

考试教室编号

学号范围分布

实际安排人数

3-117/118

2009级学生、105002-105173

92

3-129/130

105174-105334

108

3-131/132

105335-105504

102

3-232/233

105510-105853

106

3-234/235

105885-106309

3-236/237

106312以后全部学号

考试要求:

(要在考前向学生再宣布)

⒈开卷考试,时间为120分钟。

可以查阅书籍、资料,但不能相互传递。

因场地空间限制,请不要带入笔记本电脑等可视化的电子设备;

⒉有问题举手示意,但不得离开座位;

⒊考生在考试期间不得交谈;

⒋带本人学生证件备查;

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

当前位置:首页 > 高等教育 > 工学

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

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