日期:2014-05-20 浏览次数:20882 次
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();} } }