欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > > 文章正文

【JavaSE练习】面向对象_练习_模拟汽车的自动驾驶系统,javase面向对象

来源: javaer 分享于  点击 26255 次 点评:257

【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时,程序停止运行,可自行测试


相关文章

    暂无相关文章

用户点评