酷代码 AI
菜单
服务商
DeepSeek字节豆包讯飞星火
更多选项

C# 实战:用 IGetMoney 接口计算 A、B 电话卡通话费用与账户余额

可以通过以下方式实现: ```csharp using System; interface IGetMoney { double CallFee(int minutes); } class ACard : IGetMoney { private const double initialFee = 100; private const double feePerMinute = 0.1; private const int freeMinutes = 3; private double balance; public ACard() { balance = initialFee; } public double CallFee(int minutes) { double fee = 0; if (minutes <= freeMinutes) { fee = 0; } else { fee = (minutes - freeMinutes) * feePerMinute; } balance -= fee; return fee; } public double GetBalance() { return balance; } } class BCard : IGetMoney { private const double initialFee = 100; private const double feePerMinute = 0.1; private double balance; public BCard() { balance = initialFee; } public double CallFee(int minutes) { double fee = minutes * feePerMinute; balance -= fee; return fee; } public double GetBalance() { return balance; } } class Program { static void Main(string[] args) { IGetMoney card; Console.WriteLine("请选择卡的类型:"); Console.WriteLine("1. A卡"); Console.WriteLine("2. B卡"); int cardType = int.Parse(Console.ReadLine()); if (cardType == 1) { card = new ACard(); } else if (cardType == 2) { card = new BCard(); } else { Console.WriteLine("请输入有效的选项!"); return; } Console.WriteLine("请输入通话时间(分钟):"); int minutes = int.Parse(Console.ReadLine()); double fee = card.CallFee(minutes); double balance = card.GetBalance(); Console.WriteLine("通话费用:{0}元", fee); Console.WriteLine("账户余额:{0}元", balance); } } ``` 这段代码中,首先定义了一个 `IGetMoney` 接口,包含了一个 `CallFee` 方法用于计算通话费用。然后,实现了两个类 `ACard` 和 `BCard`,分别代表 A 卡和 B 卡,它们都实现了 `IGetMoney` 接口。在这两个类中,分别定义了初始费用、每分钟费用和余额的变量。在 `ACard` 的 `CallFee` 方法中,根据通话分钟数和免费分钟数进行计算,并更新余额。在 `BCard` 的 `CallFee` 方法中,直接计算每分钟费用并更新余额。 在 `Main` 方法中,首先根据用户输入选择卡的类型,然后输入通话时间。根据选择的卡类型,创建相应的卡对象,并调用 `CallFee` 方法计算通话费用和更新余额。输出通话费用和账户余额。 ######[AI写代码神器 | 1712点数解答 | 2024-05-27 16:09:55]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]