日期:2014-05-20 浏览次数:21073 次
import java.util.Scanner;
public class Transport implements method
{
public void truck()
{
Scanner scan = new Scanner(System.in);
System.out.println("请输入距离:");
int distance = scan.nextInt();
System.out.println("请输入重量:");
int height = scan.nextInt();
int count =height*distance*120;
if(distance>1000)
{
System.out.println("太远了,拒载");
}
else if(height>60)
{
System.out.println("太重了,拒载");
}
else
{
System.out.println("运费是:"+count);
}
}
public void train()
{
Scanner scan = new Scanner(System.in);
System.out.println("请输入距离:");
int distance = scan.nextInt();
System.out.println("请输入重量:");
int height = scan.nextInt();
if(distance <=900)
{
int count = distance*height*250;
System.out.println("运费是:"+count);
}
else
{
int count = distance*height*300;
System.out.println("运费是:"+count);
}
}
public void air()
{
Scanner scan = new Scanner(System.in);
System.out.println("请输入距离:");
int distance = scan.nextInt();
System.out.println("请输入重量:");
int height = scan.nextInt();
if(distance<=500)
{
int count = distance*height*750;
System.out.println("运费是"+count);
}
else
{
System.out.println("太重了,拒载");
}
}
}
public interface method
{
public void truck();
public void train();
public void air();
}
Scanner san = new Scanner(System.in);
Integer transWay = san.nextInt(); //1.by truck、2.by train、3.by air
Transport tr = Transport();
if(transWay == 1){
tr.truck();
}else if(transWay == 2){
tr.train();
}else if(transWay == 3){
tr.air();
}
------解决方案--------------------
for example
interface Transport { //定义接口
int TRUCH = 0;
int TRAIN = 1;
int AIRPLANE = 2;
double cacl(double weight, double distance);
}
class Truck implements Transport { //实现接口
public double cacl(double weight, double distance) {
if (weight > 60 || distance > 1000) return -1;
return weight * distance * 120;
}
}
class Train implements Transport {
public double cacl(double weight, double distance) {
if (distance > 900) return weight * distance * 300;
return weight * distance * 250;
}
}
class Airplane implements Transport {
public double cacl(double weight, double distance) {
if (distance < 500) return -1;
return weight * distance * 750;
}
}
public class Test { //使用接口
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("please slelect transport[1:truck/2:train/3:airplane] or input [quit] to exit.");
String method = sc.nextLine();
if ("exit".equals(method)) {break;}
if (!method.matches("[1-3]")) {
System.out.println("error input, try again.");
continue();
}
System.out.println("please input weight");
String weight = sc.nextLine();
if (!weight.matches("\\d+([.]\\d+)?")) {
System.out.println("error input, try again.");
continue();
}
System.out.println("please input distance");
String distance = sc.nextLine();
if (!weight.matches("\\d+([.]\\d+)?")) {
System.out.println("error input, try again.");
continue();
}
Transport tp = getTransport(Integer.valueOf(method));
double money = tp.cacl(Double.valueOf(weight), double.valueOf(distance));
System.out.println("money=%.2f", money);
}
}
public static Transport getTransport(int transport) {
if (transport == Transport.TRUCK) {return new Truck();}
else if (transport == Transport.TRAIN) {return new Train();}
else {return new Airplane();}
}
}