實(shí)驗(yàn)4-面向?qū)ο蠡A(chǔ)_第1頁(yè)
實(shí)驗(yàn)4-面向?qū)ο蠡A(chǔ)_第2頁(yè)
實(shí)驗(yàn)4-面向?qū)ο蠡A(chǔ)_第3頁(yè)
實(shí)驗(yàn)4-面向?qū)ο蠡A(chǔ)_第4頁(yè)
實(shí)驗(yàn)4-面向?qū)ο蠡A(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、xxxxx大學(xué)計(jì)算機(jī)與信息技術(shù)學(xué)院實(shí)驗(yàn)報(bào)告姓 名 學(xué) 號(hào)專業(yè)班級(jí)課程名稱 Java實(shí)驗(yàn)實(shí)驗(yàn)日期成 績(jī)指導(dǎo)教師批改日期實(shí)驗(yàn)名稱實(shí)驗(yàn) 4 面向?qū)ο蠡A(chǔ)一實(shí)驗(yàn)?zāi)康模海?)掌握類的定義、類的實(shí)例化方法;(2)掌握類中的靜態(tài)變量和靜態(tài)方法的使用;(3)掌握使用類的構(gòu)造方法對(duì)對(duì)象的數(shù)據(jù)域進(jìn)行初始化;(4)掌握getter和setter的使用;二實(shí)驗(yàn)內(nèi)容(1)現(xiàn)在要求設(shè)計(jì)一個(gè)表示學(xué)生的類,里面有學(xué)生的姓名、學(xué)號(hào)、年齡,還要有三項(xiàng)成績(jī):計(jì)算機(jī)成績(jī)、數(shù)學(xué)成績(jī)、英語(yǔ)成績(jī),要求可以求總分、平均分、最高、最低分,并且可以輸出一個(gè)學(xué)生的完整信息,請(qǐng)?jiān)O(shè)計(jì)此類。提示:程序開(kāi)發(fā)步驟根據(jù)需求定義出所要的類;根據(jù)題目中的要求規(guī)劃

2、出類的屬性;所有的屬性必須封裝:private;所有的屬性必須通過(guò)getter和setter訪問(wèn);如果需要增加構(gòu)造方法,為屬性賦初值,適當(dāng)采用構(gòu)造方法重載;所有的信息不要類中直接輸出,而是交給調(diào)用處輸出,即在該類中盡量不出現(xiàn)System.out.println()語(yǔ)句。例如在調(diào)用類中輸出如下結(jié)果:總分:267.70000000000005平均分:89.23333333333335最高分:91.4最低分:87.3學(xué)生信息:|-學(xué)號(hào):100|-姓名:John|-年齡:20|-英語(yǔ):89.0|-計(jì)算機(jī):87.3|-數(shù)學(xué):91.4程序代碼:package t4;import java.util.*;i

3、mport ;public class LX4_1 public static void main(String args) Student student1=new Student();Scanner input=new Scanner(System.in);System.out.println("請(qǐng)輸入學(xué)生姓名:");student1.setName(input.next();System.out.println("請(qǐng)輸入學(xué)號(hào):");student1.setStudentNumber(input.nextInt();System.out.printl

4、n("請(qǐng)輸入年齡:");student1.setAge(input.nextInt();System.out.println("請(qǐng)輸入英語(yǔ)成績(jī):");student1.setEnglishGrade(input.nextDouble();System.out.println("請(qǐng)輸入電腦成績(jī):");student1.setComputerGrade(input.nextDouble();System.out.println("請(qǐng)輸入數(shù)學(xué)成績(jī):");student1.setMathGrade(input.nextDo

5、uble();printInformations(student1);public static void printInformations(Student s1)System.out.printf("總分:%3.2f n",Double.parseDouble(String.valueOf(s1.sumGrade();System.out.printf("平均分:%3.2fn",Double.parseDouble(String.valueOf(s1.avgGrade();System.out.println("最高分:"+Dou

6、ble.parseDouble(String.valueOf(s1.maxGrade();System.out.println("最低分:"+Double.parseDouble(String.valueOf(s1.minGrade();System.out.println("學(xué)生信息:");System.out.println("學(xué)號(hào):"+s1.getStudentNumber();System.out.println("姓名"+s1.getName();System.out.println("年齡&q

7、uot;+s1.getAge();System.out.println("英語(yǔ)成績(jī):"+s1.getEnglishGrade();System.out.println("電腦成績(jī):"+s1.getComputerGrade();System.out.println("數(shù)學(xué)成績(jī):"+s1.getMathGrade();class Studentprivate int studentNumber;private String name;private int age;private double englishGrade;private

8、double computerGrade;private double mathGrade;void setStudentNumber(int number)studentNumber=number;int getStudentNumber()return studentNumber;void setName(String nm)name=nm;String getName()return name;void setAge(int age1)age=age1;int getAge()return age;void setEnglishGrade(double grade)englishGrad

9、e=grade;double getEnglishGrade()return englishGrade;void setComputerGrade(double grade)computerGrade=grade;double getComputerGrade()return computerGrade;void setMathGrade(double grade)mathGrade=grade;double getMathGrade()return mathGrade;double maxGrade()double max;max=englishGrade;if(max<compute

10、rGrade)max=computerGrade;if(max<mathGrade)max=mathGrade;return max;double minGrade()double min;min=englishGrade;if(min>computerGrade)min=computerGrade;if(min>mathGrade)min=mathGrade;return min;double sumGrade()double sum;sum=englishGrade+computerGrade+mathGrade;return sum;double avgGrade()d

11、ouble ave;ave=(sumGrade()/3;return ave;運(yùn)行結(jié)果貼圖:(二)1、設(shè)計(jì)類來(lái)描述真實(shí)客觀世界中的事物,使用類的成員變量來(lái)表示事物的屬性和狀態(tài),使用類的成員方法來(lái)提供對(duì)成員變量的訪問(wèn)或修改程序功能:設(shè)計(jì)一個(gè)用來(lái)描述汽車的類,使用類的非靜態(tài)成員變量來(lái)表示汽車的車主姓名、當(dāng)前的速率和當(dāng)前方向盤的轉(zhuǎn)向角度,使用類的非靜態(tài)成員方法來(lái)表示改變汽車的速率和停車兩個(gè)操作。程序源代碼如下,補(bǔ)全橫線上的程序代碼。package t4;public class Car private String ownerName; /車主姓名 private float curSpeed; /

12、當(dāng)前車速 private float curDirInDegree; /當(dāng)前方向盤轉(zhuǎn)向角度 public Car (String ownerName) this.ownerName=ownerName; public Car (String ownerName, float speed, float dirInDegree) this(ownerName);/調(diào)用上面那個(gè)構(gòu)造函數(shù)為ownerName賦值 curSpeed = speed ; curDirInDegree = dirInDegree; public String getOwnerName() /提供對(duì)車主姓名的訪問(wèn) return

13、 ownerName; public float getCurDirInDegree() /提供對(duì)當(dāng)前方向盤轉(zhuǎn)向角度的訪問(wèn) return curDirInDegree; public float getCurSpeed() /提供對(duì)當(dāng)前車速的訪問(wèn) return curSpeed; public void changeSpeed(float curSpeed) /提供改變當(dāng)前的車速 this.curSpeed = curSpeed; public void stop() /提供停車 curSpeed = 0; 主方法:package t4;import java.util.*;public cl

14、ass LX4_2 public static void main(String args) Scanner input=new Scanner(System.in);System.out.println("請(qǐng)輸入車主姓名、車速和方向盤角度:");Car car1=new Car(input.next(),input.nextFloat(),input.nextFloat();/ TODO 自動(dòng)生成的方法存根 System.out.println("車主姓名:"+car1.getOwnerName(); System.out.println("

15、當(dāng)前車速:"+car1.getCurSpeed(); System.out.println("當(dāng)前方向盤角度:"+car1.getCurDirInDegree(); System.out.println("修改車速:"); System.out.println("請(qǐng)輸入新的車速:"); car1.changeSpeed(input.nextFloat(); System.out.println("當(dāng)前車速:"+car1.getCurSpeed(); System.out.println("停車:

16、"); car1.stop(); System.out.println("當(dāng)前車速:"+car1.getCurSpeed();編寫一個(gè)主方法,編譯并測(cè)試源程序。2、創(chuàng)建類的對(duì)象,使用對(duì)象的方法(類的非靜態(tài)方法)來(lái)訪問(wèn)或修改對(duì)象的變量(類的非靜態(tài)變量)創(chuàng)建類Car的對(duì)象,在調(diào)用類的構(gòu)造函數(shù)時(shí)指定對(duì)象的變量的初始值,以后再使用對(duì)象的方法來(lái)訪問(wèn)或修改對(duì)象的變量的值。程序代碼如下(需要添加代碼,要求運(yùn)行結(jié)果如下圖所示。package t4;public class LX4_3 public static void main(String args) Car car = n

17、ew Car("成龍", 200f, 25f);System.out.println("車主姓名:" + car.getOwnerName();System.out.println("當(dāng)前車速:" + car.getCurSpeed();System.out.println("當(dāng)前方向盤角度:" + car.getCurDirInDegree();System.out.printf("在調(diào)用changeSpeed(80)后,車速變?yōu)?");car.changeSpeed(80);System.o

18、ut.println(car.getCurSpeed();System.out.printf("在調(diào)用stop()后, 車速變?yōu)? ");car.stop();System.out.println(car.getCurSpeed();編譯并運(yùn)行,結(jié)果如圖所示。車主姓名: 成龍當(dāng)前車速: 200.0當(dāng)前轉(zhuǎn)向角度: 25.0在調(diào)用changeSpeed(80)后,車速變?yōu)? 80.0在調(diào)用stop()后, 車速變?yōu)? 0.0(三)(賬戶類Account)設(shè)計(jì)一個(gè)名為Account的類,它包括: 一個(gè)名為id的int類型私有賬戶數(shù)據(jù)域(默認(rèn)值為0)。 一個(gè)名為balance的do

19、uble類型私有賬戶數(shù)據(jù)域(默認(rèn)值為0)。 一個(gè)名為annualInterestRate的double類型私有數(shù)據(jù)域存儲(chǔ)當(dāng)前利率(默認(rèn)值為0)。假設(shè)所有的賬戶都有相同的利率。 一個(gè)名為dateCreated的Date類型私有數(shù)據(jù)域存儲(chǔ)賬戶的開(kāi)戶日期。 一個(gè)能創(chuàng)建默認(rèn)賬戶的無(wú)參構(gòu)造方法。 一個(gè)能創(chuàng)建帶特定id和初始余額的賬戶的構(gòu)造方法。 id、balance和annualInterestRate的訪問(wèn)器和修改器。 dateCreated的訪問(wèn)器。 一個(gè)名為getMonthlyInterestRate()的方法返回月利率。 一個(gè)名為withDraw的方法從賬戶提取特定數(shù)額。 一個(gè)名為deposit

20、的方法向賬戶存儲(chǔ)特定數(shù)額。實(shí)現(xiàn)這個(gè)類。編寫一個(gè)測(cè)試程序,創(chuàng)建一個(gè)賬戶ID為1122、余額為20000美元、年利率為4.5%的Account對(duì)象。使用withdraw方法取款2500美元,使用deposit方法存款3000美元,然后打印余額、月利率以及這個(gè)賬戶的開(kāi)戶日期。程序代碼:package t4;import java.util.*;public class LX4_4 public static void main(String args) Account account = new Account(1122, 20000);account.setAnnualInterestRate(4

21、.5);account.withDraw(2500);account.desposit(3000);print(account);public static void print(Account ac1) System.out.println("余額為:" + ac1.getBalance();System.out.println("月利率:" + ac1.getAnnualInterestRate() / 12 * 100+ "%");System.out.println("開(kāi)戶日期:" + ac1.getDat

22、eCreat();package t4;import java.util.*;public class Account private int id;private double balance;private static double annualInterestRate;private Date dateCreated;Account() id = id + 1;this.balance = 0;dateCreated = new Date();Account(int id, double balance) this.id = id;this.balance = balance;date

23、Created = new Date();public int getId() return id;public void setId(int id) this.id = id;public double getBalance() return balance;public void setBalance(double balance) this.balance = balance;public double getAnnualInterestRate() return annualInterestRate;public void setAnnualInterestRate(double an

24、) annualInterestRate = an / 100;public Date getDateCreat() return dateCreated;public double getMonthlyInterestRate() return annualInterestRate / 12;public void withDraw(double draw) double a = this.getBalance() - draw;this.setBalance(a);public void desposit(double dep) double a = this.getBalance() +

25、 dep;this.setBalance(a);運(yùn)行結(jié)果貼圖:(三)(風(fēng)扇類Fan)設(shè)計(jì)一個(gè)名為Fan的類來(lái)表示一個(gè)風(fēng)扇。這個(gè)類包括:l 三個(gè)名為SLOW、MEDIUM、FAST而值是1、2和3的常量表示風(fēng)扇的速度。l 一個(gè)名為speed的int類型私有數(shù)據(jù)域表示風(fēng)扇的速度(默認(rèn)值為SLOW)。l 一個(gè)名為on的boolean類型的私有數(shù)據(jù)域表示風(fēng)扇是否打開(kāi)(默認(rèn)值為false)。l 一個(gè)名為radius的double類型的私有數(shù)據(jù)域表示風(fēng)扇的半徑(默認(rèn)值為5)。l 一個(gè)名為color的String類型的數(shù)據(jù)域表示風(fēng)扇的顏色(默認(rèn)值為blue)。l 這四個(gè)數(shù)據(jù)域的訪問(wèn)器和修改器。l 一個(gè)創(chuàng)建默

26、認(rèn)風(fēng)扇的無(wú)參構(gòu)造方法。l 一個(gè)名為toString()的方法返回描述風(fēng)扇的字符串。如果風(fēng)扇是打開(kāi)的,那么該方法在一個(gè)組合的字符串中返回風(fēng)扇的速度、顏色和半徑。如果風(fēng)扇沒(méi)有打開(kāi),該方法就返回一個(gè)由“fan is off”和風(fēng)扇顏色及半徑組合成的字符串。 實(shí)現(xiàn)這個(gè)類。編寫一個(gè)測(cè)試程序,創(chuàng)建兩個(gè)fan對(duì)象。將第一個(gè)對(duì)象設(shè)置為最大速度、半徑為10、顏色為yellow、狀態(tài)為打開(kāi)。將第二個(gè)對(duì)象設(shè)置為中等速度、半徑為5、顏色為blue、狀態(tài)為關(guān)閉。通過(guò)調(diào)用它們的toString方法顯示這些對(duì)象。程序代碼:package t4;public class LX4_5 public static void ma

27、in(String args) Fan fan1 = new Fan();fan1.setSpeed(3);fan1.setRadius(10);fan1.setColor("yellow");fan1.setOn(true);Fan fan2 = new Fan();fan2.setSpeed(2);fan2.setRadius(5);fan2.setColor("blue");fan2.setOn(false);System.out.println(fan1.toString();System.out.println(fan2.toString();

28、package t4;public class Fan final static int slow = 1;final static int medium = 2;final static int fast = 3;private int speed = slow;private boolean on = false;private double radius = 5;private String color = "blue"public int getSpeed() return speed;public void setSpeed(int sp) speed = sp;

29、public boolean getOn() return on;public void setOn(boolean on1) on = on1;public double getRadius() return radius;public void setRadius(double r) radius = r;public String getColor() return color;public void setColor(String a) color = a;Fan() public String toString() if (this.getOn() = true) return &q

30、uot;風(fēng)扇轉(zhuǎn)速:" + this.getSpeed() + " 風(fēng)扇顏色:" + this.getColor()+ " 半徑:" + this.getRadius(); elsereturn "fan is off" + " 風(fēng)扇顏色:" + this.getColor() + " 半徑:"+ this.getRadius();運(yùn)行結(jié)果貼圖:(四)(幾何方面:正n邊形)在一個(gè)正n邊形中,所有邊的長(zhǎng)度都相同,且所有角的度數(shù)都相同(即這個(gè)多邊形是等邊等角的)。設(shè)計(jì)一個(gè)名為RegularP

31、olygon的類,該類包括:l 一個(gè)名為n的int型私有數(shù)據(jù)域定義多邊形的邊數(shù),默認(rèn)值為3。l 一個(gè)名為side的double型私有數(shù)據(jù)域存儲(chǔ)邊的長(zhǎng)度,默認(rèn)值為1。l 一個(gè)名為x的double型私有數(shù)據(jù)域,它定義多邊形中點(diǎn)的x坐標(biāo),默認(rèn)值為0。l 一個(gè)名為y的double型私有數(shù)據(jù)域,它定義多邊形中點(diǎn)的y坐標(biāo),默認(rèn)值為0。l 一個(gè)創(chuàng)建帶默認(rèn)值的正多邊形的無(wú)參構(gòu)造方法。l 一個(gè)能創(chuàng)建帶指定邊數(shù)和邊長(zhǎng)度、中心在(0,0)的正多邊形的構(gòu)造方法。l 一個(gè)能創(chuàng)建帶指定邊數(shù)和邊長(zhǎng)度、中心在(x,y)的正多邊形的構(gòu)造方法。l 所有數(shù)據(jù)域的訪問(wèn)器和修改器。l 一個(gè)返回多邊形周長(zhǎng)的方法getPerimeter(

32、)。l 一個(gè)返回多邊形面積的方法getArea()。計(jì)算正多邊形面積的公式是:面積= 實(shí)現(xiàn)這個(gè)類。編寫一個(gè)測(cè)試程序,分別使用無(wú)參構(gòu)造方法、RegularPolygon(6,4)和RegularPolygon(10,4,5.6,7.8)創(chuàng)建三個(gè)RegularPolygon對(duì)象。顯示每個(gè)對(duì)象的周長(zhǎng)和面積。程序代碼:package t4;public class LX4_6 public static void main(String args) RegularPolygon ro1 = new RegularPolygon();RegularPolygon ro2 = new RegularPol

33、ygon(6, 4);RegularPolygon ro3 = new RegularPolygon(10, 3, 5.6, 7.8);print(ro1);print(ro2);print(ro3);public static void print(RegularPolygon c) System.out.println("正" + c.getN() + "的周長(zhǎng)為:" + c.getPerimeter();System.out.println("正" + c.getN() + "的面積為:" + c.getAr

34、ea();package t4;public class RegularPolygon private int n = 3;private double side = 1;private double x = 0;private double y = 0;RegularPolygon() RegularPolygon(int n, double side) this.n = n;this.side = side;this.x = 0;this.y = 0;RegularPolygon(int n, double side, double x, double y) this.n = n;this

35、.side = side;this.x = x;this.y = y;public int getN() return n;public void setN(int n1) n = n1;public double getSide() return side;public void setSide(double side1) side = side1;public double getX() return x;public void setX(double x1) x = x1;public double getY() return y;public void setY(double y1)

36、y = y1;public double getPerimeter() return n* side;public double getArea() double s;double t;t = 4 * Math.tan(Math.PI / n);s = n * side * side / t;return s;運(yùn)行結(jié)果貼圖:(五)(代數(shù)方面:二次方程)為二次方程式設(shè)計(jì)一個(gè)名為QuadraticEquation的類。這個(gè)類包括:l 代表參數(shù)為a、b和c。l 一個(gè)參數(shù)為a、b和c的構(gòu)造方法。l A、b、c的三個(gè)get方法。l 一個(gè)名為getDiscriminant()的方法返回判別式,。l 一個(gè)名

37、為getRoot1()和getRoot2()的返回等式的兩個(gè)根: and 這些方法只有在判別式為非負(fù)數(shù)時(shí)才有用。如果判別式為負(fù),這些方法返回0。實(shí)現(xiàn)這個(gè)類。編寫一個(gè)測(cè)試程序,提供用戶輸入a、b和c的值,然后顯示判別式的結(jié)果。如果判別式為正數(shù),顯示兩個(gè)根;如果判別式為0,顯示一個(gè)根;否則顯示“The equation has no roots.”(這個(gè)方程無(wú)根)。程序代碼:package t4;import java.util.*;public class LX4_7 public static void main(String args) System.out.println("請(qǐng)輸

38、入a,b,c:");Scanner input = new Scanner(System.in);QuadraticEquation quadratic1 = new QuadraticEquation(input.nextDouble(), input.nextDouble(), input.nextDouble();print(quadratic1);public static void print(QuadraticEquation a1) if (a1.getDiscriminant() < 0)System.out.println("The equation

39、 has no roots!");else if (a1.getDiscriminant() = 0)System.out.println("有一個(gè)根:" + a1.getRoot1();else System.out.println("第一個(gè)根為:" + a1.getRoot1();System.out.println("第二個(gè)根為:" + a1.getRoot2();package t4;public class QuadraticEquation private double a;private double b;private double c;public double getA() return a;public void setA(double a1) a = a1;public double getB() return b;public void setB(double b1) b = b1;public double getC() return c;pu

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論