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

C# 用接口实现:根据用户输入算出 A、B 电话卡通话费用与余额

首先,我们可以定义一个接口`IGetMoney`,该接口包含一个方法`CalculateCost`用于计算通话费用: ```csharp public interface IGetMoney { double CalculateCost(int minutes); } ``` 然后,我们可以定义两个实现了`IGetMoney`接口的类`CardA`和`CardB`,分别代表a卡和b卡: ```csharp public class CardA : IGetMoney { private double initialAmount = 100.0; // 初始花费为100元 public double CalculateCost(int minutes) { double cost = 0; if (minutes <= 3) { cost = minutes * 0.2; } else { cost = 3 * 0.2 + (minutes - 3) * 0.1; } initialAmount -= cost; // 扣除通话费用 return cost; } } public class CardB : IGetMoney { private double initialAmount = 100.0; // 初始花费为100元 public double CalculateCost(int minutes) { double cost = minutes * 0.1; initialAmount -= cost; // 扣除通话费用 return cost; } } ``` 接下来,我们可以在主程序中提示用户输入卡类型和通话时间,并计算通话费用和账户余额: ```csharp class Program { static void Main(string[] args) { IGetMoney card; string cardType; int minutes; // 提示用户输入卡类型和通话时间 Console.WriteLine("请输入使用的电话卡类型(A或B):"); cardType = Console.ReadLine(); Console.WriteLine("请输入通话时间(分钟):"); minutes = int.Parse(Console.ReadLine()); // 根据卡类型创建相应的类实例 if (cardType.ToUpper() == "A") { card = new CardA(); } else if (cardType.ToUpper() == "B") { card = new CardB(); } else { Console.WriteLine("无效的卡类型!"); return; } // 调用计算方法计算通话费用 double cost = card.CalculateCost(minutes); // 输出通话费用和账户余额 Console.WriteLine("通话费用为:" + cost + "元"); Console.WriteLine("账户余额为:" + card.GetRemainingAmount() + "元"); } } ``` 这样,用户输入卡类型和通话时间后,程序会根据卡类型计算通话费用,然后输出费用和账户余额。 ######[AI写代码神器 | 1451点数解答 | 2024-05-27 14:56:36]

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