2015.1.31(打车系统)

实现一次uber 打车
乘客 有三种不同的vip等级 打折力度一次递增
其中类有司机 乘客 和系统

public class Driver {
private String name;
private String phoneNumber;
private Car myCar;
private Passenger passenger;

public Driver(){

}

public Driver(String name, String phoneNumber) {
super();
this.name = name;
this.phoneNumber = phoneNumber;
}

public void take(){//接单
System.out.println("接到乘客" + this.passenger.getName());
}

public void drive(){
System.out.println("行驶从" + this.passenger.getStartAddress() + "到" + this.passenger.getTargetAddress() + "完成本行程");
this.passenger.setComplete(true);
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getPhoneNumber() {
return phoneNumber;
}

public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}

public Car getMyCar() {
return myCar;
}

public void setMyCar(Car myCar) {
this.myCar = myCar;
}

public Passenger getPassenger() {
return passenger;
}

public void setPassenger(Passenger passenger) {
this.passenger = passenger;
}

}

public class Passenger {
private String name;
private String phoneNumber;
private String startAddress;//出发地
private String targetAddress;//目的地
private int type;
private Driver myDriver;
private boolean isComplete = false;
private double distance;

public Passenger(){

}

public Passenger(String name, String phoneNumber, String startAddress,
String targetAddress, int type, double distance) {
super();
this.name = name;
this.phoneNumber = phoneNumber;
this.startAddress = startAddress;
this.targetAddress = targetAddress;
this.type = type;
this.distance = distance;
}

public void getCar(){
System.out.println("开始打车");
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getPhoneNumber() {
return phoneNumber;
}

public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}

public String getStartAddress() {
return startAddress;
}

public void setStartAddress(String startAddress) {
this.startAddress = startAddress;
}

public String getTargetAddress() {
return targetAddress;
}

public void setTargetAddress(String targetAddress) {
this.targetAddress = targetAddress;
}

public int getType() {
return type;
}

public void setType(int type) {
this.type = type;
}

public Driver getMyDriver() {
return myDriver;
}

public void setMyDriver(Driver myDriver) {
this.myDriver = myDriver;
}

public boolean getComplete() {
return isComplete;
}

public void setComplete(boolean isComplete) {
this.isComplete = isComplete;
}

public double getDistance() {
return distance;
}

public void setDistance(double distance) {
this.distance = distance;
}

}

package com.uber;

/**
* Date: 2016-1-31-下午1:55:05 Class_name: Uber.java Package_name: com.uber
* Author: ZhangYue Description:
*/
public class Uber {
private Passenger[] passengers = new Passenger[100];
private Driver[] drivers = new Driver[100];
private double normalRate = 1.0;
private double uVIPRate = 0.9;
private double sVIPRate = 0.7;
private double price = 1.0;
private int normalPassenger = 0;
private int uPassenger = 1;
private int sPassenger = 2;

public void assignDriver(Driver driver, Passenger pass) {//分配司机给乘客
System.out.println("委派最近的司机给乘客");
driver.setPassenger(pass);// 将乘客分配给该司机
pass.setMyDriver(driver);// 将司机分配给该乘客
}

public void calculateCost(Passenger pass) {//计算费用
if (pass != null && pass.getComplete()) {
int type = pass.getType();
double basicCost = pass.getDistance() * this.price;

if (type == normalPassenger) {
basicCost *= this.normalRate;
} else if (type == uPassenger) {
basicCost *= this.uVIPRate;
} else if (type == sPassenger) {
basicCost *= this.sVIPRate;
}

System.out.println("本次行程收取" + pass.getName() + basicCost
+ "元,本次行程结束,欢迎下次使用Uber");
}
}

}

public class Test {

/**
* @param args
*/
public static void main(String[] args) {
Uber uber = new Uber();
Driver driver = new Driver();
Passenger passenger = new Passenger();

passenger.getCar();

uber.assignDriver(driver, passenger);

driver.take();

driver.drive();

uber.calculateCost(passenger);

}

}

时间: 2024-08-16 06:40:06

2015.1.31(打车系统)的相关文章

2015.7.31学习内容

2015.7.31学习内容 循环结构——for循环 1.什么时候选用for循环结构? 当循环次数固定的时候,我们首选for循环 2.for循环结构的基本语法和执行顺序是什么? (1).for语法 for(初始变量;循环条件;迭代变量){ } for(int i=0;i<100;i++){ //循环操作 } (2).死循环:如果一个循环没有终止条件,那么该程序将会无休止的执行下去,直到我们强行结束掉该程序 ,程序才强行退出,那么这样的循环,称为死循环. (3).break 当我们想要在循环过程中,

基于WEB的JAVA出租车打车系统

每天记录学习,每天会有好心情.*^_^* 今天记录的项目是出租车打车系统,这个项目是这么回事:为了适应新型出租车管理体制,设计了一个基于Web平台的出租车管理系统方案.介绍了该系统的总体框架,除常见功能外,还整合了短信平台.GPS监控平台.权限管理等功能.最终的测试表明了该系统的功能满足新型出租车管理系统..做这个项目的时候,我们需要用到SSM(MYECLIPSE)框架,开发工具选用最拿手的MYECLIPSE.出租车打车系统项目是一个 后台项目.开发系统时,需求分析是必不可少的一个环节.出租车打

March 3rd 2015 &lt;11:31&gt;

spoj 1167 <MINCOUNT> http://www.spoj.com/problems/MINCOUNT/ 一个高度为h的正立三角形,由硬币拼成,现在把这个三角形通过一动硬币位置变成倒立等大的三角形,求最少移动硬币数. 其实也就是求正立与倒立两个三角形最小不重叠部分,列几个例子我发现,重叠部分最大是三分之二,即不重叠的就是三分之一.高度为h的三角形共由[h*(h+1)]/2个硬币组成,它的三分之一=[h*(h+1)]/6.但是数据较大,会溢出.我们使h=2a+b,h+1=3c+d.

2015.3.31日记

好久没写日记了,今天就来记下近期的境况吧. 2015.3.16日来的公司,有2周多了.公司现在有两个项目,一个就是公司自己的项目(用到了比较前沿的一些技术,有:nosql(Mongodb).AngularJS.Spring.JPA.Spring-data等等技术.而另一个项目则是在Salesforce上面做GPM(全球定价系统)项目,用到Apex语言(salesforce的专属语言,在salesforce平台上运行),很多地方跟java类似,这是一个外国公司做的产品,有很多的工程师在上面做,而且

2015第31周三Jetty

Jetty 的基本架构 Jetty 目前的是一个比较被看好的 Servlet 引擎,它的架构比较简单,也是一个可扩展性和非常灵活的应用服务器,它有一个基本数据模型,这个数据模型就是 Handler,所有可以被扩展的组件都可以作为一个 Handler,添加到 Server 中,Jetty 就是帮你管理这些 Handler. Jetty 的基本架构 下图是 Jetty 的基本架构图,整个 Jetty 的核心组件由 Server 和 Connector 两个组件构成,整个 Server 组件是基于 H

2015.3.30 Linux系统软件包管理

1.rpm工具 rpm Redhat Package Manager,rpm包名字由-和.分成了若干部分,如abrt-cli-2.0.8-15.e16.centos.i686.rpm,abrt-cli是包名,2.0.8-15是版本号,e16指的是redhat企业版6,centos指的是这是在centos上用的,i686指的是平台类型.有些rpm包没有写具体的平台而是noarch,这代表这个rpm包没有硬件平台限制. 安装一个包:rpm -ivh ... -i安装  -v可视化  -h显示安装进度

2015.12.31 iOS程序准备(developer.apple.com)

?程序启动的过程    .在桌面找到相应的应用的图标 点击图标    .main函数 ?UIApplication类 Every app has exactly one instance of UIApplication 每个应用程序都只有一个UIApplication类的实例对象 运行起来的应用程序就是一个UIApplication对象. ?UIApplicationMain 创建UIAppication对象的一个单例对象(singleton) The role of your app’s a

2015.10.31

这周我们换了新的校区和老师,新老师的讲课方式和方法和之前的老师有很大的区别.我们也还是能够适应,新老师也讲了一些我们之前没有学习到的知识.对这些没有学习到的知识也没有完全的掌握. 对于刚刚了解到的知识也只能做更多的练习才能完全的掌握,不懂的能多和同学们一起探讨.了解. 对于新的一周希望能够学习到更多的,把老师的讲的掌握好.

2015第31周六

猴子想变成人,它知道要变成人要砍掉尾巴,猴子决定砍掉尾巴.动手前猴子被三件事困住了: 1.砍尾巴的时候会不会很疼? [改变是有一定痛苦的] 2.砍了后身体还能不能保持灵活性? [改变会有一定风险] 3.活了这么久,一直以来就和它一起,跟了很多年了,不忍抛弃它. [改变在情感上会有些许难受] 所以,今天的猴子也没有变成人! 要成就一些事就必须舍弃另一些事! 舍不得你所拥有的,就得不到更好的! 改变,也许会痛苦一阵子! 不改变,就可能痛苦一辈子! 不要想到不劳而获要想改变命运就得先改变自己.