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

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

你可以这样定义一个接口 `IGetMoney`: ```csharp public interface IGetMoney { decimal CalculateCost(int minutes); } public class ACard : IGetMoney { private decimal initialAmount = 100; private decimal perMinuteRate = 0.1m; private decimal initialRateMinutes = 3; private decimal initialRate = 0.2m; public decimal CalculateCost(int minutes) { decimal cost = initialAmount; if (minutes <= initialRateMinutes) { cost -= initialRate; } else { cost -= initialRate + (minutes - initialRateMinutes) * perMinuteRate; } return cost; } } public class BCard : IGetMoney { private decimal initialAmount = 100; private decimal perMinuteRate = 0.1m; public decimal CalculateCost(int minutes) { decimal cost = initialAmount - minutes * perMinuteRate; return cost; } } ``` 然后在代码中根据用户输入的卡类型和通话时间进行计算: ```csharp Console.WriteLine("请输入电话卡类型(A或B):"); string cardType = Console.ReadLine(); Console.WriteLine("请输入通话时间(分钟):"); int minutes = int.Parse(Console.ReadLine()); IGetMoney card; if (cardType == "A" || cardType == "a") { card = new ACard(); } else if (cardType == "B" || cardType == "b") { card = new BCard(); } else { Console.WriteLine("无效的电话卡类型。"); return; } decimal cost = card.CalculateCost(minutes); decimal remainingAmount = card.GetRemainingAmount(); Console.WriteLine("通话费用:" + cost.ToString("0.00") + "元"); Console.WriteLine("账户余额:" + remainingAmount.ToString("0.00") + "元"); ``` 这样,程序会根据用户输入的卡类型和通话时间计算通话费用,并输出费用和账户余额。接口和具体的电话卡类相互关联,符合面向对象的设计原则。 ######[AI写代码神器 | 1189点数解答 | 2024-05-27 14:26:52]

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