80%时间做非核心的80%工作,写核心的13行代码只能拿基本工资,写200行非核心的代码再拿剩下的部分

/**
复制代码
* 报价计算器加档次逻辑:经济800/舒适1200/豪华1800元每 ㎡ * 把报价计算拆成方法:calcMaterial(area)算材料费=面积×600,calcLabor(area)算人工费=面积×300,main中调用 * 1、正则表达式 * 2、main()主方法是static,只能调用static方法,所以其他方法也要是static方法 * 3、switch -case */ import java.util.Scanner; public class Day22QuoteCalculator { private static final double LEVEL_PRICE_ECONOMY = 800; // 装修经济套餐的单价(元/m²) private static final double LEVEL_PRICE_COMFORT = 1200; // 装修舒适套餐的单价(元/m²) private static final double LEVEL_PRICE_LUXURY = 1800; // 装修豪华套餐的单价(元/m²) private static final String LEVEL_DESC_ECONOMY = "经济套餐"; // 经济套餐 private static final String LEVEL_DESC_COMFORT = "舒适套餐"; // 舒适套餐 private static final String LEVEL_DESC_LUXURY = "豪华套餐"; // 豪华套餐 private static final String PRINT_TITLE = "\n------------------------------装修金额(套餐)计算器------------------------------\n"; private static final String PRINT_LINE = "\n-----------------------------------------------------------------------------\n"; private static final String PRINT_AREA_TIP = "房屋面积是:%,.2f m²"; private static final String PRINT_LEVEL_PACKAGE_TIP = "装修套餐是:%s"; private static final String PRINT_UNIT_PRICE_TIP = "套餐单价是:%,.2f 元/m²"; private static final String PRINT_AMOUT_TIP = "装修金额是:%,.2f 元"; private static final String INPUT_AREA_TIP = "请输入房屋面积(m²),回车确定|exit退出:"; private static final String INPUT_SELECT_PACKAGE_TIP = "请选择装修套餐(1-经济|2-舒适|3-豪华):"; private static final String ERROR_DOUBLE_INPUT_TIP = "输入无效,请重新输入!"; private static final String ERROR_NON_POSITIVE_TIP = "面积要大于 0 ,请重新输入!"; private static final String DOUBLE_REGEX = "^[0-9]+(\\.[0-9]+)?$"; private static final String SELECT_PRICE_REGEX = "^[123]$"; public static void main(String[] args) { Scanner line = new Scanner(System.in); while (true) { System.out.printf(PRINT_TITLE); System.out.print("\n" + INPUT_AREA_TIP); String area = line.nextLine(); // 用字符串接收输入 if (!(area == null || area.isBlank())) { if ("exit".equals(area) || "EXIT".equals(area)) { break; } if (!area.matches(DOUBLE_REGEX)) { System.out.println(ERROR_DOUBLE_INPUT_TIP); // 非数字/负数/空 } else { double houseArea = Double.parseDouble(area); if (houseArea <= 0) { System.out.println(ERROR_ONE_INPUT_TIP); // 拦截0 continue; } // 提示选择装修套餐 System.out.print("\n" + INPUT_SELECT_PACKAGE_TIP); String pkg = line.nextLine(); if (!pkg.matches(SELECT_PRICE_REGEX)) { System.out.println(ERROR_NON_POSITIVE_TIP); } else { int level = Integer.parseInt(pkg); double price = switch (level) { case 1 -> LEVEL_PRICE_ECONOMY; case 2 -> LEVEL_PRICE_COMFORT; case 3 -> LEVEL_PRICE_LUXURY; default -> 0; }; String desc = switch (level) { case 1 -> LEVEL_DESC_ECONOMY; case 2 -> LEVEL_DESC_COMFORT; case 3 -> LEVEL_DESC_LUXURY; default -> ""; }; double amount = calcAmount(houseArea, price); System.out.print(PRINT_LINE); System.out.printf(PRINT_AREA_TIP, houseArea); System.out.printf("\n" + PRINT_LEVEL_PACKAGE_TIP, desc); System.out.printf("\n" + PRINT_UNIT_PRICE_TIP, price); System.out.printf("\n" + PRINT_AMOUT_TIP + "\n", amount); } } } } } static double calcAmount(double area, double price) { return area * price; } }
0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
鱼友0258
下载 APP