年度交通管理违章系统java_JavaOO练习:违规管理系统

为交管局设计一个违规管理系统;要求记录违规车辆,驾驶员,处理交警信息;

分析:

1、对象:车辆、车辆型号、驾驶证、驾驶证分、车主姓名、罚款、驾驶证状态、扣分、违规

2、抽类:

TrafficControl交通管理类: 闯红灯扣分、罚款;乱停车扣分、罚款;超速扣分、罚款;未系安全带扣分、罚款;(后期可增加)

CarInformation车辆信息类: 属性:车辆型号、驾驶证、驾驶证分、车主姓名、罚款、驾驶证状态(车牌号待加入); 方法:查询车辆信息状态,判断驾驶证状态

interface接口TrafficRegulations违章:闯红灯,超速,乱停,未系安全带(。。。。可继续增加)

package com.lovo.violationManagementSystem.bean;

/**

* 定义一个标准:违章

* @author 侯熙

* @version 1.0

* @since jdk1.8.0_25

*/

public interface TrafficRegulations {

/**

* 闯红灯

*/

public void runRedLights();

/**

* 超速

* @param speed 当前速度

* @param limitedSpeed 限定速度

*/

public void overSpeed(double speed,double limitedSpeed);

/**

* 违章停车

*/

public void illegalParking();

/**

* 未系安全带

*/

public void fastenSeatBelt();

}

package com.lovo.violationManagementSystem.bean;

/**

* 交通管理

* @author 侯熙

* @version 1.0

* @since jdk1.8.0_25

*/

public class TrafficControl extends CarInformation implements TrafficRegulations{

/**

* 闯红灯扣分

*/

static final int RUN_RED_LIGHTS_SCORE = -6;

/**

* 闯红灯罚款

*/

static final int RUN_RED_LIGHTS_MONEY = -200;

/**

* 违规停车罚款

*/

static final int ILLEGAL_PARKING_MONEY = -200;

/**

* 未系安全带扣分

*/

static final int FASTE_NSEAT_BELT_SCORE = -2;

/**

* 未系安全带罚款

*/

static final int FASTE_NSEAT_BELT_MONEY = -200;

private int overSpeedScore;//超速扣分

private int overSpeedMoney;//超速罚款

/**

* 构造方法

* @param carName 车辆型号

* @param drivingLicence 驾驶证信息

* @param driver 驾驶员姓名

*/

public TrafficControl(String carName, int drivingLicence, String driver) {

super(carName, drivingLicence, driver);

// TODO Auto-generated constructor stub

}

@Override

public void runRedLights() {

// TODO Auto-generated method stub

this.score += RUN_RED_LIGHTS_SCORE;

this.money += RUN_RED_LIGHTS_MONEY;

}

@Override

public void overSpeed(double speed,double limitedSpeed) {

// TODO Auto-generated method stub

if (speed > limitedSpeed*(1+0.5)) {

this.overSpeedScore = -12;

this.overSpeedMoney = -2000;

}else if (speed > limitedSpeed*(1+0.2)) {

this.overSpeedScore = -6;

this.overSpeedMoney = -200;

}else if (speed > limitedSpeed) {

this.overSpeedScore = -3;

this.overSpeedMoney = -200;

}else{

this.overSpeedScore = 0;

this.overSpeedMoney = 0;

}

this.score += this.overSpeedScore;

this.money += this.overSpeedMoney;

}

@Override

public void illegalParking() {

// TODO Auto-generated method stub

this.money += ILLEGAL_PARKING_MONEY;

}

@Override

public void fastenSeatBelt() {

// TODO Auto-generated method stub

this.score += FASTE_NSEAT_BELT_SCORE;

this.money += FASTE_NSEAT_BELT_MONEY;

}

}

package com.lovo.violationManagementSystem.bean;

/**

* 车辆信息

* @author 侯熙

* @version 1.0

* @since jdk1.8.0_25

*/

public class CarInformation {

private String carName;

private int drivingLicence;

private String driver;

protected int score = 12;

protected int money = 0;

protected boolean status;

/**

* 构造方法

* @param carName 车辆型号

* @param drivingLicence 驾驶证信息

* @param driver 驾驶员姓名

*/

CarInformation(String carName,int drivingLicence,String driver){

this.carName = carName;

this.drivingLicence = drivingLicence;

this.driver = driver;

}

/**

* 重写to.String 输出车辆信息

*/

public String toString(){

if(setStatus()){

return "车辆型号:"+this.carName+"\n驾驶证:"

+this.drivingLicence+"\n驾驶员:"+this.driver+"\n驾照分:"+this.score+"\n罚金:"+this.money+"\n驾照作废,请重新学习";

}

return "车辆型号:"+this.carName+"\n驾驶证:"

+this.drivingLicence+"\n驾驶员:"+this.driver+"\n驾照分:"+this.score+"\n罚金:"+this.money;

}

/**

* 查询驾驶证是否有效,无效为true

* @return

*/

public boolean getStatus() {

return status;

}

/**

* 判断驾驶证是否有效

* @return 有效为false,无效为true

*/

public boolean setStatus() {

if(score <= 0){

this.status = true;

}

return this.status;

}

}

package com.lovo.violationManagementSystem.test;

import com.lovo.violationManagementSystem.bean.TrafficControl;

public class Test {

public static void main(String[] args) {

TrafficControl[] tra =new TrafficControl[4];

tra[0]= new TrafficControl("A8", 46546546, "li4");

tra[0].runRedLights();

tra[0].fastenSeatBelt();

System.out.println(tra[0]);

tra[0].overSpeed(120, 80);

System.out.println(tra[0]);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值