-------------------------------------------------------------------------------------------------------
import java.util.ArrayList
import java.util.Arrays
import java.util.List
public class test {
public static void main(String[] args) {
Car[] a = new Car[] { new WagonCar("金杯", 80000, "金杯"), new WagonCar("黄海", 180000, "黄海"), new SUVCar("宝马X5", 280000, "宝马") }
System.out.println("名称老磨\t价格\t品牌\t类型\t折价"渣州)
System.out.println("排如含蔽序前:")
for (Car c : a) {
System.out.println(c.toString())
}
List<Car>list = getSorted(a)// 排序
System.out.println("排序后:")
for (Car c : list) {
System.out.println(c.toString())
}
}
// 对Car数组的排序方法
public static List<Car>getSorted(Car[] a) {
List<Car>sortedList = new ArrayList<Car>(a.length)
Arrays.sort(a)
for (Car c : a) {
sortedList.add(c)
}
return sortedList
}
}
abstract class Car implements Comparable<Car>{// 实现这个接口可以自带比较方法
protected String name
protected int price
private String brand
protected int discount// 折旧率
public Car(String name, int price, String brand) {
super()
this.name = name
this.price = price
this.brand = brand
}
public String getName() {
return name
}
public void setName(String name) {
this.name = name
}
public int getPrice() {
return price
}
public void setPrice(int price) {
this.price = price
}
public String getBrand() {
return brand
}
public void setBrand(String brand) {
this.brand = brand
}
public abstract int depreciation()
@Override
public int compareTo(Car car) {// 自带的比较方法
return depreciation() - car.depreciation()
}
public abstract String getType()
@Override
public String toString() {
return name + "\t" + price + "\t" + brand + "\t" + getType() + "\t" + depreciation()
}
}
// 越野车
class SUVCar extends Car {
public SUVCar(String name, int price, String brand) {
super(name, price, brand)
discount = 10
}
public int depreciation() {
return price * discount / 100
}
public String getType() {
return "越野车"
}
}
// 旅行车
class WagonCar extends Car {
public WagonCar(String name, int price, String brand) {
super(name, price, brand)
discount = 15
}
public int depreciation() {
return price * discount / 100
}
public String getType() {
return "旅行车"
}
}
-------------------------------------------------------------------------------------------------------
运行结果:
名称 价格 品牌 类型 折价
排序前:
金杯 80000 金杯 旅行车 12000
黄海 180000 黄海 旅行车 27000
宝马X5 280000 宝马 越野车 28000
排序后:
金杯 80000 金杯 旅行车 12000
黄海 180000 黄海 旅行车 27000
宝马X5 280000 宝马 越野车 28000
汽车丢了要赶紧报案处理,交由公安部门寻找。警察会根困侍据监控、车牌、以及GPS定位帮你找。
向警方提供关于汽车车牌号、样式、颜色、款型、最后停放处等证据,配合公安部搜索。
车辆如果已经买了车辆盗抢险,尽早办理理赔,将财产损失降到最低。
汽车丢了程序办理:
一、及时办理报案手续务必保留事故现场,并在24小时内向公安刑侦部门(110)报案。
二、在案件发生地的市级报刊刊登寻车启事,保存当期报纸;到车辆管理部门开具未破案证明。
三、提供相关材料 保险单正本、出险通知单、损失清单、车钥匙、行驶证及副卡原件、驾驶证复印件、购车原始发票、附加费凭证、登报寻车启事、停车场证明、停车费收据正本、权益转让书、公安报案受理单、公安刑侦部门3个月未破案证明、车辆管理部门封档证明(或失窃车辆牌证注销登记表)和养路费报停证明。
四、估算损失 在被盗抢3个月之内找回的车辆归漏尺困被保险人,保险公司按实际修复费用进行赔偿;当全车被盗3个月仍未找回时,保险公司根据条款规定,按车辆出险当时的实际价值(即该车出险当时的新车购置价减去该车已使用年限的折旧额)赔偿,并进行20%的绝对免赔率。如果被保险人不能提供行驶证、购车原始发票、附加费凭证,每返念少一项,增加0.5%的免赔率。 保险公司理赔后,如果被盗车辆又找回来,保险公司可将车辆返还给保户,并收回相应的赔款;如果保户不愿收回原车,则车辆的所有权归保险公司。
十字路口有四条支道,每道支道上停着等着开往其它三条支道的车辆,每一个时间片段内只允许一条支道上的车辆行驶。程序整体框架设计上可以采取事件驱动方式比较简单,即程序的主循环体每执行一次表示经历了一个时间片段,在这段时间内要计算四条支道上又增加了几辆车,有几辆车离开了十字路口,注意每随机产生一辆车时至少要包括它在哪条支道上出现要开往哪条支道等,或者反过来在这个时间片断内某条支道上出现了几辆开往特定支道的车辆。
不清楚你要模拟到何种程度,车辆在过十字路的时间可否忽略不计?车辆排队的长度是否也要考虑?不会说要用图形界面形象地演示吧?
如果你的模型足够简单,十字路口被简化成两条相交的直线,那么你只需要一组简单的对象(如12个整型变量)足以表征状态!当然可以还需要几个变量用于统计历史数据。
然而现实世界是足够复杂的,举个简单的案例:某个支道上已经排了很长的车队,交通灯指示当前这个支道上的辆车可以通行了,等你前面的车都开过了十字路口,终于轮到你的时候,时间已到红灯已亮!更为复杂的是交通灯的控制为了避免这种情况可能就不是等时间间隔地轮换了。车辆开开停停不是匀速运动,这点你也该很清楚的。
另外提醒你“车辆的随机出现”,不要以为只有一种均匀分布的随机数产生方式!通过一些公式可以滚碰换算出泊松分布什么的...
记住这是一个很有意思局樱的算法设计课题,不要受OOP思潮的毒害,动不动就想到类什么的,我们要关心的是框架设计和流程控制。把它当作是几何题来理解更是可笑至极!
程序流程上还可桐备丛以设计得更复杂些,就是用多线程去模拟多辆车,用事件去模拟交通灯,如果你愿意程序可以采取时间驱动的方式运作,更为接近现实世界。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)