Young87

SmartCat's Blog

So happy to code my life!

当前位置:首页 >AI写作

c#题例-2025-09-16 04:59:59

编写一个C#程序,使用递归和分治策略实现一个表达式求值器,支持包含加、减、乘、除四则运算及括号的表达式计算。要求不使用`DataTable.Compute`、`NCalc`等现成表达式解析工具。同时,程序需正确处理运算符优先级与结合性,并在遇到除零或语法错误时抛出有意义的异常。

接口定义如下:

```csharp
public abstract class ExpressionEvaluator
{
public abstract double Evaluate(string expression);
}
```

你需要实现该抽象类的具体子类 `CustomExpressionEvaluator`,并确保以下测试用例通过:

```csharp
var evaluator = new CustomExpressionEvaluator();

Console.WriteLine(evaluator.Evaluate("1 + 2 * 3")); // 输出 7
Console.WriteLine(evaluator.Evaluate("(1 + 2) * 3")); // 输出 9
Console.WriteLine(evaluator.Evaluate("10 / 2 - 1")); // 输出 4
Console.WriteLine(evaluator.Evaluate("2 * (3 + 4) - 5 / 1")); // 输出 15
Console.WriteLine(evaluator.Evaluate("5 + (3 * 2) / 3")); // 输出 7

try
{
evaluator.Evaluate("10 / 0");
}
catch (DivideByZeroException ex)
{
Console.WriteLine(ex.Message); // 应输出“表达式中出现除零错误”
}

try
{
evaluator.Evaluate("1 + * 2");
}
catch (FormatException ex)
{
Console.WriteLine(ex.Message); // 应输出“表达式格式错误”
}
```

请在实现中体现面向对象设计、异常处理机制和良好的代码结构。

除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog

上一篇:无

下一篇: c#题例-2025-09-15 23:26:34

精华推荐