JAVA實驗2復習.doc_第1頁
JAVA實驗2復習.doc_第2頁
JAVA實驗2復習.doc_第3頁
JAVA實驗2復習.doc_第4頁
JAVA實驗2復習.doc_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1. 設計一個名為figure的圖形軟件包(package)。包中包含三角形、矩形、圓三個類。要求:(1)每個類都要構造方法并為成員設置get和set方法;(2)每個類都要有計算周長和面積的成員方法;(3)完成該軟件包后的編碼后,在另一個包的含有main方法的類中編寫代碼,分別使用圖形軟件包中的三個類,生成三個對象,并打印出其周長和面積。 *package figure;public class juxing/矩形的計算函數(shù)private double lenth,width;public juxing()lenth=0;width=0;public juxing (double x,double y)lenth=x;width=y;public void setLenth(double lenth)this.lenth=lenth;public double getLenth()return lenth;public void setWidth(double width)this.width=width;public double getWidth()return width; public double perimeter() return lenth*width; public double Area() return (lenth+width)*2; *package figure;import java.math.*;public class sanjiaoxing /三角形的計算函數(shù)private double side1;private double side2;private double side3;public sanjiaoxing()side1=0;side2=0;side3=0;public sanjiaoxing(double x,double y,double z)side1=x;side2=y;side3=z;public void setSide1(double side1)this.side1=side1;public double getSide1()return side1;public void setSide2(double side2)this.side2=side2;public double getSide2()return side2;public void setSide3(double side3)this.side3=side3;public double getSide3()return side3;public double perimeter()return side1+side2+side3;public double Area()double p=(side1+side2+side3)/2;return Math.sqrt(p*(p-side1)*(p-side2)*(p-side3);*package figure;import java.math.*;public class yuanxing /圓形的計算函數(shù)private double radius;public yuanxing()radius=0;public yuanxing(double x)radius=x;public void setRadius(double radius)this.radius=radius;public double getRadius()return radius;public double perimeter()return 2*Math.PI*radius;public double Area()return Math.PI*radius*radius;*package figure_show;import figure.juxing;import figure.sanjiaoxing;import figure.yuanxing;public class main public static void main(Stringargs)sanjiaoxing t=new sanjiaoxing(3,4,5);System.out.println(三角形的周長:+t.perimeter();System.out.println(三角形的面積:+t.Area();juxing r=new juxing(3,4);System.out.println(矩形的周長:+r.perimeter();System.out.println(矩形的面積:+r.Area();yuanxing c=new yuanxing(5);System.out.println(圓形的周長;+c.perimeter();System.out.println(圓形的面積:+c.Area();2. 設計一個教師類Teacher(屬于.sdkd包),要求:1) 屬性有編號(int no)、姓名(String name)、年齡(int age)、所屬學院(seminary),為這些屬性設置相應的get和set方法。2) 為Teacher類重寫equals方法,要求:當兩個教師對象的no相同時返回true。3) 重寫Teacher類的toString方法,通過該方法可以返回“編號為*、姓名為*、年齡為*的*學院老師”形式的字符串。4) 由多個Teacher對象所形成的數(shù)組可以以兩種方法排序(編號由低到高排序):1)使用Arrays.sort(Object a)方法;2)使用Arrays.sort(Object a, Comparator c)方法。5) 再定義一個類TeacherManagement(屬于cn.sd包),提供方法search,方法可以在一組給定的教師中,根據(jù)姓名(或年齡)返回等于指定姓名(或年齡)的教師的字符串信息,信息格式為:“編號為*、姓名為*、年齡為*的*學院老師”。如果沒有滿足條件的教師,則返回“沒有符合條件的教師”。6) 構造main方法進行測試。*package .sdkd;public class Teacher implements Comparableprivate int no;private String name;private int age;private String seminary; public Teacher(int no,String name,int age,String seminary) this.no=no; =name; this.age=age; this.seminary=seminary; public void setNo(int no) this.no=no; public int getNo() return no; public void setName(String name) =name; public String getName() return name; public void setAge(int age) this.age=age; public int getAge() return age; public void setSeminary(String seminary) this.seminary=seminary; public String getSeminary() return seminary; public boolean equals(Object o) boolean result=false; Teacher t = (Teacher)o; if(this.no=t.no) return true; return result; public String toString() return 編號為+getNo()+,姓名為+getName()+,年齡為+getAge()+的+getSeminary()+學院老師; /compareTo接口 public int compareTo(Object o) Teacher otherTea = (Teacher)o; if(nootherTea.no) return 1; return 0; package .sdkd;import java.util.Arrays;import cn.sd.*;public class main public static void main(String args) Teacher t1 = new Teacher(0001,白玉,28,信息); Teacher t2 = new Teacher(0002,李蘭馨,36,地科); Teacher t3 = new Teacher(0003,張成宇,40,材料); Teacher TeaArray = new Teacher3; TeaArray0 = new Teacher(1001,白玉,28,信息); TeaArray1 = new Teacher(1005,李蘭馨,42,地科); TeaArray2 = new Teacher(1003,張成宇,40,材料); System.out.println(t1.toString(); System.out.println(t2.toString(); System.out.println(t3.toString(); System.out.print(n); t1.setNo(t2.getNo(); System.out.println(*臨時修改教師t3的信息*); System.out.println(教師t1與教師t2是否相同?); System.out.println(t1.equals(t2); System.out.println(教師1與教師t3是否相同?); System.out.println(t1.equals(t3); System.out.print(n); System.out.println(按編號升序排列:); Arrays.sort(TeaArray); for(int i=0;iTeaArray.length;i+) System.out.print(編號為+TeaArrayi.getNo()+、姓名為+TeaArrayi.getName()+、年齡為+TeaArrayi.getAge()+的+TeaArrayi.getSeminary()+學院老師); System.out.println(); System.out.println(); System.out.println(年齡為28的教師的信息:); System.out.println(TeacherManagement.search(28,TeaArray); 4. 一個公司有三種不同類型的員工,他們的薪水分別按年(計算方法:年薪*工作年數(shù))、按月(計算方法:月薪*工作月數(shù))、按周(計算方法:周薪*工作周數(shù))結算。編寫類Company,提供計算所有員工總薪水的方法getEarnings,該方法能夠根據(jù)輸入的一組員工(包含各類員工)返回這組員工的總薪水。package pay;public class pay public int wages; public int day; public pay(int wages,int day) this.wages = wages; this.day = day; public pay() public int show() return wages*day; class pay_a extends pay public pay_a(int a,int b)wages = a;day = b; public pay_a() public int show() return (int)(double)day/365)*wages); class pay_b extends pay public pay_b(int a,int b) wages = a; day = b; public pay_b() public int show() return (int)(double)day/30)*wages); class pay_c extends paypublic pay_c(int a,int b) wages = a; day = b; public pay_c() public int show() return (int)(wages*day);*package pay;import pay.pay;import pay.pay_a;import pay.pay_b;import pay.pay_c;public class teat24 public static int getEarings(payp,int length)int sum=0;for(int i=0;ilength;i+)sum+=pi.show();return sum;public static void main(String args)pay pp = new pay5;pp0 = (new pay_a(8, 2000);pp0 = (pay_a)pp0; pp1 = new pay_b(2, 500);pp1 = (pay_b)pp1; pp2 = new pay_c(10, 15000);pp2 = (pay_c)pp2; pp3 = new pay_a(12, 5000);pp3 = (pay_a)pp3; pp4 = new pay_c(5, 1100);pp4 = (pay_c)pp4; int sum = getEarings(pp, 5);for(int i=0;i4;i+)System.out.println(第+i+個員工的薪水為:+ppi.show();System.out.println(員工的總薪水為:+sum);5. 編碼實現(xiàn)一個類:(1)提供一個靜態(tài)方法,可以將輸入的一個int數(shù)組按照從小到大的順序排列;(2)提供靜態(tài)方法,對排好序的數(shù)組使用折半查找(使用遞歸和非遞歸兩種形式分別實現(xiàn))查找某一個整數(shù)。package shiyaner5;import java.util.Scanner;public class myArray public static void sort(int a,int n) int temp; for(int i=0;in;i+) for(int j=0;jai) temp = aj; aj = ai; ai = temp; public static int BinarySearch(int array,int x,int n) int left = 0; int right = n-1; while(leftarraymiddle) left = middle+1; else right = middle-1; System.out.println(未找到!); return -1; public static void main(String args) int s = new int6,8,2,9,4,11,1,7,12,10; int n; Scanner scan = new Scanner(System.in); for(int i=0;i10;i+) System.out.print(si+ ); /排序 sort(s,10); System.out.println(); System.out.println(-); for(int i=0;i-1) e = arraytop; arraytop = null; top-; return e; public Object getTop() Object e = null; if(top-1) e = arraytop; return e; *package shiyaner6;import java.util.Scanner;public class main public static void main(String args) Stack stack = new Stack(32); Scanner scan = new Scanner(System.in); System.out.print(請輸入一個正整數(shù):); int n = scan.nextInt(); /測試Stack類 stack.push(n); System.out.println(輸出: + stack.getTop(); System.out.println(stack.isEmpty(); stack.pop(); System.out.println(stack.isEmpty(); /求一個正整數(shù)對應的二進制數(shù) while(n0) stack.push(n%2); n=n/2; System.out.println(-); while(!stack.isEmpty() System.out.print(stack.pop(); scan.close(); 7. 按照要求使用Java編碼。1) 以類型int聲明一個叫matrix的二維數(shù)組變量,將矩陣初始化為一個5個元素的數(shù)組。2) 以下列方式為matrix的內部元素賦值:matrix從零開始循環(huán)到其長度值;例如索引為i,在每次迭代中,將matrixi指向一個新的整數(shù)數(shù)組,其長度為i。然后用索引變量j,對數(shù)組中的每一個元素進行循環(huán)。在每次內部循環(huán)中,將matrixij賦值為(i*j)。3) 通過循環(huán)打印matrix中的所有元素,結果為:package shiyaner7;public class Matrix private int matrix; Matrix() matrix = new int5; matrix0 = new int0; matrix1 = new int1; matrix2 = new int2; matrix3 = new int3; matrix4 = new int4; for(int i=0;i5;i+) for(int j=0;ji;j+) matrixij = i*j; public void print() for(int i=0;i5;i+) System.out.print(); for(int j=0;j); *package shiyaner7;public class main public static void main(String args) Matrix matrix = new Matrix(); matrix.print(); 8.利用二維數(shù)組(double)實現(xiàn)一個矩陣類:Matrix。要求提供以下方法:(1)set(int row, int col, double value):將第row行第col列的元素賦值為value;(2)get(int row,int col):取第row行第col列的元素;(3)width():返回矩陣的列數(shù);(4)height():返回矩陣的行數(shù);(5)Matrix add(Matrix b):返回當前矩陣與矩陣b相加后的矩陣;(6)Matrix multiply(Matrix b):返回當前矩陣與矩陣b相乘后的矩陣。(7)Matrix transpose():返回當前矩陣的轉置矩陣;(8)print():以行和列的形式打印出當前矩陣。package shiyaner8;public class Matrix double array; private int height;/行數(shù) private int width;/列數(shù) Matrix(int height,int width) this.height = height; this.width = width; array = new doubleheightwidth; public void set(int row,int vol,double value) arrayrowvol = value; public double get(int row,int vol) return arrayrowvol; public int height() return height; public int width() return width; public Matrix add(Matrix b) if(b.height()=height & b.width()=width) for(int i=0;iheight;i+) for(int j=0;jwidth;j+) arrayij = arrayij + b.get(i, j); return this; public Matrix multiply(Matrix b) Matrix c = new Matrix(b.width,this.height); if(this.height = b.width) int temp = 0; for(int i=0;ithis.height;i+) for(int j=0;jb.width;j+) for(int k=0;kthis.width;k+) temp += this.get(i, k)*b.get(k, j); c.set(i, j, temp); temp = 0; return c; public void print() for(int i=0;ithis.height;i+) for(int j=0;jthis.width;j+) System.out.print(this.get(i, j) + t); System.out.println(); public void Matrixtranspose()double b=new doubleheightwidth; for(int i=0;iwidth;i+) for (int j=0;jheight;j+) bji=arrayij; System.out.print(bji+t); if(i%(width-1)=0&i!=0) System.out.println(); *package shiyaner8;public class main public static void main(String args) Matrix ma = new Matrix(3,3); Matrix mb = new Matrix(3,3); Matrix mc = new Matrix(2,4); Matrix md = new Matrix(4,2); for(int i=0;i3;i+) for(int j=0;j3;j+) ma.set(i,j,1.0); for(int i=0;i3;i+) for(int j=0;j3;j+) mb.set(i,j,2.0); for(int i=0;i2;i+) for(int j=0;j4;j+) mc.set(i, j,(i+1)*(j+1); for(int i=0;i4;i+) for(int j=0;j2;j+) md.set(i, j, i+j+1); System.out.println(矩陣A:); ma.print(); System.out.println(矩陣A的行數(shù):+ma.height(); System.out.println(矩陣A的列數(shù):+ma.width(); System.out.println(矩陣A的轉置矩陣:); ma.Matrixtranspose(); System.out.println(-); System.out.println(矩陣B:); mb.print(); System.out.println(矩陣B的行數(shù):+mb.height(); System.out.println(矩陣B的列數(shù):+mb.width(); /測試矩陣的加法函數(shù) System.out.println(-); System.out.println(矩陣A、B相加:); ma.add(mb); ma.print(); System.out.println(-); System.out.println(矩陣C:); mc.print(); System.out.println(矩陣C的轉置矩陣:); mc.Matrixtranspose(); System.out.println(-); System.out.println(矩陣D:); md.print(); /矩陣乘法 System.out.println(-); System.out.println(矩陣C、D相乘:); mc.multiply(md).print(); 9 9. 利用隨機函數(shù)產生100個整數(shù)給一維數(shù)組賦值,然后輸入任意一個整數(shù),查找該整數(shù)是否在數(shù)組中存在,并統(tǒng)計出現(xiàn)次數(shù)。package shiyaner9;import java.util.Scanner;import java.math.*;public class random public static void main(Strin

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論