java實驗題解讀_第1頁
java實驗題解讀_第2頁
java實驗題解讀_第3頁
java實驗題解讀_第4頁
java實驗題解讀_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實驗一基本程序設(shè)計(1) 編寫一個程序,讀入一筆費用與酬金率,計算酬金和總錢數(shù)。例如,如果用戶輸入10作為費用,15%乍為酬金率,計算結(jié)果顯示酬金為Y 1.5,總費用為 11.5。public class Exercise2_5 public static void main( Stri ng args) / Read subtotaljava.util.Sca nner in put = new java.util.Sca nn er(System.i n);System.out.pri nt(E nter subtotal:);double subtotal = in put. nextD

2、ouble();/ Read subtotalSystem.out.pri nt(E nter gratuity rate:);double rate = in put .n extDouble();double gratuity = subtotal * rate / 100;double total = subtotal + gratuity;System.out.pri ntl n(Gratuity is + gratuity);System.out.pri ntl n( Total is + total);(2) (求ASCII碼對應(yīng)的字符)編寫程序接受一個 ASCII碼(從0到128

3、的整 數(shù)),然后顯示它所代表的字符。例如用戶輸入的是97,程序顯示的是俄字符a。public class Exercise2_8 public static void main( Stri ng args) java.util.Sca nner in put = new java.util.Sca nn er(System.i n);/ En ter an ASCII codeSystem.out.pri nt(E nter an ASCII code:);int code = in put .n extI nt();/ Display resultSystem.out.pri ntl n(

4、The character for ASCII code + code + is + (char)code);(3)(計算一個三角形周長)編寫程序,讀取三角形的三條邊,如果輸入值合法 就計算這個三角形的周長;否則,顯示這些輸入值不合法。如果任意兩條邊的和 大于第三邊,那么輸入值都是合法的。public class Exercise3_25 public static void main( Stri ng args) java.util.Sca nner in put = new java.util.Sca nn er(System.i n);/ En ter three edgesSystem

5、.out.pri nt(En ter three edges (le ngth in double):);double edge1 = in put. nextDouble();double edge2 = in put. nextDouble();double edge3 = in put. nextDouble();/ Display resultsboolea n valid = (edge1 + edge2 edge3) &(edge1 + edge3 edge2) & (edge2 + edge3 edge1);if (valid) System.out.pri ntl n(The

6、perimeter of the tria ngle is +(edge1 + edge2 + edge3); elseSystem.out.pri ntln (I nput is inv alid);(解一元二次方程)求一元二次方程ax2 + bx + c = 0的兩個根,b就有*b-4ac稱作一元二次方程的判別式。如果它是正值,那么一元二次方程俄就有 兩個正根。如果它為0,方程就只有一個根。如果它是負值,方程無實根。編寫 程序,提示用戶輸入a、b和c的值,并且顯示基于判別式的結(jié)果。如果判別式 為正,顯示兩個根,如果判別式為 0,顯示一個根,如果判別式為負,顯示方程 無實根。(4) impo

7、rt java.util.Sca nner;public class Exercise3_1 public static void main( Stri ng args) Scanner in put = new Sca nn er(System.i n);System.out.pri nt(E nter a, b, c:);double a = in put. nextDouble();double b = in put. nextDouble();double c = in put. nextDouble();double discrim inant = b * b - 4 * a * c

8、;if (discrim inant 0)double r1 = (-b + Math.pow(discrimi nant, 0.5) / (2 * a);double r2 = (-b - Math.pow(discrimi nant, 0.5) / (2 * a); System.out.pri ntln (The roots are + r1 + and + r2);(5)(統(tǒng)計正數(shù)和負數(shù)的個數(shù),然后計算這些數(shù)的平均值)編寫程序,讀入未指 定個數(shù)的整數(shù),判斷讀入的正數(shù)有多少個,讀入的負數(shù)有多少個,然后計算這些 輸入值的總和及其平均值(不對0計數(shù))。當(dāng)輸入為0時,表示程序結(jié)束。將平均值以浮

9、點數(shù)顯示。(5)import java.util.Sca nner;public class Exercise4_1 public static void main( Stri ng args) int coun tPositive=0, coun tNegative = 0;int count = 0, total = 0, num;Scanner in put = new Sca nn er(System.i n);System.out.pri nt(En ter an int value, the program exits if the in put is 0:);num = in p

10、ut. next In t();while (num != 0) if (num 0)coun tPositive+;else if (num 0)coun tNegative+;total += num;coun t+;/ Read the n ext nu mbernum = in put .n extl nt();if (co unt = 0)System.out.pri ntl n(You did nt en ter any nu mber);else System.out.println(Thenumber of positives is + countPositive);Syste

11、m.out.println(Thenumber of negatives is + countNegative);System.out.pri ntln( The total is + total);System.out.pri ntl n(The average is + total * 1.0 / coun t);試驗二 方法(1) 一個五角數(shù)被定義為n(3n-1)/2,其中n=1,2,。所以,開始的幾個數(shù)字 就是1,5,12,22,編寫下面的方法返回一個五角數(shù):public static int getPe ntag on aNumber(i nt n)編寫一個測試程序顯示前100個五角

12、數(shù),每行顯示10個。提示:通過for循環(huán)語句打印前100個五角數(shù)。(1) / Exercise5_1.java:public class Exercise5_1 public static void main( Stri ng args) for (i nt i = 1; i side3) &(sidel + side3 side2) & (side2 + side3 sidel);public static double area(double sidel, double side2, double side3) double s = (sidel + side2 + side3) / 2;

13、return Math.sqrt(s * (s - sidel) * (s - side2) * (s - side3);試驗三 數(shù)組(1) 編寫程序,讀取10個整數(shù),然后按照和讀入順序相反的順序?qū)⑺鼈冿@示 出來。提示:int num = new int10。(1)public class Exercise6_2 public static void main (Stri ng args) java.util.Sca nner in put = new java.util.Sca nn er(System.i n);in t num = new in t10;for (i nt i = 0;

14、i = 0; i-) System.out.pri ntl n(nu mi); (2)(指定等級)編寫一個程序,讀入學(xué)生成績,獲取最高分best,然后根據(jù)下面的規(guī)則賦等級值:如果分數(shù)=best - 10 ,等級為A如果分數(shù)=best - 20 ,等級為B如果分數(shù)=best - 30 ,等級為C如果分數(shù)=best - 40 ,等級為D其他情況下,等級為F程序提示用戶輸入學(xué)生總數(shù),然后提示用戶輸入所有的分數(shù),最后顯示等級得出 結(jié)論。(2 )import java.util.Sca nner; public class Exercise6_1 /* Mai n method */public sta

15、tic void main( Stri ng args) / Create a Sca nnerScanner in put = new Sca nn er(System.i n);/ Get nu mber of stude ntsSystem.out.pri nt(E nter nu mber of stude nts:);int nu mberOfStude nts = in put. nextl nt();in t scores = new intnu mberOfStude nts; / Array scoresint best = 0; / The best scorechar g

16、rade; / The grade/ Read scores and find the best scoreSystem.out.pri nt(E nter + nu mberOfStude nts + scores:);for (int i = 0; i best)best = scoresi;/ Declare and in itialize output stri ngStri ng output =;/ Assig n and display gradesfor (int i = 0; i = best - 10)grade = A;else if (scoresi = best -

17、20)grade = B;else if (scoresi = best - 30)grade = C;else if (scoresi = best - 40)grade = D;elsegrade = F;output += Stude nt + i + score is + scoresi + and grade is + grade + n;/ Display the resultSystem.out.pri ntl n(o utput);(3) (計算數(shù)字的出現(xiàn)次數(shù))編寫程序,讀取在1到100之間的整數(shù),然后計算每 個數(shù)出現(xiàn)的次數(shù)。假定輸入是以0結(jié)束的。(3) public clas

18、s Exercise6_3 public static void main (Stri ng args) java.util.Sca nner in put = new java.util.Sca nn er(System.i n);in t cou nts = new in t100;System.out.pri nt(E nter the in tegers betwee n 1 and 100:);/ Read all nu mbersint nu mber = in put. nextl nt(); / nu mber read from a filewhile (nu mber !=

19、 0) coun ts nu mber - 1+;nu mber = in put. nextl nt();/ Display resultfor (i nt i = 1; i 0)System.out.pri ntln(i + 1) + occurs + coun tsi+ (cou ntsi = 1) ? time : times);(4) 編寫一個方法,使用下面的方法頭求出一個整數(shù)數(shù)組中的最小元素:public static double min( double array)編寫測試程序,提示用戶輸入10個數(shù)字,調(diào)用這個方法,返回最小元素值(4) public class Exercis

20、e6_9 / Mai n methodpublic static void main( Stri ng args) double nu mbers = new double10;java.util.Sca nner in put = new java.util.Sca nn er(System.i n);System.out.pri nt(E nter ten double nu mbers:);for (int i = 0; i nu mbers .len gth; i+)nu mbersi = in put .n extDouble();System.out.pri ntl n(The m

21、in is + min(nu mbers);public static double min( double list) double min = list0;for (i nt i = 1; i listi) min = listi;return mi n;(5) 編寫一個方法,求整數(shù)矩陣中所有整數(shù)的和,使用下面的方法頭:Public static double sumMatrix(i nt m)編寫一個測試程序,讀取一個4X4的矩陣,然后顯示所有元素的和(5) import java.util.Sca nner;public class Exercise7_1 public static

22、void main( Stri ng args) Scanner in put = new Scann er(System.i n);System.out.pri nt(E nter a 4 by 4 matrix row by row:);double m = new double44;for (i nt i = 0; i 4; i+)for (i nt j = 0; j 4; j+)mij = in put. nextDouble();System.out.pri nt(Sum of the matrix is + sumMatrix(m);public static double sum

23、Matrix(double m) int sum = 0;for (int i = 0; i m.len gth; i+)for (i nt j = 0; j m0.le ngth; j+)sum += mij;return sum;試驗四對象和類(1)(矩形類Rectangle) 遵從8.2節(jié)中Circle 類的例子,設(shè)計一個名為Rectangle的類表示矩形。這個類包括:1)兩個名為width和height的double型數(shù)據(jù)域,它們分別表示矩形的寬和高。 width和height的默認值都是1。2)創(chuàng)建默認矩形的無參構(gòu)造方法。3)個創(chuàng)建width和height為指定值的矩形的構(gòu)造方法。4

24、)一個名為getArea ()的方法返回矩形的面積。5)一個名為getPerimiter ()的方法返回周長。畫出該類的UML圖。實現(xiàn)這個類。編寫一個測試程序,創(chuàng)建兩個Rectangle對象 -一個矩形寬為4而高為40,另一個矩形寬為3.5而高為35.9。依照每個矩 形的寬、高、面積和周長的順序顯示。(1) public class Exercise8_1 public static void main( Stri ng args) Recta ngle myRecta ngle = new Recta ngle(4, 40);System.out.pri ntln (The area of

25、a recta ngle with width +myRecta ngle.width + and height +myRecta ngle.height + is +myRecta ngle.getArea();System.out.pri ntl n(The perimeter of a recta ngle is + myRecta ngle.getPerimeter();Recta ngle yourRecta ngle = new Recta ngle(3.5, 35.9);System.out.pri ntln (The area of a recta ngle with widt

26、h + yourRecta ngle.width + and height + yourRecta ngle.height + is + yourRecta ngle.getArea();System.out.pri ntl n(The perimeter of a recta ngle is + yourRecta ngle.getPerimeter();class Recta ngle / Data membersdouble width = 1, height = 1;/ Con structorpublic Recta ngle() / Con structorpublic Recta

27、 ngle(double n ewWidth, double n ewHeight) width = n ewWidth;height = n ewHeight;public double getArea() retur n width * height;public double getPerimeter() return 2 * (width + height);(2)(賬戶類Account)設(shè)計一個名為 Account的類,它包括: 一個名為id的int類型私有賬戶數(shù)據(jù)域(默認值為0)。一個名為balanee的double類型私有賬戶數(shù)據(jù)域(默認值為0)。(默一個名為annuallnte

28、restRate的double類型私有數(shù)據(jù)域存儲當(dāng)前利率認值為0)。假設(shè)所有的賬戶都有相同的利率。一個名為dateCreated的Date類型私有數(shù)據(jù)域存儲賬戶的開戶日期。一個能創(chuàng)建默認賬戶的無參構(gòu)造方法。一個能創(chuàng)建帶特定id和初始余額的賬戶的構(gòu)造方法。ld,bala nee, ann uall nterestRate的訪問器和修改器。dateCreated的訪問器。一個名為getMonthlylnterestRate()的方法返回月利率。一個名為withdraw的方法從賬戶提取特定數(shù)額。一個名為deposit的方法向賬戶存儲特定數(shù)額。畫出該類的UML圖。實現(xiàn)這個類。編寫一個測試程序,創(chuàng)建一個

29、賬戶ID為112 2、余額為2 0 0 0 0美元、年利率為4.5%的Account對象。使 用withdraw 方法取款2 5 0 0美元,使用 diposit 方法存款3 0 0 0美元,然 后打印余額、月利息以及這個賬戶的開戶日期。提示:月利率 annuallnterestRate/1200(2)public class Exercise8_7 public static void main (Stri ng args) Accou nt accou nt = new Accou nt(1122, 20000);Accou nt.setA nnu alI nterestRate(4.5)

30、;accou nt.withdraw(2500);acco un t.deposit(3000);System.out.pri ntl n(Bala nee is + acco un t.getBala nce();System.out.pri ntl n(Mo nthly in terest is +accoun t.getM on thlyl nterest();System.out.pri ntln (This acco unt was created at +acco un t.getDateCreated();class Acco unt private int id;private

31、 double bala nee;private static double annu all nterestRate;private java.util.Date dateCreated;public Acco un t() dateCreated = new java.util.Date();public Acco un t(i nt n ewld, double n ewBala nee) id = n ewld;bala nee = n ewBala nee;dateCreated = new java.util.Date();public int getld() return thi

32、s.id;public double getBala nce() retur n bala nee;public static double getA nnu all nterestRate() return annu alI nterestRate;public void setId(i nt n ewId) id = n ewId;public void setBala nce(double n ewBala nee) bala nee = n ewBala nee;public static void setA nnu alI nterestRate(doublen ewA nnu al

33、I nterestRate)annu alI nterestRate = n ewA nnu alI nterestRate;public double getM on thl yin terest() return bala nee * (a nn uall nterestRate / 1200);public java.util.Date getDateCreated() return dateCreated;public void withdraw(double amount) bala nee -= amount;public void deposit(double amount) b

34、ala nee += amount;(3)、(風(fēng)扇類Fan )設(shè)計一個名為Fan的類來表示一個風(fēng)扇。這個類包括: 三個名為SLOWVMEDIUM、和 FAST而值為1、2、3的常量表示風(fēng)扇的速度。一個名為speed的int類型私有數(shù)據(jù)域表示風(fēng)扇的速度(默認值為SLO W)。一個名為on的boolea n類型私有數(shù)據(jù)域表示風(fēng)扇是否打開(默認值為faIse) o一個名為radius的 double類型私有數(shù)據(jù)域表示風(fēng)扇的半徑(默認值 為5)一個名為color的string類型數(shù)據(jù)域表示風(fēng)扇的顏色(默認值為blue) o這四個數(shù)據(jù)域的訪問器和修改器。一個創(chuàng)建默認風(fēng)扇的無參構(gòu)造方法。一個名為toStr

35、ing()的方法返回描述風(fēng)扇的字符串。如果風(fēng)扇是打開的,那 么該方法在一個組合的字符串中返回風(fēng)扇的速度、顏色和半徑。如果風(fēng)扇沒 有打開,該方法就返回一個由“ fan is off ”和風(fēng)扇顏色及半徑組合成的字 符串。畫出該類的UML圖。實現(xiàn)這個類。編寫一個測試程序,創(chuàng)建兩個Fan對象。將第一個對象設(shè)置為最大速度、半徑為10、顏色為yellow、狀態(tài)為打開。將第二個對象設(shè)置為中等速度、半徑為5、顏色為blue、狀態(tài)為關(guān)閉。通過調(diào)用它們的toStri ng 方法顯示這些對象。(3)public class Exercise8_8 public static void main( Stri ng a

36、rgs) Fan1 fan1 = new Fan 1();fan 1.setSpeed(Fa n1.FAST);fan 1.setRadius(10);fan 1.setColor(yellow);fan 1.set On (true);System.out.pri ntl n(fan 1.toStri ng();Fan1 fan2 = new Fan 1();fan 2.setSpeed(Fa n1.MEDIUM);fan 2.setRadius(5);fan 2.setColor(blue);fan 2.set On (false);System.out.pri ntl n(fan 2.t

37、oStri ng(); class Fan1 public static int SLOW = 1;public static int MEDIUM = 2;public static int FAST = 3;private int speed = SLOW;private boolea n on = false;private double radius = 5;private Stri ng color = white;public Fan 1() public int getSpeed() retur n speed;public void setSpeed(i nt n ewSpee

38、d) speed = n ewSpeed;public boolea n isOn() return on;public void set On( boolea n trueOrFalse) this. on = trueOrFalse;public double getRadius() return radius;public void setRadius(double n ewRadius) radius = n ewRadius;public Stri ng getColor() retur n color;public void setColor(Stri ng n ewColor)

39、color = n ewColor;public Stri ng toStri ng() retur n speed + speed + n+ color + color + n+ radius + radius + n+ (on) ? fan is on : fan is off);、(二次方程式)為二次方程式ax2 + bx + c = 0設(shè)計一個名為 QuadraticEquation 的類。這個類包括;代表三個系數(shù)的私有數(shù)據(jù)域a、b和c。一個參數(shù)為a、b和c的構(gòu)造方法。a、b、c的三個get 方法。一個名為getDiscriminant()的方法返回判別式,b2-4ac。一個名為get

40、Root1 ()和getRoot2 ()的方法返回等式的兩個根:這些方 法只有在判別式為非負數(shù)時才有用。如果判別式為負,這些方法返回0。畫出該類的UML圖。實現(xiàn)這個類。編寫一個測試程序,提示用戶輸入a、b、c的值,然后顯示判別式的結(jié)果。如果判別式為正數(shù),顯示兩個根;如果判別式為 0,顯示一個根; 否貝U,顯示“ The equation has no roots. ”(4)import java.util.Sca nner;public class Exercise8_10 public static void main( Stri ng args) Scanner in put = new

41、Sca nn er(System.i n);System.out.pri nt(E nter a, b, c:);double a = in put. nextDouble();double b = in put. nextDouble();double c = in put. nextDouble();QuadraticEquati on equati on = new QuadraticEquati on(a, b, c);double discrim inant = equati on. getDiscrim inan t();if (discrim inant = 0)System.o

42、ut.pri ntln (The roots are + equatio n.getRoot1()+ and + equatio n.getRoot2();class QuadraticEquati on private double a;private double b; private double c;public QuadraticEquati on( double n ewA, double n ewB, double n ewC) a = n ewA;b = n ewB;c = n ewC;double getA() return a;double getB() return b;

43、double getC() return c;double getDiscrim inan t() return b * b - 4 * a * c;double getRoot1() if (getDiscrimi nan t() 0)return 0;else return (-b + getDiscrimi nan t() / (2 * a);double getRoot2() if (getDiscrimi nan t() 0)return 0;else return (-b - getDiscrimi nan t() / (2 * a);試驗五 字符串和文本I/O1、編寫程序,提示用戶輸入一個社會保險號碼,它的格式是DDD-DD-DDDD其 中D是一個數(shù)字。程序會為正確的社保號顯示“ valid SSN,否則,顯示“ in valid SSN .(1)public class Exercise9_1 p

溫馨提示

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

評論

0/150

提交評論