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]
- Java实现银行与账户类:含存、取、查交易记录功能的业务系统( | 363点数解答 | 2024-04-05 11:49:01)366
- C#代码揭秘:A卡通话费用计算与余额管理实现(GPT | 291点数解答 | 2024-05-27 16:22:31)349
- Java实现含多操作的银行账户管理系统,功能演示清晰呈现!( | 363点数解答 | 2024-04-05 11:43:57)392
- Java 实战:创建 Vehicle 接口并在 Bike 类实现,T4 类调用启动与停止方法(字节豆包 | 130点数解答 | 2024-09-19 17:40:54)429
- Python 实现移位与仿射密码:精准加密解密及关键逻辑解析(字节豆包 | 798点数解答 | 2024-12-18 15:55:47)275
- Python 编程:轻松计算飞机行李收费(含代码详解)(字节豆包 | 250点数解答 | 2026-01-29 17:07:02)41
- C++ 代码实现自定义运算 x@y = x² + y² - xy 及 x@(x+y) 计算(DeepSeek | 215点数解答 | 2025-12-13 15:08:14)90
- C++ 实现根据输入正整数奇偶性计算偶数和或约数和(字节豆包 | 838点数解答 | 2026-02-28 20:23:59)50
- Java开发:深入解析Lock接口及其对比同步的六大优势(百度文心 | 406点数解答 | 2023-11-09 17:20:58)302
- 常用接口方法大揭秘:RESTful、SOAP、gRPC,附接口质量评估5大标准! (百度文心 | 385点数解答 | 2023-11-09 18:25:24)301
- 工程师必看!设计依赖登录状态接口的六大关键要点 (百度文心 | 422点数解答 | 2023-11-09 18:34:18)302
- 工程师打造优质接口必备的十大环境条件揭秘(百度文心 | 522点数解答 | 2023-11-09 18:34:23)237