日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

Java作业(1)

發(fā)布時(shí)間:2025/6/15 java 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java作业(1) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

(一)學(xué)習(xí)總結(jié)
1.在java中通過(guò)Scanner類完成控制臺(tái)的輸入,查閱JDK幫助文檔,Scanner類實(shí)現(xiàn)基本數(shù)據(jù)輸入的方法是什么?不能只用文字描述,一定要寫代碼,通過(guò)具體實(shí)例加以說(shuō)明。
Scanner.的用法主要有以下的幾種方法
1.Scanner.nextLine(); //讀取下一行(包括空格,tab等)
2.Scanner.next()://String
3.Scanner.nextInt()://int
4.Scanner.nextFloat()//float
5.Scanner.nextBoolean()//boolean
6.Scanner.nextDouble()//double
7.Scanner.nextByte()//byte
8.Scanner.nextShort()//short
9.Scanner.char b =s.next().charAt(0);//char

以代碼的方式位

...

package shuru; import java.util.Scanner; public class shuru {public static void main(String[] args) {// TODO Auto-generated method stubScanner input=new Scanner(System.in);String a =input.nextLine();//讀取下一行(包括空格,tab等)System.out.println(a) ;String b =input.next();//StringSystem.out.println(b) ;int c =input.nextInt();//intSystem.out.println(c) ;float d=input.nextFloat();//floatSystem.out.println(d) ;boolean e=input.nextBoolean();//boolean System.out.println(e) ;double f=input.nextDouble();//doubleSystem.out.println(f) ;byte g=input.nextByte();//byteSystem.out.println(g) ;short h=input.nextShort();//shortSystem.out.println(h) ;char i =input.next().charAt(0);//charSystem.out.println(i) ; }}

...

運(yùn)行結(jié)果

2.Random類和Math類的random()方法都能產(chǎn)生隨機(jī)數(shù),這兩種方式有什么區(qū)別,各有什么特點(diǎn)呢?查閱JDK幫助文檔,并舉例加以說(shuō)明。

答:
Math.random()返回的只是從0到1之間的小數(shù),如果要50到100,就先放大50倍,即0到50之間,這里還是小數(shù),如果要整數(shù),就強(qiáng)制轉(zhuǎn)換int,然后再加上50即為50~100.
最終代碼:(int)(Math.random()*50) + 50
Random類產(chǎn)生的隨機(jī)數(shù),在其最大值范圍內(nèi),按照概率均勻分布的。也就是說(shuō),兩個(gè)種子數(shù)相同的Random對(duì)象,第一次生成的隨機(jī)數(shù)字完全相同,第二次生成的隨機(jī)數(shù)字也完全相同。
以下程序都是產(chǎn)生0-50的隨機(jī)數(shù)

...

package suijishu;import java.util.Random;public class suijishu {public static void main(String[] args) {Random rand=new Random() ;int x=rand.nextInt(100)+1 ;double y=Math.random()*50;int z=(int)(Math.random()*50); System.out.println(x) ;System.out.println(y) ;System.out.println(z) ;}}

...

運(yùn)行結(jié)果 x 是0-49的整數(shù),y是0-50的雙精度小數(shù),z是0-50的整數(shù)。
3.運(yùn)行下列程序,結(jié)果是什么?查閱資料,分析為什么。

public class Test {public static void main(String args[]) { double a = 0.1;double b = 0.1;double c = 0.1;if((a + b + c) == 0.3){System.out.println("等于0.3");}else {System.out.println("不等于0.3");}} }

為了處理精度損失的問題,可以使用java.math.BigDecimal類,查閱JDK幫助文檔或教材p378,對(duì)上述程序進(jìn)行修改。

答:程序運(yùn)行結(jié)果是:不等于0.3
原因:在Java使用分?jǐn)?shù)和指數(shù)來(lái)表示浮點(diǎn)類型的數(shù)據(jù)時(shí),在加減的過(guò)程中,產(chǎn)生了浮點(diǎn)型誤差,不能使用“==”來(lái)比較浮點(diǎn)類型數(shù)據(jù)的運(yùn)算結(jié)果。

...

package test; import java.math.BigDecimal; public class test { public static void main(String args[]) { BigDecimal a = new BigDecimal(0.1);BigDecimal b = new BigDecimal(0.1);BigDecimal c = new BigDecimal(0.1);BigDecimal d = new BigDecimal(1);System.out.println(a.add(b).add(c));if(a.add(b).add(c).divide(d,2,BigDecimal.ROUND_HALF_UP).doubleValue()==0.3){System.out.println("等于0.3");}else {System.out.println("不等于0.3");} }

}

...

4.本次學(xué)習(xí)要點(diǎn)中其他需要總結(jié)的內(nèi)容:因人而異,根據(jù)自己的學(xué)習(xí)情況,記錄難掌握或難理解的內(nèi)容,以及學(xué)有心得的內(nèi)容。還存在哪些問題,也可以提出來(lái),對(duì)于同學(xué)在博客中提出的問題,大家可以積極討論,互幫互學(xué)。
1.數(shù)組中的定義的double類型的運(yùn)算,時(shí)常忘記類型的轉(zhuǎn)換
2.運(yùn)用方法時(shí),變量的聲明混亂,為了方便把上面的方法復(fù)制下來(lái),把里面上次的變量也帶了下來(lái),而第二次的帶入的方法不跟第一次一樣,在最后檢查錯(cuò)誤的時(shí)候,反而浪費(fèi)時(shí)間。
3.數(shù)組的長(zhǎng)度用 數(shù)組名.length ,二維數(shù)組的一維空間長(zhǎng)度 數(shù)組名[ 行數(shù)].length。
4.“==”只能進(jìn)行數(shù)的比較,字符串的比較不能用,要用equal方法。若用”==“比較,比較的是地址。
(二)實(shí)驗(yàn)總結(jié)

  • 題目要求:
    程序設(shè)計(jì)思路:
    1.首先聲明import java.util.Scanner,import java.util.Random.以便于鍵盤的輸入和隨機(jī)數(shù)的產(chǎn)生。
    2.先建立String字符串str1=“yes”,以便于用戶選擇是否繼續(xù)進(jìn)行的標(biāo)準(zhǔn)。
    3.設(shè)計(jì)Price方法,用Random來(lái)建立隨機(jī)價(jià)格。
    4.運(yùn)用while循環(huán),次數(shù)從5開始遞減,Scanner來(lái)讀寫用戶所輸入的價(jià)格
    (1)如果猜的價(jià)格比真正的價(jià)格高,提示價(jià)格高,那么進(jìn)行下一次輸入。再進(jìn)行i--;
    (2)如果猜的價(jià)格比真正的價(jià)格低,提示價(jià)格低,那么進(jìn)行下一次輸入。再進(jìn)行i--;
    (3)如果猜的價(jià)格和真正的價(jià)格一樣,結(jié)束循環(huán)。
    (4)若i=0結(jié)束競(jìng)猜,退出循環(huán)。
    5.對(duì)i的值進(jìn)行比較,分別給出100,80,60,40,20,0分的判定。
    6.提示是否進(jìn)行游戲,輸入的字符串與str1比較,其中引用equal方法比較。
    (1)若相等,則繼續(xù)重新從2.項(xiàng)開始循環(huán)。
    (2)若不想等,則退出。
    7.輸出總得分和總次數(shù)。
  • 題目要求:
    程序設(shè)計(jì)思路:
    1.設(shè)計(jì)布爾型方法isLeap來(lái)判斷年份是閏年還是平年。
    2.設(shè)計(jì)整型方法days來(lái)判斷月份的天數(shù),其中2月的天數(shù)是29還是而是28,引用1的isLeap方法。
    3.設(shè)計(jì)整形方法totalDays來(lái)計(jì)算從1900年到所輸入年份月份的一號(hào)之前有多少天。其中天數(shù)的運(yùn)算引用了days方法判斷月份之前的天數(shù),以及引用isLeap方法來(lái)計(jì)算1900年到輸入年份之前的天數(shù)。
    4.在3中計(jì)算的總天數(shù)結(jié)余7再加1,來(lái)判斷所輸入年份月份的第一天是星期幾,利用制表符和for循環(huán)來(lái)輸出日歷,其中月份的天數(shù)再次引用days方法。
  • 題目要求:
    程序設(shè)計(jì)思路:
    1.設(shè)計(jì)了兩種評(píng)分的方法。一種是隨機(jī)數(shù)輸入,一種是手動(dòng)輸入。
    (1)隨機(jī)數(shù)輸入是聲明Random,產(chǎn)生隨機(jī)數(shù)填入score數(shù)組。
    (2)手動(dòng)輸入是靠Scanner進(jìn)行鍵盤的輸入。
    2.把數(shù)組的每行都進(jìn)行選擇排序,把最高分放到數(shù)組的最后位置。
    3.把數(shù)組的每行都進(jìn)行選擇排序,把最低分放到數(shù)組的倒數(shù)第二位置。
    4.把數(shù)組的每行的前八個(gè)分?jǐn)?shù)進(jìn)行平均分運(yùn)算,再放到score1數(shù)組中。
    5.把score數(shù)組的分?jǐn)?shù)進(jìn)行冒泡排序,輸出分?jǐn)?shù)排行榜。
    托管:
  • 轉(zhuǎn)載于:https://www.cnblogs.com/wgy774553994/p/8576252.html

    總結(jié)

    以上是生活随笔為你收集整理的Java作业(1)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。