Java實驗二:類程式設計實驗

Cloudservice發表於2024-03-22

1.編寫一個代表三角形的類(Triangle.java)

其中,三條邊a,b,c(資料型別為double型別)為三角形的屬性,該類封裝有求三角形的面積和周長的方法。分別針對三條邊為3、4、5和7、8、9的兩個三角形進行測試(給定三條邊已經滿足三角形構成條件),輸出面積和周長保留2位小數。

提示:三角形面積計算公式為

s = (a+b+c)/2

area = s * (s - a) * (s - b) * (s - c)

輸出樣例結果如下:
image

package step1;
 
 
import java.lang.Math;
import java.util.Scanner;
 
 
public class Triangle {
	double a,b,c;
	
	public Triangle(double a, double b, double c) {
		this.a = a;
		this.b = b;
		this.c = c;
	}
 
	public double getArea() {
		double s = (a + b + c) / 2;
		return Math.sqrt(s * (s - a) * (s - b) * (s - c));
	}
 
	public double getPerimeter() {
		return a + b + c;
	}
 
	public static void main(String[] args) {
		Scanner input =new Scanner(System.in);
		double a = input.nextDouble();
		double b = input.nextDouble();
		double c = input.nextDouble();
    	Triangle t1 = new Triangle(a, b, c);
    	System.out.printf("三角形(%.1f,%.1f,%.1f)的面積為:%.2f\n",t1.a,t1.b,t1.c,t1.getArea());
    	System.out.printf("三角形(%.1f,%.1f,%.1f)的周長為:%.2f",t1.a,t1.b,t1.c,t1.getPerimeter());
	}
 
}

2.編寫一個圓環類(Ring.java)。

圓環類有3個資料成員,分別是內半徑innerRadius,外半徑outerRadius和顏色color,這些屬性透過get和set方法進行封裝,該類封裝有求圓環面積、外圓周長和內圓周長的方法。

① 透過構造方法傳遞內半徑5,外半徑8,顏色為red,輸出測試結果;

② 將內半徑改為4,外半徑改為6,顏色改為blue後,再次輸出測試結果。

③ 所有輸出結果要求保留2位小數。

輸出樣例結果如下:
image

package step2;
 
import java.lang.Math;
 
public class Ring {
    double innerRadius, outerRadius;
    String color;
 
    public Ring(double innerRadius, double outerRadius, String color) {
        this.innerRadius = innerRadius;
        this.outerRadius = outerRadius;
        this.color = color;
    }
 
    public double getArea() {
        return Math.PI * (outerRadius * outerRadius - innerRadius * innerRadius);
    }
 
    public double getInnerPerimeter() {
        return 2 * Math.PI * innerRadius;
    }
 
    public double getOuterPerimeter() {
        return 2 * Math.PI * outerRadius;
    }
    
    public void setInnerRadius(double innerRadius){
    	this.innerRadius = innerRadius;
    }
    
    public void setOuterRadius(double outerRadius){
    	this.outerRadius = outerRadius;
    }
    
    public void setColor(String color){
    	this.color = color;
    }
    
 
    public static void main(String[] args) {
    	Ring ring = new Ring(5, 8, "red");
        System.out.printf("圓環的內半徑: %.1f\n",ring.innerRadius);
        System.out.printf("圓環的外半徑: %.1f\n",ring.outerRadius);
        System.out.println("圓環的顏色: "+ring.color);
        System.out.printf("圓環的面積: %.2f\n",ring.getArea());
        System.out.printf("圓環的外圓周長: %.2f\n",ring.getOuterPerimeter());
        System.out.printf("圓環的內圓周長: %.2f\n",ring.getInnerPerimeter());
        System.out.println();
        ring.setInnerRadius(4);
		ring.setOuterRadius(6);
		ring.setColor("blue");
		System.out.printf("圓環的內半徑: %.1f\n",ring.innerRadius);
        System.out.printf("圓環的外半徑: %.1f\n",ring.outerRadius);
        System.out.println("圓環的顏色: "+ring.color);
        System.out.printf("圓環的面積: %.2f\n",ring.getArea());
        System.out.printf("圓環的外圓周長: %.2f\n",ring.getOuterPerimeter());
        System.out.printf("圓環的內圓周長: %.2f",ring.getInnerPerimeter());
		
        
 
    }
}

3.編寫一個學生類(Student.java),

包含的屬性有學號、姓名、年齡。將所有學生儲存在一個陣列中,自擬資料,用陣列的初始化方法給陣列賦值,並實現如下操作。

① 按陣列中順序顯示所有學生資訊。

② 將所有學生年齡增加1歲。

③ 顯示所有年齡大於20歲的學生資訊。

輸出樣例結果如下:

image

package step3;
 
 
 
public class Student {
	int id;
	int age;
	String name;
 
	public Student(int id, int age, String name) {
		this.id = id;
		this.age = age;
		this.name = name;
	}
 
	public void increaseAge() {
		this.age += 1;
	}
 
	public static void main(String[] args) {
		// 建立並初始化學生陣列
		Student s1 = new Student(1, 18, "小明");
		Student s2 = new Student(2, 20, "小張");
		Student s3 = new Student(3, 19, "小李");
		Student s4 = new Student(4, 18, "小王");
		Student s5 = new Student(5, 20, "小趙");
 
		Student s[] = { s1, s2, s3, s4, s5 }; // 給物件陣列賦值
		System.out.println("班級學生名單如下:");
 
		// 顯示所有學生資訊
		for (Student student : s) {
			System.out.println("學號:" + student.id + ",姓名:" + student.name + ",年齡:" + student.age);
		}
 
		// 將所有學生年齡增加1歲
		System.out.println("所有學生年齡加 1 後...");
		for (Student student : s) {
			student.increaseAge();
		}
		for (Student student : s) {
			System.out.println("學號:" + student.id + ",姓名:" + student.name + ",年齡:" + student.age);
		}
 
		// 顯示所有年齡大於20歲的學生資訊
		int number = 0;
		for (Student student : s) {
			if (student.age > 20) {
				number++;
			}
		}
		System.out.println("大於 20 歲人數是:" + number);
	}
}

相關文章