接口实现,是怎么优化啊
修炼的隐者 2019-03-20 05:01:10 接口实现 飞机票定价系统的一个需求,用白盒测试方法进行测试。。需求如下:
乘客可以免费托运重量不超过30kg (含30kg)的行李。
假设行李超过30kg,其收费标准为:
头等舱国内乘客,超重部分每千克收费4元。
其他舱国内乘客,超重部分每千克收费6元。
外国乘客:超重部分每千克比国内乘客多1倍。
残疾乘客:为正常价格的半价。
行李重量超出部分,不满1kg的按照1kg计算。
import java.util.Scanner;
public class Test02 {
public void cabin() {
double sum = 0;//行李费
double kg = 0.0;//超过30kg的行李重量
Scanner scanner = new Scanner(System.in);
System.out.print("中国乘客选1,外国乘客选2 ");
String people = scanner.next();
//Scanner cabin = new Scanner(System.in);
Scanner cabin1 = new Scanner(System.in);
System.out.print("头等舱乘客选3,其他舱乘客选4 ");
String cabin = cabin1.next();
Scanner dis1 = new Scanner(System.in);
System.out.print("正常乘客选5,残疾乘客选6 ");
String dis = dis1.next();
while (true) {// 死循环
Scanner kg1 = new Scanner(System.in);
System.out.println("请输入行李重量: ");
Double kg = kg1.nextDouble();
Double kgg = Math.ceil(kg);
int kgcopy = kgg.intValue();
// if(kgcopy != kg) {
// kgcopy = kgcopy + 1;
// }
//
if (kg <= 30.0) {
System.out.println("行李没有超过30kg,不需要额外费用");
} else {
if ("1".equals(people)) {
if ("3".equals(cabin)) {
if ("5".equals(dis)) {
sum = (kgcopy - 30) * 4;
} else if ("6".equals(dis)){
sum = (kgcopy - 30) * 2;
}
} else if ("4".equals(cabin)) {
if ("5".equals(dis)) {
sum = (kgcopy - 30) * 6;
} else if ("6".equals(dis)){
sum = (kgcopy - 30) * 3;
}
}
} else if ("2".equals(people)) {
if ("3".equals(cabin)) {
if ("5".equals(dis)) {
sum = (kgcopy - 30) * 8;
} else if ("6".equals(dis)){
sum = (kgcopy - 30) * 4;
}
} else if ("4".equals(cabin)) {
if ("5".equals(dis)) {
sum = (kgcopy - 30) * 12;
} else if ("6".equals(dis)){
sum = (kgcopy - 30) * 6;
}
}
}
System.out.println("行李的重量" + kgcopy);
System.out.println("花了" + sum + "元行李费");
}
}
}
public static void main(String[] args) {
Test02 t = new Test02();
t.cabin();
}
}