1. 程式人生 > >【JavaSE練習】面向物件_練習_模擬汽車的自動駕駛系統

【JavaSE練習】面向物件_練習_模擬汽車的自動駕駛系統

 模擬汽車駕駛系統
 定義一個交通工具的類,包括:
 屬性:速度
 方法:設定速度,加速度
 測試類中例項化一個交通工具物件
 通過方法初始化speed,打印出來
 呼叫方法對速度進行改變

 當汽車停止執行時,程式結束執行

程式程式碼如下:

import java.util.Scanner;
/*
 * 模擬汽車駕駛系統
 * 定義一個交通工具的類,包括:
 * 		屬性:速度
 * 		方法:設定速度,加速度
 * 測試類中例項化一個交通工具物件
 * 通過方法初始化speed,打印出來
 * 呼叫方法對速度進行改變
 * 當汽車停止執行時,程式結束執行
 */
class Car{
	//屬性
	private double speed;		//速度
	
	//get,set方法
	public void setSpeed(double speed) {
		this.speed = speed;
	}
	public double getSpeed() {
		return speed;
	}
	
	//加速度
	public void speedUp(double speedUp, double timeUp) {
		System.out.println("--------------------------------------");
		
		/*
		 * 判斷加速度為正,加速;為負,減速;否則勻速
		 */
		if (timeUp < 0) {
			System.out.println("輸入時間錯誤!(時間不能小於0)");
			return;
		} 
		
		if (speedUp > 0 && timeUp != 0) {
			
			//加速度大於0,汽車正在加速
			this.speed += timeUp * speedUp;		//計算加速後的速度
			System.out.println("汽車加速中,加速度為"+speedUp+"km/h/s,加速時間為"+timeUp+"s,加速結束車速為:"+this.speed+"km/h");
		
		} else if (speedUp == 0 || timeUp == 0){
			
			//加速度為0,速度不變
			System.out.println("汽車勻速前進,車速為"+this.speed);
		
		} else {
			
			//首先,計算汽車停止所需要的時間
			double time = Math.abs(this.speed / speedUp);
			
			if (time > timeUp) {
				
				this.speed += timeUp * speedUp;	//計算減速後的速度
				System.out.println("汽車減速中,加速度為"+speedUp+"km/h/s,減速時間為"+timeUp+"s,減速結束車速為:"+this.speed+"km/h");
			
			} else {
				
				System.out.println("汽車減速中,加速度為"+speedUp+"km/h/s,減速時間為"+timeUp+"s,"+time+"s後,汽車停止前進");
				System.exit(0);		//汽車停止前進,結束程式執行
			
			}
		}
	}
}
public class Deom01 {
	
	public static void main(String[] args) {
		
		//鍵盤輸入
		Scanner sc = new Scanner(System.in);
		
		//設定並獲取初速度
		System.out.println("請輸入汽車的初始速度:");
		
		//建立物件
		Car car = new Car();	
		car.setSpeed(sc.nextDouble());
		
		System.out.println("--------------------------------------");
		System.out.println("汽車的初始速度為:"+car.getSpeed()+"km/h");
		
		//建立一個迴圈系統,條件表示式為true,一直迴圈
		while (true) {
			
			//獲取加速度和加速時間
			System.out.println("--------------------------------------");
			System.out.println("請輸入加速度和加速時間:(空格隔開)");
			car.speedUp(sc.nextDouble(), sc.nextDouble());
		
		}
	}
}

執行結果如下


當車速為0時,程式停止執行,可自行測試