题目:
天福律师事务所在业务上需要一个程序来进行律师咨询费的计算和收费单据的打印,在这里,我们可以尝试编写一个JAVA命令行程序来满足这个需求,具体业务流程如下:
1. 程序运行初期,将提示输入咨询所花费的小时和分钟。
2. 具体计费标准:
a. 150元/一刻钟(即15分钟)
b. 单次咨询时间低于15分钟,则按照15分钟计费。
c. 单次咨询时间高于15分钟,超出的不足15分钟的部分不收取费用,
3. 打印收费票据 (用控制台输出来模拟)
4. 参考操作界面:
====== 欢迎来到天福律师事务所 =====
请输入咨询时间:
小时:1
分钟:46
您总共咨询话费1小时46分钟,现按1小时45分钟计费,最后1分钟免费。
>>>>> 天福律师事务所-收费单 <<<<<<
收费标准:150元/一刻钟
消费时间:105分钟,共计7刻钟
缴费金额:1050元。
感谢您对我们工作的信赖和支持。
代码如下:
/**
* 消费账单类
*/
package com.ljx.cost;
/**
* @author 2296669592
*
*/
public class Bill {
/** 一刻钟的咨询价格 */
private static final int QUARTER_PRICE=150;
/** 咨询的分钟数 */
private int minute;
/** 咨询的小时数 */
private int hour;
public Bill(int minute,int hour){
this.minute=minute;
this.hour=hour;
}
public int getMinute() {
return minute;
}
public void setMinute(int minute) {
this.minute = minute;
}
public int getHour() {
return hour;
}
public void setHour(int hour) {
this.hour = hour;
}
/** 获取免费分钟数 */
public int getFreeMinutes() {
return minute%15;
}
/** 获取消费分钟数 */
public int getCostMinute() {
return hour*60+ minute-getFreeMinutes();
}
/** 获取消费刻钟数 */
public int getCostQuarter() {
return hour*4+minute/15;
}
/** 获取消费总金额 */
public int getCost() {
return getCostQuarter()*QUARTER_PRICE;
}
/** 打印账单 */
public void printBill() {
StringBuilder sb=new StringBuilder();
sb.append(String.format("\n您总共咨询话费%d小时%d分钟,现按%d小时%d分钟计费,最后%d分钟免费。\n", hour,minute,hour,minute-getFreeMinutes(),getFreeMinutes()));
sb.append("\n >>>>> 天福律师事务所-收费单 <<<<<<\n");
sb.append(String.format(" 收费标准:%d元/一刻钟\n", QUARTER_PRICE));
sb.append(String.format(" 消费时间:%d分钟,共计%d刻钟\n", getCostMinute(),getCostQuarter()));
sb.append(String.format(" 缴费金额:%d元。\n",getCost() ));
sb.append(" 感谢您对我们工作的信赖和支持。 \n");
System.out.println(sb);
}
}
package com.ljx.cost;
import java.util.Scanner;
/**
* @author 2296669592
*
*/
public class Tester {
/**
* @param args
*/
public static void main(String[] args) {
/** 咨询分钟数 */
int minute=0;
/** 咨询小时数 */
int hour=0;
//获取键盘输入
Scanner scanner=new Scanner(System.in);
//输入咨询时间
System.out.println("====== 欢迎来到天福律师事务所 =====");
System.out.println(" 请输入咨询时间:");
System.out.print("小时:");
hour=scanner.nextInt();
System.out.print("分钟:");
minute=scanner.nextInt();
//通过账单类计算账单并输出
Bill bill=new Bill(minute, hour);
bill.printBill();
}
}
结果: