《面向?qū)ο蟪绦蛟O(shè)計》試題.doc
《《面向?qū)ο蟪绦蛟O(shè)計》試題.doc》由會員分享,可在線閱讀,更多相關(guān)《《面向?qū)ο蟪绦蛟O(shè)計》試題.doc(8頁珍藏版)》請在裝配圖網(wǎng)上搜索。
裝訂線得分一、程序修改(20分)說明:描述程序中的語法錯誤原因并修改,每小題4分,錯誤原因和改正錯誤各2分。1. isPrime方法用于檢查參數(shù)num是否是質(zhì)數(shù)。public boolean isPrime(int num) boolean result = false; for(int i=2; i=num) result = true; return result;2. 具體類Reader實現(xiàn)了Readable接口。interface Readable void read(); class Reader implements Readable void read() System.out.println(I Can read it.); 3. main方法調(diào)用重載的max方法求2個數(shù)的最大值。public class Error03 public static double max(int a, double b) return a b ? a : b; public static double max(double a, int b) return a b ? a : b; public static void main(String args) double c = max(10, 100); 4. 子類Child覆蓋了父類Parent中的output方法。class Parent public final void output() System.out.println(Parent); class Child extends Parent public void output() System.out.println(Child); 5. main方法調(diào)用sum方法求數(shù)組所有元素的和。public class Error05 public double sum(double array) double result = 0; for (double value : array) result += value; return result; public static void main(String args) double arr = 1.0, 2.0, 3.0, 4.0, 5.0; System.out.println(sum(arr); 得分二、程序填空(20分)說明:填充程序中的空白,使程序能夠正確運行,每空2分。1. 以下程序功能為輸入多個班的考試成績,并分別計算每個班的總成績。import java.util.Scanner;public class Score /inputScore方法用于輸入一個班的所有成績,參數(shù)num是班級的學(xué)生人數(shù) public static double inputScore(int num) double array = new doublenum; Scanner scanner = new Scanner(System.in); for (int i = 0; i (1) ; i+) arrayi = scanner.nextDouble(); return array; public static double sumScore(double array) double result = 0; for (int i = 0; i array.length; i+) result += arrayi; return result; public static void main(String args) double scores; int numOfClass, numOfStudent; Scanner scanner = new Scanner(System.in); System.out.print(一共有幾個班?); numOfClass = scanner.nextInt(); scores = (2) ; for (int i = 0; i numOfClass; i+) System.out.println(第 + (i + 1) + 班有幾人?); numOfStudent = scanner.nextInt(); scoresi = inputScore( (3) ); for (int i = 0; i numOfClass; i+) System.out.print(第 + (i + 1) + 班的總分:); System.out.println(sumScore( (4) ); 2. 以下程序定義了Circle和Cylinder兩個類。/類1,Circle.javapublic class Circle private double radius; /圓的半徑 public Circle() /無參構(gòu)造方法 (5) /調(diào)用有參構(gòu)造方法將radius初始化為0.0 public Circle(double radius) (6) /把參數(shù)radius賦給數(shù)據(jù)域radius public double getArea() return (7) ; /求圓的面積,使用Math.PI public double getRadius() return radius; public void setRadius(double r) radius = r; /類2,Cylinder.javapublic class Cylinder extends Circle private double height; /圓柱的高度 public Cylinder() /無參構(gòu)造方法 this.height = 0.0; public Cylinder(double radius, double height) (8) ; /調(diào)用父類構(gòu)造方法將radius初始化為參數(shù)radius this.height = height; Override public double getArea() double area1 = (9) ; /求圓柱表面積double area2 = (10) ; /求圓柱的底面積return area1 + area2; public double getHeight() return height; public void setHeight(double height) this.height = height; 得分三、閱讀程序(20分)說明:閱讀以下每段程序,寫出運行的結(jié)果,每小題5分。1. 閱讀程序1class Data public int a = 10, b = 100; public class Read01 public static void main(String args) int a = 10, b = 100; int array = 10, 100; Data data = new Data(); System.out.println(a= + a + ,b= + b); System.out.println(array0= + array0 + ,array1= + array1); System.out.println(data.a= + data.a + ,data.b= + data.b); swap(a, b); swap(array); swap(data); System.out.println(a= + a + ,b= + b); System.out.println(array0= + array0 + ,array1= + array1); System.out.println(data.a= + data.a + ,data.b= + data.b); public static void swap(int a, int b) int t = a; a = b; b = t; public static void swap(int array) int t = array0; array0 = array1; array1 = t; public static void swap(Data data) int t = data.a; data.a = data.b; data.b = t; 2. 閱讀程序2public class Read02 public static void main(String args) A x = new B(); System.out.println(1)x.i: +x.i); System.out.println(2)(B)x.i: +(B)x).i); System.out.println(3)x.j: +x.j); System.out.println(4)(B)x.j: +(B)x).j); System.out.println(5)x.m1(): +x.m1(); System.out.println(6)(B)x.m1(): +(B)x).m1(); System.out.println(7)x.m2(): +x.m2(); System.out.println(8)x.m3(): +x.m3(); class A public int i=1; public static int j=11; public static String m1() return 類A的靜態(tài)方法m1.; public String m2() return 類A的實例方法m2.; public String m3() return 類A的實例方法m3.;class B extends A public int i=2; public static int j=22; public static String m1() return 類B的靜態(tài)方法m1.; public String m2() return 類B的實例方法m2.;3. 閱讀程序3class Person public Person() System.out.println(Person(); class Employee extends Person public Employee() this(調(diào)用Employee(s); System.out.println(Employee(); public Employee(String s) System.out.println(s); class Faculty extends Employee public Faculty() System.out.println(Faculty(); class Test public static void main(String args) new Faculty(); 4. 閱讀程序4, 分別寫出?處的值是30和50的輸出結(jié)果。public class Read04 public static void main(String args) int value = ?; try if(value40) throw new Exception(value is too small); System.out.println(value=+value); catch (Exception e) System.out.println(e.getMessage(); finally System.out.println(process finished); System.out.println(program continued); 四、程序設(shè)計(40分)1. 設(shè)計并編寫一個名為MyPoint的類表示平面上一個具有x坐標(biāo)和y坐標(biāo)的點,完成以下要求:(15分)l 將該類放置于包prog01中;l 兩個double類型數(shù)據(jù)域x和y表示坐標(biāo),并進(jìn)行封裝;l 無參構(gòu)造方法創(chuàng)建點(0.0, 0.0); 有參構(gòu)造方法按指定坐標(biāo)創(chuàng)建一個點;l 方法distance返回當(dāng)前點對象到參數(shù)點對象之間的距離;l 編寫測試類TestMyPoint,其main方法中創(chuàng)建兩個點(0.0, 0.0)和(10.0, 35.5),輸出這兩個點之間的距離。2根據(jù)材料完成程序代碼(15分)。要求利用多態(tài)性計算若干不同類型幾何圖形的面積之和,類與接口的關(guān)系見下面的類圖。類CricleV1,類RectangleV1和測試類Tester的源碼已經(jīng)給出。CircleV1.javapublic class CircleV1 private double radius; public CircleV1() this(1.0); public CircleV1(double radius) this.radius = radius; public double getRadius() return radius; public void setRadius(double radius) this.radius = radius; RectangleV1.javapublic class RectangleV1 private double width; private double height; public RectangleV1() this(1.0, 1.0); public RectangleV1(double width, double height) this.width = width; this.height = height; public double getWidth() return width; public void setWidth(double width) this.width = width; public double getHeight() return height; public void setHeight(double height) this.height = height; Tester.javapublic class Tester public static void main(String args) Object shapes = new CircleV2(10), / new RectangleV2(10, 2), / new CircleV2(), / new RectangleV2() / ; System.out.println(sumArea(shapes); public static double sumArea(Object shapes) double result = 0; for (int i = 0; i shapes.length; i+) if (shapesi instanceof CalcArea) / result += (CalcArea) shapesi).getArea(); / return result; 請根據(jù)以上給定的材料,完成以下代碼,使的Tester類中的main方法能夠順利運行。注意Tester類中行尾有“/”標(biāo)注的行使用了你需要完成的接口和類。(1) 編寫完成接口CalcArea.java。(5分)(2) 編寫完成類CircleV2.java。(5分)(3) 編寫完成類RectangleV2.java。(5分)3. 根據(jù)材料完成程序代碼(15分)。import java.util.Date;public class Account private int id; /賬號 private double balance; /賬戶余額 private Date createDate;/開戶日期 public Account(int id, double balance) this.id = id; this.balance = balance; this.createDate = new Date(); /取款方法 public void getMoney(double amt) /以下是3個訪問器方法 public int getId() return id; public double getBalance() return balance; public Date getCreateDate() return createDate; 根據(jù)以上給出的銀行賬戶類Account的定義,按要求完成以下代碼。說明:答卷上只填寫修改部分的代碼即可,原有代碼的其他部分不需要重寫。(1) 修改Account類的定義,使得Account類可以進(jìn)行序列化。(3分)(2) 修改并完成getMoney方法,要求:如果余額足夠,則減去參數(shù)amt給出的金額;否則getMoney方法拋出一個Exception異常對象,異常信息為“余額不足.”。(3分)(3) 修改Account類的定義,使得Account類可以進(jìn)行“深克隆”,說明:Date類可以進(jìn)行克隆。(4分)第 7 頁 共 8 頁- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該PPT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 面向?qū)ο蟪绦蛟O(shè)計 面向 對象 程序設(shè)計 試題
鏈接地址:http://m.italysoccerbets.com/p-9159246.html