Java基礎 實驗一:簡單資料型別和流程控制
阿新 • • 發佈:2018-12-20
1.實驗目的 掌握識別符號的定義規則、表示式的組成、各種資料型別及其使用方法、各種運算子的使用及其優先順序控制。掌握分支結構,迴圈結構,continue,break,語句標號等內容。
2.實驗內容 (1)輸入一個三角形的3個邊長,檢查是否能構成一個直角三角形。 (2)任意從鍵盤輸入一個0到9999之間的數,判斷輸入的數是幾位數。 (3)鐵路運貨的運費與路程遠近及貨物的重量有關,設有如下的單位運費:
不足100千米,每噸每千米為1.0元
100千米以上,不足300千米,每噸每千米為0.9元
300千米以上,不足500千米,每噸每千米為0.8元
500千米以上,不足1000千米,每噸每千米為0.7元
1000千米以上,每噸每千米為0.6元
程式設計:對輸入的貨物重量和路程,計算相應的運費。 (4)用迴圈語句程式設計:求1~1000之間的偶數之和。 (5)程式設計求:1!+2!+3!+……+10!。
3.實驗要求 第(2)題加入異常處理機制;第(4)題用for和while迴圈各做一遍。
package exprimentfirst; import java.util.Scanner; public class ExprimentFirst { Scanner input = new Scanner(System.in); public static void main(String[] args) { ExprimentFirst demo = new ExprimentFirst(); demo.firstQuestion(); demo.secondQuestion(); demo.thirdQuestion(); demo.fourthQuestion(); demo.fifthQuestion(); } public static class RAT {//三角形類 private double a; private double b; private double c; void isTrueRAT(){//是否可以構成直角三角形 double temp; if(a<b){ temp=a; a=b; b=temp; } if(a<c){ temp=a; a=c; c=temp; } if(a*a-b*b-c*c==0)System.out.println("恭喜,您輸入的三條邊可以構成直角三角形。"); else System.out.println("失敗,您輸入的三條邊不可以構成直角三角形。"); }; } public void firstQuestion(){ System.out.println("這是問題一:****************************************"); RAT rat = new RAT(); System.out.print("請輸入三角形的三條邊:"); rat.a = input.nextDouble(); rat.b = input.nextDouble(); rat.c = input.nextDouble();3 rat.isTrueRAT(); } public void secondQuestion(){ System.out.println(); System.out.println("這是問題二:****************************************"); int a; int count=0; System.out.print("請輸入0~9999之間的整數(包括0和9999):"); a = input.nextInt(); if(a<0||a>9999){//異常處理 System.out.print("您輸入的資料不在0~9999之間,請重新輸入:"); a = input.nextInt(); } do{ count++; a=a/10; }while(a!=0); System.out.println("您輸入資料的位數為:"+count); } public void thirdQuestion(){ System.out.println(); System.out.println("這是問題三:****************************************"); double weight;//貨物重量(t) double distance;//路程(km) double freight = 0;//運費(元) System.out.print("請輸入貨物重量(t)和路程(km):"); weight = input.nextDouble(); distance = input.nextDouble(); if(distance <= 100)freight = weight * distance * 1.0; else if(distance > 100 && distance <= 300)freight = weight * distance * 0.9; else if(distance > 300 && distance <= 500)freight = weight * distance * 0.8; else if(distance > 500 && distance <= 1000)freight = weight * distance * 0.7; else if(distance > 1000)freight = weight * distance * 0.6; System.out.println("需要的運費為:"+freight+"元"); } public void fourthQuestion(){ System.out.println(); System.out.println("這是問題四:****************************************"); int i; int sum = 0; for(i = 2;i <= 1000;i += 2)sum += i; System.out.println("1~1000之間的偶數之和為(for版):"+sum); i = 2; sum = 0; while(i <= 1000){ sum += i; i += 2; } System.out.println("1~1000之間的偶數之和為(while版):"+sum); } public void fifthQuestion(){ System.out.println(); System.out.println("這是問題五:****************************************"); int i; int j; int temp; int sum = 0; for(i=1;i<=10;i++){ temp = 1; for(j=1;j<=i;j++){ temp = temp*j; } sum = sum+temp; } System.out.println("1!+2!+3!+……+10!的和為:"+sum); } }
測試結果一:
測試結果二: