2011华南农业大学面向对象程序设计期末考试试卷(A卷)

更新时间:2023-08-27 02:03:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

华南农业大学期末考试试卷(A卷)

2011学年第1学期 考试科目: 面向对象程序设计

考试类型:闭卷考试 考试时间: 120 分钟

学号 姓名 年级专业

试卷说明:

1. 所有答案必须写在答卷上,否则不得分,试卷和答卷均填写学号和姓名。

2. 考试结束时,只上交答卷,试卷自行带走。

3. 常用单词:Serializable、Cloneable、Stream、implements、extends

一、程序填空(20分) 说明:按照每小题的要求填充程序中的空白,使程序能够正确运行,每空2分。 1.

具体类Reader实现了Readable接口。

2. 在空白处定义一个私有的整型变量m, 使得在方法fun中可以使用该变量 3. 填写恰当的修饰符,使任何子类可以继承但无法覆盖类Parent中的method方法。 第 1 页 共 8 页

4. 以下程序功能为利用二维数组生成并输出下三角矩阵。

5. 以下程序定义了Rectangle和Cuboid

两个类。

第 2 页 共 8 页

6.以下程序将自定义学生类的对象写入文件data.dat。

第 3 页 共 8 页

三、阅读程序(30分)

说明:阅读以下每段程序,写出运行的结果,每小题5分。

1. 阅读程序1

2. 阅读程序2

第 4 页 共 8 页

3. 阅读程序3

4. 阅读程序4

第 5 页 共 8 页

5. 阅读程序5

6. 阅读程序6

第 6 页 共 8 页

四、程序设计(50分)

1. 设计并编写一个名为MyPoint的类表示平面上一个具有x坐标和y坐标的点,完成以下要求:(15分)

将该类放置于包pkg01中;

两个double类型数据域x和y表示坐标,并进行封装;

无参构造方法创建点(0.0, 0.0); 有参构造方法按指定坐标创建一个点;

一个名为distance的方法返回当前点对象到参数点对象之间的距离;

一个名为distance的方法返回2个MyPoint类型点对象之间的距离;

2. 设计并编写一个名为Circle2D的类表示圆,要求如下:(15分)

将该类放置于包pkg02中;

一个使用上题MyPoint类型的数据域center, 进行封装;

一个double类型的数据域radius,进行封装;

一个无参构造方法,创建圆心为(0.0,0.0),半径为1的默认圆;

一个有参构造方法,参数x,y表示圆心的坐标,参数radius表示圆半径,创建

该圆;

如果给定的点(x,y)位于当前圆对象内,则方法contains(double x, double y)

返回true,否则返回false,见下图(a);

如果给定的圆c与当前圆对象相交或位于当前圆内,则方法overlaps(Circle2D c)

返回true,否则返回false,见下图(b)和(c).

第 7 页 共 8 页

3. 编写一个应用程序模拟银行的储蓄卡和信用卡的存取款业务,要求如下:(20分)

所有类和接口均放置于包account中;

定义一个接口Action, 其中包含存款方法void deposit(double sum)和取款方

法 void withdraw(double sum),参数分别代表存取款金额;

定义一个抽象类Account实现接口Action,其中定义String类型数据域

accNumber表示帐号,double型数据域balance表示帐户余额, Date型数据域createDate表示开户日期。然后提供有参构造方法初始化这3个数据域。

定义一个具体类CashAccount继承Account表示现金帐户,能够进行存取款操作,

取款方法在取款金额大于余额时抛出一个Exception对象异常,信息为“余额不足.”;

定义一个具体类CreditAccount继承Account表示信用卡帐户,能够进行存取款

操作,同时需要增加一个透支限额的数据域overdraftLimit,当取款金额超出透支范围时抛出一个Exception对象异常,信息为“超出透支额度.”

CashAccount类能够进行深克隆操作。

说明:可以忽略对数据域的封装,程序可以认为已经封装。

第 8 页 共 8 页

本文来源:https://www.bwwdw.com/article/2emi.html

Top