请用java写一段代码,要求功能实现南昌市电信分公司的计费程序,假设该公司针对手机和座机用户分别采取了两种计费方案,分别如下: 1、针对市内座机用户采用的计费方式(与电信计费系列1内容相同): 月租20元,接电话免费,市内拨打电话0.1元/分钟,省内长途0.3元/分钟,国内长途拨打0.6元/分钟。不足一分钟按一分钟计。 假设本市的区号:0791,江西省内各地市区号包括:0790~0799以及0701。 2、针对手机用户采用实时计费方式: 月租15元,市内省内接电话均免费,市内拨打市内电话0.1元/分钟,市
时间: 2023-11-21 09:05:32 浏览: 31
以下是一个简单的Java代码实现南昌市电信分公司的计费程序,分别实现座机用户和手机用户的计费方案。
```java
import java.util.Scanner;
public class TelecomBillingSystem {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入电话号码:");
String phoneNumber = scanner.nextLine();
double cost = 0;
if (phoneNumber.startsWith("0791")) { // 座机用户
System.out.println("请输入通话时长(分钟):");
int duration = scanner.nextInt();
cost = calculateLandlineCost(duration);
} else { // 手机用户
System.out.println("请输入通话类型(1:市内通话,2:省内通话):");
int type = scanner.nextInt();
System.out.println("请输入通话时长(分钟):");
int duration = scanner.nextInt();
cost = calculateMobileCost(type, duration);
}
System.out.println("本次通话费用为:" + cost + "元");
}
// 计算座机用户通话费用
public static double calculateLandlineCost(int duration) {
double cost = 20; // 月租
if (duration > 0) {
cost += Math.ceil(duration) * 0.1; // 市内拨打费用
}
cost += Math.ceil(duration / 3.0) * 0.3; // 省内长途费用
cost += Math.ceil(duration / 6.0) * 0.6; // 国内长途费用
return cost;
}
// 计算手机用户通话费用
public static double calculateMobileCost(int type, int duration) {
double cost = 15; // 月租
if (type == 1) { // 市内通话
if (duration > 0) {
cost += Math.ceil(duration) * 0.1; // 市内拨打费用
}
} else { // 省内通话
if (duration > 0) {
cost += Math.ceil(duration) * 0.3; // 省内拨打费用
}
}
return cost;
}
}
```
这段代码实现了根据电话号码判断用户类型,然后根据用户类型和通话时长计算通话费用。其中,座机用户的计费规则采用了与电信计费系列1相同的方式,手机用户的计费规则采用了实时计费方式。