1. 程式人生 > >JAVA《第一次作業》

JAVA《第一次作業》

遊戲 OS ack 學習總結 switch print 年份 誤差 AC

(一)學習總結:
1.在java中通過Scanner類完成控制臺的輸入,查閱JDK幫助文檔,Scanner類實現基本數據輸入的方法是什麽?不能只用文字描述,一定要寫代碼,通過具體實例加以說明。

package study;

import java.util.Scanner;

public class Study {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int x;
        Scanner input = new Scanner(System.in);
        x = input.nextInt();
        System.out.println(x);
    }

}

2.Random類和Math類的random()方法都能產生隨機數,這兩種方式有什麽區別,各有什麽特點呢?查閱JDK幫助文檔,並舉例加以說明。
(1):Math類的random()只能返回0-1之間的double數值,如果需要20-30需要放大10倍變為0-10之間的double數值,之後再加上10並強制轉換成int數值。
(2):Random類是工作Random類的相關方法,有多種類型的隨機值的獲取方法,如nextBoolean()、 nextInt()等。
3.3.運行下列程序,結果是什麽?查閱資料,分析為什麽。
結果為不等於0.3。
原因是因為計算機計算double類型數據時會產生誤差。
(二)實驗總結:
1.看商品猜價格

package study;

import java.util.Random;
import java.util.Scanner;

public class Study {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int count,score,i;
        String c=null;
        Scanner input=new Scanner(System.in);
        do
        {
            Random arr=new Random(); 
            int arr1 = arr.nextInt(100)+1;
            count=1;
            System.out.println ("請輸入商品價格,最多可以猜5次!");
            int price=input.nextInt();
            for(i=0;i<5;i++)
            {
                if (price>arr1)
                {
                     System.out.println ("太大了,請重新輸入!");  
                     count++;
                }
                else  if (price<arr1)
                {
                     System.out.println("太小了,請重新輸入!");
                     count++;
                }
                else if (price==arr1)
                {
                    System.out.println("恭喜你,答對了!");
                    break;
                }
                price=input.nextInt();
                
               if (count==5)
               {
                   System.out.printf("5次都沒猜對,正確結果是%d\n",arr1);
                   break;
               }
            }
            score=100-count*10;
            System.out.printf ("一共猜錯了%d 次,您的得分為%d",count,score);
            System.out.println ("繼續下一輪遊戲嗎?Y(y)orN(n)");
            c=input.next();
            }
        while(c.equals("y"));
    }

}

2.萬年歷

package calender;

import java.util.Scanner;

public class Calender {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
        int i,h=0,n,year,year1,month,zong = 0,sum,sum1,sum2;
        Scanner input = new Scanner(System.in);
        while (true) {
            System.out.println("請輸入年份");
            year = input.nextInt();
            System.out.println("請輸入月份");
            month = input.nextInt();
            if ((year < 1900 )||( month < 1) ||( month > 12)) {
                System.out.println("輸入錯誤,請重新輸入");
            } else {
               
            }
        sum1=0;
        sum2=0;
        year1=year;
        for(year1=year1-1;year1>=1900;year1--)
        {
            if(year1%4==0&&year1%100!=0||year1%400==0)
            {
                sum1=sum1+366;
            }
            else
            {
                sum1=sum1+365;
            }
        }
        for(i=1;i<month;i++)
        {
            if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
            {
                sum2=sum2+31;
            }
            else if(i==4||i==6||i==9||i==11)
            {
                sum2=sum2+30;
            }
            else if(i==2)
            {
                if(year%4==0&&year%100!=0||year%400==0)
                {
                    sum2=sum2+29;
                }
                else
                {
                    sum2=sum2+28;
                }
            }
        }
        sum=sum1+sum2;
        System.out.println(year+"年"+month+"月");
        System.out.println("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六\n");
        switch(sum%7)
        {
            case 0:System.out.printf("\t");h=2;break;
            case 1:System.out.printf("\t\t");h=3;break;
            case 2:System.out.printf("\t\t\t");h=4;break;
            case 3:System.out.printf("\t\t\t\t");h=5;break;
            case 4:System.out.printf("\t\t\t\t\t");h=6;break;
            case 5:System.out.printf("\t\t\t\t\t\t");h=7;break;
            case 6:h=1;break;
        
        }
    
        if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
        {
            zong=31;
        }
        else if(month==4||month==6||month==9||month==11)
        {
            zong=30;
        }
        else if(month==2)
        {
            if(year%4==0&&year%100!=0||year%400==0)
            {
                zong=29;
            }
            else 
            {
                zong=28;
            }
        }
        for(n=1;n<=zong;n++,h++)
        {
            System.out.printf("  %2d    ",n);
            if(h%7==0)
            {
                System.out.printf("\n");
            }
        }
        System.out.printf("\n");
}
}
}

JAVA《第一次作業》