Java 实现座机和移动手机通话系统:充值、通话、余额查询

本程序使用 Java 语言编写,模拟了座机和移动手机的通话系统,实现了充值话费、通话扣费、显示余额等功能。程序包含三个类:

  • 座机类 (Landline):定义了座机的属性和方法,包括每分钟通话费用、账户余额、充值话费、通话扣费和显示余额等。
  • 移动手机类 (MobilePhone):定义了移动手机的属性和方法,与座机类类似,但每分钟通话费用可能不同。
  • 测试类 (Test):用于测试座机和移动手机的功能,包括充值、通话和显示余额等操作。

座机类 (Landline)

public class Landline {
    private double pricePerMinute; // 每分钟通话费用
    private double balance; // 账户余额

    public Landline(double pricePerMinute, double balance) {
        this.pricePerMinute = pricePerMinute;
        this.balance = balance;
    }

    // 充值话费
    public void recharge(double amount) {
        balance += amount;
        System.out.println('充值成功,当前余额为:' + balance);
    }

    // 通话,并扣除相应的费用
    public void call(double duration) {
        double cost = duration * pricePerMinute;
        if (balance >= cost) {
            balance -= cost;
            System.out.println('通话成功,本次扣除费用为:' + cost + ',当前余额为:' + balance);
        } else {
            System.out.println('余额不足,请先充值');
        }
    }

    // 显示余额
    public void showBalance() {
        System.out.println('当前余额为:' + balance);
    }
}

移动手机类 (MobilePhone)

public class MobilePhone {
    private double pricePerMinute; // 每分钟通话费用
    private double balance; // 账户余额

    public MobilePhone(double pricePerMinute, double balance) {
        this.pricePerMinute = pricePerMinute;
        this.balance = balance;
    }

    // 充值话费
    public void recharge(double amount) {
        balance += amount;
        System.out.println('充值成功,当前余额为:' + balance);
    }

    // 通话,并扣除相应的费用
    public void call(double duration) {
        double cost = duration * pricePerMinute;
        if (balance >= cost) {
            balance -= cost;
            System.out.println('通话成功,本次扣除费用为:' + cost + ',当前余额为:' + balance);
        } else {
            System.out.println('余额不足,请先充值');
        }
    }

    // 显示余额
    public void showBalance() {
        System.out.println('当前余额为:' + balance);
    }
}

测试类 (Test)

public class Test {
    public static void main(String[] args) {
        Landline landline = new Landline(0.2, 10);
        MobilePhone mobilePhone = new MobilePhone(0.5, 20);

        // 座机充值
        landline.recharge(5);
        // 座机通话
        landline.call(30);
        // 座机显示余额
        landline.showBalance();

        System.out.println('========');

        // 手机充值
        mobilePhone.recharge(10);
        // 手机通话
        mobilePhone.call(15);
        // 手机显示余额
        mobilePhone.showBalance();
    }
}

代码说明

  • pricePerMinute:每分钟通话费用,单位为元。
  • balance:账户余额,单位为元。
  • recharge(double amount):充值话费,参数 amount 为充值金额。
  • call(double duration):通话扣费,参数 duration 为通话时长,单位为分钟。
  • showBalance():显示账户余额。

本程序仅供学习参考,实际的通话系统会更加复杂,需要考虑更多因素,例如不同运营商的资费标准、不同类型的通话资费、流量消耗等。


原文地址: https://www.cveoy.top/t/topic/oGlj 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录